Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e95ffad576 | |||
| 78570eed7c | |||
| dcc751c691 | |||
| 7a9dc27835 | |||
| 3407f1f955 | |||
| 54280b68eb | |||
| cf56f091f3 | |||
| 9d6d531ffe | |||
| 0c60ddf63d | |||
| 928a0e9807 | |||
| 93d8c5703b | |||
| 597261ff57 | |||
| d4d30d39c1 | |||
| f49f1cd0b0 | |||
| 8c6275ffe8 | |||
| e094f38423 | |||
| 0734ffc630 | |||
| a8700a8c66 | |||
| ca95128ee9 | |||
| dde56eeedb | |||
| f530ee6407 | |||
| f9ec0334e1 | |||
| 389d548d08 | |||
| fb948dc8c0 | |||
| ce2f46cf5b | |||
| db63949a31 | |||
| f2127ab3a6 | |||
| f525a88668 | |||
| 91a20c8aae | |||
| 59a8c4fd01 | |||
| 3f63cc2416 | |||
| fcdef561ec | |||
| 8d0ae1d5b4 | |||
| afd2d4667d | |||
| ceadb06a64 | |||
| f276fad550 | |||
| b20cf45850 |
@@ -1,32 +0,0 @@
|
||||
# 构建成功说明
|
||||
|
||||
## 修复过程
|
||||
|
||||
1. 添加了必要的native库文件
|
||||
- 从反编译的APK中提取了arm64-v8a架构的库文件
|
||||
- 将这些库文件复制到`app/src/main/jniLibs/arm64-v8a/`目录
|
||||
|
||||
2. 添加了着色器文件
|
||||
- 从反编译的APK中提取了着色器文件
|
||||
- 将这些文件复制到`app/src/main/assets/shaders/`目录
|
||||
|
||||
3. 修复了EventIndex类
|
||||
- 手动创建了`EventIndex`类实现
|
||||
- 禁用了EventBus注解处理器以避免冲突
|
||||
|
||||
4. 修复了Gradle构建问题
|
||||
- 禁用了Glide注解处理器以避免Java编译器访问错误
|
||||
- 更新了`gradle.properties`文件,添加了必要的Java编译器模块导出
|
||||
|
||||
5. 添加了必要的依赖版本
|
||||
- 确保`media3Version`和`okhttpVersion`变量正确定义
|
||||
|
||||
## 构建结果
|
||||
|
||||
成功构建了`mobile-arm64_v8a.apk`文件,位于`app/build/outputs/apk/mobileArm64_v8a/debug/`目录。
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 禁用了一些注解处理器以解决构建问题,这可能会影响一些自动生成的代码
|
||||
- 如果需要进一步优化,可以考虑重新启用这些处理器并解决相关问题
|
||||
- 所有必要的native库文件已添加,确保了播放器功能的正常运行
|
||||
@@ -1,15 +1,15 @@
|
||||
# 📱 XMBOX - 强大的Android视频播放器
|
||||
|
||||
<h1 align="center"> 📱 XMBOX - Android资源播放器
|
||||
</h1>
|
||||
<div align="center">
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
一个功能强大、界面简洁的Android视频播放器,支持TV和手机双平台。
|
||||
一个操作方便、界面简洁的Android视频播放器盒子,需自行添源,支持TV和手机双平台。
|
||||
|
||||
[下载APK](../../releases) • [功能特性](#-功能特性) • [构建指南](#-构建指南) • [API文档](#-api文档)
|
||||
[下载APK](https://github.com/Tosencen/XMBOX-Release/tree/main/apk/release) • [功能特性](#-功能特性) • [构建指南](#-构建指南) • [API文档](#-api文档)
|
||||
|
||||
</div>
|
||||
|
||||
@@ -36,13 +36,24 @@
|
||||
|
||||
## 📥 下载安装
|
||||
|
||||
### 最新版本: v3.0.4
|
||||
### 最新版本: v3.0.8
|
||||
|
||||
| 平台 | ARM64-V8A | ARM V7A |
|
||||
|------|-----------|---------|
|
||||
| **📱 手机版** | [下载 (29MB)](../../releases/download/v3.0.4/mobile-arm64_v8a.apk) | [下载 (29MB)](../../releases/download/v3.0.4/mobile-armeabi_v7a.apk) |
|
||||
| **📺 TV版** | [下载 (27MB)](../../releases/download/v3.0.4/leanback-arm64_v8a.apk) | [下载 (28MB)](../../releases/download/v3.0.4/leanback-armeabi_v7a.apk) |
|
||||
| **📱 手机版** | [下载 (34MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/mobile-arm64_v8a-v3.0.8.apk) | [下载 (30MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/mobile-armeabi_v7a-v3.0.8.apk) |
|
||||
| **📺 TV版** | [下载 (34MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/leanback-arm64_v8a-v3.0.8.apk) | [下载 (30MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/leanback-armeabi_v7a-v3.0.8.apk) |
|
||||
|
||||
### 📁 版本历史
|
||||
- **v3.0.8**: [查看v3.0.8版本](https://github.com/Tosencen/XMBOX-Release/tree/main/apk/release/v3.0.8) - UI交互体验全面优化
|
||||
- **v3.0.7**: [查看v3.0.7版本](https://github.com/Tosencen/XMBOX-Release/tree/main/apk/release/v3.0.7) - 全面优化稳定性和用户体验
|
||||
|
||||
### 📦 下载说明
|
||||
- **最新版本**: 根目录的 `mobile.json` 和 `leanback.json` 包含最新版本信息
|
||||
- **历史版本**: 每个版本都有独立的文件夹,包含完整的APK文件和版本信息
|
||||
- **文件结构**: 按版本号组织,便于管理和下载
|
||||
- **签名保护**: 所有APK均使用v1/v2/v3/v4多重签名保护
|
||||
|
||||
TV版基于 [FongMi/TV](https://github.com/FongMi/TV) 原项目就改了些配色,想要嘿稳定的可去原项目体验
|
||||
### 📋 系统要求
|
||||
- Android 5.0 (API 21) 及以上
|
||||
- ARM64-V8A: 推荐新设备使用,性能更优
|
||||
@@ -121,7 +132,29 @@ XMBOX/
|
||||
|
||||
## 📝 更新日志
|
||||
|
||||
### v3.0.4 (2024-07-30)
|
||||
### v3.0.8 (2025-10-14)
|
||||
|
||||
#### 🎨 UI交互体验全面优化
|
||||
* **修复按钮点击效果** - 解决按钮点击效果过于明显的问题
|
||||
* **统一自定义背景** - 使用自定义背景替代系统selectableItemBackgroundBorderless
|
||||
* **移除文字阴影** - 清理Control.Action样式中的文字阴影效果
|
||||
* **优化直播页面** - 选择按钮颜色统一为主题黄色
|
||||
* **调整页面布局** - 许可协议页面按钮区域上间距调整为8dp
|
||||
* **修复文字重叠** - 解决跨类和换源按钮的文字重叠问题
|
||||
* **提升视觉一致性** - 整体UI视觉一致性和用户体验优化
|
||||
|
||||
#### 🔧 技术改进
|
||||
* **优化内存使用** - 改进内存管理机制
|
||||
* **提升播放稳定性** - 增强播放器稳定性
|
||||
* **文件结构重组** - 按版本号重新组织发布文件结构
|
||||
|
||||
### v3.0.5 (2025-08-20)
|
||||
#### 🎨 界面优化
|
||||
- 优化导航栏历史记录图标,采用 Material Design 3 规范的列表图标
|
||||
- 改进设置页面的图标显示效果
|
||||
- 优化用户界面视觉体验
|
||||
|
||||
### v3.0.4 (2025-07-30)
|
||||
#### 🐛 修复
|
||||
- 修复设置页面源管理模块中切换视频源时的随机闪退问题
|
||||
- 增强VodConfig.setHome()方法的空指针异常处理
|
||||
@@ -219,6 +252,28 @@ GET http://127.0.0.1:9978/cache?do=del&key=xxx
|
||||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||||
5. 创建 Pull Request
|
||||
|
||||
### ⚖️ 许可协议
|
||||
XMBOX软件许可协议:
|
||||
- 以下是对[GPL-3.0](LICENSE.md)开源协议的补充,如有冲突,以以下协议为准。
|
||||
- 词语约定: 本协议中的“本软件”指“XMBOX软件”,“用户”指签署本协议的使用者,“版权数据”指包括但不限于视频、图像、音频、名字等在内的他人拥有所属版权的数据。
|
||||
1. 本软件仅为技术性多媒体播放器外壳(“空壳播放器”),核心功能限于基础媒体文件解析与播放。
|
||||
2. 本软件自身不包含、不预装、不内置、不集成、不主动推荐、不直接或间接提供任何音视频、直播、图文等媒体资源内容。软件播放的任何资源均非由本软件或其开发者提供。
|
||||
3. 用户通过本软件播放的任何内容均完全来源于用户自行配置、输入、添加、获取或选择的第三方来源(如网络地址、本地文件、用户安装的插件/扩展/配置源等)。本软件仅作为访问用户自行指定内容的技术工具。
|
||||
4. 本软件无法控制、筛选、审查或保证用户访问的任何第三方内容的合法性、版权状态、准确性、安全性或适宜性。用户对其播放的内容负全部责任。
|
||||
5. 关于用户责任与风险承担:
|
||||
* 用户必须确保其通过本软件配置、访问或播放的所有内容均已获相关权利人合法授权,或属于法律允许的自由使用范畴。
|
||||
* 用户理解并同意,使用本软件访问第三方资源可能涉及侵犯版权、传播非法信息、隐私泄露、网络安全等风险。因用户使用本软件访问、播放或传播内容产生的一切法律责任、纠纷、损失及后果(包括法律诉讼、行政处罚、民事赔偿等),均由用户自行承担,与本软件及其开发者无涉。
|
||||
* 开发者不认可、不支持任何利用本软件规避技术保护措施(如DRM)的行为,此类行为导致的侵权责任由用户全权承担。
|
||||
6. 用户承诺并保证不利用本软件从事任何侵犯他人知识产权或其他合法权益的活动,或进行任何违反法律法规的行为。严禁使用本软件播放、传播盗版、色情、暴力、赌博、诈骗、危害国家安全、危害社会稳定等非法或侵权内容。
|
||||
7. 在任何情况下,本软件开发者均不就因用户使用或无法使用本软件、用户配置或访问的第三方资源、用户违反本协议或法律法规的行为导致的任何直接、间接、偶然、特殊、惩罚性或结果性损害(包括利润损失、数据丢失、业务中断、声誉损害等)承担任何责任(无论基于合同、侵权、严格责任或其他法律理论)。
|
||||
8. 本软件运行可能依赖第三方库、服务或技术。开发者不对这些第三方组件的可用性、准确性、功能或合法性负责。
|
||||
9. 用户理解并同意,使用本软件(包括下载、安装、运行)存在固有技术风险(如软件缺陷、兼容性问题、系统不稳定等),用户应自行承担此风险。
|
||||
10. 本软件仅用于对技术可行性的探索及研究,不接受任何商业(包括但不限于广告等)合作及捐赠。
|
||||
11. 本软件内使用的部分包括但不限于字体、图片等资源来源于互联网。如果出现侵权可联系开发者移除。
|
||||
12. 使用本软件的过程中可能会产生版权数据。对于这些版权数据,本软件不拥有它们的所有权。为了避免侵权,用户务必在 24 小时内 清除使用本项目的过程中所产生的版权数据。
|
||||
13. 本协议受中华人民共和国法律管辖并据其解释。若用户所在地法律强制规定特定责任条款,应以当地法律要求为准,但其他条款仍保持有效。任何由本协议或使用本软件引起的争议,应首先通过友好协商解决。
|
||||
14. 若你使用了本软件,即代表你接受本协议。
|
||||
|
||||
## ⚖️ 免责声明
|
||||
|
||||
1. **学习用途**: 本项目仅供学习和技术交流使用,不得用于商业用途
|
||||
@@ -249,4 +304,4 @@ GET http://127.0.0.1:9978/cache?do=del&key=xxx
|
||||
|
||||
Made with ❤️ by XMBOX Team
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
# XMBOX Release Files
|
||||
|
||||
## 📁 文件结构
|
||||
|
||||
```
|
||||
apk/release/
|
||||
├── mobile.json # 最新版本信息 (手机版)
|
||||
├── leanback.json # 最新版本信息 (TV版)
|
||||
├── v3.0.7/ # v3.0.7版本文件
|
||||
│ ├── mobile.json # v3.0.7版本信息
|
||||
│ ├── leanback.json # v3.0.7版本信息
|
||||
│ ├── mobile-arm64_v8a.apk
|
||||
│ ├── mobile-armeabi_v7a.apk
|
||||
│ ├── leanback-arm64_v8a.apk
|
||||
│ └── leanback-armeabi_v7a.apk
|
||||
└── v3.0.8/ # v3.0.8版本文件
|
||||
├── mobile.json # v3.0.8版本信息
|
||||
├── leanback.json # v3.0.8版本信息
|
||||
├── mobile-arm64_v8a-v3.0.8.apk
|
||||
├── mobile-armeabi_v7a-v3.0.8.apk
|
||||
├── leanback-arm64_v8a-v3.0.8.apk
|
||||
└── leanback-armeabi_v7a-v3.0.8.apk
|
||||
```
|
||||
|
||||
## 📱 版本说明
|
||||
|
||||
### v3.0.8 (最新版本)
|
||||
- **发布时间**: 2025-10-14
|
||||
- **版本代码**: 308
|
||||
- **主要更新**: UI交互体验全面优化
|
||||
|
||||
### v3.0.7
|
||||
- **发布时间**: 2025-09-26
|
||||
- **版本代码**: 307
|
||||
- **主要更新**: 全面优化稳定性和用户体验
|
||||
|
||||
## 🔗 下载链接
|
||||
|
||||
### 最新版本 (v3.0.8)
|
||||
- **手机版 ARM64**: [mobile-arm64_v8a-v3.0.8.apk](v3.0.8/mobile-arm64_v8a-v3.0.8.apk)
|
||||
- **手机版 ARMv7**: [mobile-armeabi_v7a-v3.0.8.apk](v3.0.8/mobile-armeabi_v7a-v3.0.8.apk)
|
||||
- **TV版 ARM64**: [leanback-arm64_v8a-v3.0.8.apk](v3.0.8/leanback-arm64_v8a-v3.0.8.apk)
|
||||
- **TV版 ARMv7**: [leanback-armeabi_v7a-v3.0.8.apk](v3.0.8/leanback-armeabi_v7a-v3.0.8.apk)
|
||||
|
||||
### 历史版本
|
||||
- **v3.0.7**: [查看v3.0.7版本文件](v3.0.7/)
|
||||
|
||||
## 📋 版本信息
|
||||
|
||||
每个版本目录都包含对应的JSON配置文件,包含:
|
||||
- `name`: 版本号
|
||||
- `desc`: 版本描述和更新内容
|
||||
- `code`: 版本代码
|
||||
- `downloads`: 下载链接映射 (仅根目录文件)
|
||||
|
||||
## 🔐 签名信息
|
||||
|
||||
所有APK文件均使用多重签名保护:
|
||||
- ✅ v1 (JAR签名) - 最佳兼容性
|
||||
- ✅ v2 (APK签名方案v2) - 全文件签名
|
||||
- ✅ v3 (APK签名方案v3) - 支持密钥轮换
|
||||
- ✅ v4 (APK签名方案v4) - 增量签名
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "3.0.8",
|
||||
"desc": "XMBOX TV版 v3.0.8 (Android TV/机顶盒专用)\n\n✨ UI优化:\n• 修复按钮点击效果过于明显的问题\n• 统一使用自定义背景替代系统selectableItemBackgroundBorderless\n• 移除Control.Action样式中的文字阴影效果\n• 优化直播页面选择按钮颜色为主题黄色\n• 调整许可协议页面按钮区域上间距为8dp\n• 修复跨类和换源按钮的文字重叠问题\n• 提升整体UI视觉一致性和用户体验\n\n🔧 改进优化:\n• 优化大屏界面体验\n• 提升播放稳定性\n\n📺 专为电视优化:遥控器导航 | 10-foot UI | ARM64/ARMv7",
|
||||
"code": 308,
|
||||
"downloads": {
|
||||
"arm64_v8a": "v3.0.8/leanback-arm64_v8a-v3.0.8.apk",
|
||||
"armeabi_v7a": "v3.0.8/leanback-armeabi_v7a-v3.0.8.apk"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "3.0.8",
|
||||
"desc": "XMBOX 手机版 v3.0.8\n\n✨ UI优化:\n• 修复按钮点击效果过于明显的问题\n• 统一使用自定义背景替代系统selectableItemBackgroundBorderless\n• 移除Control.Action样式中的文字阴影效果\n• 优化直播页面选择按钮颜色为主题黄色\n• 调整许可协议页面按钮区域上间距为8dp\n• 修复跨类和换源按钮的文字重叠问题\n• 提升整体UI视觉一致性和用户体验\n\n🔧 改进优化:\n• 优化内存使用\n• 提升播放稳定性\n\n📱 支持架构:ARM64-v8a | ARMv7a",
|
||||
"code": 308,
|
||||
"downloads": {
|
||||
"arm64_v8a": "v3.0.8/mobile-arm64_v8a-v3.0.8.apk",
|
||||
"armeabi_v7a": "v3.0.8/mobile-armeabi_v7a-v3.0.8.apk"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "3.0.7",
|
||||
"desc": "XMBOX TV版 v3.0.7 (Android TV/机顶盒专用)\n\n✨ UI优化:\n• 全新自定义开关按钮(黄色/黑色Material Design风格)\n• 优化电量百分比显示(16sp字号,2dp间距)\n• 精简设置页面,隐藏壁纸功能\n\n🔒 安全增强:\n• 启用v1/v2/v3/v4多重签名保护\n• 提升应用安全性和兼容性\n\n🔧 改进优化:\n• 修复设置页面崩溃问题\n• 优化大屏界面体验\n• 提升播放稳定性\n\n📺 专为电视优化:遥控器导航 | 10-foot UI | ARM64/ARMv7",
|
||||
"code": 307
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "3.0.7",
|
||||
"desc": "XMBOX 手机版 v3.0.7\n\n✨ UI优化:\n• 全新自定义开关按钮(黄色/黑色Material Design风格)\n• 优化电量百分比显示(16sp字号,2dp间距)\n• 精简设置页面,隐藏壁纸功能\n\n🔒 安全增强:\n• 启用v1/v2/v3/v4多重签名保护\n• 提升应用安全性和兼容性\n\n🔧 改进优化:\n• 修复设置页面崩溃问题\n• 优化内存使用\n• 提升播放稳定性\n\n📱 支持架构:ARM64-v8a | ARMv7a",
|
||||
"code": 307
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
# XMBOX Release Files
|
||||
|
||||
## 📁 文件结构
|
||||
|
||||
```
|
||||
apk/release/
|
||||
├── mobile.json # 最新版本信息 (手机版)
|
||||
├── leanback.json # 最新版本信息 (TV版)
|
||||
├── v3.0.7/ # v3.0.7版本文件
|
||||
│ ├── mobile.json # v3.0.7版本信息
|
||||
│ ├── leanback.json # v3.0.7版本信息
|
||||
│ ├── mobile-arm64_v8a.apk
|
||||
│ ├── mobile-armeabi_v7a.apk
|
||||
│ ├── leanback-arm64_v8a.apk
|
||||
│ └── leanback-armeabi_v7a.apk
|
||||
└── v3.0.8/ # v3.0.8版本文件
|
||||
├── mobile.json # v3.0.8版本信息
|
||||
├── leanback.json # v3.0.8版本信息
|
||||
├── mobile-arm64_v8a-v3.0.8.apk
|
||||
├── mobile-armeabi_v7a-v3.0.8.apk
|
||||
├── leanback-arm64_v8a-v3.0.8.apk
|
||||
└── leanback-armeabi_v7a-v3.0.8.apk
|
||||
```
|
||||
|
||||
## 📱 版本说明
|
||||
|
||||
### v3.0.8 (最新版本)
|
||||
- **发布时间**: 2025-10-14
|
||||
- **版本代码**: 308
|
||||
- **主要更新**: UI交互体验全面优化
|
||||
|
||||
### v3.0.7
|
||||
- **发布时间**: 2025-09-26
|
||||
- **版本代码**: 307
|
||||
- **主要更新**: 全面优化稳定性和用户体验
|
||||
|
||||
## 🔗 下载链接
|
||||
|
||||
### 最新版本 (v3.0.8)
|
||||
- **手机版 ARM64**: [mobile-arm64_v8a-v3.0.8.apk](v3.0.8/mobile-arm64_v8a-v3.0.8.apk)
|
||||
- **手机版 ARMv7**: [mobile-armeabi_v7a-v3.0.8.apk](v3.0.8/mobile-armeabi_v7a-v3.0.8.apk)
|
||||
- **TV版 ARM64**: [leanback-arm64_v8a-v3.0.8.apk](v3.0.8/leanback-arm64_v8a-v3.0.8.apk)
|
||||
- **TV版 ARMv7**: [leanback-armeabi_v7a-v3.0.8.apk](v3.0.8/leanback-armeabi_v7a-v3.0.8.apk)
|
||||
|
||||
### 历史版本
|
||||
- **v3.0.7**: [查看v3.0.7版本文件](v3.0.7/)
|
||||
|
||||
## 📋 版本信息
|
||||
|
||||
每个版本目录都包含对应的JSON配置文件,包含:
|
||||
- `name`: 版本号
|
||||
- `desc`: 版本描述和更新内容
|
||||
- `code`: 版本代码
|
||||
- `downloads`: 下载链接映射 (仅根目录文件)
|
||||
|
||||
## 🔐 签名信息
|
||||
|
||||
所有APK文件均使用多重签名保护:
|
||||
- ✅ v1 (JAR签名) - 最佳兼容性
|
||||
- ✅ v2 (APK签名方案v2) - 全文件签名
|
||||
- ✅ v3 (APK签名方案v3) - 支持密钥轮换
|
||||
- ✅ v4 (APK签名方案v4) - 增量签名
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "3.0.9",
|
||||
"desc": "XMBOX TV版 v3.0.9 (Android TV/机顶盒专用)\n\n✨ 新功能:\n• 新增直播开关控制功能,可隐藏/显示直播tab\n• 新增实时倍速显示功能,播放控制对话框显示当前倍速\n• 优化源管理模块间距动态调整\n\n🎨 UI优化:\n• 滑杆圆球大小优化至20dp直径,提升操作体验\n• 改进滑杆刻度显示,非激活轨道显示刻度\n• 增强播放进度条动态大小调整功能\n• 修复播放进度条圆球跳回问题\n• 完善直播开关逻辑和UI交互\n\n🔧 改进优化:\n• 优化大屏界面体验\n• 提升播放稳定性\n• 增强UI交互体验\n\n📺 专为电视优化:遥控器导航 | 10-foot UI | ARM64/ARMv7",
|
||||
"code": 309,
|
||||
"downloads": {
|
||||
"arm64_v8a": "v3.0.9/leanback-arm64_v8a-v3.0.9.apk",
|
||||
"armeabi_v7a": "v3.0.9/leanback-armeabi_v7a-v3.0.9.apk"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "3.0.9",
|
||||
"desc": "XMBOX 手机版 v3.0.9\n\n✨ 新功能:\n• 新增直播开关控制功能,可隐藏/显示直播tab\n• 新增实时倍速显示功能,播放控制对话框显示当前倍速\n• 优化源管理模块间距动态调整\n\n🎨 UI优化:\n• 滑杆圆球大小优化至20dp直径,提升操作体验\n• 改进滑杆刻度显示,非激活轨道显示刻度\n• 增强播放进度条动态大小调整功能\n• 修复播放进度条圆球跳回问题\n• 完善直播开关逻辑和UI交互\n\n🔧 改进优化:\n• 优化内存使用\n• 提升播放稳定性\n• 增强UI交互体验\n\n📱 支持架构:ARM64-v8a | ARMv7a",
|
||||
"code": 309,
|
||||
"downloads": {
|
||||
"arm64_v8a": "v3.0.9/mobile-arm64_v8a-v3.0.9.apk",
|
||||
"armeabi_v7a": "v3.0.9/mobile-armeabi_v7a-v3.0.9.apk"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "3.0.7",
|
||||
"desc": "XMBOX TV版 v3.0.7 (Android TV/机顶盒专用)\n\n✨ UI优化:\n• 全新自定义开关按钮(黄色/黑色Material Design风格)\n• 优化电量百分比显示(16sp字号,2dp间距)\n• 精简设置页面,隐藏壁纸功能\n\n🔒 安全增强:\n• 启用v1/v2/v3/v4多重签名保护\n• 提升应用安全性和兼容性\n\n🔧 改进优化:\n• 修复设置页面崩溃问题\n• 优化大屏界面体验\n• 提升播放稳定性\n\n📺 专为电视优化:遥控器导航 | 10-foot UI | ARM64/ARMv7",
|
||||
"code": 307
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "3.0.7",
|
||||
"desc": "XMBOX 手机版 v3.0.7\n\n✨ UI优化:\n• 全新自定义开关按钮(黄色/黑色Material Design风格)\n• 优化电量百分比显示(16sp字号,2dp间距)\n• 精简设置页面,隐藏壁纸功能\n\n🔒 安全增强:\n• 启用v1/v2/v3/v4多重签名保护\n• 提升应用安全性和兼容性\n\n🔧 改进优化:\n• 修复设置页面崩溃问题\n• 优化内存使用\n• 提升播放稳定性\n\n📱 支持架构:ARM64-v8a | ARMv7a",
|
||||
"code": 307
|
||||
}
|
||||
@@ -1,6466 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Created-By: 21.0.5 (Eclipse Adoptium)
|
||||
|
||||
Name: res/Wr.xml
|
||||
SHA-384-Digest: FeAkoiaPoF5YvAo8aUjaAXtB1MVdnVtBQraON8VOaekL5JNzvnQCXj9p
|
||||
bDx6K0yo
|
||||
|
||||
Name: res/Hd.xml
|
||||
SHA-384-Digest: AHWZWIqNT/CxfnhY61oLJvRYY3a4U+e3PFZGTBzFYL6LS/sXpakRifuD
|
||||
otX8UG5y
|
||||
|
||||
Name: res/9V.xml
|
||||
SHA-384-Digest: wm9MBE4JMYxF5HdcHFD39/KKOsrRg5fTaL9snzci7kHisXvkqgZMaXiK
|
||||
FIkYXMUN
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_colored_item_tint.xml
|
||||
SHA-384-Digest: KMw2PzElS+30umtOmqFkVq5ny/MJWk+60n3Q781K312XfV35a1gSheOr
|
||||
q2l5saWn
|
||||
|
||||
Name: res/uT.xml
|
||||
SHA-384-Digest: fNTm98/bW7GXlde1vfsjR3frZ424pxGSLwP+M7qc549yTJE9lx1DMFvO
|
||||
34KeCEWn
|
||||
|
||||
Name: META-INF/versions/21/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: TbyJ6qCRxCt/AybFjT/s7Kmwy4DxLE9BLAftCH11F6CbFHOduIhi1E8L
|
||||
feqYEqHJ
|
||||
|
||||
Name: res/color/material_on_primary_disabled.xml
|
||||
SHA-384-Digest: YesuHUuFqEjUqsq4V677Oj+vNWlWEy69qQIigKho3+TuNFRjFzhRcKLm
|
||||
gqOAKU74
|
||||
|
||||
Name: res/bN.xml
|
||||
SHA-384-Digest: Ep7zVkOgJ/JZ6ODeFxFLTlpMAGt27J+E/LHm0QCgyAKHSffAtiisT0vN
|
||||
GenoHYQb
|
||||
|
||||
Name: res/Jd.png
|
||||
SHA-384-Digest: Oqb0UknipYMIpk1ZU0j0Q1H0pd3jUfX4yU8dTgT9IsoLGLog+ATptxCY
|
||||
eAhTFGuL
|
||||
|
||||
Name: res/th.png
|
||||
SHA-384-Digest: KLRp/Q5xLQfrH8V0nCHSFJ4ikFpB7A1b6YWTEBqa79ZUrTu44LWe4zh2
|
||||
VOoAyQSA
|
||||
|
||||
Name: res/wP.xml
|
||||
SHA-384-Digest: CFuZ1t/AepikV2wHgjObm8Kr3FPfDAtUqldxDQ/F7wshB3g0KOA1H9Wj
|
||||
XP5dn9XU
|
||||
|
||||
Name: res/33.9.png
|
||||
SHA-384-Digest: IVf1Qf7BIIfnQFstpAKRqkElX2/fI+wVFLypUvOMcYKCz1VkNcQ4DgxH
|
||||
foNFQ62N
|
||||
|
||||
Name: res/7I.9.png
|
||||
SHA-384-Digest: 9G0UTP23Y6nDUdioQ5UNGJiupUfgQv8ukk963j6JDvdWoiOcrw4ze2UX
|
||||
5r6KyLAN
|
||||
|
||||
Name: res/NA.9.png
|
||||
SHA-384-Digest: B8KJ11miYm9JCfIC+A936hlIxbYk+hQFpW/R84b1jJAs7ETiu9BsrwxO
|
||||
kJom3art
|
||||
|
||||
Name: res/Q5.xml
|
||||
SHA-384-Digest: Dl+pzUm6/haDzZ6hBrtAF8VRURax1MVCHcy4Lvp+0u6bSznNKAnnW4gt
|
||||
yJn2Ke0E
|
||||
|
||||
Name: res/QD.xml
|
||||
SHA-384-Digest: k9Q7nPSdEdHo/jtnXBJjOui1BGFkGOnFeWwzf4tRcuXY69UixciZfjCF
|
||||
P1yBKVkw
|
||||
|
||||
Name: assets/js/lib/http.js
|
||||
SHA-384-Digest: TP64BIjKKOqmCaCzQ2qx4sPuijAHUZCKbOBMzNfIDmtc8/Duzkfdmjyv
|
||||
BE7opfYV
|
||||
|
||||
Name: META-INF/services/org.xmlpull.v1.XmlPullParserFactory
|
||||
SHA-384-Digest: oWMKhOVUCmOjRwR5xH7R6FS251zd/F5rRXXlLWopfw+bma/ESQ2Lgg4e
|
||||
FY7cbhI8
|
||||
|
||||
Name: res/OH.xml
|
||||
SHA-384-Digest: 6PLWkXdcE+5OdB1cGWjQ9UBOtBlpxkhTjdA9x+vZn+wm30tzqhaABINV
|
||||
6xDIeip0
|
||||
|
||||
Name: res/color/m3_bottom_sheet_drag_handle_color.xml
|
||||
SHA-384-Digest: UOvLdh8LVd0Oewu21tYILT5eFSX2R2XYTSgUyEquixG43H8cjWg7hkNn
|
||||
1hzXjXZu
|
||||
|
||||
Name: res/Da.png
|
||||
SHA-384-Digest: wzFng1EDL7kjdg17qp2oyinT2LjNz0IRhzv5pxk00AtLh3G7Z1P7+rUK
|
||||
LsB/tz/X
|
||||
|
||||
Name: res/5O.xml
|
||||
SHA-384-Digest: eVra7HdB8a34FKh93BGI7RkNBquDhNwMRTRzdOIYSrETaKp9W7fu3B/X
|
||||
tQzJY6Gy
|
||||
|
||||
Name: META-INF/androidx.customview_customview.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/tw.png
|
||||
SHA-384-Digest: NO87qio2f2gAD8Uf1LJIzLyrnKRqRaB/xqdZK2ccsQodEfPVG5taf6Vu
|
||||
o9o5W2Nf
|
||||
|
||||
Name: res/uX.png
|
||||
SHA-384-Digest: Kdx6cWrpF713zuAqoIjDhCHAs+A9ATE2nNrlSYDY5c6A3dvgV4STlVnW
|
||||
srSq2COy
|
||||
|
||||
Name: res/1K1.png
|
||||
SHA-384-Digest: aoJRQ3O4Bi3sqiG0FPmTqRW0x1K63uS6fGDbr/kDE3ScHJAwwjLV/NCC
|
||||
l4/cjZz4
|
||||
|
||||
Name: META-INF/androidx.room_room-runtime.version
|
||||
SHA-384-Digest: UV0/8VeF1BuHFKPPnZIqWGT2E7jYc/X6I1fP+H83pY8Me+l+DQRK0YpH
|
||||
I0kTqXfT
|
||||
|
||||
Name: res/TL.xml
|
||||
SHA-384-Digest: cWL+WiEGL/JWjqoDcyDZjKUPcitN6SBg99/NrTISSmVt3On2mYhvm/Vs
|
||||
QyQcGzSY
|
||||
|
||||
Name: res/0K.xml
|
||||
SHA-384-Digest: J7go12UHfiaPOl2H2TjZjRCcvSK7BmBHGwM/rw+L7yd98hDPLyQpCCZJ
|
||||
Wi4iZ1xo
|
||||
|
||||
Name: res/color/abc_primary_text_material_light.xml
|
||||
SHA-384-Digest: +KA798NtG+9aolNa9CrCeiiZe/lee4rQI5TTgAXTLai4yDT1cnWzqOFd
|
||||
Jlkpm0Xf
|
||||
|
||||
Name: res/hm.xml
|
||||
SHA-384-Digest: ZAp+uPvMfr5YYgaQQD96XsRWOkUi7pEcO+3LJh2uqCAybj4oj3HgYqt2
|
||||
EAXmz3FC
|
||||
|
||||
Name: res/et.xml
|
||||
SHA-384-Digest: kBYNwIPJ3YvdFjWNWaWn2zrD+aKWv3IKTZ567YEHh/hjUnj24SyhXd3h
|
||||
qnKD1AKs
|
||||
|
||||
Name: res/cZ.xml
|
||||
SHA-384-Digest: +Ev0didhwzfMXeOgl8ZM2XFZyaBQvvElzD3bYyENofjfHagBfqA/zCvA
|
||||
j7J4g3oo
|
||||
|
||||
Name: res/B6.xml
|
||||
SHA-384-Digest: aXOzJMkWx7O+xgplQezZTIjnzCq8peJFz0Y2eESzP8hUn8ObWC8OlRCF
|
||||
YCAumDFh
|
||||
|
||||
Name: res/color/abc_primary_text_disable_only_material_light.xml
|
||||
SHA-384-Digest: F2OQR9AOmaBufltABYRUjljPN58yi9Bpyg86Pi3RC4d8Niy5nzux5CM1
|
||||
FLtaC/CH
|
||||
|
||||
Name: assets/test_base_module1.mjs
|
||||
SHA-384-Digest: 2KaxZADKC51gWa714TbU38Vt7i5vfV0wUXFhChg4O4sC3obCOMpD8YaL
|
||||
51biqOg+
|
||||
|
||||
Name: res/_7.xml
|
||||
SHA-384-Digest: LcFsY3sWrskIg/lREszJIFaYDsl8Ui2t7PNp6P58LVLQg6Wn2AgOQi5X
|
||||
6qbFlNxk
|
||||
|
||||
Name: res/color/m3_slider_thumb_color.xml
|
||||
SHA-384-Digest: 7tbkIz6usR6THg4cM8fYICNQqNZXFHmqZ0gl7S5zuco5P/0lQqP7NUgR
|
||||
vR7G8f02
|
||||
|
||||
Name: res/sX.xml
|
||||
SHA-384-Digest: zv8rLcj8yhP8n7jpPtbQ1+xuQOiNDGJ7Ni4vulKLGm2YVxYLudY4sOzD
|
||||
e1Scsk7M
|
||||
|
||||
Name: res/color/m3_timepicker_button_text_color.xml
|
||||
SHA-384-Digest: v+9HkQ3B/5/yFrlFRyIY2s5RT0/WoMkWkP1DXQQ0s8B+QAdIWSv1oVPK
|
||||
WEo4wgJ0
|
||||
|
||||
Name: res/jx.xml
|
||||
SHA-384-Digest: AzKMuVQKyn8CZr663gvWC3rHUFeVbN/R1DkaP/KZ/dhwsMKiXUA1OFfd
|
||||
hi40whny
|
||||
|
||||
Name: res/color/m3_slider_thumb_color_legacy.xml
|
||||
SHA-384-Digest: OYF8ianCI1qfFryxqtQVB6g4Bj76e3vA51TGHUnqRSWMlj1LdWpjX0FR
|
||||
2uncfnbM
|
||||
|
||||
Name: res/UX.xml
|
||||
SHA-384-Digest: OYOKppsyj7G2Vtjfnw+7/UxWYNGvzvcs+ILm9DbLnkXIN2z05/6ZN2IQ
|
||||
bxbcTzE2
|
||||
|
||||
Name: res/df.xml
|
||||
SHA-384-Digest: 6+bRiFf3ZlwdQrq5CH9Ce+ZDfNJKQ38vAhBkuqIChUmi+mw7O4qlFKFc
|
||||
r568pbNL
|
||||
|
||||
Name: res/5z.xml
|
||||
SHA-384-Digest: jWlO5VVu7nJ0jjpbnhXMreHbw/CRfZYMrtgHpjkK3R2BJXTRA7SK/PXL
|
||||
agnizA6q
|
||||
|
||||
Name: res/bj.xml
|
||||
SHA-384-Digest: 9Ntk83v3uZIfZdnX2wKLpu2icOwNXX/Q8duriJH/Uy1sQtSLthAGB/DX
|
||||
yw80MyK1
|
||||
|
||||
Name: res/color/text.xml
|
||||
SHA-384-Digest: Xwrwje5d+CAbRivca2/PWjp4f8WzB03qatA8rCkr5DY6orT3YkiQC6Xl
|
||||
HeIxR7yP
|
||||
|
||||
Name: META-INF/androidx.savedstate_savedstate-ktx.version
|
||||
SHA-384-Digest: GKqkS0cvyjjgH1wxhzzW5U7S04+7atOY/hnmeP/2ShskJ+QcyWqyhIai
|
||||
b/q/Jwoe
|
||||
|
||||
Name: res/4_.xml
|
||||
SHA-384-Digest: mQ2QaJRDZWGArOB5VMp4LBNDixpZzjwWWAYUjdSddmtVeiKGNpIYw+k2
|
||||
PLotOj5j
|
||||
|
||||
Name: res/color/material_on_primary_emphasis_medium.xml
|
||||
SHA-384-Digest: O5cas8KBMg0v+OJHvW7MQPomgu5ejvFuACtz/ea1Bred+ldhNnyYyufU
|
||||
c9/17sj+
|
||||
|
||||
Name: res/hZ.9.png
|
||||
SHA-384-Digest: nCGpqni5PhvfilXFqTcZFqMHuecWmpOBBxo9qT33++to8FC7lHET8mme
|
||||
CRhYvSF+
|
||||
|
||||
Name: res/nT.xml
|
||||
SHA-384-Digest: uILCPcedOXKSiiMOTkFCyDrMPUSJQVGH+2Ym1xtDbpK2o4RnEQwMBFI5
|
||||
aybiWEAo
|
||||
|
||||
Name: assets/images/ic_search.svg
|
||||
SHA-384-Digest: /YqoVkuc+3Up7l65fDsdHmNwrW52N0GMUs19bHnIF/8XhbFA3/Pv47Q2
|
||||
+xTqScup
|
||||
|
||||
Name: res/s3.9.png
|
||||
SHA-384-Digest: RoYKlQTVPOxcdgOWQ1C83DWuDr3zditDKyI8mpLMTzM/GTqZ3yxegHGF
|
||||
uA8Zsh9F
|
||||
|
||||
Name: res/aF.png
|
||||
SHA-384-Digest: n9OweBXMmsKvavT81W56dg+DMy62M4pPV1JERYQyIQih7b59/Mi0AgHA
|
||||
7XF/lpin
|
||||
|
||||
Name: res/up.xml
|
||||
SHA-384-Digest: z9DGAVXviRdft4lf+UCkJ+3fVwCz+tn2Wh7vqyen2IPMDv9fTpGrSiAY
|
||||
n0nQ4ZxB
|
||||
|
||||
Name: res/yn.png
|
||||
SHA-384-Digest: Bp+ncxW+44yXFegXfxklvpr3EwVodWtZVlYRs2pXzF1anWUPfVVVQ93J
|
||||
KBJ932bP
|
||||
|
||||
Name: assets/css/style.css
|
||||
SHA-384-Digest: 25SWlfGdpPLqDl5oicXGnamLLQivbL5xLxLSxXc2Bb6oKrfDBoQZ9HKE
|
||||
ZwHr1ZQY
|
||||
|
||||
Name: XPP3_1.1.3.2_VERSION
|
||||
SHA-384-Digest: OLBgp1GsljhM2TJ+sbHjaiH9txEUvgdDTAzHv2P24donTt6/529l+9Ua
|
||||
0vFImLlb
|
||||
|
||||
Name: res/P8.xml
|
||||
SHA-384-Digest: KcmcKcHEJW7BYIEf10ceNbDUuT0c6xqAxy3Txrs5lMbeZzzd9AMpADw/
|
||||
NCjkcRB1
|
||||
|
||||
Name: res/color/m3_slider_active_track_color_legacy.xml
|
||||
SHA-384-Digest: dQ5r949jJvVphOFnkCQr2ZDH4tYwgIl1REMLpru78OOT3vQrgIRoWPJx
|
||||
miJXNokv
|
||||
|
||||
Name: res/gr.png
|
||||
SHA-384-Digest: j7KzS1tdRqP5iiOnZUdEydx6ER97Rn7+H5ibVq56ixT11oxtRhIQEALd
|
||||
9MY3U3UD
|
||||
|
||||
Name: res/i4.png
|
||||
SHA-384-Digest: 14Q+WIAO3mPU+og8nQpE38Pvdq5y21Qs3ZUms7DqNaiLzl2+6F9HWtXb
|
||||
IxoOqCaP
|
||||
|
||||
Name: res/oF.png
|
||||
SHA-384-Digest: LImcqq2kod5mC6MfrhbmYyk94R0cRDJ4ELIZxfzpc+SsqseQKHylCcgn
|
||||
l6Tw95EC
|
||||
|
||||
Name: res/gR.xml
|
||||
SHA-384-Digest: 1yqpH/6IxymCJRKLiDj+WjpVjXLL8eAHBnnDUwWyHiSCP4RhUHxjZGXb
|
||||
DnGGZuBW
|
||||
|
||||
Name: res/UO.png
|
||||
SHA-384-Digest: uZCUKm10coNOiaAS3vVWsQlXO3BQDzNVlKPfGdRPFn86N5IRhM2qEnaj
|
||||
gOKLWiyz
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral96.xml
|
||||
SHA-384-Digest: 1v9oEBEaT2F/B4S706RiRXc51Q+a66wkpzKOaOUWItNRgZFlAeSO2/pc
|
||||
MibJzemw
|
||||
|
||||
Name: res/L1.xml
|
||||
SHA-384-Digest: aiUV66RF+3I2z8lySBPW4ZW+1+dbF64gvn0PtC7u2ffoqxetsYwx+XXW
|
||||
HLMd+8gw
|
||||
|
||||
Name: res/color/abc_tint_switch_track.xml
|
||||
SHA-384-Digest: fR6CskVfknr/NLBqConi+kxVEUaQ8RE8x7WbA4uNIhZWbI6HCmW+I6Hh
|
||||
nSFIEA2J
|
||||
|
||||
Name: res/op.9.png
|
||||
SHA-384-Digest: 2mHHlTQgZ9qd97/zL8SY+wYgJYRXd0Ca72Igc4iOMUXkdkQm8O1XUN3b
|
||||
DLfFumKK
|
||||
|
||||
Name: res/kh.xml
|
||||
SHA-384-Digest: 8fP0GswmPAUOpSmZ4pbEq5q/p6mWFGOwy3LiUoU44bsQKDg+NeJCQCCv
|
||||
Z6PLzvFu
|
||||
|
||||
Name: res/M2.png
|
||||
SHA-384-Digest: MGbEeg3Tu6gA6C79pNs6OgzvqVaeXrXkHNipcBQ/wHK0Vfvzyh3AptVQ
|
||||
+Fj3hY/W
|
||||
|
||||
Name: res/gn.xml
|
||||
SHA-384-Digest: AJbY63dxr6yjSHZhLlOGJ00CiCbcSv178pMoANeW17ZpWksVZUBIMibm
|
||||
6a0OsCQB
|
||||
|
||||
Name: res/5D.png
|
||||
SHA-384-Digest: DF1wS5SuWtTn8q3UTfNhvBvi89B1qdfU7Qu/UtswZPjwgVOGvQOQsAe7
|
||||
fTbrEfCw
|
||||
|
||||
Name: res/qz.xml
|
||||
SHA-384-Digest: 7iC/kauCAZRBGzdo0GYLenSkn01v552Hbl3y2l6/+m3ySIWKRfwN7yYw
|
||||
N5xc4raV
|
||||
|
||||
Name: res/Mh.xml
|
||||
SHA-384-Digest: RrrWIvXaJvCxyegmSNubE66BcOCY0iK0lWK3+pk7qd7EbOTHas9AzsXy
|
||||
4S5rNSQ1
|
||||
|
||||
Name: res/color/m3_textfield_filled_background_color.xml
|
||||
SHA-384-Digest: I5tjWF3tU6iYm3NzT3RI6qZ2sM9uC9i/2N3OAj9/ICY7/OVKWbDALsPI
|
||||
H4p9xr07
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_default_color_secondary_text.xml
|
||||
SHA-384-Digest: /lty1GRN1Yo70zrjcI6F6jAB8eJqha1iUzSKRKWQus1xbcQzcHZTKH4c
|
||||
HMXiZcFT
|
||||
|
||||
Name: res/oB.xml
|
||||
SHA-384-Digest: 5d8Qo9B57aYwqBd+2gYdHBYVwoq+g1x0m/1ZLZTsUJ07n2JK2MMvi4Vr
|
||||
vCavlHZn
|
||||
|
||||
Name: res/GM.png
|
||||
SHA-384-Digest: yxAVrJXab24sZzkD/NnFm3h1YjjvERO/j00PtsZ1Uskx1qA2zpEuXXnf
|
||||
F+DrP4iK
|
||||
|
||||
Name: res/fd.xml
|
||||
SHA-384-Digest: fikEx1M9FJ+DapXNbaV+okkupGMAMssIFp4zX92bWPTY3bPd7qkS95qm
|
||||
EWNs2Cd4
|
||||
|
||||
Name: res/2T.xml
|
||||
SHA-384-Digest: RZnX85Me8QAezbSECuX0LHh5qsxyCn9wl3OIFXqorcZSmTk20yTsV2Jz
|
||||
ikD8GeQr
|
||||
|
||||
Name: res/color/m3_popupmenu_overlay_color.xml
|
||||
SHA-384-Digest: i0wGxbpQnziUY52oGnfJq5ruD+yjjwiYZk2UQ7CQR6Qyky0+bE5nKlbp
|
||||
I8hsvfKM
|
||||
|
||||
Name: res/YV.png
|
||||
SHA-384-Digest: rMiiTC7VuprDcGQPduQFLXQnskUlMrZmlcS2awkDI2QRY/Ps7+S+zhi3
|
||||
SnnAaK/5
|
||||
|
||||
Name: res/Z7.png
|
||||
SHA-384-Digest: u245Lf57NuB2CcWL/a0Fdw/MEm9nsE6fcgHbt48YHp4Oe2DSU63nt68i
|
||||
EOu4k6hT
|
||||
|
||||
Name: assets/dexopt/baseline.prof
|
||||
SHA-384-Digest: WN5SfC5zU5Tbkb7NNJzd6Jqywip+h3qEra3zaFRAl8jMdJpDPddGCpIa
|
||||
UPJhAIC1
|
||||
|
||||
Name: META-INF/androidx.exifinterface_exifinterface.version
|
||||
SHA-384-Digest: JSbQbclh2jKclz7IkGQq8Am5k+8z/fT/NGDXNjG76E/9UXFMKo1B0JfE
|
||||
J09pvEqz
|
||||
|
||||
Name: res/E5.png
|
||||
SHA-384-Digest: roUVOU3lWjYIu0ufxMqCdQAhG6Vj+JbxSudwLlL1o4YXzOVihxS0w3A7
|
||||
0JuT0Zah
|
||||
|
||||
Name: res/Fu.xml
|
||||
SHA-384-Digest: a2JRJaznkW9zbTYWaJ2WgnY5pJrskfawQiOQZzz3aKsUU4p1nxkJSL+j
|
||||
Lf/BNX6h
|
||||
|
||||
Name: res/QZ1.xml
|
||||
SHA-384-Digest: Svjexdh2oPS5KrAk+x6/phnAhpVklCWm5t+82ihPVPSkFzYt+LT2jeyD
|
||||
hkV0li5Q
|
||||
|
||||
Name: res/tj.png
|
||||
SHA-384-Digest: 8Z2ILIeh/ef4SRx/+mG6egFCU93eDapgDOIfxYyh+PlagyuaUPqv9bL/
|
||||
ss7lfrIf
|
||||
|
||||
Name: res/Gt.9.png
|
||||
SHA-384-Digest: Rx6cEGyWnpiDMzb2l9CyUM2PXOvElEvmNcOmbvR1ka1rR9Te8oLymht2
|
||||
UL9RaV+J
|
||||
|
||||
Name: res/Yp.png
|
||||
SHA-384-Digest: 4Fn4D83eQlZ+bREJCW4+AsnWfA6jtVn95pi6Q+sAWDYGuLU93Bc2Hs1z
|
||||
bFdHykHT
|
||||
|
||||
Name: res/lv.xml
|
||||
SHA-384-Digest: fRlgJAhCENJPc6m1ZfeF1BIcwQzKB4yxOV5xqr75MaotGBjUriC5dv6l
|
||||
zGJmKxRm
|
||||
|
||||
Name: res/_o.xml
|
||||
SHA-384-Digest: HuWBFlf876klFny//Rgc7EfL331YgPBbLivfTPnqDyLgbfZM3X/1P+WG
|
||||
/IEVoFSU
|
||||
|
||||
Name: res/a1.xml
|
||||
SHA-384-Digest: UYlNBlEHUQ/iCU35pmss0i0lqUbWakuj6t+62J1GKaHDgjmUKSuXa8u6
|
||||
GPZQAhM/
|
||||
|
||||
Name: res/jz.xml
|
||||
SHA-384-Digest: kFSL3btGDtxiozxA5yyd7Y8SormB/YQqvDXU4tLpZY+X9vhEGT83rbjU
|
||||
H18znDTh
|
||||
|
||||
Name: res/PV.xml
|
||||
SHA-384-Digest: Wdim9MiZ8C8WgzvQu8RDttuxwZn36cPKztaXvtbzUtyIsAxr+qN1odnn
|
||||
m1sid9/r
|
||||
|
||||
Name: res/Q7.xml
|
||||
SHA-384-Digest: 7KOyrg/v2gKgmTH3fgs9+eqEqXw9g2S3wUIUNmKR6V3J4+SbuYPI0gVZ
|
||||
rpQVd/NK
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/didl-lite
|
||||
-1.0.xsd
|
||||
SHA-384-Digest: 0WBLD7oI+t42TzR1++lY32QUFmLeDSoQoCveG1+gUubvsUX/s7+6gEU5
|
||||
1cSeQiem
|
||||
|
||||
Name: res/3U.xml
|
||||
SHA-384-Digest: g5nnTaKRQlcAjOLEn0aBbGMLIcj+QqEANG+A2cnJ9NAC2PXmQSXlvKX/
|
||||
X3Hx3xoZ
|
||||
|
||||
Name: res/46.xml
|
||||
SHA-384-Digest: TxCetxaAWg63BiErctiZGpUxfJ3DG4/wu4bnKFrdtKKV+sGqEi80kRGU
|
||||
dh66/GON
|
||||
|
||||
Name: res/color/mtrl_tabs_ripple_color.xml
|
||||
SHA-384-Digest: 56r7LtTtHv5UbmtHSyTvLdw/7Lk6A8gp45sW1o1A7pprM5InyXMZ3miR
|
||||
osclmmhV
|
||||
|
||||
Name: res/My.png
|
||||
SHA-384-Digest: Y5WU1ffZ7NEOS2MsJG1TXc9RUe4iNlwvf0jOieiqmElAwdrvS4TdiA8p
|
||||
5FmaxRJb
|
||||
|
||||
Name: res/uR.xml
|
||||
SHA-384-Digest: xn0hHZptLlC3Md2l8AN5P8WIeBnPjlo7ikVjWYEJjP9FvsTJPP+UtSHt
|
||||
8vfDokCA
|
||||
|
||||
Name: res/ec.xml
|
||||
SHA-384-Digest: OjYxlix2hptDp+uKTl5ffvjEYFq4YExBG2Jfk9Xf1i8vm8xrMHDCMQl9
|
||||
VttbnWtB
|
||||
|
||||
Name: res/pn.xml
|
||||
SHA-384-Digest: pX4NdvOwcig10llXsx3bpu9MuuACaHdsQlqajDTjl8YkNzJvLLFkCLpj
|
||||
d18lSkt4
|
||||
|
||||
Name: lib/arm64-v8a/libjpa.so
|
||||
SHA-384-Digest: xt5vpJuLid1NjkUDpoYj5Bqig+hoptx/k+il+CdPlCeEiMXxZO81Tzvl
|
||||
E0hGK6DY
|
||||
|
||||
Name: res/5U.png
|
||||
SHA-384-Digest: LDpNnOBGQEQ7LArP33nwEVsY4PIKCvWc6VacJ9Wn6vqXKxZul9fY85Qx
|
||||
ekFnoEOv
|
||||
|
||||
Name: res/YW1.xml
|
||||
SHA-384-Digest: kuqc3W+bteryOxjPXQuLlxOA0HCywrLJCnaV5IbXzLLc0xHARDFQrR3H
|
||||
g9UAfMaD
|
||||
|
||||
Name: res/GK.xml
|
||||
SHA-384-Digest: wN25YKIx3RuMvZ1SI/98UYNqLn1EcOZDZcWnUINe8wypd6pJj0ma9iwP
|
||||
e1jesWFf
|
||||
|
||||
Name: res/ZM.xml
|
||||
SHA-384-Digest: jJBBaY9/Vsb60zxv/1KweGi1Vo9MLDN01zH1GqQBLwDncLZyoeOoCNGK
|
||||
0hvGTkvp
|
||||
|
||||
Name: res/Ui.xml
|
||||
SHA-384-Digest: bXYSx5E2G6GP/t9R4xumxUNTJYLPmvXLfzq4mZsdhHWZko+K+E6aOsMJ
|
||||
MGT7a5C0
|
||||
|
||||
Name: res/8s.xml
|
||||
SHA-384-Digest: vwPOyn9EKUjvLLqfSgIl1LvOOpgwYBB7vnY9F7id6FGVkS7iqecKVmuq
|
||||
PppMNGmV
|
||||
|
||||
Name: res/9T.xml
|
||||
SHA-384-Digest: FYmHbSuXyGKX/nwewD/dokhrBRkG2stWV1vTgRM9LQnvVUuxZ/fzrTlq
|
||||
iHSIWFDM
|
||||
|
||||
Name: res/color/control.xml
|
||||
SHA-384-Digest: OFg809tgpX70ka6nLYGrXCYdXCZjsiN0XgBJwXflSOPVP5KiS94zVvco
|
||||
0IRFIUZj
|
||||
|
||||
Name: res/n4.xml
|
||||
SHA-384-Digest: MxNb5UJZ1jWck8uhwREmAx/CR7KikqDp7xCP8GcQmYfbmVkUWYLr7r2N
|
||||
07m5ImAf
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_primary_text_disable_only.xml
|
||||
SHA-384-Digest: qR6pgd6+pLD2ulXMzQ8ReuXGP+oxhJwP9hv6NHDu6aAC8/ZqI7VsOkgk
|
||||
dZKCs3Qj
|
||||
|
||||
Name: res/42.9.png
|
||||
SHA-384-Digest: mPSo5bc65hWHDMNm404QqLkiTzN7o91H6pvf/wWJI+r5s/KgbBIM10os
|
||||
K29UkTHN
|
||||
|
||||
Name: res/rJ.xml
|
||||
SHA-384-Digest: zlMa0A/AL/qNnzwF2kZC+/fyQJVMS5dDaGwujDBrYjLpVir+qHSy8zIY
|
||||
ZXaHzYgL
|
||||
|
||||
Name: res/EZ.xml
|
||||
SHA-384-Digest: XLp9dqT9dsqcWQO81eTeReawmfs28CMLmed+f7Dm1ZBn5f9AUN6eF6KF
|
||||
4kxCod56
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/native-image.properties
|
||||
SHA-384-Digest: zoA9KmEQ27nYb73akBKARExO8NXH/TambAFsa4m/FTv7keWTOeP3IP4O
|
||||
TPWGMve8
|
||||
|
||||
Name: res/mf.xml
|
||||
SHA-384-Digest: Abe/380hXlxRFuCMI1hdhNrdj8RsLSNw5pUsZmptTYlDZQjXe9nLdlYK
|
||||
M8Fnx9cO
|
||||
|
||||
Name: res/JS.xml
|
||||
SHA-384-Digest: cyGojguDoy2TZDXoBpdfSDP6cu6yM8ip+N8wJlvU22Esb3qEg+hsZy8n
|
||||
Layj68Zk
|
||||
|
||||
Name: res/color/material_on_background_disabled.xml
|
||||
SHA-384-Digest: k4jU/7IJi24ZHkfD3zEGtOLX3mspQlfhyXsCC/3g3s/p7l4AIB8CbItC
|
||||
PNCm82LN
|
||||
|
||||
Name: res/-6.xml
|
||||
SHA-384-Digest: 95OQ1AeTyf3TqdZ7PbIISt1BaaodRiYAT1vgcWZzASGr2+aO7z2Zkdq4
|
||||
49An+f0u
|
||||
|
||||
Name: res/9T1.xml
|
||||
SHA-384-Digest: 9zBKtI3bYheXQsE8zWwwMnhhz56eEMOy6dQ+IXciP7g71ZDUP7nx19yk
|
||||
PV1qASYP
|
||||
|
||||
Name: res/color/channel.xml
|
||||
SHA-384-Digest: OjiL0+LkUy+96LJhhzb3WK5lp7FnqCmWYFQl7JBjfsl4v4XfolDObF1H
|
||||
Lh77ATYK
|
||||
|
||||
Name: res/ue.xml
|
||||
SHA-384-Digest: 84xKNIV8UeBUQ2Y/Nr4WWVuLjFF+ncAMBcq3bzF8sHU6Q7ZoW6L73euB
|
||||
fFpMG0Qa
|
||||
|
||||
Name: res/vF.xml
|
||||
SHA-384-Digest: ROaU9LjrLYWPQvTsB7RkCQ3L/xjPU71N35zBknFPVRaU1H6dQPDfe2Al
|
||||
affI2n0a
|
||||
|
||||
Name: res/k0.xml
|
||||
SHA-384-Digest: 9KtC5L3WqzEOtDU7ctTpV6UTVfnAbQAjXYPB8bBzp02hTMALVQZDEVe+
|
||||
OworOwtV
|
||||
|
||||
Name: res/color-v26/biometric_error_color.xml
|
||||
SHA-384-Digest: QJWZUZr8qxJDBzbKQRU02yBWVgKPNzt/ssA2UTKVjs64qGeg7zHZzQa+
|
||||
iwxYY2kq
|
||||
|
||||
Name: res/Tl.xml
|
||||
SHA-384-Digest: VshqJqLJyEYJ2aW1+DeTM02cKzCOED4siTM6iF1fuF6QuZCiD8GGHc3G
|
||||
TeOHv8Nn
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral24.xml
|
||||
SHA-384-Digest: +DUAziz7hhwERxiMV0zPxc5V5Ui7Y+H0sW5m4um0UqXvmTNnVJSRKW+x
|
||||
Bj22UCLZ
|
||||
|
||||
Name: res/fS.xml
|
||||
SHA-384-Digest: /GIIpYe90jtbk0TAy8w8Gze9oIq6fxoBohc4/gxnD13MuzHbG18q0+R+
|
||||
+3y/3PfB
|
||||
|
||||
Name: res/vq.xml
|
||||
SHA-384-Digest: nef+/IEF5DYoEQ575wsVqCqEQLURvrGxaaxnnFSfFPNLYxts9RgqrfU/
|
||||
nBm5QK2X
|
||||
|
||||
Name: res/Dn.png
|
||||
SHA-384-Digest: YzSqbpxgBKCSDW4xgow5bnb+5Gja1FDMhL17/GnTWWVb04aCa46ySiBn
|
||||
EQox/Qed
|
||||
|
||||
Name: res/R2.xml
|
||||
SHA-384-Digest: MkWWt9ABSbm3lwVxA3Mn+Q2KEpMPMkwo+rTtfJM5HTapEqZlSGadnQsI
|
||||
/RZdU/Nh
|
||||
|
||||
Name: res/bP.xml
|
||||
SHA-384-Digest: d0vGs4aP2Gmw8z00JY1B5T8JOz87KPAE277WV/XW9/2m4ci2xCryl2ZQ
|
||||
wnjiIva8
|
||||
|
||||
Name: res/A5.xml
|
||||
SHA-384-Digest: CcL3K3IhPejDL7vlF125QEGIkQMK32QpWslU36sxM+MY05+xNSp1RS7z
|
||||
scnRJEVG
|
||||
|
||||
Name: res/color/m3_filled_icon_button_container_color_selector.xml
|
||||
SHA-384-Digest: eEaqCehgVA/tYJc9HgiDwjg+UccPlJBWy1Q8bwyiXIzHJpl7EWOmwDE8
|
||||
Y0FQ80Ir
|
||||
|
||||
Name: res/PC.xml
|
||||
SHA-384-Digest: Kr1ULgonhmGHIXVBdvT8cDe61scWRfn7N5b5qIBmGio6+YJXAYVPoWQQ
|
||||
2mX/Li2Z
|
||||
|
||||
Name: res/q3.xml
|
||||
SHA-384-Digest: nOyrsDhw5Bc4Fc3/Jc5bmm0Oi/ih6Cq3C4iSQ5YfuMnePMiPEwZcNGlO
|
||||
xBew8p9y
|
||||
|
||||
Name: res/DC.xml
|
||||
SHA-384-Digest: 17po52XCQq1Rq1mrUJmFnHXAJDM+2uNyueqyGeMpFA8hb8+b90FQCW1U
|
||||
gi+1JrsH
|
||||
|
||||
Name: res/K_.9.png
|
||||
SHA-384-Digest: eESJ87PAB5imn5TEymPNi4LyMWKZMbqnHg8B6hdx/zBfU5/NV+TcB9mx
|
||||
jakNa3SV
|
||||
|
||||
Name: res/color/m3_radiobutton_ripple_tint.xml
|
||||
SHA-384-Digest: Y1TOlSl3i/wpkShqGFzlPW0hFc/6wtGQfo82GORYjV1afJv3yMm02m0r
|
||||
q+FTRExW
|
||||
|
||||
Name: res/Pd1.xml
|
||||
SHA-384-Digest: VjvhwXiXMtxlPTfYH4hKWOMAhD4MLpFjcId99dFMXUb2U8SBMzSrL/pn
|
||||
999mmEkl
|
||||
|
||||
Name: res/Ge.xml
|
||||
SHA-384-Digest: Eez5R13kFSBv9eUf8OqiITYTzTtyglGXciKCNuf5XjhxILp/tdvfHsZK
|
||||
lOvYRMfx
|
||||
|
||||
Name: res/ue1.xml
|
||||
SHA-384-Digest: Hx6xFtfcyii3PcntfUZAlltKDKakh5WDilAUjBsYsYbQTcXFVnKf9T4a
|
||||
qP+rRr7c
|
||||
|
||||
Name: res/d5.9.png
|
||||
SHA-384-Digest: 1pJffwQDbudFW0UT7IW3Mrpy4VWJkYAOWaVYQ76NE2vqjWL1F9BZtBnd
|
||||
5zzsSr2h
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_hint_foreground.xml
|
||||
SHA-384-Digest: hAPyndSThJroXhvhge/Zg3/eqVwwuK2+RaN5pqkcymYdoXIiU1mhcsvY
|
||||
h+O+82xd
|
||||
|
||||
Name: res/J7.xml
|
||||
SHA-384-Digest: Bw4DTZDYI2WAZBh5mXbUAv1hJRffbHTGYgNPndtLWn9bRo0W+wr3xWEn
|
||||
81qp3r+D
|
||||
|
||||
Name: res/aH.png
|
||||
SHA-384-Digest: 3fFbapzioLu/jthBJbI4KV+Nb0xEEM+UR5IwRv2DrlPvt6T3GXyDokRN
|
||||
PZrAK+41
|
||||
|
||||
Name: res/ZN.9.png
|
||||
SHA-384-Digest: yrP9TXwDnxlVlFaEEvBiLDs0fYQtDMFeNMmEOoCjzdxG5q+jqvYDn/8f
|
||||
WpV7G2ol
|
||||
|
||||
Name: res/color/m3_tabs_ripple_color.xml
|
||||
SHA-384-Digest: in97cW982x4QbaP48PYftYvfJPIzcZtSEhKQ6XQKclD8yowEHr5C2Qwg
|
||||
h3fqWXDG
|
||||
|
||||
Name: res/6P.png
|
||||
SHA-384-Digest: mrmjw0mjbAxELlnDFOv3s9ZgyCPOrIjFmejcU+xPQKPqQXmDft4eLUXr
|
||||
bkn7FPub
|
||||
|
||||
Name: res/71.png
|
||||
SHA-384-Digest: XEJB7J/SZcKhwhAdCOZVJ3njoYJPs8yO8Fkn4jM/6gAMmjwJMa4IGobL
|
||||
EaEzvX/p
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral94.xml
|
||||
SHA-384-Digest: PUCn1qXxIc2PGgK8lMWdRkiuX7xwQSHJEMcK+jyVAgsZedoZl73shdVl
|
||||
J09/UiYO
|
||||
|
||||
Name: res/0Z.xml
|
||||
SHA-384-Digest: kb/0ytJQEf1UBoMoL9/H3RtiroSryOW7rqv/SdwEEdXiDjWHJ1spT2YF
|
||||
DKqAzkZi
|
||||
|
||||
Name: res/iZ2.xml
|
||||
SHA-384-Digest: 7wCEzRceKWHz3CnKXM6UhfP3tkm5siSBRLZ/VriSrQqq0sD5KZXNvowM
|
||||
hlCXP3JM
|
||||
|
||||
Name: res/ui.png
|
||||
SHA-384-Digest: QlSK28TFVjCMcwQ2C/XhV3nQDqGuhE6HzHlwpqGutsBMrCKPR+2DmVyd
|
||||
yzOsIonj
|
||||
|
||||
Name: res/BT.xml
|
||||
SHA-384-Digest: IFDOZ9flIvGTjisQn89cmhSWDxtXY9Z16zTXEgG3y0jo63/SDhKTE8Sw
|
||||
FpApqGfp
|
||||
|
||||
Name: res/C5.xml
|
||||
SHA-384-Digest: eFXG9PFQusOcIhhj27lN70xscVTy6nAJjCfI6wnzO5Diu3IaiE8WKouO
|
||||
vPvKulOW
|
||||
|
||||
Name: res/m9.xml
|
||||
SHA-384-Digest: oSLbN8D/cQt7i1iwAYXBBzpWGdGI3z3bNQV22sjY1/RyornOY+Tgfgcl
|
||||
B3xChOch
|
||||
|
||||
Name: res/WV.xml
|
||||
SHA-384-Digest: fq8xhJnyIpgfZ6PgjdLJBxpKyktIv0rmjlQDB48mAzPh79QdG3tp/D5v
|
||||
kLZzWuMT
|
||||
|
||||
Name: res/je.9.png
|
||||
SHA-384-Digest: GM6DropB1WPtGKZaNfFGVgWaCZpeeUB/FVYtaRDaT+/kCwdqpYHOw66l
|
||||
I3z+1LjQ
|
||||
|
||||
Name: res/zZ.xml
|
||||
SHA-384-Digest: DziOQYus0Go+hBX014pq5eUXHNvSHn6arLGt+2SCn/vOR3tggj26LLYG
|
||||
jcCuQHti
|
||||
|
||||
Name: org/eclipse/jetty/http/useragents
|
||||
SHA-384-Digest: OLBgp1GsljhM2TJ+sbHjaiH9txEUvgdDTAzHv2P24donTt6/529l+9Ua
|
||||
0vFImLlb
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral87.xml
|
||||
SHA-384-Digest: qISo5KNF0qtO7ou/8owkcbHscTSw6zqM7uSLL1I9VCv2ysfIcRn6EDar
|
||||
F+702Xq2
|
||||
|
||||
Name: res/F81.xml
|
||||
SHA-384-Digest: VtY1IQ3fkY7ApGaadFL2Cc2y1Ah3ytZdf8RhgznvQwO+Zfaw7iJRovDT
|
||||
swXL5uLw
|
||||
|
||||
Name: res/H0.png
|
||||
SHA-384-Digest: IXo9hdWzW4Gez46KG4pE6RUVNvndxX9EnsjV4k9EPRkohCtdxYtcKYXV
|
||||
7VWq0l6s
|
||||
|
||||
Name: res/gt.9.png
|
||||
SHA-384-Digest: Aym71FO2CVqw2AZ7Uv9UVclTisH74z5fkTdgSBfn1Tzpl7sp6G8I2rta
|
||||
xJWuM3Ek
|
||||
|
||||
Name: res/i6.9.png
|
||||
SHA-384-Digest: 5saK/9F86JOU3TF87QIF3GPAcUqcpHSarhssZo7Pxq0sU7rkA0v/uKgG
|
||||
4V8qv6ij
|
||||
|
||||
Name: res/Gk.png
|
||||
SHA-384-Digest: yltiAYUxIm+8Aa1A0aJ2HMIfWePzx7x9P8xv7B+etjAUTOcOBXg36z7f
|
||||
A9JfQeh9
|
||||
|
||||
Name: res/JQ.xml
|
||||
SHA-384-Digest: EjyVvgfkkLyIuLucLL6itRzwcEEFmBrxxeJ1HQAbQfJgb09H/gN/OC7g
|
||||
wGZTIFcZ
|
||||
|
||||
Name: res/K2.xml
|
||||
SHA-384-Digest: Qip9yidSomcdPnhbQQNxCCdLNCmH9H6a3sFruxWuxx0+Mq1CXC0tP4tH
|
||||
QxjBSrEE
|
||||
|
||||
Name: res/LO.png
|
||||
SHA-384-Digest: VB2bOfx3LZk/iZWlV6iTomOQvnajY6scS8Sh3E+8GDCjoRRnQ5jLptsI
|
||||
X01k/gJN
|
||||
|
||||
Name: res/SV.9.png
|
||||
SHA-384-Digest: d2WYfSqhipZtFz/10oM9aQ+SrnEdLsoXqdl+acV0KAYDEeTPfyYora31
|
||||
fJEFQcZM
|
||||
|
||||
Name: res/Ei1.png
|
||||
SHA-384-Digest: IxN6cbnj2iWExNMYr9xtK+Idt+s4Qa2XnfYgwIUyv0AAZqwOphyM3FEn
|
||||
yggggzCx
|
||||
|
||||
Name: res/2R.xml
|
||||
SHA-384-Digest: VSw2P+6IW43elTUAHvQEUFYWxFdGjVOCuvJdSOQr5pV+XvJbd06Nu02E
|
||||
JXEiEuQ6
|
||||
|
||||
Name: res/color/material_on_background_emphasis_medium.xml
|
||||
SHA-384-Digest: 6zIgHcajUOFX1vPXhDtbwAKRGcfpHr1TPDdhU2zAc8duVQPbE0vdK61b
|
||||
A06ZpyrZ
|
||||
|
||||
Name: res/color/mtrl_chip_surface_color.xml
|
||||
SHA-384-Digest: FO7XDf8k2xCEmr4rDdkvfQPlWrSXSnxMR4UeQxyBrzO+yF/24q0cC9vo
|
||||
YrjGTR2H
|
||||
|
||||
Name: res/hQ.png
|
||||
SHA-384-Digest: oxPEplp0ad+5ArJlMcMtdKtxfX79OqOcCUHuGz8ylZeVJs+8By5/3gut
|
||||
94hbrPfO
|
||||
|
||||
Name: res/zz.png
|
||||
SHA-384-Digest: NVOpsBUTPuIsAZWR2l+ot4esv0pPIb86Y3AuVluQmdCJYYGLdFCLuDSl
|
||||
BUMPoqEF
|
||||
|
||||
Name: res/gG.xml
|
||||
SHA-384-Digest: l4JE9QWHG9QLhX/VEUUH0tDl6LYILisVGM2UClhFnLM4L9b2lO4/S/I9
|
||||
P2ZgAv6v
|
||||
|
||||
Name: res/Qd.xml
|
||||
SHA-384-Digest: Miya4lxGrxH3l+TFD/dUzqLtEluOXIc3iyEU7h502RhWlZAByMt15uct
|
||||
6JZDTye8
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral17.xml
|
||||
SHA-384-Digest: u+415B7NXRUkxSlNWa6CVsLKfoy+9fhUAndnGwZTSzW2iFBJ3weoxJ00
|
||||
Gkk4hf/7
|
||||
|
||||
Name: res/qD.9.png
|
||||
SHA-384-Digest: r7PMJQkxoif1yuWmFAG3geHHjf/7rZtL22unZ2L8LSgiTInCzEtZW+eo
|
||||
Nqam95mL
|
||||
|
||||
Name: res/dw.xml
|
||||
SHA-384-Digest: /zAMDAxqV7lRB0YfEbayd1r+zsFYq5C2kAb1Nj0ez1FZD0i+EJoBDj1V
|
||||
Nhu5oTZt
|
||||
|
||||
Name: res/hq.xml
|
||||
SHA-384-Digest: RZoi+OZDvb3rG2RGQK9XaXK31aqWuCTjgpREG0Xd3carex5ph6M6ij9J
|
||||
KfmROVdu
|
||||
|
||||
Name: res/iR.xml
|
||||
SHA-384-Digest: x/7//Q9D+h8PFVNYAKljiSUp1QWx3KtyYBtnkhL8mNV7+23n886UnUrD
|
||||
593ckCNr
|
||||
|
||||
Name: res/j3.xml
|
||||
SHA-384-Digest: V7EgaVVsyPUduOpE59I+YkbMBhsfy7o7K/AdXFdxemmFusirdrAqJzcB
|
||||
7GlUEyTS
|
||||
|
||||
Name: res/color/mtrl_chip_text_color.xml
|
||||
SHA-384-Digest: uXvqwuZMhuEtKH7Waek+fugWAGMpmcDnKnIrYi9iuGn4rvsv5JJ2H0/F
|
||||
Cw1r1PGY
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_highlighted_text.xml
|
||||
SHA-384-Digest: Tny/3kKc2UKPW3nlUFtIa5ILvdB7m3G3EipIwFOkvx1rh2UQXR4t37ja
|
||||
Hj7h1YRy
|
||||
|
||||
Name: res/color-v31/m3_dynamic_default_color_secondary_text.xml
|
||||
SHA-384-Digest: swKf/VGzGcYMqcNDlDDxhTbR/SJVdGJDuj8yFsN1G7Z2+9UmjWaLkmFR
|
||||
XpQcP5sn
|
||||
|
||||
Name: res/color/m3_assist_chip_icon_tint_color.xml
|
||||
SHA-384-Digest: 1VnvM5IwXEepy3/Y41yZQWx8Sgvl34URlVexVW+Kll3Ybe0Ed5fcddpd
|
||||
FsjzuEO0
|
||||
|
||||
Name: res/Af.png
|
||||
SHA-384-Digest: gVWqh5SeslkT0fAiH1h7NEazWYt7JZbc2ZhxKx2grDUi529J43dr7927
|
||||
tbi+z6O+
|
||||
|
||||
Name: res/vz.9.png
|
||||
SHA-384-Digest: P90hzyqp0rUqUS7IY+wMiK9H89oKMOEZz80/vCmVQ1LWdjB4WDbYjHCm
|
||||
2sDPLz8W
|
||||
|
||||
Name: res/color/m3_navigation_item_text_color.xml
|
||||
SHA-384-Digest: 3K69gXMZwRsFDF7sK0GpWziPCLH5vlecGMkesoIaih1/OMBjL4wrgAps
|
||||
HN4kCxJQ
|
||||
|
||||
Name: lib/arm64-v8a/librtmp-jni.so
|
||||
SHA-384-Digest: wCFm0zIepO7lFh3NRnbfXKl7jouYe6c7RTB0VEc2gbPQumbEEZe19awH
|
||||
kezd2j/2
|
||||
|
||||
Name: res/LU.png
|
||||
SHA-384-Digest: UPuajBV5lf8qhW8VfeuMi9nJHhB+/+W7WUuZVfhMKNzbqKATc1Gl51cg
|
||||
0LzUKmYL
|
||||
|
||||
Name: res/color/m3_textfield_input_text_color.xml
|
||||
SHA-384-Digest: J5Pt9S0OfEBa8XdOmccj6RuXTFeml8DteYLi/lrfZhGQZ/hcjLMyIOho
|
||||
Zcy6jOBy
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral22.xml
|
||||
SHA-384-Digest: YkMWn4Z2kgNIPNk9VAgTJOi90XiA8Yap+MQVo9uq+LCC65TnQrU1Ewci
|
||||
1hoajbOv
|
||||
|
||||
Name: res/GI.png
|
||||
SHA-384-Digest: UPg6JipGtnVqa+V9pAxlvUlX2qZ2vIHu+cjbprpR5edk86p6kynologh
|
||||
heIOlUE3
|
||||
|
||||
Name: res/80.xml
|
||||
SHA-384-Digest: R1a/37fjMlKvwGDfcGRswZLvV3n4vqfxOB7lEVq7aLr+GZcHa6/Qy/3Y
|
||||
qPP/pOzy
|
||||
|
||||
Name: res/GT.xml
|
||||
SHA-384-Digest: 7dldggjbq9ZzB/ueuGr2WLEKimcct0o4b6HswbAMaR56quGKfuTlvzme
|
||||
HJFDMS+I
|
||||
|
||||
Name: res/pw.xml
|
||||
SHA-384-Digest: GFJDS+Chl+xho4AZA/OouCL7Yy0LBU1W1tZRUislA42IA6sqOtUwSOC9
|
||||
mPNQfLbr
|
||||
|
||||
Name: res/lE.xml
|
||||
SHA-384-Digest: 3lPKnTSobiE8Rr+uXofw+vjIBGCKB61dkTIKTuq40BrObDWkpgzoo18T
|
||||
/ilHlm+r
|
||||
|
||||
Name: res/M2.xml
|
||||
SHA-384-Digest: eCwlJl+yBlOzL6Dq8XzWpgYUdZOdvG6+Qc/UnAZbVIC4/a568DxHPjP9
|
||||
JN8dURZh
|
||||
|
||||
Name: res/Tf.xml
|
||||
SHA-384-Digest: aTgijDl3TYd8qiM3bXA2bO8mhG1qmwehQeYL9ieIgHrVP7N+s3KwsinJ
|
||||
cFig/7VP
|
||||
|
||||
Name: res/kN.xml
|
||||
SHA-384-Digest: f8DCT47F+3+KpTX9WBxbeXun5G2sXtETk1HZ2UTLwdb1q9+YfpqNS3C/
|
||||
fd7Xf0w2
|
||||
|
||||
Name: res/color/mtrl_card_view_ripple.xml
|
||||
SHA-384-Digest: JprCdnqYc0z0fkk353xqVPQESv6+mfkFhx+kol8ueuPwtZ1aln1otSfs
|
||||
yQB6Z7xO
|
||||
|
||||
Name: assets/shaders/fragment_shader_oetf_es3.glsl
|
||||
SHA-384-Digest: I555BTwdOdG5C+6IbgTSfDYAy3EVcJI8mDM1AGs6N6Ry+RJvEzqPuNf9
|
||||
nMjBHrxu
|
||||
|
||||
Name: res/U8.xml
|
||||
SHA-384-Digest: XzXjsj6MdJ/8uYRa5s3Dz2afgp7RAw05vLJoTdnU6PLgWZAQSlH4URGW
|
||||
yX6Hf8C5
|
||||
|
||||
Name: res/IP.xml
|
||||
SHA-384-Digest: GV/yWMExpCXKNlj7hHgL1XuibbSIyQUZAJblmUSkjxGqk7dRKG2uf15v
|
||||
PuT3+qS2
|
||||
|
||||
Name: res/color/mtrl_tabs_icon_color_selector_colored.xml
|
||||
SHA-384-Digest: kDZ0EzWPsJymrOf7iHTxejP8w4Hw9Q2NVFU5RECHrSYsbWzOsueoiIAX
|
||||
hkP0n7v6
|
||||
|
||||
Name: res/gl.xml
|
||||
SHA-384-Digest: puRbJCWKKi7WBRqcp1d1+JXxgE1HBswvtnzGX4ybIBhnMFnXLEgtbABz
|
||||
R5eqxwqG
|
||||
|
||||
Name: res/hM.xml
|
||||
SHA-384-Digest: 19+yZawccs9EhweUprGAB0S8Sk4fhpVIYddpivJax8tVd5d+Gs25v8Uo
|
||||
bKUfD04c
|
||||
|
||||
Name: res/L-.xml
|
||||
SHA-384-Digest: XfEsi8CzW0/9H0/RykbKushhj9HIXmUXL/PEFLcUkzi8jzzgTJ4EfZTl
|
||||
Als8pedY
|
||||
|
||||
Name: res/Yw.9.png
|
||||
SHA-384-Digest: +m6ZqWwLgdXDiGcyKo0XI4By0/S2iG+wTVRQqaOMzu8FrJ1TciZSZkNr
|
||||
o6rwJG5Y
|
||||
|
||||
Name: res/3b.png
|
||||
SHA-384-Digest: fOAbd4RDej3QAWMUPlUDr8eiYnKG7aNX5NQdPgwYn0psI+blI7R49k7Q
|
||||
hELxC81d
|
||||
|
||||
Name: assets/test_polyfill_date.js
|
||||
SHA-384-Digest: rZevJ4OmeBb5grF0xMDi1r+PHvfWkCXulKcGQqMkbrlUvgryv0NFGsD7
|
||||
0UhI/FQ0
|
||||
|
||||
Name: res/li.xml
|
||||
SHA-384-Digest: wifOwUz97P57yPB10FoU3l1CXj9CLjh14iIMxS1vZ2330lXlv9AqJagY
|
||||
AvQl4O6Q
|
||||
|
||||
Name: res/4v.png
|
||||
SHA-384-Digest: Vo/H1KPwwZl7iD1bfKUOSOqJKZtYA/TlhOwwDXvLdkSxXngVTgLb/wql
|
||||
ehZ6brz+
|
||||
|
||||
Name: res/68.png
|
||||
SHA-384-Digest: hQRh5HUFiA5AuM/gN4dVxOi6QbT8Gvd8Nyy4N/lS44EQTNgS0ddgK/aU
|
||||
hPs1SKtX
|
||||
|
||||
Name: res/Be.xml
|
||||
SHA-384-Digest: cbsHPko2qi6jZAv/Tkx2DxkIHa3LnNHBOVUDaQSmtthVQPx+C9QDyPsO
|
||||
0PdQ3rk9
|
||||
|
||||
Name: kotlin/coroutines/coroutines.kotlin_builtins
|
||||
SHA-384-Digest: BV/rIw7CDHnfA2MxlxbjgEmEsZdBFOPYQKPAsEpw7o3dvz7T1cD19aP7
|
||||
CX5X32Ao
|
||||
|
||||
Name: res/color/m3_switch_thumb_tint.xml
|
||||
SHA-384-Digest: LJYo+gBbMsP5UltcJ9L4uK9IDsvTqfyNK0+z1jFWL5SLCI5QprbAv3Y5
|
||||
LSLAkkun
|
||||
|
||||
Name: AndroidManifest.xml
|
||||
SHA-384-Digest: gQ9Yh4M6b04d6P2wg290FJreIU7eIeXrb2Z//z+tCdCtVRN3eRsc2tZ3
|
||||
5SYXNfKv
|
||||
|
||||
Name: res/Lv.xml
|
||||
SHA-384-Digest: 43xlTnVLP07ihYDfccdNOgtRhefsFvFu8NqpAUHkvo51uYYpLQK+IIMe
|
||||
H61WeCfg
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant6.xml
|
||||
SHA-384-Digest: 7Pn6Z6Dt55aJZVKYKCIqlAAoP3uDOYqwYKbGB960kb+8+r2nZGLPV2gn
|
||||
bl2TFtA7
|
||||
|
||||
Name: assets/test_module_import_dynamic.js
|
||||
SHA-384-Digest: V6MYs8J2sBlAAeIW+Hwkxq/7xsIrJlk6gZB/bIg/Q210vI2zHit2onyS
|
||||
qwQGabhI
|
||||
|
||||
Name: res/uc.png
|
||||
SHA-384-Digest: gzwPBjACFbPqEr8wch2aqn2jpPrkXsaHtftCiMl+Jw224yQI7xjetxKB
|
||||
7hxFGDKc
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-runtime.version
|
||||
SHA-384-Digest: D5nfep90WrYsvDzvvnuP9x5FaR35vJoZd33iLK7B3aAUGw09y+vyIxqi
|
||||
ZJb4T5Hg
|
||||
|
||||
Name: res/aU.9.png
|
||||
SHA-384-Digest: D/KxEae9Aej6UMMIJYpdHwxflvFXtaz0bWifAhQp16hdpdv2+xZo7/4B
|
||||
10wOJxPh
|
||||
|
||||
Name: res/nP.xml
|
||||
SHA-384-Digest: EKoqvWZQNKuSm2iwEeaJ/ik2OSPI7e4LCONojMNlNUzhRnaabQ4KACg1
|
||||
I6mrCUmH
|
||||
|
||||
Name: res/zG.xml
|
||||
SHA-384-Digest: 9cokK9Rh35T/S1d7gwbt9ja1ZcdQO4X3eGbfNjEmIPWo8+ubkxLg6WTM
|
||||
xb3mT+QM
|
||||
|
||||
Name: res/1W.png
|
||||
SHA-384-Digest: 4Fn4D83eQlZ+bREJCW4+AsnWfA6jtVn95pi6Q+sAWDYGuLU93Bc2Hs1z
|
||||
bFdHykHT
|
||||
|
||||
Name: res/8y.xml
|
||||
SHA-384-Digest: hma8R0P0TPX6tkq+OdpnjmXnIaLuGGhR6DQI4w2DgtIXCWODbFbxFc+p
|
||||
A3Ei7E7R
|
||||
|
||||
Name: res/k9.xml
|
||||
SHA-384-Digest: pzaKE/xabnJ7eq5Pl4OoV/Zl6AVviaLcu8sLqxfGSNPA8t2LR8rZbma/
|
||||
+bZBenOY
|
||||
|
||||
Name: res/4R.png
|
||||
SHA-384-Digest: iDMACIh/ZFo9Bu1Nu3dmYjW+IKQWjy3VqvqVIIpjwYejszHBLo86b+kv
|
||||
hjxvo3yD
|
||||
|
||||
Name: res/hb.xml
|
||||
SHA-384-Digest: LGweY1oloIF5hzE65beVmHeohlK2F0+aFlFCkzpcNLfBRUxQ60rlXeEE
|
||||
eoLlcLnn
|
||||
|
||||
Name: res/V7.xml
|
||||
SHA-384-Digest: TyHiItUEWNLpkF8eVqxZrW4snDcWAlM1A8qwKo9bzb0EFwKLk7gj4x4b
|
||||
zOtosNHg
|
||||
|
||||
Name: res/QH.xml
|
||||
SHA-384-Digest: jtILNQutsgRVbcxi58oZ2Gawb9NYlzrrBEbinO4NAS3FqynaXmr2x5qJ
|
||||
C/ZA9Cwk
|
||||
|
||||
Name: res/YN.xml
|
||||
SHA-384-Digest: KCpXAZQe9igKYZ9N8N2m1ooO69plVoMNMnAkk/zBcLlxoiW+UW4T2SKE
|
||||
YZDcjNwx
|
||||
|
||||
Name: res/Wz.png
|
||||
SHA-384-Digest: utYBU6cEmoAuSC1sLKuKvgNUvhyI2Hvgx9ijZ2hiatLVXNn0Xb1t34lO
|
||||
KFByLOeF
|
||||
|
||||
Name: res/vz.xml
|
||||
SHA-384-Digest: 23PmqzXhNMCQeIkzAmk4vo/K4v36SuOPs++OvDRA+1YGHHe1F3VXwEz0
|
||||
+15YkWh0
|
||||
|
||||
Name: res/Xf.xml
|
||||
SHA-384-Digest: PsFutxiYSsKggPHsl/yIUL1ebQfhXF3CwRQdGu9YYyxL5kdgZMwROwMA
|
||||
QSULvCtH
|
||||
|
||||
Name: res/YG.xml
|
||||
SHA-384-Digest: G5s0YwakAcz7484LkYgyTUb6AY/fIg/L1oc/sHbD34me5WAGCm4axH1d
|
||||
dj++pwf6
|
||||
|
||||
Name: res/Od.png
|
||||
SHA-384-Digest: muFfaPQuDwjqSnou+MhzQa1RMPtKzFnt6MupiP7NBulPj49K7YzI7zod
|
||||
dYfQ3WRz
|
||||
|
||||
Name: res/aM.xml
|
||||
SHA-384-Digest: 4Z0TXq6E4XdOxD+DDgVCQIdlNMEVlcdeut5di7ogfTIln20b0Jn4VAk7
|
||||
UDxX8vFr
|
||||
|
||||
Name: res/qI.xml
|
||||
SHA-384-Digest: vMVVEbJiQWaIEcV8oeMWoDd7DM2TuU+NmtJEEVH2ifWKnRI7JJPFaxNl
|
||||
cmA1Vml2
|
||||
|
||||
Name: res/Aq.png
|
||||
SHA-384-Digest: p9ap95Frx9FJIcQ/QLAHLNhaHAF61/XR26LozJZvH0OS4TZ0p8aaRT/w
|
||||
mo3Ogi6I
|
||||
|
||||
Name: res/Xz.xml
|
||||
SHA-384-Digest: tC2rk6/JP5UCo+4aPcvUSfUgp0DoIEwzRZyxVNiJvNawECS5M94q4Ctz
|
||||
RyOUNNqR
|
||||
|
||||
Name: res/_H.xml
|
||||
SHA-384-Digest: Gl2ctVAuHD74hU2Vs8Dk2D3XeB9Z2TvPRpaquJFAWrj73aTU0l9DHm1l
|
||||
7rij4oER
|
||||
|
||||
Name: res/color/mtrl_switch_thumb_tint.xml
|
||||
SHA-384-Digest: /N7DRj++oLymD0w8VQYD+IU1IVC1oFKVE8GlF8zk0H10QSccFlGX5Oso
|
||||
tpipI9Cx
|
||||
|
||||
Name: res/Mh.png
|
||||
SHA-384-Digest: qf6oq1SoHavj/pg+4JCIriXCMXa5lsg3z2CtjBitEuzr6SeKpE/UYlUe
|
||||
p9IfNC2p
|
||||
|
||||
Name: res/YD1.png
|
||||
SHA-384-Digest: F+Fs4tx6W9EwPq8wivkTVNI0YltwmdP8cQef/ZVZukYOJhEX3IM/cAK6
|
||||
4snlPLJD
|
||||
|
||||
Name: res/color/material_timepicker_clockface.xml
|
||||
SHA-384-Digest: KDQR+qHhWTdIPyGSgdVR77cu0RnpW9zW01nk2XOXIY7gn7K1/F7baIkq
|
||||
0HD7F4Jq
|
||||
|
||||
Name: res/color/text_episode.xml
|
||||
SHA-384-Digest: WoiU999svLIhMXPeKMECXn61BFjLKvgZBeI7FuRN+b6OV4t7Asnbzt/S
|
||||
RLfwucFi
|
||||
|
||||
Name: res/EU.png
|
||||
SHA-384-Digest: 0J1qaEoGWuDO+RXEvcZBPd/4PfzwYWlR8LiLhk73A2nt7iH75mL02GtY
|
||||
YqcmVkW3
|
||||
|
||||
Name: res/eI.png
|
||||
SHA-384-Digest: Fp7ZVrAK11ZsFwSxmEQuQ+c6glaJodLOF8vc3s+92eSyPr0wuls+BJnr
|
||||
I8IGsKqe
|
||||
|
||||
Name: res/Eb.png
|
||||
SHA-384-Digest: 07pBxshWqedU9qIM3d+gkh7ZAdc8kBf0gY5m46vKSqeJXAlqPECcDvay
|
||||
hjj3xiww
|
||||
|
||||
Name: res/color/mtrl_filled_stroke_color.xml
|
||||
SHA-384-Digest: PDVGpvQB+ck/z0k6KLG2rGNwrRaOLR/gE3p/qcU4jSPadPURG4kjCD6v
|
||||
0MxUuHpc
|
||||
|
||||
Name: res/fN.png
|
||||
SHA-384-Digest: XGmUMVGZ0wkLiBvuSAsMSRostPFaeK/YKpTk3K5raStN4Uu5Bmk7HQ3T
|
||||
OwJ09tKx
|
||||
|
||||
Name: res/hS.xml
|
||||
SHA-384-Digest: 0IeEo1PCk3jnhr9ZDC6ZR18UToVDRxvhutf/YjzrJk901PUTI7xpRfZj
|
||||
+UdQAYuZ
|
||||
|
||||
Name: DebugProbesKt.bin
|
||||
SHA-384-Digest: hMb0bxEzuDdxfE0FfXVa7Yuh+BNBZHiz38tqSNXiHGspjNTSFutqo5S4
|
||||
/U7PkoSG
|
||||
|
||||
Name: res/fW.xml
|
||||
SHA-384-Digest: 485yX8XR3aSNG+xQ5AwS3YMz53eigYi1JZEqpNwhlSCbi+TTr7HrRRgt
|
||||
0dgdgRhr
|
||||
|
||||
Name: res/wy.xml
|
||||
SHA-384-Digest: NUykPKL9XDCFOTfs2GC2rK8A5yM2zk3WV1xk7DaqDHZQylqpRv/766Up
|
||||
W887aMZO
|
||||
|
||||
Name: res/Ci.xml
|
||||
SHA-384-Digest: t5hRYNVwRt0QLlIQlNiHarelVlDQetmBC8uQjM9U2fusIQ86WLnrnP0x
|
||||
oFM2e25t
|
||||
|
||||
Name: res/color/material_slider_active_tick_marks_color.xml
|
||||
SHA-384-Digest: jE1Bm9sIil0lh5NeaLO/+T2sTzYAfxMLLZ88KevAlzzF2Sgx+rozRmRP
|
||||
RlQLU5jq
|
||||
|
||||
Name: res/dP.png
|
||||
SHA-384-Digest: 00mOqYMUdabdLug0fbefv238V/vcYZiJa2ORHXBfA09NekvpWpytcvt/
|
||||
+NcpXlBT
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral92.xml
|
||||
SHA-384-Digest: 41FIZyYMIAGrxx7i3hqrqT5dhg+e4/yHsLLel851LIaH9vSAMm8Pn3n+
|
||||
/+08R5pB
|
||||
|
||||
Name: res/color/material_personalized_color_secondary_text_inverse.xml
|
||||
SHA-384-Digest: aDWeZU3WruaPxQOVVS41JqzDpABakZwSTlpSpf8Z5qIoIORE43T9Qgrc
|
||||
m3x2s1OE
|
||||
|
||||
Name: res/color/m3_textfield_label_color.xml
|
||||
SHA-384-Digest: N4roLM6tX1FYK44KQV4Ze3/uEPPw0wsR7AN24iAr/l2ljBKwcXdsapAg
|
||||
66SkTh7K
|
||||
|
||||
Name: res/o9.9.png
|
||||
SHA-384-Digest: TbpszmwOaMIqHHj0hiXt9c6GI2Qtx14yNkwoIodNYZTbXcKPCz6cLCIA
|
||||
j+oQJX4e
|
||||
|
||||
Name: res/zo.png
|
||||
SHA-384-Digest: /s7jcciEKtORt8YgDl/NLF33zO6usqzOJaILB+zbEh1Os3mvTAukovgq
|
||||
M+m440S1
|
||||
|
||||
Name: res/1w.xml
|
||||
SHA-384-Digest: teHYrO9BdF46xvjHEGQBCxkpSu29G6wzf6giiIzaMEe0mfcUkw8LJr8b
|
||||
xIvAxxbE
|
||||
|
||||
Name: res/WP.xml
|
||||
SHA-384-Digest: P/8Xf0ZzfY/vvkE+ittYF+Y5rJSOJfgr2DLfMQoMebs/gwAnF6CfMhFz
|
||||
lArZ6DjE
|
||||
|
||||
Name: res/X1.xml
|
||||
SHA-384-Digest: hRpEHN8JmbThtwpcxGpLxQ5kjnRaZd/BeEapVZxzWSYwG8e/Ww/RwDkx
|
||||
R6OA77zl
|
||||
|
||||
Name: res/p0.xml
|
||||
SHA-384-Digest: XxKzXOv1Fkx3bUo+S6u3DGW4ojbf2DQZ7OC8IBukAjW7adfs/6g82EHa
|
||||
glUdRvta
|
||||
|
||||
Name: res/5m.png
|
||||
SHA-384-Digest: cSzGIXqcGrPZAp4Q56KuEAboswzFxk3aAHrhs0tdR2eQKpjbRe3v03Np
|
||||
It7JwLkD
|
||||
|
||||
Name: res/color/m3_slider_inactive_track_color_legacy.xml
|
||||
SHA-384-Digest: omHpwEgPLZIfpOceeCQvVw64LZFkah9J3RZkdcuAVRJ3wpoF1xSf8lrg
|
||||
ckXKJ6It
|
||||
|
||||
Name: res/NZ.9.png
|
||||
SHA-384-Digest: Bk+CQ2CHamGxvIvmGiFKQzA9/4P4nqFMSYMI4AUhoh1ORzzcGK4Fqefq
|
||||
qTnzzmad
|
||||
|
||||
Name: res/lV.png
|
||||
SHA-384-Digest: 7dpe6bVm/M3YhdARygOAfgwdT7SegWJQBvHz8Ul7nVgKpCfc/0YpMQ42
|
||||
9uBRxZ6j
|
||||
|
||||
Name: res/color/m3_tabs_text_color_secondary.xml
|
||||
SHA-384-Digest: 6Frh9d8825buIgMA4BrcJiQpR+GqNnP1g/ILbRYCkzuPdqZiIAv4eWhY
|
||||
NEHJeu0T
|
||||
|
||||
Name: res/w_.png
|
||||
SHA-384-Digest: Ka3EFjev1s6JHxmdHmkviSyAAFLLXbmov8d9cAk6HC2PAKMEB+0z3xlc
|
||||
uKpM2Etp
|
||||
|
||||
Name: res/color/abc_tint_seek_thumb.xml
|
||||
SHA-384-Digest: bwTo68E4j69gcCuwD0gsYzXqH5p6NxFty46jhD7jvDN8nbD2bc1cSBbH
|
||||
AOEbgH35
|
||||
|
||||
Name: res/5U1.png
|
||||
SHA-384-Digest: h8hL/ASXrpOVbYm+s9+Y2aDnu0Bz9iX7czctpYGd6UhHi7A/dsWJzzmk
|
||||
eRMO3b0H
|
||||
|
||||
Name: res/lR.xml
|
||||
SHA-384-Digest: GwdQ6fkcWu4cbrFarAdxrYYEtMtVMOVBbHPhJAj87c3TkQ8FAiipKg1u
|
||||
+v+HgpQn
|
||||
|
||||
Name: res/color/abc_secondary_text_material_dark.xml
|
||||
SHA-384-Digest: fSVEbBvD/gPPyB+ApaEKI0eaX3YrlVlToV8ePGpfDJsapCfuA48VYmd0
|
||||
G8m8IOsv
|
||||
|
||||
Name: res/JF.xml
|
||||
SHA-384-Digest: R1bHw30/3wmuyVwOk5aV1R9ut/aID48lFOeI9V62gOEusB7BsDfrawyS
|
||||
jV0Gp+ip
|
||||
|
||||
Name: res/xM.png
|
||||
SHA-384-Digest: 7V0cOc4bSkXcUrxXrtvmuJOzHcfXzS9wZ17oOBs+bOhAKJB8a9ylAUyU
|
||||
x0yS/VpH
|
||||
|
||||
Name: res/ck.xml
|
||||
SHA-384-Digest: fR8RblbussxzThpVxi821IXQMc4n/o3apmXHrUSzkVK1HINHGH6MKnAX
|
||||
5qNZG17c
|
||||
|
||||
Name: res/e-.xml
|
||||
SHA-384-Digest: OCEbqI5SysGxJwgbNP91blYPktPVH3/73UbhzJnMJrepO3mBREzJys2y
|
||||
IhAy3Rqc
|
||||
|
||||
Name: res/rd.xml
|
||||
SHA-384-Digest: i/zIKXLdFD6KJuv+TaIsE0I/ZAVCqjbQBhOsPXy++Y8zy3n0Pi3jAvX/
|
||||
XXvR06Ce
|
||||
|
||||
Name: res/color/material_divider_color.xml
|
||||
SHA-384-Digest: GKsSur55lbUddGyC0Kc0WMBJTmCpIf4RG//xrz2tYmKfpkTv2oq3B8+I
|
||||
ovir7bHZ
|
||||
|
||||
Name: res/D4.xml
|
||||
SHA-384-Digest: KuwCUNqEYkb9+jyvou2vZgVJdeBxTnNFM/x/uSBhrJ4fDXguHV2BrrE6
|
||||
sP+M4yuQ
|
||||
|
||||
Name: res/_q.png
|
||||
SHA-384-Digest: 7r1sGU+JYTdS0vq2KC+a7IEpHxawokSKJOtaEXVqHdvPYuzSUFPEfuMy
|
||||
aCpCk8xF
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant87.xml
|
||||
SHA-384-Digest: zDjaL6/eaHt5rXQVoaUGt+YWF0p0+BmKNB+xTZWIVM6sjFDwCtnfWN6R
|
||||
ehsIawAY
|
||||
|
||||
Name: res/Wt.xml
|
||||
SHA-384-Digest: W9sUET4Ro0yYwdp8e+b1L5r2pQgOAN/WOfikOzQoEyZF255DAU1mAmUm
|
||||
CPdn0fRV
|
||||
|
||||
Name: res/fm.xml
|
||||
SHA-384-Digest: qbmeXmNbdAvcZuIkhmBUGU5i26EquhwBEnG3vzLq3crf6xLcJTD0wPbM
|
||||
AiQStuuS
|
||||
|
||||
Name: res/78.xml
|
||||
SHA-384-Digest: pVhRcl+uVZTvCgFKUO0RhQKVy8l3shEEAvbMMcSErEMz10Nx8Sqd0+nT
|
||||
kMiYqLNF
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_fr.properties
|
||||
SHA-384-Digest: hFPW776Oz2fARjAaGOvmOPEESMDYsXgySiKiF5tdoiod4VXQrUnQ2Iq4
|
||||
hZTaJH8R
|
||||
|
||||
Name: res/XJ.png
|
||||
SHA-384-Digest: jED8Pi6QOLXlT01Jv12IsYRDTkyheWOex58j1F1ZQLOEnIQ3xro5O+M5
|
||||
Ekikanrw
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_oetf_es2.glsl
|
||||
SHA-384-Digest: 1+yVIplWRqu6/xzh2dyqBS0n8TCbYL7/MSyLDmpeCF7lUSzZnLNMef96
|
||||
yIZiKWmO
|
||||
|
||||
Name: res/color/mtrl_calendar_selected_range.xml
|
||||
SHA-384-Digest: av/HXXNgnoS85eOu4Zdhzxl5wBCPFgZl6kA51z5aKNJlsegY8w93aRqQ
|
||||
XmY1UpXZ
|
||||
|
||||
Name: res/gc.png
|
||||
SHA-384-Digest: jiKOQoVbg5TnCMjRGRtziY+qu6mwqLyORQ7qeaa55r8pUe2zDQqB4fXH
|
||||
tTvhHfqW
|
||||
|
||||
Name: res/color/m3_timepicker_secondary_text_button_text_color.xml
|
||||
SHA-384-Digest: IeBzDNcilNYH2mW4BGbqKlQu8uh21pfHi85rWCRS9Ia8rPKIjyyzVcGU
|
||||
KADmSOyY
|
||||
|
||||
Name: res/yH.9.png
|
||||
SHA-384-Digest: WSQFTT0DWa8mGGJ2/0OWocAxp946p5YZvgPxaJX/LCK8hBldcBwagL66
|
||||
iyB47A8P
|
||||
|
||||
Name: res/vf.xml
|
||||
SHA-384-Digest: e0xoDqf9kkP3f8N0qwycLHiYJtUyZ97wldk1s9qHNDCzOfqZ68WyJnW0
|
||||
efYwfJ2x
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_modebutton_tint.xml
|
||||
SHA-384-Digest: Ns1zo5hrT0C6xUlwPFBx/Jb7I/i58IH/T5NLdNAQaJ/xzj4WgNKBLK7y
|
||||
nGl23H+m
|
||||
|
||||
Name: res/Ra.png
|
||||
SHA-384-Digest: mAtGMgYy9gP7RfEXql5A3u/VYOQbTQJiOGIPLLQPzN3dFawhUMxG5hUe
|
||||
y8LVCJHL
|
||||
|
||||
Name: res/color/mtrl_navigation_item_background_color.xml
|
||||
SHA-384-Digest: 6C1YpmjYeWNqsxnqSCf3j0nymkF5h6qYbryh6MPRkgGMKYEr3KaV8YjW
|
||||
XXaMHf7d
|
||||
|
||||
Name: res/color/m3_navigation_item_icon_tint.xml
|
||||
SHA-384-Digest: 1WdP20aVTZdbcfJCow0XGx94rQBNHb9GXD6U3Ew+6c52QkyH3SOjXqWg
|
||||
C/xsZGIx
|
||||
|
||||
Name: res/nN.xml
|
||||
SHA-384-Digest: lMuzYFP1XEGp8WXvuGKm+3ApvYOU9ofKtlVmO4/2JFJ+irAILoRD8xpL
|
||||
Dgwm49MB
|
||||
|
||||
Name: res/ua.xml
|
||||
SHA-384-Digest: HkgEO2MMe6xslP7PZVR56cf/A4VTypjcreWWZRBETBDaTtWJabYNmiw7
|
||||
Fk6w+oHS
|
||||
|
||||
Name: res/gj.9.png
|
||||
SHA-384-Digest: ABW0mFpGYZ/rzFiyQeqgKYibIL6Kzc+NxsUYLEKemR/L7ruECYg2UJlo
|
||||
53VLOlom
|
||||
|
||||
Name: META-INF/versions/11/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: O6gP4FG/kE89FNRQ3B1mQOZcCkZuaApzHGHlzEJIAka9TnsnrUqN/ZXc
|
||||
NNg0GsUx
|
||||
|
||||
Name: res/p8.png
|
||||
SHA-384-Digest: aO68KUChTAZdPyPaQ5+N1n2dKj106a3WJXg0OpJgv9JgKiCOBBONUlgh
|
||||
7KugHcnD
|
||||
|
||||
Name: res/X4.9.png
|
||||
SHA-384-Digest: tGjk+HpqbG3ItIM57Ps+nSDfa8ES8opKVA74PrTHJzweMLomajtpU9DZ
|
||||
WwYm/Oi+
|
||||
|
||||
Name: res/W3.png
|
||||
SHA-384-Digest: 1joWL8UMgZss2bF+EDZ0rd705NvLAP/U94V32p0dmULkR3FxpbEc6E0t
|
||||
yPt/dmNo
|
||||
|
||||
Name: kotlin/kotlin.kotlin_builtins
|
||||
SHA-384-Digest: z/ppmGaa1+V/hMi69B7TdBGjCtLdi/nW2KwuJpEwVbYnN9xOqtO/U/8j
|
||||
LPooYK5j
|
||||
|
||||
Name: res/2i.xml
|
||||
SHA-384-Digest: 4YGU2r+KHfl8BXI0G2oin8DWTsx5RnnNJkU+zQEXNx26Q1bWlw2IknoX
|
||||
FrK9oTVL
|
||||
|
||||
Name: res/3J.xml
|
||||
SHA-384-Digest: WOIC2i0j55M556+YpYlirI+Kaj5QBaZ3r3txVJVm2NhbyuVtaCednl2c
|
||||
QnyjufOD
|
||||
|
||||
Name: res/o3.png
|
||||
SHA-384-Digest: Xmj344sFfdLW7M2tZTB+8z++sFIAE4ZF3QpI0+wgS5q/X6tG0ltS5BHh
|
||||
4P+ssQF6
|
||||
|
||||
Name: res/vJ1.xml
|
||||
SHA-384-Digest: hpZneoGDvzuDTwvciWUM2Lln6LPbtKewI6S/SPvsvO0uZq3c48kzBFxb
|
||||
yVf33AOO
|
||||
|
||||
Name: lib/arm64-v8a/libxl_stat.so
|
||||
SHA-384-Digest: E99YvCKJFW6e/pdQSyRffJNIOiQBeic6Jpuxd7cKK87Two3jZDpbI/X3
|
||||
FgcaRGSA
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_colored_ripple_color.xml
|
||||
SHA-384-Digest: jJeH6LXNLqENkr/SBbacOYHncMjvPX/5w6VRZBxCNrlX6pyKOqwGrgfh
|
||||
JPVUqb7q
|
||||
|
||||
Name: res/g-.png
|
||||
SHA-384-Digest: aGEEWej6SQn+DMQ00N0IcZ4mE1Tr3NHdJhNmEuFaoOWvaZTWgc+CUHPc
|
||||
aCbtZb6t
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata.version
|
||||
SHA-384-Digest: YUH6peOmaO6YUrh4dlFXGdtWBzPcPuIh1a+fAEwmyHs8ELMG8cRjfI0J
|
||||
OchFaFJ1
|
||||
|
||||
Name: res/0M.xml
|
||||
SHA-384-Digest: a2PkaC/yAxu9Akv2rhIYFxhkTJL/B2/KhnxM3sJxgHCwLHdo9M4DqV+t
|
||||
gUun16vB
|
||||
|
||||
Name: res/4P.xml
|
||||
SHA-384-Digest: W2Q5jskdcgzicdpTVwJd+R+CBykG2qriChMSTbA4NjrpygiTquem7gcV
|
||||
RGcaAOdb
|
||||
|
||||
Name: res/51.xml
|
||||
SHA-384-Digest: hOzXB1/zvHYvWqKDXVDM31svdx95fCM0jxjRlPl6wwj5Ap65+RPphZmv
|
||||
5Fmy7t1P
|
||||
|
||||
Name: res/xa.9.png
|
||||
SHA-384-Digest: vQ4fKp6NCzKa4FTEER0NggSzSXJ8nWFPPjEezQxjFhDwdMLDqg+CFxDW
|
||||
i8sHGI/U
|
||||
|
||||
Name: res/TC.xml
|
||||
SHA-384-Digest: 2fui9v6hsppxtUmFVREwTS4P8RKgN0qBZofhIu1TlD94ilke7ZxzVbVT
|
||||
lVt40m7r
|
||||
|
||||
Name: res/qK.xml
|
||||
SHA-384-Digest: shc+gYPo7K7etJgaPQ+p8zxdOpBWYxKastZVUfJCU9hvFfI1G15V0CxN
|
||||
Rp8+cNH/
|
||||
|
||||
Name: res/G21.xml
|
||||
SHA-384-Digest: lm2wOnF9q2fxwATi8c7fbVkYUoYfbUBRSCYHuqIrcRsmi0EjNxoNAfa9
|
||||
fa90UBhH
|
||||
|
||||
Name: res/YG.9.png
|
||||
SHA-384-Digest: tLOjtLs7DsMFl5m6FWchPNGk9cOLhU6UPJkSisfIKbU7NWOD4GXlbzrg
|
||||
XUjDUmBe
|
||||
|
||||
Name: res/Lt.xml
|
||||
SHA-384-Digest: mdtiVKBHdMeDDlYV7OZrtQbdJJzEX2foV1K+hsegUp9UeI30kuH921/K
|
||||
81B3BIDZ
|
||||
|
||||
Name: res/MU.xml
|
||||
SHA-384-Digest: HTxiHxtqlHLrFAouEXdUnd6vqWpYGine+WfJoR0ToNAKIOJDEgk+BrCN
|
||||
O40WcRva
|
||||
|
||||
Name: res/color-v21/abc_btn_colored_borderless_text_material.xml
|
||||
SHA-384-Digest: K1Az9rfl5yhxpLZQoeCinClo7G+dCACiVvnTepmfS3OWrz56DiBT5ZcK
|
||||
e4TS//vD
|
||||
|
||||
Name: res/xu.png
|
||||
SHA-384-Digest: atzxwJUg+1DuoQlW+8cN/2np2agi5d4wOdlzx014rYPccKrBIosd/gTW
|
||||
m+BDHx32
|
||||
|
||||
Name: res/66.xml
|
||||
SHA-384-Digest: vpwXM3Vvp/r2uTBYhHZQ6pc1Ts8MLFtBY0RZuYxOzZJeeX8jsemqYB+Z
|
||||
zSImH7km
|
||||
|
||||
Name: res/IR.xml
|
||||
SHA-384-Digest: qHkYEsrYz6QSn6dENfRhILE6ro0akAXteL+BeUuu51P5cpT7ogEqXrnK
|
||||
q+eWslUU
|
||||
|
||||
Name: res/color/mtrl_chip_close_icon_tint.xml
|
||||
SHA-384-Digest: pqU6EpYupXUyrvtXAaY7xn3xWVDLN8jVoCho1pUQlUhLHqe/AmB6q4+u
|
||||
/8J0sEX2
|
||||
|
||||
Name: res/BJ1.xml
|
||||
SHA-384-Digest: IsOql7MlG8CzfCkPD42vqs4Zx5tUeGD477rqd5WN5NOHPFeUgZy4FkiC
|
||||
JZqj2fJH
|
||||
|
||||
Name: res/EA.9.png
|
||||
SHA-384-Digest: mTG9i9uc4C+bAfRKfl1qzD+f7/C+dCOWZzKqTTjZv+UgEDlVdH6u/hxp
|
||||
0NkOmCcO
|
||||
|
||||
Name: res/VN.xml
|
||||
SHA-384-Digest: 5uWPG6yrzf0NKk8/XK1SXu9lejgXO3XBRXFteVPYhR81bomElNVlACxl
|
||||
YD9oQ8W9
|
||||
|
||||
Name: res/zV.9.png
|
||||
SHA-384-Digest: QdGDWUe8CXPi1rtnO5E2hVVgeOVTj0nZoHMp3uMHAEdyomlOAHgF7x4V
|
||||
7kbVvCV1
|
||||
|
||||
Name: res/U81.xml
|
||||
SHA-384-Digest: a3LBBE9iA8aA19Tv7dKRa3PAzQpxdqNp5jlzYg0sphAl+HF86DBdEm7N
|
||||
/FWthtvR
|
||||
|
||||
Name: res/color/m3_navigation_rail_item_with_indicator_label_tint.xml
|
||||
SHA-384-Digest: ivP+JboSn/+yixCXRw0Dc7M/bILvcKaw9yk4wNTbjBHPUP9W6iYyuUsp
|
||||
xbDB4ylF
|
||||
|
||||
Name: res/fY.xml
|
||||
SHA-384-Digest: eMYYduhj+T2NKSZqNHYOIT9UDd4IGrUzK6EuHnqlRtsDWwE1j/1BJT9c
|
||||
1y+LORQ2
|
||||
|
||||
Name: META-INF/androidx.window_window.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/JD.xml
|
||||
SHA-384-Digest: 6iVvxSefUStOvrUd4ccvJluRkhCJbNrDxKY55x7G23kHHIGClscqZbBV
|
||||
qvbLYe4u
|
||||
|
||||
Name: res/color/m3_dark_hint_foreground.xml
|
||||
SHA-384-Digest: yIiatCHu7IckHqDirPzA78ggXhC3f3JyFekfG3g8siV1U65Jx2rHcDE9
|
||||
vLhiiqGw
|
||||
|
||||
Name: res/Bz.png
|
||||
SHA-384-Digest: A3Kh5aSP6vwazMvCtNDXxvuA9GOkbkzdFfZObDehUdnvK5hWJCekdBc1
|
||||
jPs+tG6Z
|
||||
|
||||
Name: META-INF/androidx.media_media.version
|
||||
SHA-384-Digest: eaHeL1EfjzVJf22et7imyaY2wksxjKFFqnVvKnq96leidLMUZIg+yR8I
|
||||
k7wnMpIm
|
||||
|
||||
Name: jetty-dir.css
|
||||
SHA-384-Digest: BCs4kpE8ES9w+HhvUr10mPRKxyxBdTT0dlguNejm1DPCSzU5DGqrAZ6C
|
||||
V+Mos0o3
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_button_stroke.xml
|
||||
SHA-384-Digest: FK3354RTOTCemUhpJ3IEEf/saSBAuE288M7LWJolMweJPGE+w6b6yJ5e
|
||||
bpOAZX4y
|
||||
|
||||
Name: res/1u.xml
|
||||
SHA-384-Digest: H78AoOAc729fET5hsK6F26qV7YID64lf5Wy0MylOCikwoLN2Zg2QUlTy
|
||||
DMCwVoN7
|
||||
|
||||
Name: res/Lf.png
|
||||
SHA-384-Digest: NWW8T0rtoM4yH1kN2H8ZhxILlh+vWPs7FVkMzvuD/mz5xpcz18LOa5Vq
|
||||
VH2VKeal
|
||||
|
||||
Name: res/2K.9.png
|
||||
SHA-384-Digest: vVKnhgcH3EyVvA0AtGfvJAPZqUWeja2Bve/pj3FuqUQTkTILioVM7zl5
|
||||
+zCaJudI
|
||||
|
||||
Name: META-INF/androidx.savedstate_savedstate.version
|
||||
SHA-384-Digest: GKqkS0cvyjjgH1wxhzzW5U7S04+7atOY/hnmeP/2ShskJ+QcyWqyhIai
|
||||
b/q/Jwoe
|
||||
|
||||
Name: res/color/switch_thumb_material_dark.xml
|
||||
SHA-384-Digest: xP9pOKtGxdl4K7gARvtKpeeJl84XmMh/sH7nzuxocX4mcLqUYRABQfr5
|
||||
F/t0+VOy
|
||||
|
||||
Name: res/Pv.xml
|
||||
SHA-384-Digest: 3q7BOR7AokNNSiFFLei8qHnE8KyEnwlRMonVOCla8/oezrostQhpLW8h
|
||||
LtbAdlx+
|
||||
|
||||
Name: res/G2.9.png
|
||||
SHA-384-Digest: kGO7QjNlxe5vVBRstRnOcgygB0fKDRGGZKIV6p2Q1Z+coVwf/0pndBsh
|
||||
tw0XddvP
|
||||
|
||||
Name: res/wL.9.png
|
||||
SHA-384-Digest: fJQGU1WMS4uG2iXMLtgQsL6ueBOej/mu1n6wg+OpRtVJDJgrvqmSnXXA
|
||||
lDggdeJ8
|
||||
|
||||
Name: res/eH1.xml
|
||||
SHA-384-Digest: dWWl1H4/HbyyW+nuOO0pl4+1MKQDrwCEz+ZEE6DEmSrBCwLdWJkyhJ+f
|
||||
6uAFf/Ej
|
||||
|
||||
Name: assets/shaders/vertex_shader_thumbnail_strip_es2.glsl
|
||||
SHA-384-Digest: 8HfXFGvN0+uUiwMfOypbK7SBx9PXd5Gyoj2o4aEV2HrYvkH5wGxmxanR
|
||||
Own4QMuI
|
||||
|
||||
Name: res/-A.png
|
||||
SHA-384-Digest: wjF8QKy4zx5whRaLu3Cdl+7RkRDSSUrExjGnUKI+3Mh87BX+Y9xf7iEf
|
||||
L734weB6
|
||||
|
||||
Name: res/BT.png
|
||||
SHA-384-Digest: VB2bOfx3LZk/iZWlV6iTomOQvnajY6scS8Sh3E+8GDCjoRRnQ5jLptsI
|
||||
X01k/gJN
|
||||
|
||||
Name: res/hv.xml
|
||||
SHA-384-Digest: dJnlUbeVJH61WH7QnA2mCoNI0eewn1Ux5wrzPv4dzc4j03DN4SCLfUQZ
|
||||
cgVEXSHD
|
||||
|
||||
Name: res/D_.9.png
|
||||
SHA-384-Digest: cXzRtyk07J57pWW/C53cz4hLqcksWq2myaCINMOWI/PU3zcO8tseUMjy
|
||||
QFTLgikF
|
||||
|
||||
Name: assets/test_assert_define.js
|
||||
SHA-384-Digest: ZHDn/P/TUamgTmAjOCLD0arrD/nuzSub4OOXfGbEU0OO91vYYhewQ6aK
|
||||
gy7CbvGb
|
||||
|
||||
Name: res/FW.png
|
||||
SHA-384-Digest: uYFKqQSQRDYIF6lDIGxD34p/+cTXnDBg9cKOscdXR0l8l54523Lcsugi
|
||||
QArIpOoG
|
||||
|
||||
Name: res/color/m3_navigation_bar_item_with_indicator_label_tint.xml
|
||||
SHA-384-Digest: G6cEkgqGDOEzxnqQSt6viOnb8CLg5QRfujV0PSGYmVApa5q5wP2QAmd3
|
||||
pTIDFPpG
|
||||
|
||||
Name: res/IV.png
|
||||
SHA-384-Digest: 72Am2p3Kpfha/NpTy/NCYdqsIb+fwTjKxymSgg/mBNARm3+YRAcf6nzZ
|
||||
o9jL31dH
|
||||
|
||||
Name: res/v_.webp
|
||||
SHA-384-Digest: +QZaazfBgn9VeEqkU9PEkjbtrICv6SvqCe/lBxEeLLJA7lO9Ca+T5b0f
|
||||
xvprpEvy
|
||||
|
||||
Name: res/F4.png
|
||||
SHA-384-Digest: x0PAcO+7yLrLtCf42jGb7r3Ak9UnoQzOf0s7InffgM6qnozgwNY8+TuG
|
||||
kWIgWj9V
|
||||
|
||||
Name: res/12.png
|
||||
SHA-384-Digest: 1dnsht12KfTj+CVDO3Pw8uyLWXCNRoRZc207NlQ0EzZxAQASSzs1dWMF
|
||||
tfPS8zkp
|
||||
|
||||
Name: META-INF/androidx.vectordrawable_vectordrawable.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/m5.xml
|
||||
SHA-384-Digest: a3qhEErGvXVzF2n09HoW2rJLq/TUvTx6aPCbiS+GYo6tB1wHw//iyBEv
|
||||
cIupZIgZ
|
||||
|
||||
Name: res/cm.xml
|
||||
SHA-384-Digest: Qooha/oiCHqraPY2vsrIqCj0lAuoDdTXzoJct/NSckt+6wqUvLz1u+6Z
|
||||
W7tWMVs/
|
||||
|
||||
Name: res/8h.png
|
||||
SHA-384-Digest: I05yZ5087L2n9G/kAHTkZSLGw5WKXK0+XkBIWOZa2seTrxwmrbHJA3eW
|
||||
Q1A70FGj
|
||||
|
||||
Name: META-INF/androidx.fragment_fragment-ktx.version
|
||||
SHA-384-Digest: JSbQbclh2jKclz7IkGQq8Am5k+8z/fT/NGDXNjG76E/9UXFMKo1B0JfE
|
||||
J09pvEqz
|
||||
|
||||
Name: res/Cg.xml
|
||||
SHA-384-Digest: cmLjE0tDCkV2p5CCH2zKTpf3Tx9OIaflnPQlFe0ZDH88xX1p70tWnmiQ
|
||||
DiRoiQmO
|
||||
|
||||
Name: res/eA.xml
|
||||
SHA-384-Digest: 5/SUhlgi2o96Tnxo3t9TPXIqp9LV7PqDMYQS1Jqnbde0ttFVjFqtvFuV
|
||||
txMWnTWA
|
||||
|
||||
Name: res/GC1.xml
|
||||
SHA-384-Digest: Z7IcDCDXnYgmzER/Q/1VpiOXlwfVuQBrSEFImUq0TrNWK361FcoD9t/s
|
||||
1/iluKjr
|
||||
|
||||
Name: res/D6.xml
|
||||
SHA-384-Digest: p98S/bb46KkP/lfdhRgUrDkoeioQIyPSjcifztyuhlLOLoTY0hNLcPLh
|
||||
k67yYrHH
|
||||
|
||||
Name: res/color/m3_textfield_stroke_color.xml
|
||||
SHA-384-Digest: EeYy4Jq9AAp7RQkA/bCxI0CezpnYjMBErpO8+aJHS5xDLJPaFs9L425w
|
||||
LHQ25SL1
|
||||
|
||||
Name: META-INF/androidx.core_core.version
|
||||
SHA-384-Digest: rhLazMexU+PpVIUOOPSPBvmtfstRSlMkT38j5NLxiqmKwgYkKSNIitqq
|
||||
I28eUHut
|
||||
|
||||
Name: res/XW.xml
|
||||
SHA-384-Digest: 4MjBqsB+CoXKTgtI1pWyZgFpFSOToDFT+h+IVgB0KbnkDGlcmkwWOXpw
|
||||
VoalQzN8
|
||||
|
||||
Name: assets/parse.html
|
||||
SHA-384-Digest: d1wGlDUmpfIVck0O8Gvp16rRNNremxwyptc5kn8N6ieCSKHnv8b+7Mn0
|
||||
C3rIqvXP
|
||||
|
||||
Name: res/wN.9.png
|
||||
SHA-384-Digest: JjCRnHAV4Mz+NItlg2FXf1daT+0kwJhPdPo7FO6qGcxo12YugPAgabhF
|
||||
8UZ251rX
|
||||
|
||||
Name: META-INF/androidx.vectordrawable_vectordrawable-animated.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/SO.xml
|
||||
SHA-384-Digest: 7ita8wVV5vZ8AokMusWsp0U+HPGzR3St2N9RuSwg57aq9rkPdtEFnr8u
|
||||
Sn3n5mqP
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Connector-mbean.properties
|
||||
SHA-384-Digest: xGSm/or+2LlQNGI+UTK4y7SxTLdFUnlvjrxHg51Ay6J8HLjnpB+MpeeL
|
||||
VZzdTvBA
|
||||
|
||||
Name: res/5k.png
|
||||
SHA-384-Digest: U2DiMjUlHruUWJP4rRfTwXkLgXGcDB/IV/BxdWpqp7CfR/tEzC28Tli/
|
||||
qj4B8roo
|
||||
|
||||
Name: res/color/mtrl_chip_background_color.xml
|
||||
SHA-384-Digest: 9N+FqNNTi/hQHJPFSPBn7lL1FRBkjOo/AdiPEAmz2aXdvGaAFzF8srpV
|
||||
2JbbNCCS
|
||||
|
||||
Name: res/vX1.xml
|
||||
SHA-384-Digest: 1BvuuNVdkErtAd6yc9YqSCIqwnc6wMIQB1ojOeyMebVtiNPHPLdhkhq/
|
||||
4SKuT89c
|
||||
|
||||
Name: res/aU.png
|
||||
SHA-384-Digest: wYpL447eMcdZIg+lyOcvqlpgGsFBZLnlOXEMaX0sDBqxwLu3yvz84Z9A
|
||||
qgqeRUid
|
||||
|
||||
Name: res/color/text_control.xml
|
||||
SHA-384-Digest: OFg809tgpX70ka6nLYGrXCYdXCZjsiN0XgBJwXflSOPVP5KiS94zVvco
|
||||
0IRFIUZj
|
||||
|
||||
Name: res/xo.xml
|
||||
SHA-384-Digest: Q4fcoWsO3bpr6pK5GRRxFf+RRwVKUwxf10iNw4PuqgtV6OZfsvmOl5iq
|
||||
JK7gtQ2D
|
||||
|
||||
Name: classes.dex
|
||||
SHA-384-Digest: HJWEHlMELvQQZh7BW7VLEGYbYYKJtAETqlJoqsDBqDOBYf0bAZxUHH74
|
||||
9QXHP4qN
|
||||
|
||||
Name: res/color/design_icon_tint.xml
|
||||
SHA-384-Digest: cxJ2aAGB6E/SZxOt0tAxaJaiLJHXAGkOSpevJGOMrDKIzQJqHKBGYiiq
|
||||
sjU5jKO7
|
||||
|
||||
Name: res/FS.xml
|
||||
SHA-384-Digest: QRbWx4j/py5r1FKmsyeI2ccrkmLaqznsLyv4zCy1+Kmbv9nm4SEsP6Fe
|
||||
4bkMgyh5
|
||||
|
||||
Name: res/color/material_on_surface_disabled.xml
|
||||
SHA-384-Digest: xS7CUHg2gZDWplD29jEzbxd0UE0qdSo/5lIDvfXpGHfHh5omN7e5mrwW
|
||||
BHc+0W9T
|
||||
|
||||
Name: res/Ol.xml
|
||||
SHA-384-Digest: Gb2TApfG0pYUHYu6eTu46CCVY9++853+10HBEwAogLxOKtdavinjeXsO
|
||||
Ml8sUnEj
|
||||
|
||||
Name: res/EU1.png
|
||||
SHA-384-Digest: Qi8a5cdw90qIZrIMZM1XaobrSWVWQb3wVWVMKtQgwvfMwuWhw3I9DfWt
|
||||
gYwjNPge
|
||||
|
||||
Name: res/Nn.xml
|
||||
SHA-384-Digest: B87BF2ccGuCRsJ968yiZoKjKqNtovzHAfaj4HUB/C3cAGVd2ONWtLff+
|
||||
QEap4SJS
|
||||
|
||||
Name: res/pe.xml
|
||||
SHA-384-Digest: 2/b8jjkH6ZWtj+rx47J8pFXIddCYQE5yyGHGtfg7/OZzQP99eLPlRAyp
|
||||
okfCWbKv
|
||||
|
||||
Name: META-INF/androidx.localbroadcastmanager_localbroadcastmanager.vers
|
||||
ion
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/8c.png
|
||||
SHA-384-Digest: q4lIWdHxuDE1nNVcSwYB7zcyF7AFPghEE0BeBnaaI4WuJaHPdFtIf05P
|
||||
dXrHuIBa
|
||||
|
||||
Name: res/nL.xml
|
||||
SHA-384-Digest: IywTxSlxOx9Y1Kf/ruPYUZ47KZSThVr7mLDjQgncyRnZPKST+gG8s6OZ
|
||||
MGRHQ0jW
|
||||
|
||||
Name: res/SG.xml
|
||||
SHA-384-Digest: VwJEojrlmaxOs1B1xZwn4ioUPdHBxh1xjGUzEtPUSfx35SbCEWJWilci
|
||||
oUCw/MSL
|
||||
|
||||
Name: res/color/mtrl_fab_bg_color_selector.xml
|
||||
SHA-384-Digest: LOBwJ4hVo+kec4K87tMlBPPDx3diTLtGVqbaplYte1gjLuVPqFFx1A38
|
||||
Wk4oZC0u
|
||||
|
||||
Name: res/color/m3_tabs_ripple_color_secondary.xml
|
||||
SHA-384-Digest: GN6HJANId21radQt1cLEjB+v2gjrJ6Xr74tktUB2VieNVqySACgebPe2
|
||||
UUQwBehy
|
||||
|
||||
Name: res/Li.9.png
|
||||
SHA-384-Digest: miLIS9IaXKW+848QkOPmShQNfKqSobV2iElOC8yk3e6v+bVkOjZPEEWg
|
||||
kj7tDTSk
|
||||
|
||||
Name: res/4k.png
|
||||
SHA-384-Digest: 5+BhOy0tnsg2mXOGGlVvsV9sNp3ylSru/BV3TIehq8eAWaabWOWKcMjT
|
||||
Ty2gn9O7
|
||||
|
||||
Name: res/el.xml
|
||||
SHA-384-Digest: BtRI0F/NwOVzxvpsB6iSS10CCj1g7oRtYAISpqRg45qUXNv0KhrUKyQN
|
||||
w+L3bRwa
|
||||
|
||||
Name: res/J1.png
|
||||
SHA-384-Digest: +ua0viHjVWfBce4n186HwKHONDaK/VP1YdULrBXbA0oPlLfedVR0KgNG
|
||||
EAdwc966
|
||||
|
||||
Name: res/color/m3_slider_halo_color_legacy.xml
|
||||
SHA-384-Digest: p3CbxhJdoP8IMVGoZ/WPa2j1Brw8Cc4YITeJfG//9frCLBpdUu+Y7z1x
|
||||
5myFwdQS
|
||||
|
||||
Name: res/fj.xml
|
||||
SHA-384-Digest: dGdZX6cocHkSMBuXdeLF+2vyR1XAtqDeyBqGQIeJ2w6zsg0lrRbSuRz+
|
||||
BfeDfPXU
|
||||
|
||||
Name: res/Ke.xml
|
||||
SHA-384-Digest: PA0REJId1SSR/7LkjEyxSYtq9VAgrjxOvM+5bFd4OO5VG8SmGfPf/rGW
|
||||
kmYWTBw+
|
||||
|
||||
Name: res/N4.xml
|
||||
SHA-384-Digest: OlawSt0Vu3tECYnk8Uu65W3h3l0onq9HJPI+HetKmfAQgeX6bdpRn6dI
|
||||
hBlDKsLK
|
||||
|
||||
Name: res/jI.png
|
||||
SHA-384-Digest: 6vOhdEWwJUuEDJGlQoPp6sIthLWMW1PAqJMyRUuDhI5EA7FyDuD2bF15
|
||||
RdcpQg4s
|
||||
|
||||
Name: res/JD1.xml
|
||||
SHA-384-Digest: 6OC1OkDY6X7rOifL7P0/lyNpz4XTpi7GmJAaPCUxIvx0QOgtU3VS/okI
|
||||
bubo4OP2
|
||||
|
||||
Name: res/No.9.png
|
||||
SHA-384-Digest: 3PhdH6l4ZVLcaIVTxODY9duKFcilsduA9WATLoAjllxxWIpWS3L+hOQI
|
||||
6lcAtsga
|
||||
|
||||
Name: res/color/mtrl_filled_icon_tint.xml
|
||||
SHA-384-Digest: 35xND/H1nQwVzjo2IsfTyoOL4NxJR3tyDhJucIi+3SjvguciAzE2g9RP
|
||||
LqdghcEc
|
||||
|
||||
Name: assets/js/lib/crypto-js.js
|
||||
SHA-384-Digest: p4S5Ok8jC6EYwHG0MeGzzkgxsphF6h9HgXEyhRKLCH0wR2Nq1L9WfD5F
|
||||
x0PbG6hQ
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/HandlerContainer-mbean.properties
|
||||
SHA-384-Digest: limSfIrrX9xMuLQVhT9zAyf/yrkp1whTMpGd+e/lxJ7TmQxeP1b2ieDm
|
||||
e+c1bMFK
|
||||
|
||||
Name: res/68.xml
|
||||
SHA-384-Digest: pX4NdvOwcig10llXsx3bpu9MuuACaHdsQlqajDTjl8YkNzJvLLFkCLpj
|
||||
d18lSkt4
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL5.bin.properties
|
||||
SHA-384-Digest: DtBLdajnXhHufgIh5c+HpFTjxzhSYWfEiHgSeoiDhqs3AJ1u+nm+t2+E
|
||||
XustgZFG
|
||||
|
||||
Name: res/pV.xml
|
||||
SHA-384-Digest: M5Ubl8tuUzskM6DfNNUilsYEnfAynbW3jpZrSfEtPRzqZ+zP9+uJxeXu
|
||||
yAda7Q1k
|
||||
|
||||
Name: res/MW.png
|
||||
SHA-384-Digest: g28G6+13JYz9R88JIdAI2SdBJS8BFNYSJbMTTobucUn2ypwasGe0e/sP
|
||||
FCmvRMV7
|
||||
|
||||
Name: res/65.9.png
|
||||
SHA-384-Digest: 8kitJ2jvKwP1gqfTSUK3j/OGoFF/3okUg7DU1Jj1MpihIfltxcqhGiMV
|
||||
78fJnSMY
|
||||
|
||||
Name: META-INF/androidx.biometric_biometric.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/color/mtrl_fab_icon_text_color_selector.xml
|
||||
SHA-384-Digest: Xb4v1VQLs3f9oVcbKYfer2+sadg76KwCbYziyRc7L88xvO97RXSCcbGH
|
||||
Sm/+7nTe
|
||||
|
||||
Name: res/color/m3_button_foreground_color_selector.xml
|
||||
SHA-384-Digest: XcONovWw2P9NaPXhEAOBQEo4KP+jlpzrCGNPDCgOyh8bU170qbotOYkY
|
||||
z5xw/pNd
|
||||
|
||||
Name: res/A1.xml
|
||||
SHA-384-Digest: okhMO0U+rqRyy1HaPSHeQMistmnaNESMAlmAfg8Ro4uSLOmTJGh2wJkr
|
||||
RuppJfr0
|
||||
|
||||
Name: res/_P.png
|
||||
SHA-384-Digest: 3sZjTZbMqwMW8DGZnJqBw3pAJ7iXgffNJSDygftmHR7vjZUdbg8IMLXL
|
||||
BONZMpQi
|
||||
|
||||
Name: res/7R.xml
|
||||
SHA-384-Digest: p78QFhNS7IWdXjymJUOcCiNK3fc8qSR/0WaTaJtAepP8oz8ll0UY2Bln
|
||||
lbVubhte
|
||||
|
||||
Name: res/Eq.xml
|
||||
SHA-384-Digest: 1Qr2Ktq+dzGJa62sduaAWUSxHTC0Mp2eSxxq4PwnxiIZVjypWSpQO3K1
|
||||
hLUH4vRV
|
||||
|
||||
Name: res/FR.xml
|
||||
SHA-384-Digest: QDDnkFh8HeR76j0TOnGMC+V7/Vt5Wv1m5CTKY936pDcUtrpr3uC0NJSk
|
||||
yIlRkmAf
|
||||
|
||||
Name: res/XK.xml
|
||||
SHA-384-Digest: rUSET19NXHVoYfboULO7lXEjQ5fLBnZIze5Y08zVvlhnMOmn0/PC3Zuq
|
||||
MWpya8TT
|
||||
|
||||
Name: res/tZ.9.png
|
||||
SHA-384-Digest: hN+E6rB+RDb6ft5PXTr+bZVVk8wpGXaHZYeejllJ+sN7iv6eTwuT5ZGf
|
||||
52pd500J
|
||||
|
||||
Name: res/7_.9.png
|
||||
SHA-384-Digest: +SloTJHYf0JnLzQg9kM0Jto9gYgmWgaVi0jIh5kFvmcil0eNFReizG8Y
|
||||
08okamCt
|
||||
|
||||
Name: res/br.xml
|
||||
SHA-384-Digest: YCE/VtqlVjgGUaGKlABBVm5M/EVzuF+B15ncdlRHww/0rvyMDzYVDX89
|
||||
uzZh5WCn
|
||||
|
||||
Name: res/gK.9.png
|
||||
SHA-384-Digest: aicBCHn1XDdQfK4J0MyguK32p7rL2+/YxrmifjY5PMKuQgi3bj1iAWcK
|
||||
htIBLpwy
|
||||
|
||||
Name: res/color/m3_button_background_color_selector.xml
|
||||
SHA-384-Digest: Ry1ojnu9ZPAVI6+v4gUBaFKxIpORl3V2AlXXfMmBLNAB8tx3knPSi7xG
|
||||
8TFPsHhd
|
||||
|
||||
Name: res/eP.xml
|
||||
SHA-384-Digest: 5laWod/xId3GuEgrzMVOGEJWAhychY01s3aHTxyGnD6Idyr89JbCLWNP
|
||||
iLXgA3dq
|
||||
|
||||
Name: res/_i.xml
|
||||
SHA-384-Digest: k9Q7nPSdEdHo/jtnXBJjOui1BGFkGOnFeWwzf4tRcuXY69UixciZfjCF
|
||||
P1yBKVkw
|
||||
|
||||
Name: res/9O.xml
|
||||
SHA-384-Digest: nfPn5jjAkqcCqGdsDJ9DDD8msODi+fBPIh39COKszL4cp6Vr/ufhAWpj
|
||||
xtsajJdY
|
||||
|
||||
Name: res/Ud.png
|
||||
SHA-384-Digest: +T040gguG79bKdExZyF1SMMeNi60c7shXHfpwcgfU8S7COJP5QKKnDQS
|
||||
sj4T2IYF
|
||||
|
||||
Name: res/Ck.png
|
||||
SHA-384-Digest: aO68KUChTAZdPyPaQ5+N1n2dKj106a3WJXg0OpJgv9JgKiCOBBONUlgh
|
||||
7KugHcnD
|
||||
|
||||
Name: res/5e.xml
|
||||
SHA-384-Digest: bo1qOTMiGtqRrXQ9TtE7IIk1brRLwI5mqqFNm2oB6ZRSU+ECYdlPoFBw
|
||||
otTrX4/a
|
||||
|
||||
Name: res/o1.png
|
||||
SHA-384-Digest: bpcATAC/SqWUJ69a+pD9R808lg1WPPDjpMgWLjQ90dHfG5N0tTZZf23M
|
||||
8BAefGcb
|
||||
|
||||
Name: res/rE.xml
|
||||
SHA-384-Digest: CLGmIJuBVWqwqRkxeGVvnZUbU3MmD3RGT3RQMeM6kfNLmfDLPOHta45U
|
||||
xVWM6UGn
|
||||
|
||||
Name: assets/shaders/fragment_shader_copy_es2.glsl
|
||||
SHA-384-Digest: 3ay2yrOwYwQ5GeKsQzqyu0iIvq3MmQccLut079GQZWOr2soSX2mX2jtU
|
||||
yQ6pH1Ze
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/NCSARequestLog-mbean.properties
|
||||
SHA-384-Digest: DLp1YE6FpvrNyrjCYo54bdVcAlauzl68zvxKCnHISlXKxl/zqEcrib5N
|
||||
zws/qsCv
|
||||
|
||||
Name: res/eR.png
|
||||
SHA-384-Digest: dR3U1E4cjbkVqeL199quLcpibr00qU0TNZbGH18dLC63OsWRZkmKjW56
|
||||
WSa+dIu6
|
||||
|
||||
Name: res/3u.9.png
|
||||
SHA-384-Digest: 5+OW0oVUijxYNH87RRPJm+WxschOgTkMuKWKoSWrd0fPqmeAkSLWUCuk
|
||||
4JxGCXfV
|
||||
|
||||
Name: res/ya.xml
|
||||
SHA-384-Digest: kuqc3W+bteryOxjPXQuLlxOA0HCywrLJCnaV5IbXzLLc0xHARDFQrR3H
|
||||
g9UAfMaD
|
||||
|
||||
Name: res/hN.png
|
||||
SHA-384-Digest: +r+ebk29mL915VybwgYx+FuT5zk1fJ4a/9No2Za9Y9E3X9AfKXix6Dap
|
||||
LjotAoWs
|
||||
|
||||
Name: res/Zd.xml
|
||||
SHA-384-Digest: sU2o43P2OF65jtPRDU+yWhhPPfLM2L/fj/+MuoMF02PNdhnqJWrHTLqr
|
||||
R5WfFHSM
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata-core.version
|
||||
SHA-384-Digest: XOqA/6uD+38Okz+pytXiIKfRhrbLZcfmoIOiYR0xlOXNPpABG8PzPkwA
|
||||
9k3ohMWd
|
||||
|
||||
Name: res/ev.9.png
|
||||
SHA-384-Digest: uaHN8UCRxLRcoW7T9ljRFkSd7AdMDHuNWsCKH/zvk5tkAdpK99gD7zky
|
||||
mAgerRjl
|
||||
|
||||
Name: res/Qk.png
|
||||
SHA-384-Digest: 2Q0JXf+l6TNoII8xKCosP326VwkUA9cE5DlA6Xgdws1PrSvFkOrrB7h6
|
||||
Uid8gzu8
|
||||
|
||||
Name: res/RL.png
|
||||
SHA-384-Digest: SZK625JCkzpT9RU7ruADcGDGyrK0SXlFXDVbpY8UWWxEHRk3wZScWCqg
|
||||
24XVRWWo
|
||||
|
||||
Name: res/S-.png
|
||||
SHA-384-Digest: 4v3nIarNDUEcqhbNCz7kbDpF0bQk4rn71P+KO/WHT11ykj6omL76ozlr
|
||||
YgXMUWy/
|
||||
|
||||
Name: res/20.xml
|
||||
SHA-384-Digest: iChgeT74FxRjgZusZQkSlfql/o0A0sN721qkLKme5bNBL1nczOUaSxkU
|
||||
EHljRwoz
|
||||
|
||||
Name: res/gv.xml
|
||||
SHA-384-Digest: GWeyxWJIT68+HmJdA/zVZ5hTxq4SuKEhBnzu59cgMwQfYxpPHVDpF9Xp
|
||||
QZ1/sEiV
|
||||
|
||||
Name: res/ZW.xml
|
||||
SHA-384-Digest: VVZ3IOqrRKFCjD1ueBQsZHX7G8Xvscr5OuCzQbdfWaGRN03oN6qdh7Uy
|
||||
5Y7bYdf5
|
||||
|
||||
Name: res/tU.9.png
|
||||
SHA-384-Digest: ZugrMXo+1f3eeOOTuIWJIzn4EN38003eJHlqZ+NrerNV5PzGLsb1j0G1
|
||||
/qYK9fKY
|
||||
|
||||
Name: org/eclipse/jetty/http/encoding.properties
|
||||
SHA-384-Digest: HE7HiEkhWfj8bm5F13m/6iL1hSgk2qkvGL0VWES+HRLptKoCdgz9V5Zg
|
||||
kZevqz5o
|
||||
|
||||
Name: res/Sc.xml
|
||||
SHA-384-Digest: pcCQMUbtzJXD0dK/82TKvxncsovQJ2lGyQ4xwEDfHeJv/qo7yED08kmt
|
||||
zfRsupDS
|
||||
|
||||
Name: res/0S.xml
|
||||
SHA-384-Digest: WytAbSAiiv9QqkQxOwCkuAqyMnzcUig5Al59BVCq2tyxouzMKIojYuMS
|
||||
NEMCsAzM
|
||||
|
||||
Name: res/color/mtrl_navigation_item_text_color.xml
|
||||
SHA-384-Digest: ceU58PHHS47LYAjLBqlYJFqv/wAbFCkRKUTbATjMpt+ZSd9gCq8+zof8
|
||||
030WUmZb
|
||||
|
||||
Name: res/2j.xml
|
||||
SHA-384-Digest: TGNZ7cGPeGRQNi1NT2OnkradoaGsaOOPrElVDSzms1BsX8ODJ5bIkD2P
|
||||
GYFC0W4z
|
||||
|
||||
Name: res/sA.xml
|
||||
SHA-384-Digest: ZxDU7uzS0FPVKVlu6smjLYe2X3aQYVXvh2lhlBiV8IXszmEC7sXKLdfK
|
||||
2pCKanAD
|
||||
|
||||
Name: res/color/m3_timepicker_button_background_color.xml
|
||||
SHA-384-Digest: n0mbHRW840O59Dys+KXVH2pyHrsywCrQ3/emSRBmCSuoSHv//2MfmqAO
|
||||
I1caZ+h8
|
||||
|
||||
Name: res/9b.png
|
||||
SHA-384-Digest: s/RfDbD42++z8qZNgNe+35uvxn5riTSKB66L+bJqnOkhAs36eu3xIRCu
|
||||
HzdU2kx1
|
||||
|
||||
Name: res/nn.png
|
||||
SHA-384-Digest: W0VbBUe+LN9niP+DjJil7jPG+zXyjPYTAy+L6jlYz4yx/lrEwqRFGtL5
|
||||
r+pPTfRj
|
||||
|
||||
Name: res/RH.xml
|
||||
SHA-384-Digest: ZeEwVkZ80687gCLEEJhBRb6EJy14Xtmz2YYKePP/pIj/CpkoC91iKxL4
|
||||
5NvP9nqz
|
||||
|
||||
Name: res/GQ.xml
|
||||
SHA-384-Digest: Fu8qJRBVS7j11Nxwyd7URJCNeltJ1thOKJ2tMs6JSS1uYHA467l/tn/w
|
||||
sRfPildE
|
||||
|
||||
Name: res/N01.xml
|
||||
SHA-384-Digest: oAKi2Xwr8w4j0+db46/Mq3DUMfMFE4Qriw9oR87J1KVHfx5/xE5UHGql
|
||||
2YTOTd3u
|
||||
|
||||
Name: res/kD.xml
|
||||
SHA-384-Digest: Croy9LoPhtRfnJCZAJXbKjary5MSz0/i2VtR5OPwd04WBEE2X7C0yI9z
|
||||
B56s4fJK
|
||||
|
||||
Name: res/bT.xml
|
||||
SHA-384-Digest: rUPaPDPChCEZBoHIHPMK8rLJNHD7SLHpMDCUoej8vCR0YomI4qB9rsfh
|
||||
xuvvNWK6
|
||||
|
||||
Name: res/c5.xml
|
||||
SHA-384-Digest: HuWBFlf876klFny//Rgc7EfL331YgPBbLivfTPnqDyLgbfZM3X/1P+WG
|
||||
/IEVoFSU
|
||||
|
||||
Name: META-INF/androidx.legacy_legacy-support-core-utils.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/t3.xml
|
||||
SHA-384-Digest: v+9LUsJHm50msPvunrrA8K7C84XJa9ZExukox0tCto5/FD3UYtrMLMhs
|
||||
O9kx6ROZ
|
||||
|
||||
Name: res/Bi.xml
|
||||
SHA-384-Digest: /68Fgmx+X/PDMB7DF3f4Nqluepzdn+1h6RGPktCz32hP5inviylaVjT5
|
||||
ulerrpqE
|
||||
|
||||
Name: res/k_.xml
|
||||
SHA-384-Digest: nH/aUwhC+D7bh4XEuzCjAvuE/IC7gYtt1spuN26BzGcQoUQ45yV+agLq
|
||||
nVcf8Q7I
|
||||
|
||||
Name: res/color/m3_text_button_foreground_color_selector.xml
|
||||
SHA-384-Digest: YtbCcmCemZEn6j0qAHyvnHX6RqFQ8VUVjPBy//FE57bXBpXUZTDTCkCc
|
||||
BfETU3w8
|
||||
|
||||
Name: res/5v.png
|
||||
SHA-384-Digest: 6/b1pOnM5TsmZQ1MBcorb1VyHq/l8q23mym5thNUmkHKMNpYgEVvDwpc
|
||||
hKLG6mSB
|
||||
|
||||
Name: res/sn.xml
|
||||
SHA-384-Digest: +avoxOFPBghiXTfWJx/nJ9/6lN5slI7pkZbH5Tb5DAx3WjnfCR1tunlK
|
||||
+LGU9KwB
|
||||
|
||||
Name: res/u0.xml
|
||||
SHA-384-Digest: vpWKe4xkpFHO9f9yfQ3ec4+qXVd3FCOlQ+OCceW5Vf5Og3c9gafZ6cCF
|
||||
H2AR5TIO
|
||||
|
||||
Name: res/tS.png
|
||||
SHA-384-Digest: x4dr8WLLRU1+tOVdpCRSp7arLNzMTrDJt8gY2N4SN1oBuYi6e4Qh/J55
|
||||
O5W5Zfce
|
||||
|
||||
Name: assets/js/lib/cheerio.min.js
|
||||
SHA-384-Digest: 6YP6D+mRUl84EmklTZYVCeXpTSqATW7K7E9rv9nRLAXHPTgqkNwPbWOg
|
||||
Z6kkPZYo
|
||||
|
||||
Name: res/Wp.png
|
||||
SHA-384-Digest: 3Atlil2rulzSZcAkI9XPfy+RoxX9R22e0cwhw5RkhUsKR6oTG9a2ArJB
|
||||
OjsAJ2uP
|
||||
|
||||
Name: res/color-v23/abc_tint_spinner.xml
|
||||
SHA-384-Digest: 1LKEAPN57/exQ3tqYm/anMab6GIjX5YpsYzryjZwNQDIBr0NdspSg5ct
|
||||
UKDtrYoG
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/FilterMapping-mbean.properties
|
||||
SHA-384-Digest: GU+pmTaTlhRA3B6yotzZHKVmYWgXhJkqE11z1yxV9Q3hiZy55Hfcd0+a
|
||||
Smicn+VS
|
||||
|
||||
Name: res/2x.xml
|
||||
SHA-384-Digest: VvDMk5id0/dKLkup9YdEflCqxea+AVWzoF3BzbVfhaFY1NR6TILTa8JQ
|
||||
pQ8xJf7Q
|
||||
|
||||
Name: res/dC.xml
|
||||
SHA-384-Digest: E5n0o20/vzRKhKZy1VvWiiFBpQftV9oc87S7N882Y3M4yBnDOs4+28g0
|
||||
ddvIBp0d
|
||||
|
||||
Name: res/color/abc_background_cache_hint_selector_material_dark.xml
|
||||
SHA-384-Digest: P4j8GHPyVOPgwaUoduJDb0jGuMmZCloYgPDOe5Nqgldjrri+hW59Pyhg
|
||||
sWGQg3vE
|
||||
|
||||
Name: res/Fg2.xml
|
||||
SHA-384-Digest: 2n1/PxUa9FNAzF/725PwZaCorh4OdjH/Oij2x3BU1ML4Pifvf8UCQvoF
|
||||
49bO1gVz
|
||||
|
||||
Name: res/W5.png
|
||||
SHA-384-Digest: j7KzS1tdRqP5iiOnZUdEydx6ER97Rn7+H5ibVq56ixT11oxtRhIQEALd
|
||||
9MY3U3UD
|
||||
|
||||
Name: res/Ce.xml
|
||||
SHA-384-Digest: JfnyeE2EhoGtx/dDwmHB+TNnNX6ne8SteliSYA9b5nmwZFx1onnqgcBa
|
||||
zdwSSW0k
|
||||
|
||||
Name: assets/js/lib/spider.js
|
||||
SHA-384-Digest: ilzMS93WLHNL8cv9xG9gGFgkc/AJnWGYVDGr5hF+MMs3a4gCtzeBpSTr
|
||||
TN0GrE43
|
||||
|
||||
Name: res/1e.9.png
|
||||
SHA-384-Digest: IEmjoduErLEyLx6LI0HYddYJXVVSlmgBT6ToKFV54sGoaml+IGCWgERa
|
||||
PKFZB8X/
|
||||
|
||||
Name: res/wu.xml
|
||||
SHA-384-Digest: Z8T9qW6mvto0O7/Jp/ci1eQtbz7xPcHmtCi5/BV/2GYxgOfdPwScH0iw
|
||||
7xk7GPEC
|
||||
|
||||
Name: classes6.dex
|
||||
SHA-384-Digest: Uh73FVrm9LkSU01uCSicwnWkq0DawFzZlRfGerckI1L9v10VYB+9Y9kM
|
||||
0K/77Gvr
|
||||
|
||||
Name: org/seamless/swing/logging/img/pause.png
|
||||
SHA-384-Digest: 1Ykw2RaP5yvnLRawyW11o3Sy5aVcOY1jKcrId3jnWEDTIcZTLjAPGE1j
|
||||
C6VFUtxO
|
||||
|
||||
Name: res/color/material_on_primary_emphasis_high_type.xml
|
||||
SHA-384-Digest: y8O9iKZ70x0eBEKFOAMheOY2LiTZluvoCuWaImI1LJecQeF/5gHL0Gpl
|
||||
FZlb2J05
|
||||
|
||||
Name: res/color/material_timepicker_clock_text_color.xml
|
||||
SHA-384-Digest: +pwvszGqU0oHI8VvF/opBAFPn9qud8ZhGrX4hrbvPkpVWcKhljEA1X3z
|
||||
iUbMMYmE
|
||||
|
||||
Name: res/1d.png
|
||||
SHA-384-Digest: mu0ZrlpC8hDg8vJ49eKUnBrKsV9iicWEhiu6eVksw0AzCOdwjuIJ4m5T
|
||||
syBX0rjf
|
||||
|
||||
Name: res/color/m3_navigation_rail_ripple_color_selector.xml
|
||||
SHA-384-Digest: 9fRCKRuk4sDb/8v4iNNSG8ai5d3EI1g96Tn709nYx4RuS0kNcomty1Md
|
||||
HUb+kW1B
|
||||
|
||||
Name: res/Lp.xml
|
||||
SHA-384-Digest: ZrOMbbtAkEuz6ws+LvaTxLb1WNW4cmbis9zkMrL6W5/uMHQeLnYVgACi
|
||||
iC/cfMbp
|
||||
|
||||
Name: res/IN.xml
|
||||
SHA-384-Digest: coP95n5l3l2s67hpltbRfxiogRXzKdJQbyN/ME4C0nJ8l7xL0NKtCCTC
|
||||
emtJvNBe
|
||||
|
||||
Name: res/iI.xml
|
||||
SHA-384-Digest: wDJy/YxecuuznsKUszQE6qNMldfwTBz7FHHRHrKJnTV6/u/HGNKd75d9
|
||||
gtRiK7QP
|
||||
|
||||
Name: res/n-.xml
|
||||
SHA-384-Digest: tNBy/rZn155BQydH0e8RjSy99ds3Xi9iRLO8CgOikVVz0Te1rTmPGDWU
|
||||
0hYeYI18
|
||||
|
||||
Name: org/seamless/swing/logging/img/removetext.png
|
||||
SHA-384-Digest: 2DQtIRBR48b/g2oTv6uILo53CTj2t/SRblCvN2dh2rk+pcZCYeIloIBB
|
||||
cbPSwMlY
|
||||
|
||||
Name: res/bt.xml
|
||||
SHA-384-Digest: Dk/ghmK56Q6qbm7iUmw90sbWXX+mhtjF/84p+18MmaJ0MT/wkoSjJc5p
|
||||
0b5TUbui
|
||||
|
||||
Name: META-INF/androidx.print_print.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL3.bin.properties
|
||||
SHA-384-Digest: 4mpCpviRAOoLhhgdEDDWo1A2P+U7ZNBSMqBYljLS/4QPi88nGWONxQTS
|
||||
aqeFIpCs
|
||||
|
||||
Name: res/mA.xml
|
||||
SHA-384-Digest: i9b+lAuRGgyPMLDlmJoawuZsGrlBhyYFnpO+H69kwWSSjaWXCLKyw052
|
||||
DR7AMDE8
|
||||
|
||||
Name: res/fO.png
|
||||
SHA-384-Digest: 3onyFSJ9cSNILnoc01eDgcZSK1gV1GNduUiF41sxO1yGPXWn70r6lWBM
|
||||
Eeh85t+l
|
||||
|
||||
Name: res/hl.png
|
||||
SHA-384-Digest: A49PPC6xh813FZQpKxFzsM0VQDTvsLEx/r4m3f8a/ybvxVnbnzvuaCGA
|
||||
fRoNxpav
|
||||
|
||||
Name: res/sl.xml
|
||||
SHA-384-Digest: AWwKQiHa+SVzRybXKPfvu6MEgMljNlsnwHRAmAWuPu48U5EXO2uoIg9N
|
||||
OMfx5zQj
|
||||
|
||||
Name: assets/libmitv.so
|
||||
SHA-384-Digest: A05bvIn+yv/dIjXvWBs9XYCPMeDkQwxU/NmkOyieDsCCSRdVyTADJuIH
|
||||
XiYx338P
|
||||
|
||||
Name: res/Lt1.xml
|
||||
SHA-384-Digest: sU2o43P2OF65jtPRDU+yWhhPPfLM2L/fj/+MuoMF02PNdhnqJWrHTLqr
|
||||
R5WfFHSM
|
||||
|
||||
Name: res/MU1.xml
|
||||
SHA-384-Digest: W+2g1Uh2zS1qYYsWhbPevI4jMiYdelGZgQ2Ccg63KTp6BsY0ZnDLY5eS
|
||||
9uaD8BGk
|
||||
|
||||
Name: res/pk.png
|
||||
SHA-384-Digest: 9bHxMuASK/WODGdlWo5/6vL9GZQgrF1A3ysiIhsVPCrOYNRq6oEbHz/Z
|
||||
vapiU+5Q
|
||||
|
||||
Name: res/8p.xml
|
||||
SHA-384-Digest: 74ZcazQd+5Z2YjhPvb2i79NfJ0XSoHqdmI6KrbhDfOsvlOkF2ZXfCrge
|
||||
02aQxkRN
|
||||
|
||||
Name: res/kB.xml
|
||||
SHA-384-Digest: cV7tBB0Lq3RHYpPr55hTgh84ww09MjcNkkCgabztCvX1NceLc/jmjKw8
|
||||
YY4HN27E
|
||||
|
||||
Name: res/Nk.9.png
|
||||
SHA-384-Digest: dHZvW/9I0/OlMhq2DBEwnHWJ2hSZyIeIOttamFdPt2nRmS3dGwxO8gVj
|
||||
Bjq/0U+k
|
||||
|
||||
Name: res/color/mtrl_error.xml
|
||||
SHA-384-Digest: xlJZe4bfHpQ2CtQXhSEswsgVzn8ATw7FDnEv6vpe88WqBQVF+1/tqGbV
|
||||
sRKv8UoL
|
||||
|
||||
Name: res/eC.png
|
||||
SHA-384-Digest: 2QYl2xDHzCd5v8MNcU2PeD7iDZqoq3hGLiU5cnUO64GoeROG522ewIhR
|
||||
am5gdKAR
|
||||
|
||||
Name: lib/arm64-v8a/libquickjs-android-wrapper.so
|
||||
SHA-384-Digest: s8eDOHARHWtE0tQJIgFWqgy2WlwsJDmnRZwYTP4PR8AhxLCait659Q3p
|
||||
hvQgvauw
|
||||
|
||||
Name: META-INF/androidx.core_core-ktx.version
|
||||
SHA-384-Digest: rhLazMexU+PpVIUOOPSPBvmtfstRSlMkT38j5NLxiqmKwgYkKSNIitqq
|
||||
I28eUHut
|
||||
|
||||
Name: res/color/m3_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: TOcVEP2bRG/ECOSWdZopFTfkCPbmOOXwSP7VNBB08l2zFGSNzpAt11fi
|
||||
DM+D6jLE
|
||||
|
||||
Name: res/color/m3_text_button_background_color_selector.xml
|
||||
SHA-384-Digest: NkfbVCmYx+NKEXElAXPUl5bU2jmzlC0NdRtzh6CmKsPJGtuZwFWAespK
|
||||
Dxuuormg
|
||||
|
||||
Name: res/0k1.xml
|
||||
SHA-384-Digest: m+Gk3os5PfvF5OfPHZV3I10HQXvjXeBdFKPioGY3K7TtofyD4t+vHaFJ
|
||||
EUF7D0Oc
|
||||
|
||||
Name: res/bi.png
|
||||
SHA-384-Digest: MmaFD17dtpaPXkJT/pCsDcJsK/FN0qwoenyTImnqk6/R6oa3AhOF2zaA
|
||||
5WEf5lwH
|
||||
|
||||
Name: res/color/mtrl_popupmenu_overlay_color.xml
|
||||
SHA-384-Digest: pbwmnjkSBqXF6plQnu98scPzxA+TSDYhGtaJLz0qaCAriwXu5A6mC+qA
|
||||
WgvoQbSZ
|
||||
|
||||
Name: res/color/mtrl_tabs_icon_color_selector.xml
|
||||
SHA-384-Digest: XLVU1pEnhqbl9UBicQOTDScAwgUIeSIMs/adFD14D+hl79rh/S8cNsB9
|
||||
A1shw8WG
|
||||
|
||||
Name: res/zb.xml
|
||||
SHA-384-Digest: CsbqW7jx1pJpL/jOqI0n9pWAosGzzycICMe6MehhyPj5jJrms2XMF4tZ
|
||||
lsn0X6CK
|
||||
|
||||
Name: res/Dq.webp
|
||||
SHA-384-Digest: L/6ms+/E+vElPj29qtEPPAlP/Hn6Mcu5ReChZCgYPY6UwU/Fsefcmawd
|
||||
M0WqM8zr
|
||||
|
||||
Name: res/Jw.xml
|
||||
SHA-384-Digest: Ti4PC07uwGZHL5CgxvEREhwtBr0kLqQi2h3IF0BgtsLoSwZ9I614opdk
|
||||
k3Q+y6SF
|
||||
|
||||
Name: res/color/m3_checkbox_button_tint.xml
|
||||
SHA-384-Digest: c5xOkSOoJMRw2flDyC29Y5O0No70BlpFY7zt3itcqibbEWdqagOVYlUU
|
||||
blqfmQG5
|
||||
|
||||
Name: res/color/material_slider_inactive_tick_marks_color.xml
|
||||
SHA-384-Digest: D59uuAlKV3/Q5pmFXYfpC4ZqM85bGzUtADDxzdR/hDrDVrD81IzYSqnX
|
||||
aWKX0QI3
|
||||
|
||||
Name: res/color/abc_tint_edittext.xml
|
||||
SHA-384-Digest: Q19VCvM/4a2NLSpHg3JUBRGiEdg8yfplpHiHWrpNZsV9duEGRr7NcqCz
|
||||
+ZGMaQoK
|
||||
|
||||
Name: lib/arm64-v8a/libswresample.so
|
||||
SHA-384-Digest: 1opA4ofTJKQDE20jBLim4gsAjT8uu19Tdmjmn/Tf5jEu5Xdf36plu0qC
|
||||
0AS9/L+k
|
||||
|
||||
Name: res/io.9.png
|
||||
SHA-384-Digest: Hu4PjavXIUPCIQ7KeHnKJQRN0wK56uNuMyb+R8nekaYUbjthQgZGMGY6
|
||||
IJq8xWL7
|
||||
|
||||
Name: res/3h.xml
|
||||
SHA-384-Digest: NxJVm2MBcJfVQjTeacvZIFFOWvkvCRuhSBYdXkVK82nhNUKYWYUi1wEv
|
||||
7fIA6bYb
|
||||
|
||||
Name: res/4I.xml
|
||||
SHA-384-Digest: 0erq4wpxCjkZIJzrkPgUNICvHwhX2oAPqcKXomwl1ZyLxxiV5sfElV9M
|
||||
z33mPkA+
|
||||
|
||||
Name: res/yF.png
|
||||
SHA-384-Digest: Kp08K1zQjKVf6DvLnrV6AfxH1REmHSQiezWaRrHWfzYvSjgdi2EaQhR5
|
||||
4TCfKR3O
|
||||
|
||||
Name: res/sV.png
|
||||
SHA-384-Digest: 6kkZDLlrazbXgz8E8irwfCBJ+wkj8vBLD/K0Fx3Fj/xQlXDoaanE+D69
|
||||
fG1wP/MJ
|
||||
|
||||
Name: res/kn.xml
|
||||
SHA-384-Digest: WLOSqNl6XrUidLnmgm03CRVgb7HfZmsiHkzjaF++zKhaNEXWbruprAyK
|
||||
u5DgWf/h
|
||||
|
||||
Name: res/color/mtrl_indicator_text_color.xml
|
||||
SHA-384-Digest: uw2mPuTdXo4+U+rcFCfQwi3681SW5BEY1rlEXkAdXbdqBssZpGVaq3pE
|
||||
w+ciUfGY
|
||||
|
||||
Name: res/-N.png
|
||||
SHA-384-Digest: OocfZHgarJAG9ZYj8RftjtCafKYDgDs6lFhFlEFH3YwVxZCNuHdbaSCz
|
||||
c3laFHJv
|
||||
|
||||
Name: res/5v1.png
|
||||
SHA-384-Digest: uWdHKPEyjGMV2lURz9QPadtbarOJ6Te9dxlUDebj03DJ/jwrrfDZA1lD
|
||||
yOfNBQps
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/dc-elemen
|
||||
ts-1.1.xsd
|
||||
SHA-384-Digest: rjJl2Q6Ol8uV7EyRk8EyjIDhvPgX3kyTYQHxwhJTXEoHA6/eaZnROTBt
|
||||
/h59SyTT
|
||||
|
||||
Name: res/mc.png
|
||||
SHA-384-Digest: WV+MmMreZY7YSsipOlvMeTzBRWLhy47E3qxuHCBL0Zt9mOA5paVAFffZ
|
||||
bRKAQW6B
|
||||
|
||||
Name: res/y9.xml
|
||||
SHA-384-Digest: 0hldjDuXbMsMvi5Ito3jKM0eDW+ZVc6Nw7zo4a9dPVhpfX5LSDe3QvTe
|
||||
Kab6oyPO
|
||||
|
||||
Name: res/Ju.xml
|
||||
SHA-384-Digest: Te/WmtYz5ZEwXxvhuctotHOg9SXUSql89C9jJg6hzso1cB0BXNkaipfw
|
||||
AYR5Foyt
|
||||
|
||||
Name: res/gZ.9.png
|
||||
SHA-384-Digest: 2q1HPd/sYkP84VWeiliA8Sfaa1bfpSUPVGTY1kUxzAishcYlI4LFSCOC
|
||||
5EQvAwp3
|
||||
|
||||
Name: res/7G.xml
|
||||
SHA-384-Digest: OrkPSzMATBQd0yeQ8YjfS12NK0+hW1tsUOEdxD3EV9vG6ampsUMaCbm3
|
||||
QsBn0/XF
|
||||
|
||||
Name: res/Fr.xml
|
||||
SHA-384-Digest: 44FpcCS2Q5LjlRcsV+zBXHQ9zUN3xefLPY4/umgCpG54X9fHH71lTCrW
|
||||
TsvbQDMo
|
||||
|
||||
Name: res/H4.xml
|
||||
SHA-384-Digest: FgQR/3yP9SIH88ud47+1rwj1Xb8vnRdNO6lfCutNTBiCR8YZ9uzCtW3t
|
||||
HVtbkNH6
|
||||
|
||||
Name: res/Lf.xml
|
||||
SHA-384-Digest: h1xqqTXym4B+EVkQnfEtzL3a5s2w9wDLjSG2Y6szBUjypZY3DhxGZ5rC
|
||||
VkG305Oi
|
||||
|
||||
Name: org/seamless/swing/logging/img/debug.png
|
||||
SHA-384-Digest: QRQPu0RlvbFi4vln6Kxm96u8pY8yh4zerHs8p/UcucvwvPK89xQOoz1R
|
||||
CfF93w3G
|
||||
|
||||
Name: res/UH.png
|
||||
SHA-384-Digest: A6wxvMwcOYTzy+fzjPWfCl1YtPO7TIMk1F6G43AUw2dcdl0wjFcmglKb
|
||||
PhF/nGt9
|
||||
|
||||
Name: META-INF/androidx.customview_customview-poolingcontainer.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/4x.xml
|
||||
SHA-384-Digest: hZaJp7KRJQeDH0IlPsnym0TzAYWLwFSSS2AJz0GuqitkeBUvjNdEh/3G
|
||||
jJFD+i38
|
||||
|
||||
Name: res/5Y.xml
|
||||
SHA-384-Digest: HwAOHwKl/A2Rh8dx8dVPZNKUaI1pJgzqDXRa7Bn9G0AJNzWYqh6q/cLA
|
||||
ilJtb4eI
|
||||
|
||||
Name: res/xa.xml
|
||||
SHA-384-Digest: l4JE9QWHG9QLhX/VEUUH0tDl6LYILisVGM2UClhFnLM4L9b2lO4/S/I9
|
||||
P2ZgAv6v
|
||||
|
||||
Name: res/yj.webp
|
||||
SHA-384-Digest: 49E9/fTMbeg0OrUIEjXQRUVaToO2jT8OOqLH06RusPxwq6C+BzsVtBpl
|
||||
kUTLz4S2
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata-core-ktx.version
|
||||
SHA-384-Digest: QBIX4+pun5+j2rsbsQYH71JP/JTfAlW+GglRW4D6q3yzlRdP67BucXlu
|
||||
BCjmdTXz
|
||||
|
||||
Name: res/9m.xml
|
||||
SHA-384-Digest: C0MBAPHSPQlCSj3rfnNMNSbL7MzTGfRzGH1CEmP43uyPN/YWSBl09yxj
|
||||
bSskJMmX
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletContextHandler-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: ORfST6zy7cL4D1WMSboBBB8lCTy3qfRHe9VODvd44Y0mp7oyuAtG33rf
|
||||
EZB9JjGV
|
||||
|
||||
Name: res/Iy.xml
|
||||
SHA-384-Digest: Qym4qMpcnX0yAUI3u0b4WwVkXr4jpUDr+z2ixZhjV8AAzXdashsBf6fQ
|
||||
ZPg+NGgA
|
||||
|
||||
Name: res/gt.xml
|
||||
SHA-384-Digest: g5nnTaKRQlcAjOLEn0aBbGMLIcj+QqEANG+A2cnJ9NAC2PXmQSXlvKX/
|
||||
X3Hx3xoZ
|
||||
|
||||
Name: assets/shaders/fragment_shader_lut_es2.glsl
|
||||
SHA-384-Digest: cfsP9Tw9Mj7V35nVYRgr3nDSDehvs0hojTbfZO4WKmrN8+ZMfm+Bkhfu
|
||||
C7+6OLIy
|
||||
|
||||
Name: res/7V.png
|
||||
SHA-384-Digest: V6nscHa0+d0uudqsPbvUMuPchE7C2YKZMKAxbUS6y4lZXxIhMCUp5ZiT
|
||||
iM5C8T4C
|
||||
|
||||
Name: res/um.xml
|
||||
SHA-384-Digest: un1zVa1WFEjQePPp9VamlPKKBD3cBcM7lM51qQ38qFvELUAko/OGuNap
|
||||
7+kLsq3N
|
||||
|
||||
Name: res/NN2.xml
|
||||
SHA-384-Digest: IGPpL6P7yHcIJ4QxdU2DUevtUPu8vKcDk6SPh73R0ZcZp/kOw91eMD6d
|
||||
sVmdvI7U
|
||||
|
||||
Name: res/S8.xml
|
||||
SHA-384-Digest: tv6Dv8vsHdQnGxH5UyhQqabyYSyGdMlZWIuaUVG/kp2T+1J7L4hk4+18
|
||||
h4lt8xTH
|
||||
|
||||
Name: res/0c.9.png
|
||||
SHA-384-Digest: qeXDnYVw8AcEBoW513qFxxPpzcyUe2eu5LTwwrfLpFdEiqf+gkcOxYyC
|
||||
y65JD2EI
|
||||
|
||||
Name: res/color/abc_secondary_text_material_light.xml
|
||||
SHA-384-Digest: QohKa9qDD5mxD4vEjIrKgnXvl8F2NXi1OfJMwUmMASGcdkgrW2czPmKJ
|
||||
K22elw4h
|
||||
|
||||
Name: res/color/switch_thumb_material_light.xml
|
||||
SHA-384-Digest: bdVsg9yVcNtoan73F3Ke8E+Cjt5PLsP+mcGqllNByjHL4eStUG593i07
|
||||
aPU2rxqS
|
||||
|
||||
Name: META-INF/androidx.arch.core_core-runtime.version
|
||||
SHA-384-Digest: DjY0iMTq31Ov3mFfL8psdEY0t0ga6uGVYaIJHakMF7ruCcUn7bUi20jv
|
||||
Jlg1NMUp
|
||||
|
||||
Name: META-INF/androidx.emoji2_emoji2.version
|
||||
SHA-384-Digest: dtT+kMaBn7mC0I5Zw2DO5bf//DqPWE7jsnjxasKo+dXF1wFxba3xTVXy
|
||||
iU0DEX70
|
||||
|
||||
Name: res/nu.xml
|
||||
SHA-384-Digest: OzMr9mKkS/eqsEo076nIj6jTpXoQ53CVZT0MT1dbT8vdohJ+qXcqGGWC
|
||||
X9XYHgfN
|
||||
|
||||
Name: res/color-v23/abc_tint_seek_thumb.xml
|
||||
SHA-384-Digest: FCldXp4OIiBhGxmarKKko8+efFjdLIL14CqSur8SyyLuQB3CdtwndQPK
|
||||
FuqPaCR9
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version
|
||||
SHA-384-Digest: VS0EgJ1djxb2TyJBiHIGNFXRHoFdCKQ1d/O4Rgv0dM5cg7MNqDNM01oG
|
||||
pdFvKqLN
|
||||
|
||||
Name: res/50.png
|
||||
SHA-384-Digest: XRVeTLd5U97xSsTh2cDg6dPNmqUfH8cOORzdKQ89+GdAGzKe+/YeU917
|
||||
jtTAGyiZ
|
||||
|
||||
Name: res/nl.xml
|
||||
SHA-384-Digest: OPvuL5kH/nJgq5IUC/BeabfEPBZs0rtV+lsWdXYIc3ZyK1r54h2e+2aH
|
||||
h89InU/G
|
||||
|
||||
Name: XPP3_1.1.3.3_VERSION
|
||||
SHA-384-Digest: OLBgp1GsljhM2TJ+sbHjaiH9txEUvgdDTAzHv2P24donTt6/529l+9Ua
|
||||
0vFImLlb
|
||||
|
||||
Name: res/t1.xml
|
||||
SHA-384-Digest: cKj1KIeSr/7jNMHemIfDeCoS3yy6VcJezQotuODu9RBqGXyWJ/4tczKP
|
||||
CkE9ltLH
|
||||
|
||||
Name: res/color-v23/abc_tint_edittext.xml
|
||||
SHA-384-Digest: 1LKEAPN57/exQ3tqYm/anMab6GIjX5YpsYzryjZwNQDIBr0NdspSg5ct
|
||||
UKDtrYoG
|
||||
|
||||
Name: res/Ei.png
|
||||
SHA-384-Digest: bIEIRorq52Lg8UlgcG1IGymf9OEV/xWfeFoyZkR2TTHL5fjT7NyVb9uS
|
||||
wOkrAjpw
|
||||
|
||||
Name: res/color/m3_slider_inactive_track_color.xml
|
||||
SHA-384-Digest: SKDJZrRRI89mJFEMb3bVs0r7D7csM4FC7xvYtsEruxVXAH2J21rYxZ/o
|
||||
olOw5aDV
|
||||
|
||||
Name: res/ea.xml
|
||||
SHA-384-Digest: 9Jb3pROMEN+d1SHKD7BQfl2vTUHVNwLsL0AxrpbSaPI5NIwEYic1fYaQ
|
||||
pYdFEBtv
|
||||
|
||||
Name: res/3W.xml
|
||||
SHA-384-Digest: OChVqCXBh9lszIRngFSTms3fIzkvP+QtZFGh6J8W6sYgVkaouqP7fNZ3
|
||||
Lg7gKq3e
|
||||
|
||||
Name: res/RJ.png
|
||||
SHA-384-Digest: mG6LFePPcDLQN32Du+Xu9/tkD0X4xrFBKNwK6uZEaN7/uc89LTj/4vP+
|
||||
A7mIl7eU
|
||||
|
||||
Name: res/NG.png
|
||||
SHA-384-Digest: u9Ozg/g2iFat3y/oi3JPUx+OXCMruxh9kBTSgpoFNVDDpKYBqG7Lk/DX
|
||||
DnTYmxtf
|
||||
|
||||
Name: res/ej.xml
|
||||
SHA-384-Digest: k4fGpPaWRISUUQAc9VIxAyZJfiCinZk56PJQhMnVsHN0dg/ufyyP7U/z
|
||||
3MEmFmwJ
|
||||
|
||||
Name: res/jS.9.png
|
||||
SHA-384-Digest: mdmLt8qTppFPwsF8MeQVSCWQEcroFxczi8gS68qMJ0Nk/TAtQdsQKHMb
|
||||
NtUIwwPW
|
||||
|
||||
Name: res/6Q.xml
|
||||
SHA-384-Digest: bReVkup7pwfShwmKNG/0KnIN9rp1xGqNxYSHB8ldIM/M+VBBspeh0699
|
||||
aFrNKlc0
|
||||
|
||||
Name: res/r2.xml
|
||||
SHA-384-Digest: joksTGeKg3WaoxwZRKOU0Igo/+46gAaSqml9KAQ9JZ3S9b1PA47+e8V4
|
||||
2AIuEVEa
|
||||
|
||||
Name: res/OD.xml
|
||||
SHA-384-Digest: B9coxgbZ+YqXuALXblRJ6lfUgyUhUq25mpF1zU691zQhHcVy+gZhAVVU
|
||||
Oen1RHlN
|
||||
|
||||
Name: res/am.png
|
||||
SHA-384-Digest: Doe8b+SA8D2iXjde7oxdAxuHEqp4LodsQNWLqbFpgGk8Le+s5MPE9FGS
|
||||
RfngJc6U
|
||||
|
||||
Name: res/yW.xml
|
||||
SHA-384-Digest: rkEWDARRtpBGvwnT8rxnlmvSN/qZYptahm8uweURXiY0woorLGiI7wuf
|
||||
8dfX0xi2
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Server-mbean.properties
|
||||
SHA-384-Digest: qOIVvjj8rUDKzAKPh+aPH0a0OvVNr95R4szW8ZBg584sTEgosV+1Pe8u
|
||||
K+X4m812
|
||||
|
||||
Name: res/1I.9.png
|
||||
SHA-384-Digest: kcBeUvFFhja7k53x3pPHWezTpNClTqp+mGJwp4FbAxFuzaAfKqmcEv1k
|
||||
3Rf9R7Ur
|
||||
|
||||
Name: res/PX.xml
|
||||
SHA-384-Digest: U4x8Yi9NEE10Svx2gSaz9ZNaveMFRO1YEy3lysHBfwop80wlE5icqd2P
|
||||
L/A2cp71
|
||||
|
||||
Name: res/color/design_error.xml
|
||||
SHA-384-Digest: hCu5j123WlGBCjtDy855XiRO8VlkzzPVw7Kfsy+6zWKEZRMwrSZjsciN
|
||||
brWAoMkD
|
||||
|
||||
Name: res/nW.xml
|
||||
SHA-384-Digest: N3Crqe2NgfEvPpQvxZtP6nEApOzU0HyVxefKdFCYPnAJO5uuD4qTgO9q
|
||||
dpFQmoe9
|
||||
|
||||
Name: res/I3.xml
|
||||
SHA-384-Digest: mh9n1+Yhn+OQLAF17zYUvcUzPDwZU/rhebjVdR/wFJjSJTFYBfkE44r3
|
||||
kjAJdm3e
|
||||
|
||||
Name: res/Y3.webp
|
||||
SHA-384-Digest: mUNq5zwbQzqFZIe7NF9KkLrWKo6ctDB2NXNmmJ+L/mqow0kcCfV2AgnQ
|
||||
l2wNOnsv
|
||||
|
||||
Name: classes4.dex
|
||||
SHA-384-Digest: KfIQBiWIoOkHwao5xmuIh/5ucyFXHGqw2bfVAQbEPU37acDX5hisfkj8
|
||||
ojrQ/U5/
|
||||
|
||||
Name: res/z-.png
|
||||
SHA-384-Digest: nvbPZjj3pQdmNdFkYrnVdGjtMAm33fn1RLNjkQBjZV7+j8TGwqP5pcSt
|
||||
eBg9T6LI
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletMapping-mbean.properties
|
||||
SHA-384-Digest: Kphhz1j59fWDy4DQrGCZo3mPik5SdvGMBzYjTKWHVNetyDhZespZeSCf
|
||||
xFye9Nfl
|
||||
|
||||
Name: res/BG.9.png
|
||||
SHA-384-Digest: K5CFR7XoMf+vNYann5LEh/Nu3H8A/9J0dVEG7q4VFfp7++HgqygQAsHn
|
||||
t7TwiSEg
|
||||
|
||||
Name: org/seamless/swing/logging/img/copyclipboard.png
|
||||
SHA-384-Digest: w8eNz10nVXx+vGXQh+4b+55HBzl9L599wpz12gv+d5nyqJx9s4r/84P9
|
||||
/m4V5hmh
|
||||
|
||||
Name: res/-7.xml
|
||||
SHA-384-Digest: fXwQvi493P3dybyUOZxBPzwwmIx8yDcjHFwAo5QsQU17ADvKomoG8Ewq
|
||||
BoKCl57p
|
||||
|
||||
Name: res/h7.9.png
|
||||
SHA-384-Digest: jBCel3YdhwioeXK44svc8mz9L1SOtvuEDGAXSMpQ0o2v7pcEM+CI7V/a
|
||||
Hqa0g2m/
|
||||
|
||||
Name: res/Yc.xml
|
||||
SHA-384-Digest: dFEW2u3VJOAvdc4YwBH5AgOcsQx97Gb4T9Mq2Am4R9pZ/KOEzV22jY/z
|
||||
9fVW6wm1
|
||||
|
||||
Name: res/ZD.xml
|
||||
SHA-384-Digest: jh5I+LMCNLTZJhFCDKqkI7RtBiIZA5+radEhieOAbgmKljahWcaFKD+f
|
||||
qdL1Scvp
|
||||
|
||||
Name: res/iO.png
|
||||
SHA-384-Digest: 3ZxnFzQkEVdT4hrO3gI8RmBmTvOWcy/C5iWUJL2ACbdHvnHZWwYVSU3u
|
||||
5fhnoqFw
|
||||
|
||||
Name: res/mm.9.png
|
||||
SHA-384-Digest: E2enolKjJJ3UjwMpoM+6iPQuzSKlTVAwdj+P9yJ58qxS9IoI2V7Poq7k
|
||||
QGZECAHe
|
||||
|
||||
Name: META-INF/androidx.activity_activity.version
|
||||
SHA-384-Digest: 6XIsDSwtqh+9mYPN6NPMA0XzFB9/VtvGpOi33AC3zJC12Gpr8cTWgr2A
|
||||
SLm28X7C
|
||||
|
||||
Name: res/o-.png
|
||||
SHA-384-Digest: MoumWh0MBBkxUlHKhXAjkiSH8ft0xby+3tKvOofRHTRQDWPOR5nyPpUO
|
||||
SXExWjYx
|
||||
|
||||
Name: res/8j.xml
|
||||
SHA-384-Digest: WVtVVuaNyQQ3mhZLfUffKgsTr9mwnRWyq2mMqidbsRwp5S9rWWMUsn0J
|
||||
pqSxJFTG
|
||||
|
||||
Name: res/color/m3_card_ripple_color.xml
|
||||
SHA-384-Digest: bPy+JkTxYNKlEcJ2Ktm9FoTPSYWJ5ZyRBWCg/exszTdM4tx/9mdyCJtV
|
||||
EmrahM5G
|
||||
|
||||
Name: res/qU.png
|
||||
SHA-384-Digest: akr4fn+kVJUplhLexksFE/VeCR+4+7nqBNEp4FN7Yt8zdwe5tmKE3OQW
|
||||
ed/dljAR
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/StatisticsHandler-mbean.prope
|
||||
rties
|
||||
SHA-384-Digest: z724U/PSCymX+KzZhugQIRsi/vv0CQfgYYeWUeJeeAsJBN9QpCVYXwn3
|
||||
8VfRRy16
|
||||
|
||||
Name: res/HC.xml
|
||||
SHA-384-Digest: CFuZ1t/AepikV2wHgjObm8Kr3FPfDAtUqldxDQ/F7wshB3g0KOA1H9Wj
|
||||
XP5dn9XU
|
||||
|
||||
Name: res/hP1.xml
|
||||
SHA-384-Digest: 5zIcP/ggYitIuNp7ysE/o2q5crTUOeVsv3jjrTMBBnVJdf6bcXBPPdEd
|
||||
fF3Qn5W4
|
||||
|
||||
Name: res/7i.png
|
||||
SHA-384-Digest: FDd8XrEdMWGzMO7kuLStul44egD/5bS7/pW+Tka+4lrijolMJf8CimUV
|
||||
UHy6aeP3
|
||||
|
||||
Name: res/color/m3_dark_default_color_primary_text.xml
|
||||
SHA-384-Digest: rWi7nSZ3l92G3UWXzzFUbyOUIic4dBs2PIi36fxnBUBDihUERl4MTysv
|
||||
El3Nydme
|
||||
|
||||
Name: res/Oh.xml
|
||||
SHA-384-Digest: 7rGW7tX2zl4JWi3hvQleft+n8wbI2WzE2s2HNIbb9WylfzZrqc2Sttlx
|
||||
RcTVUZGX
|
||||
|
||||
Name: res/td.png
|
||||
SHA-384-Digest: mrmjw0mjbAxELlnDFOv3s9ZgyCPOrIjFmejcU+xPQKPqQXmDft4eLUXr
|
||||
bkn7FPub
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant24.xml
|
||||
SHA-384-Digest: u4p8OxJ2lauOsmAv7TycvYC+ylXtjHw76clgrN4l+rLByCp2uC46G1T+
|
||||
uiWwPL23
|
||||
|
||||
Name: res/DS.xml
|
||||
SHA-384-Digest: ihr+tvwRTe0fIuGrFdCVySfkM0kFLSXme6lmetIyMnftER2SC+Lh1NqC
|
||||
bqLwdvx4
|
||||
|
||||
Name: res/np.png
|
||||
SHA-384-Digest: smM3f3aBURb95ceU2Rq5RR/fXxJXFtNy40u2arYFFjlFyBIBuu1sVjGY
|
||||
jVrJZTYM
|
||||
|
||||
Name: res/Zl.png
|
||||
SHA-384-Digest: mUWaVL+1ModLNekRMhsus3aFR5QjPN4Tp5mHG5uK4/Hip4ZWnXYSQBFp
|
||||
pjkyL/X9
|
||||
|
||||
Name: res/do.png
|
||||
SHA-384-Digest: 51xFzqO8sZnDQsyjOg6snpRIoLVrWPtKpM0pkbXvp9p0tCUlVqde6ovJ
|
||||
n3iZVk1l
|
||||
|
||||
Name: res/2n.xml
|
||||
SHA-384-Digest: FljTbkCxgLQY+e31M673SWthy7kC6JAwtRmcQK6MpXz3b9KYXnkdDihP
|
||||
psr0vMdC
|
||||
|
||||
Name: res/color-v31/m3_dynamic_highlighted_text.xml
|
||||
SHA-384-Digest: 8wiGNGgwaHn1ewFAwXntQyWEYt7/oLKnefSdcG2Uvet/4mddHh/xR5lB
|
||||
ipA02bIU
|
||||
|
||||
Name: META-INF/services/javax.script.ScriptEngineFactory
|
||||
SHA-384-Digest: S93rVkxx4dVVbOaLLUQLogiigDH+wAmm+daT9lEB+8nhubCKgVShej43
|
||||
FfHFfU1W
|
||||
|
||||
Name: res/TH.xml
|
||||
SHA-384-Digest: UEObsYcR/sX/Z4g55KXSm2C1W5WDKQ+MmzwuCJDLaJXkFu1PNZjCk/81
|
||||
UgEuYmKD
|
||||
|
||||
Name: org/eclipse/jetty/server/session/jmx/AbstractSessionManager-mbean.
|
||||
properties
|
||||
SHA-384-Digest: C3OEP+/t+dkcARXc/iC7ljvcwjLzXVIyOR4MiC/EqSZj/OhRpl8n3K9X
|
||||
aicuC/9+
|
||||
|
||||
Name: res/fu.xml
|
||||
SHA-384-Digest: yEsy7FCt/RgjgmWqiwi0wibRuJ5aAf1T61JOcJEGDBS4ruWLWzXpJZGt
|
||||
oXwOf5sI
|
||||
|
||||
Name: res/_P.xml
|
||||
SHA-384-Digest: ouv61mTLlPF5ajzpeTDOiSyVrdJYGoH19oLGwMs9GptBojHneT1mgwzh
|
||||
zQbekPgK
|
||||
|
||||
Name: res/nI.9.png
|
||||
SHA-384-Digest: phospCQzOVnXNVVLwpHBV7fDFPfpIdPFpGIlgp7llmc1pUxpMQzaESKY
|
||||
1fRdyjoO
|
||||
|
||||
Name: res/color/m3_assist_chip_stroke_color.xml
|
||||
SHA-384-Digest: /QHXwplqhD30lKLsfFcWqLQV6VPv+7O1T5Wqluu2rnZV4T/MOoIDA+Ho
|
||||
kVBr7SYM
|
||||
|
||||
Name: res/YI.png
|
||||
SHA-384-Digest: pThBCwr8dmZZyutLRtvF4S6WScIQVK/Ik577jP/vuh1VeHdyjaXNsYIL
|
||||
zqqLsxzT
|
||||
|
||||
Name: res/Pb.png
|
||||
SHA-384-Digest: zGfZsY/EqkpRTWi5Sd2iQ8CHH0tmEu1WDBTSl6n7DDz+3P3oNfV0Hjz6
|
||||
eEjZJgAd
|
||||
|
||||
Name: res/vH.xml
|
||||
SHA-384-Digest: hP5KmCZqXQCEUewm9TwzaQoAVrn+kDElLcMaZa7weKfiuBvUzqj3U0lm
|
||||
IbBDPjgV
|
||||
|
||||
Name: res/xR.9.png
|
||||
SHA-384-Digest: qQm0oxY7TIJ+joita2pQ1ZkWmmLZ4aVFS/mZhLJKWDSXyd9RHFj1j43c
|
||||
sDMVBkdQ
|
||||
|
||||
Name: res/rm.xml
|
||||
SHA-384-Digest: +TMcGORE8mfr9MPoFlbmTY6jfYI+jniCo4BZ+ol0myiC1A2xlpHBJvOx
|
||||
0viRvs0W
|
||||
|
||||
Name: res/Tn.xml
|
||||
SHA-384-Digest: 7wMI2iWwq84A1OG3/5NSfCF18bJ8ZM6GanJF+xhX3VwIVQjwoTwUHnpe
|
||||
ldAQUdQA
|
||||
|
||||
Name: res/UO.xml
|
||||
SHA-384-Digest: zUHwxov8vukbVgOC69QCzAZg6qx9UDjsofnnXhufeMCZE9haYTievh5C
|
||||
kA+I7qns
|
||||
|
||||
Name: res/gE.png
|
||||
SHA-384-Digest: meE4XA+HUud/+C7Risj9phhu/m4uT4h3U+XIWfOvJRriqw4pQ6lzNYWF
|
||||
zQm6uDxa
|
||||
|
||||
Name: META-INF/androidx.profileinstaller_profileinstaller.version
|
||||
SHA-384-Digest: ol2CZjpsqyGYOOT7lxWWeM9CnDbrzbgf6/9ZZli7/ju2h7IvhX/0bMwf
|
||||
dn89wFTr
|
||||
|
||||
Name: res/7o.png
|
||||
SHA-384-Digest: mjcbINOCwnLd5a6+juiROyJLj1RHU5Td81WAsQcL/7JDOcnyB0yToo13
|
||||
QV1EMlKE
|
||||
|
||||
Name: res/8P.png
|
||||
SHA-384-Digest: rI9OLeXzmgXweA1DFf6lGZ9Yg1FpnYI1uO4/Hp8quo7IhOtXvDu7vSOM
|
||||
1L5PP0Pc
|
||||
|
||||
Name: res/color/design_box_stroke_color.xml
|
||||
SHA-384-Digest: Y01w/ZP7fIcYND3fQ3Z2VAW8EeW9mUYavKxbr/KvjDSa62MVQBIhqaVx
|
||||
DU1NufiL
|
||||
|
||||
Name: META-INF/androidx.databinding_viewbinding.version
|
||||
SHA-384-Digest: vOzfDZrW/FWpp1GBpQQ9t7eNu1Np/OU+6S3MlLr1j43o6t1UrZIPgZ5b
|
||||
f+ffYuZ7
|
||||
|
||||
Name: res/4z.xml
|
||||
SHA-384-Digest: 1iagN375H5lH0FxgTbwvKMIXUJM/+bRxAVE0L/vJLJelYRJP9BR8bovB
|
||||
DtULPtew
|
||||
|
||||
Name: res/kp.png
|
||||
SHA-384-Digest: WusWKDA1ri42DEVTYwDWZ+b9+T+4rPcGRNAT8Lz7PSUoHVgqodltRoiF
|
||||
vHcVykYO
|
||||
|
||||
Name: res/Eg.xml
|
||||
SHA-384-Digest: u1Qqwcek12hy+19y2f1HWTQsc3BbKMf+y83GkqS1LMesZKWjD9/q+82w
|
||||
9yo9gUsM
|
||||
|
||||
Name: res/Mq.png
|
||||
SHA-384-Digest: 8FzYFzze63IrOKRRPdrOfrjkoqtPl/Nd0rN6bqRAWR7G0YqmatUF/WXb
|
||||
tnT4hu27
|
||||
|
||||
Name: res/ya.png
|
||||
SHA-384-Digest: Afkswb79B7Hzr5bo3yJZ8dTpeADoY8EwiwtsO0/kNU1xA/kTqkpuQY3R
|
||||
3x+OYrcy
|
||||
|
||||
Name: res/zB.png
|
||||
SHA-384-Digest: HBgbUCIXot6YI3Yoq2awqomkAHCsYgSN0KQWyJwowi0eqBZksJFsFTNu
|
||||
sNM1cVTn
|
||||
|
||||
Name: javax/servlet/LocalStrings.properties
|
||||
SHA-384-Digest: 5cJ1nUN2WM/Hqf/hhBRDElmUM5xmDfQC+EbzrymxtkHsiCsOsiWWOHrG
|
||||
aq2DwI6y
|
||||
|
||||
Name: res/color/material_on_surface_stroke.xml
|
||||
SHA-384-Digest: kaVvmTFEnQzU3DdTEXiRx7OGeQDMb4owTCkcfuEBeHKxBsJ/0bjW031t
|
||||
zVa2YNFG
|
||||
|
||||
Name: res/VT.xml
|
||||
SHA-384-Digest: GhPENJPFVGCPvT7EANTglY7yOkS7TRjRw+IGjA2fnMqnG7qFp50lXOKu
|
||||
6zJV9zIe
|
||||
|
||||
Name: res/NN.xml
|
||||
SHA-384-Digest: qv60rwvarubQPif+sR4OQxUw0S7CXRyYpTiCi1X4gOLV6eM25M9Yu442
|
||||
Uvv3kn6U
|
||||
|
||||
Name: res/6d.png
|
||||
SHA-384-Digest: L8uKgWzyVF5UGDNNA/sHlc5Ay1r3x+yoQT1Tj0sJ5w/9pUzL7V87XipD
|
||||
kPlwUZlY
|
||||
|
||||
Name: res/7E.png
|
||||
SHA-384-Digest: xKo71og2f6Hj0CDJ9uvZARmg5NgQ5OdaZnM3I3o6T70M5RL2gozzgMWL
|
||||
rkZ9osJN
|
||||
|
||||
Name: META-INF/androidx.interpolator_interpolator.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/color/mtrl_outlined_stroke_color.xml
|
||||
SHA-384-Digest: gXiVjHahKlOS/iP8Xv0hPalDTAKDkNp4Lvq3SbAM7ZkG4cjZfY3yofLa
|
||||
7T/aCrrl
|
||||
|
||||
Name: res/vl.xml
|
||||
SHA-384-Digest: 7T5DrHOFh/UQO7OtB43AOZDlIYlY5iFLICPIMYycsTqnIApJLdKd/MgX
|
||||
cGuO9Z54
|
||||
|
||||
Name: res/py.9.png
|
||||
SHA-384-Digest: omKIalk3ytT/Ij7al3mpJp3PjAN3Xk3hw7MBW3Ks+j/rO6GDW1t7/4QQ
|
||||
QZYoKVbW
|
||||
|
||||
Name: res/as.png
|
||||
SHA-384-Digest: /3dnVnLtaUvmHBUoKQNBnB0QnxC+C6MpU5WFoss9x36DNgdD4DlkniC1
|
||||
LcZ7dY1l
|
||||
|
||||
Name: res/-1.xml
|
||||
SHA-384-Digest: EJAJqridbS1uoQ6ZojaflhgPcehNpOp0Xpw7G3QPO/u0z8enRAGwKHQL
|
||||
c4z5zrBK
|
||||
|
||||
Name: res/KT.xml
|
||||
SHA-384-Digest: t7LkzS71Eer4g3zPkjeP9mMgDYYEpu2wzOlEuN1QueVWpvQx4IhoxRXg
|
||||
CwSLE/Yy
|
||||
|
||||
Name: res/rz.xml
|
||||
SHA-384-Digest: Ud1+QaHGgulD2cKdv+MZB6HMP4B/qrdrk7qNlMRVd4vLuRk3hHgBpcku
|
||||
ZISP47yH
|
||||
|
||||
Name: res/kL.png
|
||||
SHA-384-Digest: NJUCMGqxFGeO/WDVWnQkD0LTiNTRcULVTvTHjn9Kf72Ugf1ZVzt+A9WY
|
||||
YUX0ZfLH
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_clockface.xml
|
||||
SHA-384-Digest: GKsSur55lbUddGyC0Kc0WMBJTmCpIf4RG//xrz2tYmKfpkTv2oq3B8+I
|
||||
ovir7bHZ
|
||||
|
||||
Name: res/5T1.xml
|
||||
SHA-384-Digest: dgZhHHYpi7YPSR4iOPsFmtDfJCtgeeABZw9iUY+eQNn02dKD/Y3fxaEN
|
||||
AbxMMG9r
|
||||
|
||||
Name: META-INF/com/android/build/gradle/app-metadata.properties
|
||||
SHA-384-Digest: /DIR4un3SJRrJ3IkotVSMX2NYxm0pWQ7sF2VZJqqdG2b1FvtCXSsYCLG
|
||||
7OLIFh33
|
||||
|
||||
Name: res/35.png
|
||||
SHA-384-Digest: xKo71og2f6Hj0CDJ9uvZARmg5NgQ5OdaZnM3I3o6T70M5RL2gozzgMWL
|
||||
rkZ9osJN
|
||||
|
||||
Name: res/rI.xml
|
||||
SHA-384-Digest: C8ABUvAeOj1NeB1w4ptCiwLrL/CPgpan8ODGYrL0msOaxOR++15bXu8/
|
||||
x4ePe1Zo
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel.version
|
||||
SHA-384-Digest: gW32UzoEwOs5wB7LqclnmoO/dSIk72HFxlPGyyLkR0FqHPjnpEUP7zxq
|
||||
0Jf58UkL
|
||||
|
||||
Name: res/color/material_slider_halo_color.xml
|
||||
SHA-384-Digest: HoLUeqOzaAZWcLD6NljLqirvV9t3tuA9RDjB4xgsncw8eRRWD/lqJ6vy
|
||||
2XIgyEul
|
||||
|
||||
Name: res/ge.xml
|
||||
SHA-384-Digest: yjpbhXp6fHPOB2LSkwoArgsSXlogJ7dh/mk/7VY5XjinVcNReYCL8XJf
|
||||
Um3w1964
|
||||
|
||||
Name: res/io.xml
|
||||
SHA-384-Digest: QP4QcdaGdyASlkaJFdg8obDy8v6aKMkmjp9041e6wuxZBgjgDfQzelmv
|
||||
9tSPB1nL
|
||||
|
||||
Name: assets/shaders/fragment_shader_hsl_es2.glsl
|
||||
SHA-384-Digest: 3mODAq8ghs2ui2O8gRwfCoksWCgyRBZxcT84kjCiNZSWHdBguDZvVJ+X
|
||||
/XaybXLq
|
||||
|
||||
Name: res/color/material_cursor_color.xml
|
||||
SHA-384-Digest: RgWS9LRYp2qCsYPkSL/24W4JMCQd1LqkVYk8pxmGTheDefgKzWIMoZ7a
|
||||
im2qRm/O
|
||||
|
||||
Name: res/0n.png
|
||||
SHA-384-Digest: AFsqb4gEBUUucHnBdXzfhoBSQYCmNRe6yFcsGNSO4zHvl1cG+XZn3FBB
|
||||
D8VQJpZ9
|
||||
|
||||
Name: res/5D.9.png
|
||||
SHA-384-Digest: 8kAkOKrm/JXoYVWbwDLXi/0N7G43OtH7ZU92KSnYz7R479JSEF6hajjC
|
||||
y5WoDqud
|
||||
|
||||
Name: res/Qt.xml
|
||||
SHA-384-Digest: +zX8fDC9HhmH4Jh4c8HmqhgSz51Gtw8936DbnpFCLQSHV1ne2oPoP1xz
|
||||
N08NiIQk
|
||||
|
||||
Name: res/S6.xml
|
||||
SHA-384-Digest: skN89GDXuPFeCP2HRI+zb5uWDRsv2om8/GbYfuN3UQjIHOxcldqhSQxK
|
||||
E0Wj4+nr
|
||||
|
||||
Name: res/In.xml
|
||||
SHA-384-Digest: OUUqjYTAM+6N8yQaGu+p/GSaKfSMp3yRFJRHjRxd/QRAioJT1rugVTK8
|
||||
HzE1zoL0
|
||||
|
||||
Name: res/tS.xml
|
||||
SHA-384-Digest: Kdrlq8BHUmrNZUqJLyfIZxBAWdJQ+GwyjmoJZwpJGaexNQoNdTsCvexc
|
||||
R5yNCIoY
|
||||
|
||||
Name: res/e_.png
|
||||
SHA-384-Digest: esS8thcT3uyXETvXoiTML5dzfC+2g1fjVsfNB35BaLEp6gHi4LfhxjSi
|
||||
bL7j/T6d
|
||||
|
||||
Name: res/3h1.xml
|
||||
SHA-384-Digest: HaVM1VH9c5UGtE2PxBe9WdzDtqLj5KOM26H9jwbPevGOBrmVa8xvcT2x
|
||||
MXuI/jAe
|
||||
|
||||
Name: res/4I1.xml
|
||||
SHA-384-Digest: gfFbVmLK6bsPh2B1UYqR7sm3TRNjTxJbS+Az/ep9JoGNUoI+h7v6uSPI
|
||||
QE6QI8Px
|
||||
|
||||
Name: lib/arm64-v8a/libavif_android.so
|
||||
SHA-384-Digest: N6UPiwx+AEIbQr/VKfdSxHpvz5P4rfM0JsBhV3hdZF2harLwVAA712je
|
||||
Ee29gn5C
|
||||
|
||||
Name: res/7o.9.png
|
||||
SHA-384-Digest: w8aEJ9gIfk9eUjb9CwbHgMjQrhDgGtBouy1EkGbHHd2g3cEcxsLOIjdK
|
||||
xtC3iLiI
|
||||
|
||||
Name: res/Tr.png
|
||||
SHA-384-Digest: V6nscHa0+d0uudqsPbvUMuPchE7C2YKZMKAxbUS6y4lZXxIhMCUp5ZiT
|
||||
iM5C8T4C
|
||||
|
||||
Name: res/V4.png
|
||||
SHA-384-Digest: lALn6d3rY/ZAFAaCn58xpeFbGJI7ToJVpAPj61qAZ+4kqBEW2cRfz8K7
|
||||
j4sgObeN
|
||||
|
||||
Name: res/ba.xml
|
||||
SHA-384-Digest: n9JRC+PZungYIOzsv6WbtS2Fppsuva9/wjwUbdFOuwNVa/6Lmzjed0M+
|
||||
gIZNQGi1
|
||||
|
||||
Name: res/pg.png
|
||||
SHA-384-Digest: Oy8MiuyGSC5CU8bu05Pl2hbCflRrcaLF00EFuOX3jgqsIlG/indRHzf1
|
||||
Yd70JxLk
|
||||
|
||||
Name: res/ak.xml
|
||||
SHA-384-Digest: JsfBe+RogtHbtjC4Uz+S0G0089UfExglSJkdz8oaoUbVktzTge9u4RoA
|
||||
iB/X1sSW
|
||||
|
||||
Name: res/bL.xml
|
||||
SHA-384-Digest: dNLL19wTUn1St+ec3kQ8gRVQhTLaeQOvtnvaD7gwoiCpsyPekZKopmeQ
|
||||
fGbCpjdK
|
||||
|
||||
Name: res/color/m3_tabs_text_color.xml
|
||||
SHA-384-Digest: 4uGZVHO0zdW75WoKB2AJc7g97k8rhq9P26bbk/ZP1+4UkqxBqziKqLy1
|
||||
3aqW2uqZ
|
||||
|
||||
Name: res/D-1.xml
|
||||
SHA-384-Digest: nyk/HWgyoEfcNC536MDtrHY1ScGLO0RX1sQIjedr+zCdDWC0b4/l8UBR
|
||||
j3K140FY
|
||||
|
||||
Name: res/mt.xml
|
||||
SHA-384-Digest: lGV6a4WRaWXLl/MvOgL9qS9SazVaTTHko/RLR2HFb5R7zQmafGQ8Z//y
|
||||
uhnrJ2lS
|
||||
|
||||
Name: res/gX.png
|
||||
SHA-384-Digest: dQv5PfpVjN+JfjJiZdnCCnUOxtYEIkh9oeTnIJVhahTwJsGLavnhNyfR
|
||||
0bh3/GWV
|
||||
|
||||
Name: res/qw.xml
|
||||
SHA-384-Digest: l82qGuMazNOKJsvxgnpmNydbtkSfwwK38VE9jithjzKRgDPc78ej22y7
|
||||
hqHejOw/
|
||||
|
||||
Name: kotlin/internal/internal.kotlin_builtins
|
||||
SHA-384-Digest: EQRe4HHUfQueqZlkzllnTujmU/QkeX3AQH2jQznoX28HmvBIuos9eiJh
|
||||
dhknL3AF
|
||||
|
||||
Name: res/-D.xml
|
||||
SHA-384-Digest: dPZeFLSfEpuxxJD5LkBjIT/UX8Hh/otSd6pK8oX0Jq6hCaBc/DGs+Sgk
|
||||
utETvdcd
|
||||
|
||||
Name: res/color/abc_btn_colored_text_material.xml
|
||||
SHA-384-Digest: BzaphXIuHitxxEclMEy7KNiD9ZCmO6x7NCV7OVesUKmb/Q6UotXGUIwM
|
||||
B/TeAGdo
|
||||
|
||||
Name: res/2P.png
|
||||
SHA-384-Digest: sxzCf/OD01V37siTF2bQRQvKXFPR/IN5RD3Qps+xyIETuJAU9nWrm66l
|
||||
c7FRCxho
|
||||
|
||||
Name: res/color/mtrl_btn_text_btn_ripple_color.xml
|
||||
SHA-384-Digest: o+a5rMhOKUqelj7pVK0ZC3Q0wpuHmpMxszcohpiM58R+HPHx/vTcQcrl
|
||||
25dNNU2s
|
||||
|
||||
Name: res/Sq.png
|
||||
SHA-384-Digest: DtVy8maRR2Mz/CKIrNgqSqwZmQJB2fuCicfqO76zpK1JoMY1C0wfDTm4
|
||||
nXizTgsk
|
||||
|
||||
Name: res/SJ1.png
|
||||
SHA-384-Digest: uFB4xKivx8hdShq+ert0PPHaJCQcPu0xKpGwXM+ErzzemivdilXs3/WV
|
||||
MZxIeEkT
|
||||
|
||||
Name: res/color-night-v8/nav.xml
|
||||
SHA-384-Digest: E5jAlU3XjQwqMRslQcVdOZsKS50zUA7usgPqay97qIEY8Ahnehj/DjKq
|
||||
utIGRFvs
|
||||
|
||||
Name: classes2.dex
|
||||
SHA-384-Digest: zBygOmM3fo4EtAqe2/Pq1lyslfeGH6JudMl2tTu5GFkah/RuqbJEWRGt
|
||||
V0q0sL43
|
||||
|
||||
Name: res/bA.png
|
||||
SHA-384-Digest: +lIyJJsnd8Z6wv4Dv2lLJnGoGs7xvQMAJrK+eAgVGVcTAmqP8seBQ/lH
|
||||
uOoE8kH9
|
||||
|
||||
Name: res/color/material_timepicker_button_stroke.xml
|
||||
SHA-384-Digest: 5XDLNWtUVngQsgp+KJ7YkkSH3ae7hJJ217yvloGWgTcn8UmMqVXiWz4X
|
||||
GJA064jM
|
||||
|
||||
Name: res/DQ.xml
|
||||
SHA-384-Digest: a3bW2ofNkCxORiJCNE/Gxowzhid5gLemXAD3PLcA2BpKpPFtTPa3RM/s
|
||||
Jbkn3ExI
|
||||
|
||||
Name: res/1K.png
|
||||
SHA-384-Digest: 86klyYQRlx/LqIg9ZLQCL9Y198Ggs0BC1yRr092SJSkTgoRrFu4CYKuO
|
||||
WRyddYEe
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant22.xml
|
||||
SHA-384-Digest: E/OU/lw5NsENIzlvsNbn5YS0QJlOCUVUkjA2Y3FGC33vB3rLES/gyci4
|
||||
tAcpdFbG
|
||||
|
||||
Name: org/eclipse/jetty/http/mime.properties
|
||||
SHA-384-Digest: hvmSxkgvxUmC7Lfsmvfgk55N5p2n1ySYc39V8ptiR6pGxR0lvnhVu4be
|
||||
Lc51+vTW
|
||||
|
||||
Name: res/uG.png
|
||||
SHA-384-Digest: asIbd2dn/F99jQwHQXZs0hJW4Ex1MLjYax/GkIkAA4/F4bT9r4lpglJX
|
||||
uGu1o/PA
|
||||
|
||||
Name: res/MQ.png
|
||||
SHA-384-Digest: H3vM/qAtDZK1XSLUOtBj7Sjyal7HEeMQ1h/W708F4XRw2aolnpXU5f7p
|
||||
QJHR847R
|
||||
|
||||
Name: META-INF/androidx.loader_loader.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/5c.png
|
||||
SHA-384-Digest: vfy5PTkuTyxNPWc4yTKJhnyWNlI6fx9T5WfuYnivvKn5vuyNUgTsWhU1
|
||||
NJY9bEh8
|
||||
|
||||
Name: res/color/m3_navigation_rail_item_with_indicator_icon_tint.xml
|
||||
SHA-384-Digest: w9VdtEqyFcPy6EhlcHw3QNr0UHyOrLmgQI+OSlLbCFkeNoQDF/nHI8/n
|
||||
uMrqU/3s
|
||||
|
||||
Name: res/BM.png
|
||||
SHA-384-Digest: EG4JX+0lyzD/oIjbzmu6TEgy8FcRSi53V4oevUwFMR7jHlNYx9q4Fkgt
|
||||
iJ7uMVc0
|
||||
|
||||
Name: res/mT.png
|
||||
SHA-384-Digest: P2nTd58C9y7io46WWsfzXzQyrH+HuO4FbfhKmbwI/pleg7RslZyPgpKH
|
||||
M2ftYrAi
|
||||
|
||||
Name: res/TJ.xml
|
||||
SHA-384-Digest: 6ZxTvZQQPzAmLo8uFln3SFmqEJlllxCZMZNN4BWAo4ZCFs1CObtboHXO
|
||||
AvPhWhHR
|
||||
|
||||
Name: res/color/m3_elevated_chip_background_color.xml
|
||||
SHA-384-Digest: YfLQ4Is7Gu+TGBbd7A45xFJAWjfTFz3H+KrsDoS6DBOpLAZyhBESXkoB
|
||||
x9ONxMSW
|
||||
|
||||
Name: res/ps.9.png
|
||||
SHA-384-Digest: WrcIKdF9C/z2hye1cw6dqr8v9hMkmVKyMi7yfXW7smiL5EPNFDotu+EB
|
||||
PPsGzFCW
|
||||
|
||||
Name: res/d2.xml
|
||||
SHA-384-Digest: ZIQVgzXKrd5t2nsLBJHoSk9YMIa2MS8m7rQFzQ4qr75Iz8lwfa/I+vBc
|
||||
2xz7eUqG
|
||||
|
||||
Name: res/Ir.png
|
||||
SHA-384-Digest: nwMzJvCrThYqswqiaUrEI85IlHsnBv2fRTpnurv7A8ppKwJkYDaxVhm6
|
||||
ZWcNsgF0
|
||||
|
||||
Name: res/JS.png
|
||||
SHA-384-Digest: KQzp3spgtyJ0UWOtYbzMiELshvT3u+NJxBrRYbCi/mKG0PNkCkcK279D
|
||||
GgKXysNs
|
||||
|
||||
Name: res/Mu.png
|
||||
SHA-384-Digest: yUi3KR6v9mMSp+KXYVNnf0d2Oassr29Ce0xmwmpLgny+wxFYdWOekwIG
|
||||
ib5MEh8g
|
||||
|
||||
Name: res/Qc.png
|
||||
SHA-384-Digest: IvQaNVuZzMEHS2xaDi57ylBIoui45BV0B5MqIOW6O3uFXXVel+CtncYh
|
||||
Snb0ZgeD
|
||||
|
||||
Name: res/nY.png
|
||||
SHA-384-Digest: FUjWD6oYWBOgJXgpGPaUEW3hauu8OUckcTX/uboJUxi2mrToTzJRXY32
|
||||
2DIn92+f
|
||||
|
||||
Name: res/WH.xml
|
||||
SHA-384-Digest: mVKAL7ZitfzLrWcE3rgUs6pDJ6zisJIAjemLUQE71eEsQWzfM0gGVnLx
|
||||
f6sYARfP
|
||||
|
||||
Name: res/HX.png
|
||||
SHA-384-Digest: fccyU4YfHKwloTIxVaDKcbk+kyGtHfCSMYwYtFGWEEXvMDPrViBBYZeD
|
||||
joJII+RV
|
||||
|
||||
Name: res/Qt1.xml
|
||||
SHA-384-Digest: dEwQpQCu4DJIh3O3t4sR7o/X6pJWxjKGQwAZJok7TX6gbiCshbRwMkCP
|
||||
/xv90Li2
|
||||
|
||||
Name: res/color/m3_timepicker_time_input_stroke_color.xml
|
||||
SHA-384-Digest: gqSjzq2Eo6qtLdIQ3ZFNZkbw+ehCY10LZRXVOTF5nuzfIiREZB0a9UZk
|
||||
kQfG9Bbn
|
||||
|
||||
Name: res/color/m3_chip_text_color.xml
|
||||
SHA-384-Digest: jhYYkGvBq/xCJaQup8studUHEe2mv1lRalkbQDKRGpnT1+9LXziQ4Z6c
|
||||
hFHtDAYZ
|
||||
|
||||
Name: res/color/mtrl_fab_ripple_color.xml
|
||||
SHA-384-Digest: nsyajdUMGa8JVw5X96lfPm6jVOUo7wimSJQtz9h+m/ZZ+A7Cmz+dBL2w
|
||||
GxZCDYtw
|
||||
|
||||
Name: assets/js/lib/similarity.js
|
||||
SHA-384-Digest: W3s1FfCDbhxQjqRepLkQV86C4Mf5DdxdldR9jgaaIuRdpZKvRwDXF5yy
|
||||
Tk4wowmP
|
||||
|
||||
Name: res/color/material_slider_thumb_color.xml
|
||||
SHA-384-Digest: QhMGykS0IvQVMLCZa0jexdtabf10gQ4/G8ELM78arvYdp2zewwWEJ51l
|
||||
d/dM1Sg0
|
||||
|
||||
Name: kotlin/ranges/ranges.kotlin_builtins
|
||||
SHA-384-Digest: dKW2fBppykb1Cw5BnB9myZvGt5GqtpWnU8S6AEOs6FGQCnJ+FjEgAxDC
|
||||
kGvlei4i
|
||||
|
||||
Name: res/e7.xml
|
||||
SHA-384-Digest: 8l3IQGxqNcRfmyTkdlQ0cS7x6WeESKfaIT1EsRh8JSaOSAWHdzfE5T05
|
||||
NhnqiKNu
|
||||
|
||||
Name: res/color/material_personalized__highlighted_text_inverse.xml
|
||||
SHA-384-Digest: wzbjjvLi4RZcZ9TAAavGPm6yZFrwNzYEzCt0dZrSrps4OksC1+FfXSef
|
||||
hA9XLx81
|
||||
|
||||
Name: res/NP.xml
|
||||
SHA-384-Digest: f4/H4KgIvUIMFcAsg+c0bgw5VG7pVbuuSKtoF5fCFPRhBo2zrgKqX9BB
|
||||
n4xWcljq
|
||||
|
||||
Name: META-INF/androidx/room/room-common/LICENSE.txt
|
||||
SHA-384-Digest: SS7625cNsh5VzhuqEjVcgZjBQsIthBX1srfNVFSvaVKkDBfXx8GFQoGX
|
||||
soOOD9z0
|
||||
|
||||
Name: res/Bo.png
|
||||
SHA-384-Digest: ydGeryldXzUcEnmedUpxEyfN3wf71nfB6N+FvwfP9b2uueXFGZJ5lWDr
|
||||
teJUfsDW
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL1.bin.properties
|
||||
SHA-384-Digest: n4c8k0z7ObFbsZFUPGnNkVm8vpNPWs5vujqtWKjRZ/FoFa11sWs0utAe
|
||||
cxKMk1cP
|
||||
|
||||
Name: assets/shaders/vertex_shader_transformation_es2.glsl
|
||||
SHA-384-Digest: nGJ4vktnkKk02Y/oBhti4YQzeMHiiYT6vCuT7Wi2zbOsGAOEkZihmRz+
|
||||
TBsxNC9J
|
||||
|
||||
Name: res/sL.xml
|
||||
SHA-384-Digest: pqvbEfPq5/Enxb9M+UkKA3doqg1vd6h2KbqVh5It1siv75Ja7lRGs0K+
|
||||
35ktipyZ
|
||||
|
||||
Name: res/gC.xml
|
||||
SHA-384-Digest: t2cxJ+lTbULqxyywJFKL0xf9h06l1oolBI/Yx9n5qYQxbdf3gAYPSS0j
|
||||
t0awYX6c
|
||||
|
||||
Name: res/Nx.png
|
||||
SHA-384-Digest: Dg0p38A8UZFJfjmSRHLlLFha+zuSo39c8yivESKY/W+txwfPDotHHrO3
|
||||
QUsi3df2
|
||||
|
||||
Name: org/seamless/swing/logging/img/configure.png
|
||||
SHA-384-Digest: N2L/sVEmll4I8eo5rD/GJ9KT1UhsHgohDrcO3JAQ1pMKFyjAhUp/9RPD
|
||||
Fza6npN8
|
||||
|
||||
Name: res/JQ.png
|
||||
SHA-384-Digest: yAZLODW/GA54edm6NOKoC8O862pSXNGyw/Gfy1/IYDr31zlGgvqBAzJf
|
||||
Mqn9s6Yh
|
||||
|
||||
Name: res/Xs.xml
|
||||
SHA-384-Digest: jLxUWJxAoCGlcrHuxNtlz0BJcXOT94qg7de2Yl4oAEMvGLNJw9IjgBw8
|
||||
0Mjp7c1L
|
||||
|
||||
Name: res/Em.png
|
||||
SHA-384-Digest: VNHoaHNntgh/AwarYW8WOr2l1Rqi0p6NdFpidPmiBKO8Q0pT+nFI1o4f
|
||||
eHjn0eZs
|
||||
|
||||
Name: res/vJ.xml
|
||||
SHA-384-Digest: +W30nTBVknZ4Bw1so84zK/KyMopWV81rDRCDDPfqN/0wEMiEQVz8V7He
|
||||
GlMyrxDv
|
||||
|
||||
Name: res/Lj.xml
|
||||
SHA-384-Digest: 0mhgmJ+nG1RkKMIuyfONr5I8X7LkBW3Ok02WKtZyYLrnifx+npH9vcn8
|
||||
bBcnqWxe
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/Holder-mbean.properties
|
||||
SHA-384-Digest: HqK+OsxH9pVX9VzTa6MPP//QU1XiZDwFdZi4GL0atvSv2BScifx8Rp6/
|
||||
3bfbKQ8q
|
||||
|
||||
Name: res/QN.xml
|
||||
SHA-384-Digest: 5SjKFLLT/wB4C3nqatGtJYD31hLocEPV2yTCrpZ3EQOsgrJGLW6t6vNd
|
||||
9ls0ldOC
|
||||
|
||||
Name: res/7m.png
|
||||
SHA-384-Digest: NVOpsBUTPuIsAZWR2l+ot4esv0pPIb86Y3AuVluQmdCJYYGLdFCLuDSl
|
||||
BUMPoqEF
|
||||
|
||||
Name: res/8N.png
|
||||
SHA-384-Digest: c7vJ0c0MFo5eIIvB7koD7PxDYTOf/IHBngCY8LqjolFkv2jlC7r0CN+B
|
||||
IMeZVSVb
|
||||
|
||||
Name: res/color/mtrl_card_view_foreground.xml
|
||||
SHA-384-Digest: 3BgLXCyLCWDNAYzRgBdDS2IaH2k4IDzWgvwpG8mXcG+oMUh3CJ619KP/
|
||||
D5OI7x71
|
||||
|
||||
Name: res/zq.xml
|
||||
SHA-384-Digest: qcm48DBf+4qOGR7YbNB4vbBmmvCYbJruFa2q6i2o2D64ko1lV+MSpj32
|
||||
9peSjpRb
|
||||
|
||||
Name: res/0H.png
|
||||
SHA-384-Digest: Dg+zhvf8SNL3tT9z0U2GBUhVUbYe+R0rehgGxjRXMq6XT0k1Vq5teLfs
|
||||
4Sn+Rdjd
|
||||
|
||||
Name: res/m0.png
|
||||
SHA-384-Digest: QWZnw5IPKHqg0RFuXCBYh6gzMHHsKxh8NrmZM6adCmMKb/z+70pnUCHR
|
||||
fI/s7gne
|
||||
|
||||
Name: META-INF/androidx.sqlite_sqlite.version
|
||||
SHA-384-Digest: hIAGvtefmZQC+5iwoWLsS8O4/kGacdmbLOceBNC+qlQ1u8Ze/oEJR6ZE
|
||||
tF3jNbux
|
||||
|
||||
Name: res/color/m3_calendar_item_disabled_text.xml
|
||||
SHA-384-Digest: ir+kqLtsy1HK7yHVwI58jGLcL0wmlqjioueD/eIXmNoOeRVoVJ0CWA+N
|
||||
C4Z4crc+
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Handler-mbean.properties
|
||||
SHA-384-Digest: jZ9kVyf/GAtmMYAgHfhyFbQWpSuStyjm6+pc9Fq1uFvhKJ8C+0I6H43H
|
||||
Nhjq6Clz
|
||||
|
||||
Name: res/5P.png
|
||||
SHA-384-Digest: wYpL447eMcdZIg+lyOcvqlpgGsFBZLnlOXEMaX0sDBqxwLu3yvz84Z9A
|
||||
qgqeRUid
|
||||
|
||||
Name: res/-3.xml
|
||||
SHA-384-Digest: rzoIcdjJZhSwpq5b6Rh0b/PEaWdCWVZsjGfZpmqK5BAWFksXguvluZuv
|
||||
iObieVEy
|
||||
|
||||
Name: res/OX1.png
|
||||
SHA-384-Digest: XKz1Ni2y1mtyoNJPVru7dLnGYgCzZM5LpsCyo6p51piYFCFMobSWvJ0M
|
||||
U870KjdC
|
||||
|
||||
Name: res/-J.png
|
||||
SHA-384-Digest: cMCRmVQSbQBC+AbrmJJ1daGAzDPA+dAJXm8o0wTI6uK9j9h+DsKC7aeI
|
||||
GPUVDoOO
|
||||
|
||||
Name: res/59.xml
|
||||
SHA-384-Digest: p98S/bb46KkP/lfdhRgUrDkoeioQIyPSjcifztyuhlLOLoTY0hNLcPLh
|
||||
k67yYrHH
|
||||
|
||||
Name: res/QR.png
|
||||
SHA-384-Digest: JvKHQv67XaNDSnB7TCaIr+1dLCHFOWSLmM0jkM/Ea2RrPH/GizhgSBnk
|
||||
rxfu4SsJ
|
||||
|
||||
Name: res/AB.xml
|
||||
SHA-384-Digest: lErTF01cKXrqSdb68LVAE8d4jMOTbUwieaEEnMF909nd9KS+ZhZjBW39
|
||||
ZmhKdpJn
|
||||
|
||||
Name: res/BL.9.png
|
||||
SHA-384-Digest: DgC8C4272vCh/XrOEuk4+jI+RAYQZiMqCzkp07eye2O2AjXJd/lSaFsJ
|
||||
X5BzcFHj
|
||||
|
||||
Name: res/Bk.xml
|
||||
SHA-384-Digest: R9j3iWJTV6WE9oP43oRLEl16Vt+FkrcSlgBoKtXAE7idz8nyLo2nrWlH
|
||||
bAi5Xzad
|
||||
|
||||
Name: res/D-.xml
|
||||
SHA-384-Digest: 6Bccl1LH4KVPvuJidxGaVX9DKMUACZutq+p7JOA1sJZfqvagsys8TJ+z
|
||||
4Gu67c3y
|
||||
|
||||
Name: res/aG.xml
|
||||
SHA-384-Digest: Zgxm0Xxgvhwe8aQap/Bd5JtH7bXBy3d5VsSENfhgKEuvaAYIM1KFYKBw
|
||||
aFYUov33
|
||||
|
||||
Name: res/color/mtrl_choice_chip_background_color.xml
|
||||
SHA-384-Digest: AMOfNtbTOtqF+ZvJO9atqhCKcHCXFzui1WvRLuFoLunbWzDCfyv9DOPC
|
||||
iBFL8uPm
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/AbstractHandler-mbean.propert
|
||||
ies
|
||||
SHA-384-Digest: 9NXRCXkZscqUchmq2TuDa2AzxBBSDD0tt79wWTmSvzeFttweFQF+pT+x
|
||||
z3bWeRtz
|
||||
|
||||
Name: res/5t.png
|
||||
SHA-384-Digest: iMX1G4yVKNRIwXkEZbdSB5/HJGbUCjlpS8EV2v9sfL8J2vQ/VwUqPfjK
|
||||
/iuKEYQ5
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral12.xml
|
||||
SHA-384-Digest: enJN8CEqvMwbXrTFUnmg3R96CPx3C6jrbo1apx2CRoE1hIA/kblFovED
|
||||
DpT1u20c
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral98.xml
|
||||
SHA-384-Digest: dmZRSKLGawfCoQ/VSNsV8/1jy8l2cVO2hY9y0A4gPozglihbJccy02BY
|
||||
ZkaNvsTh
|
||||
|
||||
Name: res/9w.png
|
||||
SHA-384-Digest: 2p2e+ciifYz78mAqM47poHUymW6kckP82y4lKn1y8MnUHwXHA4JhsCW7
|
||||
Pji7M2Qu
|
||||
|
||||
Name: res/yY.xml
|
||||
SHA-384-Digest: U9x0aAexJXAtPMzwtXkP7ev7etAxhBVNdzHcm2do7b14kSukcwMuSh2G
|
||||
gXTYCapR
|
||||
|
||||
Name: res/kj.xml
|
||||
SHA-384-Digest: qaBexvqBsLdSFIZM3XM57wGmu9KxNb2AOvOerXU08mrW078vwizRT8CF
|
||||
yJgOAKPr
|
||||
|
||||
Name: res/Gf.png
|
||||
SHA-384-Digest: 8zFYnVEc4EqOU2t3PpadRDVrA80KY523bUEBTkBh+ukPYqw0ejia9OjN
|
||||
2IgWmx03
|
||||
|
||||
Name: res/W4.9.png
|
||||
SHA-384-Digest: 4Io7n2RjarI2dduPYW9hJsLy/UizBy1b4dgCjWDrbrDSxjDx8k9zVP+P
|
||||
8HGa5mo2
|
||||
|
||||
Name: res/Wr.png
|
||||
SHA-384-Digest: qcKuHLufjWOZtJI9UiugcYS/fM4mk0RxV5zgGbDr3SzOBCNX/ts1EqF+
|
||||
LFDrSwsQ
|
||||
|
||||
Name: res/vR.xml
|
||||
SHA-384-Digest: RVAhE6kCzH8uvxsfvgygJXq+fv7PboQr/HRd18BCrLAonU5EtHaYCes0
|
||||
AkZeeWkY
|
||||
|
||||
Name: res/QJ.9.png
|
||||
SHA-384-Digest: xEi4ev8OW6bRnnMAcCscppmXcsB3d+AWrPvDz01jpEJek139v2YFsTb2
|
||||
fzBEts4S
|
||||
|
||||
Name: res/wm.xml
|
||||
SHA-384-Digest: JD58F1P/S+85tknr872aLcD92rBEQsrHU98g23OFvMV3LJWxqa45GGDi
|
||||
Pu2G2yK/
|
||||
|
||||
Name: res/xN.xml
|
||||
SHA-384-Digest: KXkwTYVbSDEVdP53E70y359Y3XlBR6+VkuQNtR3PaIPWv6MQuH2XfiTT
|
||||
6TvQsqVV
|
||||
|
||||
Name: res/X6.xml
|
||||
SHA-384-Digest: wLEy37gEnPST267goZd5J3KL40QKDpsUX0PNJHGgZiy4K/qSAyIEXhtU
|
||||
UgzP8z4g
|
||||
|
||||
Name: res/gD.xml
|
||||
SHA-384-Digest: eQsbtHz9ISiAJYEvl9yMY+X283KW6pNnDAt1t5BSqhq4HxXtGqtRuVmC
|
||||
L2dy0YBv
|
||||
|
||||
Name: res/-B.xml
|
||||
SHA-384-Digest: M7drcmMz7zhnudo+pJjxFjS8qXPxnRgWJRSQGx7pclrXT8GYgK9W/xrg
|
||||
rON46Tg1
|
||||
|
||||
Name: res/yg.9.png
|
||||
SHA-384-Digest: G6u4CnYZDsGX5RMKLIfaFvMKpfpXykzVXv+R60IF/eeqFiObCfFilLf+
|
||||
fncyPdNu
|
||||
|
||||
Name: res/cL.xml
|
||||
SHA-384-Digest: pvulbtjEeYMS35xm0FSnE+/eooCcTirDS9lDBX4SeyIacMFYRR/Otl6l
|
||||
TpiZN/Ad
|
||||
|
||||
Name: res/d-.xml
|
||||
SHA-384-Digest: SBqgzk1KvAUcV1EoKwsueL0varu5M7hJI7GzioSJ26WQD3UqYajxJ6WM
|
||||
MPwmeunr
|
||||
|
||||
Name: res/color-v23/abc_btn_colored_text_material.xml
|
||||
SHA-384-Digest: U9EkkxNDv1I9cD1dCgJU15nn91B1KtghbbtxmjHigXtXyTivuBJ+HLL/
|
||||
HGipPUd6
|
||||
|
||||
Name: res/Ib.xml
|
||||
SHA-384-Digest: nm6rk7dtkzscu44o30h+9dHxhBh1gIp+jB47Q8LB+gdiaNnzZcKOX91r
|
||||
hjqW4m4s
|
||||
|
||||
Name: res/JC.xml
|
||||
SHA-384-Digest: qPMca+ZjasHFj/jr+OEEbUFLVZvPMXNSl1emDsVXtnZTJydFf8+eBabV
|
||||
UKCgQa9k
|
||||
|
||||
Name: res/Ag.png
|
||||
SHA-384-Digest: XKz1Ni2y1mtyoNJPVru7dLnGYgCzZM5LpsCyo6p51piYFCFMobSWvJ0M
|
||||
U870KjdC
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant12.xml
|
||||
SHA-384-Digest: BzQ5iTvi7cQ8ZoajTiIcTN6H/u/iqbpADZW21v/UBo3feSP7DY684ykU
|
||||
8qwa/+nC
|
||||
|
||||
Name: res/1x.png
|
||||
SHA-384-Digest: EMrDDFLEnUmgfLGqd5S6jnFg5cF6oSq38XuPi3tWt299IReT/VGDvOKC
|
||||
SsdW+QqH
|
||||
|
||||
Name: res/Nu.xml
|
||||
SHA-384-Digest: yX9iMOKiZ3O8nuEJwqltBRZNLc653AYl6pekwe5319Uhbx6XYKnNzXtI
|
||||
8Suj/rpt
|
||||
|
||||
Name: res/eK1.xml
|
||||
SHA-384-Digest: xXn9rF/Ef7ur3CNny/vrsYxwI2rWHXe3fy2WKHFSc85KMMJ+jtO7/x3W
|
||||
sQhbszWJ
|
||||
|
||||
Name: res/tK.png
|
||||
SHA-384-Digest: 3Yam8zWxXrn+9ETq0ifRtM1PPUjcfPM/wqk2A7PCMPx2ilS0kj4jLXjI
|
||||
uj1RAv9Z
|
||||
|
||||
Name: res/color/abc_primary_text_disable_only_material_dark.xml
|
||||
SHA-384-Digest: OUV+GH1BnKiususlBB9AbVcJQoEM+FUQ0P06ajUSf+RMciOH26LilrM3
|
||||
mnFVg3mT
|
||||
|
||||
Name: res/Ac.xml
|
||||
SHA-384-Digest: wqz8eDUXmdDljkoXiv4jnUnseaLUVcSpUXu4bw75ahXIHRGQrIXbpb7s
|
||||
RKJvnX60
|
||||
|
||||
Name: res/zN.png
|
||||
SHA-384-Digest: 44TNjbuvHTMu+uku4w2f0kOtNPKZvzrTC0Dbx/yYk8UoZEonsfYRgHAE
|
||||
UZr299VB
|
||||
|
||||
Name: res/MZ.xml
|
||||
SHA-384-Digest: CFuZ1t/AepikV2wHgjObm8Kr3FPfDAtUqldxDQ/F7wshB3g0KOA1H9Wj
|
||||
XP5dn9XU
|
||||
|
||||
Name: res/T3.png
|
||||
SHA-384-Digest: zfyCnC4oLsx4w0zgJbrK5Fz1ObHxCpXfaqr/6zValOkYQ3BxPFpyg5wH
|
||||
iSZJKtSt
|
||||
|
||||
Name: res/gs.png
|
||||
SHA-384-Digest: +KGKU/N/Vxsz1FBCudP0ENLktJB/5FP/S4yC+wZNF14/ntkYW019GN2Z
|
||||
IF6nlXRs
|
||||
|
||||
Name: res/s0.png
|
||||
SHA-384-Digest: nf9cNdWVjZhQEVFF8OKge/TbsdyvaU0iRhXyWvkfrvXKjZIRyGZuSCYP
|
||||
PuSFe7J6
|
||||
|
||||
Name: res/color/m3_fab_efab_foreground_color_selector.xml
|
||||
SHA-384-Digest: XcONovWw2P9NaPXhEAOBQEo4KP+jlpzrCGNPDCgOyh8bU170qbotOYkY
|
||||
z5xw/pNd
|
||||
|
||||
Name: res/-Q.xml
|
||||
SHA-384-Digest: yO77M+XVq7e/o6wgojfveaxj8YMcyWcornn2NEWBgd2pnGpXsl+FhL0b
|
||||
SKz71YuO
|
||||
|
||||
Name: res/eW.xml
|
||||
SHA-384-Digest: 8Zh54igPFbf/whk0e3qFmiouH+np2ENPMzDXV3jeBC6QAsYQwGLkdVl9
|
||||
a3zm4lyX
|
||||
|
||||
Name: res/color/m3_timepicker_button_ripple_color.xml
|
||||
SHA-384-Digest: 8HsWYQp68/xydck5YNBXoDx6RDCLiOx8HurkZxE/LwwSvMZ8Rpf7B+TA
|
||||
1Q8UpoWQ
|
||||
|
||||
Name: res/5l.xml
|
||||
SHA-384-Digest: Gi5U5uLrLgec54ea9r7v0+XeeAQrdqG56LSryMukKqxTqfd8MZ16PlAp
|
||||
uU0hEUoo
|
||||
|
||||
Name: res/9H.xml
|
||||
SHA-384-Digest: M2aL9kkCXk0vdVd6FtJ7CRXt7YjNdhMagLUdTvaV3J2EZ6pVaPXjwSY5
|
||||
9tnyZ8vZ
|
||||
|
||||
Name: res/NJ.xml
|
||||
SHA-384-Digest: eFVBed+rhPyl7FRs160bCh5NU4A1BBqbnxrTzdK6Gnkqu+f0FRTKVjQk
|
||||
0K1aIbP2
|
||||
|
||||
Name: res/color/m3_appbar_overlay_color.xml
|
||||
SHA-384-Digest: Pn0kbO0S7R6rCgGt1wD+S3nac8Do130YiH4CqH9eMJhDZvXENa74vl7X
|
||||
3mm22AJ7
|
||||
|
||||
Name: res/xy.xml
|
||||
SHA-384-Digest: 9LqV1zCvphEN6YF/MJhI7Fx1veX143KrEa3YpnjmgOhk4H35aJUJ5d0F
|
||||
3lS7QseA
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_external_yuv_es3.gls
|
||||
l
|
||||
SHA-384-Digest: LF/GIMUkyaAojDhBSOWQzcYfU6nezvVkHXHkmUjBmwg3iq3CGrsW8fv/
|
||||
0bS4upX4
|
||||
|
||||
Name: res/dX.xml
|
||||
SHA-384-Digest: Mz/BgtjyG9RTWR0f51KdAXoDMIgLFmhTFOkXms1GmAda+FKLqzDuchu3
|
||||
/ZXp4FG8
|
||||
|
||||
Name: res/j4.png
|
||||
SHA-384-Digest: 4lPcHNIT1QuAQ+AQmDPx2mzkd91pF5qDY0DZroaHkHrwy9yVhbF+xSlS
|
||||
T+WJf3I2
|
||||
|
||||
Name: res/H-.png
|
||||
SHA-384-Digest: nTOpWy8C2zJIdHR9wn/mB+Z7qP53y8lAC6vqYYXNi5LI+B9o906lolg/
|
||||
jLRIur4A
|
||||
|
||||
Name: res/w7.png
|
||||
SHA-384-Digest: BkP02V9ONzspsPwrSNlnP25XUVpkKULYVrJk4arsVBb3ZleWTkZqKSaf
|
||||
wUs04Knh
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_external_es2.gls
|
||||
l
|
||||
SHA-384-Digest: fWK3273Xu6ghUW6TPS0GRxVxflH3RxIHfPzJRQwjMdAVr4bEXISoRvEL
|
||||
a3Uc/zuj
|
||||
|
||||
Name: res/1I.xml
|
||||
SHA-384-Digest: wtEsKTeE4yshJlqOXcozBWb1hg9s4sYLI9E5hgf/dgKr0qSqbyHUVje1
|
||||
7TGJAIFp
|
||||
|
||||
Name: res/C_.9.png
|
||||
SHA-384-Digest: Z+QlwCOk1uEvGjtO2VvpjkG5y1W9rc5fPoAwSwV/dgmhDNYt9KIkcrj8
|
||||
1o5+Orty
|
||||
|
||||
Name: assets/images/ic_local.svg
|
||||
SHA-384-Digest: 8vWOObavSIP6+5fk3hcmb2UV+WQqb3ILhOnbif0KLHCnIIH/JwJh4vMA
|
||||
3kGZP07d
|
||||
|
||||
Name: res/color/m3_fab_efab_background_color_selector.xml
|
||||
SHA-384-Digest: Ry1ojnu9ZPAVI6+v4gUBaFKxIpORl3V2AlXXfMmBLNAB8tx3knPSi7xG
|
||||
8TFPsHhd
|
||||
|
||||
Name: res/go.xml
|
||||
SHA-384-Digest: MKDLuHvuhGWO4/e7Ut6YciqjBK8SAO3IXRdd8e08dEr754n5JW2JVrj+
|
||||
L681agJh
|
||||
|
||||
Name: res/hP.xml
|
||||
SHA-384-Digest: y+n/lj9kvCHWFezgXXhOSWxo5cZDwKOLgj92oYA8rG/AX7eHC1y8Zp2H
|
||||
D39aoGOd
|
||||
|
||||
Name: res/SN.xml
|
||||
SHA-384-Digest: T7GwTvHp90gD6AjanAPBaSswc1f2ucoZXF/7CL1lDZT49GGoMmHrmqZr
|
||||
K1GfuJtz
|
||||
|
||||
Name: res/wb.png
|
||||
SHA-384-Digest: 0xyxGrI38r67apMVpMWaJi0EWSfbNT66OZBlYLqDkrlJUTMlaMz/9mV1
|
||||
IFeVCY9Z
|
||||
|
||||
Name: res/rj.9.png
|
||||
SHA-384-Digest: VsVVW0eDg7oxBmfvLuXAT78iVKcZlouKFkfLuCIrMP4ZyDuJQFArUZFG
|
||||
MxWbA6/h
|
||||
|
||||
Name: META-INF/com.google.android.material_material.version
|
||||
SHA-384-Digest: N5xJ/3/5IuujFLFLlnVXu3lit0K48s5k7kM7GRnzVKtOHBnwJNsNjgmb
|
||||
yvVFx4M1
|
||||
|
||||
Name: res/t8.xml
|
||||
SHA-384-Digest: JoRa2mrvHK9zMM0cTbPn2sP+lgTA3emwErTtoStw8e8nZm7cBePItPdD
|
||||
Q2HCHqcg
|
||||
|
||||
Name: res/XW1.xml
|
||||
SHA-384-Digest: Svjexdh2oPS5KrAk+x6/phnAhpVklCWm5t+82ihPVPSkFzYt+LT2jeyD
|
||||
hkV0li5Q
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral6.xml
|
||||
SHA-384-Digest: tVb+FcPbgJnML2JydgbEbVoFQcIBEpakhz7GTVUNpIkOdp1IquVl8+XG
|
||||
mOF9f8ga
|
||||
|
||||
Name: res/Fg.xml
|
||||
SHA-384-Digest: 01S44LSuVVZPcWLdc3/ip0wlKdwaF9Ct5BLR+NfKswDpTS9L8Iv2AljS
|
||||
32K4/qau
|
||||
|
||||
Name: res/color/mtrl_outlined_icon_tint.xml
|
||||
SHA-384-Digest: FhWG/B0RyTfDtC3WkGStJolH1JLWvHO/bVM3XwNk2pYPaT/y1fbFexAk
|
||||
umO83ros
|
||||
|
||||
Name: res/AI.png
|
||||
SHA-384-Digest: lWBKtFFb1zXBBEG25mtOpR3nQpjP5nLt0UKyesgTNFhfFq5p6cKrkx0N
|
||||
gLngqqnx
|
||||
|
||||
Name: org/fourthline/cling/support/avtransport/metadata-1.01-avt.xsd
|
||||
SHA-384-Digest: 8cRfvTw8xArlxnGc1BYUUX2T3747uf+H7yRMQbuLjSyEJF90hnp0YYl5
|
||||
EYDNNQmF
|
||||
|
||||
Name: res/8k.png
|
||||
SHA-384-Digest: LUQd58RART329VEsOrb6d/KQH+xyN6xY2Jaf1POMGIkt0azDmhCplB75
|
||||
IvQD7iel
|
||||
|
||||
Name: res/x3.9.png
|
||||
SHA-384-Digest: h5qGWhSfvI8o6QxJw7TZFllOrY1VW4rwOX/rSZHCxDvF8f6vGjZDMQNs
|
||||
6B/J4sgg
|
||||
|
||||
Name: res/h8.png
|
||||
SHA-384-Digest: pt0hawIg/0C1GtJrZS0oMvULvUfPgjrkgMe7qlvnJB/bHptBss60ZQuh
|
||||
MWuy3I0Q
|
||||
|
||||
Name: res/uS.xml
|
||||
SHA-384-Digest: 4v7KwhOgXXtZtyDLYeRx5WAwWK+jsF9mHGAt1qVCBNIyX9lA+HPOYoWm
|
||||
29u0jcsG
|
||||
|
||||
Name: res/color/mtrl_tabs_legacy_text_color_selector.xml
|
||||
SHA-384-Digest: dlX6w0q4JLNkNkiwSmAolXf9vMWIQOoZj4Ro6cxcQaGA/SkaOFFbxlkn
|
||||
lCEuhfZ1
|
||||
|
||||
Name: res/Ja.xml
|
||||
SHA-384-Digest: n4/mSFpwVeWeZFUKUT+xa8Yg4XL1rxnncjiNWlzyjOW9pUWIEq9s4VFn
|
||||
Tq34mvlS
|
||||
|
||||
Name: res/0x.9.png
|
||||
SHA-384-Digest: BJF9jriH5l9IE1TEoEcTNGd276enFI8gUSPMCRcxLA860IgBy93LCl/l
|
||||
BLgydu43
|
||||
|
||||
Name: res/8t.xml
|
||||
SHA-384-Digest: c+5aAgiBRH7xXH6iPnRQjSWwJ4UUdcNe2GwMYGQBBJWma/rT8jzmMxcz
|
||||
uCi9p0nP
|
||||
|
||||
Name: org/eclipse/jetty/server/nio/jmx/SelectChannelConnector-mbean.prop
|
||||
erties
|
||||
SHA-384-Digest: adW0/S3okDeqP+YjeZn5SU8ZrGdQKaVaeBm2yXlCFYByPlUaxYuX2yFz
|
||||
CzeWRSHt
|
||||
|
||||
Name: res/color/m3_textfield_indicator_text_color.xml
|
||||
SHA-384-Digest: dVZPl0AhjHdoSZ4E7I7aywOK2YXAIQcpGMPNXQuE7y95Gcp9W+T/Q+lU
|
||||
C+efPu6w
|
||||
|
||||
Name: META-INF/androidx.activity_activity-ktx.version
|
||||
SHA-384-Digest: 6XIsDSwtqh+9mYPN6NPMA0XzFB9/VtvGpOi33AC3zJC12Gpr8cTWgr2A
|
||||
SLm28X7C
|
||||
|
||||
Name: res/color/nav.xml
|
||||
SHA-384-Digest: E5jAlU3XjQwqMRslQcVdOZsKS50zUA7usgPqay97qIEY8Ahnehj/DjKq
|
||||
utIGRFvs
|
||||
|
||||
Name: res/color/m3_default_color_primary_text.xml
|
||||
SHA-384-Digest: EdcYR02UduSDsKoOMDHgZwbLQG6rzC+vzuegoeAOQa2HAQvN1+EEKfoi
|
||||
OA2JXPtk
|
||||
|
||||
Name: res/7s1.xml
|
||||
SHA-384-Digest: waUMSteYxVkNzYU6JoSq8JBd/hyLY/hHV6J8jbvhOZ3RqXasT8AfZFd+
|
||||
3wcVPnq8
|
||||
|
||||
Name: res/kg.xml
|
||||
SHA-384-Digest: 2ZfJ56S/vUpqBHjO3c7Uv1zWStT97hyIpu5SjmwpI3frduuEaEnODC/B
|
||||
A0kBRBaz
|
||||
|
||||
Name: res/Qp.xml
|
||||
SHA-384-Digest: M6TVT7J+LS9BiMxVGYzsm2Yv2xQJ0zf1HiCqFYg73YXgW/kiQ/Jh4jKQ
|
||||
CQ1NrcFa
|
||||
|
||||
Name: res/2F.xml
|
||||
SHA-384-Digest: hf8rEiawqDM0BRQrARjvdU4cMki28yRynukQB0+7Ko88YzHlj9VpG0vs
|
||||
Il0S3TOC
|
||||
|
||||
Name: res/no.xml
|
||||
SHA-384-Digest: eHyVrtNosHW/u6VbA3pnKRQfi3bmOGt6a9PkIjo0hyi7OUocQQVJ1lBW
|
||||
/I4/FjyB
|
||||
|
||||
Name: res/oP.xml
|
||||
SHA-384-Digest: Z/YAq2ZQWJ6ZM9deyzeOI8qf7NCWxrghluL9Dz5tRfYiUXNnbx0qo6sA
|
||||
VYpwCcvH
|
||||
|
||||
Name: res/ZN.xml
|
||||
SHA-384-Digest: RTvJ1txSPAQ4HjghBsU6Hw7MidMucRxA3rWpTZ/lmAgpfgwexpwYCge9
|
||||
09id4KIe
|
||||
|
||||
Name: res/oa.xml
|
||||
SHA-384-Digest: ULU1Yi5WahFmQCOrZKrjsZHka7jun/1CCJ4W1BA0gpgmKPp/9936PI38
|
||||
RulLP4tH
|
||||
|
||||
Name: res/pB.xml
|
||||
SHA-384-Digest: hRpEHN8JmbThtwpcxGpLxQ5kjnRaZd/BeEapVZxzWSYwG8e/Ww/RwDkx
|
||||
R6OA77zl
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/HandlerCollection-mbean.prope
|
||||
rties
|
||||
SHA-384-Digest: KwhqxzsYYuRu2fGzx9TtHF0qFshcQ6zrJdG18jXK3cynUPsJtsr3VazZ
|
||||
VMfVoREC
|
||||
|
||||
Name: res/62.9.png
|
||||
SHA-384-Digest: E1iwiqBYeG3BQyCphW/neyngX8yuVafNDGV7Op7VXVCRzPcLZ5UuSmAV
|
||||
kARShvjG
|
||||
|
||||
Name: res/color/m3_primary_text_disable_only.xml
|
||||
SHA-384-Digest: P56pjdplPihlT3ktiZgopEp5/pGYSG60CBg7XkMIHyklKlO8zHu02OYS
|
||||
Nc/fGxSe
|
||||
|
||||
Name: res/K5.png
|
||||
SHA-384-Digest: qRc/ZHqRSawoYs2gjjq/3abGps61JQAz0cIf/b+0Tl1ojf+/wXwm3hHF
|
||||
7OL7x6tx
|
||||
|
||||
Name: res/-5.xml
|
||||
SHA-384-Digest: IgzKpIybHAS5H0ciEUGA97aqEGYLXZrQbRmcFubyDnlYqvv69ov4GBH0
|
||||
KA/wzhHh
|
||||
|
||||
Name: res/nf.png
|
||||
SHA-384-Digest: AmNwLljlUKBGxWw7HywNZxQIqUjRTNhRsLpBr/+l9oVTD1q6UzckiyYX
|
||||
TRMIN50c
|
||||
|
||||
Name: res/1J.9.png
|
||||
SHA-384-Digest: 4rFXuE4U9es13mg+45R9PD80Eof+HXAi7Ra8IJcK+KqCyV4o7zsPY6jN
|
||||
q+vneuMS
|
||||
|
||||
Name: res/color/abc_hint_foreground_material_light.xml
|
||||
SHA-384-Digest: pH8G032JRxCu2MwgK/uUfmbGMopNWlvhAAz+j/x2dxWO1cJvlAcC3CRD
|
||||
bn0JOcDm
|
||||
|
||||
Name: res/h4.xml
|
||||
SHA-384-Digest: rGVqy7qLlVIWlnFBMiTar/0kRYSWiqSbt1RnHNSSyH4zh95TTz/IQ4UW
|
||||
IK+Zik/N
|
||||
|
||||
Name: res/By1.xml
|
||||
SHA-384-Digest: IL1qGi8N+0tpKZLU4D6gnmep+HJJ/D7CJERnFuoFHk9BH7cB890vLsEl
|
||||
rwTh9zMI
|
||||
|
||||
Name: res/te.xml
|
||||
SHA-384-Digest: hVHsEPmrEqfKGmQ5z68SOiTaFJ409SOoO+03ps7r9a7k5Et1ZoiMVsxD
|
||||
7idrbjct
|
||||
|
||||
Name: res/color/material_on_surface_emphasis_high_type.xml
|
||||
SHA-384-Digest: u8aFG/TRw4c4XtA6RogVkUQ9r3OUMd+31VKEbyTj2NhkFxRzvDhXiZj+
|
||||
Tnj7QMWz
|
||||
|
||||
Name: res/Mv.xml
|
||||
SHA-384-Digest: HmtSxPRoYAOy3BahIr6gBvL6bXF36D+hBWhThmVY3R6CR90U/r+KlvC/
|
||||
mnXESmKj
|
||||
|
||||
Name: res/color/mtrl_filled_background_color.xml
|
||||
SHA-384-Digest: ENu/Vu0ichY0Xb+8uIjgzLmnoOZZ2LKtVaLV9zxX209yRWSDGbkya2CU
|
||||
YD++0x+m
|
||||
|
||||
Name: res/mr.xml
|
||||
SHA-384-Digest: gjfyouDmPz48F7EerJsKHFhK5pkyqKeQDzmpq4PmpWFz9HcmConqHJ+/
|
||||
fVvymJtM
|
||||
|
||||
Name: META-INF/androidx.slidingpanelayout_slidingpanelayout.version
|
||||
SHA-384-Digest: My7SclyusH8gdCbsiQ5IlNIcU3BGBnA7xcj3jsVjMmNPyWevtmjnelRu
|
||||
frBBek6e
|
||||
|
||||
Name: res/EP.png
|
||||
SHA-384-Digest: /Bdfc9LGU/FG9J2atjlk8xuzGi445rKRtpdGXWscesjXf4k3A11hzmm0
|
||||
+N3lY5EI
|
||||
|
||||
Name: res/8K.xml
|
||||
SHA-384-Digest: Hra24uxhfaooUsRYsPKkBj1OIRrpKrSWHFPMP8HeRYngoVz8nBF0QNc+
|
||||
cLYXYV8m
|
||||
|
||||
Name: res/M-.xml
|
||||
SHA-384-Digest: QmJjgTAnRS/PBGTNv0P2rIkCh4kyZ/nRp7NhfBf0q5fHHTTonzkPLSYv
|
||||
H6WGQOlZ
|
||||
|
||||
Name: res/an.xml
|
||||
SHA-384-Digest: selVhFFufntqPDNUdhLMg5ebeI7SuRtRXGqsHtJrL71jgUZKkFdnutPc
|
||||
C12ZVq1V
|
||||
|
||||
Name: res/c0.xml
|
||||
SHA-384-Digest: a3Mi6zGp+XsCNuVloXjgPSN2SEdA2kaEWQ91xC3tUuR0mk7oeH0WQuvM
|
||||
l3IxT8QP
|
||||
|
||||
Name: res/yi.xml
|
||||
SHA-384-Digest: /E5eYQff2QVy0VJgLdi3x38YRNTb+S8F7LKmIhdErpso4RYBTdodKIXz
|
||||
xk6301Vq
|
||||
|
||||
Name: META-INF/androidx.dynamicanimation_dynamicanimation.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/color/m3_tonal_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: TOcVEP2bRG/ECOSWdZopFTfkCPbmOOXwSP7VNBB08l2zFGSNzpAt11fi
|
||||
DM+D6jLE
|
||||
|
||||
Name: res/color/material_on_background_emphasis_high_type.xml
|
||||
SHA-384-Digest: AyHj7E5HXaIQsJGt/QyiZ3Z1IrN6DpoFsyJjbEubaF35PGRDCTrC+jR5
|
||||
ydqrbC2Q
|
||||
|
||||
Name: res/sA.9.png
|
||||
SHA-384-Digest: YpBpURel+q3N6QVXkBX+d5/8KbIMm5GMMvBUt0A4Y2isow9Ycpcle9g0
|
||||
bfm0Kb/f
|
||||
|
||||
Name: res/PF.xml
|
||||
SHA-384-Digest: sub6d++fK9vUtIkpn2/nbw2oZESoZ1E6/4PpQHP/mq5gN25eO/PmJgF1
|
||||
h2UBkaqH
|
||||
|
||||
Name: res/z9.9.png
|
||||
SHA-384-Digest: KGRFTyJ62Lzr1W9uucCICy/4SpGFfz/D9wtpTQNhwLRm2+Mfx+LN+t7Y
|
||||
tVNjnwkq
|
||||
|
||||
Name: res/eH.xml
|
||||
SHA-384-Digest: em61gYbaTGC+gnfDVGG50jYbGXOIZg3YFFC24SdjSkxOhYydFJdFRpmw
|
||||
F+MfGZpb
|
||||
|
||||
Name: res/4Q.xml
|
||||
SHA-384-Digest: wELXa9QW5XbGfkWfKkrcoZYkhKFq7c3i16ITzyq/zLrQjbULQHZR6lyd
|
||||
97kSLN8l
|
||||
|
||||
Name: res/Av.png
|
||||
SHA-384-Digest: xwVy1iYl+Pgg5e2L1rYrzFvDGQltdb0h6Uxytm98RlkcwfeAJV7g32OL
|
||||
o9T4Sl0T
|
||||
|
||||
Name: res/color-v31/m3_dynamic_hint_foreground.xml
|
||||
SHA-384-Digest: sRnnD47Yr95n3t7FGvUFCRlJ/Pyl+uJQE89jJZCYdK12V8gaYOqYjSWj
|
||||
JLqeTnhV
|
||||
|
||||
Name: res/zL.png
|
||||
SHA-384-Digest: M9bScFtrwa9aBvoxY7EdHYRBWClDBZYUWDdWxsBzKTfa1aPSc/GQiZgQ
|
||||
FO0pBHao
|
||||
|
||||
Name: res/uh.png
|
||||
SHA-384-Digest: QgIONFcr9YOZwMMkvhW6yC3YBAtIno52oRX/QyhO37+uRICA2pjHFIco
|
||||
G6uLzGrf
|
||||
|
||||
Name: res/UP.png
|
||||
SHA-384-Digest: AulsM3ZcxloJXUOwRXQCidOeQ25O9EXUyavnvHScgOifg74AB+r25K24
|
||||
fYQH9Cte
|
||||
|
||||
Name: res/V1.png
|
||||
SHA-384-Digest: QCXHTaIafD9ddgyyfkGhM/WgsXH9F812oj7+cnFrp3nxUzPi/aRHED4z
|
||||
b0409nZ9
|
||||
|
||||
Name: res/q2.xml
|
||||
SHA-384-Digest: o3XawdYwNlZgP1qFGPK2osKjzNSN/aT/Q2i3+mzBNp5iTDe3aWheyyu2
|
||||
e5j4/M7R
|
||||
|
||||
Name: res/4S.xml
|
||||
SHA-384-Digest: dJzi+3EOtXEUBtod78a8XgWD/q55D+Ww7oy+s8uJH5a5RwgtbxDTnLlc
|
||||
JLykNu9e
|
||||
|
||||
Name: res/97.xml
|
||||
SHA-384-Digest: LcFsY3sWrskIg/lREszJIFaYDsl8Ui2t7PNp6P58LVLQg6Wn2AgOQi5X
|
||||
6qbFlNxk
|
||||
|
||||
Name: res/Hx.png
|
||||
SHA-384-Digest: 8E6n8I9te3x9EBxE1qXUm1ojWh27nG9cLhLKQsltE8U7ixrB+vxdsVZJ
|
||||
YQ848Cn/
|
||||
|
||||
Name: res/color/material_personalized__highlighted_text.xml
|
||||
SHA-384-Digest: /O86Bji8Hp6ueEscGewFkn4qMlcXgNmeUoWgGzCzRoGJTIlDK/ZDl4Ai
|
||||
bFpsUiDo
|
||||
|
||||
Name: res/qp.png
|
||||
SHA-384-Digest: 5r3pT9xZGjYs0x0erbfB+A2Th06zedBsx0WDDA3qdVKp+dcFBR/YG1jB
|
||||
U26j8iF9
|
||||
|
||||
Name: res/cy.xml
|
||||
SHA-384-Digest: i2HDgyO8Gh6AwqC+BfRMNZtCHKH9T0GV6RNPDkIU7a16i/sbAfL470vn
|
||||
mfsoGUMA
|
||||
|
||||
Name: res/Cp.png
|
||||
SHA-384-Digest: L7uF1VW+jgyXg51KJVMNgmjIrAuDYm5pWNGmo2JP+zRCWej0V9d7YDD7
|
||||
jNxcN/Js
|
||||
|
||||
Name: lib/arm64-v8a/libavcodec.so
|
||||
SHA-384-Digest: Gjk1qNWU27hfomK+/4P1VKUUlXgn/0K2GViERLf/9jecmrbHn+xmgFkb
|
||||
vjFWkIva
|
||||
|
||||
Name: res/Ro.png
|
||||
SHA-384-Digest: eWGrTI1GyexdfEgas/1eLnbi8Z+XNMtQcQbOqPrWS/EoTJsC3T2UTU2L
|
||||
jFj0/h3G
|
||||
|
||||
Name: res/Nl.png
|
||||
SHA-384-Digest: bfOyJ8MGuwbPB8Q7p74f0Av7DAI0xY3xtLhJ9+//h7Yu4/t5wNPjKDP6
|
||||
cQG7Y6Q/
|
||||
|
||||
Name: res/OM.png
|
||||
SHA-384-Digest: PlW+A3hCM024xgRfFXVkj+DhbSvd5mn+4qea3GGHvN0uKBHR75s8LQgY
|
||||
Eexh30B2
|
||||
|
||||
Name: res/fp.xml
|
||||
SHA-384-Digest: bV5rIkVxV1nNFY9mQkTkoQx20cImCC7IuUxktdNqGwdvTDBny/s8ZwTo
|
||||
eO7575aN
|
||||
|
||||
Name: res/Kd.png
|
||||
SHA-384-Digest: cmqZV+joCsoZ5rlFxny7xGnlwHN6vjcRrLId3Ha10gTFMZ/5rs6EeIbD
|
||||
F50l//nb
|
||||
|
||||
Name: res/uj.9.png
|
||||
SHA-384-Digest: LIC/772c4l42Gx47AjMZ8oxTJ5TLLiFy+QGGxf88JSXA/8I+k60sL3np
|
||||
hZovYUxK
|
||||
|
||||
Name: res/bm.xml
|
||||
SHA-384-Digest: J95UY6K5s5wwOweIkqU7TdPAsq1DkUApoYS3VuMrvTxad7nBStWr5rOc
|
||||
TlUQAuIV
|
||||
|
||||
Name: res/ej.9.png
|
||||
SHA-384-Digest: nCGpqni5PhvfilXFqTcZFqMHuecWmpOBBxo9qT33++to8FC7lHET8mme
|
||||
CRhYvSF+
|
||||
|
||||
Name: res/Fx.png
|
||||
SHA-384-Digest: nFoYQyhtudi+28+gb4oxBm9H251uHwY/DdFpPtaXIwGYwKVkV+GZH+eg
|
||||
E/cHrZ24
|
||||
|
||||
Name: res/GY.png
|
||||
SHA-384-Digest: XEJB7J/SZcKhwhAdCOZVJ3njoYJPs8yO8Fkn4jM/6gAMmjwJMa4IGobL
|
||||
EaEzvX/p
|
||||
|
||||
Name: res/D7.png
|
||||
SHA-384-Digest: tSs46rj5U4lCXfnOZXxuRi+ycHb7/ZdbLWHPvidKEz10nXO6Ht3aN5nn
|
||||
4Px1AYCi
|
||||
|
||||
Name: res/OX.xml
|
||||
SHA-384-Digest: p98S/bb46KkP/lfdhRgUrDkoeioQIyPSjcifztyuhlLOLoTY0hNLcPLh
|
||||
k67yYrHH
|
||||
|
||||
Name: res/color/material_timepicker_modebutton_tint.xml
|
||||
SHA-384-Digest: VYTdPULKYZKR1m/NIFvWkolFxakR9ZPbO9A1qOLmBr61TWQfxVza8M6o
|
||||
UotbYMKJ
|
||||
|
||||
Name: res/5N.xml
|
||||
SHA-384-Digest: j4wXXpCjw+uLvH+wSOdOpJsSGT8Rx7W9JvJNR7xDEseiwEX+xeA/AA7w
|
||||
RtccHiHP
|
||||
|
||||
Name: res/color/m3_highlighted_text.xml
|
||||
SHA-384-Digest: NbKRnSQam26NpocRJ6Jy1z5ANNPW/1xW1HIuj1dCR150z7VFDnwCADau
|
||||
vrUYEIPp
|
||||
|
||||
Name: res/color/material_slider_active_track_color.xml
|
||||
SHA-384-Digest: Wk4MKTFpLX6rTo/mImK5IgVtD8r0/aaxA5phu2fh7pJQYmj/QdyjCvEE
|
||||
xEHhw7wI
|
||||
|
||||
Name: res/sH.xml
|
||||
SHA-384-Digest: C0MUdjZnVnfiZz4MCfYgv9LeC4DxgxF+E7mQXqCyL0xCdNvAVzhuuT8q
|
||||
n/tNkKEQ
|
||||
|
||||
Name: res/RD.xml
|
||||
SHA-384-Digest: O87vIPFgyoFjbbLsU6VuiCRa7AHWtOFUnAZKeJnto0Nu6WvaaLH3SmCN
|
||||
HtoIP3Dh
|
||||
|
||||
Name: res/iZ1.xml
|
||||
SHA-384-Digest: PNHzF0wB5hvjLCuXjCFCVaRvlRT34lrqmrpWdzt42NNz952Y9Qdr6QeK
|
||||
QKsBLhu8
|
||||
|
||||
Name: res/Uf.xml
|
||||
SHA-384-Digest: hKHiawrf9oDCFZ5AFJWZmUNbeWRFs34q0Pxu2j7MsGB3ipyMYjKg4fqc
|
||||
KUYrTy9/
|
||||
|
||||
Name: res/color/abc_tint_default.xml
|
||||
SHA-384-Digest: +cEAKrYwxe08txliaECcfiT8j7nJ3dTXS1Ow26P99gzH/Q5btStAvPVg
|
||||
QmpIX9Ql
|
||||
|
||||
Name: res/hp.xml
|
||||
SHA-384-Digest: jP4xcn6itWt3JYYB9smTtsd/DpN7bGJWl+vwykP52Ivm5EB4ixCrTE54
|
||||
3MdyqMHJ
|
||||
|
||||
Name: res/iQ.xml
|
||||
SHA-384-Digest: 5GACwHumBU/D6t7x1aXjSsHoNXJ4DJDpy4Yli7M9So3AkcuXN/6wCA1I
|
||||
+tsrxO9J
|
||||
|
||||
Name: res/JP.xml
|
||||
SHA-384-Digest: TBTPPmSqAaokBshQLbhyM9pY87T2VHDKrmNI0LXYJy6h1QJQ7aT2p7FV
|
||||
j8aK2xmW
|
||||
|
||||
Name: res/ZC.xml
|
||||
SHA-384-Digest: 85VUeF8N4BgRZiy32CQ5KEbpohcTbISUHcXKyE/AEGuinKsyB7ezH8fk
|
||||
OlKtdoww
|
||||
|
||||
Name: res/Fm.png
|
||||
SHA-384-Digest: 1N/9Ka8cugGI4poe/fFFuoHbzBYhTXZvYbCyrx75VuULL7LQYo6OJ0yJ
|
||||
XAJU8aq5
|
||||
|
||||
Name: res/aR.png
|
||||
SHA-384-Digest: ixG4AlR77XgbHgqltV8tQzO1OcKYp0ud1GLqeNg2QzjT6Ewrqemg6hfL
|
||||
MDOvC24D
|
||||
|
||||
Name: res/3-.png
|
||||
SHA-384-Digest: efP32L0TVK2LOQWJzKXma5zPqJZTrx4MNXyjzb7O8Zh+d0pTm+qLFN4Y
|
||||
Eni/cyon
|
||||
|
||||
Name: res/color/m3_button_ripple_color.xml
|
||||
SHA-384-Digest: 6mNkhk+5L5hM0GYIhA8so0FeKkJzhbY5GjLvnLTJc5ajPUQftN2E8NYL
|
||||
ZIXF1NMK
|
||||
|
||||
Name: res/color/epg.xml
|
||||
SHA-384-Digest: JgOXwRw8vpWNjHTB+/qP7HliA7eaJrmWNC8cE2VzkcCkIwGuk3Ldevj5
|
||||
Fzsuh99c
|
||||
|
||||
Name: res/color/mtrl_btn_stroke_color_selector.xml
|
||||
SHA-384-Digest: 4btJMMudcXw9wc6HFOTVPFDLHVhRFW79ZsQAxggE1o4boxHHv4DtB6ez
|
||||
QROls5eb
|
||||
|
||||
Name: res/AE.xml
|
||||
SHA-384-Digest: STCsBM7uAi7RAcpWDY1cTqS8pJsapCeKtsInTKElC7ESbegBg28iZmy9
|
||||
gcA2snNR
|
||||
|
||||
Name: res/Ws.xml
|
||||
SHA-384-Digest: VmyGzUaYiBT871UQ0XU+nkrhxFpKHGggG2Pv+syS+Z2WZzJJisVBDpAe
|
||||
1a7X10Cb
|
||||
|
||||
Name: res/XT.xml
|
||||
SHA-384-Digest: CtL6cAt/cDGsqs+9RZExHl3g1tMEudpaaoSej4P8l6DqbWc0Eayz7WGX
|
||||
NXPNQLbx
|
||||
|
||||
Name: org/seamless/swing/logging/img/trace.png
|
||||
SHA-384-Digest: 8CiW3HiZBYHjabJjE/OQReHmwk9ANZxpB/6cbcltfSDZt+xGfEfNAfhe
|
||||
LG1vdoi7
|
||||
|
||||
Name: res/color/m3_fab_ripple_color_selector.xml
|
||||
SHA-384-Digest: eg6jMYelAq46XEu2ubT0nrC2iYREG20EWtHpfO6GQ1++JAVGBuTPNOoZ
|
||||
71ulXMmG
|
||||
|
||||
Name: res/bD.png
|
||||
SHA-384-Digest: CgT03T0ti93Ko32vRf9R0JQUvUuCJlc84ymc/iFnhtD+3EsPDdRuzuFA
|
||||
Qo82J8RC
|
||||
|
||||
Name: res/a0.xml
|
||||
SHA-384-Digest: CgC7OKmsdbjnkysHsjVhqXvwg12RgqlAXuUk50tAAPiyGRuzovDXE3Ja
|
||||
0Z4Vq4gZ
|
||||
|
||||
Name: org/seamless/swing/logging/img/warn.png
|
||||
SHA-384-Digest: yuSioLxPoJZvz4qTayHzQyFM5CFDrbouYwvRicjY+0OIZt8SuFgY758I
|
||||
saS0mReV
|
||||
|
||||
Name: res/6x.xml
|
||||
SHA-384-Digest: DLmSQ0R2D3PCjeTBzMjY1VIOmkHT/zDKl7bW13sis/ufcu0UZJpOpL5N
|
||||
/tGYCoMC
|
||||
|
||||
Name: res/4B.xml
|
||||
SHA-384-Digest: 89vkhsXw3ZATt8egcEuT76/8tqvkHiCOmtC4Ruz3gqZILQoYbnZsazDh
|
||||
R8hwLwK2
|
||||
|
||||
Name: res/AG.xml
|
||||
SHA-384-Digest: Vc4LW7zzK685t5Pv81BkmByKGACiGeh4uge2CP/Fooo4enGxX0nouyks
|
||||
X4K8thaL
|
||||
|
||||
Name: res/U0.xml
|
||||
SHA-384-Digest: aWwxY4d9OSu9C0hcVvm4Mj7o8vEt3d7wl4RGNUgth/Ov83xx1uO9LVyo
|
||||
+WGhj0Gi
|
||||
|
||||
Name: res/XR.xml
|
||||
SHA-384-Digest: Qxc5/InaTxNheA5XEJLyKiTRihYKE2R9bsbBQyNfqSKEAI1AfLlA+9gj
|
||||
q7H0+ti7
|
||||
|
||||
Name: res/Y3.xml
|
||||
SHA-384-Digest: 4iteQY+nvmmzcDKYfX4YEez4NmVlfrZdp26dgmO9dGV5fsm5V/on+moe
|
||||
eIs49sI1
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/ContextHandler-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: 7jxuX7aC0VZxWC3BJ4iOK1s1dp7NHJxJLqF/FPkfcWYAbF0MU/SpP2vE
|
||||
REIUm6LK
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages.properties
|
||||
SHA-384-Digest: 6W25lH3ydRSnGB+pRHth139LbnOTgrodTLmhZO+WUlQ2UNCMDOqiSLK2
|
||||
oixbMokV
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_ja.properties
|
||||
SHA-384-Digest: cmdcgbA7fV8TE67neoojD2Yx9jw1VSKV2MdK5HRiz2X0K+avqBgPIiym
|
||||
JMo8G/fl
|
||||
|
||||
Name: res/color/nav_item.xml
|
||||
SHA-384-Digest: r3Y5O13b3dPeM6S6OhIDkCavzbc9plah32dPCD/apVB0JRftvE2v6px3
|
||||
kBKmr0u9
|
||||
|
||||
Name: META-INF/androidx.versionedparcelable_versionedparcelable.version
|
||||
SHA-384-Digest: ITmiWuAF+c+Pj4UAzIIJAQIn3XFvV1dCIdAHYoSmOJvKd6lWT5XSw1mI
|
||||
zzCA0Q64
|
||||
|
||||
Name: res/tp.xml
|
||||
SHA-384-Digest: K+Ng/iqk4ylzhaDiy2x9l1NSCpsR8wbhc44SM26QRr3+PcGSPJ6hKjgv
|
||||
RY6m8NQL
|
||||
|
||||
Name: res/color/m3_card_stroke_color.xml
|
||||
SHA-384-Digest: fVkycqTQHDkdVwYWIqfhwA1kRvwtydXi9r7M6eehacjP6DOSKtUVNJrX
|
||||
oX9xPbfX
|
||||
|
||||
Name: res/color/mtrl_text_btn_text_color_selector.xml
|
||||
SHA-384-Digest: 4aB1eTF+1KMws8nZIfYt7exV2Au5fBPJooATECId1s9fb2gWQaKo+5u4
|
||||
k9Pzo1sw
|
||||
|
||||
Name: res/ls.xml
|
||||
SHA-384-Digest: mmfdN8K0BTrHT4weF+1QDBcuJtNQF7gLtcSxOLnEshKKD7QDHNyM54Dv
|
||||
8JFuqfVo
|
||||
|
||||
Name: res/uL.9.png
|
||||
SHA-384-Digest: Ytayy12mP65CsWIk6holCaxxlt9Uq8iiYgEQPPa10v6XQrz0xU5xXKxu
|
||||
P3b9mBSK
|
||||
|
||||
Name: res/27.xml
|
||||
SHA-384-Digest: J/oS46CJQerPsxT4fwfyvFW4mlM4B5z32Gw4org9bmiNqlepe1SFOp8j
|
||||
LVtD+RO7
|
||||
|
||||
Name: res/2H.xml
|
||||
SHA-384-Digest: zSDqiRllATYoaJ1DlXvM4sBzgRt0WBLwmoJI8dEfhqpPexqHgeZBrVJT
|
||||
X1cZ7Z7J
|
||||
|
||||
Name: res/color/m3_dark_primary_text_disable_only.xml
|
||||
SHA-384-Digest: 7BXSdqbaKlmLte7ucuQAOIOGK9lqgGGtiI8LkOKcyLfz+/O4ByDxjAXY
|
||||
62DV2nVP
|
||||
|
||||
Name: res/Y9.png
|
||||
SHA-384-Digest: ixG4AlR77XgbHgqltV8tQzO1OcKYp0ud1GLqeNg2QzjT6Ewrqemg6hfL
|
||||
MDOvC24D
|
||||
|
||||
Name: res/Jl.xml
|
||||
SHA-384-Digest: EbzS8ugfZb74oqfYIyVUFId5uh6s8Wld5DdWGpFTmwykPspEx/4aMH7q
|
||||
ck+cxFG4
|
||||
|
||||
Name: res/xj.xml
|
||||
SHA-384-Digest: 0FC5f690i8x0RbTCbM3JMts/aoArXTS6tTmnUCYxxL1IFiR+C5K6p02b
|
||||
md//Rdzu
|
||||
|
||||
Name: res/XY1.xml
|
||||
SHA-384-Digest: hreTfFKV0wCmb3EpFOk/bYWTZkOzLVT9g/d2q4WiFciGZqq0SYaZc3kC
|
||||
aomnG5X1
|
||||
|
||||
Name: res/4o.xml
|
||||
SHA-384-Digest: mqI9DvoN4Mf+xdDOlj0QL1PBJVJxRGj8MYiDtkKlbnvuN/J40nCL5JW7
|
||||
M3Hj1wXG
|
||||
|
||||
Name: res/61.xml
|
||||
SHA-384-Digest: EuhTzI6TSc9BxQ7QAtefxvUOGdl1KDBaxR7EvhJlSU1ETgbgIZxdQH62
|
||||
Mc1Zo+0c
|
||||
|
||||
Name: res/ly.png
|
||||
SHA-384-Digest: t8j0+3o34MDNWsrvlbz8NMs6hEImU9enkScJ6873pNqb7bznYEHppW6J
|
||||
f2qwDaNs
|
||||
|
||||
Name: res/tg.xml
|
||||
SHA-384-Digest: RsHxOjyRzKPYWFsl78I9KNBuXZKcwRbFf7RVtp1vxlwIvrpJZaFv4E6n
|
||||
y5qws6YI
|
||||
|
||||
Name: res/Aa.xml
|
||||
SHA-384-Digest: XEeDLJ872ybiFFppBQwodAklQyFCaoMBMQWVtbrRBxdLTev7dPOwLoFq
|
||||
bZ8fAe4m
|
||||
|
||||
Name: res/c2.xml
|
||||
SHA-384-Digest: W28kAUa53Xq7pK28hBphrLOqVKVnc06rXNwZRDGdh+Xh46pqY3JO20R3
|
||||
eE35vpKK
|
||||
|
||||
Name: res/color/material_on_surface_emphasis_medium.xml
|
||||
SHA-384-Digest: XhOBVNP5h7KcrI7ceuMjS22a6V3JkjP9TUlH6cg9VP/5HMLhX/4yFDb4
|
||||
Pw/3SwhC
|
||||
|
||||
Name: res/Y7.9.png
|
||||
SHA-384-Digest: Gqs7POVW+neU7vEVU6o9Luffs3InQraH2EvdYFpX4w/1fRNo8fIaEvRE
|
||||
dprXcN/j
|
||||
|
||||
Name: res/4F.png
|
||||
SHA-384-Digest: f0xepWz23AgkFXG2phToRkYmCXEufIHjJGotxZlTm/MYOb/eUGlsESpe
|
||||
YJZFM8u6
|
||||
|
||||
Name: res/Bb.png
|
||||
SHA-384-Digest: Aw9tasy3yIAucr6N7QxJahCAowF1MdB7duiSPMuJxn9ULPtkKbPUqvoJ
|
||||
JuzSvp3f
|
||||
|
||||
Name: res/xo1.xml
|
||||
SHA-384-Digest: 9FUdZvQ7qvH8nBYnh5N/U8CW8QmNmbv/KUBzzQCqahBHeGVmGk02z/EI
|
||||
gdfHJYkJ
|
||||
|
||||
Name: res/ay.xml
|
||||
SHA-384-Digest: x9fqsGVobxLfYxeMBkspfUxp+BFQEXKrkfQAcfJprPln8mHljA+tl4Ei
|
||||
FlcfYN6N
|
||||
|
||||
Name: res/TB.png
|
||||
SHA-384-Digest: 4xtU22z3rtlpW3X0ktCR/XHIkdugMJiL3KEaOTxjT5/JK8MrziXUG1iZ
|
||||
kG/cRs9L
|
||||
|
||||
Name: res/ud.xml
|
||||
SHA-384-Digest: XnPS7KOIl7x19GlaN4Z/ATetY8T5Feo1g1U/dLPZ4AncbfOBFd7OtyMv
|
||||
wXLs//8z
|
||||
|
||||
Name: res/Wd.png
|
||||
SHA-384-Digest: il3cEnwWODS5BlYyxz54rHsKkj0uIaXRFhcht+pHqXjb/xVAr25ghGqT
|
||||
gFfSp+zo
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_hdr_internal_es3.gls
|
||||
l
|
||||
SHA-384-Digest: UVK8w0JXUHwo3hu/2uv3wNKb0zjOtdwtGp0m/+BAOtk0sbdKPVp1WuRK
|
||||
M0yWUfxp
|
||||
|
||||
Name: res/7H.xml
|
||||
SHA-384-Digest: OmitWUC3XbxRwRiXsTVHTkoCZdRf8YFwefEfUE/jDgP3H+5TRiZWbkAu
|
||||
6OD+ZjlG
|
||||
|
||||
Name: res/Z0.xml
|
||||
SHA-384-Digest: aJ0wxOlVIJNuDhf9sfOFwyqCOSekm5EAtCrsAF0IdDeEsVO/408im4rs
|
||||
BzDanItl
|
||||
|
||||
Name: res/rx.xml
|
||||
SHA-384-Digest: 72VL8zOvSD3AdDr7cCh9vKr/VQoHhurnRaCQpUTO+Q3lma7V01I16CpX
|
||||
L3mQmCdp
|
||||
|
||||
Name: res/color/abc_hint_foreground_material_dark.xml
|
||||
SHA-384-Digest: US+8sZcjR0nd6pCzeZd6r/OmcsFIObPuAko90SManh5YfqHh6ye67eu0
|
||||
4+kNL0v8
|
||||
|
||||
Name: res/MO.xml
|
||||
SHA-384-Digest: RW5+K5faVH0ivr0nYQhaAAdllFXybP/GKj2eEFq+AxFfHN/jlIQoy0gY
|
||||
QRxYaxeg
|
||||
|
||||
Name: res/N0.xml
|
||||
SHA-384-Digest: r1HXVe8eHB9VfUTT7pI0OruoK1BJcHmJuevEZAPLkLwml/g1PzNHgI7v
|
||||
FxUGrV/c
|
||||
|
||||
Name: res/d3.png
|
||||
SHA-384-Digest: zFefJChzivE8neVIAIvoy8EoUhdA0ei0cILbDkyyZQ2b1gqB7PlbqXs6
|
||||
VcKCztP/
|
||||
|
||||
Name: res/NP.png
|
||||
SHA-384-Digest: oSNu//U+Pjxfr7vcmaSIFA3ukotcDwa/d/CfmBAOkMJ1/YMfOEYl6duU
|
||||
ykN0A9TA
|
||||
|
||||
Name: res/Xe.xml
|
||||
SHA-384-Digest: Mw65DnIGGAmcoBiHvFLvI6O8Kymydieub4RduoOx4cOiqN6NUI5MrgSv
|
||||
vOdB0adc
|
||||
|
||||
Name: res/Mq1.png
|
||||
SHA-384-Digest: +uyF085+Mj5DOD9NaOzIzHu5xve+FIpIL4D1y4Q33BQGczkyuKdqdB8K
|
||||
plNZryAT
|
||||
|
||||
Name: res/S4.png
|
||||
SHA-384-Digest: iFdjCiZUjlyjqFoG6flvAK9HrIdqjL1eWobQ/pZP7pZYv+qH1M4BWz6A
|
||||
VFuAvEpE
|
||||
|
||||
Name: res/jN.xml
|
||||
SHA-384-Digest: Abe/380hXlxRFuCMI1hdhNrdj8RsLSNw5pUsZmptTYlDZQjXe9nLdlYK
|
||||
M8Fnx9cO
|
||||
|
||||
Name: META-INF/androidx.preference_preference.version
|
||||
SHA-384-Digest: GKqkS0cvyjjgH1wxhzzW5U7S04+7atOY/hnmeP/2ShskJ+QcyWqyhIai
|
||||
b/q/Jwoe
|
||||
|
||||
Name: res/Cc.xml
|
||||
SHA-384-Digest: LC5xrim1iwFEkMdAGhwV6pRWVs/naSWAag1F0g3kGtJKfUnE4aeUIm11
|
||||
JwCBzgwp
|
||||
|
||||
Name: res/tK.xml
|
||||
SHA-384-Digest: HxJMmPCg/Q8yM4JZbFi739dCZQupuxUBIZIV1Gc1beGOLcKfqWfkS4ET
|
||||
WlfyJ4fJ
|
||||
|
||||
Name: META-INF/jsoup/LICENSE
|
||||
SHA-384-Digest: ViHsbIXV5dTBU9sOu1ugX7WMZ8YkTf+papnZSWe/O7VJiEAr5Y9cQFkg
|
||||
4wu68l7o
|
||||
|
||||
Name: res/LJ.xml
|
||||
SHA-384-Digest: rwkmmcburSsXGuERMX+sNrbjvnvb4dqy7pO0cvzbopW9c5HicWlv/Uth
|
||||
9NdCz48S
|
||||
|
||||
Name: res/qn.xml
|
||||
SHA-384-Digest: 2pCH2Nw7mY6I7zhlhhZ1zYahP60a0DcE/RPaICJAvs6u+bBRAuS/iJr5
|
||||
2rMoy7c1
|
||||
|
||||
Name: res/sg.9.png
|
||||
SHA-384-Digest: AiAyJDO+qO2Yf442izLR7o3JPdGvjg0hZxLdP80/GlBkaM1sp9vm0Oyf
|
||||
cIsBkHm2
|
||||
|
||||
Name: res/Ny.xml
|
||||
SHA-384-Digest: yE8PTKZ2mjQA4+cl11chd6f8d+DcU1xT6ia0aXzfmhacWVw6vB4WIgpS
|
||||
IXiAF6sx
|
||||
|
||||
Name: res/OZ.xml
|
||||
SHA-384-Digest: yD9/k6dYGIU5c4j1GcNHb6krKYAovfxTe26aWMfRLnSOifV6jVhVuHBu
|
||||
Ey2IkNPi
|
||||
|
||||
Name: res/_I.xml
|
||||
SHA-384-Digest: OK1B0jksOt2ow6xS6EzNPj6ZXlohqyzctpHv1WCk53qK7K8Hjs6f0Zma
|
||||
LvT2/2EX
|
||||
|
||||
Name: res/NF.xml
|
||||
SHA-384-Digest: HG4o3ZXR5ZGdW8KWBGvGgVjCS9ofybrz4rfPJO15cRt5IAV/DHhVjCwk
|
||||
kVtMCwqH
|
||||
|
||||
Name: res/Bw.png
|
||||
SHA-384-Digest: v58rkf2BuRaPVe9ENSB34zklVw3fjmzOx4X0V1/WF5yIQdnvljvQATOT
|
||||
CB5YuXy4
|
||||
|
||||
Name: res/-B.png
|
||||
SHA-384-Digest: uP+RKCPNYv/hnZypY/E3sY8sxTcRyN8pVIIpMoFfALrQFhZruiBDn6wM
|
||||
V3PRDg2C
|
||||
|
||||
Name: res/Ec.png
|
||||
SHA-384-Digest: M9bScFtrwa9aBvoxY7EdHYRBWClDBZYUWDdWxsBzKTfa1aPSc/GQiZgQ
|
||||
FO0pBHao
|
||||
|
||||
Name: res/8h.9.png
|
||||
SHA-384-Digest: xDIHONZDaO44ZoidA//Tq44Kwx6kaD0+q2dimEjfhnsVOZI7dwIvX/M1
|
||||
ba7GemcK
|
||||
|
||||
Name: res/1x.xml
|
||||
SHA-384-Digest: hl9fMBXqXbJKnt90FNZO7se4+OC/cSfXB77sMVqwxEIIFOXD9kRO7Xx2
|
||||
uKA2Oemn
|
||||
|
||||
Name: res/QK.png
|
||||
SHA-384-Digest: jOnxz+QpZ3aNZFYnQuC872fBQGm1VhaUv5AG88wYaLDCi7QZQ7+5idP8
|
||||
cjF3esyP
|
||||
|
||||
Name: res/eD.xml
|
||||
SHA-384-Digest: vTMINW8ChyCqn7vRIsvJ6ge1fHgZpl4IWXuluXoR1JDRBnkooW8JU0FN
|
||||
j5Td/X+a
|
||||
|
||||
Name: res/DZ.xml
|
||||
SHA-384-Digest: d4RtPmKf6rNI3eI8tfSIY35zGAYjSLiu4twfoN/0IQBDOo9dfAreUhG8
|
||||
lv5Af4Z0
|
||||
|
||||
Name: res/7C.9.png
|
||||
SHA-384-Digest: H5viSNbscgmAQfeWRNZ6cf2lkJqD2RdywALYU92x0/a0YB3N0swApG49
|
||||
+NLAEm3q
|
||||
|
||||
Name: res/8K1.xml
|
||||
SHA-384-Digest: 8JRvsrI1nqlGTSUOLw10++AoaRwu/0lFexgR/aLa8Rk+4mIvupFpsXii
|
||||
5VO/RwtJ
|
||||
|
||||
Name: res/color/m3_tabs_icon_color_secondary.xml
|
||||
SHA-384-Digest: 6Frh9d8825buIgMA4BrcJiQpR+GqNnP1g/ILbRYCkzuPdqZiIAv4eWhY
|
||||
NEHJeu0T
|
||||
|
||||
Name: res/Mt.xml
|
||||
SHA-384-Digest: RLjtZ031TiPR/kqGUTNqKgi9Xhu6+rcjFF1AiwFgy6cEgRQJEFlXRHNu
|
||||
G2977KFh
|
||||
|
||||
Name: res/D5.xml
|
||||
SHA-384-Digest: +FytlO28nUviow0fmJrPud2owt2mXZkt4fE1sUONqlkoNSTtWL2nf7+u
|
||||
bEtQ2ONC
|
||||
|
||||
Name: lib/arm64-v8a/libavutil.so
|
||||
SHA-384-Digest: 3l7puU488sFyoI8ANVfrzQcS4yjmyukXK5mzm6I+5uJQPRO6shnwbY4r
|
||||
PLxfTQBQ
|
||||
|
||||
Name: res/color/m3_chip_assist_text_color.xml
|
||||
SHA-384-Digest: fSlT0iRm/TgSFTcq+cs9gSNXXeVSKbtPVeY2CaYY/w89p/4sFGYClhVR
|
||||
7/4jXcK0
|
||||
|
||||
Name: res/dv.png
|
||||
SHA-384-Digest: O9R8a6v3whFVK+WEunyWZ5pFPoNu7Fm88ZwQu1s97PtnzIskxodfBAzD
|
||||
kcOC3nYc
|
||||
|
||||
Name: assets/shaders/fragment_shader_alpha_scale_es2.glsl
|
||||
SHA-384-Digest: fkULVpGYaZwAnvFy+Nz9f7Rt8d5d44QScof8ZvtlDqrW8cssPQNWE9Yf
|
||||
3D4+TF4A
|
||||
|
||||
Name: res/fg.xml
|
||||
SHA-384-Digest: RhIx5iOsSp6/gpe/bVfNxL3jSjYz0VGfBO017N24uIkxobAg5E9pj0rT
|
||||
9NYRxQiZ
|
||||
|
||||
Name: res/kr.xml
|
||||
SHA-384-Digest: m4M5gJirmYiD1dVBUhlZ7CVDA8yZbGAoMTEgLYYc51/OZKLA1NJS5hOS
|
||||
R409nSJd
|
||||
|
||||
Name: org/seamless/swing/logging/img/info.png
|
||||
SHA-384-Digest: Eduy+0FYIVYttTxaoVLCUqS582Gx92F4aRJS95c9oEsPyPpdNithrRJ+
|
||||
MNcnc+4J
|
||||
|
||||
Name: res/QZ.png
|
||||
SHA-384-Digest: WCFoNf9Yv1lMuKScbwtVIGF5bi6yFMkFwuPMQoMzG8sA91TF597crAL/
|
||||
ueoYvhso
|
||||
|
||||
Name: res/ZL.xml
|
||||
SHA-384-Digest: SuqCzbPi4AJJ3KWWxN4SfklV9sUyrygsTHQWrMpxbDwApaUEr/eYuhxA
|
||||
m4IW2CCm
|
||||
|
||||
Name: res/iZ.xml
|
||||
SHA-384-Digest: EZhsoEtVLCGgnrK70UeP21cDKml0DgofTqd+DP6MpLWn6XaK37fhO9Eb
|
||||
Vbpfrjn9
|
||||
|
||||
Name: res/RM.xml
|
||||
SHA-384-Digest: VaeXv2DYn5jn/W2FzJH3rh6UyW7KqYgLRGEXAJD1VCW3Ybyzt9O4oYIL
|
||||
GAn5t8UM
|
||||
|
||||
Name: res/w7.xml
|
||||
SHA-384-Digest: rkEWDARRtpBGvwnT8rxnlmvSN/qZYptahm8uweURXiY0woorLGiI7wuf
|
||||
8dfX0xi2
|
||||
|
||||
Name: res/aT.xml
|
||||
SHA-384-Digest: ZeJVqlT7qHrzzVUj6fC9oo+Flx4DQO5JAr7oKXHDfwPz9t5rp7i1LNtn
|
||||
Cpob4gQX
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_ripple_color.xml
|
||||
SHA-384-Digest: 56r7LtTtHv5UbmtHSyTvLdw/7Lk6A8gp45sW1o1A7pprM5InyXMZ3miR
|
||||
osclmmhV
|
||||
|
||||
Name: res/nm.xml
|
||||
SHA-384-Digest: skN89GDXuPFeCP2HRI+zb5uWDRsv2om8/GbYfuN3UQjIHOxcldqhSQxK
|
||||
E0Wj4+nr
|
||||
|
||||
Name: res/kJ.9.png
|
||||
SHA-384-Digest: gU1brKsptY+eqlKVBwSRMira+gfhBTzRfkoGFY3v0MW3Jz41+DnHPYlE
|
||||
YbxH7PLu
|
||||
|
||||
Name: lib/arm64-v8a/libxl_thunder_sdk.so
|
||||
SHA-384-Digest: KAmd0g+GJBnS6qsrxYh48e0SfMRcNSmZZrVS18gglwlMnwVkFqJjBdXB
|
||||
oh3RvDh7
|
||||
|
||||
Name: res/color/m3_timepicker_clock_text_color.xml
|
||||
SHA-384-Digest: G3kGrZMi5itk/o0FhncF76K8wC2mcGJry2fsgy1iyx0fNO2XOPs2CM5y
|
||||
JWcuMtmK
|
||||
|
||||
Name: res/yO.xml
|
||||
SHA-384-Digest: HhvWKpoADSombJJnYd8a9tTTZ1WoF+xHSSEDUm+r5aPZRdEI9lCa/HZF
|
||||
otY2MD+K
|
||||
|
||||
Name: res/9N.9.png
|
||||
SHA-384-Digest: ggR+zN/xoRl8E9KG8cUaTHDgS82KCy7GAAI7nw/6rX93U3nihupNxGF4
|
||||
G4lS38oh
|
||||
|
||||
Name: res/Ha.xml
|
||||
SHA-384-Digest: QQm4O43EVMCiYo2pc1C6eyOMXwA14izV7HHKZpUCuAReUOSPQy+ygiHQ
|
||||
2reXEeAe
|
||||
|
||||
Name: res/s4.png
|
||||
SHA-384-Digest: 2OwLZAobfG15CgdiNAMv47TdB5k66yM2l50fLuoiy2FJWmmYG72iTJH6
|
||||
SwRCKLhX
|
||||
|
||||
Name: res/uU.png
|
||||
SHA-384-Digest: LKn/uz/4hCrcfXJgwQCexQ3md//jDtCeQbuohYCNSFoNK4v75U/Lcigx
|
||||
+ZHe6LLu
|
||||
|
||||
Name: res/AI.xml
|
||||
SHA-384-Digest: Evdb0kT1ggdtli17h5dPWybwoebhasmCPAUihLUFp1J2W8dCbYvvNda+
|
||||
zZZJOCxC
|
||||
|
||||
Name: res/_p.png
|
||||
SHA-384-Digest: YO3nwOv7zwgGdijpktjr8EcVt3G22SmAnRw1nZLLGbUz7gRlgpDD5G2C
|
||||
iGAhJ+95
|
||||
|
||||
Name: res/aa.xml
|
||||
SHA-384-Digest: 2Oo/fB1gz6O/SN8WIFxUo5Ox3/aIq+bEo+WeACqC6qfzCM0wvX4YLUWm
|
||||
55PgKD/c
|
||||
|
||||
Name: res/Bd.xml
|
||||
SHA-384-Digest: dVr1FaOzMZijrw4vn2wh+iT5KR6vl2tpy3a0gE9hk/1zl++qQu4XxoTK
|
||||
fVoPy5TN
|
||||
|
||||
Name: res/VO.png
|
||||
SHA-384-Digest: A2r2n7eYEqEv2s5ZuOdpejvC0rA2PsKuP8COl2sOjxhyNam5eUPsMmpA
|
||||
7onV8pPJ
|
||||
|
||||
Name: res/UF.xml
|
||||
SHA-384-Digest: 4rN42XxYRgN6KaqIJErng3XB0+rYKS5vtxMfPvRyf4v/21zb6XmA7LpT
|
||||
9jQy2GsS
|
||||
|
||||
Name: res/ln.png
|
||||
SHA-384-Digest: ySHTAqavGGBtIBLhAJsSnJvuAVt5RFEaZQXJMlf3UdjyilpHh9ZzwThv
|
||||
bLFM1OsX
|
||||
|
||||
Name: res/ti.xml
|
||||
SHA-384-Digest: P3SywT53jXo/lgiFDbhQ8Lo1PXIhl6bAKdvG4SkuMH7YkzEiGkayOenP
|
||||
UdAWU298
|
||||
|
||||
Name: res/uJ.xml
|
||||
SHA-384-Digest: D5URXOCqC9eHPUckNhPGqNFt+u68oJ1QSRNynpH1noFH171SMfLJ/2Pe
|
||||
/OhOvNYj
|
||||
|
||||
Name: res/MF.9.png
|
||||
SHA-384-Digest: 2ad2Qv8xmkNXf4xgeYfM3vuEbGsu7Kb5khx2v9+8rWr4qJqZjwHCAEgC
|
||||
uPKw9Vf0
|
||||
|
||||
Name: assets/dexopt/baseline.profm
|
||||
SHA-384-Digest: IZ1dIeQZ/1IR81sTqPgCbTVjvhWD3RPb6Mdjcnb2pzsjQu1nWz0bTU51
|
||||
UVJSw5m5
|
||||
|
||||
Name: res/L_.xml
|
||||
SHA-384-Digest: IjDZ1Dv47Cqf38nRtJM//o1BeDKkAnEjNzAzpq+hssCZw6q9zuH7pWK9
|
||||
5b4lO2so
|
||||
|
||||
Name: res/color/mtrl_choice_chip_text_color.xml
|
||||
SHA-384-Digest: wk1r68gBTOfcGkMw9fN/PBVPowMFRv5bN24b60iAXWalEIMLU7sVhqTj
|
||||
cE+iW4Zj
|
||||
|
||||
Name: res/7N.xml
|
||||
SHA-384-Digest: R82W2SlnSoR/7xRQ5J+hQed/kFqXQdGXEVzSJDP3e2Gi2/F6jAPhUEtp
|
||||
MmR4Nf7n
|
||||
|
||||
Name: res/TV.xml
|
||||
SHA-384-Digest: MIGDf/pDZ5PZiKRfzuSpMNg5xKLh/Alto1Rvu9IZniMXEcl9/hUpXKk6
|
||||
XIFCf0o6
|
||||
|
||||
Name: res/U7.xml
|
||||
SHA-384-Digest: /WGGFmM8PBQyCLVI5ZvpT6kZCdvld1JFCrh5lQVEamuooumbOTWlY9ec
|
||||
E58wH7Pb
|
||||
|
||||
Name: res/color/mtrl_btn_ripple_color.xml
|
||||
SHA-384-Digest: zOPxzh4xhLNq+vcYs6NubGkXZpkUp9/9TB+/l5UTNTWKgy/RDEgv0NVC
|
||||
8mPCq4fi
|
||||
|
||||
Name: res/sS.xml
|
||||
SHA-384-Digest: uJ/vbsBCYG9hHtXcnUzLFdL1ht9QUTfjCjb/5vNpjhVzkFHuMij5sJ1j
|
||||
wqhPXkcJ
|
||||
|
||||
Name: res/uO.xml
|
||||
SHA-384-Digest: hoE/TUVgAnofPmM54c8VXvJkri1DNqkN5NgW3nkTHB2BbkR5TM/zhkPl
|
||||
IHiL2fde
|
||||
|
||||
Name: res/yS.png
|
||||
SHA-384-Digest: XyTbF9rGkMJGrlkRbMTYUw4jxdi0DFqQw3CQ9ji9zyMrNtAn7miVDdih
|
||||
AFye0d2z
|
||||
|
||||
Name: res/271.xml
|
||||
SHA-384-Digest: r9HBwxF42YYQaLucu9ilwJV1NXo+pVDe2NTwRZmeAvRtCjZZ4FaWeGdL
|
||||
H0pbYTVs
|
||||
|
||||
Name: res/GD.xml
|
||||
SHA-384-Digest: wO4MOGh/SINeks1VkQRPYf4u8HQj/5n8rho30ahBHiMKvDMcQHBRmhUt
|
||||
Ob7f3gqz
|
||||
|
||||
Name: res/2f.xml
|
||||
SHA-384-Digest: epyEEoOMNbpXNSjCQxyAjB5B0smUTNtX8+0fr97glP5wlCRnG5w5NJL8
|
||||
FCV7KUh2
|
||||
|
||||
Name: res/zn.png
|
||||
SHA-384-Digest: LoOYvTsK2SfJXsq5kYIEUOkuQpPZT4pVaj9xtp3ScT15d22zib7GhNzt
|
||||
vCRwRtdR
|
||||
|
||||
Name: META-INF/androidx.appcompat_appcompat-resources.version
|
||||
SHA-384-Digest: eaHeL1EfjzVJf22et7imyaY2wksxjKFFqnVvKnq96leidLMUZIg+yR8I
|
||||
k7wnMpIm
|
||||
|
||||
Name: res/color/material_personalized_primary_inverse_text_disable_only.
|
||||
xml
|
||||
SHA-384-Digest: Gzv3NlUxRP0LxyFNStTyIMwk0aFgSn7CilTSRihK0SN+vK+XbrB5ZK6k
|
||||
8Ylv3uwt
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_fr.properties
|
||||
SHA-384-Digest: k7pKBttUFThviqjg9AH9Pbpe3uctVDSmATdIzSc7x6HStdzNULsjaDwe
|
||||
E4gPBCmw
|
||||
|
||||
Name: res/color/m3_icon_button_icon_color_selector.xml
|
||||
SHA-384-Digest: /IdHLQMg73o7p3TTDegeqW7cZ5cR8vOVVLjALqBBRviGEsnMCyhwJNH6
|
||||
w7Fz/TWT
|
||||
|
||||
Name: res/JT.xml
|
||||
SHA-384-Digest: sU2o43P2OF65jtPRDU+yWhhPPfLM2L/fj/+MuoMF02PNdhnqJWrHTLqr
|
||||
R5WfFHSM
|
||||
|
||||
Name: res/K5.xml
|
||||
SHA-384-Digest: drYIOc4Dh1IarwVtUPFCWq6MlyOOkF9juR49Ccv5KiS9ooFMVKlrOX1U
|
||||
PpEZ2JEC
|
||||
|
||||
Name: META-INF/version-control-info.textproto
|
||||
SHA-384-Digest: gGFOh1MU6tB9eTGE4jZBVqAFNy6FGv4HMC2TBzd3zD2h7/u8/OQba6Hp
|
||||
NzoIRdev
|
||||
|
||||
Name: res/7s.xml
|
||||
SHA-384-Digest: 1SkZFgR4Hd4l/xB4NY4AHd3iZDzKDMj9UZbmfYz0WZszz+1lGqvwVe6W
|
||||
mgP4E+fN
|
||||
|
||||
Name: res/IX.9.png
|
||||
SHA-384-Digest: doHE9wiuzOYqprBdiDFnxEz2Sbwr7amez5Ph453BA5pODIcq4w6HLCj4
|
||||
/bxOzvAQ
|
||||
|
||||
Name: res/color/m3_efab_ripple_color_selector.xml
|
||||
SHA-384-Digest: eT68LMacvXC1fj60Vj8tehhVlx7l/Usk/ffoJnO5CgvNRh6ShNllUOV2
|
||||
qsZuUUDL
|
||||
|
||||
Name: res/ha.xml
|
||||
SHA-384-Digest: 19IyIjiOD1EpyjfO+Y1hxgthY1mvMMyyjnFZC62N7WZWeDKqkq022y6n
|
||||
Egd0lEDg
|
||||
|
||||
Name: res/MD.png
|
||||
SHA-384-Digest: xXapRsGlAta1YZCxwRFqQkwPko5MZuXnZbeg7ODlRYbZaKsow/yH4dp7
|
||||
n+44SiVv
|
||||
|
||||
Name: res/LA.png
|
||||
SHA-384-Digest: XWlrxDpAS8u7Q1l1QxxAIE2wlxuuMI0fyYX6cGkyYikN8oQ8AfbZgVcX
|
||||
Q9TbaD9J
|
||||
|
||||
Name: res/gM.xml
|
||||
SHA-384-Digest: tuKEO3w2ja/9W8kMEh8cJugCaJqpUrEYuSLl5hOFfaQ4x8fVsNpR1OCp
|
||||
uvd1ubmQ
|
||||
|
||||
Name: res/Ap.xml
|
||||
SHA-384-Digest: zq6SkWRC1VN0GhrAzgube6RgbplPj9Ya8IH+Cf9L608G1Xci0Kgd+KAx
|
||||
ndJjfeSa
|
||||
|
||||
Name: javax/servlet/LocalStrings_ja.properties
|
||||
SHA-384-Digest: 0whv59La2MnhC2tszdRmkEaiAdM+8rvu9F6VEXD0Ga06TW6VExR5/aY8
|
||||
YWnNT7dJ
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_en.properties
|
||||
SHA-384-Digest: UNJ6T6tczbXhkCoG3dkevMdcLg+sp67LzXRm1UPRDh82KXm61u2riQxF
|
||||
8Jpujl8W
|
||||
|
||||
Name: res/1v.xml
|
||||
SHA-384-Digest: T1ZZhjeMmfT6X4VlqcV6qFnKVxbfJxDDLGkLkTxwiARIt1MwWxbhJRC4
|
||||
sw8l5iQV
|
||||
|
||||
Name: res/FT.xml
|
||||
SHA-384-Digest: /Tn4jkhptLDU21Sm9af5refLpcucMgf5J04NDVoJcSUz++517+qAU+mB
|
||||
yU8Q7R4D
|
||||
|
||||
Name: META-INF/androidx.appcompat_appcompat.version
|
||||
SHA-384-Digest: eaHeL1EfjzVJf22et7imyaY2wksxjKFFqnVvKnq96leidLMUZIg+yR8I
|
||||
k7wnMpIm
|
||||
|
||||
Name: res/OM.xml
|
||||
SHA-384-Digest: Pk3ZZFc7vs9Fk61XaaJqB2t2NE9eh67HkVdY61Rs4DvccO4CaLqqSPj8
|
||||
OtFi3Zny
|
||||
|
||||
Name: res/color/m3_navigation_bar_ripple_color_selector.xml
|
||||
SHA-384-Digest: j3gJqwBJWKv88cbE1SvQ1RevlfZPNRcF2TtaZ0T+J1ZUj9tqQ8qBiIfz
|
||||
Rec6cSrh
|
||||
|
||||
Name: res/Ro.xml
|
||||
SHA-384-Digest: vXzH6kDbv7f8tSB9N5BkQ3Dd8SH8u/ZXL6yhyJ9zP+7OAxQ7T5b34bem
|
||||
twya4uGz
|
||||
|
||||
Name: res/color/abc_primary_text_material_dark.xml
|
||||
SHA-384-Digest: IIL1IBbOcY5V5UzxPUMpreYsOLgdSk1rG3jfQJKyk2mIgMXEAtiWZ8eB
|
||||
uHzEIEXd
|
||||
|
||||
Name: res/Vv.png
|
||||
SHA-384-Digest: 8QLkFuMKDYWz22Glwf3/2E+aqx0kl7dasq7BvizRtiw2b5UNWzgqW/zO
|
||||
eMMi6as9
|
||||
|
||||
Name: META-INF/nanohttpd/default-mimetypes.properties
|
||||
SHA-384-Digest: nD23dZkeklqjuHt5QiNIEXhqmaL+PQiIUhJ/epn+ZjxhAXoXoPZaPD8I
|
||||
xPfp/5b9
|
||||
|
||||
Name: res/vT.xml
|
||||
SHA-384-Digest: 0RY35aGEjCZJ5HPx7FZ7Z8SBAzHRobGw6bRX8tVi138eUZkT3oE5VmA8
|
||||
Nt3yMese
|
||||
|
||||
Name: res/Yt.9.png
|
||||
SHA-384-Digest: kzU9y2sfutUNRkdGSA9/zgHNuE62c9b3o46DN2rw5C6xonDzIDq0CpDP
|
||||
bzHkhkH4
|
||||
|
||||
Name: res/color-v31/m3_dynamic_default_color_primary_text.xml
|
||||
SHA-384-Digest: TO6QRxCe/6nvHhcsRCSkFP9gC6dRkVbCx2141h64UM/c1DB/S0jkpQhW
|
||||
svPFvYZf
|
||||
|
||||
Name: res/color-v31/m3_dynamic_primary_text_disable_only.xml
|
||||
SHA-384-Digest: orANmbwP+rU7s2LtWP28VC8CqIl0fOneFG4dlz7oCSUvW/hZba4aKpIy
|
||||
ndm9o+zV
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/ContextHandlerCollection-mbea
|
||||
n.properties
|
||||
SHA-384-Digest: OGl1mLRR80KPNpLNZ3bqYNyu0I1oO4XraGM2FP26SM+CxZH26NXF+AWJ
|
||||
gnpk+eDA
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/upnp-cds-
|
||||
1.0.xsd
|
||||
SHA-384-Digest: vbtYZM5z7uQijNziwK1o1DkJZLMkMVNXzwO5TuCOy0s7yb4Y80srOKKd
|
||||
sVlSX3zP
|
||||
|
||||
Name: res/dt.xml
|
||||
SHA-384-Digest: F9XN9mEK5wNjDqp+PBbsuYKtmTJ95PdX2A53ZYzNwN6p8fS+oLq4mZY+
|
||||
5K+1HSEf
|
||||
|
||||
Name: res/f6.xml
|
||||
SHA-384-Digest: 6yggPWwwqX59t70cqYIrWl6zj6rEuhxEC/jAqrVWDwZhLb5plgwIqAHW
|
||||
2mS3G0PZ
|
||||
|
||||
Name: res/DG1.xml
|
||||
SHA-384-Digest: ezq/LvuRslx+WqdI41S3Yk7KS/oI803o0ePQnN6/FZg4/lXfbuALFtnv
|
||||
NDxQF6Fi
|
||||
|
||||
Name: res/v4.9.png
|
||||
SHA-384-Digest: 79T+Vgai5qCGcFJv1JUkpr/EkWgcrEExz0vkFuRDf89YiA+LbHz7V9Le
|
||||
IqNzJFBh
|
||||
|
||||
Name: res/j9.xml
|
||||
SHA-384-Digest: mHCm8zcVMpbqks6I1INjWs540gs3JvV6FSHQJXAapTy7oTxARJukcbxt
|
||||
YXD4AHCF
|
||||
|
||||
Name: res/hR.xml
|
||||
SHA-384-Digest: ljlc6ecB01NtKyh3tA2787k8xtGk+o0v0VEU5FKV/82H36N9avuq/fDc
|
||||
/ncO/91z
|
||||
|
||||
Name: res/X3.9.png
|
||||
SHA-384-Digest: xzLmZKP6rLKmCEFGTrym4C/8Ng+Rouj6MlL6CKhVAby8FFrt79JWZ/xg
|
||||
f0t6Y0GT
|
||||
|
||||
Name: res/yQ.xml
|
||||
SHA-384-Digest: U7MtcDWKOdwud7QPrldkJhRZVk4fwjdTl3fKXIJQwTJtWWaAYVVNXMug
|
||||
ZQAz6KSc
|
||||
|
||||
Name: org/fourthline/cling/support/avtransport/metadata-1.0-avt.xsd
|
||||
SHA-384-Digest: 7tHhYdaGyq5fLuFLJj3/1z/oHFiRgrd9T1tR6PPFr6wPJba9RvnnJAkl
|
||||
Yo7FocP6
|
||||
|
||||
Name: res/color-v23/abc_tint_default.xml
|
||||
SHA-384-Digest: TuBN2yq04BjMfVeUdZZ2Y46TSd55fm78LKjiUZ99FfyKklWMOkDRsByr
|
||||
pysiUGnh
|
||||
|
||||
Name: res/dO.xml
|
||||
SHA-384-Digest: 7U1TFI7WQ0QfRiZMl0dmhpK/3xSHN5LMJte05WhrVRpG33Af+aCkPMEN
|
||||
gUHT5Ss/
|
||||
|
||||
Name: res/e0.xml
|
||||
SHA-384-Digest: MxXwdYD/nzmyu+H1K1VCv3Puon0iMrdPigvP5G+kc7OWBvFxEwwSboXr
|
||||
VI/FSw+6
|
||||
|
||||
Name: res/E5.ogg
|
||||
SHA-384-Digest: pesmkgsmSvw3VnqjX7CkkiYqpqpScINItj/oQ4ECrI4ckORao+xRNGO9
|
||||
Hb1LGOb3
|
||||
|
||||
Name: res/tI.xml
|
||||
SHA-384-Digest: M9z61ZS+71HaIQESAdGSnB3OrJsQlT3FmEZvmysE66+4UKrJjCN4FMKq
|
||||
ouJvFh3W
|
||||
|
||||
Name: assets/images/ic_push.svg
|
||||
SHA-384-Digest: vTSiCvxE/OigXXlx5oa7Go1Yivk138lH3DuURD3Ioyyw6wOvFaTIKk/c
|
||||
Uo8Ev+NY
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_es.properties
|
||||
SHA-384-Digest: HYhyrC+zKUyUh1TGLwLW+liAiiBJep4UIo7OaB2klraOTxf0VEDgpX51
|
||||
JUiBR3Bw
|
||||
|
||||
Name: res/y-.xml
|
||||
SHA-384-Digest: pt/D2JIvAwGE/mcAz1TE7MrosLvJJEf2eGMOeOP3sPLEwlJabiH5/QSr
|
||||
7fHXoXdz
|
||||
|
||||
Name: res/Zu.xml
|
||||
SHA-384-Digest: 2oYDM7k0HpKBOJIYYmM553hlYdhmmdUnSt+sOJguAyycfFcvXCCjeCWE
|
||||
H+WSMO18
|
||||
|
||||
Name: res/1R.xml
|
||||
SHA-384-Digest: dbo9YreIw9FvDO+IAi7S1jIf8MNOIyRll5oZLhL17hu9+s7Mo6yp6r+S
|
||||
/nv24S6w
|
||||
|
||||
Name: res/color/material_personalized_hint_foreground.xml
|
||||
SHA-384-Digest: 3psFY0cItHmAcHZP9BR32aNf6qfTubzXhC/8Kw0Q/J2sr8qzQD7Dl/iJ
|
||||
1XrSQalY
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletHolder-mbean.properties
|
||||
SHA-384-Digest: ZDTBPn5ffe1Nig2+f01GuT9wUTAZ3dQzkDaMecbri+Hi2Uw1qu9Y61bz
|
||||
eCtqRST3
|
||||
|
||||
Name: res/NH.xml
|
||||
SHA-384-Digest: Q9MY/IubMWW2SCjzuf3ORNJ33GSJG46WgOHGRm7dKNKnWlK/Q89Vxf06
|
||||
prujjUCP
|
||||
|
||||
Name: res/color/m3_timepicker_secondary_text_button_ripple_color.xml
|
||||
SHA-384-Digest: 51fPiBaGB7KnSWeOHoNG5cx3C5tmYQUsCHVdxPrAJgvv2qqbiS058wHJ
|
||||
L1aXwrZN
|
||||
|
||||
Name: res/Id.xml
|
||||
SHA-384-Digest: uYctzZyXBSk3xJgFY5MHVg/Q4fuf+B/merJWC/6T16T4weQ9ZdooiX1S
|
||||
k50NEReE
|
||||
|
||||
Name: res/_G.xml
|
||||
SHA-384-Digest: lsbWydKreQNE+AOITXWCCowRxWcRK9+wZo2Mw3+SCCuQQTVCaLmP/xbl
|
||||
ynVUZZFh
|
||||
|
||||
Name: res/oe.xml
|
||||
SHA-384-Digest: A7fLgYlQTa/CsYdswuhpqR6Zpboqm+XF4pI0gHodH9v0DYzUOqMHOxlk
|
||||
6uAwPKNv
|
||||
|
||||
Name: res/pF.xml
|
||||
SHA-384-Digest: 9q7+ocL+zBucqnA29irC2643jApt8NNb4Nb+8iacUy7tfdHt7aSRk6A3
|
||||
9RwJheVo
|
||||
|
||||
Name: res/Zc.xml
|
||||
SHA-384-Digest: EhOrezFJMJ6JYGOBr32Tm8JcRS12ageu8Yec0c6m/RYYavM59l0hT/fF
|
||||
Q0RM5BLx
|
||||
|
||||
Name: res/bV.xml
|
||||
SHA-384-Digest: 9VwdIpAiU2qi+wWbQe3l+wiDlUrPj+ium0yOKSMLUk3YiAxdGR06jyfd
|
||||
TL7F1RSz
|
||||
|
||||
Name: res/CK.9.png
|
||||
SHA-384-Digest: RgJYONI3xwSvgLI5NfoZOh8K6z0gG/du/2g/F9EuaJRsyWznBeWfweRY
|
||||
vJWweHLg
|
||||
|
||||
Name: res/KM.png
|
||||
SHA-384-Digest: 8PePXpJHALzLpkBJ5ltlT0cS7rq7AWQ9eIV4ENY9sRIBFHabMsKrJlqE
|
||||
0mhSvD8v
|
||||
|
||||
Name: res/3a.png
|
||||
SHA-384-Digest: BXYUW6quMcuZ7j4emaCFqTXNzVOh5ZlDHCEpA0Du7jR6sd0dqAssJePv
|
||||
ZarRo5ty
|
||||
|
||||
Name: res/kS.png
|
||||
SHA-384-Digest: bhmOg8yE/9EcycrtrEDJR3F8G5zoH0kCjDk8eSuz6v2gWFLl4LHWPz0k
|
||||
yH3Km2yK
|
||||
|
||||
Name: res/7R.png
|
||||
SHA-384-Digest: nbTnan7PqJc0qx7X0Yw1a6XUa++cAyLlcl3AQBQ4QBEyeffe6l3vBBAV
|
||||
YasoELbD
|
||||
|
||||
Name: META-INF/androidx.cursoradapter_cursoradapter.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/t6.xml
|
||||
SHA-384-Digest: Dle+AYBy66QI3rPYpySdwd6gicj369o7IxbU6rJpxMGbXgeKzWUcxGjy
|
||||
6lugNIJe
|
||||
|
||||
Name: res/HQ.png
|
||||
SHA-384-Digest: r+pLCLUIxDEdlJyqfvbw9AOfEyTuBCAZfloU2C0j0JXZr1CzKHMkcAix
|
||||
8pCn7poJ
|
||||
|
||||
Name: res/jn.xml
|
||||
SHA-384-Digest: M/uDVJIcrwUZAF8o97zOBDZwFmMnTgZJSQvvSGIq9ObziP88fMhKhgrT
|
||||
cLe4N1Bm
|
||||
|
||||
Name: res/VM.xml
|
||||
SHA-384-Digest: HG4o3ZXR5ZGdW8KWBGvGgVjCS9ofybrz4rfPJO15cRt5IAV/DHhVjCwk
|
||||
kVtMCwqH
|
||||
|
||||
Name: res/ZP.xml
|
||||
SHA-384-Digest: lg83nkFGmAorU7qPGwxJuMDzg8Xnfx6PQg/QJIA/ASu4QIrbBrZH7I9B
|
||||
/BT0I8UK
|
||||
|
||||
Name: res/IQ.xml
|
||||
SHA-384-Digest: at7S+bdv2P94uDPm24ZtiTPBQpLDenv1yV7bS2xfR2n3CQoQAEbNssqf
|
||||
6Hv36x4N
|
||||
|
||||
Name: res/Wh.png
|
||||
SHA-384-Digest: ZzG2Alp2KZKcRAudYZfmEhJZmuMIs31jitaoXR9lp2kDJSl2km/S7HW2
|
||||
y6pTwCEM
|
||||
|
||||
Name: res/color/m3_tabs_icon_color.xml
|
||||
SHA-384-Digest: 4uGZVHO0zdW75WoKB2AJc7g97k8rhq9P26bbk/ZP1+4UkqxBqziKqLy1
|
||||
3aqW2uqZ
|
||||
|
||||
Name: res/wX.xml
|
||||
SHA-384-Digest: ZOQlnNRHtdrXDp/tfxrSzIUs6jwiY8FWS6DhjuicPR/OGmJ5QdbOXdEr
|
||||
iUUO7ec2
|
||||
|
||||
Name: META-INF/androidx.fragment_fragment.version
|
||||
SHA-384-Digest: SgEyC8oI3kP3pBB8vNbHBLZooRV7Qd6PJ7eUDbpK/nQQpgE/XPX/Qi6O
|
||||
djfAjuVq
|
||||
|
||||
Name: res/0c.png
|
||||
SHA-384-Digest: fqjDF7fozAXZ1wNF5m6Y6XeCGg0QTJVtyWnxqIYZ7qmReHBJYiuxQoF1
|
||||
ganZnaU8
|
||||
|
||||
Name: res/UH.xml
|
||||
SHA-384-Digest: Ur7VSMwsbFf/1cn+XPt9cVjhaqBs65Rz8EKVxJseZ5p1skYdSo6GYcil
|
||||
c6GAMtga
|
||||
|
||||
Name: res/Pd.xml
|
||||
SHA-384-Digest: QPC72b4phRdkAVypGjda4O4ZpyWnPBqspXenj71ETlonVqebzlx27GNJ
|
||||
ilslOq7x
|
||||
|
||||
Name: res/PQ.xml
|
||||
SHA-384-Digest: ArxN0w/SzjhsLkvN4lEwWy3ChPvYcRdlQ0bsdqKrNi9TqjaU2xe7K8ux
|
||||
Rawb7vxQ
|
||||
|
||||
Name: res/Gj.xml
|
||||
SHA-384-Digest: VzRWplErkcS4R4WNk+3QkcV63epWZdJrC+5KGDb8M0EvE8Heq8N8nJGc
|
||||
HTj2VfKi
|
||||
|
||||
Name: res/hc.xml
|
||||
SHA-384-Digest: nDsX1Zm0WuKYL6OMNLXVpug6LuWdK8HZ1aoJ+esGN8nCbIiIpsq4DAog
|
||||
7BZO7oPX
|
||||
|
||||
Name: res/iD.xml
|
||||
SHA-384-Digest: mb9/hf26oAkBKevn74P1cQgI26aea1THNlU3craKDQhxK0YaYMvyE9dF
|
||||
xtNwplHL
|
||||
|
||||
Name: META-INF/androidx.sqlite_sqlite-framework.version
|
||||
SHA-384-Digest: hIAGvtefmZQC+5iwoWLsS8O4/kGacdmbLOceBNC+qlQ1u8Ze/oEJR6ZE
|
||||
tF3jNbux
|
||||
|
||||
Name: res/TB.xml
|
||||
SHA-384-Digest: qT4ZRK+o4zHpepwgRpXk9LP2FR/c9UBcZsV+vLr2/ksqNkMYf1raYHsc
|
||||
eUPq+RVQ
|
||||
|
||||
Name: javax/servlet/http/LocalStrings.properties
|
||||
SHA-384-Digest: v3Zi5/SgqtXgnHRq6hN4IFQpb2SljTKMIgPKaQtINKSo/u8uPlmMjy9m
|
||||
qmmPov9g
|
||||
|
||||
Name: res/C6.png
|
||||
SHA-384-Digest: a4fjY9tJSFgTWO3+AkgPzDqaBjsBWyYwgFMTBoccDC0VCXyogQ71DJ3/
|
||||
JYc+fod1
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral4.xml
|
||||
SHA-384-Digest: uPgUpUcA0LvqPexkGKxaJ69GcDo6e54IFUPo5uVsYpwScVwIu04s/1/2
|
||||
Uaf3wZZv
|
||||
|
||||
Name: res/mG.xml
|
||||
SHA-384-Digest: EhOrezFJMJ6JYGOBr32Tm8JcRS12ageu8Yec0c6m/RYYavM59l0hT/fF
|
||||
Q0RM5BLx
|
||||
|
||||
Name: res/GF.xml
|
||||
SHA-384-Digest: 5vtSFSA5Yb6elr7JzAbEEi2n0UwUt9N+5PQM92TXvav7dpI6WOnEEkCp
|
||||
69daLrDT
|
||||
|
||||
Name: res/5T.xml
|
||||
SHA-384-Digest: vO9lNsHjlyNJhZX083AyxVRd9iachv0M0o6+rcJu1rz0EQAqPLV6IxVh
|
||||
yhDNagh1
|
||||
|
||||
Name: res/JT1.xml
|
||||
SHA-384-Digest: FVsdgF5RESz5ZsGrKqvfrUuGoLKUSUkQIdqVX2VvL/4dYNvKtkTbxzTt
|
||||
RHEOlAlm
|
||||
|
||||
Name: res/K51.xml
|
||||
SHA-384-Digest: zP6D6gPAt8m7ZsFSuEw7t3g9Yyy/dJTZeDwxDUzcb60acF9e82km4t7N
|
||||
7UNs+Vuq
|
||||
|
||||
Name: assets/test_base_module2.mjs
|
||||
SHA-384-Digest: kpJPjK8VH5T6ehwFAQtgVBwMctt9ZPAuZAcbPGB6UkvwA/IKU1UtNYRz
|
||||
Xk1v/bF6
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_item_tint.xml
|
||||
SHA-384-Digest: qO+T1tQSYE2LEdBVxHPRFb5tjjjURqmP86Jr6icxfM2ausToH7MP4wJc
|
||||
N5i0wgBp
|
||||
|
||||
Name: res/RI.xml
|
||||
SHA-384-Digest: HMyv/VF0IyoWWCWdwaBts483rhdfbChGjMA7o/+1s3RHVWdR9Wc/LMhe
|
||||
iiMir5GX
|
||||
|
||||
Name: assets/js/jquery.min.js
|
||||
SHA-384-Digest: 1H217gwSVyLSIfaLxHbE7dRb3v4mYCKbpQvzx0cegeju1MVsGrX5xXxA
|
||||
vs/HgeFs
|
||||
|
||||
Name: res/aW.xml
|
||||
SHA-384-Digest: Svjexdh2oPS5KrAk+x6/phnAhpVklCWm5t+82ihPVPSkFzYt+LT2jeyD
|
||||
hkV0li5Q
|
||||
|
||||
Name: res/wx.png
|
||||
SHA-384-Digest: 0xyKN7xr40C14ePJ/jAQVgu10gw+ER0nxZevuPq2+dWafKLskoWH2aCB
|
||||
w76uys/P
|
||||
|
||||
Name: res/21.xml
|
||||
SHA-384-Digest: StYNefStVeHnOrSjDL7Ns21+VlyeilLJKK1g28vim870xAmJme8Aukmo
|
||||
D6/1lmXM
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version
|
||||
SHA-384-Digest: paydoQqBb47xqyFYbn0pCKy7lEvXH1LUpOSWvrco5oTPnChe8y4Heb/Z
|
||||
mCeD4wX0
|
||||
|
||||
Name: kotlin/reflect/reflect.kotlin_builtins
|
||||
SHA-384-Digest: SvHcuBU/bxDoAYpvLLu8c9iZzJ13OD8wJ+cGvz85OKA+i06EDw2GMGqX
|
||||
mVD90qZG
|
||||
|
||||
Name: res/rH.png
|
||||
SHA-384-Digest: DMWIJ2CznDu7Qk3SteQ2QilM2vbZm40u/BmkzJ24krXxkdD0EwRLiXQF
|
||||
55B304U3
|
||||
|
||||
Name: okhttp3/internal/publicsuffix/NOTICE
|
||||
SHA-384-Digest: 2YfsuyG46Kf5Pg4EDgMB7Z+ynxfnPKHFEIX0GQgrp2SEhuYwIk7iH6Mx
|
||||
+AQd+QHc
|
||||
|
||||
Name: res/color/mtrl_btn_text_btn_bg_color_selector.xml
|
||||
SHA-384-Digest: bBCrHdAsTLTQzBcZwPMvclEo55v9tzLkSouJgXa7afYkJUHaoHTujiYo
|
||||
QAlNmTbG
|
||||
|
||||
Name: res/4N.png
|
||||
SHA-384-Digest: znP3h2cfB9eDaMKqpfVggBUNBte7+OgSxEuSfemizuk5KlgWYIElNua7
|
||||
Mr7e8Rm+
|
||||
|
||||
Name: res/xd.xml
|
||||
SHA-384-Digest: Ch8fPztJbjXDv5zh71x4uBgXU+07S7pFZ26rYJYeoarz4iT0vmrES8uS
|
||||
5psew8AS
|
||||
|
||||
Name: res/hu.xml
|
||||
SHA-384-Digest: 7AD7+IX3g46X1CgRjc7k+2R+uGz9NdpkCF++mBenx0byeovYA/hiT14y
|
||||
rFpvNPEb
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant98.xml
|
||||
SHA-384-Digest: /1Q02oEkKb0mJEI8EPijfCkdYzAUKm1ceBJI03+RS61aVGRkx4XGjMK0
|
||||
1d0YKoyg
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/HandlerWrapper-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: vOdadktvdqRqhR5g75zrA1n1kQOpZVFO83alN1pIU8/4UJTZ3qg2s4SD
|
||||
ewn/wFMP
|
||||
|
||||
Name: META-INF/nanohttpd/mimetypes.properties
|
||||
SHA-384-Digest: N5uqu2rdDoUb43P3sCMflvQTwtQzsdl2nASe8E5FI6QWaBwpMBvUjDFA
|
||||
3ppZI8Vx
|
||||
|
||||
Name: res/oN.png
|
||||
SHA-384-Digest: Qjm7NULoTeauHRj6u2jpI4XF5fPqZb2hhD7ZNlDONhdXmXCm4IDVRGvS
|
||||
x0RpZGQa
|
||||
|
||||
Name: res/Ix.xml
|
||||
SHA-384-Digest: wes2AfE1+asMXgWqp+/Zg5tXomA4aA2f7IBstelU1WQELej+onBAhI+3
|
||||
fhrSGYdG
|
||||
|
||||
Name: res/color/mtrl_btn_bg_color_selector.xml
|
||||
SHA-384-Digest: 4s9ZJYnexQk0+qbz3REQrQV8ii001f7EVP/SmRohXrPWOAU1jssr9Ave
|
||||
Yv93V+wH
|
||||
|
||||
Name: res/0G.png
|
||||
SHA-384-Digest: OxzqeOsNLXiKPk2pcI34rmrsIC6u8v2nHVaw5cwEu/aS1ja6psbDotPA
|
||||
uTUHmS2S
|
||||
|
||||
Name: res/color/m3_navigation_bar_item_with_indicator_icon_tint.xml
|
||||
SHA-384-Digest: pORV+f810Xo3OItxEcP43hRmEehNU1neDmjnsW99y97fd0/aRN8B5Wqw
|
||||
z0Zf/z4e
|
||||
|
||||
Name: res/c6.xml
|
||||
SHA-384-Digest: 1/paPRyiiHsOXEqnTzHjzUkAOyIpMWFVIoISzD/ooKLb16+lALdvkxJn
|
||||
jZSI3Hth
|
||||
|
||||
Name: res/color/m3_hint_foreground.xml
|
||||
SHA-384-Digest: TLIo3vzr9nFi+uJ5G3UGzv95PmGsAoFJmCussDxVnCob8E2XSJdnsWNl
|
||||
P+SGEHYB
|
||||
|
||||
Name: res/dQ.xml
|
||||
SHA-384-Digest: 8ct+k+Jh5YfRocutZiWnTDp+xaLAxCpSKnG5xSmNOQyhM3K2TQnfS/m4
|
||||
G7C4aJ+h
|
||||
|
||||
Name: res/MH.png
|
||||
SHA-384-Digest: /3TmBSzi2RL8ruLFUoUa1R7lP/vdj/T80iFjQVo2DSvMd3sWT1kYxzpe
|
||||
zxl3nENT
|
||||
|
||||
Name: resources.arsc
|
||||
SHA-384-Digest: IFAf+LlWu/Kb4//r6P+9m8y9MGXVYB4ow3ajF0GJ7No8JCi9dFcrHVHR
|
||||
w1rWycNG
|
||||
|
||||
Name: res/color/m3_selection_control_ripple_color_selector.xml
|
||||
SHA-384-Digest: csrGrC39OkK+Ft7nDGNsYU475s/goyaE+1WMnVONewmlSU0vwdtbzpZp
|
||||
0oln7tWK
|
||||
|
||||
Name: res/QZ.xml
|
||||
SHA-384-Digest: xntcofMmd+qDGmm0EZQgrBf4bInN85cQmgyxoC4R1mosZkxn7Bb54roq
|
||||
Y3kDPGw6
|
||||
|
||||
Name: res/u3.png
|
||||
SHA-384-Digest: nk4lZoWbyjz//pMVW7ipQZ4AImVUWoUBlQsjK8KKQ+h+Bn/4AftU4keV
|
||||
WiyJIO/c
|
||||
|
||||
Name: res/color/abc_tint_spinner.xml
|
||||
SHA-384-Digest: /lt7D2L0tGtxFpUbFEU8keY2secM+KIbUp+nSw/dObnsjXhMz3IBWXSN
|
||||
WdUykEKm
|
||||
|
||||
Name: res/SY.png
|
||||
SHA-384-Digest: dq4UWmjfsCFi+TWg4SW/yZjniEEeojAUdSddMT1XxM941sbS9IDvGXcq
|
||||
MK5g92W8
|
||||
|
||||
Name: res/96.png
|
||||
SHA-384-Digest: jHuJBgZ+MSJZn1juXvSUwWYd/G2VMAtRHl6pDcLmAjDg8PrYjc6Z2aq9
|
||||
PQKKXaUE
|
||||
|
||||
Name: res/DG.xml
|
||||
SHA-384-Digest: Ix7FR17XC3Tdkass8PclhaXLxoAtB1pLDxZgi3JRUhEkb8eEjgxeECD4
|
||||
3GZFfpLR
|
||||
|
||||
Name: res/V3.xml
|
||||
SHA-384-Digest: zaVKhftS0bFQmVr9cvQeiuVRVORxyy8oYcGl1LxXj+qm+FYRqhL0n7Nn
|
||||
sRQd5gJ8
|
||||
|
||||
Name: res/U-.9.png
|
||||
SHA-384-Digest: hlNrbYgebC2pTjH2IZrqn1DTuAkhjHB2nLr+BJc4bCf4WWj8CbNwauXp
|
||||
/2/9BVFW
|
||||
|
||||
Name: res/Gc.png
|
||||
SHA-384-Digest: JujN02JdbdnMTe8J4WoGaHV9pgX19V49s9m6XbNiaZJO7yqcdqiEJJ8W
|
||||
r/bWB+vb
|
||||
|
||||
Name: res/6X.png
|
||||
SHA-384-Digest: h+/gXL3gJcIyS16DZQVW9x74mhIrreueV5wsm69WGoOW+Fm2g5J7B1M/
|
||||
Hz9ZgEQy
|
||||
|
||||
Name: res/DL.9.png
|
||||
SHA-384-Digest: 9A35CpQtXADkrqPBZdsbY6bDq8jEgneG9RwMiuFfCBGfzRUWftfcD/pf
|
||||
Flwe9EQv
|
||||
|
||||
Name: res/color/m3_button_outline_color_selector.xml
|
||||
SHA-384-Digest: dj+Xetk8hrt6Sk7vvCdQFc4tmyiSR6YaeZ76Szm05nX08gWZOiHFrgZE
|
||||
v48eZNL5
|
||||
|
||||
Name: res/rp.xml
|
||||
SHA-384-Digest: 3F8HRFOszXQI3TWrdPv5wH4fYXLuMz1hrWeAif3wyMBd51DuBd4323Re
|
||||
QbX98AvN
|
||||
|
||||
Name: res/tk.xml
|
||||
SHA-384-Digest: T7vht1DqWpR7QY/Qlt+WUr0VmPWP/68h6pdlzT3J9dzLPgrOITHSU8bW
|
||||
alkpcPvq
|
||||
|
||||
Name: res/v-.xml
|
||||
SHA-384-Digest: 84czgnn6tKfOddlZkCKBh3HzOCuzOc9qNjEzSgMCmss5LrM+bqqMYx2t
|
||||
FQQ6ky80
|
||||
|
||||
Name: res/Xx.xml
|
||||
SHA-384-Digest: mXCq3s51/ODXxzq/o2mxD/Ty+xN6bjsmT9Fdz78zPqmEfwKiSXYSH3v6
|
||||
B6EbslCh
|
||||
|
||||
Name: assets/shaders/vertex_shader_transformation_es3.glsl
|
||||
SHA-384-Digest: k/PqmBVvhE9twSv1DjHUckCMS4H3fIb8TCCqjomTMcGUJpuag7KIa2Zk
|
||||
O/xmyXy9
|
||||
|
||||
Name: res/Sr.xml
|
||||
SHA-384-Digest: /YSUHrjVC6WfhT34Q/XcTb6VeOyl6EI/Ex5ov4BLg5wyXjXiyf6chJ7s
|
||||
SGE45PuO
|
||||
|
||||
Name: res/9z.xml
|
||||
SHA-384-Digest: PPXdQpg6eL2DFENVtvCyTHbwOqXQv9LcZ8du/hzhpGBkzmztC5PflCwD
|
||||
zjNARbFB
|
||||
|
||||
Name: res/zr.png
|
||||
SHA-384-Digest: n04rh6Zn+VAb5TZh9BTjqh8AyaydGlq2owhIhrDru353HMPVSUXt+cbc
|
||||
pPqHQzZ7
|
||||
|
||||
Name: res/l3.xml
|
||||
SHA-384-Digest: tnV0YzqqQwdzJvY0tmST09Hkq/VGAQqWN1amkOJ56FEg0pUUFOJOKLd1
|
||||
Xvk4BQXW
|
||||
|
||||
Name: res/color/abc_search_url_text.xml
|
||||
SHA-384-Digest: BD602017vILgbGqItW+PrIIhGuBx2qALu8hCx3+hZ2PZtM0jvo96Fh2H
|
||||
kSKioBFH
|
||||
|
||||
Name: res/lc.png
|
||||
SHA-384-Digest: ef8vKgCPVt279q6rQ7CEfLJCWoyHAjA4IZ/k1VS2kh968QW7jdgDnCzz
|
||||
RUx/bBPO
|
||||
|
||||
Name: res/Yy.png
|
||||
SHA-384-Digest: S3x1pjdkgjoqB/GyDYZv1ddpYNqCQpnmWF7Am2jns57jg9XdgKTzfBqW
|
||||
ewR3zMFp
|
||||
|
||||
Name: res/zR.xml
|
||||
SHA-384-Digest: e4prutPwerCkjPhfYc5WbSAC8WmP84urK4cDDnJpnGmgMDMdvtJbMQ5i
|
||||
P08oTbnk
|
||||
|
||||
Name: res/Mp.xml
|
||||
SHA-384-Digest: dWnpG/yiaFh9H+xRv1oBSVWfU3chprrc4fiXqA6xXppudOMM7R6QZM+3
|
||||
eDX3je+Z
|
||||
|
||||
Name: META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler
|
||||
SHA-384-Digest: 0j/xSukYae23QZglmIbEaIYDJhjb1Wup2XnoqgJ4y7UwsydB5c0PB9hd
|
||||
yT9nwAyj
|
||||
|
||||
Name: res/xU.xml
|
||||
SHA-384-Digest: 2gMqnjCTA+lFtZV9VkAynbEoqbdodd9JQphZB75mI6Yg1SnTNsMxDKgv
|
||||
WLyWr8lx
|
||||
|
||||
Name: res/SH.xml
|
||||
SHA-384-Digest: NhayUlUVTKJsnmSt7VoIRRn8PPG+5aMY9BwEPT4WiPpmWEbje/KJBNX+
|
||||
B2YhphZ8
|
||||
|
||||
Name: org/bouncycastle/x509/CertPathReviewerMessages_de.properties
|
||||
SHA-384-Digest: DvKUx2fznT6HHp2tT7ons8xUSonqgGSlgAGK5gLnm7yhViWXXme8Z7Ti
|
||||
d+f2xzyy
|
||||
|
||||
Name: res/pF1.xml
|
||||
SHA-384-Digest: CXrW5aQUN3uz63ghaCJHY8spUBJ3Vg+IHM+m9YbaImtxjItAZQbAQ35/
|
||||
ukCdnb+U
|
||||
|
||||
Name: res/ph.png
|
||||
SHA-384-Digest: s1HZgpF0frUyXb5hdhxFe55/FlQavWXBEGbB+HjiIFUQK4uP8fsufWeP
|
||||
Tw5h9odO
|
||||
|
||||
Name: res/_y.xml
|
||||
SHA-384-Digest: 7PPodzHGikaDJpiPQ47uozRqPFOTJ1PqoERBbo30PtugdXKAF531kMnh
|
||||
pyoy48K5
|
||||
|
||||
Name: res/Sr1.xml
|
||||
SHA-384-Digest: uoMl0WcMd6ozCtOszjYU23Xfj5+SpVs5PW3FCftNmfTRB9oSOgynIoNT
|
||||
nQnYYqGJ
|
||||
|
||||
Name: res/vg.xml
|
||||
SHA-384-Digest: UagfrwkxLcjEt0iADFDHdNrhN5S2LLoGD8oUYJi3OMCeRBk6F28cVqmn
|
||||
eA+jeoDC
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_es2.glsl
|
||||
SHA-384-Digest: 6Fu3uQbvaS0yaGRyrfbwet16Jm4dR5tMIDx2sg0hCUOS4fjpGCZyBwv6
|
||||
t9X5M54P
|
||||
|
||||
Name: res/WB.png
|
||||
SHA-384-Digest: 7jSsPzLKNFNMQgegSv6jawOCTmNV+7aqHL/QksIpsgeG35L2JFb3AxXu
|
||||
yv5AafWq
|
||||
|
||||
Name: res/eT.9.png
|
||||
SHA-384-Digest: Fng/GAqtcF66YBczIbRx0WhxhcSTbbtQuqL8VY1BVZt/9I6vaCSPFwqx
|
||||
ddsLKQjF
|
||||
|
||||
Name: res/vZ.xml
|
||||
SHA-384-Digest: IWueyC0ihbyC1wosp6APZRfLGqV3KByYRHtdQTeSdb9rtAFxBSoCwvS5
|
||||
6CG2CM4v
|
||||
|
||||
Name: res/M7.xml
|
||||
SHA-384-Digest: Rk573PDwO+I9HasC8vN/H/uPbSoLxv5yzAsueBkMeileVoEX+LdPbVBY
|
||||
26U7Hd67
|
||||
|
||||
Name: res/d9.png
|
||||
SHA-384-Digest: PrBRAeeDb7ZGUKKJLTgLmLPNHT5FP7g05lYnXgLX+ioYBb8NNra3tyM+
|
||||
hetY+LJY
|
||||
|
||||
Name: META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactor
|
||||
y
|
||||
SHA-384-Digest: xSSEPWjh7L6lB3iSzSxlYgOX67JS6gNSt1ePv17NmMZterMimX5+It5L
|
||||
mQTMLHVc
|
||||
|
||||
Name: res/z-.9.png
|
||||
SHA-384-Digest: zkFhTjE4E+1LCsh0fvNNms30N9Nfjhuv0HLFXlB6H5r4kn21I7JoQTm1
|
||||
/seFV8OJ
|
||||
|
||||
Name: res/color/mtrl_tabs_colored_ripple_color.xml
|
||||
SHA-384-Digest: jJeH6LXNLqENkr/SBbacOYHncMjvPX/5w6VRZBxCNrlX6pyKOqwGrgfh
|
||||
JPVUqb7q
|
||||
|
||||
Name: kotlin/collections/collections.kotlin_builtins
|
||||
SHA-384-Digest: tJbtXDbzgHqEd/bQDlfqgj2SYPoeqACMYrd+E9KzhatQufNc7bAZUEna
|
||||
q3FyU20u
|
||||
|
||||
Name: org/seamless/schemas/xml.xsd
|
||||
SHA-384-Digest: FxYZFS/hR9sgbPXe+4Eui4FlrX9rW+QXAtNgVuci1vxaCs0kE6tA5xwY
|
||||
uiYHITjV
|
||||
|
||||
Name: META-INF/kotlinx_coroutines_android.version
|
||||
SHA-384-Digest: WiL9gsoIjr0zczM6o/MWDl4bC9gpKlyXdruiClOZ4naudqPgSkfvMEIp
|
||||
CXbD7y72
|
||||
|
||||
Name: res/color-v23/abc_btn_colored_borderless_text_material.xml
|
||||
SHA-384-Digest: L7auAoVosVBKrSyL2JLLB2s0uDg5Abtxjicoe2BJHq70kp6q0uuhhUd0
|
||||
/JATFBIa
|
||||
|
||||
Name: res/2O.xml
|
||||
SHA-384-Digest: 7QSiyCOXwWlbYEUrz+sCjByHyFxTeahXpTo3Nd45Q3N5SvaYVrGSRH2e
|
||||
FE9HbBQ5
|
||||
|
||||
Name: res/color/m3_timepicker_display_text_color.xml
|
||||
SHA-384-Digest: F+BEm/k3xsaJsiaAliFy4fS3v4RUFRd6BnX11hg7eGqRU7DfTVJ6VNXh
|
||||
qHwoEKU/
|
||||
|
||||
Name: res/XY.xml
|
||||
SHA-384-Digest: OvdWgCKwAiGpX8ITMt1aNgcKdCBzojny611P3hET+1XiVqOlP3BmqFh2
|
||||
iCv3DLcr
|
||||
|
||||
Name: res/Su.9.png
|
||||
SHA-384-Digest: OEDDyUtbs6Nc43Zd64URaWsK/y9YMdxbR3kUPPQUkhHX+O6Z6s/lpiTa
|
||||
dRvTl10Z
|
||||
|
||||
Name: res/oY.xml
|
||||
SHA-384-Digest: JYIBowuA5M7ylCdbUGVCYDP1FshsY3fLPmQZPzri+4J0NhfdY0mTmXL9
|
||||
1LVrfe1z
|
||||
|
||||
Name: res/eD.png
|
||||
SHA-384-Digest: SaAuxJTOrCnsYgPLabohjzv2L+YdnCCEfZF7e0u35Z3U6kXEclJOV26p
|
||||
phFtAffQ
|
||||
|
||||
Name: res/pY.png
|
||||
SHA-384-Digest: O8oAwxDymw/cFIYoflpBQINcCPHD3HUYrW62FlN06I3KdT4DFDv0Ph/A
|
||||
ujDprQ1V
|
||||
|
||||
Name: res/color/m3_simple_item_ripple_color.xml
|
||||
SHA-384-Digest: l1VEE/fU6XnJlHnU/MNuIro45Bx6c+/vKJAvX9/jNSI8YKZzxAL29gBX
|
||||
+0fokarN
|
||||
|
||||
Name: res/UE.9.png
|
||||
SHA-384-Digest: rtZcfa4QLx+PaXmiTAj2ImIAUrAShE08pV5bnqGSMRgWgICRcxn1O6GF
|
||||
PsIQ8iCY
|
||||
|
||||
Name: res/9P.xml
|
||||
SHA-384-Digest: StRXb273fFWwTzQFw4bcAVr0XfnzF9YNDfdUjtUVjMPlp2iFnGTbdRx2
|
||||
g9GcaFtp
|
||||
|
||||
Name: res/aJ.xml
|
||||
SHA-384-Digest: uK6DQYMPHp59AVyAJ+Xca/2VVDpZJX19kPxsiOe1GPdExVRDOCUCzWFv
|
||||
bty3YJfS
|
||||
|
||||
Name: res/OA.xml
|
||||
SHA-384-Digest: 6I5TE50SLP8xZ9O/EOhIz4ssDAwUwJUEUt1aQXdIUi8d/l1oUA6dHzfi
|
||||
onoz4c23
|
||||
|
||||
Name: res/_M.xml
|
||||
SHA-384-Digest: zplsnr0vHBYtl/FQyqgIAN5RmPxovEhLzfk8c+zuQ6eZoTbPlZhVNww3
|
||||
DtR13Bnp
|
||||
|
||||
Name: res/4u.xml
|
||||
SHA-384-Digest: s/eeUBlXOOZnoGS06CT150pU95dZUkBoStjo2JG8NOJQXto8RdhDauZb
|
||||
37+aXgja
|
||||
|
||||
Name: res/G2.xml
|
||||
SHA-384-Digest: 157D0+Igldvzy4QvmDkdJoe1w/+T1rlrEWMJ8hLhowjUbAD5PEUs7yEV
|
||||
pY7osiSr
|
||||
|
||||
Name: res/pU.xml
|
||||
SHA-384-Digest: R/4UcR/9IN9qwVeXi7K/vjIVHULRS94pfV654dS0ympysKgFfC2+JSkF
|
||||
gzvqePkI
|
||||
|
||||
Name: res/q6.xml
|
||||
SHA-384-Digest: /cISK1PIv9rHAnr5sbsz5bYoQOksS8vcC/8czaAbCEHQ11iMRJQX9II0
|
||||
Q+0Ob2Ph
|
||||
|
||||
Name: lib/arm64-v8a/libswscale.so
|
||||
SHA-384-Digest: hLVPCYdZuq47V/+zUazp18e7s3Ri0CShgcUTDo232XzHT2RA9E4zRNPe
|
||||
DU4TzBa+
|
||||
|
||||
Name: res/0E.xml
|
||||
SHA-384-Digest: FFGicYxeNWhx0+xhQ7ih3Bx4Vp2D9x4sUTmEooj2UVE5eXAgk7wO7Fjm
|
||||
HHr0o/XQ
|
||||
|
||||
Name: res/fM.9.png
|
||||
SHA-384-Digest: DMkB4xejzz3bGZHVYzERvHoywPXfd6rVkalCBSPYf4qXh97Kgvu/uW6T
|
||||
DMVgrP1c
|
||||
|
||||
Name: res/A2.xml
|
||||
SHA-384-Digest: zozjrCwJ6u1Ij5P0iKCmxBOy6G/X76UYzP1TO9zoQHcARasvbKnsgVT9
|
||||
mD6ABdml
|
||||
|
||||
Name: org/seamless/schemas/xhtml1-strict.xsd
|
||||
SHA-384-Digest: 7+iP7JT0e0TBDrM7XZ9lizHzDH2vs6W+CWLMs+0fbsHVMICKrz/LLTfp
|
||||
FyNeCeLB
|
||||
|
||||
Name: res/_h.xml
|
||||
SHA-384-Digest: YCE/VtqlVjgGUaGKlABBVm5M/EVzuF+B15ncdlRHww/0rvyMDzYVDX89
|
||||
uzZh5WCn
|
||||
|
||||
Name: res/color/m3_navigation_item_ripple_color.xml
|
||||
SHA-384-Digest: YVd0gpIjol6nV0Np2fCw6c22RLmJw5eABY3IEOO/B03CblwSwrFvguLs
|
||||
2Z81yiO4
|
||||
|
||||
Name: res/color/material_personalized_color_primary_text.xml
|
||||
SHA-384-Digest: xUAb2QS0DkWDbGm/vKbeg0OqwtcpyXZE15c76hYX0181huhZu7xGHaAy
|
||||
ZiIEcTM/
|
||||
|
||||
Name: res/hX.xml
|
||||
SHA-384-Digest: JkgjrIVZO9OvxcfOXSLAMefrf6uNlbQlJj7S16ubhy0jt9KDADAmtT71
|
||||
jDmbsMqo
|
||||
|
||||
Name: assets/js/lib/cat.js
|
||||
SHA-384-Digest: xpLD4C6rahgehwup3ZvqdWaaP5OjEMCBts4rtAP4ncgyjeOygF7uwtDa
|
||||
GOzLQBdF
|
||||
|
||||
Name: META-INF/androidx.viewpager2_viewpager2.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/BN.png
|
||||
SHA-384-Digest: tFQaCkXdbSYFDoMVQX/i/QIPs0UdENtJwwKNbIz4P67BJeq5cs0fBxlH
|
||||
5Kr/gPVX
|
||||
|
||||
Name: res/Y-.xml
|
||||
SHA-384-Digest: b45Z+WZtAI9kwGyBZCBfcdHiE9tTGeEQKy8IWEhFToqu/IdsrlihoIZc
|
||||
zxRvMn5W
|
||||
|
||||
Name: res/color/m3_card_foreground_color.xml
|
||||
SHA-384-Digest: g++vDdn7lK2QnSfYy/BOLep2ST1HxZBGk0FPx0Vh5xRprAHsoxQna2E/
|
||||
gpFFXnBA
|
||||
|
||||
Name: res/fR.png
|
||||
SHA-384-Digest: +jjrVEqVhoaSRmfFr/lnEBZOPcGCt+13ZxA0hmCZVaHb2pWKrTuqGrx4
|
||||
0qqV7Cle
|
||||
|
||||
Name: res/Fq.xml
|
||||
SHA-384-Digest: AlKrIulo58Z57BQdZaCO8ly4orGH+Qnj9g3UJBoFK0SsHI1e3FPKHhNG
|
||||
TB4On8Pm
|
||||
|
||||
Name: res/GR.xml
|
||||
SHA-384-Digest: H7MmL3qqBHv95GCYSfGUEqArEuk2YXMp2SRzwMdjt4zdMSXGPjp+RFIg
|
||||
TDueaqhY
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant96.xml
|
||||
SHA-384-Digest: sYFqAaOrqg8W9CmBNz0HccxzdEiPjHDoB6exuzxIoBK9Aq1u29WY0bG3
|
||||
2LWkrDXe
|
||||
|
||||
Name: res/9n.9.png
|
||||
SHA-384-Digest: qY9IhvO/WQFpyf/886AHNpdIQAtVJTfmZtp52Iem45pAxr3UTirjRmvI
|
||||
cVMLUacx
|
||||
|
||||
Name: res/UE.xml
|
||||
SHA-384-Digest: yS5XbfKzXzHUzefeXrw55mRoxQnDfUL0m4FhCThb30EB4a3ClNpkvNkp
|
||||
E8Yh6nGi
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletHandler-mbean.properties
|
||||
SHA-384-Digest: d7oM9zbtR0tF6g03M5cKjcHLvYzAL1+8GqjDXs1KmSy84j/oeB4H7Z6G
|
||||
YEGw3kKB
|
||||
|
||||
Name: res/cr.xml
|
||||
SHA-384-Digest: AicVMJDM7V9ehJ+T8Ys1wtOLwiBu6DQksH3E9Ph2jJM3Nllm1fWqaq7a
|
||||
y2yd0ceQ
|
||||
|
||||
Name: res/dS.xml
|
||||
SHA-384-Digest: tkWrSjjdasHlFcIcZehtt9IQlYSohahhHAsEE2Ww8IgalP2vAri4cCbk
|
||||
TWiyJH74
|
||||
|
||||
Name: res/color/material_personalized_color_secondary_text.xml
|
||||
SHA-384-Digest: X4nhM4KJFZ2PcikJK+krESccYp6Kt03MwF/VbaAiKnQKgjwlvdNLTtzH
|
||||
4lAlDjJ3
|
||||
|
||||
Name: META-INF/androidx.transition_transition.version
|
||||
SHA-384-Digest: dWwedGvhEw8ghxjll5AOUtPdfFQcYce9hFUHcj63aAr76xV82vJn3sLm
|
||||
jJrBXhA6
|
||||
|
||||
Name: res/By.xml
|
||||
SHA-384-Digest: bo/7yK53jiJNlFE1/DP6Gf310mo+LE2ChQNkq0OgCgrbi4LMBA9DF+tP
|
||||
7uh+m/Ae
|
||||
|
||||
Name: res/color/m3_radiobutton_button_tint.xml
|
||||
SHA-384-Digest: q9lmjZUKhF4HJJZzHmEJ0ILwDcRKHqL1i+qP6t6/o5Qgs0ONYNBXEj6U
|
||||
kCJ4TfTK
|
||||
|
||||
Name: res/JJ.9.png
|
||||
SHA-384-Digest: ei2t9upv29AdXePkYTk8YIrRMmf+OOaPJMi1wQ1jdP9CxHRLEWPGD969
|
||||
2MnQyTGP
|
||||
|
||||
Name: res/lN.xml
|
||||
SHA-384-Digest: d4RtPmKf6rNI3eI8tfSIY35zGAYjSLiu4twfoN/0IQBDOo9dfAreUhG8
|
||||
lv5Af4Z0
|
||||
|
||||
Name: res/23.png
|
||||
SHA-384-Digest: O6FvMtAEysBdxIByijyyjEFApYrFj920WiZ+XdVxxWSxopR2aVEWGbXw
|
||||
pw912eF+
|
||||
|
||||
Name: res/TG.xml
|
||||
SHA-384-Digest: YZ5l4kY2+vLA4VGgKmY82qMd6KUZVyBzRImRBIHsP/A66wQkOV77tbpB
|
||||
4aMCZwnS
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant17.xml
|
||||
SHA-384-Digest: y57oA7x4I20wZIpIU/XsLCNiC8DOte3Vr7yj3JwV3dCF6b6NV5uKlJUN
|
||||
WJ6c9k4+
|
||||
|
||||
Name: res/u01.xml
|
||||
SHA-384-Digest: ElzU1vZ52WV5PF5C55C61N3PL9hY7AGY+vRMV/LN1XtaRgQ1FubWYWYG
|
||||
y1i04Seq
|
||||
|
||||
Name: res/ua.png
|
||||
SHA-384-Digest: 0J1qaEoGWuDO+RXEvcZBPd/4PfzwYWlR8LiLhk73A2nt7iH75mL02GtY
|
||||
YqcmVkW3
|
||||
|
||||
Name: res/dt.png
|
||||
SHA-384-Digest: 1RlEClNS3+WEsYvW7KNpewvKntZynEzYjqCNFl9X8PhYuXOHH9rnT+os
|
||||
aJhpMzsc
|
||||
|
||||
Name: res/color/m3_dark_default_color_secondary_text.xml
|
||||
SHA-384-Digest: SSg5RttNrxpHQ8YAf/GFiec4x4oeEGjAN2CbbvRcPFPDKLzrKy/b0iKx
|
||||
QUKblkNM
|
||||
|
||||
Name: res/zE.png
|
||||
SHA-384-Digest: FEvlnQD0t/SdhU0EE0nVV088nMEN7oDheGieLNr5H/dljpa2I1kKwQgC
|
||||
9GmNL9nf
|
||||
|
||||
Name: res/BJ.xml
|
||||
SHA-384-Digest: B+hTVsAe9EZnSfO1zOAqCqgV5fXr7YUuCSdGT8yScsrgo7oqyIO6PQTA
|
||||
l6KKOx84
|
||||
|
||||
Name: res/c4.xml
|
||||
SHA-384-Digest: LcFsY3sWrskIg/lREszJIFaYDsl8Ui2t7PNp6P58LVLQg6Wn2AgOQi5X
|
||||
6qbFlNxk
|
||||
|
||||
Name: res/Ff.png
|
||||
SHA-384-Digest: MmaFD17dtpaPXkJT/pCsDcJsK/FN0qwoenyTImnqk6/R6oa3AhOF2zaA
|
||||
5WEf5lwH
|
||||
|
||||
Name: res/4L.xml
|
||||
SHA-384-Digest: Cmsb/R7kzb/9gnO1Xt4auvmTuWC2NYiMcBJjEc8Mzp6erZt+59C+UyCc
|
||||
C1SyV2He
|
||||
|
||||
Name: res/Ga.png
|
||||
SHA-384-Digest: TapI0UJoAnH7Pxj0POZB/ggn8UW2LfxBz1CmKcX3bvjjQ1Uap8RFLRfu
|
||||
Hb30c/jK
|
||||
|
||||
Name: res/Zg.xml
|
||||
SHA-384-Digest: 662Qb3RyUfrmb53drp2IBJ+I2aLl8JQ3vZFYMhAVmKUyZPQiT7NbOxTT
|
||||
SgAOkyuE
|
||||
|
||||
Name: META-INF/androidx.documentfile_documentfile.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/6t.png
|
||||
SHA-384-Digest: M84CWmDYaSHJk2sb23H+dk7BOi0h7PDNOS0QXAIGSMZazVQHWhHyczeA
|
||||
YcVWdXjV
|
||||
|
||||
Name: res/jS1.9.png
|
||||
SHA-384-Digest: nCGpqni5PhvfilXFqTcZFqMHuecWmpOBBxo9qT33++to8FC7lHET8mme
|
||||
CRhYvSF+
|
||||
|
||||
Name: res/color/m3_checkbox_button_icon_tint.xml
|
||||
SHA-384-Digest: cIFP39G49StsBbTMAcXAtcQnkgJRXg6ngJG1fg+UszVnxP24OLW+06w2
|
||||
VYO0805i
|
||||
|
||||
Name: res/color/m3_switch_track_tint.xml
|
||||
SHA-384-Digest: jAEcIvZ8WCKGK237jkwHr1nbNbDXn+5lW4NMv0/YTHTeDW4yACTFrP2t
|
||||
VFnXCTnu
|
||||
|
||||
Name: res/6Z.png
|
||||
SHA-384-Digest: MWWLloI8+mHABZrHDt0PsfwDCaSeiq65QyZsfCjHfQ7cmRGPlAIXB1kI
|
||||
4HE6Y/cn
|
||||
|
||||
Name: res/77.xml
|
||||
SHA-384-Digest: vet9yEjnxlq4ZREgE17v1AhtkC/Yo01r8uGdn6IYKEF7XXH3pEbiPWf5
|
||||
9mANMCac
|
||||
|
||||
Name: res/color/mtrl_switch_track_tint.xml
|
||||
SHA-384-Digest: stjR7K1MA7de7c876hNOnh4KdmQTJ4SYQAenyrXHDBNluIU3YoLw8cNe
|
||||
GSaIlyoS
|
||||
|
||||
Name: res/NN1.xml
|
||||
SHA-384-Digest: qiofZS4JclIjm5OmR/Y5r/NVbP69ov4y013r/yencfLmsHhsNyY7vd1K
|
||||
aQGNpO57
|
||||
|
||||
Name: res/color-v23/abc_color_highlight_material.xml
|
||||
SHA-384-Digest: nhR8+6QO6Kn6IH3tM/v652SoKit+3BAo7wl4ZV8G4omZ8HoWi6Zzz/rV
|
||||
owa6mRzd
|
||||
|
||||
Name: res/color/material_timepicker_button_background.xml
|
||||
SHA-384-Digest: r+o0vZSJ6iPhdnLXtRuqlxhMGYY4BQoPC2Ah6Ajk/miJQthsRJsT7kp+
|
||||
dGusR2iv
|
||||
|
||||
Name: res/Pa.9.png
|
||||
SHA-384-Digest: dAp/FlkgnD482z++wKKW/6YbuQWZdOCxOwIk7YajYEX/5ekg/UG/eY4s
|
||||
SbBpIJqF
|
||||
|
||||
Name: META-INF/androidx.emoji2_emoji2-views-helper.version
|
||||
SHA-384-Digest: dtT+kMaBn7mC0I5Zw2DO5bf//DqPWE7jsnjxasKo+dXF1wFxba3xTVXy
|
||||
iU0DEX70
|
||||
|
||||
Name: META-INF/androidx.recyclerview_recyclerview.version
|
||||
SHA-384-Digest: dtT+kMaBn7mC0I5Zw2DO5bf//DqPWE7jsnjxasKo+dXF1wFxba3xTVXy
|
||||
iU0DEX70
|
||||
|
||||
Name: res/X4.png
|
||||
SHA-384-Digest: gchrxn2h3BRgegzUIOqt5OVdsUhagjHPwM1nkQLgCjvRLGJlbvQRubX+
|
||||
fEUuyeRO
|
||||
|
||||
Name: res/Th.png
|
||||
SHA-384-Digest: fON1RmNqXUwLQYSuQQxrYQORlt7aEI0lM0ZKoj2OskMLJO4pxjRv+ASY
|
||||
zC/1sO4m
|
||||
|
||||
Name: res/GC.xml
|
||||
SHA-384-Digest: tdoU97l53185qOwAMcwEAqMXvkc10TSLmTQ/w0Jg5zf92y2KyaSFPNeh
|
||||
oGZkL7fa
|
||||
|
||||
Name: res/Qu.xml
|
||||
SHA-384-Digest: F97PwotwQWnOWQYkMXQ1RDDzT+zOJ03jpNAkLOOYVUJjto592IyPx73d
|
||||
okEA7oal
|
||||
|
||||
Name: res/jd.png
|
||||
SHA-384-Digest: MwQOsfph1zOxhThFYjg4qj9HrOK/Ihjm/clUUDHh1q6OqnYkYwwj/PWs
|
||||
sbHCKidS
|
||||
|
||||
Name: META-INF/androidx.tracing_tracing.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/06.xml
|
||||
SHA-384-Digest: YYGNWCrjRZ8sRFnQfq1fxwq7Ab2DRqkQ0RdGGclvjDLh12GwY93ubAnA
|
||||
P+l4Hvb4
|
||||
|
||||
Name: res/g-.xml
|
||||
SHA-384-Digest: D18xqYCfGgXWiRpF32nsLgVFvRGC4daWCjEz/OYMj1Ws318586qwP+vv
|
||||
K48x0XgF
|
||||
|
||||
Name: res/2w.xml
|
||||
SHA-384-Digest: 6RLkpEv8nCvSp7SWZMSxzYwVK+du4pd1W97oFLI4w6DQ3Msi9VIThvbP
|
||||
otD96tXh
|
||||
|
||||
Name: res/49.xml
|
||||
SHA-384-Digest: 2S2rSgomeIbRoz2BSvExkyArJj6IA5d+moRp0E6BZe9/d0Z5H6LFkW1t
|
||||
Q3kKf1kC
|
||||
|
||||
Name: res/bb.xml
|
||||
SHA-384-Digest: OChVqCXBh9lszIRngFSTms3fIzkvP+QtZFGh6J8W6sYgVkaouqP7fNZ3
|
||||
Lg7gKq3e
|
||||
|
||||
Name: res/Pg.9.png
|
||||
SHA-384-Digest: hc0NpBVLZiGL2F64y/Hru8vVQCmzG3xnj+D2C6svKxw5nIFKcFU1cUq0
|
||||
epLIG1ea
|
||||
|
||||
Name: res/vX.xml
|
||||
SHA-384-Digest: XA+251TrsP1BCsS+5CEhSho7Vjiw7cUqq0CjIcES7qTVeSswzNLYsnPs
|
||||
dWg3bcKF
|
||||
|
||||
Name: res/w9.xml
|
||||
SHA-384-Digest: pESIaOGKXaNBA4KCdCzoe7pjgPjbfSFFolNMU7rYspgObs2T7f5YrOLO
|
||||
Rpd0IZQn
|
||||
|
||||
Name: META-INF/androidx.startup_startup-runtime.version
|
||||
SHA-384-Digest: ITmiWuAF+c+Pj4UAzIIJAQIn3XFvV1dCIdAHYoSmOJvKd6lWT5XSw1mI
|
||||
zzCA0Q64
|
||||
|
||||
Name: assets/css/ui.css
|
||||
SHA-384-Digest: UmMe0Qo5t0+TkgW9+zmFL5HRQLE8at/LRwjJ47x2QzxoOaWuc5oUVk3e
|
||||
muM3RUWU
|
||||
|
||||
Name: res/PN.xml
|
||||
SHA-384-Digest: nfUlgdQl8Czd9n04jgcFy6Pd/yo/i0T9zUICg9N1BahOkwkkHxc27Fa3
|
||||
Z/kAeDrd
|
||||
|
||||
Name: res/YW.xml
|
||||
SHA-384-Digest: OC8A+M2FQOn8L141aokUK5fWTziIlxjpyMCEJbmv0qgbB8Bv4FZSdeLn
|
||||
3jjmX4gn
|
||||
|
||||
Name: res/sO.xml
|
||||
SHA-384-Digest: JmPt0PNvloFsmHZmE+CYuaJvl73I5zb96VOGRSWeUskFJiDmB5OqOYdY
|
||||
2NDcxuWG
|
||||
|
||||
Name: res/RA.png
|
||||
SHA-384-Digest: z4SlUfwjecJbBBDD7dq86/m/DTpnfpmijoOu5m302hshYxWTd30mdLvz
|
||||
UPQHD1wK
|
||||
|
||||
Name: res/ii.png
|
||||
SHA-384-Digest: ZdMWwCBr65jSVvTuU7/tshC/VYOC41WjLFrUuOuDdN1GdS8McxOuF5fk
|
||||
Hrz8GCS0
|
||||
|
||||
Name: res/LT.xml
|
||||
SHA-384-Digest: pX4NdvOwcig10llXsx3bpu9MuuACaHdsQlqajDTjl8YkNzJvLLFkCLpj
|
||||
d18lSkt4
|
||||
|
||||
Name: res/M5.xml
|
||||
SHA-384-Digest: 4d7Ea5l0l+ZPq7Y600+yH2unvjwnjuzodLNRzj9RxyKJ2QNjaoXwrmK9
|
||||
cBmEj0E4
|
||||
|
||||
Name: res/HQ.xml
|
||||
SHA-384-Digest: 2Rmb2gXqRyDgl9byuvpIAaP9V5Bz/H79iqnePLUil6OC9xDPY5bYMzm0
|
||||
EueTERYM
|
||||
|
||||
Name: res/tL.xml
|
||||
SHA-384-Digest: xOsRMYRC77kYzukz4oEBd95avuVQ8SGP6S4mlxAxMDBNTDQx36NsEQgi
|
||||
40ce2m+W
|
||||
|
||||
Name: org/fourthline/cling/support/renderingcontrol/metadata-1.0-rcs.xsd
|
||||
SHA-384-Digest: gGvjNfvyqiWjvxMC/XwCUM1Xu0W4v97oKz/BfSTejY5wXW6+q3dPorGU
|
||||
Qe+bfElJ
|
||||
|
||||
Name: res/a9.xml
|
||||
SHA-384-Digest: BtkyktbfH4Xzi4BO1XIFpIfeM5Bcuvx+imhvarj/2qke2JoWi8Vl5rtM
|
||||
7abnffQf
|
||||
|
||||
Name: res/color/m3_calendar_item_stroke_color.xml
|
||||
SHA-384-Digest: gXAEr8HsSsOMUK9WRDT00zEn/b7E1+D8yiFrJCD0+xukwe3st1LBR7Xk
|
||||
gUrwyIAo
|
||||
|
||||
Name: res/Lo.xml
|
||||
SHA-384-Digest: 1S4XSbRm/1qhkswzpfplJh5b9tbXrRHTx0xkna/lRWN4pQRAtyWyjmQ6
|
||||
kvicTASH
|
||||
|
||||
Name: res/eo.png
|
||||
SHA-384-Digest: 8ioR9Xc7V5ALhxWsATM23+Yu+zIzFazK1UCHFJzEY4UbTuazl2dWXzYs
|
||||
bgmTyXPj
|
||||
|
||||
Name: res/1c.png
|
||||
SHA-384-Digest: w9W4/fc/36IDLln5jrflut1f+WcNqXdCbMRf4F3ce3TcgHndD+hzTtb/
|
||||
jJlwzN8Y
|
||||
|
||||
Name: res/6G.png
|
||||
SHA-384-Digest: cyIEAqU6xummUg+uCOd+aBNr6AS3No2BbK0E8lTxZyRNF/EKfMg0LCFZ
|
||||
il/0rcVL
|
||||
|
||||
Name: res/LI.xml
|
||||
SHA-384-Digest: mw57q61bY7WJABffTru26yGi0hkc/s3EcnILR6xCqiUtip0jHXdaoyFq
|
||||
frvIO1rN
|
||||
|
||||
Name: res/color/m3_chip_stroke_color.xml
|
||||
SHA-384-Digest: vwh/Of3pEttoRqaJnnjPC4Iz1FCvm/iKodJ8+wXEtINg/uczbTk810of
|
||||
z98VWPyZ
|
||||
|
||||
Name: org/seamless/swing/logging/img/viewtext.png
|
||||
SHA-384-Digest: ML/+IPPw5ArW9euVRk/fCVwhav8V8XtDiuLnXzj7O7eVe5lIUQc4CITG
|
||||
VfYoa5ti
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant4.xml
|
||||
SHA-384-Digest: fCIVS/4alcX6NdwJk5k4ALTHz3u/XBUv5eVANDNGomZFX89sV09609oJ
|
||||
w4ZdEr5W
|
||||
|
||||
Name: res/yT.xml
|
||||
SHA-384-Digest: 770DQ4qXR/vUjBvdSxsYO70twT+7v3aJhajI7mmJe+E/lRYOJFyuk1xm
|
||||
rHLbCco5
|
||||
|
||||
Name: res/z5.xml
|
||||
SHA-384-Digest: v8AYKEQIZwxldzTPi47cxgzc1FyK11PbC1B/bKxtRIMtl19yonJWn9Ra
|
||||
5dzKQ9d3
|
||||
|
||||
Name: res/LX.png
|
||||
SHA-384-Digest: QS5NhWA0sy7Gxpuz9tL6TTiT0gwQQ2X7T4gEpbMxQ9XaBy5WbEFAkLtY
|
||||
cmy0t9cJ
|
||||
|
||||
Name: res/cV.xml
|
||||
SHA-384-Digest: xLIdrUt2UqNz1OHjIE6YyaA9HSGxsWoKgQ+Nx5QXVThRxv0Y6GkNMPej
|
||||
IwJEP4nk
|
||||
|
||||
Name: res/2w1.xml
|
||||
SHA-384-Digest: GFJDS+Chl+xho4AZA/OouCL7Yy0LBU1W1tZRUislA42IA6sqOtUwSOC9
|
||||
mPNQfLbr
|
||||
|
||||
Name: res/color/m3_navigation_item_background_color.xml
|
||||
SHA-384-Digest: VbTcpXlmzWXPbyI0DlbCVCzNcHwwbDMDbVU2KNEGyDmnmtwGvs9AANO8
|
||||
gbsahhkz
|
||||
|
||||
Name: res/T4.xml
|
||||
SHA-384-Digest: 1/w8Td0sI1x+5CbM6N2N3fEETZCgU4TeZG9+2BWT3Yd4JNWT5dW024lB
|
||||
sX9D+hzi
|
||||
|
||||
Name: res/-8.xml
|
||||
SHA-384-Digest: YLpKAeHNrBpQfCiOay7t96fz1hI0xy7+B7cC1YNQi4hEwkgVBabjD9Vx
|
||||
lwZJqLA1
|
||||
|
||||
Name: res/color/group.xml
|
||||
SHA-384-Digest: 9kQOGfzvak2H5fOFsJ5vvYzmL9MPdH4mSaVEt5I/kVWnuJtYfkNlk3ZT
|
||||
YT6HrchO
|
||||
|
||||
Name: res/FO.xml
|
||||
SHA-384-Digest: spBoG38cpkaZG86gKeofQ1Gu3CnJ2mJP0XF6xmYEOvN615fgiTdR+4Tl
|
||||
mRlFwKE/
|
||||
|
||||
Name: res/G0.xml
|
||||
SHA-384-Digest: JwhlYWrYXej5xJzS6v9LE0h3WWmGsJVaWNZz8YwADpZUdPc8kI6QW3AB
|
||||
rAaZYeZ9
|
||||
|
||||
Name: res/Yj.xml
|
||||
SHA-384-Digest: hhFOIF8t7uyTc2j8rWZ/LF4RqcczQ96zKK5x2eZXiLcmJKP7cZf+Fq3Y
|
||||
WgOfEnlm
|
||||
|
||||
Name: res/color/mtrl_on_surface_ripple_color.xml
|
||||
SHA-384-Digest: Bt//xtfFy31ZJiJw3jR1gKv6xDRagoT/zYY4A5KKsDY5IoyjWZ2/b6yh
|
||||
3deiHJEZ
|
||||
|
||||
Name: kotlin/annotation/annotation.kotlin_builtins
|
||||
SHA-384-Digest: XZyHISmUiAqIovmipIY+z1tjhg/T0SVIq54KTq/IRwZX/7uXtDSdVjKz
|
||||
dEk6ks95
|
||||
|
||||
Name: res/iv.xml
|
||||
SHA-384-Digest: QlIjmLlxmW7e4jNO2N6WACDuHITv/EPCjlBpZrz942wIWp5O8wrtiTe3
|
||||
RO7QD1fy
|
||||
|
||||
Name: res/k8.xml
|
||||
SHA-384-Digest: Av2GI7tPM+aH8+EmovqAemTK4BFWZNcyRq08NYBaotuDVQeqEohODx+r
|
||||
azUbDS2o
|
||||
|
||||
Name: res/color/m3_timepicker_display_ripple_color.xml
|
||||
SHA-384-Digest: MKdfszcTmon4ssfEFEyyfing2Ob9vBwEl78uPrYub0fG4pSKQI39QiHg
|
||||
wrYwCkZJ
|
||||
|
||||
Name: res/color/m3_dark_highlighted_text.xml
|
||||
SHA-384-Digest: BjVtlmbDIQXNVBO8WGQ/sBdgqPC0+BXEYlxtiaXqy2nNBfcSzMpXgCHZ
|
||||
cpaPHeUv
|
||||
|
||||
Name: res/wX.png
|
||||
SHA-384-Digest: F+MuunS5IR+p3FVO+5DsfNm5TroREqQ6uG/QstAfsCWXyFcw+axVB8U5
|
||||
Ft7qcuqP
|
||||
|
||||
Name: res/dW.png
|
||||
SHA-384-Digest: +lwxAUYfra71yJ8Ce0gbick4E5NkHTDYUl7d68hyoZ9P15MP7a4vK4/J
|
||||
SAnjQfdl
|
||||
|
||||
Name: res/NB.xml
|
||||
SHA-384-Digest: l9Wj1LmDoCvlcwjmrEv05RzK/VbNe2lqaHWX69L06mTwJ3HV4cbtkEgv
|
||||
im9cBnvW
|
||||
|
||||
Name: res/Ao.png
|
||||
SHA-384-Digest: kIe//JqBVvLrBAHE/RB9RKCdcwYC1l11Wki2fgDmgcB3DZxdfCsRBvXy
|
||||
bX4/+r0H
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version
|
||||
SHA-384-Digest: 9hzn8ktC2/lvE+T8yjBMZ6IgDGezETQciFc46t7rvGaeXOy6QJDexdkU
|
||||
N1w18cW3
|
||||
|
||||
Name: res/KH.9.png
|
||||
SHA-384-Digest: pHQ53glPsOjfRub3o3O2wYYZMvWgEydxLjquLwNd9nXZBkYqhdZOA3Zs
|
||||
HhU44Crz
|
||||
|
||||
Name: res/b-.xml
|
||||
SHA-384-Digest: bWMQQOgNsgXR2q2exT92ui5gJvH9OlRfpNKFItdMglgwKehRnhzq856G
|
||||
+NxpBjch
|
||||
|
||||
Name: res/iR.9.png
|
||||
SHA-384-Digest: 4mtcDRT0zqOT66v5NEDO+KdqGdQR4CSobrZqi9wZU8UQEdq2h9FxzzvF
|
||||
PQ+XOG2c
|
||||
|
||||
Name: res/OC.png
|
||||
SHA-384-Digest: HbsbVdJWNIbmLrAMn9ZB+0rPI9vM/H4MEA++Gi9NSwTqQMyr0/j/5/kQ
|
||||
0kPUQGrk
|
||||
|
||||
Name: res/f0.xml
|
||||
SHA-384-Digest: aNkKz6dHB5RwzupsXzwjjGb8/Nl2hZbxFsCM/M24yxz5D+iTxkGkoK1f
|
||||
5p0mtMjv
|
||||
|
||||
Name: res/FS.png
|
||||
SHA-384-Digest: OUtZWY1OxvAZ6KFQKWD9I/VxTVM2BiSozAwlrdEWfZyBZDRPPcxYQL7J
|
||||
yN8NtWCj
|
||||
|
||||
Name: res/l9.png
|
||||
SHA-384-Digest: AUpkNwcTpDB0pLFzTzoMJxUvI7w1RPkBJl1oCv9gY/Jz9sXs3o5sndDe
|
||||
msrD3uIA
|
||||
|
||||
Name: res/6p.xml
|
||||
SHA-384-Digest: v9Xcd7JAjvULTaUTNf5c/UKZBlnGOSTWxFOCbBIGW3Qb1+TCR9uTr46t
|
||||
e7ZCjpV3
|
||||
|
||||
Name: res/7Q.xml
|
||||
SHA-384-Digest: N/CsayMd38IZr67AL2VeCWMVnH30Ea/umWP1SiJn1F9IAZR/WIRdl/Iy
|
||||
IkabFEHF
|
||||
|
||||
Name: res/A4.xml
|
||||
SHA-384-Digest: 7DS7D4TEDqYQymPpKAltK6h3TdwSN7vNB7nzQvC8K0hMu+rEb3VOerNT
|
||||
HrEgBKob
|
||||
|
||||
Name: res/DV.xml
|
||||
SHA-384-Digest: 6hO2K20RA6sFC8Q0r3kBmzZNKomtmxTeLW4QzFBSUY6Zc41Q62Vzeyvr
|
||||
6wr4s7KJ
|
||||
|
||||
Name: res/zc.xml
|
||||
SHA-384-Digest: ShA0fJg/Ji35gj/3hkcXSBvZ34TJ8WlwOqOq7yjtzWniqlqMSsVQnCTX
|
||||
Mrjne1eW
|
||||
|
||||
Name: res/p01.xml
|
||||
SHA-384-Digest: U22lqmcDkxK/aAhnomkE2AiqvDX/1PDiNKtdN0FbFlbRfr73xfnHyMVq
|
||||
8pEoCYUX
|
||||
|
||||
Name: res/B5.png
|
||||
SHA-384-Digest: +bw2sNvxZ+diftj9RlPaLhbt7KLjZ+9pXC3/NADV/1ODs68Y0vsqB6II
|
||||
ukv2eM9I
|
||||
|
||||
Name: res/Tj.9.png
|
||||
SHA-384-Digest: wsNnM5I+mZcd/hjnOW7WnGg33MbG97VLGDQZ20NAVFU0m8Pg6kuzMZI5
|
||||
6Md8YxPk
|
||||
|
||||
Name: res/color/m3_timepicker_display_background_color.xml
|
||||
SHA-384-Digest: gmYYWqmSZkmoIq+8mK3seHElpc/N/lj5a6jXuHDLTERNVw0UIrXSG6xk
|
||||
YqHwEiRg
|
||||
|
||||
Name: res/ZZ.xml
|
||||
SHA-384-Digest: h2SM9kubUfolX0zRQRE4RpWVsYFXvk4qHN2ckxidu7ghfedLaeJE76gx
|
||||
7/wP/x+X
|
||||
|
||||
Name: res/lP.png
|
||||
SHA-384-Digest: vznK6MlmTgjxcINelh5zFs6zqcPwCUuFoLIfzKe/h+T868fZ/RBgrjRQ
|
||||
pNcU//IX
|
||||
|
||||
Name: res/hu.png
|
||||
SHA-384-Digest: XV4MLgGaYSIu0Qz+R27NTedZdbWYbhx9zi689jxwY5BUmRroHQP+WJj0
|
||||
vwBnwdKJ
|
||||
|
||||
Name: res/tV.png
|
||||
SHA-384-Digest: eWGrTI1GyexdfEgas/1eLnbi8Z+XNMtQcQbOqPrWS/EoTJsC3T2UTU2L
|
||||
jFj0/h3G
|
||||
|
||||
Name: res/eZ.xml
|
||||
SHA-384-Digest: iUwHBKFY737HIYrCYvSm2AxJ05uccit8Fw0SzeocDpd8w/IJdAkrxIc7
|
||||
OwQhCxEn
|
||||
|
||||
Name: res/VW.png
|
||||
SHA-384-Digest: L8uKgWzyVF5UGDNNA/sHlc5Ay1r3x+yoQT1Tj0sJ5w/9pUzL7V87XipD
|
||||
kPlwUZlY
|
||||
|
||||
Name: res/Mp.png
|
||||
SHA-384-Digest: TKRC25HZdEf924pkTo0hglViLTAOZoctLXQUk+K+GYJlsEjcbhmO0PRy
|
||||
qacMQ2k/
|
||||
|
||||
Name: res/cA.xml
|
||||
SHA-384-Digest: /T5aOMLdteODUAOdt3xO1BcwzZSwU58rgUOeYqnn2d6sBVDT6fsjx2J9
|
||||
sfMWO0t0
|
||||
|
||||
Name: META-INF/androidx/annotation/annotation/LICENSE.txt
|
||||
SHA-384-Digest: SS7625cNsh5VzhuqEjVcgZjBQsIthBX1srfNVFSvaVKkDBfXx8GFQoGX
|
||||
soOOD9z0
|
||||
|
||||
Name: res/9a.xml
|
||||
SHA-384-Digest: WqWKuhvnbBcJY7aixSheNo3wfqy83qYEzGIzZYWpu3dOPBHqQw6PLLw2
|
||||
8P0V+7Mu
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant94.xml
|
||||
SHA-384-Digest: ixVlRMOPh2xsCV07QASItXyxb4ks5yXm4CpJ6h2eIJGwOi/p6rYS13ku
|
||||
tdUiHc2O
|
||||
|
||||
Name: res/color/mtrl_switch_track_decoration_tint.xml
|
||||
SHA-384-Digest: 1Yjjpmo4TMEiPbliosHvRuo5f1tXFtrEQWMHSkfprv3nRUT6aeNmczYi
|
||||
9ZwF7PZl
|
||||
|
||||
Name: res/Tm.xml
|
||||
SHA-384-Digest: PAfYHNi/22oQVpFj/HBVZWHhXihGYmY7wirKuAF9Ntt/TaJKh70zQoO1
|
||||
ZTnx97U7
|
||||
|
||||
Name: res/rp.png
|
||||
SHA-384-Digest: ++s9OfQLxCfmj/6JW1VGvaDMi5Y32CsiKPrekXlBOTJe8ZsxGBqxlpVw
|
||||
EHVNIcXj
|
||||
|
||||
Name: res/jB.xml
|
||||
SHA-384-Digest: XyU8ZMfIMZW0U6k/dgERymM62PVNk7YUNcMFFEiYCjZHs+mZoxBTriaw
|
||||
nAuPCShA
|
||||
|
||||
Name: okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz
|
||||
SHA-384-Digest: rpBWd1vTeNi3xeRnpCM4n1GSiT50T01rwJwHKNNhX1fF6Wr9eFo/LaTO
|
||||
oDGJu7O9
|
||||
|
||||
Name: res/0k.xml
|
||||
SHA-384-Digest: pe1iOw67jlhBXBjBroO8NT5ahzrIOF9v5QOSXTKXb71wRvfWxfjArqbo
|
||||
ocic9IIT
|
||||
|
||||
Name: res/3A.xml
|
||||
SHA-384-Digest: 4Ck2sEZZWR3HNVl6YWq2adeZRNeSJDlULaOKP74T/TA+rYxopSxuPcBs
|
||||
uWf4/SZS
|
||||
|
||||
Name: assets/favicon.ico
|
||||
SHA-384-Digest: xMByfva4S/BaKuS+IoGmYDkEB1dT0pW80c81hCs0qWV+LlqAY5pPHa6x
|
||||
26kOuANH
|
||||
|
||||
Name: res/56.xml
|
||||
SHA-384-Digest: aiUV66RF+3I2z8lySBPW4ZW+1+dbF64gvn0PtC7u2ffoqxetsYwx+XXW
|
||||
HLMd+8gw
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_default_color_primary_text.xml
|
||||
SHA-384-Digest: THStCi2fBFPiPiBq6fU7gi9DKVjkGaRyWeqDTpvl7uRvlZ/2YyFgzohK
|
||||
9nwp8Zam
|
||||
|
||||
Name: res/Ml.xml
|
||||
SHA-384-Digest: HT6D3RDfgwZYi2apG4vdLBxdgIWCPRCTk8ofuVfPQIGgZy7YHFfuih9X
|
||||
+KXUeiWH
|
||||
|
||||
Name: res/NM.xml
|
||||
SHA-384-Digest: +kMUu56UHtP50iIVccJkIoZVtKJCUh3CtojzNoZA0oq3ATOSQqvc8wKz
|
||||
rvnC7ZMY
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/AbstractConnector-mbean.properties
|
||||
SHA-384-Digest: VL85MMaFxR1L+07cTaUEPXwCUtPlssMeR6ErqOrPe6ZHysrT6ow8bu6n
|
||||
/Zj9OcJT
|
||||
|
||||
Name: res/bX.9.png
|
||||
SHA-384-Digest: m9r7I0o2l7c545Z8CUY+zg46ARq4t3Aq9WvGL2G3a8dKzEpPrh2s1XUb
|
||||
nYvqhLWR
|
||||
|
||||
Name: res/color/material_personalized_color_primary_text_inverse.xml
|
||||
SHA-384-Digest: C28J8+a4l8o6W9S05kKh02wkFWfnoCf0DeMyJcavvHBQg9JvLqTa+GF1
|
||||
Mosf8aoP
|
||||
|
||||
Name: res/0V.xml
|
||||
SHA-384-Digest: PAyo6asKyww/IC9alWi2fLnCaa6Q3MB4ZbBLR8Eewq8BlsKncM3o+Af/
|
||||
RmBExN6d
|
||||
|
||||
Name: res/J71.xml
|
||||
SHA-384-Digest: Q0qs8UfE4ikcHQc3xHx9m/cLDL7SRsmn5lnKsQNtZTAj+raU065n6hS/
|
||||
wmPFwwyo
|
||||
|
||||
Name: res/zR.png
|
||||
SHA-384-Digest: Bn1+mO7yw3L/fopLvsFzeyxzFM2MIYgQDJGm3oQWWC6w0oNuR/Pr9Azr
|
||||
zmShxDwn
|
||||
|
||||
Name: res/tG.png
|
||||
SHA-384-Digest: BI+txq8ktpbtFhQ2GCSd3LBLMRAGu/qxGcYeaipMuIKlOkFJurwEqK+C
|
||||
6hvvjqJ2
|
||||
|
||||
Name: res/dj.xml
|
||||
SHA-384-Digest: uoLwuyBPw23Zw73fQ8Q0UiTKp1xH1yILtjeGKZHYRxpvIZhY1RzrzwYZ
|
||||
sMGEEXT5
|
||||
|
||||
Name: res/eK.xml
|
||||
SHA-384-Digest: 2wkZQfzxSwnpZdn/XGpye6VSaPwUslFoCCpLMCiReXulzhZyPIVM9KdG
|
||||
dUPXxtZt
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_internal_es2.gls
|
||||
l
|
||||
SHA-384-Digest: dtludXok2W/Hw+fnd5R58pu+dqdgMkcsKhFZOnQKGqxyx2pKbGrnXT+q
|
||||
gJOVa7o2
|
||||
|
||||
Name: res/color/m3_chip_background_color.xml
|
||||
SHA-384-Digest: YZAGSUzWnZHPS/BPIsHNua+QWrVvWTw7OPmtpetd8pMZcRQ/X2s/yqhf
|
||||
Bb6rY9rp
|
||||
|
||||
Name: res/color/mtrl_choice_chip_ripple_color.xml
|
||||
SHA-384-Digest: vtQ+aMxHGqPLmIVF12z5n20KZqS6DhuQYJWKhFMzAJ1wvdxSxtNfUHKd
|
||||
/ssoeTEp
|
||||
|
||||
Name: res/9z.png
|
||||
SHA-384-Digest: 0L44wweRKhmuyoeq8CABTd6CacvEbVztt/vdBz97aJPu6WkDnT6G2Rhc
|
||||
bFQMUaMg
|
||||
|
||||
Name: res/Ma.9.png
|
||||
SHA-384-Digest: VU5xX3jIN+eU2BIAecXbhP33ppMikY9F5nkPrREKHp9AQo2Tf/BCrv2L
|
||||
cjXteSNJ
|
||||
|
||||
Name: res/UR.png
|
||||
SHA-384-Digest: 6vAYw7KaFGEYB18vX/Bk7W56Oa370EHTBZfMWYOEN/ZEIz4v3/wfWPGX
|
||||
eX5spCO5
|
||||
|
||||
Name: res/color/abc_background_cache_hint_selector_material_light.xml
|
||||
SHA-384-Digest: kU9JRj/jJ2BvcphnzBZtsCbYpJnLQLwZVPzSLrDo1GX3PQFDoqtMPU2O
|
||||
wndOSlHJ
|
||||
|
||||
Name: res/color/m3_slider_active_track_color.xml
|
||||
SHA-384-Digest: BlobBkkbJ7M9eEmDFjhmo7IYH9keEDCAMrFc2bQgT0qa8ZmZF+QKkgjZ
|
||||
LFYDyIn1
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/reflect-config.json
|
||||
SHA-384-Digest: 4UJPL6+US147r8N0KssUKyE0COUVMRkogTGYoRXC5wccXw0KP+OfJhZA
|
||||
I/lj7xA5
|
||||
|
||||
Name: res/6_.xml
|
||||
SHA-384-Digest: eZyX1IIUvJQUbkrxf/Wi+egMy/eNz/Ls/1zEplx3loActVVcdma7KGCn
|
||||
sW+12f5o
|
||||
|
||||
Name: res/_y.png
|
||||
SHA-384-Digest: 3szr5oFV8IeC6ekbSWuGJ/Ky8BtIrzFGcVnkhn9kMEhs3D0E6QQ96S8Q
|
||||
Od2uJFgj
|
||||
|
||||
Name: res/WK.xml
|
||||
SHA-384-Digest: yetDbIcPC74JHb4eBH0rkXhTrDYl+NUTtRAGoUknNiB0+Kiiyge3JMtN
|
||||
pDnAojDM
|
||||
|
||||
Name: res/_Q.xml
|
||||
SHA-384-Digest: EXZ4DJSZddp8GSZGFghemGrP1mYy9pLoxvoAOJbF4UG7uy5pR738DpCL
|
||||
6yCXnMMa
|
||||
|
||||
Name: classes5.dex
|
||||
SHA-384-Digest: YspVPNj8iza2d3yhpC1fSGD4y2d22uq7ILww9yRSJA/8d33NN0m2bOME
|
||||
7XEq/ZsB
|
||||
|
||||
Name: res/color/material_personalized_primary_text_disable_only.xml
|
||||
SHA-384-Digest: w8KeFUGLZSVEy4hE4vSUlvNaom47BiS6xeXNT8SFP9onUr77sSmMl8bs
|
||||
xrB3hRDY
|
||||
|
||||
Name: res/hh.9.png
|
||||
SHA-384-Digest: eXnKgcsBtt0o59q+bL2QY1OHtTLkLxwZviIAuSXyoAwCdJeH0XX7Vsh3
|
||||
7/+TSTEw
|
||||
|
||||
Name: res/fv.xml
|
||||
SHA-384-Digest: hPsrQCkf7m+79vPB7qPSwVWQsWflSPRlWYhd5IlkMVCLYjsAHoS9iS6X
|
||||
HqoeYR+U
|
||||
|
||||
Name: res/jQ.xml
|
||||
SHA-384-Digest: /r0U3rsg4tDulr4hfSQrPU8QIetDdGex3c0o/+jXkpqzHtHNZZVjFWvr
|
||||
+4/tt4io
|
||||
|
||||
Name: res/d_.png
|
||||
SHA-384-Digest: nDmQzLeR9O/S/jPu2wKc63iDX9FnGsz/d73xNQpUox0z7uzdm1Drs5WX
|
||||
R8UmoVlS
|
||||
|
||||
Name: res/qv.xml
|
||||
SHA-384-Digest: N9lwkJjHapZ61iALAwsNJTWLUMaXmbBMN+uqwRHzfQtPWebv06qzbopX
|
||||
cPf9nd7k
|
||||
|
||||
Name: res/rW.xml
|
||||
SHA-384-Digest: CrZdfP232WzqvtKjqkjJWzebb5GDq0f9u7hrYNJ2QrkHesZ11ze4AE4b
|
||||
tbFpL6Av
|
||||
|
||||
Name: javax/servlet/LocalStrings_fr.properties
|
||||
SHA-384-Digest: 24IaPuPt9VZGclBsTrt4cMuVfBL5eg4RntZMl/Lhp3MBbXS2SPe3Vn2i
|
||||
lXBrHd8r
|
||||
|
||||
Name: res/yV.xml
|
||||
SHA-384-Digest: OE94SOzuwg3EBgpxtUKaHM4+U3DE3KrYs8q3VQJwAkcr10Dx/nGd9dC2
|
||||
shFxJcYj
|
||||
|
||||
Name: META-INF/androidx.drawerlayout_drawerlayout.version
|
||||
SHA-384-Digest: ITmiWuAF+c+Pj4UAzIIJAQIn3XFvV1dCIdAHYoSmOJvKd6lWT5XSw1mI
|
||||
zzCA0Q64
|
||||
|
||||
Name: res/xQ.xml
|
||||
SHA-384-Digest: 3TUDmZsLXMj7RRzY6oSWC7cUF/eptafLQNocffRE26iTgUyLfpAwXJxv
|
||||
lMZxPne4
|
||||
|
||||
Name: res/Ox.xml
|
||||
SHA-384-Digest: z4kiaD34jNnH1/bQjrcP0/JUp8U6sRoYFcYpTGFzmEqkhUe8v2Z4ZR3Y
|
||||
IaHb2fEJ
|
||||
|
||||
Name: res/fz.png
|
||||
SHA-384-Digest: PyvyvI+9xLfjdzWfJEWVzoA6uJdXuONCohmfsmnU61t7FE+eDVoMEvIK
|
||||
BNy84d8g
|
||||
|
||||
Name: res/2y.png
|
||||
SHA-384-Digest: mtBBh2hrnoAYjzVQlEKHpQpwNovieObL0Ca3o7ALWh4vMeMm/FCI2m53
|
||||
1PcHadcz
|
||||
|
||||
Name: res/3Z.png
|
||||
SHA-384-Digest: 5gTAzGv28wNcYGJE+Zto9cRiePS9nC52EHAUpe/rB+gn2+rFGDdRjUpo
|
||||
dNAiFtY8
|
||||
|
||||
Name: res/xH.png
|
||||
SHA-384-Digest: 3PYkHnc62hVzOsM7Rf5cIh+WdJ/d3AZcFzUbnuo7DdhfGKwxAU3FAP2w
|
||||
ABWVWoc7
|
||||
|
||||
Name: res/_u.xml
|
||||
SHA-384-Digest: g9X5IlUci/Fd3ZB06JgrIVo1xJPwnaTg4pSvNubVDqZbKppLP7go8SNd
|
||||
B2uD9r10
|
||||
|
||||
Name: res/a7.xml
|
||||
SHA-384-Digest: 9JTYwvAcuPO0FG7FSoIaaUTeBWftv/UBDqh4rO5Zwfi9F4NlCIeGTsk2
|
||||
UDDnkSyb
|
||||
|
||||
Name: META-INF/versions/15/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: kA5UWTKxwj5eBUpT3CSRAvcGwkdM+dG855kywwUZpmXyaVZsaJBRKJpk
|
||||
dU/k4GVS
|
||||
|
||||
Name: res/Lq.png
|
||||
SHA-384-Digest: V3GWnfnLZf9LNDch9gJzr+d0mJQWefBoWE5YFEnooLjsdsdP84SEJT19
|
||||
Xs58rXSG
|
||||
|
||||
Name: res/N3.png
|
||||
SHA-384-Digest: denpgRQktH8DWSmz32XGwdi8Djt+dQSQjKGzkw/r7pKK1z3Puk+IbaX6
|
||||
PbtQPt/r
|
||||
|
||||
Name: res/ZE.xml
|
||||
SHA-384-Digest: edmchZ91NqqMcy6fXRANL8jcNIK60354eglS5XjRU4BS6ZdlLgoF/4a7
|
||||
+kn6wH90
|
||||
|
||||
Name: res/dY.png
|
||||
SHA-384-Digest: ScUT37ov7znEq4nFQSLcg3e+mckZjqObq49xYlrXCFYjLBgJaqeVlJkl
|
||||
f2I+kMJB
|
||||
|
||||
Name: res/Oi.xml
|
||||
SHA-384-Digest: s1XWv+1YZS3Ob0BHunLoKtSOT/wejtGPY834tmaegXdQeSZLXoleKaa5
|
||||
0yAh0wlF
|
||||
|
||||
Name: res/YD.png
|
||||
SHA-384-Digest: 6/b1pOnM5TsmZQ1MBcorb1VyHq/l8q23mym5thNUmkHKMNpYgEVvDwpc
|
||||
hKLG6mSB
|
||||
|
||||
Name: res/color/m3_default_color_secondary_text.xml
|
||||
SHA-384-Digest: IttvdJHwGwqeWogsROD7EaDVrbUSmjJljlKYNhARlanLlwQKN+fr2pmF
|
||||
SkDLg+jb
|
||||
|
||||
Name: res/te.png
|
||||
SHA-384-Digest: MXvS5f20WE/LirhgaaQ12gWcyuXn1EhGcQ4/iV+QtfeTvhv+aX78jMWI
|
||||
GLr5ci1b
|
||||
|
||||
Name: res/9T2.xml
|
||||
SHA-384-Digest: jZBU3hMLIgA6N6cDKT9LOlolM0GrfC2Udtu0scC2EJGfjrg3R08mH358
|
||||
Uj2UT+pq
|
||||
|
||||
Name: lib/arm64-v8a/libmedia3ext.so
|
||||
SHA-384-Digest: RltHLY9mDNgBJjpN45cBeY2daDOdi29oY2yrVIbtpTjpo2DFgyruGydp
|
||||
H0cwj+1Z
|
||||
|
||||
Name: res/NW.png
|
||||
SHA-384-Digest: W1T5ULQRWGH9RETOUfi5DJz746EzJ5y/EB32R9YakH26gTBfqiK30FM5
|
||||
ti+Vzhsm
|
||||
|
||||
Name: res/pu.png
|
||||
SHA-384-Digest: a0elcJFBLcc6cVz6OcekUxqh38y9Ld4dpDnLkDmkEGs360ARabbqGWYU
|
||||
ixIAhTRG
|
||||
|
||||
Name: assets/images/ic_setting.svg
|
||||
SHA-384-Digest: HQnDJzxSZGRalxfvb2zjqhORdqN+68wg/iMK6AP/1s2PSFhBP5GED+7c
|
||||
kVQVTcnD
|
||||
|
||||
Name: res/Ep.png
|
||||
SHA-384-Digest: JTmUuMK51FgBKmHUxxYywowL5WaNAcI7CrQK2PbLUkEyUUR+on9X7YY2
|
||||
rAou6csy
|
||||
|
||||
Name: res/vu.png
|
||||
SHA-384-Digest: /qj1WwRvCwd9adnkR6qph9ScDmC7ORq8EERbnyb2LfBcj64hurBG0EZJ
|
||||
1vtzQ0DH
|
||||
|
||||
Name: res/x7.png
|
||||
SHA-384-Digest: BptDn7ZqkZ5yD5AeDifBvxZlj7aUY44+kekmeKt5FXjsd3Tsr8Bs2QOU
|
||||
20qugGOw
|
||||
|
||||
Name: res/QN1.xml
|
||||
SHA-384-Digest: YYzXztm7vpc02LaHBHtLIpsghbKCVd3Uz+MNL46+x+kVXRnrLrtSR2UF
|
||||
SK8D9tLX
|
||||
|
||||
Name: res/eM.xml
|
||||
SHA-384-Digest: Q/5BMvJaU1y5hOe2ALECWyHtJY11TfgwdBHqbkEhwuTKwvKD+redkjZ6
|
||||
bC9T6YVN
|
||||
|
||||
Name: res/f_.xml
|
||||
SHA-384-Digest: h3Q3g9gx3fnzJydSGMt0d3FzqU/rERQpkcUJR+87ep2XssbLMNVJvOAa
|
||||
hp3e1Rb3
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_zh_CN.properties
|
||||
SHA-384-Digest: 0F50qwdm8H6b+bExwqCPVZduhRbw4asvzEyxUeMgPkiExoqg6HV3TH5A
|
||||
kvXCoox7
|
||||
|
||||
Name: res/kz.xml
|
||||
SHA-384-Digest: APkfPDGwiSskvN+V64f1NWJmx08Jf4/mkG1jzln64v8+UY21KksNVSmc
|
||||
Gov1UMjr
|
||||
|
||||
Name: res/color/material_personalized_hint_foreground_inverse.xml
|
||||
SHA-384-Digest: HCbMtCSaYpcliYpdjfbAikMpZY2iohIYabr0qMY0RSOdHw5O+upd6+2C
|
||||
MP00vu9V
|
||||
|
||||
Name: res/4H.xml
|
||||
SHA-384-Digest: zDyLOzxm13M8k6jvkPjXozpQbwRo3e1p25ghy7T+DnzfZXhZ7HZNLvqn
|
||||
9ie2hV5A
|
||||
|
||||
Name: res/nX.xml
|
||||
SHA-384-Digest: LgSFR0Vn60Uz9F7QCLqqLsfzlO5Vu+i4b9eL4+cWGeYYQvOn5K1HtDoI
|
||||
15G9R6AS
|
||||
|
||||
Name: res/9p.xml
|
||||
SHA-384-Digest: RACxylC8oQ1xCF1Zc6BIhaF6fGDnOEl3zO4JuEVnlWTBAJDDk00nn5OA
|
||||
OGcKfak7
|
||||
|
||||
Name: res/vL.9.png
|
||||
SHA-384-Digest: KIHp3PZzTcgn8RgLXtpFhM0REWWwltS6GIjXsLO7FRAn2rfdxYOMdU4f
|
||||
t38g4ux8
|
||||
|
||||
Name: res/g3.xml
|
||||
SHA-384-Digest: d3zJxym1gGbECrVaoAjSWKWrE6gOn6FCUr+peVBjxuQ6Igd3SUhu67X1
|
||||
nySNxnNu
|
||||
|
||||
Name: res/Av.xml
|
||||
SHA-384-Digest: GgpLyWncsRIolhRK0gjzbg8fFPegIp9uxkjTHbdytYSwY4xdtxsFxew5
|
||||
WyKLGv+a
|
||||
|
||||
Name: res/BW.xml
|
||||
SHA-384-Digest: J7go12UHfiaPOl2H2TjZjRCcvSK7BmBHGwM/rw+L7yd98hDPLyQpCCZJ
|
||||
Wi4iZ1xo
|
||||
|
||||
Name: res/9X.9.png
|
||||
SHA-384-Digest: kKxYfBYUrMaQfe3MIeDzH5hMtx60vY6IETUiEh+tmCqqeeuQ/Qd5nyyD
|
||||
jBHkDR5j
|
||||
|
||||
Name: res/vG.xml
|
||||
SHA-384-Digest: YhuJ4JF1s1VzbqVLZi4iMfJN2h1PXnhOnzCv4YuKQvzOthdjhrNgPN/j
|
||||
KnxqxGgk
|
||||
|
||||
Name: org/bouncycastle/x509/CertPathReviewerMessages.properties
|
||||
SHA-384-Digest: BVGcQGS4hu/zfqSVVjZJNDVPPXkNg39qQ62a0QS1q7g7YYFb/O+f0WEe
|
||||
z/snsYun
|
||||
|
||||
Name: res/color/mtrl_navigation_item_icon_tint.xml
|
||||
SHA-384-Digest: ceU58PHHS47LYAjLBqlYJFqv/wAbFCkRKUTbATjMpt+ZSd9gCq8+zof8
|
||||
030WUmZb
|
||||
|
||||
Name: res/color/mtrl_calendar_item_stroke_color.xml
|
||||
SHA-384-Digest: MmsSpS8vhsHwKkhr7DSzAY2mA+275xe/A7dZQHyY8UDRxO9yPHTG7hTB
|
||||
3UAjhza6
|
||||
|
||||
Name: res/Sh.xml
|
||||
SHA-384-Digest: XYNEGLLFFAar3cUhLRdtUqMiNSRZRVNqBrMI6gCQeVEzxkBCPj/1gkjm
|
||||
oRU9ECRO
|
||||
|
||||
Name: res/yY.9.png
|
||||
SHA-384-Digest: 3H3QaLlLRhzZrYiBvUITlOVJ4VSArxbVz8Dea09LB3xOHW1YA4uGekME
|
||||
t15x+XRJ
|
||||
|
||||
Name: res/uu.9.png
|
||||
SHA-384-Digest: VjPICQ289rOcJD8keHqnNLEoZMzQKeVpSJ1vVFRyzVbDGH80PJNms36x
|
||||
ahGS+qMP
|
||||
|
||||
Name: res/color/abc_tint_btn_checkable.xml
|
||||
SHA-384-Digest: DBUwP+qibmHo991xVW6kxmA8McsP5OJsHvZqadFaqrIDqqEMymROyErq
|
||||
uI1ldcOC
|
||||
|
||||
Name: META-INF/androidx.swiperefreshlayout_swiperefreshlayout.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/f2.png
|
||||
SHA-384-Digest: 9bRe5ns0wsOPvIa5uhUsVThMFEJ0tiF0On9/yAfM7idKEyLduUVcq+CX
|
||||
jo1Q583K
|
||||
|
||||
Name: res/W51.png
|
||||
SHA-384-Digest: Xyvbv0PkdK6Q9u1i2Hx/FfJyGZQa1feVrtlclYwxriVrK5mjCf8uQ6GW
|
||||
vSK2Uhle
|
||||
|
||||
Name: res/color/m3_chip_ripple_color.xml
|
||||
SHA-384-Digest: CpHbJB4ezisNXYpBcY39H+RH2bTQ/DZBZKOSFspGPy5E7wQSpJ/NNp9S
|
||||
lEYpKQaZ
|
||||
|
||||
Name: res/OX.png
|
||||
SHA-384-Digest: bhmOg8yE/9EcycrtrEDJR3F8G5zoH0kCjDk8eSuz6v2gWFLl4LHWPz0k
|
||||
yH3Km2yK
|
||||
|
||||
Name: res/RV.png
|
||||
SHA-384-Digest: 6FECSxTejC7LxgYgGASZatHMnghakGoe7iANBgsQd2AxjwZuV7PR31wb
|
||||
ExWha8eZ
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-process.version
|
||||
SHA-384-Digest: iLyjWruT6+tRask7Zsf13Og5Iw5MzTYcx3vpWkoN/Sytw8+J1QDZJvKf
|
||||
eIH5vPee
|
||||
|
||||
Name: res/color/mtrl_on_primary_text_btn_text_color_selector.xml
|
||||
SHA-384-Digest: dMqE6mGo0ZR3hRwIB33IiHzfFLBsTs8Lu8mkOEZKun/u0lENBWUE7MJU
|
||||
CxjXyDnZ
|
||||
|
||||
Name: res/ZM.png
|
||||
SHA-384-Digest: T22N9KyTgK19fAun+GujpT/UKGuoZ2vtqZ4FG/TFqofqgpI5ehXhjqO2
|
||||
AhJgSWxq
|
||||
|
||||
Name: res/ar.png
|
||||
SHA-384-Digest: 6+TYhwWE9hZ+kjKS2BFNyIiwfoezXl8FrWdkaR1r4/W22KFWWTJWCiwD
|
||||
XBxw1A3B
|
||||
|
||||
Name: res/UP.xml
|
||||
SHA-384-Digest: x2vlwvnyN6yKtQMmOo+qp3p6CxsgNpoqULaTIALJziAHYc8hq2K2OtTe
|
||||
I3U63br7
|
||||
|
||||
Name: res/V1.xml
|
||||
SHA-384-Digest: 2EkCIEGDIuuP7HA31V602My4piQVdBJ7ey+AKxogLRhCWKn9x59eG0qv
|
||||
+N1YVrrT
|
||||
|
||||
Name: META-INF/services/java.security.Provider
|
||||
SHA-384-Digest: AZixVK1zrBtjHJiG/VcRam6axCdV8MWZrijORgUWzIqaMMiTYeG4uzKH
|
||||
jygMzDKq
|
||||
|
||||
Name: res/zp.xml
|
||||
SHA-384-Digest: FwOLxbxuHK+SkhTAvqxW3nVn90RC7QvI0bJqYKkuG4PHtzCfX6jTYKXk
|
||||
sS38ce8d
|
||||
|
||||
Name: res/hG.xml
|
||||
SHA-384-Digest: WAkrHnVfi7VVIkFq11Fcup6+qpcuzYTWxQwZrrO8IQ7Y/lp9Tifn6Dx+
|
||||
z5fWjm7+
|
||||
|
||||
Name: res/cc.xml
|
||||
SHA-384-Digest: wXcjpNBPgnRuDbsJ683lVBjZ0/uMxPwAxgiKnxaVku2LN9YkE5N5dh9B
|
||||
XvgYeQGT
|
||||
|
||||
Name: res/3z.png
|
||||
SHA-384-Digest: 0O0OaVEloG5Ah5JTY0wGripR3pCDedA6mFihbx9VVQikPUof+Jxl2jqT
|
||||
VBjMzs+7
|
||||
|
||||
Name: res/0X.png
|
||||
SHA-384-Digest: lOze27+I1NUKbo5q8uN4EVR+NwRUBNH/dmgZ2HgH8Tti40Vl5MN2wiA1
|
||||
MAgFZXLP
|
||||
|
||||
Name: res/EH.png
|
||||
SHA-384-Digest: 4nOg5igbKQEud2cogSGWhJFl9cT55MKhyNXjzUy3K0if4UHl+yh/Utd5
|
||||
Eiealime
|
||||
|
||||
Name: res/Z8.png
|
||||
SHA-384-Digest: LDxcvzhFCeaT3p2ZPz1vnPByvXMqfJrmKwPIKnvcsnfghxxKcOdWV9Pz
|
||||
5ERTbZsW
|
||||
|
||||
Name: res/o_.9.png
|
||||
SHA-384-Digest: g6DwdDNUgmvD13XB5GfmDGizS4XqqNIg3aQmdsF1uPj0zuxb/O+UurRS
|
||||
vPHMsDwc
|
||||
|
||||
Name: res/V5.png
|
||||
SHA-384-Digest: 2E9k2cBeqt0/WG3ildnYdmLhFHhoUhnhvf1OUpr5GE3G9IYIrsM0vS6f
|
||||
lcRDBjRv
|
||||
|
||||
Name: res/Fg1.xml
|
||||
SHA-384-Digest: 8Cqrn9tPTm9PAhq+pEADz25VD+zZ3sVrWCiL13i95q6swLB3NG3AoSV1
|
||||
FXrW3XJT
|
||||
|
||||
Name: res/color/mtrl_switch_thumb_icon_tint.xml
|
||||
SHA-384-Digest: hp0N6me2TYXB1HrI27efVDgjOy3DAh7ZnW3b6DJ90zRCImSjW2iYh6QN
|
||||
FkE/s4EP
|
||||
|
||||
Name: META-INF/androidx.viewpager_viewpager.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/y4.xml
|
||||
SHA-384-Digest: NZCHeHFCfR0DJVTJx3/BkZBx69lAA9XvKWROhsjy6/SxJATEB9FJ5Pl9
|
||||
1agJ/QcD
|
||||
|
||||
Name: res/Y3.png
|
||||
SHA-384-Digest: PlW+A3hCM024xgRfFXVkj+DhbSvd5mn+4qea3GGHvN0uKBHR75s8LQgY
|
||||
Eexh30B2
|
||||
|
||||
Name: res/_U.png
|
||||
SHA-384-Digest: Lo2pcALp4a1nky2s2ABL7IZpNdyGrenbScuU7XkBWItcEWGsishntB30
|
||||
imUTRSex
|
||||
|
||||
Name: META-INF/androidx.cardview_cardview.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/n0.xml
|
||||
SHA-384-Digest: SSeCg1RkvV1ZuMy/5+8HemYkiUh0DHSIfelhgEVbOtQHFpo/ZZh6w36L
|
||||
ZOVJOXoK
|
||||
|
||||
Name: res/RV.ttf
|
||||
SHA-384-Digest: efrBKhmOGewKhbaybaFQ6kJtfGoYFM94aXtBpYSNFgZJ6JDLnMJXPAFp
|
||||
hksqKnfV
|
||||
|
||||
Name: res/color/mtrl_btn_text_color_selector.xml
|
||||
SHA-384-Digest: vgiDRv3Hh36oWIJZZinvQMfJLZXJ884uIX1PEEBo/z2tJK3Y2vFsoVYV
|
||||
/SN3GWIe
|
||||
|
||||
Name: res/vM.png
|
||||
SHA-384-Digest: wVYWOVQrFNQr7tiXgpJm2USLiTIo9onVStaE4wawB7/UF7AFJqMWRfue
|
||||
SVhur5nN
|
||||
|
||||
Name: res/PL.png
|
||||
SHA-384-Digest: c/dQhIj/0JR7e3+29veVUy45zd99fFmCInZ6LnpIla0QOp+tC4ptCXt/
|
||||
BQzRzPpW
|
||||
|
||||
Name: res/Q-.png
|
||||
SHA-384-Digest: BkP02V9ONzspsPwrSNlnP25XUVpkKULYVrJk4arsVBb3ZleWTkZqKSaf
|
||||
wUs04Knh
|
||||
|
||||
Name: lib/arm64-v8a/libcronet.76.0.3809.111.so
|
||||
SHA-384-Digest: p+X8+fwtcyeIb3b6Kse2zs4YOl30skkeCFsZlB1cG+3+020TPrpajHK3
|
||||
uz4H/rGr
|
||||
|
||||
Name: res/2S.png
|
||||
SHA-384-Digest: U/gCV4afyRdXFu8Kuo6+6dfFfOsFVbi2XTlrba9xUfP70wwb9c9MHTyw
|
||||
ULatK0bx
|
||||
|
||||
Name: META-INF/androidx.coordinatorlayout_coordinatorlayout.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/47.png
|
||||
SHA-384-Digest: JoWkzNDaPOokdeRpFXY/XCfdcvf2tu2i6Nk7pqJ2xU3eO1UNsZM0mocu
|
||||
Y8fxU+XO
|
||||
|
||||
Name: res/GN.xml
|
||||
SHA-384-Digest: v2IP+y6P/pWb8v8KHhc8NDFx8NAuaIK7byKa/Oiko2tAG7iKqjykNYpw
|
||||
3kCBdlvG
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant92.xml
|
||||
SHA-384-Digest: 2IyyuZrYsMX1TfXJ1fzwPDl7xTxgyogBiCYSNwm7/zDWx4Iu1UHVH+H9
|
||||
KJ8jGDxy
|
||||
|
||||
Name: res/9x.png
|
||||
SHA-384-Digest: T5Jri7YRmOR3pREn21CTh3mq+aHYLnFPArTdDk17vd1GRUpdxOdWnNps
|
||||
N/Y6nL3E
|
||||
|
||||
Name: res/o_.png
|
||||
SHA-384-Digest: mETO+CZOjNfdKsoh3P9WMYE+qSs+NZtK7ib9Y+sGxk/DpCKoE/RlYFv8
|
||||
2e7YiGqO
|
||||
|
||||
Name: META-INF/kotlinx_coroutines_core.version
|
||||
SHA-384-Digest: WiL9gsoIjr0zczM6o/MWDl4bC9gpKlyXdruiClOZ4naudqPgSkfvMEIp
|
||||
CXbD7y72
|
||||
|
||||
Name: res/SJ.png
|
||||
SHA-384-Digest: dO+YNL2DL6PlFPeuSU8axqV3TyEMzhIrT2qet9m3I0Z44JClLHyGjU1y
|
||||
ao8ijrAO
|
||||
|
||||
Name: res/g-1.png
|
||||
SHA-384-Digest: mwsgQdq2V7J+tR0M/yKgOUpEC8XFxNJqcQdRQRGZNaYEsTTi44JOI0Yy
|
||||
3pB2eGE6
|
||||
|
||||
Name: res/VN1.xml
|
||||
SHA-384-Digest: R8fn5wbfZZ7w5znAlRLSkKIKXPoZvxrRYns6BnLN+mW+EchkBRqSiEBX
|
||||
u57vLW9+
|
||||
|
||||
Name: res/F8.xml
|
||||
SHA-384-Digest: OSrI1JxHnRzmOn7VA9UuwWuHNafmPYL4AcOSqT3BfrRE9aXbYvUSt9Kj
|
||||
hT7hEWKw
|
||||
|
||||
Name: res/GA.png
|
||||
SHA-384-Digest: KFMappF9t9dqMx4wKxSZ0WYHkLBXXbW8kfIsNqq15PMqAlJPYvfcCPjh
|
||||
MBgqRmAL
|
||||
|
||||
Name: META-INF/androidx.annotation_annotation-experimental.version
|
||||
SHA-384-Digest: 8beLkkbbTfzYQ5PfZ+mnJ1+6IQ0SPJBx8JCfXfJOs5S7MjsvxG08OaDe
|
||||
iYhcH1kK
|
||||
|
||||
Name: res/49.png
|
||||
SHA-384-Digest: 4SyWRFB1aO+fizSiIn1CsiecFDzb1DWhM6Ij5GTHeMidTWC/P2H4CmaZ
|
||||
09fygBAH
|
||||
|
||||
Name: res/6z.png
|
||||
SHA-384-Digest: 4M9VwvopBzykoiBh15SuRb81h+72GC6gX3CbwZe0cIceYDJvpKXAGyLY
|
||||
1zWEDvZe
|
||||
|
||||
Name: res/color/material_slider_inactive_track_color.xml
|
||||
SHA-384-Digest: ltydCcugD87Ou79VRz6jIzUwM1GHrVTPswOmA26Q4gNHxgize3bkCnlM
|
||||
ytYHu2re
|
||||
|
||||
Name: res/color/m3_text_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: hj85u4Fa5PrhT3ZdtiXs108t0UmLahFGxTpo2+62WQGD11Aw8+HaOlDL
|
||||
LE+wB7t5
|
||||
|
||||
Name: res/0Z.png
|
||||
SHA-384-Digest: xXapRsGlAta1YZCxwRFqQkwPko5MZuXnZbeg7ODlRYbZaKsow/yH4dp7
|
||||
n+44SiVv
|
||||
|
||||
Name: assets/js/script.js
|
||||
SHA-384-Digest: G8dbNdy1ZzgVd7PFtrpSvP16MU4sUP9jRL6RLCQQ7k/xXHBzcTgNlYiV
|
||||
nCVko463
|
||||
|
||||
Name: classes3.dex
|
||||
SHA-384-Digest: SpEjh8lyIU+xwzxvOtQx0sN/BEFTiXaaqlM3oe3ec6jEbU0JJV5URgBM
|
||||
HxGABhcA
|
||||
|
||||
Name: res/YN.webp
|
||||
SHA-384-Digest: QYaFKiUvsXYkplsb1ScurhYhDo7658n4/nODP/RgS5xE5ZcLoh/mimF2
|
||||
whZgGxXM
|
||||
|
||||
Name: res/ut.9.png
|
||||
SHA-384-Digest: Ic9uhNAVXr86RoelV8yr0/JZAZxX7u82IYcahyWFh+xObKKuifhLjDNJ
|
||||
9RFW0Miw
|
||||
|
||||
Name: res/3R.xml
|
||||
SHA-384-Digest: x172q0EFCfcexeAhQVZGo8WGOC+iRQ0gHzd1borVeopWYbvqPRWiGhMZ
|
||||
D059svz4
|
||||
|
||||
Name: res/color-v23/abc_tint_switch_track.xml
|
||||
SHA-384-Digest: RcCXo2k7szne1Z1INL9VUI2boXaU0pn4TVvIxgqFclB+K+S6Zo0VJ833
|
||||
qqABfQ0r
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/resource-config.json
|
||||
SHA-384-Digest: n4NRny3FGdXpIx6xOl0gAnx5MuYf/LYwHxfhl5C90QetnzN6oQSx/9tX
|
||||
p5dIypeP
|
||||
|
||||
Name: res/qx.xml
|
||||
SHA-384-Digest: tocHoFvWGALlCWCCxkUiGWDHfRBC34C3MrCITiZI5FWX10tZqCyfboHH
|
||||
G40wl675
|
||||
|
||||
Name: res/rY.xml
|
||||
SHA-384-Digest: munFCYS1G5Fr4u7wIRrZa2qbyaOf7iD4QSjwy5rPkyCWsl9kGAGUPDi8
|
||||
TYy/abMX
|
||||
|
||||
Name: assets/index.html
|
||||
SHA-384-Digest: AVGABh08ekKABN0XC/8pBdj1FczMZtxcuJjNMM/6FkwEqv9oEpEkAFlB
|
||||
uDV96Nsy
|
||||
|
||||
Name: res/d7.png
|
||||
SHA-384-Digest: a5046bDW5rOPCLjIKfKJ+CAhf3G70YwLatr+p3Jqg/Y7u088k12GAK/s
|
||||
zwaR4WgZ
|
||||
|
||||
Name: org/eclipse/jetty/favicon.ico
|
||||
SHA-384-Digest: uwg9rjA/DNOQThlho4p+d8/6ul0+QrZ50l1p081P+vXVhsDBa2ORh/IU
|
||||
oTf+BQwT
|
||||
|
||||
Name: res/A0.xml
|
||||
SHA-384-Digest: 6C0e/TmgR8Im9sEONB9bq6yf/K8MR7PtfrBe2Mgyqi5Q5cyisDKFZlef
|
||||
CK5xuV8o
|
||||
|
||||
Name: res/0C.xml
|
||||
SHA-384-Digest: LWIdUZrz9rG3uN5Z4cCGPUdreZ3ocW1zvZ89y4DJpFEUbbrvgy4KP1hs
|
||||
NcRY307A
|
||||
|
||||
Name: res/Gt.xml
|
||||
SHA-384-Digest: KAJccf5Z896P1NklWnXfkvh78oCnOMxRDXOG5v3anJb9F2CEZPbEBiv9
|
||||
D8qfCH99
|
||||
|
||||
Name: res/4F.xml
|
||||
SHA-384-Digest: gpKctNgb2kTVNAWUDKA12a0yIzjYhb+7Hf+mTs3QXgqAOs2iBZRMFnW6
|
||||
FVqAe+SP
|
||||
|
||||
Name: res/gy.xml
|
||||
SHA-384-Digest: QWDFwubKkzul6y94K6jndOCmtFtBp24/8CS2U1Pm/09hNRVnLjFaZtxQ
|
||||
O+2wp8Vr
|
||||
|
||||
Name: res/a5.xml
|
||||
SHA-384-Digest: kuqc3W+bteryOxjPXQuLlxOA0HCywrLJCnaV5IbXzLLc0xHARDFQrR3H
|
||||
g9UAfMaD
|
||||
|
||||
Name: res/cv.xml
|
||||
SHA-384-Digest: hZRngROezTSUwYUCk4k6c0HJ2w6tTsm7N/32eJtiXZRb6qfvdbl84V+1
|
||||
vJpCmaUw
|
||||
|
||||
Name: res/jW.png
|
||||
SHA-384-Digest: Q8dfVTlza1X2mkmFxPh3wNqXKeJo531YntBgsb8Xl2driIxHBbPqsg+b
|
||||
jJnzpjdr
|
||||
|
||||
Name: res/my.png
|
||||
SHA-384-Digest: QtSh+g9dw5Ss6A9oJJGB7UfUHe6nDOOqObuxan1M1CNF5J2wHypV4VWt
|
||||
nBGUfZQa
|
||||
|
||||
Name: res/YF.png
|
||||
SHA-384-Digest: mMdasgblyPTdKs4bOyKenakpKhSJ3UlfYNc2mglBAJ53k4WgqycZr6Jy
|
||||
wv7621kR
|
||||
|
||||
Name: res/nz.xml
|
||||
SHA-384-Digest: fTfgM7966CCGxK+EeIuhEEdZ/kvpbzBBx9hH6I5X7X7DRJhWfZ47g+my
|
||||
cXWH+5ia
|
||||
|
||||
Name: res/color-v23/abc_tint_btn_checkable.xml
|
||||
SHA-384-Digest: dYqKoJ+YMO9w117fZCA/nUXci06bZelw2B3yFTGjxyJ6bBb7842i1XPD
|
||||
pDSlKH/1
|
||||
|
||||
Name: res/2d.png
|
||||
SHA-384-Digest: 9BZsFwJmH1O3qxEWF6y8hFw/H/712eSmdn+7UyWLYeVG123rewRm2XJD
|
||||
kFfisaOY
|
||||
|
||||
Name: res/3E.png
|
||||
SHA-384-Digest: GD5dyD3h/T8CV/GSOjlwTUnwGlMZcQmsZrdgI9DhFlSArYIBWK0VS16v
|
||||
4TeumVTK
|
||||
|
||||
Name: res/qA.xml
|
||||
SHA-384-Digest: TEbsguqQ4TmDrhRRIeaEskxPgq84/MuwAMpFPSa/hBJbAChB8Z1YHSbU
|
||||
6+R8HxFn
|
||||
|
||||
Name: res/lP.9.png
|
||||
SHA-384-Digest: spi5A2b45rMlgjg/+dhrtGwHhr2eD5W+81PRshtlQewBJwkWCM3izdlL
|
||||
vUEyMgST
|
||||
|
||||
Name: res/CQ.png
|
||||
SHA-384-Digest: ad7di9iRqobZV3Zf4eHvLUxpmIEPYKPexITsfn5S7XkWyQ545TGHsoZx
|
||||
9TS7ncIl
|
||||
|
||||
Name: res/WI.xml
|
||||
SHA-384-Digest: IRUQvhNEzl80evXzIdGCEPfuYvZXPkc8+IMarIwclXYFQ/+E0plAMSsK
|
||||
evgb4YAr
|
||||
|
||||
Name: res/color/type_text_color.xml
|
||||
SHA-384-Digest: 0zQXu4klACjVNR4gEZOSc0oq811BfkUD1ufz/AElK4F9KeG4g2JW8yhF
|
||||
qzcKUyji
|
||||
|
||||
Name: res/eO.png
|
||||
SHA-384-Digest: FFq7b0ooP5BRXc6yXmfZiTNTyNDMwkXsIHaD/uSbwmVNWVE9oMGqPWYd
|
||||
9MYhMZnA
|
||||
|
||||
@@ -1,6470 +0,0 @@
|
||||
Signature-Version: 1.0
|
||||
Created-By: 21.0.5 (Eclipse Adoptium)
|
||||
SHA-384-Digest-Manifest: spU8j1yBPQECTKA+qk1Y6RHFwI+KNqDeRHs4+SaAg9LbKdW
|
||||
R5UsdVGNvNQsfo+yb
|
||||
SHA-384-Digest-Manifest-Main-Attributes: wtCK1yIPZiLzrTFRWjUnfq7a8dH+bD3
|
||||
8TZht8j65teAMH0MXNB4GMak7Di0Ugr/P
|
||||
|
||||
Name: res/Wr.xml
|
||||
SHA-384-Digest: idTnOuJ+4grSYpaMiUJmPr/ySHMp45l4/tfdQGr8k5nxyvLiPKYdcJ+z
|
||||
BgDzRTQO
|
||||
|
||||
Name: res/Hd.xml
|
||||
SHA-384-Digest: MAP8elVjqLDNOu07lEabbXyNrfacbdt0EioBTAVGkTSEJ+aZvW5duIiJ
|
||||
Oq2UoXwy
|
||||
|
||||
Name: res/9V.xml
|
||||
SHA-384-Digest: WNuDxjBOfnTSZoR2UB7ja+ur4qSU60KlerDjhOjQuHHCUKGEqDh4iqj+
|
||||
g6YMSLTM
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_colored_item_tint.xml
|
||||
SHA-384-Digest: 5O51i7bR7hHN4u6FEvUxNI2rYRxX4WPlTjKLS/baSvyQ4mmtw25s/TUT
|
||||
XRmRu1h/
|
||||
|
||||
Name: res/uT.xml
|
||||
SHA-384-Digest: rwkhfhxpL1XetnlL1OPa4n1G5CMiM+hH50gN+eFbVGUJdUoSArYFpY8K
|
||||
3u/TUxSs
|
||||
|
||||
Name: META-INF/versions/21/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: RTY0VA7xSQCJau8y2puTRr4E3RR26MQrHZpn/fA1bDwxKqSqe+ltBzHj
|
||||
6fjBW8S+
|
||||
|
||||
Name: res/color/material_on_primary_disabled.xml
|
||||
SHA-384-Digest: 812krOUQQlHQ1W5eiP94jDVisX6OgWHHpmk9Ye/yyK2Jc8Mev5g9C0Ea
|
||||
9WUQTzuC
|
||||
|
||||
Name: res/bN.xml
|
||||
SHA-384-Digest: unWOJwMEVf2StH55I3eIn4ql0iCN8ES6t+pwd/Jw87gdyn6HRn9VjOus
|
||||
OkwBcUgd
|
||||
|
||||
Name: res/Jd.png
|
||||
SHA-384-Digest: 28lz0AkhLR0mWLfgwkDa4EblbDAQqIqLmxUcmGCtdqQKkNSusXrwA6g2
|
||||
cQIRWssW
|
||||
|
||||
Name: res/th.png
|
||||
SHA-384-Digest: 5cD/sZe06NVCv24+fRTn8BHYV3m6HyRNgwzoCkbuxKLy3VqQOq9vx4w9
|
||||
SJdJP/Xa
|
||||
|
||||
Name: res/wP.xml
|
||||
SHA-384-Digest: 8up5bQwmCC75bKXVKT7ogGglDOhuPT49vjfeYPR17yZ3KSGf76V2eByS
|
||||
cjUXS9HN
|
||||
|
||||
Name: res/33.9.png
|
||||
SHA-384-Digest: Hkl4P7KAsPANxS1KHEJJpRGQMUTAwQBycDhFv97MNqh93ALE4PqfxUyO
|
||||
tLp0jm+f
|
||||
|
||||
Name: res/7I.9.png
|
||||
SHA-384-Digest: B8bojrlczZOQScuXZT+Mvns3TymoZ4kEe1I+og4RtmQjdu6XYdUREcjB
|
||||
xM4oIFql
|
||||
|
||||
Name: res/NA.9.png
|
||||
SHA-384-Digest: RjqWhQBclkzHfbOKxMFSxqQiiInLdN+eu9+6YzkgH+Xyq+p7/xzR+QJR
|
||||
G9jcYg8y
|
||||
|
||||
Name: res/Q5.xml
|
||||
SHA-384-Digest: ofdPTqGA/dalRcQ6FiwllNpfYB2zg9KXbrpYnBpi5duVYH3uUXUrmgXX
|
||||
4Vro1T3r
|
||||
|
||||
Name: res/QD.xml
|
||||
SHA-384-Digest: PypiGJL58dHbN5fJIaROaQ2n1XJKduHzgLr12PYKMlPkHAzBsUfwpjSJ
|
||||
+sdq+U0F
|
||||
|
||||
Name: assets/js/lib/http.js
|
||||
SHA-384-Digest: R0zDXgt8QaUZuwEkc/JGOEIZeV5D6XNCQETIu3lvIwHs5BP/4ePv9biS
|
||||
RGMC5MbW
|
||||
|
||||
Name: META-INF/services/org.xmlpull.v1.XmlPullParserFactory
|
||||
SHA-384-Digest: cmI/fwhpVkXzfbvV8K/llYXLqlCS2kpDaoThS1b2ByP6QYg9g2fRrUu2
|
||||
ocwVdDFW
|
||||
|
||||
Name: res/OH.xml
|
||||
SHA-384-Digest: zkYCB3dHhVO0C7WihbnNh/ytSYRfH/L2K17xODRuAwcww39BLTLbI43+
|
||||
6DabCvOb
|
||||
|
||||
Name: res/color/m3_bottom_sheet_drag_handle_color.xml
|
||||
SHA-384-Digest: ZwTfd6tk6+pqIHaNET/1mNePFnrYBrNgUQ+jEGa2d36Cb/ZXL/FbJKGl
|
||||
7Mnykd/9
|
||||
|
||||
Name: res/Da.png
|
||||
SHA-384-Digest: K2zeuJnvYSI6ViEW47YWSvIizXpmWL4yk8LXrUuDbP5wzxl09ge5ritZ
|
||||
qs1zeBC0
|
||||
|
||||
Name: res/5O.xml
|
||||
SHA-384-Digest: He5teL95AdBR2qG77zN4e4mdy7jkJPsVEN5O7mjP27G35joXirUMjm0P
|
||||
mezMrkid
|
||||
|
||||
Name: META-INF/androidx.customview_customview.version
|
||||
SHA-384-Digest: x+f6M3NBbU7KqnJew83LI2yu6yGAE8+1Q4zf0D1gNgAAapV7gdqQfEMl
|
||||
dXDy13OK
|
||||
|
||||
Name: res/tw.png
|
||||
SHA-384-Digest: VrzmhZkubMKTZYAc6DUO8iODfZON4TuQClxfqEmLlVcTWPxs0WzO0K8O
|
||||
NLorURJr
|
||||
|
||||
Name: res/uX.png
|
||||
SHA-384-Digest: wg/SgrbR/J54RUKYdWa/XfRM8F7mPyZqU0mIv3i+F7tu+0AmZVlWkXNL
|
||||
GEFvfXgn
|
||||
|
||||
Name: res/1K1.png
|
||||
SHA-384-Digest: Om1Kth7elJxHA03HUt+55ci5ojTFkKafvZI+4ugdH7bWZsMaQ6HyUPEG
|
||||
ijcCDkYQ
|
||||
|
||||
Name: META-INF/androidx.room_room-runtime.version
|
||||
SHA-384-Digest: uCBAcGCirOmvVwGsX/q8kA9krcqAiJYKY3khx9QugSU4YcE1MJA/YSyz
|
||||
3q3qPIBp
|
||||
|
||||
Name: res/TL.xml
|
||||
SHA-384-Digest: YjmWzoCzItdMBEFwytN2D59MdjjAwmS0nz+3aae6/sYM64f7HWgP14If
|
||||
SFpS9/8Y
|
||||
|
||||
Name: res/0K.xml
|
||||
SHA-384-Digest: c/KQOp4kqBasOx+kZTVjiHGZVqJwWH/8zgjaQCartsAqFmfiShS0ANBK
|
||||
FXsdust2
|
||||
|
||||
Name: res/color/abc_primary_text_material_light.xml
|
||||
SHA-384-Digest: 2ohgYgi+nmmC1/NR+p78dEtn1ZlZakiPutOyjAhVt95NSpeEq1jFYt1l
|
||||
gQko9YUx
|
||||
|
||||
Name: res/hm.xml
|
||||
SHA-384-Digest: GRITB98YSXLsOSqt9sGUfajSdiWqDD3DiuM7Puci3im5UwHSQ1ogDmNg
|
||||
7FGso5Z3
|
||||
|
||||
Name: res/et.xml
|
||||
SHA-384-Digest: izfxCEsQ38h7PhB0b2bZ4BBJWP0xeXkeNxrp7hy4B7KCPHlJR/z8IDv/
|
||||
HBqGmXoN
|
||||
|
||||
Name: res/cZ.xml
|
||||
SHA-384-Digest: 7tHOHDOH/+AsgrXArICu8CM926flbrvfwzdpovj46XKQ6xIfKL3jfuQV
|
||||
T8S1nK6U
|
||||
|
||||
Name: res/B6.xml
|
||||
SHA-384-Digest: +LkxO7KeA068p9VUNy4BnUD6oS+AbhyAGIbEdAoPV3Mfifo+h/AGdVtO
|
||||
MWg1YcPx
|
||||
|
||||
Name: res/color/abc_primary_text_disable_only_material_light.xml
|
||||
SHA-384-Digest: MYu4UABn3I8QBVJKP0PRytb8mPGmd72+4fU4fp0Ob+Mddj4iMv7oQMnq
|
||||
vARjTLB3
|
||||
|
||||
Name: assets/test_base_module1.mjs
|
||||
SHA-384-Digest: 72e1vHdyew76EmHADCNdu8V2Xv3LmFllVn/PHepuM2XETBX7LZaZ1c6e
|
||||
PMpez2ys
|
||||
|
||||
Name: res/_7.xml
|
||||
SHA-384-Digest: JSfzjsI2QUcHYmDLDlF0NCmu10Oqpa8z6jL12MGBp8dlP91VT4vhHjr1
|
||||
qbMx+Jkx
|
||||
|
||||
Name: res/color/m3_slider_thumb_color.xml
|
||||
SHA-384-Digest: wC5s+umUZMmJWK25/RQ4A6weH63RhlK00G64BZeIiXeln7cKJQM3Y0l8
|
||||
cm2nLKff
|
||||
|
||||
Name: res/sX.xml
|
||||
SHA-384-Digest: TciRkUBmVfUX0Sa4V4PPyH7dWEbuFdPM9YSppHCvzTpCw20Xyff7j2gA
|
||||
VRz/0O1E
|
||||
|
||||
Name: res/color/m3_timepicker_button_text_color.xml
|
||||
SHA-384-Digest: h5yIIlyDATg0DbwPI83NGGPEVwWyEnA2hI+IAZPC9LTIOlm2cIZ12JRn
|
||||
Ly6q0veo
|
||||
|
||||
Name: res/jx.xml
|
||||
SHA-384-Digest: TLwwIeFcxelkkhB/ZO+8E5Bq4kevV0UEkvFeYGx+cCVOoXQpty4+9DAl
|
||||
RvG98WoJ
|
||||
|
||||
Name: res/color/m3_slider_thumb_color_legacy.xml
|
||||
SHA-384-Digest: h8icCKEa7s+n1s5qSuGrhGsYvcoNWH2T0T7Jeertd99nPw5QsLpVLjbk
|
||||
irxsOnP6
|
||||
|
||||
Name: res/UX.xml
|
||||
SHA-384-Digest: hm7XMXjcBztx7JQWZjad4LBRw9UzI0IsU0ZsyaZMOdEmyemNWkxjGy2M
|
||||
kEoT+xbx
|
||||
|
||||
Name: res/df.xml
|
||||
SHA-384-Digest: EY6I1KqZWfzZ449A9RlsgxpHoPMuWxVUocqkt5e7UfGuKtR9Gvf9mFyB
|
||||
Leio0A7j
|
||||
|
||||
Name: res/5z.xml
|
||||
SHA-384-Digest: VESPhmZHV6tAv/riFsnQk+5VU1OXLq1m1Tlw+YBsNEnQLuFlNwaFKir1
|
||||
3cnPsqEx
|
||||
|
||||
Name: res/bj.xml
|
||||
SHA-384-Digest: GmWETGi9c3O9fywSoL1DZ2hxB/Ks6KkaU7qDmHffLpqPZZ27XyCEqz6V
|
||||
WF27lQAx
|
||||
|
||||
Name: res/color/text.xml
|
||||
SHA-384-Digest: u8UGls2ZbZHPkAx8FTE4Lv3Owli0t9ux2OrwAT1m/168y0OrZxOylWV3
|
||||
zfN4M25s
|
||||
|
||||
Name: META-INF/androidx.savedstate_savedstate-ktx.version
|
||||
SHA-384-Digest: 7zmS78TrX5a58R4pBlbYv6d0B1yGt9W0FiyDGymt9o5tyJe1tGfQ866g
|
||||
iPzm/oZe
|
||||
|
||||
Name: res/4_.xml
|
||||
SHA-384-Digest: 5A2AxdigI0LY8h53fmVPGKZKX7zhid1QPHzOf+MY9fGozufQEigrYa6f
|
||||
EkY7zYex
|
||||
|
||||
Name: res/color/material_on_primary_emphasis_medium.xml
|
||||
SHA-384-Digest: PAMjzknPyJ88ZJnNINTrmNtlAP5RnZMU/b30b26Z+rOPmdZ8dR49d8aO
|
||||
XzfKIU2B
|
||||
|
||||
Name: res/hZ.9.png
|
||||
SHA-384-Digest: AU9czvte0gBRCEoZnj7JDHnaxdEuhGZK+eeCFXb7xPEFhl0IjudvAs5r
|
||||
dHIeBA5C
|
||||
|
||||
Name: res/nT.xml
|
||||
SHA-384-Digest: DCmxeg+RxdYXvAxd5fiE+vdCoOOseYqe57XsU5BfetpQuM7hTrbScmLv
|
||||
Z3i3AEsX
|
||||
|
||||
Name: assets/images/ic_search.svg
|
||||
SHA-384-Digest: Bp0D+tB7X16P/euiUZOi18tGvw7qcIRQviey36CgQh+LQVm/dvLEIOPg
|
||||
6vvM+ZWQ
|
||||
|
||||
Name: res/s3.9.png
|
||||
SHA-384-Digest: Dt/ioJBnluUzC89qTVvLK5RGAmtNMf7sNQS7eMgEi1NraHNa/QXO+eOP
|
||||
51wTeNxQ
|
||||
|
||||
Name: res/aF.png
|
||||
SHA-384-Digest: UARBNlMr7q/CYts0FYpfyhfL2kWMciknjSO6nX1Q8OgLkx73EDHFgZqO
|
||||
p/OcYqjC
|
||||
|
||||
Name: res/up.xml
|
||||
SHA-384-Digest: KpXtWSv8fstwU59XQLRDVCU8Ft+qwjGtWqlVIxE4VO70TQ6z3fYfNW8D
|
||||
8l2/hSlk
|
||||
|
||||
Name: res/yn.png
|
||||
SHA-384-Digest: 8KoVS2e6NUdBlSfslYx5UQhsVeW/BTamgMf4ZAO9hyS/FAw3KUOOQYwm
|
||||
rsA+T6ip
|
||||
|
||||
Name: assets/css/style.css
|
||||
SHA-384-Digest: /PGLdCTpDXNz9NUD3+EM4PmSh35IgPWLlO4uBwKjdqphPRoKyiMnmx5m
|
||||
LAuzLZe2
|
||||
|
||||
Name: XPP3_1.1.3.2_VERSION
|
||||
SHA-384-Digest: 9mnZXYTIecUCW0kADWNdurGs5q/02NSxnW++TFzvv8FSylIibhithNAj
|
||||
HIquBEpm
|
||||
|
||||
Name: res/P8.xml
|
||||
SHA-384-Digest: AOZCtguTP16GgAk2EjwlOECOAGX20auOPJM/Fzbcn7XMyi1RFTkRKVF8
|
||||
5LHF58mi
|
||||
|
||||
Name: res/color/m3_slider_active_track_color_legacy.xml
|
||||
SHA-384-Digest: cc1LdFeqq7g1M6uPs3y4ZfEmRmaCsYYHUB9nS5/Yxp9dfJy4QyOIZqMD
|
||||
XhR2nByM
|
||||
|
||||
Name: res/gr.png
|
||||
SHA-384-Digest: i5wOCrYQopHnOfr3UUgaYScCIoLYXtvTGBlbxXDr+mJEDe5VVWyCUydS
|
||||
ILi0QhJ6
|
||||
|
||||
Name: res/i4.png
|
||||
SHA-384-Digest: V1uxZqfnrBqlX6WGnx/Bg1c1rE7klA9RZ5H4sjEBk+MqLrGLXrmzCmAC
|
||||
KMcurWT/
|
||||
|
||||
Name: res/oF.png
|
||||
SHA-384-Digest: scY1ph3dHbHdmA7PTheUY44nq9yikbuU1YovskxOjArGngn4m9T8LeRj
|
||||
mfXA+Itl
|
||||
|
||||
Name: res/gR.xml
|
||||
SHA-384-Digest: 0+IBvj9URyv4MvLW0MieHGgaWRnZbBBCX/24REWxYF0Z455zs7mueG96
|
||||
Cxt9yYZN
|
||||
|
||||
Name: res/UO.png
|
||||
SHA-384-Digest: v9pqI3aMZXOaaEZv0uNEbopjerSOqQPZWHRvcvsab4PZaQZt/yOsQJnY
|
||||
NONpaS4Y
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral96.xml
|
||||
SHA-384-Digest: Br7LOo5vW9SiiN+jkuAdVjFqyx6TjIztcrTA2qan1LEL1abAINxePkfq
|
||||
PkQP6nR3
|
||||
|
||||
Name: res/L1.xml
|
||||
SHA-384-Digest: bURkmznNDf7O9m8koBAjhXann3NT+lZidVrCmUFQ2lQO/whTc2/xNzAB
|
||||
uwu2xpam
|
||||
|
||||
Name: res/color/abc_tint_switch_track.xml
|
||||
SHA-384-Digest: uKfCb/8bnIPswVD8itZ4pZ6BpScs2jflNcz0oW1FhGGuk36nO5p+xrC/
|
||||
R4ullaYz
|
||||
|
||||
Name: res/op.9.png
|
||||
SHA-384-Digest: vIltv5PI/CqP1oi6v7B1NTNMfAO8PwGECOB9nr0Am3MpxCL4wzclGvau
|
||||
Vxf3nnm2
|
||||
|
||||
Name: res/kh.xml
|
||||
SHA-384-Digest: cA0lQXjqjnXpoIeEieSEKsykThjBEiNsAdwLuRHmdzeh17YPsWiB8qYa
|
||||
85YaaqIw
|
||||
|
||||
Name: res/M2.png
|
||||
SHA-384-Digest: 8EJkhukB3mkLLtxMLZu0AR7Kdbr+MT5nKw3oF1ABLjxDa0IF9snhJYHv
|
||||
Bmavi2Nw
|
||||
|
||||
Name: res/gn.xml
|
||||
SHA-384-Digest: zQMivYEJQAj85p3KvSktTmbE3WevN2JiKgcDr8OF+X7Kycjgh/tJMcXd
|
||||
AhzPiv1G
|
||||
|
||||
Name: res/5D.png
|
||||
SHA-384-Digest: C9f9gIzNbvNC7UovAS+FkaDSEkmR+2nPgw7tiFsNMiMnX8NAUpUc1OOc
|
||||
9YI1IMej
|
||||
|
||||
Name: res/qz.xml
|
||||
SHA-384-Digest: 5zSc7iEsYpHyfPdyKFjwUBSEiHcCRnqj3JpU2xFZxtmlMLrrYtH1LlaB
|
||||
gsbdwKCK
|
||||
|
||||
Name: res/Mh.xml
|
||||
SHA-384-Digest: kgbwySrB5PCZleoja4wsl8FbT9+4+Lb3R6QAhELJQ2+cNSAtnwB7zGYQ
|
||||
97/JgrJ/
|
||||
|
||||
Name: res/color/m3_textfield_filled_background_color.xml
|
||||
SHA-384-Digest: YYfSj75C0JyMxh5E3+gS6A69AYGCmmxcS+Tgg/x5w+VRRzfmsT5KUpW8
|
||||
3UGw+eZa
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_default_color_secondary_text.xml
|
||||
SHA-384-Digest: KhB+OyvfCQB5w+FjwT2TWhC60TWIVpXYK2j8vCOVr3/z58jFNJwdu5g4
|
||||
eomRKyus
|
||||
|
||||
Name: res/oB.xml
|
||||
SHA-384-Digest: rPodO/iwhF3EHey9cDSWi3N3v3W7duRMxoSGpR3sj+EkRJmmyOSrKED1
|
||||
vYu4/pUx
|
||||
|
||||
Name: res/GM.png
|
||||
SHA-384-Digest: 4nhnigZ+9+I8nRB1sKbGzyvJoysUq0v+d939tdvt/QIVakyM2t/KAIyH
|
||||
zE0PkKsA
|
||||
|
||||
Name: res/fd.xml
|
||||
SHA-384-Digest: h9efeQJOzHJ83bSFsJao+zZLWghH3dX9zTTccMcrhcGmGjIZlOVb1WHE
|
||||
fnOi1GGy
|
||||
|
||||
Name: res/2T.xml
|
||||
SHA-384-Digest: cbeLDXIQE+6kiOkzLLNZwA4C6Yy95Bcj3mECGi6sVrfU3LDxBFjgjfL3
|
||||
CXbVtcvU
|
||||
|
||||
Name: res/color/m3_popupmenu_overlay_color.xml
|
||||
SHA-384-Digest: rb86ouj4hGlMSeaLztUC2SwS6yzzrvCdTwkR0Nm3Xc1RLsiSFCCQ8YaP
|
||||
v26S013b
|
||||
|
||||
Name: res/YV.png
|
||||
SHA-384-Digest: NfXyBZyih5gpxvusb4BgHBUmsJYaSMzodterzIEtDfVinNGYnXOItlfP
|
||||
i17hIg8D
|
||||
|
||||
Name: res/Z7.png
|
||||
SHA-384-Digest: ppS7cxpIAx6qG0+C2I6iSIOKaJE5o+C30camajS7fT4i3VqRGLke1ZkV
|
||||
Z+gi60Eg
|
||||
|
||||
Name: assets/dexopt/baseline.prof
|
||||
SHA-384-Digest: kICzefqwPPnczaeRAcxPWkMLMCmsDKWHV5uDvuOlkYCz6OZHKVNyAKlE
|
||||
nbnofmIX
|
||||
|
||||
Name: META-INF/androidx.exifinterface_exifinterface.version
|
||||
SHA-384-Digest: LoQjyhn6Ol9ftQRXpE5hvIjmPuaYcD5/TgRG4juO7ls9TJxnfYaHNLHH
|
||||
2uP2QNBv
|
||||
|
||||
Name: res/E5.png
|
||||
SHA-384-Digest: BwRClQlB6ZZ/3YnW9NFCxOiP9jYked3U70wBSQQrNf0asP1Es0cdfIUF
|
||||
pEota9tm
|
||||
|
||||
Name: res/Fu.xml
|
||||
SHA-384-Digest: 1mshigY4lh5No6qjqPUaU/lJlW3ykwLB9xeb6S3crT3AdIB1flFsQLz5
|
||||
NmMq0uiW
|
||||
|
||||
Name: res/QZ1.xml
|
||||
SHA-384-Digest: ueDG5c4XrX46OZep2gygT99JpLdpt/5MHlUoGEev0WxQ7DATKE5ekBFm
|
||||
y6gwQYs3
|
||||
|
||||
Name: res/tj.png
|
||||
SHA-384-Digest: k43/4BzhIrZTOhqMXL967XDQbhG2+KET5miH0C4LN4NAqIgBtuwrORcU
|
||||
sop6y6iC
|
||||
|
||||
Name: res/Gt.9.png
|
||||
SHA-384-Digest: ZwKa+WpCC75muylnbMmih6hi/13RDv9vCyVqpZsHMfZZzudbP44W5syK
|
||||
2M74Fhup
|
||||
|
||||
Name: res/Yp.png
|
||||
SHA-384-Digest: NW8Meyx7/C5tDBVLDYmMvUIcOwsKQXcwGa8jmpJqly0n7ysrBmfHNs/w
|
||||
FUae7FnW
|
||||
|
||||
Name: res/lv.xml
|
||||
SHA-384-Digest: j81ejnJA7RO3dCYmwxHIyqmwlnLQuhi/iFZgisY7tsNp2HdkvbnPrlf8
|
||||
pp/VGfC8
|
||||
|
||||
Name: res/_o.xml
|
||||
SHA-384-Digest: oZS2JTAc7seSC3dPy0GtNXJ+008ZJsK7p9KVUlrzH/quR4sHbdrDQb2a
|
||||
AwH6MvVz
|
||||
|
||||
Name: res/a1.xml
|
||||
SHA-384-Digest: wKHyELLKnP6pSHxm7TCV1SR7/Z7RWSzdXhArIr7aOBRKUBtqaZt39l63
|
||||
bwt0hVYj
|
||||
|
||||
Name: res/jz.xml
|
||||
SHA-384-Digest: iPWl8c6NeUY0xY4M3/8ewEZ3SkDvNpzW/zCg/wTZ+lsii2ZDaJxybNDQ
|
||||
ZL75G527
|
||||
|
||||
Name: res/PV.xml
|
||||
SHA-384-Digest: VFWTPZJdyv8l1myZC+vXlCrcDm5tZNzBkOt0R+jT7/6dxuIfsVAhsH/H
|
||||
I0GQhwFJ
|
||||
|
||||
Name: res/Q7.xml
|
||||
SHA-384-Digest: garSwj5BJNaS2vanJnOQjfYEOKZpU/1ZaPd1m75N610IHrwr5zIzgEyW
|
||||
g/FDjNaz
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/didl-lite
|
||||
-1.0.xsd
|
||||
SHA-384-Digest: Vqb70kZmHnDRzop0smQmY9Y3BgnZCz27eL/AIaPbOqhqtNy3OWXyXNkm
|
||||
v2w0HzMS
|
||||
|
||||
Name: res/3U.xml
|
||||
SHA-384-Digest: se2NQciu1B0r5QwSzysXHnJjMyE7vlnmreCR+/YlFcC3LB83zqfEowZW
|
||||
itXOsvLs
|
||||
|
||||
Name: res/46.xml
|
||||
SHA-384-Digest: ChRep6I9RgOfNK/XYk8gCFKBGhJQKCQbw+utUpnRPmm/3OEuz4pIotRL
|
||||
enT+Vdvm
|
||||
|
||||
Name: res/color/mtrl_tabs_ripple_color.xml
|
||||
SHA-384-Digest: 8tqR3zp05LTPs/pZFyDx0aaS9w76L0Zt02COGUeS7Nka65w80C56LcOp
|
||||
WicuJRfv
|
||||
|
||||
Name: res/My.png
|
||||
SHA-384-Digest: 75tQGUj+Ysvc0Qw3muI0A8+5SNd5BVNsHKcMThG/zOZvCu4k4b2LpUJB
|
||||
sdeh0hX8
|
||||
|
||||
Name: res/uR.xml
|
||||
SHA-384-Digest: wU/Oj7Xdn+fHguJmQqqtsK29roFGJg6g6bV0XHffo8APA2hyxk8RAVAt
|
||||
Eavh/ok0
|
||||
|
||||
Name: res/ec.xml
|
||||
SHA-384-Digest: ZVI6aJQlKeJFXtPfhdqs0tXTCRMXYBSdZZLXvKb3Mowp7d7uv6rW+cmT
|
||||
D4CwXAPp
|
||||
|
||||
Name: res/pn.xml
|
||||
SHA-384-Digest: afPkCFsQyNYMSf11nrkoylATUQD14CT8vbXCziiqVKsb/LmZK+sonrOL
|
||||
QEUkTtnp
|
||||
|
||||
Name: lib/arm64-v8a/libjpa.so
|
||||
SHA-384-Digest: CpJl9DxsVk4xaQ81SZQrBUme7YdJwV+52MMLF+knOWhS1QfHvt9ak8LU
|
||||
VxDXP8A3
|
||||
|
||||
Name: res/5U.png
|
||||
SHA-384-Digest: JjtlHcMnxqCDqS8YfLz+YhITLzZ9wqVnCiQ9K0TiHgiI3GV55P06XgPe
|
||||
iZbxALqb
|
||||
|
||||
Name: res/YW1.xml
|
||||
SHA-384-Digest: sib+Mckva+HIR4byA8sgzN7HG4UBBFrWcQrnbURruuPnycef3Yhwukqg
|
||||
k69YV10y
|
||||
|
||||
Name: res/GK.xml
|
||||
SHA-384-Digest: uXF/Wpw9VHf1j1T9NrSAetu8WpfD4Wtfi3bH0MCwkDhlOmpf6eTV61bw
|
||||
gVuFGh/P
|
||||
|
||||
Name: res/ZM.xml
|
||||
SHA-384-Digest: aInpUVU+UfO+tjSzzs2TJ1H6V33/kGUrty/3oBAYZKz2YfAZjyDdSylb
|
||||
wLZqNyYb
|
||||
|
||||
Name: res/Ui.xml
|
||||
SHA-384-Digest: FnfIYnxsx43thUfT8LkcOZs/l46P2w8vHQJ4NKRHeAOS//ZCD7BSYPw4
|
||||
EZZeBbbj
|
||||
|
||||
Name: res/8s.xml
|
||||
SHA-384-Digest: xZGdhAVuscat98fzp8qodw9yRtND7Dw0Nj3j1wr+lQ6w3NKRK3/Iu01Z
|
||||
U7G65hSJ
|
||||
|
||||
Name: res/9T.xml
|
||||
SHA-384-Digest: wSG+2vBlec3rHuuxhoBBTBwviMT9XtTneSMFIPlp6b8qxYIsJQyyd43w
|
||||
l8GscwB3
|
||||
|
||||
Name: res/color/control.xml
|
||||
SHA-384-Digest: IRqk/+EBRvpg3LLtqTzXDw7UyKj03Zw+aCuDAJMib1Zg0URFuVyIxScm
|
||||
hnRSlZwE
|
||||
|
||||
Name: res/n4.xml
|
||||
SHA-384-Digest: /dfE31ox/0sb4TQ24p90ZakwjT5aQCffLMdL0P49HJEI9WbN8Gu+DxYV
|
||||
XO9s4+zL
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_primary_text_disable_only.xml
|
||||
SHA-384-Digest: 6gnvATWMZ/mXFN9tx5VcRkaiw4oB9WR+XfK6H8NDppoieZklahcBRKs3
|
||||
FiOVZeCt
|
||||
|
||||
Name: res/42.9.png
|
||||
SHA-384-Digest: bAxFePiHYhFiWs1wN1VTkcMvbsNJrnE9E1XfGafI5bizXdjHiTiu6uVV
|
||||
t9WuI+jC
|
||||
|
||||
Name: res/rJ.xml
|
||||
SHA-384-Digest: 8K+ZwxrVpParOpZi3HhUWXiFmo1IEQn8JuVAoeAt/7nGLdO72UeOvKVo
|
||||
CfG8jVlp
|
||||
|
||||
Name: res/EZ.xml
|
||||
SHA-384-Digest: UQ9M//aLi26z9X2gkAsNrNn+nSFX8Z6PVsyZOzjFO4hHCFqlod4l7u6U
|
||||
iZrSY8n/
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/native-image.properties
|
||||
SHA-384-Digest: Eyatm+51aFgovEp+zn/7H/ypoCJz15NM2olB5dmhtXDcVip+14xPITFb
|
||||
HF0iik86
|
||||
|
||||
Name: res/mf.xml
|
||||
SHA-384-Digest: BpDzrB0nsmUpwv6TjM+GDKuX//b+fzwKKijRmwN8yvU26nBLqEPJT+XZ
|
||||
4XQH/PSN
|
||||
|
||||
Name: res/JS.xml
|
||||
SHA-384-Digest: SSQZalJOsxkBbs6/tc7InJlsVzL3RkloL0Jnk3dgT+pUlmsg9naHJAiG
|
||||
LajJ+B8n
|
||||
|
||||
Name: res/color/material_on_background_disabled.xml
|
||||
SHA-384-Digest: umPhq2p2BVem958gaaJG3oIGY6fbVROB7hH8aNhkoG+7pP+I0yuts9mR
|
||||
WiyylvL6
|
||||
|
||||
Name: res/-6.xml
|
||||
SHA-384-Digest: mP0W3Ov/CkPlzgMWw6Hn4kgfskjr0z8J+KWu9fAlGfv/nb92EU7cYD5y
|
||||
5PqQTrXQ
|
||||
|
||||
Name: res/9T1.xml
|
||||
SHA-384-Digest: IM0gBPCa2y/fdCRP0B+rgmDbIc5jS/4Kc9AAaJd929+jEKM1MWqaWtHG
|
||||
NAP/dvwi
|
||||
|
||||
Name: res/color/channel.xml
|
||||
SHA-384-Digest: y5VqiKPYMz1vfwZXTcEb95JEiU0syDDDB04K1+ySeZdrJUzm3w0Fy/ak
|
||||
w+PYs6IJ
|
||||
|
||||
Name: res/ue.xml
|
||||
SHA-384-Digest: GGrQqAn28XRAQpL+ziGT9NyhpHsZ70UTAQ7kufw7cfRbeSUkULkNMzbm
|
||||
TsLw+p4G
|
||||
|
||||
Name: res/vF.xml
|
||||
SHA-384-Digest: +ZtTifknSu9b0sb46XqF6IRR2nElxiEGeX8VzI1uSBUrtC3xvvzfaibm
|
||||
sei/pklh
|
||||
|
||||
Name: res/k0.xml
|
||||
SHA-384-Digest: /aW++hejWwRi1WvbQjLfvaT0iOnYi64JbV02BHDTUavIfoaE+cgLyGht
|
||||
BeQutnbo
|
||||
|
||||
Name: res/color-v26/biometric_error_color.xml
|
||||
SHA-384-Digest: AwmZ9HIL0BkXwmkpvBopJ9oxM5I4ApB7pw/baonNaM6fS/YVwVLaGL+v
|
||||
lzoczjw4
|
||||
|
||||
Name: res/Tl.xml
|
||||
SHA-384-Digest: RDRQJK1M1lFaxCYQ+3tQaWzl+X396Y3n6g/cVB3IeV4rharlfVXRTELQ
|
||||
L6eardVu
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral24.xml
|
||||
SHA-384-Digest: e5/elpvU1k49A8NCseOjzyiwXWEzEYmv20Z+L+qtkDZqJWNIWZxfzMEL
|
||||
7PIDBgGR
|
||||
|
||||
Name: res/fS.xml
|
||||
SHA-384-Digest: nmbnLWWm4rcACBeu0qZ1TQhz3E2arv74HBhUAD3RAHtiAuHVmdzBV3Zn
|
||||
M9PIg5yN
|
||||
|
||||
Name: res/vq.xml
|
||||
SHA-384-Digest: YChTCqT98mJMdpmQFtipDTPiuukGnxUGjEIUhEdlOswfRZpd/OXmWx1h
|
||||
XlB5w5oh
|
||||
|
||||
Name: res/Dn.png
|
||||
SHA-384-Digest: wpxafCZIJXA5YIQppyn5kITVn7tKE8wgVMy2xnxvc1YQC3dVBdVe37+s
|
||||
ffClZXAj
|
||||
|
||||
Name: res/R2.xml
|
||||
SHA-384-Digest: faFaU+S7e+rRU2il/5WjUg7VJRD+SVM4B6WeeEz6Bf41JOZWqlJRwuW9
|
||||
LS9nwG/z
|
||||
|
||||
Name: res/bP.xml
|
||||
SHA-384-Digest: EK7Wxx6fHUkeIHLbWzx3ZVCpZOmEREnUvzzgrD+YNeoer3/KaUDJXN5w
|
||||
3WoFlS/9
|
||||
|
||||
Name: res/A5.xml
|
||||
SHA-384-Digest: PelWQfnT5tLHaC4kitZjkZYJvPQY+wFKu+N+PpWQm0+X7AHdR1W4/6Dw
|
||||
V//nthOo
|
||||
|
||||
Name: res/color/m3_filled_icon_button_container_color_selector.xml
|
||||
SHA-384-Digest: MKPmNd8DDK8R8ub/1kLcZqx6faCMzLqKwkNmttrgxMKcp5afDJ8sWbqz
|
||||
KytJZCdc
|
||||
|
||||
Name: res/PC.xml
|
||||
SHA-384-Digest: QHeHxlhNiTrsMHwKbiHfIAL1TUTIxRcIg+7dLiAVioEZTisicX3KMC57
|
||||
USlzcxj1
|
||||
|
||||
Name: res/q3.xml
|
||||
SHA-384-Digest: Z27fl42kubfXX0AvLpgy0JNTdNRwrMwceKqxE4JtuDR8PGyLtyZBkP3F
|
||||
CkRPXUqZ
|
||||
|
||||
Name: res/DC.xml
|
||||
SHA-384-Digest: oxlmE0Oc/tQ4yqXA6w0PPOwuSIfR7Gr/ODsd50WcMyRnPPgdqhxhkxLC
|
||||
0eyAVJo8
|
||||
|
||||
Name: res/K_.9.png
|
||||
SHA-384-Digest: ACTxR8JLkV6foffYYRJwLAJyo7EPbGZv9hxY8JFOeLKJtMZz6qm+gxd8
|
||||
wdyUfF2p
|
||||
|
||||
Name: res/color/m3_radiobutton_ripple_tint.xml
|
||||
SHA-384-Digest: VRR5L5AlMU1W3adMnZs4lnRf6slbVFTYuqFKuNRIU2PNQnGL5iWPy9JR
|
||||
X7BU+EVG
|
||||
|
||||
Name: res/Pd1.xml
|
||||
SHA-384-Digest: JTu3XKFUKcKOwnXfMtXE/kDQyaMDqSegTmVGLnZomBvTbaweiO6mQNPx
|
||||
1DsZ5fn7
|
||||
|
||||
Name: res/Ge.xml
|
||||
SHA-384-Digest: KkhnoqJNWcdkkPId84rbEKqrIr5NRICLWou3xU0Uz7CGeJSogxjxivGn
|
||||
NFSy93fR
|
||||
|
||||
Name: res/ue1.xml
|
||||
SHA-384-Digest: NR94HjiOaC1fO5bsZ2AwbR/81jg8LTg4TuuKkMR3LirV3oWsRmzVwaLH
|
||||
8NyGiaMQ
|
||||
|
||||
Name: res/d5.9.png
|
||||
SHA-384-Digest: sKmulFpsmp31dpCj3gjcs4ZMNq8xNXOBsfWgJ6aNbcbSnrfBW8gJlGJg
|
||||
d7RVJWM5
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_hint_foreground.xml
|
||||
SHA-384-Digest: CpEE+Je0rTaCtwOwZ01zCQSJ7JrZgLhdBF3dTOCGYH6jAZKzGuK02poo
|
||||
TQBRKQPA
|
||||
|
||||
Name: res/J7.xml
|
||||
SHA-384-Digest: /cfDEUlCbKuu7pXkeI88i/sdNuIxir90iLkgoBClaMf+sgIoPcviB07g
|
||||
Tf7DEjS9
|
||||
|
||||
Name: res/aH.png
|
||||
SHA-384-Digest: NPE9bC4qSGbpxGUphXY5XTDQ03NWi2SDwgk1fpGVUSE4XJL0HfHPgnet
|
||||
xj3p9USl
|
||||
|
||||
Name: res/ZN.9.png
|
||||
SHA-384-Digest: yzhhWYyTkGj9gNJPMFlTpISk5Y49P2AaMDF/yOwTStQ1XUGS2au4fQtK
|
||||
gZKDjcdk
|
||||
|
||||
Name: res/color/m3_tabs_ripple_color.xml
|
||||
SHA-384-Digest: 9mbqMy3xWdd6omDSflqGk6lT14cH3Gd2pwmXPUeT4zdrWwfTIlVs4TpD
|
||||
rABSKR5c
|
||||
|
||||
Name: res/6P.png
|
||||
SHA-384-Digest: RAdbkupbHKux/35Tr8HnP3cZkiADP8lbkoszl/ptaaN3ZKXDrw8UguiB
|
||||
CZh2iKTK
|
||||
|
||||
Name: res/71.png
|
||||
SHA-384-Digest: KbCCz+wZ+qXpKYa1z4s+7KfG6skRE8J74g7d6EwzfkhqzuPGRK6VrY7j
|
||||
my11+0zi
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral94.xml
|
||||
SHA-384-Digest: S9nTRzkkfQopRNTOqIOoE/szAUXAI4V/vGLoSYa6CkkDlRpJwqS/AMG1
|
||||
J+S5/Bn1
|
||||
|
||||
Name: res/0Z.xml
|
||||
SHA-384-Digest: dQPqz28jHL7iLXp75b4e7KX48IvTPh8cv9tMPcZQfv8Ztj4/z3v5ks8k
|
||||
L3xIIHsS
|
||||
|
||||
Name: res/iZ2.xml
|
||||
SHA-384-Digest: Qjo0dvw4LXJSvOguNpqReL227zoPgfK8lzh7Qg+9Mq8L8h+F75RFxRSS
|
||||
WqeanUQL
|
||||
|
||||
Name: res/ui.png
|
||||
SHA-384-Digest: qbY8DQ1gSoL/45RYCNr+63djWcuaSiQZTpSSS3VzeTVmQz6KcInZsvFU
|
||||
ojcCyVFT
|
||||
|
||||
Name: res/BT.xml
|
||||
SHA-384-Digest: QzSRuMFSrpkDBJRhN0ohVVUl279rAlPaVJj0gRCfX5hrnOpped+FyknB
|
||||
9qbpsUGf
|
||||
|
||||
Name: res/C5.xml
|
||||
SHA-384-Digest: MGWjrKLPdbUzutGlj/0ba+SNRhq1XAiI0BOxUD2w3IjIWdzNcBwNEvzM
|
||||
57bflCPP
|
||||
|
||||
Name: res/m9.xml
|
||||
SHA-384-Digest: YuurX5hICHsM1OAM+yfl9tjL8N9xfLW8CWDSNjWWWOoHH7v2xUjBXndB
|
||||
152Qd5DQ
|
||||
|
||||
Name: res/WV.xml
|
||||
SHA-384-Digest: cepUTQvEb3alYDeq2xs1u+Q2Q9OWvPX93dQG4cSEJZbBi7H/WUUrbeHp
|
||||
YJk4Io5y
|
||||
|
||||
Name: res/je.9.png
|
||||
SHA-384-Digest: hqbntdCQ0hWmkquXaCseqSsIraYyC9OekgPOE2n/u3T/8xpt+ChXM+YH
|
||||
yx13lNJ3
|
||||
|
||||
Name: res/zZ.xml
|
||||
SHA-384-Digest: xbT8rJTeVmc5qUBFSctbBLu8FFlaNeDg+UxkOZoxAzsbc/MdFI84QQm9
|
||||
QuJZq7+1
|
||||
|
||||
Name: org/eclipse/jetty/http/useragents
|
||||
SHA-384-Digest: TFMYpqSFDN18/vIKeEsA8vrhQC3+tLGM43SYcqzYO7tRCOiGzU2IqxC9
|
||||
IN+m3VGI
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral87.xml
|
||||
SHA-384-Digest: DVBIpNTuMTd2j8KJHxj8WDhw2IBxZAdOsFiPiPW3ebrTXBGHn984zwL6
|
||||
ofLReAJ6
|
||||
|
||||
Name: res/F81.xml
|
||||
SHA-384-Digest: e2NgP74AScgEji6o7xK/TIjFXzYen8P/gjNLiqwr6Wg7iK1+KUqoMAow
|
||||
KCv8oxzT
|
||||
|
||||
Name: res/H0.png
|
||||
SHA-384-Digest: J0hg1uZamR/HJZ8GPLwjQqAIl3zTIVDffR69TqQpazgyoE+DaTb4vPPn
|
||||
/K30BW3a
|
||||
|
||||
Name: res/gt.9.png
|
||||
SHA-384-Digest: yL2eNsPZCyr4z3cmial47gsVWGqhs9SNd6PC40bPRksl5JiBDHUXuaw8
|
||||
g0dXPlG7
|
||||
|
||||
Name: res/i6.9.png
|
||||
SHA-384-Digest: N63wXjQz4QMebNN0msM5tIQDgACAi/IrwMMYrXZEDu4Gm5fZAUwA9zEL
|
||||
iyldY0Yp
|
||||
|
||||
Name: res/Gk.png
|
||||
SHA-384-Digest: cRu2qM2zgEslYXehBIXY3pv1LJk/yrNqxNK0khn/04MJSb0i2E01RI8K
|
||||
QXBcYWht
|
||||
|
||||
Name: res/JQ.xml
|
||||
SHA-384-Digest: piqKhG8lpXvfB+2gfFMPjVsOR+YJm3E17gHpVjDx5OKA0cCNw6KX+Lf/
|
||||
+3J1pTza
|
||||
|
||||
Name: res/K2.xml
|
||||
SHA-384-Digest: htl9Otk0Fpo6R41LYRg1ga9P9/YZPWKpUnFmISzTlQvo7NIVbhL9dPir
|
||||
BXzgu0fn
|
||||
|
||||
Name: res/LO.png
|
||||
SHA-384-Digest: SeoYt28PRSoln6hj4oVM5ntxJOKnaP74Uiney7Hxgom/+Ws3UEkH6ZC9
|
||||
G6BfsiDa
|
||||
|
||||
Name: res/SV.9.png
|
||||
SHA-384-Digest: Jbnlp6UqEocAviJLUH2q9uijEJw4eCNGlqoDVj+Huh3EdpIsphRMB7dk
|
||||
Ue+uyy7o
|
||||
|
||||
Name: res/Ei1.png
|
||||
SHA-384-Digest: +n1o1LFzSHzt22PY2uHgWvj8QLC2sggl4Lat2Qb+97neiNZ5U96fGAT/
|
||||
E75J4NLu
|
||||
|
||||
Name: res/2R.xml
|
||||
SHA-384-Digest: e1pY27f11XRrqx2iMFk3WjAK6f7kHZ42DOPisE8ioTtlyuABp7ODLAyE
|
||||
tn5HZLhr
|
||||
|
||||
Name: res/color/material_on_background_emphasis_medium.xml
|
||||
SHA-384-Digest: hMlfv2lttlpq3zmfhsDQdCG9r8R4dLXs3YH3ib9P4hx5+qHbNeXiPE7q
|
||||
I7UmLcfl
|
||||
|
||||
Name: res/color/mtrl_chip_surface_color.xml
|
||||
SHA-384-Digest: EBF/iWmbYfsEdETb6BMO9mrcaLNH1z8+UZZaIeAm9HhQMx0qTHzKCtRY
|
||||
lWtATdp3
|
||||
|
||||
Name: res/hQ.png
|
||||
SHA-384-Digest: 5IXghwsBUwafpqWxs9mnPA2DQH5RP2jxgzVku1gh/+4v0IrlqgxDhdzY
|
||||
YToUvXlC
|
||||
|
||||
Name: res/zz.png
|
||||
SHA-384-Digest: r2haUUwTBB0xEsz67QY4JI/dkrcYAoz+p3YGY2ivhesCHX5NQjCl42c+
|
||||
zS0561Fi
|
||||
|
||||
Name: res/gG.xml
|
||||
SHA-384-Digest: 7S3SVbl/xYGOD37ftLvR5rfIt9OlvHz1TPsllTyFNH4dSckmB5RoyqLB
|
||||
tyiYaZvQ
|
||||
|
||||
Name: res/Qd.xml
|
||||
SHA-384-Digest: hD5RM8tA/4u7nUJQtpLxy8CqW2ixH5EModvNm05yY7BbMPRznBOrlR/a
|
||||
Bt8YNb6v
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral17.xml
|
||||
SHA-384-Digest: yt3e0YN7lcSYLEcaMY/dxM6EnkZC13qxyjf1EEHT+6z6RGqOhj3pP6/B
|
||||
q8z3mKWd
|
||||
|
||||
Name: res/qD.9.png
|
||||
SHA-384-Digest: SgBpzbcWxKT+19HhkwqkE3xX6ndIbQBmXrQuA6Sd4XnUW6f3X0oEDu+Y
|
||||
yIAaE5q5
|
||||
|
||||
Name: res/dw.xml
|
||||
SHA-384-Digest: 4ksUgdz+hniSfwJcXvIn5LqbEcUDlz040mN8uBfoBFP7osF2knARDxju
|
||||
KFKk3sSP
|
||||
|
||||
Name: res/hq.xml
|
||||
SHA-384-Digest: RolpMcC3NJ15hDWL0ylVxu/wxFqljxPpVw4IWROz1OWFWThDxT7dPVmf
|
||||
nRgf1Od5
|
||||
|
||||
Name: res/iR.xml
|
||||
SHA-384-Digest: 8bf7VHrya4ELV/DrPdNU8r1Gktg81KDCCqUsUAHeCAu1zdNxRhhk+Vg8
|
||||
8cG9xqEc
|
||||
|
||||
Name: res/j3.xml
|
||||
SHA-384-Digest: haIkyttXBtrDQGjSgz8kmcUB+a3kF8ZsEncOlRu1t77O+GKjPuKwXi+e
|
||||
p9AyLgxO
|
||||
|
||||
Name: res/color/mtrl_chip_text_color.xml
|
||||
SHA-384-Digest: TKqIsMI/qAbNcJY0W7Oq+HsCAVAf50WsNujvDg7ezOpsefAuTnk+MpmX
|
||||
BheL2cs5
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_highlighted_text.xml
|
||||
SHA-384-Digest: rQO24bTVC0zJK1pDt41OiKz2JYCSYRlIesdIjOGTLFB0i4/Zb4VKI0ZH
|
||||
bqcxCp26
|
||||
|
||||
Name: res/color-v31/m3_dynamic_default_color_secondary_text.xml
|
||||
SHA-384-Digest: E4IUZyaWsFH7ypRB1//gEJwWxW9KFC9TYrHVW83kwihj9Gxn/yI/yY3U
|
||||
mo/Q1qNY
|
||||
|
||||
Name: res/color/m3_assist_chip_icon_tint_color.xml
|
||||
SHA-384-Digest: yR0LbyDan8IwchldvR6gH9gd+x+0KqH0PvRTLAkZZn0XjVP1MELtcBvh
|
||||
LaCbzD65
|
||||
|
||||
Name: res/Af.png
|
||||
SHA-384-Digest: gRQF5dhXpTN3r8r7CldnCak4GeB2tFqvI0eviGlLG154TT7fhxTCoQ5r
|
||||
lH4lUq4y
|
||||
|
||||
Name: res/vz.9.png
|
||||
SHA-384-Digest: XuCRZxgoNVWVIcag1YsfslqNM/Vf1eLX8y5GrDuqcfJ3XkLa+7ZJ7sLN
|
||||
15lWtnTc
|
||||
|
||||
Name: res/color/m3_navigation_item_text_color.xml
|
||||
SHA-384-Digest: TL5C0WPWqMw03DnQ0LBPTBBU9g/a/5ma2OuPNjbtsAOWaYsVAKHlhXAS
|
||||
qiyJCjfJ
|
||||
|
||||
Name: lib/arm64-v8a/librtmp-jni.so
|
||||
SHA-384-Digest: dMSj7/IaH5He/Kp/5EpTsY0ib56tb8bxX/U0skNOS+mEOi0zSRgxxvsn
|
||||
jd4yf2vs
|
||||
|
||||
Name: res/LU.png
|
||||
SHA-384-Digest: lXIxThxpZU1jkZKu1Vx8n+DemNj+wyEIlsHc86C+0KBKQM+6vpShleRe
|
||||
YEcCMPPR
|
||||
|
||||
Name: res/color/m3_textfield_input_text_color.xml
|
||||
SHA-384-Digest: 9cRBhHTKCJTL7StDRMkQiFLabHpuUpXQfTLCqg/LPCHQLF4EY+/9UzPc
|
||||
+C/EOeO6
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral22.xml
|
||||
SHA-384-Digest: XbjRNtVcQynvqOcHbzO6LVlMnLFFfxsaMlkhA+SYzZaxtNLUTkoWllrj
|
||||
fHW6L+Jf
|
||||
|
||||
Name: res/GI.png
|
||||
SHA-384-Digest: G7Zq3TbPOg856Ro23K+YhA2HerZmBDhWj6X+HEumnfTBUEZBVlfHccr9
|
||||
p6q7Bgc0
|
||||
|
||||
Name: res/80.xml
|
||||
SHA-384-Digest: YzRr91TZPgvhqVEGol5P3j+UTozTotYH80Hw4svQJBNs0yBXJJHmu6nc
|
||||
NA3rFhn4
|
||||
|
||||
Name: res/GT.xml
|
||||
SHA-384-Digest: pEVABE2XyM4shv3HGM9+VELB7NmLhvjwzzeX61wYGYUTop1IUaQ427SM
|
||||
bLK1XMh0
|
||||
|
||||
Name: res/pw.xml
|
||||
SHA-384-Digest: OqD2BpNOKJtRfselfNljai2oJclbZBvLWimh6lFoaNSqciforqs4yVGw
|
||||
aia98jK2
|
||||
|
||||
Name: res/lE.xml
|
||||
SHA-384-Digest: bIuJlFxJenmuEWMhU4R5URXjUH5FG/1one01ghuhXhiKhlSfu1LX0CJH
|
||||
h99mH3ch
|
||||
|
||||
Name: res/M2.xml
|
||||
SHA-384-Digest: OWdTDOCJUrIFqBIB16t7PHzyLpCuNOWdhmrQUcySIphr8Dq6cgTfIGd2
|
||||
HwRsaViC
|
||||
|
||||
Name: res/Tf.xml
|
||||
SHA-384-Digest: SNRbwZfbYNjevLcKgi1CT6NNXQdyh739+jx4kWttjmmV5Zb7LgNO0LXN
|
||||
hGWgTYjk
|
||||
|
||||
Name: res/kN.xml
|
||||
SHA-384-Digest: pOv1rqENVipdRxqrFaBSCbGC3CqBZsYn2OPzCJWDpuIHRFzbNdkzAgzI
|
||||
KCJYkTlT
|
||||
|
||||
Name: res/color/mtrl_card_view_ripple.xml
|
||||
SHA-384-Digest: LP1KwU6DoYN2hlhv5ZlkxCYPlpMzUAGzOHKwbHJwulse1mj3w49Pi4dQ
|
||||
gEz3gt7a
|
||||
|
||||
Name: assets/shaders/fragment_shader_oetf_es3.glsl
|
||||
SHA-384-Digest: rZr+0elJV8z/f3AcHlbfu+EArWpdncKr++xcZvJWry5Q/VK4Cam8seoQ
|
||||
swN0x0bE
|
||||
|
||||
Name: res/U8.xml
|
||||
SHA-384-Digest: pTVgltJPQklL6ayPkC4PTkUcWDPW7U8hCH1hd6J76wupRhtiHX29mSU/
|
||||
Hqw6e3K0
|
||||
|
||||
Name: res/IP.xml
|
||||
SHA-384-Digest: 98W3s8Bl3KJmmRWbUhv29cuSxtEfR3jnBooEzZxxub+uQ+HWQOzTSHB1
|
||||
LFgHSuOS
|
||||
|
||||
Name: res/color/mtrl_tabs_icon_color_selector_colored.xml
|
||||
SHA-384-Digest: Bwp5RIP5rglJ6071TV2Rh68U1fJJoE+X+4RxrTlpD438/gMOKphKOFZO
|
||||
7JPA98mp
|
||||
|
||||
Name: res/gl.xml
|
||||
SHA-384-Digest: 1WnYZ7SS8agO94k1UsIPRfgQbecbxsIifJsUQHOGXIck1buSgmL8NUsP
|
||||
aYvaltkW
|
||||
|
||||
Name: res/hM.xml
|
||||
SHA-384-Digest: be9Cw3MxaHWFG8oq6wVTGWZ7/eNht04u3HF1HT2mLRWZRMr3E6/7IVn1
|
||||
2ypStUdR
|
||||
|
||||
Name: res/L-.xml
|
||||
SHA-384-Digest: 524aIDKHDV3QBXA9eN0FOP7GemUOxdipgTelJqz36ThU4e6Uic31Ecwg
|
||||
4CfGAFuu
|
||||
|
||||
Name: res/Yw.9.png
|
||||
SHA-384-Digest: TCD1g+djTcu7cqXqffkOB4QKgq99vYlhw0qta0aKmWYNgllpQXboW1fl
|
||||
Xvu5Kdmo
|
||||
|
||||
Name: res/3b.png
|
||||
SHA-384-Digest: ok2B+0Kvv+dYGUXZUv9lPtWHb3wbNRqGtnrkfZKSouP1kcZJN3pGkQGu
|
||||
cybOlX+l
|
||||
|
||||
Name: assets/test_polyfill_date.js
|
||||
SHA-384-Digest: ufzUMKu5lhenAWlK8pFvf80KvJHmHX+G+mfxQ3dA4IOOuL3m8O9+2/AP
|
||||
syurURE+
|
||||
|
||||
Name: res/li.xml
|
||||
SHA-384-Digest: G14ONZW82nrRmBgvXzex4P5yg9ZdOvXCdMEOyUTUpbU3TxO0l89ffb4m
|
||||
RmUt5w2G
|
||||
|
||||
Name: res/4v.png
|
||||
SHA-384-Digest: 1R9gjkJhNNd/pZL1KlAcEC7lFpJ1xIklX4iH6ASRJ2uPBVpft4fqelyd
|
||||
nDnCHpRx
|
||||
|
||||
Name: res/68.png
|
||||
SHA-384-Digest: LqravoC/brjJb1k4PdsKmk7W096g1nzWl9DX7/svlFLWZxHBFVtvC+i5
|
||||
BQKH7Vvh
|
||||
|
||||
Name: res/Be.xml
|
||||
SHA-384-Digest: p7cpRGXRQpm9f/zCWikT+Z+39xDVMRxX6K1vfreE/DqmW9dZFu4zX0Du
|
||||
ojo6qPIE
|
||||
|
||||
Name: kotlin/coroutines/coroutines.kotlin_builtins
|
||||
SHA-384-Digest: Yxy8O4XTB7f5KjCF164NhyA5nc3MA2UaJDs48FsEmOe6s7r/DGqS47eq
|
||||
YdWFQ7fX
|
||||
|
||||
Name: res/color/m3_switch_thumb_tint.xml
|
||||
SHA-384-Digest: KgJXXlUGUNomuH55/O6pNEzpP+RcJfblDgpVfhTK3Vf3ew6zC+/W8vTf
|
||||
hcmlwnlm
|
||||
|
||||
Name: AndroidManifest.xml
|
||||
SHA-384-Digest: HydzKdG97Xkb0jmilvqk/zXv7RpXeZ/FqYIkjV63EkBBxZN+au15o3jB
|
||||
yUfDX5Si
|
||||
|
||||
Name: res/Lv.xml
|
||||
SHA-384-Digest: dFTVzwCwsxXEkUGUqaARVB+LhhdM6GFZW4PNNx0bUMK3AatQYIGChxPy
|
||||
5mcdpzn5
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant6.xml
|
||||
SHA-384-Digest: sqlfS6E21mz0I04zZteL7xu1xN0AyG4FckLLnCy3aDlMLnvSMQw/yoUM
|
||||
YQC8h0y7
|
||||
|
||||
Name: assets/test_module_import_dynamic.js
|
||||
SHA-384-Digest: KsKkSM9GnMdAZxaLAvxsOJPG3xVNu8OeGGbPFrbv3AVUKAidGv7rGxvn
|
||||
6vHXK+j5
|
||||
|
||||
Name: res/uc.png
|
||||
SHA-384-Digest: 0rGeP5kR/e0r/nQpbg9Yr2NUTRjK/u13e+csVUeElMhU3YES0AIt6nri
|
||||
Yto4uMkU
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-runtime.version
|
||||
SHA-384-Digest: yaAB6eagCLWmL9/WQCnCuN6WQF5HZExKlrmZiLx0ug4YvS+CMpBcyYBD
|
||||
5ywx7JDc
|
||||
|
||||
Name: res/aU.9.png
|
||||
SHA-384-Digest: p12FTugYakzlErr8gj807IVsFsEwLiPN+FniDg9e7vqVocxdrPVL8zeF
|
||||
WVilZu2K
|
||||
|
||||
Name: res/nP.xml
|
||||
SHA-384-Digest: BcWd2YoOM3Yagic9RqW6qsi3HSRmSClDnZPD3H0i1lr56yXolG6lePrD
|
||||
53QZ2NXY
|
||||
|
||||
Name: res/zG.xml
|
||||
SHA-384-Digest: s3j9IRuSRe16TDt52X0pSPUCEpcZ/nUgNEprZP67FYAndmh3iVTzJRmJ
|
||||
NU1b8Jr+
|
||||
|
||||
Name: res/1W.png
|
||||
SHA-384-Digest: sxPsSE6JTEg6stjGYFip8kR4MGESnNeqxlVMSP8I5VsQTz5TbdQ18sav
|
||||
JXFJTI3i
|
||||
|
||||
Name: res/8y.xml
|
||||
SHA-384-Digest: wIsgZVbAb9GtQ8yZDLh1IYUBq+lMd4ZIfof2i8pr4sktW0Rmmu2nurV7
|
||||
HqtVbkx5
|
||||
|
||||
Name: res/k9.xml
|
||||
SHA-384-Digest: gLCF2I/aAyr0gPnff4tL01Sy+gTOudRYsnewX/I6bWqSmD2FJvNJ72Ja
|
||||
Or7OObXz
|
||||
|
||||
Name: res/4R.png
|
||||
SHA-384-Digest: Px/AxBCvwDFFYNV46XilxY7MufmVdy6j9PbTb8FTMbtvTPHTW4EBG5yH
|
||||
Qui6cxWa
|
||||
|
||||
Name: res/hb.xml
|
||||
SHA-384-Digest: Ia2G/FGD3m2l7oWJRVE4bHwocAmL/nK6P91Qjt9BmQmSMcnYEmsbqgtq
|
||||
als+2Nqs
|
||||
|
||||
Name: res/V7.xml
|
||||
SHA-384-Digest: /8z5xySz3jnWHCaTBntghaT8S6Tc690+65TmEZPykXElHq96En3juD8J
|
||||
vDrzaHiv
|
||||
|
||||
Name: res/QH.xml
|
||||
SHA-384-Digest: xNt3CdfZ+AtiZ8/7XPx9Fak/46WJJoQzPI80YqxMHo67v0Vh0+w/0xpk
|
||||
CPIUmnVR
|
||||
|
||||
Name: res/YN.xml
|
||||
SHA-384-Digest: 2rGNcObUVtUWuaDBnEUAAFR9t2Y/VrGKfvE+pgWJF/SklJfT2rkzXlv8
|
||||
ZMCcbxVC
|
||||
|
||||
Name: res/Wz.png
|
||||
SHA-384-Digest: DblED9inSYszV+iGRcrceP8EZ4cFvzf9Vfg4l/7e0vQ6K/3BT8Mz8oOP
|
||||
gr99yyba
|
||||
|
||||
Name: res/vz.xml
|
||||
SHA-384-Digest: x/3bZEId5HOhe7mR6uKKK5HLP7lncV70W8d9uDw3YEo2d0fJ7GPjVpZT
|
||||
tyYj/2U7
|
||||
|
||||
Name: res/Xf.xml
|
||||
SHA-384-Digest: 99bCKlf/JEhFk+3qxhmJeYL+SoPT++3n21nohhIVDmzK5jQ8AFTatXLw
|
||||
JAdHtoPW
|
||||
|
||||
Name: res/YG.xml
|
||||
SHA-384-Digest: ZQv3Fk/RrViVhG7CmqLI7b5guEqrtuOMjCb1mg4vAdyJ1uFifcCI57nX
|
||||
gE+VQ+m3
|
||||
|
||||
Name: res/Od.png
|
||||
SHA-384-Digest: K/YBkClD+1vifO/NKCxecfkGmOlKmxpKTPKEOmHJ3uyhSTAWtB/KVPYG
|
||||
jeLwPWlB
|
||||
|
||||
Name: res/aM.xml
|
||||
SHA-384-Digest: PBD2njqFIZEIFaNg5Kv0a8zzmOSuvlw7w0N2Hk8GxCfqQE1Mp1jt6a8z
|
||||
PbYNvmVg
|
||||
|
||||
Name: res/qI.xml
|
||||
SHA-384-Digest: yXOZMD1NNVow2MSl5545G1xQ5r3BkzvVuTjkOMu1tie/X+BvQr/vzJBt
|
||||
3rTmiNmD
|
||||
|
||||
Name: res/Aq.png
|
||||
SHA-384-Digest: gudBWfAFJagdxTpkd+3RQq2ZSOB5sdX9XX53jeT2x9crRKNnFnRSp/c+
|
||||
sKTFA5FZ
|
||||
|
||||
Name: res/Xz.xml
|
||||
SHA-384-Digest: Lxgl7AaW1XF01UCgWsmzNijU9lM+9O14DWsP1T4WlEZa3e7jMr2Q0CXl
|
||||
AMMdrAcl
|
||||
|
||||
Name: res/_H.xml
|
||||
SHA-384-Digest: 6k2Y6RdflAAu/5MBmh9aA3A0mGwem2IJdZLBLfHqUj+faz5Ye+cijBwt
|
||||
+u3jI/t+
|
||||
|
||||
Name: res/color/mtrl_switch_thumb_tint.xml
|
||||
SHA-384-Digest: ip5+l7mXhXTe3oBqzootdWZ/nxWMGYvtfaMdG6hFo7VrVOcLRrp56rrL
|
||||
BIGWj0FL
|
||||
|
||||
Name: res/Mh.png
|
||||
SHA-384-Digest: k6V8Y6wj3bxNtVJwj6Cn7/1FKl5FSoukMG07kcFBeIlEFOPg8TIHdGx5
|
||||
a+Xd7YlN
|
||||
|
||||
Name: res/YD1.png
|
||||
SHA-384-Digest: CZdVfTUyBOldmchvO/3MMxaRT9bwvOFrKi7zzRJ+OsJncbjuGk2vxuJ+
|
||||
2eKvIKhy
|
||||
|
||||
Name: res/color/material_timepicker_clockface.xml
|
||||
SHA-384-Digest: fLIK+GSrKtwDJ64Ts+X3y66wVcqzsKvWlzVrv9F4g0oyR7kINpfjKExm
|
||||
NcR8BdjA
|
||||
|
||||
Name: res/color/text_episode.xml
|
||||
SHA-384-Digest: 6pDD5wKQNsS46LDs8hCEJ9737iBZpA4s+djZewNSoiQLojysbVUvJ8g/
|
||||
Uruo5NKz
|
||||
|
||||
Name: res/EU.png
|
||||
SHA-384-Digest: 4cIIhAcnkubmh9ns3zErFnt9h89VIwSmdFdwZIaSdNPl2XTYBce4ErjI
|
||||
qZVB5teP
|
||||
|
||||
Name: res/eI.png
|
||||
SHA-384-Digest: 5oitDL1BGiwSViEUkU7T3JYPrzeXJXOBoNDL1eR2YvaJkC+WfAyHEhWI
|
||||
WYUsfTn6
|
||||
|
||||
Name: res/Eb.png
|
||||
SHA-384-Digest: fMoUvrf8IRMfCWg3myVyK/x1Xy6wCfL3meSekfjOv389M7HB4kHIrI1b
|
||||
rqus1P5Z
|
||||
|
||||
Name: res/color/mtrl_filled_stroke_color.xml
|
||||
SHA-384-Digest: GgNufGCgYMsy7+VnzuFK9n2HaXu+y/zFZkm/fduebi8SvWS13zakD3wb
|
||||
xUw6t9t2
|
||||
|
||||
Name: res/fN.png
|
||||
SHA-384-Digest: Cxifa7MlxCfPcVkVW9d193W0XJmQPtd4zWJ6wVT/1B4sQtrvwPk68Yyr
|
||||
tBY/Ipjh
|
||||
|
||||
Name: res/hS.xml
|
||||
SHA-384-Digest: 15K3XF/8P1wAZUGwv6ucTzyuvP7tNCg8T1H0cyMg8BoWZCE0SQOrJYE5
|
||||
ZUIOP2Gx
|
||||
|
||||
Name: DebugProbesKt.bin
|
||||
SHA-384-Digest: +I6t+9bBNLukGTkuW0QM1GSInoixxsGSLyv6+bzzCg98kneNpoKPjlq0
|
||||
Zrgnd24w
|
||||
|
||||
Name: res/fW.xml
|
||||
SHA-384-Digest: su6glkqpeb332zcTARn79iezSLDM5t6RHZUhtdqgBOcDC8j/xWD6sFS3
|
||||
tBJAQfXc
|
||||
|
||||
Name: res/wy.xml
|
||||
SHA-384-Digest: E7h74b98RSoRvHfhkK8oytREiNc5qosu6jCD7oRzunPdRJQaphT61lgi
|
||||
8tGNYbjp
|
||||
|
||||
Name: res/Ci.xml
|
||||
SHA-384-Digest: sMhQCoxwjI7pT3/FdkVFfRF3d9vzVAl57BO+CG5L098a3JRjL3P3dhl6
|
||||
f7vs8Tft
|
||||
|
||||
Name: res/color/material_slider_active_tick_marks_color.xml
|
||||
SHA-384-Digest: 6ThEuZRsA9ZQiWyeAU4+Ie1PiRt1GXbpiA5WxARtfTdhE6k0/8NEvdOh
|
||||
dX4vcPEc
|
||||
|
||||
Name: res/dP.png
|
||||
SHA-384-Digest: QX4lMGGFILUtCyfvz4LPl3RLVYUX1R/7kJZE6KANKQs/Z3hTEp1qldFK
|
||||
4GSeIRJZ
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral92.xml
|
||||
SHA-384-Digest: XUKWSkrQlOXPGkocaqxTfFQmrMeA8ZRAox5lm26mM/CEpqiGejYJPp0E
|
||||
aPZwmn5C
|
||||
|
||||
Name: res/color/material_personalized_color_secondary_text_inverse.xml
|
||||
SHA-384-Digest: C0Uj+FOWLTs73sORb/HpoYMGKG/X4Org712kJm5LU6TPRc3CHmKGYF4b
|
||||
wHqKmRsC
|
||||
|
||||
Name: res/color/m3_textfield_label_color.xml
|
||||
SHA-384-Digest: cZxV6kbRB30Ge/T42XRbLcR/nYOqQSAA3QSxZQbcsWQJGXsxLvh6+IYZ
|
||||
xg8nzvhO
|
||||
|
||||
Name: res/o9.9.png
|
||||
SHA-384-Digest: wEaQJeS/2f1x4e61XcFA9Yz3EBjAbKfyPQWjWZJHyNsjncSEfPOZ0uPr
|
||||
mUWojXgw
|
||||
|
||||
Name: res/zo.png
|
||||
SHA-384-Digest: plwRg21oS4bpA0F/oEFHbqKDIv3yQtve6pjXPKYAL3wZeo286iWj/UqH
|
||||
zQSJL154
|
||||
|
||||
Name: res/1w.xml
|
||||
SHA-384-Digest: gA+8W51sCIkHUrOvz89YE4rjpM0+h2TXEWWKT9SGsMSrT5AG7MRER36d
|
||||
S46DHMlP
|
||||
|
||||
Name: res/WP.xml
|
||||
SHA-384-Digest: INADClAANC78JHcHLGZ4PWM3fhZb4R4O5k5VUCeMCrmO9SC9Dgkdx1AQ
|
||||
N0KvwP0j
|
||||
|
||||
Name: res/X1.xml
|
||||
SHA-384-Digest: z10yS44TvKcw2zEuS72decZd2K09klcmWD7UVj9ieTroWf8mfES8S562
|
||||
KYFAXpwP
|
||||
|
||||
Name: res/p0.xml
|
||||
SHA-384-Digest: ujVc+VQV1KE24l/bNCVVGbLRRYZ4erIawtLM/p4HsIWiTV26jmu9MSHO
|
||||
LoAQyiSm
|
||||
|
||||
Name: res/5m.png
|
||||
SHA-384-Digest: 69o1L2KD/PffMCTkPRDGbqSfu8/G1XAMsMH4ibaKX3u+prny1Uh2cld/
|
||||
fL280fK1
|
||||
|
||||
Name: res/color/m3_slider_inactive_track_color_legacy.xml
|
||||
SHA-384-Digest: l7yAiawORObJXiDfDHj4kdRg7zFXWYfcFgr5a4Y9A+Ok8cRaUZb8ioaL
|
||||
PUzNwUHV
|
||||
|
||||
Name: res/NZ.9.png
|
||||
SHA-384-Digest: lbhPYxpNFWWXgEyXoRkeVyTcCPVMODUAsG6y2M+mMmV8Rx3rT1vH2akq
|
||||
xJ0J9NU2
|
||||
|
||||
Name: res/lV.png
|
||||
SHA-384-Digest: zvCEGC9HBf6J21pYYH0DgZeIGPQno+pZ8K0knDlxVVFxn66j/N5GZuI3
|
||||
CYSMW8iR
|
||||
|
||||
Name: res/color/m3_tabs_text_color_secondary.xml
|
||||
SHA-384-Digest: uCpBjQXS8vy9EDWYo9gX8Tuyz8mv/7KFwYJRpUcakJab9xJIe4NoyxW3
|
||||
I1F65QiP
|
||||
|
||||
Name: res/w_.png
|
||||
SHA-384-Digest: 2pIXb+TxMD2TJHOowb3Cm+LQ+rEkC6/WXk0zX+k9dah+puF9t2RX9PsE
|
||||
d6NX2gOz
|
||||
|
||||
Name: res/color/abc_tint_seek_thumb.xml
|
||||
SHA-384-Digest: h85rz/cIeHYgUsvPdBYl421PD2KMs8VoIiwy4h5xIGYb1yDfjmmE6DL1
|
||||
CG14VY9U
|
||||
|
||||
Name: res/5U1.png
|
||||
SHA-384-Digest: ZCfE+UJQua5bdJ5obOWZ3qkmiW0BFicCGBtUnQG2QPEOeSI+WxRCPd+R
|
||||
nqfoTxD+
|
||||
|
||||
Name: res/lR.xml
|
||||
SHA-384-Digest: J7KR61VfAMUADUAXs1knbQ7siE9l5p/6RMfkmSIeh0SjR55ICJUqaye2
|
||||
EkYX46Q4
|
||||
|
||||
Name: res/color/abc_secondary_text_material_dark.xml
|
||||
SHA-384-Digest: PifmH4QaJTwS/zWyMkZHKOSTeQVmmt0PBKqHrjdcwDyS/lyf3U6/utTJ
|
||||
0PQE4/wD
|
||||
|
||||
Name: res/JF.xml
|
||||
SHA-384-Digest: eY3c6wCiHDxvUftBn1A9MlsO+gncgby/NGR7/ruddOCeRs6QXrbeUgNP
|
||||
omhK1kpG
|
||||
|
||||
Name: res/xM.png
|
||||
SHA-384-Digest: fu89R/DUJnZKjNsY/5yTIM6WlKw4EEOQuyELbw867QUk/VHPVv0R0A5B
|
||||
+kz+oUWx
|
||||
|
||||
Name: res/ck.xml
|
||||
SHA-384-Digest: frMaorVmG/3l00muYRVzoo6DUWcpDsejnjyjJQ5LgV2uFcHaOh2IO0XF
|
||||
v0JlQoqW
|
||||
|
||||
Name: res/e-.xml
|
||||
SHA-384-Digest: aVj5j0oCPO0GSoUDeP4eu5QzOMKEztumj17IRyCUzeT0XM3uTTdcjVIi
|
||||
LD1QxeuQ
|
||||
|
||||
Name: res/rd.xml
|
||||
SHA-384-Digest: +a+FFnar4TcNfp2A6M8Pm2E7XBRmK5NOegOxdHa59hvE3kEUoZZO/Q69
|
||||
GLZZQpgS
|
||||
|
||||
Name: res/color/material_divider_color.xml
|
||||
SHA-384-Digest: TjoU7G88WbzJFqtpDvNZFANSo9fx9mu7v/GUXrDTcqL8bn+YhFjeFDLG
|
||||
ByKomgRj
|
||||
|
||||
Name: res/D4.xml
|
||||
SHA-384-Digest: y64M2hrRi+YQfsksX3NuJ+QCZrZF8VOXuT80SczeIL9+dEv+daWx69CH
|
||||
E0JP8rhL
|
||||
|
||||
Name: res/_q.png
|
||||
SHA-384-Digest: /afRLwIQlk3rL4VICmla3v1hxToa8agYlWmvKN5a2PEryvV2vK1uihea
|
||||
D6v7LRuz
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant87.xml
|
||||
SHA-384-Digest: 8OmGjzUGqFYFibb4aLlRIz7AYM7TSk6yuKeyUcu+SMESSKyMJh/5TqaC
|
||||
pi2uVf0D
|
||||
|
||||
Name: res/Wt.xml
|
||||
SHA-384-Digest: kzEU4NfqJQxS/cs2z/MRGftjhuquoaA33EqQ8J0qnfCO+x4qLMpP+B0/
|
||||
HrGLEREw
|
||||
|
||||
Name: res/fm.xml
|
||||
SHA-384-Digest: EuMyQUj1lZGKa6w67Pic+1A22+ToYb1jLvjKJHYn4a7o9V0hzjETOKit
|
||||
Ctk/+zkv
|
||||
|
||||
Name: res/78.xml
|
||||
SHA-384-Digest: nKXulsnznr4QBTwh6dO5JK887VlKMxQmi59UXTyN5zwPKT/imZb1AejC
|
||||
NElQfQRN
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_fr.properties
|
||||
SHA-384-Digest: hMTSFBPtpfkcQN7yuGoER8NsghXffiSIErCHiWNo1ehpvJqsE4ZU+f4S
|
||||
JoEd1/59
|
||||
|
||||
Name: res/XJ.png
|
||||
SHA-384-Digest: K+vW884CTc842dE5nejSJjFg4ST/OoPAy1/Rv2gtiV/Ch66ZnWUtjgDf
|
||||
MVqqxfmQ
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_oetf_es2.glsl
|
||||
SHA-384-Digest: NytODzzloULyLR1gPboxuuxilD+s1wZn5F5fWXxvDrbC71RQNhgjNxGS
|
||||
C8SUfiX9
|
||||
|
||||
Name: res/color/mtrl_calendar_selected_range.xml
|
||||
SHA-384-Digest: zKBeSmC3fmOZs+zDYvo1urAEY8zQ/cMSWEquikgrIYZH4h0Ci96rapmL
|
||||
UHb9sK7w
|
||||
|
||||
Name: res/gc.png
|
||||
SHA-384-Digest: ZjXa4TN8of6oZ3gBH+/aOUT2P21PIsAa8FqAATon2E+bfPX1VX6Nfkxm
|
||||
Sy7vJ4gD
|
||||
|
||||
Name: res/color/m3_timepicker_secondary_text_button_text_color.xml
|
||||
SHA-384-Digest: rMZDLvZONiQZ0v9TVmvRItz/M7K3+3PIuhKPveONMHCcM2o5QTRBd1Rc
|
||||
3VCfDLSy
|
||||
|
||||
Name: res/yH.9.png
|
||||
SHA-384-Digest: Z/IWW8ZWw2gO43Jm+3aNWu+C6uarK+kv+Qi5F8ohjX7CEMgtvuTr2knt
|
||||
bfQQv26H
|
||||
|
||||
Name: res/vf.xml
|
||||
SHA-384-Digest: AvL5OabN0Zi9AcMNNBWEIPftzyjRAnJLiUK1HDg/f8sFATHCqzuHAhX9
|
||||
Hw8j7/d0
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_modebutton_tint.xml
|
||||
SHA-384-Digest: 4FIE5FviiAOKAR6a8eSFKwtD2kjUeCS7RO/KpjL2dNPhf/N5bxiXFyiX
|
||||
HlJ4fEsd
|
||||
|
||||
Name: res/Ra.png
|
||||
SHA-384-Digest: Tr8tJASUKpW0EwB/k0bh+9VrtPgXtuKKX1rXGPlJXqCap+Zb0oVHG8HP
|
||||
Tej9sGXH
|
||||
|
||||
Name: res/color/mtrl_navigation_item_background_color.xml
|
||||
SHA-384-Digest: eqE9g6yxzIZTRtcZyIdweMh3rwWFN9QvmCkRXandoY+DTDnR1HZWNSJA
|
||||
6FyKujba
|
||||
|
||||
Name: res/color/m3_navigation_item_icon_tint.xml
|
||||
SHA-384-Digest: /AWZoWCnF0csAUCtKDJuMynCKRpCPWB5nNLpnDKLG5k+RFOAFKik3eSP
|
||||
jryIgTKc
|
||||
|
||||
Name: res/nN.xml
|
||||
SHA-384-Digest: bHYRFj2PMGQGZ6WiouraUUI3Qr2jvMgWn6R0zbcfSJ5817ncBTqK6sD0
|
||||
9dXQrKmB
|
||||
|
||||
Name: res/ua.xml
|
||||
SHA-384-Digest: U0bGqXxxznKRVSWjFKJIi3zWySYM7xOcJ3rEMgtRaEGNSnZ5NNq8zdnP
|
||||
FSizWNhn
|
||||
|
||||
Name: res/gj.9.png
|
||||
SHA-384-Digest: 8hyJtLsSQKJvC23VCJ61OcyA5K5W+Q0NW8lmwHMMDPHwS4x3eZNKE98V
|
||||
EfGtikIV
|
||||
|
||||
Name: META-INF/versions/11/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: VTx5uIR8bxx/gBT7SXcGbuYdGJU0xmrYxz+0wVGRPf3BJIZ4lPuT1zCD
|
||||
7sNpGc1U
|
||||
|
||||
Name: res/p8.png
|
||||
SHA-384-Digest: qLE25rP5R9pZoqbzqB+mLljYF1Li++1LQayZlJUKMgU9MlHsAYrSEcyO
|
||||
sHJHwiQw
|
||||
|
||||
Name: res/X4.9.png
|
||||
SHA-384-Digest: XAK/ybwCqwgqe201nWFgdLeiQTiSc9bqvLc+qODQygy5ypRC6bQ6vuDo
|
||||
ddP/ZLVr
|
||||
|
||||
Name: res/W3.png
|
||||
SHA-384-Digest: NmZnJavXaJLFFRAYIoF1EaQG+EPe3OTDjJgwppUAM2KCFw9sOKyJBvvX
|
||||
asVUcVsa
|
||||
|
||||
Name: kotlin/kotlin.kotlin_builtins
|
||||
SHA-384-Digest: vWDFjzd8cNvGLYY+XWfmrG5ZTXmWcMBdDihc4DQBPfsMFnhiJp2oCfBD
|
||||
ATYEdtv4
|
||||
|
||||
Name: res/2i.xml
|
||||
SHA-384-Digest: hnx0IpMaH/4ARdnAdCfoKiBlGBiA8W8g00EGA0pXmU3wAMXrEzLo4Xwp
|
||||
ato1k4s1
|
||||
|
||||
Name: res/3J.xml
|
||||
SHA-384-Digest: Bk0svZE5wZOBqjWh+l/bfkb3D4Xsjy5YDOA0HAtllTJSVRezK2t1a+3k
|
||||
PJ/aQBXd
|
||||
|
||||
Name: res/o3.png
|
||||
SHA-384-Digest: VW5bmjSCUR6eKiyiMBtJ7LjAXBqfC18aay+dKTtRzjHfjvDBp6uaKuhz
|
||||
MYstwmj9
|
||||
|
||||
Name: res/vJ1.xml
|
||||
SHA-384-Digest: dSXRtUjmCxqE2spe82/szFyVq1C5wlPQisAzN+YKV/JKyJ5Xj5eDHpuY
|
||||
WW47GBWy
|
||||
|
||||
Name: lib/arm64-v8a/libxl_stat.so
|
||||
SHA-384-Digest: OcyK2blKnQYGzXngIAxpt82sBBBx+hZcnmzAXyzR+3OGN3LTHVtZex2e
|
||||
Ce4b4Kof
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_colored_ripple_color.xml
|
||||
SHA-384-Digest: XlsQSd408HOGKEkaJYyzKyvTDRwr6MtbeKqfbmOTT7i8yegLzn6sNzpM
|
||||
uzzIdXRY
|
||||
|
||||
Name: res/g-.png
|
||||
SHA-384-Digest: 2AG4Dr8nPOmpAc4yEWCe2k/YW9bl8hDo0Dn2F9Hd0v0+DlZ4DC0sMw9/
|
||||
ZpZL9WQ1
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata.version
|
||||
SHA-384-Digest: c0W5ZSoXCl+WxLGxK5D1k2FgCuPgbQ7Sbx3hroVlPaKlXHKLZcrK8D3n
|
||||
ykGOwL+x
|
||||
|
||||
Name: res/0M.xml
|
||||
SHA-384-Digest: yP5YwMOKPfwLAsa15CDAaW6OookJ3DCqGBGdZNXbWUU0PIu2o4bdzY3W
|
||||
jzjrC864
|
||||
|
||||
Name: res/4P.xml
|
||||
SHA-384-Digest: ySY0srSOyAJrWFatZR9SEhIDr6bUJMRxnTLuqaNfzP+3msrLs38tV9Fg
|
||||
M9yP51by
|
||||
|
||||
Name: res/51.xml
|
||||
SHA-384-Digest: avHlH453/Om7+Ev9zVTM9NjYPgsv/UHO1A4kOP9TMjQZV8j1r6FGKxhE
|
||||
joObH6HR
|
||||
|
||||
Name: res/xa.9.png
|
||||
SHA-384-Digest: 1wPBd3D5o7RCHJzHplvk3Yuvcb5SjdwUw+Jpc8ixG2rsxAexrBQIx/py
|
||||
wosXPYkb
|
||||
|
||||
Name: res/TC.xml
|
||||
SHA-384-Digest: MAJ8xLEPA8Zz9f2nqUKtkJ7i2UR1P76CcWNov0C+s5e4sxRY4CdfcTFf
|
||||
F8YJ1OD1
|
||||
|
||||
Name: res/qK.xml
|
||||
SHA-384-Digest: 4xhf+MQdLB8FR2SlGi6h3OZo7CYBZo77pbOgTP14Si0B7gDhWCi5O9Pc
|
||||
aXV2orzb
|
||||
|
||||
Name: res/G21.xml
|
||||
SHA-384-Digest: bZFW+uM0DAFNXrE/evmEJ9WAaiAth0igNUicOvX03IPvRioP7Mk3Ybq8
|
||||
YRRMIlSo
|
||||
|
||||
Name: res/YG.9.png
|
||||
SHA-384-Digest: H5u9RxEJ7Jw/1VX7NDPS6ZDsGCm4IlJIDH61hbERsdBx9Q2AT9+LjxAL
|
||||
r68a32ve
|
||||
|
||||
Name: res/Lt.xml
|
||||
SHA-384-Digest: BMx36C04rGsqx+drs9+eanCIw0givyfXIoULQU2k0tdehLuNy+CKI8Uz
|
||||
WzBk46gv
|
||||
|
||||
Name: res/MU.xml
|
||||
SHA-384-Digest: 9C2gCZCX7LpmiYhtNPszsO+l04pM4VRZSzBBxEQL6j2tPg2VaahM0hDX
|
||||
e1vWUrNn
|
||||
|
||||
Name: res/color-v21/abc_btn_colored_borderless_text_material.xml
|
||||
SHA-384-Digest: n+YHGVvulm+8zX0slTideovwzQ3qS2stZUoGSXwKdgagyoahcW+x2em+
|
||||
3LjJIBa9
|
||||
|
||||
Name: res/xu.png
|
||||
SHA-384-Digest: L8jIolZ6L9OClMEgkQQ+Rf5xqq/+evwzbpY3PXlab8JeX35p6r4nrMV7
|
||||
C7BrcUsz
|
||||
|
||||
Name: res/66.xml
|
||||
SHA-384-Digest: 1JbA6t5QiGugyK1gZ49v1jL7NmEt+jMs0co1LkocAqzmS4z1OpPkg0pB
|
||||
bK3gEr8q
|
||||
|
||||
Name: res/IR.xml
|
||||
SHA-384-Digest: 8m57CiFwyxYhbxipvEFMYaRlw1bRc0BtjHtBhIClVitMygiTD5KjH7BJ
|
||||
7bfEElJ5
|
||||
|
||||
Name: res/color/mtrl_chip_close_icon_tint.xml
|
||||
SHA-384-Digest: SNnChWNvli7Yl6Oi1vc4yOYrUjwdL25cVkBytPBkI0E1fGn2a0HUhJAE
|
||||
G88i4Kw4
|
||||
|
||||
Name: res/BJ1.xml
|
||||
SHA-384-Digest: Fj9FqSnRPE3p85tQ2kk+TVu/fI/dRcOYzZusmBFLRbbVVKFfMpisQJ4W
|
||||
q9k84ylc
|
||||
|
||||
Name: res/EA.9.png
|
||||
SHA-384-Digest: AKhfZQ1XO4/hUz/MMqc+/2KMmJx3fvanFPLQXMT4d6hgf97I08eCuZvE
|
||||
2BaKoROV
|
||||
|
||||
Name: res/VN.xml
|
||||
SHA-384-Digest: y+jB1Ks14PGTKSr4RaEdwFxCudqcNNJsDVgd96Tu3DSIPmts9m9Ruqgd
|
||||
HvIuVwgP
|
||||
|
||||
Name: res/zV.9.png
|
||||
SHA-384-Digest: ZuSsXaooIGNOvp17FG4bsrCBn0ArbBQGkG7IlPycd8NDLuVs06ZjzLaP
|
||||
oB/CQwDX
|
||||
|
||||
Name: res/U81.xml
|
||||
SHA-384-Digest: 0THq/SqxPz0UJ2Y4lMXMeYJdX2LBobXsk78DbxNnFn0QDtk0OLrtevku
|
||||
FfUXz3eo
|
||||
|
||||
Name: res/color/m3_navigation_rail_item_with_indicator_label_tint.xml
|
||||
SHA-384-Digest: zAOHE49MRnjxgncCEiQqxv1l3XvGXRPO6eaJV1Pttbm6FSPxDabVcPqf
|
||||
R7BTp8V7
|
||||
|
||||
Name: res/fY.xml
|
||||
SHA-384-Digest: Q1LNFrHQK3WdRKm8ZGKEApiGXoyOJd+krqbaANe4yQlrIsT32uzLrc66
|
||||
1iBuWXJ0
|
||||
|
||||
Name: META-INF/androidx.window_window.version
|
||||
SHA-384-Digest: NCJWomCrDsQXflxx/D1CuJsR0kxQWTkrOmEzObcJ0J7i+L067hJeXB7y
|
||||
W/t8EmeA
|
||||
|
||||
Name: res/JD.xml
|
||||
SHA-384-Digest: P4Mr/JqsYU9pLP11tV/t1fgEZWZphKyYBM/YtaQP2b0eG/o+ioC5/fSw
|
||||
TicvZKpC
|
||||
|
||||
Name: res/color/m3_dark_hint_foreground.xml
|
||||
SHA-384-Digest: 7VOvH1hqEjI8dPB4ApqRTHyKwxxpNOZfVRbzVssSpcPs2yLtrPbXSYCo
|
||||
dN3cY07c
|
||||
|
||||
Name: res/Bz.png
|
||||
SHA-384-Digest: tV+HJ7C/zlz64QwiEGKuP9aADieMRuQLNriexpKlA9QQYMxgdQTjM7zr
|
||||
SmT4WkEw
|
||||
|
||||
Name: META-INF/androidx.media_media.version
|
||||
SHA-384-Digest: ZEAFSZQkLs5nTPt8JejRcIj15pnGek6KRV7dVMyAEWD7gqVHJD/+9RXx
|
||||
3el/aZPK
|
||||
|
||||
Name: jetty-dir.css
|
||||
SHA-384-Digest: KrgFnZ0fR3W+NwpvHRSA61cB96kkKuQmfZvr4NDg0+kFQoSfTmrOuei2
|
||||
e1NZTxsK
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_button_stroke.xml
|
||||
SHA-384-Digest: /dkxUxPXbzoC4NFL+qF61nfcE8i4NsdYwG/sCtEfsmulZiWgKal6S8Xq
|
||||
p7D34jdt
|
||||
|
||||
Name: res/1u.xml
|
||||
SHA-384-Digest: vPvbGKIx/G2zdxRXAAWzKy4qPc6n5jqv+/rCNPwjuTTTcDlteTJ69EB9
|
||||
AGtUq2r3
|
||||
|
||||
Name: res/Lf.png
|
||||
SHA-384-Digest: 30a08Ik5/RB+vuTCB+xySM0JLB0h79sIKgdeuVR0ZE1I8LwI/jpGS4An
|
||||
llwPBU5i
|
||||
|
||||
Name: res/2K.9.png
|
||||
SHA-384-Digest: aM68IUMF5t86EI53Iej6oB5zZ5w7emSPmVKF9BKvaygxAJyAwtEsEZKN
|
||||
dQkC7l/U
|
||||
|
||||
Name: META-INF/androidx.savedstate_savedstate.version
|
||||
SHA-384-Digest: K1SOaWtvl6HKxgzXY8r8SxHSWDV6kyknhfyKArwzu4xV4KIeluaWNZB4
|
||||
HccgUhNB
|
||||
|
||||
Name: res/color/switch_thumb_material_dark.xml
|
||||
SHA-384-Digest: 33dewl+lou8dxMQgyrqbC4yXVoBSMozn61lRUe+SnAKd4Hnkv8gZLcZ6
|
||||
6B0ZesMM
|
||||
|
||||
Name: res/Pv.xml
|
||||
SHA-384-Digest: tlRXn/VKVSeId+FPME9auF7xuMGv45NlSzsCxwEz0QOIiUd6U+jGuBOO
|
||||
rvDemjV+
|
||||
|
||||
Name: res/G2.9.png
|
||||
SHA-384-Digest: LITrKCuBPvYbmtLA0VrAwzuWJ1Pb7/KgpQnww7u03klmvlFJ93qQ/0lP
|
||||
cg1tqZvI
|
||||
|
||||
Name: res/wL.9.png
|
||||
SHA-384-Digest: sFX803rQMJQBfL2FjDAHOhZXNqn0xN9BMl6qg6VBf6xkt+RB+tWAGNKk
|
||||
bLGJAO6u
|
||||
|
||||
Name: res/eH1.xml
|
||||
SHA-384-Digest: 2OQjq8K3RV+l7NlFmVekrbiGni7KKo2fvqbOc3zLAj3N8oPGgh7chNya
|
||||
ngxRZTIY
|
||||
|
||||
Name: assets/shaders/vertex_shader_thumbnail_strip_es2.glsl
|
||||
SHA-384-Digest: n25xCpgsdkQgsOLydpFMBT3Tv5Jx5XfBkpwT3ORDO+JdGVjRIXaSHw7+
|
||||
pwyH++B7
|
||||
|
||||
Name: res/-A.png
|
||||
SHA-384-Digest: EUlo41ZqPFy6e9mBQav/H1fvUOoZbQ56G9ObRZ84WengTGlZ89LR/3MC
|
||||
jCS0S0fN
|
||||
|
||||
Name: res/BT.png
|
||||
SHA-384-Digest: L4IbF7pwTdDDAYV+sOTCNat+bM6OR4A3LKMX2SH5QD77xdUoTdt4wqa5
|
||||
CidDmGm5
|
||||
|
||||
Name: res/hv.xml
|
||||
SHA-384-Digest: +sX8PGbVpiCUsd364kuktNmc+j8pdo5iIbcNt7tUnX6LOOSPQtOxoU3U
|
||||
EnNgwqlY
|
||||
|
||||
Name: res/D_.9.png
|
||||
SHA-384-Digest: cZlu813tnb8P8nD+4HSz/ft7zHGqjZRGhlaJsVyAgFsIQJggvmzK4mW2
|
||||
wc9Yi7XZ
|
||||
|
||||
Name: assets/test_assert_define.js
|
||||
SHA-384-Digest: 8vkjAB/LdCxYTlcZsP7JUtpISXlVGTGhHsVpQlo4jQ16U30ZSJKWovnv
|
||||
6SgkgQC8
|
||||
|
||||
Name: res/FW.png
|
||||
SHA-384-Digest: ATHQVWAisvGB5ZYFGnHPKVE7XsvOevABh+2zpRe3wvQnTnCCxTTxp4FA
|
||||
fuj91Tqu
|
||||
|
||||
Name: res/color/m3_navigation_bar_item_with_indicator_label_tint.xml
|
||||
SHA-384-Digest: qbsiumfd2BdFgTAo/GAiT9qiTAG5uFKAAR9w6thD1HNzZnnDkQ/jkMj8
|
||||
YxQYm1hg
|
||||
|
||||
Name: res/IV.png
|
||||
SHA-384-Digest: hBuw83hFADyo0K4+4Kd0j8djop78Aks+xBoXqyDIu86w734AwU3j7ps3
|
||||
w1GxVjTY
|
||||
|
||||
Name: res/v_.webp
|
||||
SHA-384-Digest: zW6kz7qCmqkAXkGi1d8hiAVeFAF4P+YZZxLPIa9Typ/VXNF9HPzHfE7s
|
||||
4eWTqKQh
|
||||
|
||||
Name: res/F4.png
|
||||
SHA-384-Digest: yiqt8lQSn77074CgLNygShqFt7iH8buusUx5UdVo3ji/iZ1Z54ATMLJq
|
||||
vQpQJ2cD
|
||||
|
||||
Name: res/12.png
|
||||
SHA-384-Digest: /J3JLtdIrMgCvir3tCCQybBwsqQrRvdwgLt13S+/6VreOPSH4Qwhpgad
|
||||
q+JW5/nQ
|
||||
|
||||
Name: META-INF/androidx.vectordrawable_vectordrawable.version
|
||||
SHA-384-Digest: D/RfPHtVIGKOe3ViN8XqcmWF0bNzRDhBL/aH8nRY3vISiHz+mMnzdc04
|
||||
3zqxtvzs
|
||||
|
||||
Name: res/m5.xml
|
||||
SHA-384-Digest: Ht76irWQrfh3u1feT6x6u6ia2fY3w/HKqEEMe5YEctGzFjyL+4a4Hwfi
|
||||
6+0+rdgN
|
||||
|
||||
Name: res/cm.xml
|
||||
SHA-384-Digest: JV5Wh0REmzT04j0WM6vsi9o4ZnxvqQmAB73S8d+I67OXhw9jTEyd08zP
|
||||
RR9IIt5X
|
||||
|
||||
Name: res/8h.png
|
||||
SHA-384-Digest: /g2ttcxW2yeTyh5fyUK2x8y2nGIiAKDLfTGy7IV5vQxP7jPtlVujlhiX
|
||||
y88+pzxe
|
||||
|
||||
Name: META-INF/androidx.fragment_fragment-ktx.version
|
||||
SHA-384-Digest: FsnZhU27FydVoF4i7HKB1p3N+qAtEXPQJS5rhx8Hclk7d64PBF0YA6mG
|
||||
sRFJvARF
|
||||
|
||||
Name: res/Cg.xml
|
||||
SHA-384-Digest: vtvH7WPwWWtj3T+U3FTF40MKQ22LvPeLnzym5AlbqIGY/Blymb8UNclV
|
||||
ybZdYl3D
|
||||
|
||||
Name: res/eA.xml
|
||||
SHA-384-Digest: Mt4/lJ1Vo+4tcJv52N6IMNvRIe1RtCsnfDyuAhd2sSEAMPnVrcMeWgFr
|
||||
ENEyNe9D
|
||||
|
||||
Name: res/GC1.xml
|
||||
SHA-384-Digest: Us5WPu9xpLFHGFRqeNS+Dhj5CZPe1g3i6vuaJcq4kJlIt2ILP5cpQhU0
|
||||
Ne0k3HBp
|
||||
|
||||
Name: res/D6.xml
|
||||
SHA-384-Digest: JHJQYnz3nh7KUrscSQ4UXgi7M4CuwxueycEN9FYDvvM1LwHZW1OagVl3
|
||||
sSF/NhvM
|
||||
|
||||
Name: res/color/m3_textfield_stroke_color.xml
|
||||
SHA-384-Digest: W0FO2K5jlG8ynDpHCg5h7cjoj5sEev4bvQJuf1K6uHcbB9C9ogTwTiNf
|
||||
Y2uQ/K+t
|
||||
|
||||
Name: META-INF/androidx.core_core.version
|
||||
SHA-384-Digest: /Lom5MWwqIO8lo7G8G0+pF8doQtl1jet+H5YtaCv3EOIFde+QAFQJzK9
|
||||
IwnJZbaW
|
||||
|
||||
Name: res/XW.xml
|
||||
SHA-384-Digest: 8OwQQDjTvi7ije00zXS8GMqrrvyWGkzEM0Z3nQ7NHIiKNefTUCSYibd2
|
||||
rWMCKC+X
|
||||
|
||||
Name: assets/parse.html
|
||||
SHA-384-Digest: IgOjrVsRfWytvGeU2QM+TeOBpXLT4lFoDiGUIfL73lHVOj58rxME0viP
|
||||
HKcduXSb
|
||||
|
||||
Name: res/wN.9.png
|
||||
SHA-384-Digest: jneMdIfyfk9wnXfYQRK/DN+9NvVf/tJd5VHg/lUvBLiDYq5PO8tSITm1
|
||||
KX+IhWan
|
||||
|
||||
Name: META-INF/androidx.vectordrawable_vectordrawable-animated.version
|
||||
SHA-384-Digest: G88zdjHn3p1Bx2OCYI9K+j6qTSa7n0JOCw5XW3htvO7gGYFYXFTx6hxp
|
||||
6XD6YPb1
|
||||
|
||||
Name: res/SO.xml
|
||||
SHA-384-Digest: MPTV3RsZqLsCabQuQxbKdjlHxICJ12iBkAK2NCssXUsgVB+8maCWwK6F
|
||||
/SXPhCtr
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Connector-mbean.properties
|
||||
SHA-384-Digest: 5LCt6LyTK7Z0CHTxskqFmrHHIp918zopUSrqvrBXCsLTj95wVtWnkr+u
|
||||
HAu1u8MV
|
||||
|
||||
Name: res/5k.png
|
||||
SHA-384-Digest: 6JNebBo/o4MiB2ETWcP3SYyT3LQ62kcUQzFM4rKE/6osARKHNvhvO8qe
|
||||
Gj6LEdpe
|
||||
|
||||
Name: res/color/mtrl_chip_background_color.xml
|
||||
SHA-384-Digest: 83VD2SQ7+WyrwFTYJgRgs1zjUPySj/umijRL7L++ea/rBv0FH9A7yTL6
|
||||
N36Q2Osg
|
||||
|
||||
Name: res/vX1.xml
|
||||
SHA-384-Digest: gfKhaxYH6n/4gxz6EQF1QXJY19uCHjMALwwLWmx9DKQeEz//HdlklKSe
|
||||
zaIjFan5
|
||||
|
||||
Name: res/aU.png
|
||||
SHA-384-Digest: 5OJmmB5xYy1N4jKpgD9U8teTd0TO8C0R4INiIffQtzilQAO89FfCqW1t
|
||||
5fohpXC/
|
||||
|
||||
Name: res/color/text_control.xml
|
||||
SHA-384-Digest: VW0GtVq+smnjhyx5Ja7LSLksn9AX+pYfqF8L8zpsCXxr1VcUsd7jZnmo
|
||||
wfRqjw8v
|
||||
|
||||
Name: res/xo.xml
|
||||
SHA-384-Digest: L9+9t6Gxz76KAnDVgAujREMTFmMgz98YAS3YjcrvB73jc/LDrJt4Xb5X
|
||||
hynxc29P
|
||||
|
||||
Name: classes.dex
|
||||
SHA-384-Digest: vBCC9PcStoC80XE1ctTTLEA9WIt3GctgFS/PdOEBnYspyzChVcAucEA0
|
||||
4rvIr6jN
|
||||
|
||||
Name: res/color/design_icon_tint.xml
|
||||
SHA-384-Digest: e6KPvBR1eIC/cbLNApa8VI+RWB9hf/JglrL2D/8LQSh3FIYXt8UayZqB
|
||||
5k1ltq0F
|
||||
|
||||
Name: res/FS.xml
|
||||
SHA-384-Digest: vJHPN6HRBkg/pf+hrQ5lhIYllC6nOOuWTU4cr4CdmYXgPx3ivaOHPh3C
|
||||
s5zu+PKp
|
||||
|
||||
Name: res/color/material_on_surface_disabled.xml
|
||||
SHA-384-Digest: x29Fa6ru6w3G3FqNfjky6gd62IdWlitA1Sul5ahB7QqgkzPmGIH2cwhS
|
||||
npNe90jL
|
||||
|
||||
Name: res/Ol.xml
|
||||
SHA-384-Digest: HKF4sWmRCSbREHrIYB2ExEaZc3Q6FICkyFxoUzfvw4NWW6liaEObHQFh
|
||||
EwCTNZ6e
|
||||
|
||||
Name: res/EU1.png
|
||||
SHA-384-Digest: 9cmDiHetgHf78Zjkfv+0+tnWTO+96as1sHZAqPHmQeuuaZPZUwmGHQXK
|
||||
qsUJCjT0
|
||||
|
||||
Name: res/Nn.xml
|
||||
SHA-384-Digest: KHBnKQfCoWdLCZmqJSxM0NyaN4yuKSllMlS7RXUGNK6wopSyPlG4Q1d+
|
||||
Ca1aYHT/
|
||||
|
||||
Name: res/pe.xml
|
||||
SHA-384-Digest: HCznO6hCdG/xkLF7qhxa7rvEJqIDP4BNycF6QXpYnlyBsL9IDWq0CmD1
|
||||
Vy/1Ihad
|
||||
|
||||
Name: META-INF/androidx.localbroadcastmanager_localbroadcastmanager.vers
|
||||
ion
|
||||
SHA-384-Digest: qYDQXLMLyA+k/gKv7an2M1x8LHrES5ZyGAFU6sAY0s5SLb2gc+VQpByD
|
||||
4IN0FqlH
|
||||
|
||||
Name: res/8c.png
|
||||
SHA-384-Digest: KwDgW5HepptLVE5D2BcAnynQPjidp3RSuKXUhbhlAJYFRLm+RMsKIdcv
|
||||
em6vBpx4
|
||||
|
||||
Name: res/nL.xml
|
||||
SHA-384-Digest: NJ6xaD/DyG5XgDFq4HShS4rCTmMAyqUM6oxv7thdvbpIZ2u+IJV8/hcv
|
||||
l9BUSe0X
|
||||
|
||||
Name: res/SG.xml
|
||||
SHA-384-Digest: qFQ2BITJMccFj/B0QAuQNqxWEGo/ir3bj+lp5zP8500jINVHfgBifBfE
|
||||
7pQSwAm+
|
||||
|
||||
Name: res/color/mtrl_fab_bg_color_selector.xml
|
||||
SHA-384-Digest: D0AdiCfH4enX/N5iXr9gkujzOX1uDfk5Nv+SWMteQhDO9A6/nZ14xALu
|
||||
C0nen1Ih
|
||||
|
||||
Name: res/color/m3_tabs_ripple_color_secondary.xml
|
||||
SHA-384-Digest: q9mHCz3SjXsMGPzL1CLvabPogVa9e7qktBcTrGrdu0MQ4hepBhn9sxJd
|
||||
HYv8Iv/k
|
||||
|
||||
Name: res/Li.9.png
|
||||
SHA-384-Digest: BG8mk0jRvBQFdnCuOXHrYlTgFuR3/9UNF4EWvnC43S+0CUkB6/dOCc8q
|
||||
YXrpZjd+
|
||||
|
||||
Name: res/4k.png
|
||||
SHA-384-Digest: Ne/+gMCWDtZWlmDIM2yV7GCiPquk3HBpwjNk03GGxudCTAEfHxsR8seH
|
||||
TVMzGyGf
|
||||
|
||||
Name: res/el.xml
|
||||
SHA-384-Digest: ko1I2qlhdHE4Q3mP7/m8Uz4BMxSVgz1icDeKIp8Ef3cKBbz5iAE4nOCF
|
||||
9MZ9vMeC
|
||||
|
||||
Name: res/J1.png
|
||||
SHA-384-Digest: 0DB28FyDRduq/j/DMzLVFdhgfbklQ73ndtHlr1iC5oePkIico3YPmuxy
|
||||
ncW9kMsd
|
||||
|
||||
Name: res/color/m3_slider_halo_color_legacy.xml
|
||||
SHA-384-Digest: 9JlW04on7UZTtdrdyMjPbN9ArtFI99VowYzmS0jCoVj12r5vrJfeH8+3
|
||||
vt4C87ad
|
||||
|
||||
Name: res/fj.xml
|
||||
SHA-384-Digest: CdtY9zTQqdCdNOjZmL6mRcE94OSSgB7RXGek9V8Da5ZdUWOFKQZrgk2d
|
||||
il+gyA2v
|
||||
|
||||
Name: res/Ke.xml
|
||||
SHA-384-Digest: Qh0vysTzene1naPbTzTpJHlh/pdLfLqkU6/tfACNqxatw6UTbFDqhoU9
|
||||
XDNPBoQC
|
||||
|
||||
Name: res/N4.xml
|
||||
SHA-384-Digest: UONjHxE7g7OgIdTp7g19w8c9Aiigmx1ELS/Y7kRi7m8/a8vxOz6CPBRc
|
||||
tai3tTIO
|
||||
|
||||
Name: res/jI.png
|
||||
SHA-384-Digest: CFihOZrZqZYoluebu90RaAEfrj/1UXdE8hpTGgw7U61YJGtRkOH8z62w
|
||||
rpXWqVRf
|
||||
|
||||
Name: res/JD1.xml
|
||||
SHA-384-Digest: kGEWSxRohy4mn8InQOOqxH4xW1YMsRJjcCOpoJVTdalXfx8LQQ9uTnjA
|
||||
Wk1s2tEg
|
||||
|
||||
Name: res/No.9.png
|
||||
SHA-384-Digest: broJ/4K7App8GBh9L9aa+Jk6eHl23ygJT5JGoa7mv2j3MqDaXc2lsJ5U
|
||||
ZYsjWI1w
|
||||
|
||||
Name: res/color/mtrl_filled_icon_tint.xml
|
||||
SHA-384-Digest: c/ZbtepidEWtzvETDSGXgG8kfQNOHt50IaCLefMcUT5/ndlPq0Y+rAU/
|
||||
NE7l6J/q
|
||||
|
||||
Name: assets/js/lib/crypto-js.js
|
||||
SHA-384-Digest: ac2+ERgnipN8YBmKFNo2crjX+M7aMkKW/vYSp+hxUjZx4m7P1isJ088T
|
||||
H1CZwFIK
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/HandlerContainer-mbean.properties
|
||||
SHA-384-Digest: EBzV7g80C9MWxW5TdcLX7EVjf4jt61unoEtboA7DcfkpCwEHSgvX1ULV
|
||||
eJPvifoY
|
||||
|
||||
Name: res/68.xml
|
||||
SHA-384-Digest: EaBslk9Bcnb6vOFUfI2iWY+aXsJY0Hb+h6/qjv7ZS8QPNUdl8+TuV3t/
|
||||
99X4XwUq
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL5.bin.properties
|
||||
SHA-384-Digest: mP/dep8juYRLJdz3YGW4OJUtfXnG8YQjNEtD9CVbAJ5jTHXv3t8dFoa1
|
||||
aXAV1NPT
|
||||
|
||||
Name: res/pV.xml
|
||||
SHA-384-Digest: IpFjjDJ4Uj+UM6j0/N1k3vs+k0hK5sj4MsGzAlk+JDzXixZr30elpyK8
|
||||
2A72oQCh
|
||||
|
||||
Name: res/MW.png
|
||||
SHA-384-Digest: 2qZT998EqC3sTa2sE+KltPojmhQY8fObsLzDzstcHpzrSBxtEj7y1+3M
|
||||
H4MmRCmt
|
||||
|
||||
Name: res/65.9.png
|
||||
SHA-384-Digest: JJyMElPaGtLH3SbRr9J70exRpy1dvQnep31nt59hsxVkPHXJgsVEY0mO
|
||||
f/JnSPuL
|
||||
|
||||
Name: META-INF/androidx.biometric_biometric.version
|
||||
SHA-384-Digest: pwEtshogJZKHab6O1YiSiNblzEds6oj3aBVfjYF3llrpy47Vygjm25mR
|
||||
2Hm7iaHN
|
||||
|
||||
Name: res/color/mtrl_fab_icon_text_color_selector.xml
|
||||
SHA-384-Digest: fIk8Xaaa6CEuL90L+MflkstduSqb1kTSznC0OlJegG0DvswgzrH/kPwb
|
||||
cLw6xZ2F
|
||||
|
||||
Name: res/color/m3_button_foreground_color_selector.xml
|
||||
SHA-384-Digest: ZZ/g21W+yCJtJqbMEc9KReDzZPDzmUZun5h5IDPTbWJdYKRE/IjHqFeY
|
||||
PjMN7y7F
|
||||
|
||||
Name: res/A1.xml
|
||||
SHA-384-Digest: Z/fuw6pfadcFhUsuRW0fH3mc03gq+oWHF2YsX5qT1cJh0kX8rG2qoXTx
|
||||
h8+om4pq
|
||||
|
||||
Name: res/_P.png
|
||||
SHA-384-Digest: fHM1vfWedXQnbVFyAlHb9xwjHazjWb0fVPlcQaokOL9u98sVkRDAebSj
|
||||
5jYXuKYe
|
||||
|
||||
Name: res/7R.xml
|
||||
SHA-384-Digest: wDXrCkjtDclaUXIHs2cpwIhGH/OoV9uONQJUUdiFPUFL+ZQi92CyeAYk
|
||||
4ZId6/a7
|
||||
|
||||
Name: res/Eq.xml
|
||||
SHA-384-Digest: 5hDYY1MxiAAydii0hE9i+AfHlJ4twgIEogZj4bWD/Jvze+yyVlEtsdRK
|
||||
GmmsZo1y
|
||||
|
||||
Name: res/FR.xml
|
||||
SHA-384-Digest: 31nFfCKu4iM1JFNCXVNsdQTu5bq1FJDowH8MBbg6McBtllmQCuFS+k/s
|
||||
UHtJHiLj
|
||||
|
||||
Name: res/XK.xml
|
||||
SHA-384-Digest: CxWi73ZF+G2Kj0HAvxbBcuUiSP62ytBLsTm4FtMqfpqyZIj5+8ApCicx
|
||||
HR0/9x2o
|
||||
|
||||
Name: res/tZ.9.png
|
||||
SHA-384-Digest: /WQ8N6vPHW2XToo1fpxts//gMI3xZcJ77z0iQ78oyovBRCbGYjnVPxT4
|
||||
ZDsoQfKb
|
||||
|
||||
Name: res/7_.9.png
|
||||
SHA-384-Digest: DQfSYgQJziwEz7Egzm2DMk/vHuXc/zhE+ROq/4928uNUORD8aH0ytmph
|
||||
zkBTry86
|
||||
|
||||
Name: res/br.xml
|
||||
SHA-384-Digest: mRwp2gB0BnCsVbsYRiKsH2+SXrAJz7Ko+YXim2vPnGJO954BWh1sVug5
|
||||
U3xWS9hx
|
||||
|
||||
Name: res/gK.9.png
|
||||
SHA-384-Digest: MkbBmI5p87hw4i6y0HbN1Gv+adQ+ClA8mQm9k+bRzy7vtupH8kXqm7J7
|
||||
euiowSJ8
|
||||
|
||||
Name: res/color/m3_button_background_color_selector.xml
|
||||
SHA-384-Digest: NmmdpNWDm29rdUAO3nJhdt0z4JWJGZX/xAyn1DNjmgMupTaJz3E/8wTv
|
||||
RVL8zT67
|
||||
|
||||
Name: res/eP.xml
|
||||
SHA-384-Digest: w0xzhbwP87B5kCnPvLWlScnATd+1cKT3Vxg6gncqicsaSK5dMLa8L9hY
|
||||
DY9G0lKY
|
||||
|
||||
Name: res/_i.xml
|
||||
SHA-384-Digest: gzp/LNs4s55YgwOZoEpMA71BIIcQPco/5R2Oa/Rxm97Yxf+NX7TyVmpo
|
||||
p/0Mhc8N
|
||||
|
||||
Name: res/9O.xml
|
||||
SHA-384-Digest: igx+9Er22VJVlozMA5Lj14TCQsCAXq6bzk1bdxmFsg6a93KcBHD/b28z
|
||||
R0WV+J8G
|
||||
|
||||
Name: res/Ud.png
|
||||
SHA-384-Digest: fJwrciqJvpYpxZ2/Wek++fysesI/N/H7P7Ozh9XyHln1hVJVnsr/6lkO
|
||||
9INnEbs7
|
||||
|
||||
Name: res/Ck.png
|
||||
SHA-384-Digest: +ZkWkEwqfsqMns6Op0s+z5j3M2WjifjyjUUS1tSPNkRe9gl7S7q2W31e
|
||||
XwwNPHY2
|
||||
|
||||
Name: res/5e.xml
|
||||
SHA-384-Digest: xdCcRi9q9nZRdq0GvWIEIB68BsOtd4RNGCK8kVnBbSej7SsfvObM14Ef
|
||||
ZmZiMRVb
|
||||
|
||||
Name: res/o1.png
|
||||
SHA-384-Digest: kraxHIeRJjldzCy/LvqTAfeMyyVWKqY/yJKrRM6vHJ+Np7z5BZzqerTw
|
||||
eQBL/Z5Q
|
||||
|
||||
Name: res/rE.xml
|
||||
SHA-384-Digest: PJZ2u1viJULvk4PSuquxRcY25LIamVhdUJ54zBUPSO3A7H3qzqVZ2VgQ
|
||||
/Rr95WZW
|
||||
|
||||
Name: assets/shaders/fragment_shader_copy_es2.glsl
|
||||
SHA-384-Digest: MR9S0bUUVuD4PfYZ6xiBNBHh0bd//FfkpyYVSIZY5n2AS/AKL0lb0LEu
|
||||
V8whCZUT
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/NCSARequestLog-mbean.properties
|
||||
SHA-384-Digest: ucMpqTbHvBJiWxPvzBStLDj3iDEjTUnqznwQeWglo+Hi5N+47LOpuCzX
|
||||
NbDRgmpB
|
||||
|
||||
Name: res/eR.png
|
||||
SHA-384-Digest: 2UnF0wvkctUmuCrvcslA1BmkETngpcK3JC8lBLQHfDFXIbDsM6/aZmUJ
|
||||
W0nXr9lo
|
||||
|
||||
Name: res/3u.9.png
|
||||
SHA-384-Digest: 1wcmqJVXO4cw7wWSwJgYZ5zUkoX0WQ9I2tDOCyREaEqoJ9os4PugHJdl
|
||||
ADPhIcMG
|
||||
|
||||
Name: res/ya.xml
|
||||
SHA-384-Digest: 5TfjqWjPmXPwkb0isgBAKrtoz2sftWknWvH+IonyRbgVrfeE26anKfbN
|
||||
UGhHOfrm
|
||||
|
||||
Name: res/hN.png
|
||||
SHA-384-Digest: mra1EHhwUR+YgaSCaoLYVt57tiA3FaEDYZe1EpJKvKBUlw5RV6vVLBmX
|
||||
GBK61LVC
|
||||
|
||||
Name: res/Zd.xml
|
||||
SHA-384-Digest: E97aJPEK25vLxtVuMDzi8RpF78/JCUIhULupNXm59PDJ+MUjhXlmwd+m
|
||||
CSpa+bkc
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata-core.version
|
||||
SHA-384-Digest: /sdECTOCxbC8anAoy+b5Be+s4sOxKa2lcCfAbSmHQRtFTXBTQ/FgNWV4
|
||||
EhYYNmwt
|
||||
|
||||
Name: res/ev.9.png
|
||||
SHA-384-Digest: c0l/WwgV/X7eLtEhedoLy4eEYMEMSO8jWdsAgWbBweoMioHMKD6+CA7W
|
||||
vHFt+Zyg
|
||||
|
||||
Name: res/Qk.png
|
||||
SHA-384-Digest: wQKT+E5rQoMUpJNlYqRmaI/CV/wTJ3FObXh7yldotsN0ReOfRspmeYbC
|
||||
RxVXXhRM
|
||||
|
||||
Name: res/RL.png
|
||||
SHA-384-Digest: JVgGtQO+W4rXyE/Stywig4SW2HPVTCgVVY3A1V3F3u0pIgO7BhuC248N
|
||||
1iec/7vm
|
||||
|
||||
Name: res/S-.png
|
||||
SHA-384-Digest: OQ21b4BRzMS4xIg1W7oMRWOcqrzAMxPdN+cJ7V4EMaZpHLUJgxgUx+mS
|
||||
ZJ9cVKB1
|
||||
|
||||
Name: res/20.xml
|
||||
SHA-384-Digest: KjY/x1IL4c9iklYaqQrhKupvc6HdR+7VDRQ1ubRxXp3LdgnJI3cLkYq0
|
||||
0/j/v/zi
|
||||
|
||||
Name: res/gv.xml
|
||||
SHA-384-Digest: PrMTDziGjfcJktvtG1roeZjcY1DaTBfJkEt/o+WEO4ny23l+r4Kdu3tF
|
||||
QhTgJw1p
|
||||
|
||||
Name: res/ZW.xml
|
||||
SHA-384-Digest: JqBEvIxaFUtHa15M8x766vAqeMEsd/8zwEPwZYHCdqfHh01YqT0E2t2b
|
||||
5wi3QKCQ
|
||||
|
||||
Name: res/tU.9.png
|
||||
SHA-384-Digest: HbjCQvZY9suVo2kLeAXTiBldga8iKs4vfOj2fpokZQQrKWcYDToKUOD6
|
||||
nWW2GNkQ
|
||||
|
||||
Name: org/eclipse/jetty/http/encoding.properties
|
||||
SHA-384-Digest: rOL62ZVNE6fH92hBGqxbXxLWIlr+R96mA1ricxYhkbDXDEIuuX+h9SAR
|
||||
G2N1M6Nj
|
||||
|
||||
Name: res/Sc.xml
|
||||
SHA-384-Digest: 9RDN7ASx1UIGG4WrLpUw0kVQ1NnFb7BgTRfVUYiE4vey+cYtG5e6K7pz
|
||||
bnChAgE5
|
||||
|
||||
Name: res/0S.xml
|
||||
SHA-384-Digest: CwY3AhJzZADyUta5AWi4GJvVXTQqTRHt2cgdw9tZbI6JDqENd4R6wwmG
|
||||
S1Uj6leo
|
||||
|
||||
Name: res/color/mtrl_navigation_item_text_color.xml
|
||||
SHA-384-Digest: V1p84HU/Z5lCFQ0Qr87ray9ywin6SZ6TpR1KZye630LjZhEVdc71o1es
|
||||
hxbu74ta
|
||||
|
||||
Name: res/2j.xml
|
||||
SHA-384-Digest: TZO0oOQkMySrrzp8c4oBwFE9JCN5nAyDDbjDcNQaiirFjsiB6XRNvzY/
|
||||
HZ/objJi
|
||||
|
||||
Name: res/sA.xml
|
||||
SHA-384-Digest: 7sVAUj6iXilyPo8tzJifa0guJ1cuhmhSgoMZBGf/1gw+TQAb5DHCGIAd
|
||||
cxSRhokl
|
||||
|
||||
Name: res/color/m3_timepicker_button_background_color.xml
|
||||
SHA-384-Digest: WCcHdpO1nUFDiciJ3YDjUE/4NpLGHeEVL46CcDaSE4jGcUw+k6oFK1+I
|
||||
SuWYJBbC
|
||||
|
||||
Name: res/9b.png
|
||||
SHA-384-Digest: NIkaE03/9mY+3TpWx9lMi3CeDGhpk/DQwirQq1wQ/9D1NFz1w2c31b0K
|
||||
bdrbc6od
|
||||
|
||||
Name: res/nn.png
|
||||
SHA-384-Digest: RlVDqZiw/iLj6PCuLFFmnK1xf/IusFHYkGvZDnPxNdui9mUigsCdckfd
|
||||
v0A9J0Lz
|
||||
|
||||
Name: res/RH.xml
|
||||
SHA-384-Digest: sylgWJhsfi9/eoYbZEaQQgLSo0IASLe0JxnXPy1XNsECAbT7wBPjmu4K
|
||||
AZIOO7fv
|
||||
|
||||
Name: res/GQ.xml
|
||||
SHA-384-Digest: 7bvL8xqwFDpH5Yoz+PSwzmMNiz6Ejos4/UOaZiem4gS1cdF8UjH6hIP2
|
||||
NzUkDZxM
|
||||
|
||||
Name: res/N01.xml
|
||||
SHA-384-Digest: eTdL+deiDDqooZndWumKhn/9JJSd3TxoPH7Rkc9DWMZVULVGRVSySSHB
|
||||
YK40mXfY
|
||||
|
||||
Name: res/kD.xml
|
||||
SHA-384-Digest: 8jePPxgNaqJ0sf4DvylwMzUoFDdoEeE9Dyhxgj0UApd7QKkhWuV5qY9r
|
||||
Wz6MbQ0T
|
||||
|
||||
Name: res/bT.xml
|
||||
SHA-384-Digest: hAfyCP+aTm4tNApOlCTJQ+CdLVg7vAgwzU4+XhlnGTZzMXj/VThhJIvQ
|
||||
d1TlRA5y
|
||||
|
||||
Name: res/c5.xml
|
||||
SHA-384-Digest: 8tyu3Ds02yxTG42G9ZmbvHLz0a0zUP12uNf2gN7pFMmUEqJp34IVXWwN
|
||||
Fl2QvNtR
|
||||
|
||||
Name: META-INF/androidx.legacy_legacy-support-core-utils.version
|
||||
SHA-384-Digest: nQdIi7fW7R8B64OMhUbRlmQ61FxVQ+vZVRbQHbtotQO9UHBsBiHg70l3
|
||||
1t/QXmiG
|
||||
|
||||
Name: res/t3.xml
|
||||
SHA-384-Digest: 6dopup/NAfhY6QB45ghuP9e4b5ArZbgVC3el7w8lNjjkPFIw3xi1Ifn/
|
||||
wrnUqQo0
|
||||
|
||||
Name: res/Bi.xml
|
||||
SHA-384-Digest: XhfrMjpjjgse2on2mTq86a5xa2b+4KXwp5TBS89ZeQHpsVs6XZIA4y1s
|
||||
lVm+t6x4
|
||||
|
||||
Name: res/k_.xml
|
||||
SHA-384-Digest: KXYe5tchI2kw+euj0Xi71ohBhcFaD+uUDfRjXv+cnBr6Job59HH1+OMh
|
||||
/Z6mZp/E
|
||||
|
||||
Name: res/color/m3_text_button_foreground_color_selector.xml
|
||||
SHA-384-Digest: p7jtp4KQhwVPtjLi3V6gdNZiYfUbU+dU1PHizOUeDteVZa/vstlkDgCS
|
||||
r4ARaSj+
|
||||
|
||||
Name: res/5v.png
|
||||
SHA-384-Digest: nSts7qLPlxfu394w4IoQmREekPODKQZNlx8EBqpgVovJfZIloQhVFWKQ
|
||||
rXd4BXnQ
|
||||
|
||||
Name: res/sn.xml
|
||||
SHA-384-Digest: SNWZRK8cyqUQj508M3LX1bQxhjf8wL7mf3J+hd0BdoZ0NMCU6nbL8+cS
|
||||
SuX5flBq
|
||||
|
||||
Name: res/u0.xml
|
||||
SHA-384-Digest: 1fIB9O/ZO8E6NE/kH/TsecCxPv2ybxa27mHMhiBvLE8XC/LPiq4PfOqG
|
||||
wsMh5/00
|
||||
|
||||
Name: res/tS.png
|
||||
SHA-384-Digest: l+eTKr/NotMUYWQKX7xz52bGYj5+KDiAT56GTfatqDsmb5XwuN6D/ynk
|
||||
f3W/kRwh
|
||||
|
||||
Name: assets/js/lib/cheerio.min.js
|
||||
SHA-384-Digest: RWjDmdwwoZ1WQ+lz+AgxFyFoIxXkbX2Yv3ERksXnHCQ0MN5+tza/MP7G
|
||||
7PFoaBXP
|
||||
|
||||
Name: res/Wp.png
|
||||
SHA-384-Digest: H18eLd+yPj3CHXkTV01LQrZCsj8+KW1ntOpIsidKzdvApy6URYkQs5PB
|
||||
mhYKEmhb
|
||||
|
||||
Name: res/color-v23/abc_tint_spinner.xml
|
||||
SHA-384-Digest: Rgm2Os9V5eW5NvADidkWeSZM0+LXD0zRl+xDZcXUuBblxeRtnTYdjW+H
|
||||
IkRIhszA
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/FilterMapping-mbean.properties
|
||||
SHA-384-Digest: Nqx6m8GIvng0RITQd3DcKuH0FwmVomIqHEKle98ayy68Cv8wFMxoMF2n
|
||||
ZNRHsHV+
|
||||
|
||||
Name: res/2x.xml
|
||||
SHA-384-Digest: HFidUmxFmP4aMO+1YTShwsgucCDFM12FLcnn65ZKjZULCHipppuS8mtW
|
||||
MVeZ+naf
|
||||
|
||||
Name: res/dC.xml
|
||||
SHA-384-Digest: UoYTWbUupEn/iTe6LRjGvCxRcPmwY6NUOUVNScgtxOt3Z6bCdYv3WVzl
|
||||
qMFC3W7b
|
||||
|
||||
Name: res/color/abc_background_cache_hint_selector_material_dark.xml
|
||||
SHA-384-Digest: Liin6VIqzQBYjLGIEmaxCzSMn1g9eaFDsRlxotwlQ6rHJgeYTZh6PXbG
|
||||
ixtjuBoD
|
||||
|
||||
Name: res/Fg2.xml
|
||||
SHA-384-Digest: sVx+Nv6KhB2Yk51jQ8ZGzZ3XntsBUOr9gDFBHUdZPwx6MMjUlRnYiYMn
|
||||
5AzYvo/X
|
||||
|
||||
Name: res/W5.png
|
||||
SHA-384-Digest: R3ZqJIAmHE+yPZkZUSnS7mqG5QorIXoMklg/NNHZ60fKlzUN9ZFL4z0b
|
||||
Qx1MO5eB
|
||||
|
||||
Name: res/Ce.xml
|
||||
SHA-384-Digest: gEdfg95cCnF3avKJO7EtP0SulVCG52Bvp6wH1BRG/wb3noAVUQWqf8LB
|
||||
YdM/AsAs
|
||||
|
||||
Name: assets/js/lib/spider.js
|
||||
SHA-384-Digest: VKciyavudqpU2lmimGH/6OJcZp4pOy5HxwnSulg3swLzPNEO3Ccy//Kn
|
||||
y8JwXZj5
|
||||
|
||||
Name: res/1e.9.png
|
||||
SHA-384-Digest: Z9InkZ7V/avYQO7ju0HFzx4cNkCYxy2OQY0JRiw/SPf0ppVPX7dKd+mi
|
||||
AMfR03To
|
||||
|
||||
Name: res/wu.xml
|
||||
SHA-384-Digest: hhqmMukvbP37vMpCldAVWCyQaADPMqVcxET5pC+x683pZKax9OCB712u
|
||||
XBcR66cY
|
||||
|
||||
Name: classes6.dex
|
||||
SHA-384-Digest: h/htoWA8A6bv7Czj/e2zEYdu9oGezqB5DxGvbaDHk4bmK+5seo3Sou5c
|
||||
wqhRELA2
|
||||
|
||||
Name: org/seamless/swing/logging/img/pause.png
|
||||
SHA-384-Digest: xqwy6t31g68CBSv6T1qMmwN9w85QPv+nK6+RnF8PALUGTlzSWO1oge3t
|
||||
Bq5FO6V3
|
||||
|
||||
Name: res/color/material_on_primary_emphasis_high_type.xml
|
||||
SHA-384-Digest: rC41WLMtHMrQe0Mq0Wf1+rSZK0bz/RRJbU5iKglOZ2ANWtLL8v8jUkjd
|
||||
/cPhzSlT
|
||||
|
||||
Name: res/color/material_timepicker_clock_text_color.xml
|
||||
SHA-384-Digest: KccJorsRjtUzowqAe4OdfeWUvC0gRCB2BD3ycFZzzNpUxbgjGN+A7wel
|
||||
b/jNaWJt
|
||||
|
||||
Name: res/1d.png
|
||||
SHA-384-Digest: 3p6lO6uI6CeKanpthry1PcFDojZoYMAMLFN/6gonsY+RmUPQATCwyShV
|
||||
SpRVkYdF
|
||||
|
||||
Name: res/color/m3_navigation_rail_ripple_color_selector.xml
|
||||
SHA-384-Digest: 1zhZk0SRANvndRHb5vF3VtxWtzBfWYgqIfmD+DDgzc3V3/704+DNUbE5
|
||||
u2+f761o
|
||||
|
||||
Name: res/Lp.xml
|
||||
SHA-384-Digest: rh3QTLkrJsY1fUkFXSsv6JVStZFChDP9eaLn27mHF2WcgBWkJlxto4dR
|
||||
ii3dBA2C
|
||||
|
||||
Name: res/IN.xml
|
||||
SHA-384-Digest: LGsB5i0p0fpKqYcvC1muMFEd0BDO3xA9uCZJZtvb0t6tj/mnXJdz5ZpV
|
||||
xo8r2MNX
|
||||
|
||||
Name: res/iI.xml
|
||||
SHA-384-Digest: RVQFl6XsPaNwJQPriRIOFs0e7tXhFiT6Tbb7nCuiXkWyrk+WvD3QfUpf
|
||||
J1h4ZJc+
|
||||
|
||||
Name: res/n-.xml
|
||||
SHA-384-Digest: yZu1SpULWR2DOR5u/JYUJ+VLdOh0ttFfwqEPeHdxAP/yHvdGIBChX8G2
|
||||
hjqwWr8q
|
||||
|
||||
Name: org/seamless/swing/logging/img/removetext.png
|
||||
SHA-384-Digest: 8BscRJnUosjbdivDuaPhzd117ytOQIthaoy+frS0gQgedB/Gq66EENQp
|
||||
rDPQFqlv
|
||||
|
||||
Name: res/bt.xml
|
||||
SHA-384-Digest: dDOyMBhZr4WvmAQkYO+lweQzp+OG0sVIDzh4Y6yRdaqzvOKaDD02GIlb
|
||||
5atlneVm
|
||||
|
||||
Name: META-INF/androidx.print_print.version
|
||||
SHA-384-Digest: qP0uelGkXIaO8grIIlpo0dHCZW5b0GkcPWrJNqS1syuFI55bKupNPD/f
|
||||
hUmFm+N9
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL3.bin.properties
|
||||
SHA-384-Digest: KNpGqyaJ+qkzFbEPHhKuTEvByvYlbKUjCEl3Zj+5y+WDzPxBZaqME1FX
|
||||
Oq0rl0lk
|
||||
|
||||
Name: res/mA.xml
|
||||
SHA-384-Digest: kNB8G7k3pkc68jceVraTMS3dJFeJ/MVv5ks3QfGFjvknCGHCYGh7CaRS
|
||||
kKxHjcbK
|
||||
|
||||
Name: res/fO.png
|
||||
SHA-384-Digest: ePoN4rg/Mq+V8BRCMcAVsTYeI0AyZgvDOsv6IEd7eK6Z9HKA7AgLq2Qj
|
||||
JdD2WrQS
|
||||
|
||||
Name: res/hl.png
|
||||
SHA-384-Digest: 6XhKfzV9jnfZvR6sZ8uX1F96M/fg4KMw3EhVwiPLQELM3+c/W5OdKC0S
|
||||
TkJSctWA
|
||||
|
||||
Name: res/sl.xml
|
||||
SHA-384-Digest: t7QwssCYMdJT8GAd1SOkre6NY8180Pz8RQy1j0JXowJdMCg+4Fa0i3Mf
|
||||
Yee2z69P
|
||||
|
||||
Name: assets/libmitv.so
|
||||
SHA-384-Digest: DMv1ogovxJIwbBgmF1MBPFF5Ved4OOqGhxChGtZEsMU9w+f8JhGq/oxr
|
||||
pJaQEgeL
|
||||
|
||||
Name: res/Lt1.xml
|
||||
SHA-384-Digest: ISaIouDvHXY51ELluEe8dihPFFVf2FFiRDg2g6K0DKhEs5zuwebHZ3EL
|
||||
66Trihkc
|
||||
|
||||
Name: res/MU1.xml
|
||||
SHA-384-Digest: 36rB2sus+WA5ItAcKTpnulURLEzzc22R7XqRnvyZzmBsO9yzExpgWs4G
|
||||
GzY6MYe0
|
||||
|
||||
Name: res/pk.png
|
||||
SHA-384-Digest: c7KNn0m3JBfI0+i5QoMUpIrcwYs8Qk84smcNivGnlk8bR3pRkoON8QuB
|
||||
3ts2cEU9
|
||||
|
||||
Name: res/8p.xml
|
||||
SHA-384-Digest: niAFZGIRwQT1sJOiorwJRt4n5u8egMIQ4PE/GDRnDHjp53X0O8xW+koB
|
||||
uaz/UKbX
|
||||
|
||||
Name: res/kB.xml
|
||||
SHA-384-Digest: aBeO7gb6VBKbz1Knp9Tttb5kqilyVvcRUDLqEFt1O5trnMf87f7+TplN
|
||||
AJHgeSsL
|
||||
|
||||
Name: res/Nk.9.png
|
||||
SHA-384-Digest: 6iFJjl8JbBqq32IHrYFLlAGKxd6uS1zJZc40HRcGV4ACfrXSNlgyyH95
|
||||
p4AuUpiI
|
||||
|
||||
Name: res/color/mtrl_error.xml
|
||||
SHA-384-Digest: M0Ki4n2bk00vinCLAeUlSeWa9+1trN69do9cNS7iNkyi1xgY5Q5DFF6H
|
||||
WW9wSsxP
|
||||
|
||||
Name: res/eC.png
|
||||
SHA-384-Digest: 3e1Em+LhXWmToTQdMxSnpmIJWOW098nmoKcRXsSNg6+qpXb+EwcfhkkS
|
||||
4aCVi6HY
|
||||
|
||||
Name: lib/arm64-v8a/libquickjs-android-wrapper.so
|
||||
SHA-384-Digest: ndJGg1tqMM+kfhxn189iIUK9fPYhXg38cOg1qvlk6Vn98lbESj6u9gJk
|
||||
XLcgZMCT
|
||||
|
||||
Name: META-INF/androidx.core_core-ktx.version
|
||||
SHA-384-Digest: Q3gEnY5WNL6zdjRW90bEstC5SX9HH05ew5ShztAlmVpkhry9zUyXvW7n
|
||||
Mrvf97Ov
|
||||
|
||||
Name: res/color/m3_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: LC3q2+iys+sDWfGW4/tEmSxSafCbLIYjSYkO+NwVTSolMU+KsdVWpCn2
|
||||
BlzN4xNt
|
||||
|
||||
Name: res/color/m3_text_button_background_color_selector.xml
|
||||
SHA-384-Digest: 2K4bH+LmIKJbyqdv+5VRgE4tOKEMc0t7Qo8qxwh8NAnZ5fSmW/dQ6Svb
|
||||
FJOOJX+S
|
||||
|
||||
Name: res/0k1.xml
|
||||
SHA-384-Digest: gkFTEGYnN85XlSCGva6GNZrkH+NhliZMMd0ODyuDpUD49tOr6W+Ffibk
|
||||
KtuKjKTF
|
||||
|
||||
Name: res/bi.png
|
||||
SHA-384-Digest: FbKqtTUaxD17zFUpw3a6Mnw3cf2k+2O6gEFyBVyQDAlPLmQaQrAa8hiC
|
||||
OkYvyKNu
|
||||
|
||||
Name: res/color/mtrl_popupmenu_overlay_color.xml
|
||||
SHA-384-Digest: P5BULWmCqL4KB/sbKwzE91Z4AZVlrI2HE6cwXhW90nAipOItIbyc9G+o
|
||||
EbQqueU+
|
||||
|
||||
Name: res/color/mtrl_tabs_icon_color_selector.xml
|
||||
SHA-384-Digest: bpTxQZsCZu3lDsbwl9vDaDEm9QEbo7fyd7Dh1YkkTyGheTShCqOFBV2y
|
||||
bQ/0sSE2
|
||||
|
||||
Name: res/zb.xml
|
||||
SHA-384-Digest: z9XcuznmTM703Pd18O1cN7OUc8yOteyMD/xL9EtNBlFHZPGeziu1W1kW
|
||||
/GmfI9O5
|
||||
|
||||
Name: res/Dq.webp
|
||||
SHA-384-Digest: EHx2Q4VwZBqb2FxSqx2AiiORZ2N9M97Op9lgNG7ZVImsOyvIv9KNGzpD
|
||||
4acVIv4O
|
||||
|
||||
Name: res/Jw.xml
|
||||
SHA-384-Digest: oD/iHhAxq8z1dlGqxEaBgyvwPQF7auXB9HIlO1ZjtCFfOf1RGzw0grZW
|
||||
0YlgxIbC
|
||||
|
||||
Name: res/color/m3_checkbox_button_tint.xml
|
||||
SHA-384-Digest: 3qdLIIVbAi4u81ha0nZoFDFC9CFP66iEoJW6d9sh/vrxcaDdB/64hcr4
|
||||
eBozWmRh
|
||||
|
||||
Name: res/color/material_slider_inactive_tick_marks_color.xml
|
||||
SHA-384-Digest: RCYQFn98+3cERzfNejJxKqmVAjeeJSW5D8AbtAU8Z9GPNSIfvzx2c+Ty
|
||||
CZAEeZ3T
|
||||
|
||||
Name: res/color/abc_tint_edittext.xml
|
||||
SHA-384-Digest: HAP4EN2LeRyd9wAfYozgvx+gTNBGRIbvAR+0Ko3z9GXvIHmh/iD80bT0
|
||||
R/KOFPRt
|
||||
|
||||
Name: lib/arm64-v8a/libswresample.so
|
||||
SHA-384-Digest: +4igPJZ2YnzWfosJqtGklx80HZ/vXO444c05F/itXceX9bBZMzZevV4e
|
||||
QrnIMasz
|
||||
|
||||
Name: res/io.9.png
|
||||
SHA-384-Digest: ZJ9dceOSCXBSVMCsGc+zXTQEZb6ZE/pLSv+0Z4KA34F7xcsbxEPvbO/o
|
||||
5kDYGoHe
|
||||
|
||||
Name: res/3h.xml
|
||||
SHA-384-Digest: 4UO1tunBKQ6qK9aV1a4k8+p6q86uEPo2oEa20dXRbiFaUf/QiNZeGPIx
|
||||
+++P/l/U
|
||||
|
||||
Name: res/4I.xml
|
||||
SHA-384-Digest: F6dFQvziAtbpFV2Y8TaEAL0EEG6Ca5KrsRvtwskfwD8Vd3w/y4aLz05W
|
||||
NkK0tUax
|
||||
|
||||
Name: res/yF.png
|
||||
SHA-384-Digest: QLUIqzGoXcxHNbRVluaubDQ856+KdgGh40DlWjTWXEdLxidi6E54HH8k
|
||||
ngSxL/iB
|
||||
|
||||
Name: res/sV.png
|
||||
SHA-384-Digest: hBL/1DhvWB5RI5mE3Fg1f4e8rVWQdi1O9biUk6tuwqXWKVUbM3UdXiAD
|
||||
NqhLAPHB
|
||||
|
||||
Name: res/kn.xml
|
||||
SHA-384-Digest: HVOhGStVYVHizUDTkP/0eusPbj7Lb5AGMz0gv8ZIqM2zWqYcwAE/BoYR
|
||||
IG7PWaPA
|
||||
|
||||
Name: res/color/mtrl_indicator_text_color.xml
|
||||
SHA-384-Digest: APoN4wIFclMVh8wpb9xqUVlVp6mVz3Vdsds+wesiW+08mZ9CS3NYAfXK
|
||||
L2hpcVnu
|
||||
|
||||
Name: res/-N.png
|
||||
SHA-384-Digest: Bc/jESRcwAnthZAH+x4m2cJPRpTuR7Pe22hMeAV/84BF2IY3oskKlPS1
|
||||
xSHftgOo
|
||||
|
||||
Name: res/5v1.png
|
||||
SHA-384-Digest: PtTOWcdfSqPhaIXln1j7iMWPBRmiiVA5xMFye0GK9a9qPZwEi+HVKnYx
|
||||
KZiKhLRh
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/dc-elemen
|
||||
ts-1.1.xsd
|
||||
SHA-384-Digest: Nc3uuyHt9pqLxNoUVpH+bJB1wcDHoj71BtdXkgW8s5V1ftlAgBFmK7Ih
|
||||
i4J+o/aE
|
||||
|
||||
Name: res/mc.png
|
||||
SHA-384-Digest: /FiR2pIKTh8WhXS1OdSh/Za+Oyp/CyWM7F38ahAzqp2LOtBeaEpMuzux
|
||||
FypG2FMx
|
||||
|
||||
Name: res/y9.xml
|
||||
SHA-384-Digest: c8c3shB7vkZijqDLMOB9zOm13mO9Tu3BE5USZvxrlxsUsdjhHDk8duhx
|
||||
gpWUzP+Q
|
||||
|
||||
Name: res/Ju.xml
|
||||
SHA-384-Digest: NVFlZpf97wikDko+mLM8GhL94pFxPIvzka12m0GP5ryx2MOTAbyNMZqF
|
||||
MOduLfay
|
||||
|
||||
Name: res/gZ.9.png
|
||||
SHA-384-Digest: oUV2pU8/uPS+NzL1tXrQfUXRXGqBw3cKSCFMK4bzGNFg6QEe18lPqmqe
|
||||
LL8X68gq
|
||||
|
||||
Name: res/7G.xml
|
||||
SHA-384-Digest: betyP9FbEhW5FeXZU78k1U+hMqhYUeH86Ikdda4eTGv4crVVc2+GdqVG
|
||||
oSb/L+L4
|
||||
|
||||
Name: res/Fr.xml
|
||||
SHA-384-Digest: 4dCZr9/psbdMaD7aH7qhPv8eWhUESZRHFz3rCebyBqfniSla8u23E0qs
|
||||
9/SlNm6Q
|
||||
|
||||
Name: res/H4.xml
|
||||
SHA-384-Digest: 3/QJPnQ2ITfmbF8thoiNpstJB2tvzBmDCe2CWOBMVkcnjis0ZAPxdRqy
|
||||
d0Jchy8b
|
||||
|
||||
Name: res/Lf.xml
|
||||
SHA-384-Digest: F8HQrEQ+HZGQu1KqzpyjM6m6BTw+gnC9PX2jy9ZGtZcNzyFHLpR1SA8e
|
||||
cyxYQHDB
|
||||
|
||||
Name: org/seamless/swing/logging/img/debug.png
|
||||
SHA-384-Digest: Sb9czHpxlu1Hx2fWhONVwhN/DMB40Kesz1inOL09bOCOW19UBCfRL6+D
|
||||
/03XadX6
|
||||
|
||||
Name: res/UH.png
|
||||
SHA-384-Digest: /Vt9o6rigIeUD3IVqvpqxn+qSogtDkaKbaZZ6OGsQmJs6+9CpOCd0ZmF
|
||||
KYJ1O2o/
|
||||
|
||||
Name: META-INF/androidx.customview_customview-poolingcontainer.version
|
||||
SHA-384-Digest: EHf5MBesNj06gp+GpvENR3LtSvpSorFvIGQZBYtVzhv9c1TbnMLoP47p
|
||||
U0wo49PE
|
||||
|
||||
Name: res/4x.xml
|
||||
SHA-384-Digest: 4nISmwysAAm8FbDppatAoLH4yIbQ7vSBm9D9NkZZ/tAYJa0Evx6eWxHP
|
||||
6Ruf2qxo
|
||||
|
||||
Name: res/5Y.xml
|
||||
SHA-384-Digest: zvoGkkTWABOufda/RxBsZOj62Tcq2nC+/b/sHMeOlqbuYyvky52H6HJG
|
||||
Hvz/aHpB
|
||||
|
||||
Name: res/xa.xml
|
||||
SHA-384-Digest: //hHlGoAnYsX3EWaBXa5h5ABk80/l43NdUpXgCR2u+eUH+xGEMGSk69p
|
||||
IVesc7ke
|
||||
|
||||
Name: res/yj.webp
|
||||
SHA-384-Digest: EeuI0cz5cTo2SV2Fyt/95r47bHyDxjt3Q9DAijTb7Wq1TqHzIPY9aHN/
|
||||
dVLDxlkR
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata-core-ktx.version
|
||||
SHA-384-Digest: UutrFl0STXKxAaMcmggEj71td0a3E1WYlT0hVl7uktCUdfPDabIf/BPX
|
||||
dh4QJJ6r
|
||||
|
||||
Name: res/9m.xml
|
||||
SHA-384-Digest: EMPXGShM/cwfrrrncGl9/k+HQ9YnEuAHJVf9wtKs1By1Ukk4N9lQIx9Z
|
||||
6QsStGdT
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletContextHandler-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: I2eLzwMiqnHmfcOiXAjz2SQrqjR+6b/2wQFlz6rXZLgMdwIsf54x4uRE
|
||||
DDk/EAxj
|
||||
|
||||
Name: res/Iy.xml
|
||||
SHA-384-Digest: FPGUYUXuCzwDxAgu733yM3RKhOxS0pbNwVtq7VTr9WEeTX3SWp0m8tV7
|
||||
ojuYb60L
|
||||
|
||||
Name: res/gt.xml
|
||||
SHA-384-Digest: xLHkm2GQZ9YBUj+LxZGleumlPp/QoMGz6gaIWhaK3522deS6kIeAqLvh
|
||||
ILVLSQWU
|
||||
|
||||
Name: assets/shaders/fragment_shader_lut_es2.glsl
|
||||
SHA-384-Digest: ue47uo2x26US8QgrJR3t0re3A4ykcfvHd2V/nuzYDk6YBIq2m8M6RKjW
|
||||
xmQX7sRL
|
||||
|
||||
Name: res/7V.png
|
||||
SHA-384-Digest: SLUS+3uVbYMgChJtsCSr15cRmNkV9uxrGZSodjooeIup0MjDaB2AcudP
|
||||
C7jL1GFn
|
||||
|
||||
Name: res/um.xml
|
||||
SHA-384-Digest: SHuGyGQUOhXlDrL6/ENAb+RLHIfz1bP7zPDf/cymqiV0zUhJh0aiKh+5
|
||||
S+keld8l
|
||||
|
||||
Name: res/NN2.xml
|
||||
SHA-384-Digest: Mc/+NpaWyPQUUpLUqP5g4iQ52hLPiOmkPvKy9/rnX6Pa7jyVlFG6Zddu
|
||||
fBd5GjS6
|
||||
|
||||
Name: res/S8.xml
|
||||
SHA-384-Digest: oiHaMOhXwfRCoL+kb6E0DiSAFfnR9vJJIjPtAVbN6zcsioxcsxouFsZG
|
||||
qYqsDKju
|
||||
|
||||
Name: res/0c.9.png
|
||||
SHA-384-Digest: ZLGj0Q1IfT+WcJ4O2nMdEZaclTyDCDRa13GFQ+XaOzrztRhlDGjuWWla
|
||||
nmuRF+/3
|
||||
|
||||
Name: res/color/abc_secondary_text_material_light.xml
|
||||
SHA-384-Digest: qqS0FBbU9oCUtR1JZZbff0ZcYX2AJh9ASRot1bVsPHushJVLVYlve5Dx
|
||||
vsWKfRoe
|
||||
|
||||
Name: res/color/switch_thumb_material_light.xml
|
||||
SHA-384-Digest: DutYsEpVhJTRXLHvG6avUxz6fc5X+QsxGO3oVpAPV4QIHW0t6MrKOSN6
|
||||
6m4srKpB
|
||||
|
||||
Name: META-INF/androidx.arch.core_core-runtime.version
|
||||
SHA-384-Digest: jz6TlJYSdS28mB0Ilz92tFyeLbqcQ2STqN9LqRUkqQh3RLNCrlHEEmFI
|
||||
VFExA/hZ
|
||||
|
||||
Name: META-INF/androidx.emoji2_emoji2.version
|
||||
SHA-384-Digest: q8zZlSP2PzcXI6eq42Mb5OFNcipRKtcDkkM7svIY0+yBMlUn3lRYABWq
|
||||
TgYe2efF
|
||||
|
||||
Name: res/nu.xml
|
||||
SHA-384-Digest: okG2dR4xTQOekrB3E6KWzAu8IUBrDyML/WthnJYeWLFcOIuczs9fjbkj
|
||||
JvNRTIN4
|
||||
|
||||
Name: res/color-v23/abc_tint_seek_thumb.xml
|
||||
SHA-384-Digest: 3qlsgXepFKEGUo6rfgNRveu522IwEdMuvCjZS6P59WOEsRzK+/Rqsx1l
|
||||
f91y+3co
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version
|
||||
SHA-384-Digest: wsaNMsWb6RQIy6WzraFZHnYm1auw2qAXCS9mKbQVshTwQm0yxwd1ZfCU
|
||||
cJ3MdSkp
|
||||
|
||||
Name: res/50.png
|
||||
SHA-384-Digest: YmYvWxSjy80Yth1HpagG/zmciOJBcyChYs8FLODRHFIvQK1aUJPJTV6o
|
||||
sdkVZnX4
|
||||
|
||||
Name: res/nl.xml
|
||||
SHA-384-Digest: PqNKGDZxRIYm83tqOnjxtKW86tQ4XgophH0vO9djCQxjwGkut3c3Zlj+
|
||||
Q/0Pi0cS
|
||||
|
||||
Name: XPP3_1.1.3.3_VERSION
|
||||
SHA-384-Digest: CklPlpd76s1tDOgGr6hghx4bk9MTNUMrG+9XNruXbsG8osCd+oOSg2Os
|
||||
sM6tCrjt
|
||||
|
||||
Name: res/t1.xml
|
||||
SHA-384-Digest: 5ZgzD8rur8eYk3DJo9kqEw3G2JOJH8+l0km0Am90AEPtpYa/E8xwVrxW
|
||||
Vir2xgxP
|
||||
|
||||
Name: res/color-v23/abc_tint_edittext.xml
|
||||
SHA-384-Digest: 8eOAxWZOG/KOMWLwZahIpLd77AJV9IN9diddiADllGCFlC6bNX7CmPre
|
||||
wQVsppoe
|
||||
|
||||
Name: res/Ei.png
|
||||
SHA-384-Digest: 6xH5N/pmcBrzDYuMBYCZcV5A3hcEUKx28dDuRTuFlthpqPCvcKd1JJ1C
|
||||
CmgEKGf7
|
||||
|
||||
Name: res/color/m3_slider_inactive_track_color.xml
|
||||
SHA-384-Digest: r7h9WzlZOpNHJm2z82BjnVNVNG5uDmqv0vc2q3PoysqYj/Ialx2s/RIn
|
||||
BDObfS/k
|
||||
|
||||
Name: res/ea.xml
|
||||
SHA-384-Digest: LcyZY3b5j0la3PP6BpBuZxWhwNVpe8uRmcF2BHwjc/pDJqwbQl8YkvsX
|
||||
embJg6HW
|
||||
|
||||
Name: res/3W.xml
|
||||
SHA-384-Digest: alKJL222zabrY1FEqf2HHjZ3B9U7kNt5tZfnshyOLrQPRs1icqGaX4cm
|
||||
JIMqIcX7
|
||||
|
||||
Name: res/RJ.png
|
||||
SHA-384-Digest: u7Tr5M9AIJIFeXvvoBGL1wJYMw/8SZK4hAa5/K49/FGhWBJm6G2LHtJn
|
||||
jUmutXA6
|
||||
|
||||
Name: res/NG.png
|
||||
SHA-384-Digest: jOBMfDdS3YEjkXGa2zzE8rYb6fx4aTlBaz3T7sT6GJ+c8s+jD+Hq+ifs
|
||||
jsoR6ZtS
|
||||
|
||||
Name: res/ej.xml
|
||||
SHA-384-Digest: O8fSx7s/qrQfriote4OhMR9Pl/6cLlw6POD0DFqXaqxVaz0hAoTShGXr
|
||||
d+VcV8xH
|
||||
|
||||
Name: res/jS.9.png
|
||||
SHA-384-Digest: xLXYmQU9/B/GjycWsZpdYxnjdz+NCePGwpgwFQ8gJE0frGxOpwNfp6nZ
|
||||
EcrKVwCc
|
||||
|
||||
Name: res/6Q.xml
|
||||
SHA-384-Digest: no0nNL/fQnceDCisUceJzBxii8Ah+nMkKyXtNr2TIqfNW7gMGZ9gnUJn
|
||||
HOqzeYrC
|
||||
|
||||
Name: res/r2.xml
|
||||
SHA-384-Digest: fsJM0DF8pPCTA6YkBL3unbmcoWyOnH1etJjvbKQ04198WRi+O0qxZC9p
|
||||
nGtE4Gzu
|
||||
|
||||
Name: res/OD.xml
|
||||
SHA-384-Digest: 8iNXVyOf4UNlWv2Nog+CCc9X4cMGe4s2ciKZFA47ahMpgcqauoGmvOBz
|
||||
3dCJyJKI
|
||||
|
||||
Name: res/am.png
|
||||
SHA-384-Digest: ZztAmq0S64scRq7lgDzu10DJEmSs4Ee7mzSnw/Xyt9gSuJp7UFY3k849
|
||||
LY0nKeBy
|
||||
|
||||
Name: res/yW.xml
|
||||
SHA-384-Digest: YIhvcj/YuH5FYYGQV9Qo60dF/Xpnlw6qrYlcPSZQ6nBa5t3i6FGTjSkI
|
||||
Ww1Qpglz
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Server-mbean.properties
|
||||
SHA-384-Digest: +otYDh+ipBi+66uE6tHoO/L6SASFmSbIfJn/eXU6iNKzYT9dEDFIp9ED
|
||||
Qg9WjXmz
|
||||
|
||||
Name: res/1I.9.png
|
||||
SHA-384-Digest: N4dm0HQgAfNtvI84X5y7WuOrfgLOVNU6Ksq2aDVsU3a631fA03wnPeH0
|
||||
66/m0l+s
|
||||
|
||||
Name: res/PX.xml
|
||||
SHA-384-Digest: 7rSehPSLe4wa17Cso7Ls04dnEDw6NmbW3OwLOQNUIXE/RffjVnwDCRAj
|
||||
pyvmvtD1
|
||||
|
||||
Name: res/color/design_error.xml
|
||||
SHA-384-Digest: eBoYAU+4fQpV5fDoQP0jpkHO4E1Y/sYUHxv3jBoxQdyigtvD6Ea00hh7
|
||||
CKapEHjZ
|
||||
|
||||
Name: res/nW.xml
|
||||
SHA-384-Digest: Ai5qnK6mYzwaHlsVTDP2KLtWh/aZ3+amcwI3s2SHy1q8/3S2AmqZesGw
|
||||
eyD2pUU6
|
||||
|
||||
Name: res/I3.xml
|
||||
SHA-384-Digest: BmXRBDrX5ugujpMhoF/ql7AKxvjRaEY7avbQ/0jSnucFJOGxVjhavYM2
|
||||
mIpy0xB4
|
||||
|
||||
Name: res/Y3.webp
|
||||
SHA-384-Digest: PhwzK6ITtggp9IgyuD5rxyoAzpZEGz3WyqcFnfZRrNCKJhrkw3D1QKF2
|
||||
3nIpFVxv
|
||||
|
||||
Name: classes4.dex
|
||||
SHA-384-Digest: A3QI/aOWxp9D1Dh4/wLQBy2BMNeKGb+mHAHCTkiqoFWJFO/zMapb5yv2
|
||||
PBqtpGiQ
|
||||
|
||||
Name: res/z-.png
|
||||
SHA-384-Digest: sydD0tUuy+dXyE2ob3N84GLS2Ry2hAJZnY86Woil0Gtx2PhpmcxsXB4A
|
||||
OFZTSbB9
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletMapping-mbean.properties
|
||||
SHA-384-Digest: h8Zef6V9LA3ArtEXM0mTdQAi5n1Gl5sA5klnEUDqA2XupjBxc7FlrUju
|
||||
2WlH6i45
|
||||
|
||||
Name: res/BG.9.png
|
||||
SHA-384-Digest: vOyGqXu6t3b61r/EiVwpteTXDnGOff5Imf1VDrSLb8xzVbDPN3Q+OeQ6
|
||||
/hYpenDM
|
||||
|
||||
Name: org/seamless/swing/logging/img/copyclipboard.png
|
||||
SHA-384-Digest: /YO+oecgTyW9vadyc68upsmPDJG6/9pATZG8KTIK2Q6B+cgKjXiKIfvE
|
||||
9eEFcmjJ
|
||||
|
||||
Name: res/-7.xml
|
||||
SHA-384-Digest: 68g6FAjS1GonrRxOnTwQA0ydahGzKJCJzHi54d4VrA55ggRXfoWGnpWk
|
||||
QZWoIA6k
|
||||
|
||||
Name: res/h7.9.png
|
||||
SHA-384-Digest: GrolqyQRU8MlxS0AhahO91YGLuaDhxe8YCn3dKhqBuXLH51hyjTvgfDf
|
||||
Px/7qaAI
|
||||
|
||||
Name: res/Yc.xml
|
||||
SHA-384-Digest: riY7i9nq0JPfRqafLUbMf2QLP0dvsOPcOzEDUQsPIe6ZswIFEva+dBX6
|
||||
h1TrBNCV
|
||||
|
||||
Name: res/ZD.xml
|
||||
SHA-384-Digest: lPsS9fi2Xha++ZwBCS/Nw7mpbGlUrXxtjZ4t03vND4hnlF+kwgsdURaJ
|
||||
hn+0Obi6
|
||||
|
||||
Name: res/iO.png
|
||||
SHA-384-Digest: 6J38quWjrp7tu3/+kGl+00HpAzRslZN5HxFGtFReullkROqmpNbEnsKJ
|
||||
G8x3ZauF
|
||||
|
||||
Name: res/mm.9.png
|
||||
SHA-384-Digest: KDHJeGAT/E5o5Zt/JALkhwWZYmDtGxxBjMpMYgQRShT2s11RAsmk1sV5
|
||||
NDCpaMI1
|
||||
|
||||
Name: META-INF/androidx.activity_activity.version
|
||||
SHA-384-Digest: GAUzqROBqSNEOdKTgEYNH9FtP3gEM37QyKL0uj7CnogPXyqU/2ZCmyPZ
|
||||
OeyGd7Kx
|
||||
|
||||
Name: res/o-.png
|
||||
SHA-384-Digest: h6i2zRQXyiGrAu5TgTaMXgQOYdybRcAnLEsCK7aw2bInkmtm42YWn/KC
|
||||
R1jJVAX5
|
||||
|
||||
Name: res/8j.xml
|
||||
SHA-384-Digest: XAA5a7LJMHzgrH2f6UAao/6vSKxFrtmG8riWU/4spQzLuGWkc3hgDZOQ
|
||||
r4kgg+kb
|
||||
|
||||
Name: res/color/m3_card_ripple_color.xml
|
||||
SHA-384-Digest: nignLKrB2vyDjiUxkU7FPjbNvKESyBosb+5GJPF96VLOJEepfVIJ/+3y
|
||||
9jyWLNlQ
|
||||
|
||||
Name: res/qU.png
|
||||
SHA-384-Digest: Fz/zZ+9mX/3S6c4CGSmjrho8AKren1RY8tXl5+9J34x7X1cWwmgrV0eJ
|
||||
Mqc8bV/q
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/StatisticsHandler-mbean.prope
|
||||
rties
|
||||
SHA-384-Digest: xmIUW1P2T+KgsuOaGEitU03nTCySeQWnIErFRTtwA4R14LtQZvAgPdpJ
|
||||
65Ka25qM
|
||||
|
||||
Name: res/HC.xml
|
||||
SHA-384-Digest: J0RMBATR7KIXCRINtgFt1ipwhJzJEtf12Nhq2sAkuV97querK8Qdz2XQ
|
||||
8RqIifVz
|
||||
|
||||
Name: res/hP1.xml
|
||||
SHA-384-Digest: R52InEuA9XvAaY+Ea8iKuS9fm5Ymmh1TA8q+3TpAbIHu/TyKSUFP6L1e
|
||||
ztfO2zgO
|
||||
|
||||
Name: res/7i.png
|
||||
SHA-384-Digest: 5MCqNCKOeC59rlNzOJVsmdh0dtUdr9Yng3tAtXja2b2M2tt3R0BWPdtd
|
||||
FZZz6YFn
|
||||
|
||||
Name: res/color/m3_dark_default_color_primary_text.xml
|
||||
SHA-384-Digest: qPueOlWtmoGxaYh7MIqSFl1j6HKVzkBibSiD8SLpVzT5emRAEuguTcgz
|
||||
L091HP10
|
||||
|
||||
Name: res/Oh.xml
|
||||
SHA-384-Digest: P5QW9+fu66NCVS8ZWDv2cKOWiBJVRwj3/scQ3knzmDVEw0GPDBByFFyY
|
||||
/+0RiKkX
|
||||
|
||||
Name: res/td.png
|
||||
SHA-384-Digest: Iu6bxT3nx+aT6WxkHdmjf3mVAzE1w845r9RfJZy405YHqQQ4KhhLC6TJ
|
||||
WeyCE7h3
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant24.xml
|
||||
SHA-384-Digest: 94fcwkT8obJKw9fS+Rn2k0rA9tgtfP6zJDZZ6bS5UE5N9Ux8rTcFZ8GG
|
||||
t9IdZ37k
|
||||
|
||||
Name: res/DS.xml
|
||||
SHA-384-Digest: 0snZ9vKD0mb30ICkhzdni9SXm9FYDVSyqUoK026s516lKLNDBwYwQiO9
|
||||
I+L2c3sU
|
||||
|
||||
Name: res/np.png
|
||||
SHA-384-Digest: IdmPK6h99jD2CDHH68FL845mUxqK5QqjzOOMSn/Jq97pNaStpc0q/L9s
|
||||
ocDUoFry
|
||||
|
||||
Name: res/Zl.png
|
||||
SHA-384-Digest: HPP/U0YFc5YJooj777FQ+oeNJ/637Gtw9X1FAvFavy7t8na8Ps+tgGNe
|
||||
ow6+Y+4i
|
||||
|
||||
Name: res/do.png
|
||||
SHA-384-Digest: 1hcg6+NassUaYEG8AspaqrTLLne1Vw1NlrMoCkA78wIkdXwVYafdG14+
|
||||
SMi3uNGR
|
||||
|
||||
Name: res/2n.xml
|
||||
SHA-384-Digest: HheL6yHO4bGvejqa54UWsGE7xvr1ITG4/QrkMBs9uiY1xj//2Mudg85h
|
||||
cijqJKzY
|
||||
|
||||
Name: res/color-v31/m3_dynamic_highlighted_text.xml
|
||||
SHA-384-Digest: aO6QKy5iliRw/iELo3f0BovG8nhyYxE4AOYN1s2a1dOIJ99zgQSt+QSo
|
||||
+r1y6pPl
|
||||
|
||||
Name: META-INF/services/javax.script.ScriptEngineFactory
|
||||
SHA-384-Digest: E2xSOQUho8OXNU2x7fYtWlCrStjZSae2njau6GXa33bL/JVvo9mrHy9R
|
||||
YRMQMGlt
|
||||
|
||||
Name: res/TH.xml
|
||||
SHA-384-Digest: p0KeAxa2m600nZuAppt1RTtH9ZXPLUUYqSOHwOqRwRVek/LoO2bAFEO7
|
||||
dtDqqGZI
|
||||
|
||||
Name: org/eclipse/jetty/server/session/jmx/AbstractSessionManager-mbean.
|
||||
properties
|
||||
SHA-384-Digest: f9a4CzUeIwClEGm6hmVQqLRSF8LQKUo9uY0pmUw6k+WmYuZPlu6u6+vQ
|
||||
RW6hp5d0
|
||||
|
||||
Name: res/fu.xml
|
||||
SHA-384-Digest: ZQGtmO/8csMHJzcG4DRi4ivBb6DrctIORuwKowN8GCVJdHh/fYGkF2so
|
||||
O1u7zF/t
|
||||
|
||||
Name: res/_P.xml
|
||||
SHA-384-Digest: bZMcPCwIzmiIKjZMEyieZLJYxs9hTJja/9pAJI95JZSb+hgprDpQc5Gv
|
||||
HsXpzaJS
|
||||
|
||||
Name: res/nI.9.png
|
||||
SHA-384-Digest: Y3kdCKGKYPggfIyBjLPNsEL5/MeTKlLzib2vsoRYhK7P6jJ/6I4ZtXaH
|
||||
M/UK7g2f
|
||||
|
||||
Name: res/color/m3_assist_chip_stroke_color.xml
|
||||
SHA-384-Digest: 7e7q8xCzKKh4XPuDWIFI+dRkqfPKadJ6YQREhdqKYK4bj/uV2dpLv3s2
|
||||
9T9ygGWk
|
||||
|
||||
Name: res/YI.png
|
||||
SHA-384-Digest: WeHdQpDUkKNDw7SED691wHkcY0eECmSofF7Pg6mHn57e5lPnBu9K7YPg
|
||||
+WwaV0np
|
||||
|
||||
Name: res/Pb.png
|
||||
SHA-384-Digest: E8qgI//n1u/CTx5MaoN4JO+y6N6S03xCdNjb89wl2JGLARoQ/KdXFnVM
|
||||
Xu5ItNb8
|
||||
|
||||
Name: res/vH.xml
|
||||
SHA-384-Digest: /rey/FsBEyFWJda6pl5jRo0WPKn/7d+s/vsQAb48jtpuJbxiLE5pROQv
|
||||
jmGqBCNq
|
||||
|
||||
Name: res/xR.9.png
|
||||
SHA-384-Digest: BZqYwOOJ+HpY87MG1ekiidzC6QBR1tGSii6j3twEG84LpXa1p/mNxDCa
|
||||
Xy8TxLWv
|
||||
|
||||
Name: res/rm.xml
|
||||
SHA-384-Digest: Qltu5c06zjLEe/6Ys/gtGLXm9LiOXcRLyvnFvyVoaQ/FPCemAilsZvDp
|
||||
i5VwDVqS
|
||||
|
||||
Name: res/Tn.xml
|
||||
SHA-384-Digest: sVoz92HUrs00cI4fgXFkQiVP0FX321vBTS7xAuAFRGW1HMJsAT2CjalG
|
||||
22ebz7nm
|
||||
|
||||
Name: res/UO.xml
|
||||
SHA-384-Digest: EpC+3G6VpKub2ZbNi46X6XEoQ371QlKP6YlqHyFyme+/Im9RvwwkSosx
|
||||
axwqv0eO
|
||||
|
||||
Name: res/gE.png
|
||||
SHA-384-Digest: iWSZiPL/E+x2tm4oJaTq0SLZbBYj8RTRXi7PHTrmMH+wFOTYsN96GWhh
|
||||
PpGVRN1S
|
||||
|
||||
Name: META-INF/androidx.profileinstaller_profileinstaller.version
|
||||
SHA-384-Digest: P7PmzhZ8RItkxD31oFb/94LYLyWWoVAzFfwhMFNWhIBxHCCJJkR/UaVu
|
||||
etA/VFdg
|
||||
|
||||
Name: res/7o.png
|
||||
SHA-384-Digest: vr/EGSGlDE7tE0PZuNHYRHfP5B2mmk9uw6Qe6C3XGgk9ZkgGw4ESrZQ1
|
||||
vWr1li0z
|
||||
|
||||
Name: res/8P.png
|
||||
SHA-384-Digest: DWRoKEQTMIGQLY0l4fte8lxbO2xSq1ySt+fClZ87hognwMrgmf/7+V8J
|
||||
nBTlRd5+
|
||||
|
||||
Name: res/color/design_box_stroke_color.xml
|
||||
SHA-384-Digest: YGOP1FSZ9rfKr3bWc5ADc60veW1722RKmaIhP/CAtit0lfNbxFFDw7MY
|
||||
J4RNmn02
|
||||
|
||||
Name: META-INF/androidx.databinding_viewbinding.version
|
||||
SHA-384-Digest: JL5FDdf5FlA2LIe7bfx+vvLeaFni4rGviy8ZHUQsbozFJZzd/O4TfLdU
|
||||
Aya8Shl3
|
||||
|
||||
Name: res/4z.xml
|
||||
SHA-384-Digest: b+4Y8W/fv1btY6J3d8SQUlQV31JXazKZdP8U2ob0ROp/wsVThv8O60dK
|
||||
2gKVy2HB
|
||||
|
||||
Name: res/kp.png
|
||||
SHA-384-Digest: 8PtWv/V7slu48av6AG90Six7hNsper/kZLe8kukEEOdirqNJR+N80xm/
|
||||
zJqocs5P
|
||||
|
||||
Name: res/Eg.xml
|
||||
SHA-384-Digest: f3FQjFioH06Vos/MartQp3m+2bVeWMPRUusnxXc3ekkgPaUdL/Pn81Hz
|
||||
tsbUy6fa
|
||||
|
||||
Name: res/Mq.png
|
||||
SHA-384-Digest: jUsdDA7TkGoeCe1Tj/vSA6Ib9S92vjdQYIqf25rUkhf86EdPR4SIjIJn
|
||||
ukdsw+El
|
||||
|
||||
Name: res/ya.png
|
||||
SHA-384-Digest: lCuyflhb2WupPjEsc1x+BevEFqvsy/hpjskVg0eW3fJrQrixWv58bFAn
|
||||
Ytky25xB
|
||||
|
||||
Name: res/zB.png
|
||||
SHA-384-Digest: 8Y5A8CIXDLyng9UABBh8+M0U9r1Hp86mu6iKA1rKhA5LrnYubGEiPdAF
|
||||
EcAbjwms
|
||||
|
||||
Name: javax/servlet/LocalStrings.properties
|
||||
SHA-384-Digest: JwmvqB2OuQhvjkYmECAlPPojI7qF6qH7RzealBsgOjr3TdPeu2BxjzE3
|
||||
riVn7f4l
|
||||
|
||||
Name: res/color/material_on_surface_stroke.xml
|
||||
SHA-384-Digest: QQaxaquMqQRDqmIUpIX6qEnzf78VbWSsXv/V7V+IYExuP4b8WyVIYWa3
|
||||
SVGbX+2q
|
||||
|
||||
Name: res/VT.xml
|
||||
SHA-384-Digest: isQS5auzDqo1g07ahR5Th2G2ng50r8XJXoAnGCFnFU9I11ByiNCyivgk
|
||||
t6obIo9Y
|
||||
|
||||
Name: res/NN.xml
|
||||
SHA-384-Digest: DLj8o6fD5BXk+sAdGD99UklbTHKP910yKV76aOlwG3sjXYx9iSXS9CDk
|
||||
lyIjaKYq
|
||||
|
||||
Name: res/6d.png
|
||||
SHA-384-Digest: 85nqfnR9nymKEaE3LPp85rWYafpon575wUekktXbx7H6rPRyCawKdGHR
|
||||
pDH3Audy
|
||||
|
||||
Name: res/7E.png
|
||||
SHA-384-Digest: HTGk69DlbQzaAhWFf1YluLKRo5peTkHZnLcSeGcTWgowPn5eZD1MVfY7
|
||||
14MXoCcY
|
||||
|
||||
Name: META-INF/androidx.interpolator_interpolator.version
|
||||
SHA-384-Digest: Y3rGBi6XAW/5GC4bIZyUKaf7kUBkQnImZdlmfb1WeNkFlHnjtxck6HqB
|
||||
w2ok7ALQ
|
||||
|
||||
Name: res/color/mtrl_outlined_stroke_color.xml
|
||||
SHA-384-Digest: xIN7lobzcPAoILNwlq0EdI5rFK0jpMn23aHkKLNXtqBlRFCfC6yKaM0l
|
||||
2lxxfhu8
|
||||
|
||||
Name: res/vl.xml
|
||||
SHA-384-Digest: iU3EdrlYux/9dKozhgaCY2W9hOroJBv6stLI/yGgYB36IUTIBEv/9hKu
|
||||
Lx8EcZEE
|
||||
|
||||
Name: res/py.9.png
|
||||
SHA-384-Digest: yI51a33VvgIiJHETBbAqUoZ+ZBk6OVxSR0+I8acdrqRQ1CM3rwmwTkV+
|
||||
g1UxdtNV
|
||||
|
||||
Name: res/as.png
|
||||
SHA-384-Digest: bg5pTRurRAX3CSyvd6Qyu1Vl9uv4EKC8Gc0BEkPYmQIhXOG8YWZ0ujLd
|
||||
AZok9he0
|
||||
|
||||
Name: res/-1.xml
|
||||
SHA-384-Digest: blqMG8cgJoAt9lINeLx2uWeBOFbbxjOA6RxfCL2lD2A2aPqoczJXTLcy
|
||||
dBM4DRI5
|
||||
|
||||
Name: res/KT.xml
|
||||
SHA-384-Digest: RDvryT2Fxn7JXglR8aCQEtuEcPlashsYFG79ELrY1s1qxsz422yW6opH
|
||||
gZGjKn2p
|
||||
|
||||
Name: res/rz.xml
|
||||
SHA-384-Digest: A3HGWQwWg5dAM95fScjeSySHsPTt63mU8ZAOgUzAZdayE/rzQ2a4Agmw
|
||||
R5glldLV
|
||||
|
||||
Name: res/kL.png
|
||||
SHA-384-Digest: lcMlu8xM1HbVl/OL0c25HKmzcsOPFV2OCEyruNsAnFomqY1VEK0gNQSU
|
||||
fPey+lPP
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_clockface.xml
|
||||
SHA-384-Digest: oFTfmKGjDFvAzR8vm2Y0Ns3XcTR4leLo+6yXCnGsDTjfjmvOti0kBpzC
|
||||
XLz3JnM6
|
||||
|
||||
Name: res/5T1.xml
|
||||
SHA-384-Digest: U/9BvVIgWH2lZv0oCVKM+lvn89fFqwJRobrzk3nMhZqTOV0beuhzGwVr
|
||||
W+IoT6w1
|
||||
|
||||
Name: META-INF/com/android/build/gradle/app-metadata.properties
|
||||
SHA-384-Digest: 4BxvuT+9Ja228Jy5CsCTEBTyvwsygj4VbPV8jciLdVFvjg19UhCMhTyT
|
||||
cdfrK+tP
|
||||
|
||||
Name: res/35.png
|
||||
SHA-384-Digest: HpYdt/Yte6gbgseUy3Bdwz3XEh9fqd34ImT6cyULnOK2HzSm7zmZxfCm
|
||||
SNvZ/r3v
|
||||
|
||||
Name: res/rI.xml
|
||||
SHA-384-Digest: 9WEdrn1qu8GYXQhusK9NFqrDTS+Jsu1d1LzLKCvmMtpXRbPHu7wCVcKo
|
||||
Cu+4mbmd
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel.version
|
||||
SHA-384-Digest: 6/ZbxWLH/SBCMX5Rq6/U9d/IsQt+rYw1pg8pTLiLxEY4A3aFaNca83Ph
|
||||
64apomWE
|
||||
|
||||
Name: res/color/material_slider_halo_color.xml
|
||||
SHA-384-Digest: TzX6Jg2Yd3PpWyJ2/JFpAGa+gyeKzQZZQBBywCO3jMnQwYkCJnF4Ot7I
|
||||
SarmCcBk
|
||||
|
||||
Name: res/ge.xml
|
||||
SHA-384-Digest: xWmifnmXNWIvgnH70/XpfhyQpK6zDGsNsEEnFehzp3TuxtYpygCsQsww
|
||||
9peE7Z0g
|
||||
|
||||
Name: res/io.xml
|
||||
SHA-384-Digest: AQDQbOV67PRWu6BNK5ZgUbTU2W2yE87xRbqUbgj3erEOa337ENfigbum
|
||||
HzdOPaD+
|
||||
|
||||
Name: assets/shaders/fragment_shader_hsl_es2.glsl
|
||||
SHA-384-Digest: IMJjrTFGtbAoXtyroOKcKhFU1jeiO9+Sv0neui5SMm3p69047e4xuEGw
|
||||
PCau5ylj
|
||||
|
||||
Name: res/color/material_cursor_color.xml
|
||||
SHA-384-Digest: SYJQcJW1n6snxCH1pfSPnJS6iClnEggqtrAmLGDiUA3v7Duq3V/9IwHW
|
||||
X4Rbm1ro
|
||||
|
||||
Name: res/0n.png
|
||||
SHA-384-Digest: 1Rz32E4inL8A6GIlcx/Vk355dN/W/vwh3KzHgjsg91BMYx0gDIvv9/vy
|
||||
jwwZVZkO
|
||||
|
||||
Name: res/5D.9.png
|
||||
SHA-384-Digest: XggJxokx/UetdePIxBZSsetbxYbP71HvCwp0plHpjUysXQIn4+O9B1gU
|
||||
qZ4y+55s
|
||||
|
||||
Name: res/Qt.xml
|
||||
SHA-384-Digest: hgN/yQL7LaMfzonM1NsPl/2XFwezyVmDedoSt7mabuZI2LoPsz9Yo1OZ
|
||||
lTPPImIh
|
||||
|
||||
Name: res/S6.xml
|
||||
SHA-384-Digest: HlBXKy+tRJPsRzLgezd9s4WkO1eQimLbD0pfBxi4zja148Svl2O8daii
|
||||
yTubj4Fa
|
||||
|
||||
Name: res/In.xml
|
||||
SHA-384-Digest: XnVzdMDqjudyJccVVIyQ/SM0XBdF3W+wH+XOdRs4QDy4bmQRtEsPcDUa
|
||||
87EoXMSC
|
||||
|
||||
Name: res/tS.xml
|
||||
SHA-384-Digest: cld5jKfjmB7Ax0Ub/Gj40JoExFKX3M2Fe801XhyPB4K57l3EQJm3S8oH
|
||||
ZA7CF9VT
|
||||
|
||||
Name: res/e_.png
|
||||
SHA-384-Digest: U0TikzXaJmPvs1sLWNdmS7mMIop2zC5wU5hhs3Ses79X8ND/i5hi6Q16
|
||||
j5I2Kce4
|
||||
|
||||
Name: res/3h1.xml
|
||||
SHA-384-Digest: qNrJZU4/t3frzVnzHXfAn36VCGhx4stoKxBDtf7/f0iu7IFpGTFmJHPa
|
||||
feV1dZgJ
|
||||
|
||||
Name: res/4I1.xml
|
||||
SHA-384-Digest: P7nniohIPoscfk3dPOm55iGrNPwlSEpLEUsz3qWia/705wm1hlUTHAlu
|
||||
P6rmyo+J
|
||||
|
||||
Name: lib/arm64-v8a/libavif_android.so
|
||||
SHA-384-Digest: FmAKaKFgYdUwCr2zGW5burQ+PyLCiExxHoFrEVKAOxnf8JRvRV4YxxD4
|
||||
HKndhiI6
|
||||
|
||||
Name: res/7o.9.png
|
||||
SHA-384-Digest: bAJzSpc6ew2tRXqJNC6HHrNyNB8dmL8UnGtALWrBVoTsYW+lACyIfnXn
|
||||
Oi8MOueV
|
||||
|
||||
Name: res/Tr.png
|
||||
SHA-384-Digest: sTpZUeZHUXrU16ZLl+Eld2YD2+FClir3AvfxmwaeCagZ6ZP5F/+1tUjA
|
||||
LvKj6WRh
|
||||
|
||||
Name: res/V4.png
|
||||
SHA-384-Digest: R7rxsMFMAXMvlk0xYz78JdZIoDpA7MQlbIhumOOa8Ju3bjTu66cikiFH
|
||||
nuK54RY0
|
||||
|
||||
Name: res/ba.xml
|
||||
SHA-384-Digest: kq8MnvvXk8oIaT4YVSEcaUkMYN0eEw6LBggpqS3S5knui+lvripCjfpf
|
||||
OsCytlv1
|
||||
|
||||
Name: res/pg.png
|
||||
SHA-384-Digest: 93X7ircnZWDvFgUe/jyUK0vRsg8Jgj5duZywbGKzl+m6f3B/a3bAiOt2
|
||||
lhzmXqYG
|
||||
|
||||
Name: res/ak.xml
|
||||
SHA-384-Digest: kkhSSudzQwAyRMjGk3kNkt5M917BjzXkzD9onhrkw+es/AVP3aGRYPQF
|
||||
KgpB08uq
|
||||
|
||||
Name: res/bL.xml
|
||||
SHA-384-Digest: IHkKu/AnqZmyZUjGyaTQKXt5cBJB4rRgTTzJnNAgCDy+6Or/zBlKNL5w
|
||||
slrfxtmA
|
||||
|
||||
Name: res/color/m3_tabs_text_color.xml
|
||||
SHA-384-Digest: E0rWvj9GMON+DoMqPlcgAWiOO0ujJ0eznHuiTJwopnyauy2nhFk1K+Lw
|
||||
u24QQEiO
|
||||
|
||||
Name: res/D-1.xml
|
||||
SHA-384-Digest: hqdyX7ImYBWmYjjF6/FD7KWgMyD/QtfyE/3RKuDjd3DJC+sIire/E78A
|
||||
ZkITMWl4
|
||||
|
||||
Name: res/mt.xml
|
||||
SHA-384-Digest: BObLIyrWBXGDvC675jI6k9u7aRS7uOm64Dc5KdSd6JsHvIVhhfpktwr1
|
||||
DQ6tUFrh
|
||||
|
||||
Name: res/gX.png
|
||||
SHA-384-Digest: XkERqurKNIyGzjHyztvc5nc+mU3tcKGSHnQU2wB1FAjeOQhOpEA5zqY8
|
||||
2FF5WjTP
|
||||
|
||||
Name: res/qw.xml
|
||||
SHA-384-Digest: RH3ELUBI5NtOhDpIk9XUIZ4TD6BbKntwM5WeeiDdqvtJAWK41c7o05G6
|
||||
95xkV3/N
|
||||
|
||||
Name: kotlin/internal/internal.kotlin_builtins
|
||||
SHA-384-Digest: V4E/ddV/uwTGbBWUdI2xiNHGyMqerrWNlE+rWLDwMF8l9WeL7uXeiusr
|
||||
PtOZ7+dQ
|
||||
|
||||
Name: res/-D.xml
|
||||
SHA-384-Digest: a4LwZ9jkgtWDjdrlKVMVgUGjTgpog3W1+l/+xd1P2LysV8rGPVA17InX
|
||||
xgWvzLJ+
|
||||
|
||||
Name: res/color/abc_btn_colored_text_material.xml
|
||||
SHA-384-Digest: gq0uCw3r6HL38KxnusB9hXv1x9ijOcUGcfAX9kythhGjTEsEb2oNLbps
|
||||
jI4aRlge
|
||||
|
||||
Name: res/2P.png
|
||||
SHA-384-Digest: IlN0jgbCMECXaY/6+J8N2M7IqSU/7AmeM7D9wcfcOMeldx1N4zMD+d4K
|
||||
6aptQMgz
|
||||
|
||||
Name: res/color/mtrl_btn_text_btn_ripple_color.xml
|
||||
SHA-384-Digest: gCc2MFaoKDgWbpoGZZN+F1VaAAMr0L2hGNMU/BHVbyjwjFbCcwfjQoBO
|
||||
QZaytJ7Q
|
||||
|
||||
Name: res/Sq.png
|
||||
SHA-384-Digest: yXDz72AASy5MpFgMeyymr2gQ2kAiyTfVt1RPZNHGd9bH3WaTjr/+vlii
|
||||
i8zLe1PG
|
||||
|
||||
Name: res/SJ1.png
|
||||
SHA-384-Digest: Bav08UvOVRY+YN1heckVx/pIK53kF5q6Oc1iA4VC9UUNzVYCH7wZYEMY
|
||||
NS4lHqpB
|
||||
|
||||
Name: res/color-night-v8/nav.xml
|
||||
SHA-384-Digest: gSiYnG8MFZa+/eR4gp98rOx0e0JOKr3/iQNeypJ1uTFaCh/gQLy+GVns
|
||||
cNZMKUyB
|
||||
|
||||
Name: classes2.dex
|
||||
SHA-384-Digest: 1iPfGzAgMs9OFFbpVdOz0ehSBxxcGdWu+cxtbLUIl8mV8JntJwjBA3nB
|
||||
ToCwORkP
|
||||
|
||||
Name: res/bA.png
|
||||
SHA-384-Digest: lj6zNAG/f9aOKUsV3h8C2mgeOt74Ynd6rsVIoxXNohlp03kMuft2axxv
|
||||
9aO+PjF2
|
||||
|
||||
Name: res/color/material_timepicker_button_stroke.xml
|
||||
SHA-384-Digest: 41lgxZXOpQko2x8HdYY8HThT3QJCVPnwx1tOEmfcylgiLxkVhgC9Xg86
|
||||
XfW22pu6
|
||||
|
||||
Name: res/DQ.xml
|
||||
SHA-384-Digest: EOnedGLOR3ywAfviA+poKRrJCwtEaMG2IJTNnPyQqcBD8HvGdrJQ2YC7
|
||||
PJN8mCRj
|
||||
|
||||
Name: res/1K.png
|
||||
SHA-384-Digest: C+Hkj2IP/ZwYhbwYAG2RIdNvzkvzQSutQkoPZALEbVPPObBqJzR8M9ZX
|
||||
dHqX4/FL
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant22.xml
|
||||
SHA-384-Digest: dve/noeM1123blSR82by/tBFwSKQSCwekalQ2iyTeepNaCD3KRQn2NU+
|
||||
QuQYMisV
|
||||
|
||||
Name: org/eclipse/jetty/http/mime.properties
|
||||
SHA-384-Digest: xjOLYaJGSTOEinsr8GM2hbokAAyu9xbVnepVbNrxgDDhsGzxGfxUWbAV
|
||||
OdDHZxb3
|
||||
|
||||
Name: res/uG.png
|
||||
SHA-384-Digest: 9xYV4q17e+I53SGSv9qzp6zAFN+Hg7Ws3EuibJHYSdKtFfLfgGCmBrNV
|
||||
bsqLmNz2
|
||||
|
||||
Name: res/MQ.png
|
||||
SHA-384-Digest: X35ggX8nfQyJjFeo/BEc58z/Rm2zB3ibPEu1uTq/IeUHJGr6Df5w5ya/
|
||||
q4BEQ1Ea
|
||||
|
||||
Name: META-INF/androidx.loader_loader.version
|
||||
SHA-384-Digest: 3FVKjjKI0+5vNFqCn7e/gbN2NNbN7Evx6sKWCA/NHoGQzrQcTJH44GQF
|
||||
vh0zCyd+
|
||||
|
||||
Name: res/5c.png
|
||||
SHA-384-Digest: u4jWVofeerYqq44Lr7q4XZAGotaNRzzjUdvSYiqTP16OGT8IImCFWE8I
|
||||
dTuypovb
|
||||
|
||||
Name: res/color/m3_navigation_rail_item_with_indicator_icon_tint.xml
|
||||
SHA-384-Digest: YKl6NYraAjC4Nf9zPS1bOrT3ZbB3QlDR6CXOzQwx9P23i5zPOAZmbNDR
|
||||
3J73vUXe
|
||||
|
||||
Name: res/BM.png
|
||||
SHA-384-Digest: Ub53axTxtcG2cJwIorEiEppUPw1IcVCxEtc+DFjMzbwE7aeB6uI9OmsW
|
||||
cCJVNv0T
|
||||
|
||||
Name: res/mT.png
|
||||
SHA-384-Digest: LfpV6f4edILN0u4nU/0VP906H7M4+t+iosVli6l9kAio1lIPK5B2Qt1w
|
||||
BV9hHiwZ
|
||||
|
||||
Name: res/TJ.xml
|
||||
SHA-384-Digest: 8Zv13ZdKlu9FfUiIJG+iKal+USGDBn7VawZIJkG4Hh1bkJjS46c0HGRl
|
||||
8CdRMdzD
|
||||
|
||||
Name: res/color/m3_elevated_chip_background_color.xml
|
||||
SHA-384-Digest: 0JUXkSTIHg8DvY9077t950hgpHLATVO4g7EP04VG8lVSYxfm8ZGe6qMZ
|
||||
G7kD40fR
|
||||
|
||||
Name: res/ps.9.png
|
||||
SHA-384-Digest: hWFn66ENn37HROlGhd6MAchdQzU2Q6F2LrHsWOJIhNXy4XK32k5Emk0m
|
||||
PYNGkkTN
|
||||
|
||||
Name: res/d2.xml
|
||||
SHA-384-Digest: AcrOw6S/WxrnDu8m5KAtfp1d34iab/T1WqNTmEs5IbOJUOCt0Pp54qy+
|
||||
gdz4MI67
|
||||
|
||||
Name: res/Ir.png
|
||||
SHA-384-Digest: V4CeFo29P8w3GV2Wy+5RHhQPi4x/VSMegX3x+0/77oiZKW1RJZrpocvq
|
||||
7KJrCAR7
|
||||
|
||||
Name: res/JS.png
|
||||
SHA-384-Digest: 6YzJuCwcLWoY3HiSLmZ/DaRExwL6eIDDBSDpyiYWur8fdgjvO4aLcwVa
|
||||
EKNUfoSf
|
||||
|
||||
Name: res/Mu.png
|
||||
SHA-384-Digest: hVPY+KmyW8M3cH09IP7HZbs6GJhyTLA+DD6hq/0YjC0PUDnq0nAfyLG6
|
||||
CZ1ujFGr
|
||||
|
||||
Name: res/Qc.png
|
||||
SHA-384-Digest: USW01KAEcIxASMDhAhLB5dGl4noqmYn4IKch7MRYFpS/EoFaZNDExvW9
|
||||
MjETDmzd
|
||||
|
||||
Name: res/nY.png
|
||||
SHA-384-Digest: uvfRBGgfXGEuO8PqpfijWWve50dJThJwg+bLsaJVVgxffZfkjjPmj2XS
|
||||
d2rlowZm
|
||||
|
||||
Name: res/WH.xml
|
||||
SHA-384-Digest: /htTVQxlpsRhwEsKkn5FDQ8TY54Ah69EQ+hRXrWCY1f+ZrefYJ3o+qkv
|
||||
cUc8TJv8
|
||||
|
||||
Name: res/HX.png
|
||||
SHA-384-Digest: gbQN/iJ5+6gmr/3b5Pwc76kInyLqToo+NRnIhm++iDSI7B7nD3AF5tsz
|
||||
0HacnJ/Z
|
||||
|
||||
Name: res/Qt1.xml
|
||||
SHA-384-Digest: REMBnTYJ3qU2nQe3yn/NFWzKYtqd+ONAmMXiGam8BbbGMJX/QUPZMNIY
|
||||
LA+b2Iu1
|
||||
|
||||
Name: res/color/m3_timepicker_time_input_stroke_color.xml
|
||||
SHA-384-Digest: zcrE/Q3grFZIQWV9dS7lgPPEVgjOKRCMHa8dpxmjehPpb3yzq3FAyYjM
|
||||
+2cX0uGU
|
||||
|
||||
Name: res/color/m3_chip_text_color.xml
|
||||
SHA-384-Digest: eFLpa2jwAYYSGcPj/cldJwfw/HRUOdCy+CCBNFqFawQ6VGt8cSUxv1p1
|
||||
NwjrRcFl
|
||||
|
||||
Name: res/color/mtrl_fab_ripple_color.xml
|
||||
SHA-384-Digest: 8nYCjnttq3EEbbBKKqG6uz9IdU6prR4an9lb3B9MbPkbmZyu5P7s5I1R
|
||||
Mnrfgeov
|
||||
|
||||
Name: assets/js/lib/similarity.js
|
||||
SHA-384-Digest: ivf4Ko9W4Vmm3RBBKeH67zhCLJlkmyEJbOqI3oysJ4scbdFedodTVaMb
|
||||
I9JWmWM4
|
||||
|
||||
Name: res/color/material_slider_thumb_color.xml
|
||||
SHA-384-Digest: ZfoM5bbFHQbOgBfGKnF1Ajc5hdUhqk3G4QcP0WGRbn44ZsRtBHL/ObTl
|
||||
+1JIYJCy
|
||||
|
||||
Name: kotlin/ranges/ranges.kotlin_builtins
|
||||
SHA-384-Digest: ozNqkNPNooivSbSAAg88ciEosWvTQ5Ill1LhO9mRJpDD5drjBGNo4D8q
|
||||
5h3700sR
|
||||
|
||||
Name: res/e7.xml
|
||||
SHA-384-Digest: nO0PgogfaL2wNcFM4gmUVpltE3yL/irSBeqrn4FUL/vzIHllFQHNi8uQ
|
||||
CbxZURnE
|
||||
|
||||
Name: res/color/material_personalized__highlighted_text_inverse.xml
|
||||
SHA-384-Digest: im+A0u1qePntbfclJzDEAeQUWeeu0osftExY71v9Wh4K54k9Dyot1Osz
|
||||
yHRR3sFf
|
||||
|
||||
Name: res/NP.xml
|
||||
SHA-384-Digest: El5Gt49cBzeAAfTcz0yFArAxWqJ5JuoaXDgcv/stVNWv22IArUQQzDCA
|
||||
T8dNNk41
|
||||
|
||||
Name: META-INF/androidx/room/room-common/LICENSE.txt
|
||||
SHA-384-Digest: nWi/9WgpBxubU1ELDgCyHd2/z06F1guukclvhIuyxwhVuJTe/GuZdHTm
|
||||
1yti5fie
|
||||
|
||||
Name: res/Bo.png
|
||||
SHA-384-Digest: xfI2VfmQEr2gbYv3a5NAcZR8UccH4+DWTtkKY1QRDreGMgMRKHXMnELW
|
||||
ywY+JncX
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL1.bin.properties
|
||||
SHA-384-Digest: ntU/2KuqqZsDkmri/pNQMIIiDocnYPMuscCNsdkZLbVmiKo0bX+bTCrU
|
||||
LT7/oiSE
|
||||
|
||||
Name: assets/shaders/vertex_shader_transformation_es2.glsl
|
||||
SHA-384-Digest: 6nZ/ZQZ2Hf7msOEfNJmHGn+c+dkqVJzO3kdb/dspwF7rhUDcJgChKQ0U
|
||||
8bUwGktC
|
||||
|
||||
Name: res/sL.xml
|
||||
SHA-384-Digest: OlGIeNzEyA86x3X7fvpoa4v0/dSDogfqYbpToNRBGeL/ns3gJs2kKjLH
|
||||
qw8du3Yx
|
||||
|
||||
Name: res/gC.xml
|
||||
SHA-384-Digest: XxneGLYt6nvT/qmjqvsILBkf9eaCcu5cZTsN5TUwfDGR79yiQfHVgGeq
|
||||
LLojSip7
|
||||
|
||||
Name: res/Nx.png
|
||||
SHA-384-Digest: 8xYnLDW2/bChPHQw8Q3Ds08oBqgbUYfb/+2/XtEDHtNT/CUeDxTdtkbr
|
||||
A6CdMyij
|
||||
|
||||
Name: org/seamless/swing/logging/img/configure.png
|
||||
SHA-384-Digest: gboPLyYH+IZ9yFFOtpIRuT/RD+V03B47hsTALvfkq3zPnpt2z4nhG4Ij
|
||||
ClM3UT37
|
||||
|
||||
Name: res/JQ.png
|
||||
SHA-384-Digest: 7d7EKtEPdePPZXBadXNfa0TWIA0bO8IasS5QuGwRDuds4AMPWMPV5Jm4
|
||||
1MYOvMuF
|
||||
|
||||
Name: res/Xs.xml
|
||||
SHA-384-Digest: /uvDgibr4nJGSrDaA6zmJKIOM13U2rgaWkwZUfMDiYxaDw2x+0TfTuK1
|
||||
8KQN0lbT
|
||||
|
||||
Name: res/Em.png
|
||||
SHA-384-Digest: iIMIKuMhNf7WaquQGCA2DEB5L+AcA4zgqpjCS+M6m8j2Dept/F1fpbkZ
|
||||
QKTk3HjD
|
||||
|
||||
Name: res/vJ.xml
|
||||
SHA-384-Digest: QBVPLAG8+781QYuVM+Sc5La7PMS0t/k4BBlJPHQcKMW04YTFImHO+hz0
|
||||
iK43o+vf
|
||||
|
||||
Name: res/Lj.xml
|
||||
SHA-384-Digest: nS4GyaWLi7ykOo28cTavlGwFb4pftWJduXz3pgrPgFBPFFB0wXhwQtoZ
|
||||
kiBkLc01
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/Holder-mbean.properties
|
||||
SHA-384-Digest: uQPz05ZSqNXOdJKbU3JD02g80BBK7asi3cipuZo5mMhSYV9M6/w4IO0e
|
||||
6R5iTTkR
|
||||
|
||||
Name: res/QN.xml
|
||||
SHA-384-Digest: 3vqkuvwFxTeT7HEjdjT/mzHA6FXXMZKoCf4bt0dWnyMWtX4IfouNYUo2
|
||||
kYGK+bLT
|
||||
|
||||
Name: res/7m.png
|
||||
SHA-384-Digest: fZFxudy01lLBj3i+85UCLry5IjjQB186w0StKSQdY8Z+lPuJnHRpDgiM
|
||||
zhkZ1UMs
|
||||
|
||||
Name: res/8N.png
|
||||
SHA-384-Digest: KVSY2BTM+lOa06UOiK5CCgV9duDxenCXlF4CS+Xpdk15lhcBLFUYtz3u
|
||||
ecmyoYsh
|
||||
|
||||
Name: res/color/mtrl_card_view_foreground.xml
|
||||
SHA-384-Digest: WY8Lx3ocIzpYcb1x7jl6HSwiQfAx/sj/KG3Jm2yHs8VVPDGBoWgIdxLT
|
||||
IGsdyww2
|
||||
|
||||
Name: res/zq.xml
|
||||
SHA-384-Digest: 55Xr3VGJAqFDVZAGpkuZwYm5oV7FojVtBUWMaUWz2Lw8gsRBjBuRKFiz
|
||||
mbR8PWV7
|
||||
|
||||
Name: res/0H.png
|
||||
SHA-384-Digest: 3rwatU4H7Idlf8b8md6HxynHSLXhKr1Nps4sn66I/v5RDxljsPJf0wZh
|
||||
5r5zBto+
|
||||
|
||||
Name: res/m0.png
|
||||
SHA-384-Digest: mjgFzZY0X6rC7aoInFbqZYUXXyfnhzYwLNJewPJXEDrXhJ4rD3zYvPHi
|
||||
aH3BKb6m
|
||||
|
||||
Name: META-INF/androidx.sqlite_sqlite.version
|
||||
SHA-384-Digest: jtSk/Otl8g8HbDsV26HauAY6CfpKUS0i0HmAJ4m92qBuHpvAQcRKTqr0
|
||||
sL0OopQn
|
||||
|
||||
Name: res/color/m3_calendar_item_disabled_text.xml
|
||||
SHA-384-Digest: kgjRiSgzoI+zK1Fkpz70+M5vbCjtfG/YIzl1Hym300xO39PaDEOnHtJt
|
||||
iDlAbdLH
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Handler-mbean.properties
|
||||
SHA-384-Digest: yjktctPxZ3A3DJ/Lthbmvs/0CJl02O6r9E1+zlZZYugDMpeNZYigub/6
|
||||
Yqs0zvyJ
|
||||
|
||||
Name: res/5P.png
|
||||
SHA-384-Digest: /M4nOH2PyFyOcpjTbJBZBs9PUGBCFsUYts2SMgvHSXIwTjH2WzOwMbOp
|
||||
0yBXgWSW
|
||||
|
||||
Name: res/-3.xml
|
||||
SHA-384-Digest: xHEiaw/qB2ryt89TX/wnR3BgkHoddkMpGKTIaXRTEq/sI2JQKgAxcHok
|
||||
OTzTMWkw
|
||||
|
||||
Name: res/OX1.png
|
||||
SHA-384-Digest: +sBkFPMIK5XgSVJeCkzoqOW0VdReMpPNggLGs46sowzTp6Ew6ET1ZwXz
|
||||
vyBMpHCh
|
||||
|
||||
Name: res/-J.png
|
||||
SHA-384-Digest: b8CjvtggHDVTeAUsvr3SlxgyyWOtQ4i5NwsfqSubL3VHs56bixGoBTmV
|
||||
7GSCvEnA
|
||||
|
||||
Name: res/59.xml
|
||||
SHA-384-Digest: RR0exfu5Ny/2GY2+N8wV+noGfLZ4E78C44WVmhborGXDtFGBxZM8awrV
|
||||
fG8CMoqn
|
||||
|
||||
Name: res/QR.png
|
||||
SHA-384-Digest: wfPyM46hv7UYJ/87CMlx7Ig8Hu/d8W/DAkbDGmWkCr2K+r47MrerJ8Wf
|
||||
uSrAjpl2
|
||||
|
||||
Name: res/AB.xml
|
||||
SHA-384-Digest: 7OXnagBgCQhC/dhd7OeYSFxLItkHJaaocmcPeCS8069xcQ9lFqZDg/bu
|
||||
8iQDRfAB
|
||||
|
||||
Name: res/BL.9.png
|
||||
SHA-384-Digest: DfkETnkG7ZCj//gIsduhyKdGwCZiMYntDB2aNLigua+6x5sYGTt94m2Z
|
||||
whQ8rPYc
|
||||
|
||||
Name: res/Bk.xml
|
||||
SHA-384-Digest: qZWk28Qnojgkr75zg2hv6xJkR5cUdahYy2q/VxM4Enix/3MgFeTc4V9Q
|
||||
3Y7yNCID
|
||||
|
||||
Name: res/D-.xml
|
||||
SHA-384-Digest: uQaco2mv57lI6meg6aJy5qsEaUMJVnKZv/n/Phjux2aZ9od4imTlJGO/
|
||||
kIy1bSeH
|
||||
|
||||
Name: res/aG.xml
|
||||
SHA-384-Digest: uVMlZ+hXpER8KoGf5ZSDVVPZbRz2P2F2h23V1MAA4xUZHQU7dgdJN9a+
|
||||
D5BnQuF4
|
||||
|
||||
Name: res/color/mtrl_choice_chip_background_color.xml
|
||||
SHA-384-Digest: //OWqfuAqv+2qy4NJeHVa6/3xk+vVw/HJOLE+VfJIPq4X64UUfrPKEmn
|
||||
UaEAJ/+e
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/AbstractHandler-mbean.propert
|
||||
ies
|
||||
SHA-384-Digest: KCQ2klYNRNUnS3odDhN5tUpGDSVlQp04wtz5KlQTqgnVyLHscoB+RTyw
|
||||
Fkl7gGfn
|
||||
|
||||
Name: res/5t.png
|
||||
SHA-384-Digest: GoBSdbCHEiN4S+w+RahPawQtsUfDkk/Vv3u4a5SNc6ZRZYrNJ37DawdJ
|
||||
t4x/66dy
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral12.xml
|
||||
SHA-384-Digest: BOVvbnBwjSBwyFD7GBZKRtHzj+2ZC/Hbp2hBt4nuHypSOQdCciiLuQ5g
|
||||
WZKfiKWA
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral98.xml
|
||||
SHA-384-Digest: UpgWCcBT33XaDuGiXTjwgolrxuqb9xWjRQt3hKtQqKaRIqQ9AX8MsTUw
|
||||
lY3rHRjM
|
||||
|
||||
Name: res/9w.png
|
||||
SHA-384-Digest: 5c4ghbjRa1Qvw9cHk7iaD0WdJVwV/etjgQVIB1OxN7EYqba3/t0rHfdD
|
||||
0Ak0P3XS
|
||||
|
||||
Name: res/yY.xml
|
||||
SHA-384-Digest: KHMaf1KCeqfZW+VEGbHeKIPJZlA7HsXmC84zHLq8Tk/uoCCEFWHQsxeH
|
||||
OcUnhQEN
|
||||
|
||||
Name: res/kj.xml
|
||||
SHA-384-Digest: XydmqAp6z8k/mfPcacGTX3U+XYY5tFhJi0HK+KAfd0q7/Cafc39/2Ezt
|
||||
8EFbI7eS
|
||||
|
||||
Name: res/Gf.png
|
||||
SHA-384-Digest: uDbEnRVE4kFZKp7r6hz8puKTsMsUaigdwUaWvJ+ObBd73pvzjpEbik8Q
|
||||
byI+ZJ9i
|
||||
|
||||
Name: res/W4.9.png
|
||||
SHA-384-Digest: EdxVrJjpD4IkDRnu8LJxQ3snoaoUACTAyxhjLHFRP5B1bQ9ohKqOMj1+
|
||||
60t5m7FL
|
||||
|
||||
Name: res/Wr.png
|
||||
SHA-384-Digest: b2JjMGltLTEEKSb6uPQABv4RH47Q6rVIgCSJP+jr1j/wz0MBCoVYjH3W
|
||||
29E2PvxZ
|
||||
|
||||
Name: res/vR.xml
|
||||
SHA-384-Digest: ku/ybutiu4a4LOqwgID/18ByODDg/4FnfqmpjbsHe4SSJXjyZkzb7O1G
|
||||
MhrmgUQu
|
||||
|
||||
Name: res/QJ.9.png
|
||||
SHA-384-Digest: TajNi0oWQhlmAYPI09NNdmdw0IxIjrQnJF9H0cXVTAGEQScyWGwqzVVG
|
||||
phw/GUaw
|
||||
|
||||
Name: res/wm.xml
|
||||
SHA-384-Digest: Pswg3aP0zOxYo0JtPw1MFjfIGEjbBiwV+GkBZEdMLFk48LD9O71yMDBq
|
||||
R+juYtyN
|
||||
|
||||
Name: res/xN.xml
|
||||
SHA-384-Digest: zdIm/Jqr2wBEZ3PMejHIYVpXEYJ/8bUjmJF1L7JbHAMLM9hCe3824MKK
|
||||
XDywKxpa
|
||||
|
||||
Name: res/X6.xml
|
||||
SHA-384-Digest: ejdKw1f5EWhBaUCEcCb2HoDFELYs1EWPtefTptRy3qXLa7zwp+GKkaaa
|
||||
lpmpC0J8
|
||||
|
||||
Name: res/gD.xml
|
||||
SHA-384-Digest: lK3KTIjBjFEucJvvq45I534Qq4o3S+n+Fe++5OvwQKbQ8/hz/RqAOQTB
|
||||
u94aSdFM
|
||||
|
||||
Name: res/-B.xml
|
||||
SHA-384-Digest: AKB05SRjE1eB9Fc5pODir/8TKHeeCw9vSIA/5Bxv2QL8mpL2pa2Qt3B2
|
||||
k9V/usow
|
||||
|
||||
Name: res/yg.9.png
|
||||
SHA-384-Digest: tA2bYSBYlMEaQNwzg4CY6UvppcmOPabwZQUfOfClp+Uh06zUkdzvB8il
|
||||
EcNKljau
|
||||
|
||||
Name: res/cL.xml
|
||||
SHA-384-Digest: 1JGavcM9lDqgMH8IaPVKDFYWYkZESYNjkArtx9RzyxK0aXsFhdzhmvT+
|
||||
LsqMqWRF
|
||||
|
||||
Name: res/d-.xml
|
||||
SHA-384-Digest: GfA1iczwwMkCjKYIOdnSZrAym9LR3PoYA+W98qd4ojBxode+JUNviSsZ
|
||||
NgSJPU/l
|
||||
|
||||
Name: res/color-v23/abc_btn_colored_text_material.xml
|
||||
SHA-384-Digest: vSpsy5+SSCD8qX1VTNT1kJkssmBoOnQToeVEuiZx1O0POQ7k8GFgHWhY
|
||||
4hA6ks8+
|
||||
|
||||
Name: res/Ib.xml
|
||||
SHA-384-Digest: VB7atY1Pc7PlCus5ebBhoTZ0S95oOVVmZo94fRulH5uv0Eryo8u4y8F7
|
||||
HuE2uBMJ
|
||||
|
||||
Name: res/JC.xml
|
||||
SHA-384-Digest: gZvA2o20wrqm9reBGByyln4p/ycElbsme/0vZSFF+1mN/CofB3K1aBDK
|
||||
jwdbfVKy
|
||||
|
||||
Name: res/Ag.png
|
||||
SHA-384-Digest: 3KEh44n9+WxbCDBkQ+GFIT0sXiJEXedGp3A6nhgqXmQ4g6ftc5VtfAEx
|
||||
JBet2NIl
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant12.xml
|
||||
SHA-384-Digest: vG9eXcNi5XeTEp3ny68nPMV4v15CqB2Lguo9anWYu0u1LM0G3CNd3lQY
|
||||
N0jpn6es
|
||||
|
||||
Name: res/1x.png
|
||||
SHA-384-Digest: eWZyHHbDz/EEO4sVoMYYXADAGLZ41znVkQu/Dkf+8m8hXlRlVG47+bCx
|
||||
0GMzycSr
|
||||
|
||||
Name: res/Nu.xml
|
||||
SHA-384-Digest: GiIZIcpySrSHyUTmKU/Xunfm7bjnm3yDzwS8ZmEjycggp8xxXkccr+W3
|
||||
eg5hcl1k
|
||||
|
||||
Name: res/eK1.xml
|
||||
SHA-384-Digest: SSAVog/ypEUzhcQhIlngW+Gh22XPcm+l/pNjezgI+4x6YGnSAB9MiNoq
|
||||
b/h+cktV
|
||||
|
||||
Name: res/tK.png
|
||||
SHA-384-Digest: zz18+EeY73xS1pwPDiti6/eKFZtDVcP0eYiJiY5650l3fzLkV+sNBJrT
|
||||
Yt5ymmjD
|
||||
|
||||
Name: res/color/abc_primary_text_disable_only_material_dark.xml
|
||||
SHA-384-Digest: eX4xI7D24a10xohVO4x735Lz8mUzyAPC8K4B3t6fdzN+ayh1zGDyT+6v
|
||||
eMu4YFTb
|
||||
|
||||
Name: res/Ac.xml
|
||||
SHA-384-Digest: Zp3rwvuo/W08Swv8HuFcKytTZBRVFv2jp6Iu/NXebRF7bFh+P9Iagtrg
|
||||
1SlrFpWg
|
||||
|
||||
Name: res/zN.png
|
||||
SHA-384-Digest: 8jdEm/tunyKc6JcUb/k9hDsgBQBUci925NDYVkIhZs7whBHWPAEC7h+E
|
||||
vnfcreQ3
|
||||
|
||||
Name: res/MZ.xml
|
||||
SHA-384-Digest: 2/vmuWhWT8KXCAlv2gsUpw49HPIMt4nV8GxCvLQBFLlbHNq9cq678V8g
|
||||
TdlmjGjp
|
||||
|
||||
Name: res/T3.png
|
||||
SHA-384-Digest: kQEjZ/hnBtJKjnoCmBXFg2pHcncl3DQoLK97j/3MVDcTkBQzuSG7fyYe
|
||||
z/3/q7V7
|
||||
|
||||
Name: res/gs.png
|
||||
SHA-384-Digest: ZD5he/DxwbI+6pRiUEyMjLUzgvLUCts4wzbYZHuc2PV1oP+fxPJMHktE
|
||||
BUXkmny2
|
||||
|
||||
Name: res/s0.png
|
||||
SHA-384-Digest: 8mrNJDy2uw5Xns+Q56VnyZyMPB5Rh9I+dczH3p7EtbHIh6SLcIF4d1fa
|
||||
UaiitHS3
|
||||
|
||||
Name: res/color/m3_fab_efab_foreground_color_selector.xml
|
||||
SHA-384-Digest: IoaCuqoamQeAdaTmQPFTnmUdbfoThZuxf7cEbUEYN2q1MDjv9CJEybDW
|
||||
JpUEwjby
|
||||
|
||||
Name: res/-Q.xml
|
||||
SHA-384-Digest: sZRO66D5/mquO/IVzGlgWsZtS3b7IECnfacFqPT6udAF+hp53QPzcrZ2
|
||||
kDNw6efi
|
||||
|
||||
Name: res/eW.xml
|
||||
SHA-384-Digest: TVxyerYTCZv4hlX8QFxkkAKSyCQxktOU/40wS1IWZEBMAWnSu0v1wRyG
|
||||
glem3vxO
|
||||
|
||||
Name: res/color/m3_timepicker_button_ripple_color.xml
|
||||
SHA-384-Digest: O8wb7HBbPrZZPT+h8x+a74nJRWZuqLHi/EY0Kn0jLEYvVpJRtcgKH63T
|
||||
/C6SY/aV
|
||||
|
||||
Name: res/5l.xml
|
||||
SHA-384-Digest: DxEizlOchFr2RG4x6UAVGmalm098VKZRZYs9lbur0ApaPVwsaYn+tFbL
|
||||
FaDCuiOv
|
||||
|
||||
Name: res/9H.xml
|
||||
SHA-384-Digest: i9oZsU+8rTYEzpo4iypda4Rv5xQeO97Kca/3bUr0VGSjUpi0Njp4L3T0
|
||||
m0FiurS5
|
||||
|
||||
Name: res/NJ.xml
|
||||
SHA-384-Digest: 3+jwgsE4fyb1PpCTXhnpIJDr3gHz9XzUTmZzl12QixlsKGXbXIr2I5jh
|
||||
RiY2zON6
|
||||
|
||||
Name: res/color/m3_appbar_overlay_color.xml
|
||||
SHA-384-Digest: aO8v3bQuj8d++jfdnj2vkck9/m73dA9CBMM3mhHhnjhxZCaZO3azA1Ku
|
||||
Xy0jeyus
|
||||
|
||||
Name: res/xy.xml
|
||||
SHA-384-Digest: Q8isUz7N3qK8txu0ppQGF5VS7YsjwwWKcQcP+WCCx6jucdp+iEdPS5pD
|
||||
GHv9YfDD
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_external_yuv_es3.gls
|
||||
l
|
||||
SHA-384-Digest: k95lkyRl36JI+2CX6gGahqcoUB3Vtwa3rIFT52XQZwA3T9Y61t+BDTpJ
|
||||
AP1ZwvK+
|
||||
|
||||
Name: res/dX.xml
|
||||
SHA-384-Digest: RmzM3zq22oIwumYeZHZEMqySe+V3dH8dOUaxJVTlQTaVG/HhVKSys7ea
|
||||
TmRGMAGv
|
||||
|
||||
Name: res/j4.png
|
||||
SHA-384-Digest: X+2ZBI1L6hWmOwNjxi+z9P4nXp89FFYsHJr+6FGPIl3vjHD4tNiYecxj
|
||||
VUlBMfHr
|
||||
|
||||
Name: res/H-.png
|
||||
SHA-384-Digest: R4cBTEiiao9Mv6m5GK4v2k+97juIBLJN4DM5wpdH5v3oGiWqCHKZWxXm
|
||||
B9BsgZug
|
||||
|
||||
Name: res/w7.png
|
||||
SHA-384-Digest: WjtXUSljTfOiwex64g6pKV620Qg2atCBICF8uzB8c9zvecIkPD4CeYf6
|
||||
QNCmiFhU
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_external_es2.gls
|
||||
l
|
||||
SHA-384-Digest: 9mOTsdDk9p9O98ms7qu/Q5hnB7jqANIp/J/ffzRxS5t2A9+PAYEnzPPl
|
||||
NCBZcooD
|
||||
|
||||
Name: res/1I.xml
|
||||
SHA-384-Digest: 2/WjqwpR2XcD5UqIFQ4b3Oz1+EIl82HRZCUZU/4gMZ1mzlJQMn6iL74e
|
||||
psN4XNoh
|
||||
|
||||
Name: res/C_.9.png
|
||||
SHA-384-Digest: CZP617rR4YSyBFVL6FU0ssKNtEMQaRU7JQlWKGJhnlnZ6vJ0+v6+lBwH
|
||||
4gyQthv2
|
||||
|
||||
Name: assets/images/ic_local.svg
|
||||
SHA-384-Digest: tm8vbYmzxwyyydXgymUqab8YULpDPhf9ej65Ao9KGP5+4iA+86QwzWCR
|
||||
m4VuFZJf
|
||||
|
||||
Name: res/color/m3_fab_efab_background_color_selector.xml
|
||||
SHA-384-Digest: QfmY23lBp7OedzkBxOK7A3zuMkqGzq6x8sPw7wbmigqYuLlGTZG0TuZC
|
||||
Fb5ad6+a
|
||||
|
||||
Name: res/go.xml
|
||||
SHA-384-Digest: wPblYisHzm5Ix9h01+UQKLsqCtVMxTRfcZQ+5LwNrQduZt9yIUeKZZHE
|
||||
+f9rZY6M
|
||||
|
||||
Name: res/hP.xml
|
||||
SHA-384-Digest: hDrF49wu9IROTNLbqR9sx34SO3l5/63+CEY9xyHPxGE44tMgAjTV3qHV
|
||||
Pxzv0BvK
|
||||
|
||||
Name: res/SN.xml
|
||||
SHA-384-Digest: BjKj+dehrF4c0jY6aHTtPJI7oQKX1oGqPfEnwJS+xcqXFzBwOrythWz8
|
||||
g/KA7cCr
|
||||
|
||||
Name: res/wb.png
|
||||
SHA-384-Digest: Q5AxDeP9ZMhCkvHzeaeYmzzmjhWd6ZOxayku8ITGn6jREZH4Qra5sbEa
|
||||
EziEPHqf
|
||||
|
||||
Name: res/rj.9.png
|
||||
SHA-384-Digest: gL+uB9ipRWZLXXV/Hu0LNbNhFMQ6jSbMt215aw6FkdiIndifHGCwOCkL
|
||||
GU7hDW05
|
||||
|
||||
Name: META-INF/com.google.android.material_material.version
|
||||
SHA-384-Digest: vJ5t02iGXaOXx4BGVoGmMEbO7yKcaiFfLR47/8pv2nMnohoxhBwnnct7
|
||||
MKtI1u+y
|
||||
|
||||
Name: res/t8.xml
|
||||
SHA-384-Digest: nkLDiPAqeBCb7SLgpWvyWVQB8bHfRYge3cBvhkVlQPmwprm8/Mnv5S+y
|
||||
Zd7UWXz9
|
||||
|
||||
Name: res/XW1.xml
|
||||
SHA-384-Digest: DgCMQ98svcOQsKaVgK93TboRk3lT1baemQd55lNEGwHyrs/F+jQDsDbt
|
||||
Alt5PfyF
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral6.xml
|
||||
SHA-384-Digest: sAR0+JgfZtKshgx97Zt24h4Y2pGDu4E9QGxmdZPREhN2V5CXDRYRSlTQ
|
||||
kOeEPaJH
|
||||
|
||||
Name: res/Fg.xml
|
||||
SHA-384-Digest: NU+ugRcplEQyWWQOB5Wg4DeDnlZrm3AR0JiWJxiQW0kjTXmqYMjy9aCN
|
||||
R3yOljcV
|
||||
|
||||
Name: res/color/mtrl_outlined_icon_tint.xml
|
||||
SHA-384-Digest: L4QoYzdNWfbE8bwCO5DTdPlhaWPjG0XC4ffQNVM2tPxFWijVs6cg4J2p
|
||||
oZtqRCjY
|
||||
|
||||
Name: res/AI.png
|
||||
SHA-384-Digest: Od/YEyJ8I+onv/TEqQ22aOf+bfASdZAhEhPiHLxyDP6oKWfAk9ykIRCr
|
||||
O0LOfusn
|
||||
|
||||
Name: org/fourthline/cling/support/avtransport/metadata-1.01-avt.xsd
|
||||
SHA-384-Digest: 62ceA1lTUROX0zvfCeyCaPVBrqbMbSRvKtScevrdlfLuqYBtemkUsoHj
|
||||
g6x2FAqJ
|
||||
|
||||
Name: res/8k.png
|
||||
SHA-384-Digest: K3YEuiYsIZO6OJ5qTZznPzjNN+WXGajn4VVyy8AQGYUjeTThRSv8Sr63
|
||||
9W7V5T3A
|
||||
|
||||
Name: res/x3.9.png
|
||||
SHA-384-Digest: CHZckXZKKkxNaLfZ2DpQLId6h683OqRz+rNUxptwZ+sk8GKuDtwmccov
|
||||
tCckQsTu
|
||||
|
||||
Name: res/h8.png
|
||||
SHA-384-Digest: kQ+Ak1QuFDF4gYog7UTU/3sNEkImFTUKH1BAhuGcrZ1NhAJbp5XcqU59
|
||||
jf4UghbE
|
||||
|
||||
Name: res/uS.xml
|
||||
SHA-384-Digest: NS+3p8yf5ZpOCvSK0BDCaATD0uqFDXrB2h27fZXq9ONerkcgJWSJ5PWT
|
||||
zBcGFhlh
|
||||
|
||||
Name: res/color/mtrl_tabs_legacy_text_color_selector.xml
|
||||
SHA-384-Digest: w59Iurugc3+eZHiJEo1ywqCdP6V0JlXfdRgT0VRAX0NHeWtL/G2Ynr0C
|
||||
duKoAWsm
|
||||
|
||||
Name: res/Ja.xml
|
||||
SHA-384-Digest: 39GdJlievBr+stZHvjssN+TNSIxqecy3Nb1D0vG+K70of5YdrJcVHF+7
|
||||
MAqLvdqd
|
||||
|
||||
Name: res/0x.9.png
|
||||
SHA-384-Digest: yJxtwFdQo+VA8l265KbFBrkOSvtWzxy4j/5OYdDwhizaoNwUuqbitvFk
|
||||
+fWBdz/2
|
||||
|
||||
Name: res/8t.xml
|
||||
SHA-384-Digest: skAswrqbAJaRyPRyPThIMrlhOHwP0d9IaXLtJHEWVv5CrthIL6a2Nl/X
|
||||
GHacXHCd
|
||||
|
||||
Name: org/eclipse/jetty/server/nio/jmx/SelectChannelConnector-mbean.prop
|
||||
erties
|
||||
SHA-384-Digest: DyT/8YScke5gSciaRtHBxv+CMiUj9U+QMF5K5uJDNIdLGk1bF+nTCKzE
|
||||
ndMRxmky
|
||||
|
||||
Name: res/color/m3_textfield_indicator_text_color.xml
|
||||
SHA-384-Digest: SYuhR5vVNjGJDnvDsnLZwDjzyP8lZ5bkxOhvPLXqVP9VmVx8WznIso3f
|
||||
qyLUEOk/
|
||||
|
||||
Name: META-INF/androidx.activity_activity-ktx.version
|
||||
SHA-384-Digest: 4XuTjFSAD7rFUMU5gZ7xonfmbEe3GRU5HNpYjCMkL5wY3eSlIHnn97A9
|
||||
mTSEpnxF
|
||||
|
||||
Name: res/color/nav.xml
|
||||
SHA-384-Digest: Ed6sjtUTtuJMYqsMWzr07Iz9in7Py5nxcCEr+e6A+jnNENkp3FWbShn6
|
||||
pryYytth
|
||||
|
||||
Name: res/color/m3_default_color_primary_text.xml
|
||||
SHA-384-Digest: ELpd8WS6jV2RiixAY0Xn6f4UdeYjvdXAO9dnS+9620IVf8XmvP/gtqNR
|
||||
z6AO6Vp6
|
||||
|
||||
Name: res/7s1.xml
|
||||
SHA-384-Digest: deowbf3xB5WjsjW69MdylmvShiKYIiKEvKA6lpuYnM3VY5judZPCG7qL
|
||||
ofpG2RQg
|
||||
|
||||
Name: res/kg.xml
|
||||
SHA-384-Digest: oIwYA0L8wBzodQHxhbf7M0Tx7z5gmmbPdkZcgdQ8TxHA1wxejHWCZjtT
|
||||
OQsp7BAc
|
||||
|
||||
Name: res/Qp.xml
|
||||
SHA-384-Digest: T5DRfGgRmm9BWzIJVxuDDRoB3pP6AMHuCZcJO0x8aLk4GcN1O6dRikh0
|
||||
xBD5h81n
|
||||
|
||||
Name: res/2F.xml
|
||||
SHA-384-Digest: SBaWSg68lABevIE98LVDrbvCF2IogYR25eTRFrj3DdJqMxNU4SGHWudZ
|
||||
KY+/5l6+
|
||||
|
||||
Name: res/no.xml
|
||||
SHA-384-Digest: mHnTi46bsLk+rfZYs/KHWO7RYhFFT1A7VEdBwSGGWW/htEIHirhy2rFg
|
||||
W/DAXmLH
|
||||
|
||||
Name: res/oP.xml
|
||||
SHA-384-Digest: GiH+Y6aQ4ZCjirC5pOyddRbLK4LdWXsNLa0ILmi4/KCN1a6JRt6Aa8qN
|
||||
ByqC24CR
|
||||
|
||||
Name: res/ZN.xml
|
||||
SHA-384-Digest: 9Z6cwzm4GQlQ3SumRfi1P6nVJwJOtF5PafkLmdsjT112SnAtgAYdg/tn
|
||||
oJtZBbVN
|
||||
|
||||
Name: res/oa.xml
|
||||
SHA-384-Digest: dkSj7rfKr5L7gW3Tm3BoF6W7a25+M0Z1yc1ITYvrUYh/rTPhMorcaM/8
|
||||
ojcwPba1
|
||||
|
||||
Name: res/pB.xml
|
||||
SHA-384-Digest: NNamUuZH/UMnZzVWznwCUG6IG4bQWgwHNeXcuMFDBE/ut+tFvp1XXdX7
|
||||
cSO85BxL
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/HandlerCollection-mbean.prope
|
||||
rties
|
||||
SHA-384-Digest: kdlaIvm1+yL6Nn5AOIKF/Y2zGxoNVGs9Jnflxd4rNptuT6H0weOu9Gxu
|
||||
vV4IxDcW
|
||||
|
||||
Name: res/62.9.png
|
||||
SHA-384-Digest: zfWqrszC6JHBM40kcMmgXxVJqyod9T6u4wk5dfORf6OmAbgOZQ8+TDC7
|
||||
7V5kQAk4
|
||||
|
||||
Name: res/color/m3_primary_text_disable_only.xml
|
||||
SHA-384-Digest: /QKq1vsGLNtm3bSmOUbYf+iIJw6JOmTl391aaiEGpTYQJ20fu3DLr7sR
|
||||
er0qnAEl
|
||||
|
||||
Name: res/K5.png
|
||||
SHA-384-Digest: VVxKo4/1+8QT8yPElObXVmqarUIgOFuX4Z2kW1d/rwAVkqTqNnITSRKS
|
||||
Avk1M1GJ
|
||||
|
||||
Name: res/-5.xml
|
||||
SHA-384-Digest: pHEyKW2r/JKM/UblJL5/lSLrGKySxbYZGC/Syo2LgkPvMvS+Y/a9oYZF
|
||||
JNntZ4p6
|
||||
|
||||
Name: res/nf.png
|
||||
SHA-384-Digest: rRGmzG/T1sO4GnG2GYfHD11pwxBqa5M7JuXefgQ9iOQixZDGdU059Xo7
|
||||
noQwykbP
|
||||
|
||||
Name: res/1J.9.png
|
||||
SHA-384-Digest: v6Tb6Ro2pb4umhL3wXGS4P6lwuD//EFerLUT3tyJFG8wWEK/JPJ8X4Th
|
||||
Wdui3m1y
|
||||
|
||||
Name: res/color/abc_hint_foreground_material_light.xml
|
||||
SHA-384-Digest: v49eKtp2cQCxB7PbN+KOZbakXa8e8WWIEvdVCk6PK7y4ISOdYcFcurdU
|
||||
05kuq7i+
|
||||
|
||||
Name: res/h4.xml
|
||||
SHA-384-Digest: +ymWhEaXMUC/4tpYphDVnEwEW3i7h4ZKHIsukJ6nVIKFpbPkKGhxy6UU
|
||||
AnuG/4nN
|
||||
|
||||
Name: res/By1.xml
|
||||
SHA-384-Digest: ulZiS+zIWuAIAI3amNZoZ1LcSpHM3LidwP1qDUyyNc04EyGqlZSDwqBO
|
||||
mVfaXHTC
|
||||
|
||||
Name: res/te.xml
|
||||
SHA-384-Digest: Iv68Gh5yGmQ71UQIRBjGMsOvtIroCHfy+lh0MKmo0KyyRmjGf68183Fs
|
||||
w7p/V0e/
|
||||
|
||||
Name: res/color/material_on_surface_emphasis_high_type.xml
|
||||
SHA-384-Digest: oL4lPxAjxvArTnpmHYGMUEpqnUjRW6JJPk5Teu91fsyTaoVeE9Xp45To
|
||||
iFihb3I6
|
||||
|
||||
Name: res/Mv.xml
|
||||
SHA-384-Digest: VHJt6toQ/Jw7pUdz8VDDNf66J16Yaui3lFE8i2R2tmQapAqAlIDqsmjn
|
||||
f6mXSeNe
|
||||
|
||||
Name: res/color/mtrl_filled_background_color.xml
|
||||
SHA-384-Digest: g2GNIbZbuWtJSpOwrckfXxx4WMXp802ocdeLIO87bL8xfIzfLD6niMdr
|
||||
9qeteLei
|
||||
|
||||
Name: res/mr.xml
|
||||
SHA-384-Digest: 5llFwJdc8vZWIVrZhBcnlZXrjH8xmQENkq/b+duUDt/s7y5jXwTgjrni
|
||||
/BL0pZlh
|
||||
|
||||
Name: META-INF/androidx.slidingpanelayout_slidingpanelayout.version
|
||||
SHA-384-Digest: dZWsYPKcBB3hLWSKo7dk89yFwE8EGTmAkXXaN7mSWo6ZtatcGQ7lp2cl
|
||||
Qg5ZpkAa
|
||||
|
||||
Name: res/EP.png
|
||||
SHA-384-Digest: RBlkK+AxkX41eu4FrVVmB8zg0ysZoolN6zPYlmmAlfL1uVYG2MP+3D75
|
||||
nBOZUAL7
|
||||
|
||||
Name: res/8K.xml
|
||||
SHA-384-Digest: qcbRzO+AoPbFnzwuOAh61FUWYosoZhf9xNjyaPFy/xN46xLgiXjN56W6
|
||||
9GRICopu
|
||||
|
||||
Name: res/M-.xml
|
||||
SHA-384-Digest: fXc0PPqA+IDKf7Ly51BHqxlfv1pTgQhrNxfbk5UYuc5ciJc5JCtKe4L1
|
||||
34KzhDhy
|
||||
|
||||
Name: res/an.xml
|
||||
SHA-384-Digest: 2ARvLBn56s82XWU+/hg+UewJVqYlmQZJTp9r6ST0RmXY5nflYCsfCYXC
|
||||
acRY5RUF
|
||||
|
||||
Name: res/c0.xml
|
||||
SHA-384-Digest: pzuDv4z5jCsasdkzlmXo+NRDafLgB9dCcgWymvu7SyhzKBSjgjyKhC9M
|
||||
UWzAtZfu
|
||||
|
||||
Name: res/yi.xml
|
||||
SHA-384-Digest: wxQQkkCVrGsV8BxQmIdMm+YRu/gyG90hRDlF7Ff697/FSVbgWbD4idiz
|
||||
EQQ/t8wa
|
||||
|
||||
Name: META-INF/androidx.dynamicanimation_dynamicanimation.version
|
||||
SHA-384-Digest: mckGVV5yZITcGfKBEb9sMNyo8RcMd8EdHV+ZDpmrhxBBU+cFqAWsmsbB
|
||||
c6ylutdd
|
||||
|
||||
Name: res/color/m3_tonal_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: u1MsJPyrUt4dKaAXCm20K7B4uPaQo/MdzxooNzSlEdEUkR/A4rWgxta3
|
||||
iHsxCf7V
|
||||
|
||||
Name: res/color/material_on_background_emphasis_high_type.xml
|
||||
SHA-384-Digest: 8vr2px+mchHzH9PAAoGVobPGnYkLHAeBeRDHzzWABOvI+fAmk0gOtHgI
|
||||
jvsO3J46
|
||||
|
||||
Name: res/sA.9.png
|
||||
SHA-384-Digest: 09wT/gUp+Zpns2JXR1vzJLyEewLMOgz91k6+YONlpdmI3cOYFtqNy1ki
|
||||
0Nx55o38
|
||||
|
||||
Name: res/PF.xml
|
||||
SHA-384-Digest: FElgFZexzq68de/3qy8gp/2rVjLVWGu5JdThOcmxZbRUSEYvNkqICpxV
|
||||
vBNGMM/N
|
||||
|
||||
Name: res/z9.9.png
|
||||
SHA-384-Digest: 91WtN61BumX3ieflMnb5ZHGm2N9imhl6TjsWRVJMFhoKYhUAL15g7Bz2
|
||||
acDF+RhN
|
||||
|
||||
Name: res/eH.xml
|
||||
SHA-384-Digest: T8XbtoR2sgfbzAul7ffF2aHjhFCRAuSb9WIWmCQhe8Zis6EVwXnhDTLM
|
||||
+qURR9NM
|
||||
|
||||
Name: res/4Q.xml
|
||||
SHA-384-Digest: roiZHirNbd2Kj835FaZA84powRoLJcmg9IoMstuVl+hp4lC6qRkgtaqX
|
||||
xTP2Iegy
|
||||
|
||||
Name: res/Av.png
|
||||
SHA-384-Digest: 28gwjBDJNC3yJzJwG128vY0BdyfHdXsbm5kkfxx0m7A8iZXowuHbczoW
|
||||
7BUGaQqf
|
||||
|
||||
Name: res/color-v31/m3_dynamic_hint_foreground.xml
|
||||
SHA-384-Digest: /eXBcmiLVMFVp+5WDp67T2Da6WQPjz5/sQf1kfmYtcT7VOHe6jwyU+Cf
|
||||
4+RKk2ek
|
||||
|
||||
Name: res/zL.png
|
||||
SHA-384-Digest: 9CjS5bXNUCnh0wjeOuJJannRvVGw5PlYRKq6TRPvePZCpQO3nuQQg+Rq
|
||||
Wzg7m1US
|
||||
|
||||
Name: res/uh.png
|
||||
SHA-384-Digest: tmkAx6MXuQLwgJigjL6pzWdl8twmo0DxT9qhu+HqD7S6wX1rrj6KRCeh
|
||||
rGH90kCi
|
||||
|
||||
Name: res/UP.png
|
||||
SHA-384-Digest: 62X638Saq55d+EVU7Ij4UpvdT+w37BWVBEDhsNilWvSdUwUcqeVcrIfh
|
||||
OJB66yb1
|
||||
|
||||
Name: res/V1.png
|
||||
SHA-384-Digest: Jwm7CU6ZDfRh4ieBH7TPHuAsTsQxHuyqMp8HgBR+sZ7tObpuQp4zvr1S
|
||||
coAlPfG3
|
||||
|
||||
Name: res/q2.xml
|
||||
SHA-384-Digest: o1ngKwk+bXP1LmzVtqMKaP5w5x7as4cWlvYqbMnClIoyU2VvN/D2G821
|
||||
fmx+NpJH
|
||||
|
||||
Name: res/4S.xml
|
||||
SHA-384-Digest: 0oaa/Bq5LumCFxaz6Ywu3f8DY9RCQxUnSajlPRrUBdUhg5DEdEIEbmNL
|
||||
/oOz7W/r
|
||||
|
||||
Name: res/97.xml
|
||||
SHA-384-Digest: FenBwP2VGx/l/DY4JaVITKNy6/+5oAWqNQgpcEbiW3iqFrJ79Er3hcX/
|
||||
ubXvkc80
|
||||
|
||||
Name: res/Hx.png
|
||||
SHA-384-Digest: tRKYTUHRxSNDC39q7BZpFp50a8kzbBUiV2OhQWl+uxuWQlxQjwO2zymQ
|
||||
l+sGDQPH
|
||||
|
||||
Name: res/color/material_personalized__highlighted_text.xml
|
||||
SHA-384-Digest: ohqAziUdlIpGymNmLe2xkc4QvuJ6cwgkPTamCN31tnc70oAqwAN387Rg
|
||||
2S1R4WTB
|
||||
|
||||
Name: res/qp.png
|
||||
SHA-384-Digest: K5WRJ7e3vUjzKOQ/Y4vnVLPtwhmMc2adknT27SjqaCRNEGzG+toIAobo
|
||||
BXLnqawY
|
||||
|
||||
Name: res/cy.xml
|
||||
SHA-384-Digest: s4KFa0LTLabHcNejhohstLiZbWU4MGQpVCCgsOzMfitNC4/EaoosFneY
|
||||
j+HPR9lp
|
||||
|
||||
Name: res/Cp.png
|
||||
SHA-384-Digest: fiE6wfepbTVdf90VznXwO6wZftFC5Q9lrBkZx8jTkRtBvLw9Duaxnt6B
|
||||
m7HUdH02
|
||||
|
||||
Name: lib/arm64-v8a/libavcodec.so
|
||||
SHA-384-Digest: UhLMJkjwxTId/9KShbdept/usPSqIldAcKesiGHkqjjGw7OXk+KTZ2PS
|
||||
OS4YLViF
|
||||
|
||||
Name: res/Ro.png
|
||||
SHA-384-Digest: EKD6a2NvMXtTfll1NYpROvB+0nWCswEoBlVGvUuFGj+wBMBErNlAY2T3
|
||||
IDRSE/St
|
||||
|
||||
Name: res/Nl.png
|
||||
SHA-384-Digest: xtGFonmU++H8YmrF0kPYZ3fTCo2o6TN92abnNpADLlz55NnAw/P7fCgC
|
||||
FqsDZpwL
|
||||
|
||||
Name: res/OM.png
|
||||
SHA-384-Digest: /VMV5kXiU1jcoHhz/I1WINpoN+i/swFxXx+ogG6SEJGYVe/MApvNBN9f
|
||||
e9Sa21AF
|
||||
|
||||
Name: res/fp.xml
|
||||
SHA-384-Digest: Nub/5XDdrlMVKmhUPjW7MhWgfNjLG2g0xYjWL0h4E0tY2jhxoIznLF5O
|
||||
9UZFLn3z
|
||||
|
||||
Name: res/Kd.png
|
||||
SHA-384-Digest: m79Lic2BV1NgROwLmnY9Aei4db1uMzIlnXBvUk+tuKZE/9rvV1ykzfqd
|
||||
iFL31tbT
|
||||
|
||||
Name: res/uj.9.png
|
||||
SHA-384-Digest: 9rQTPAeU/7einiVSppbaAQRgK3u0y2m8fUhbHm5DZtS8gYFwvIfXWDqa
|
||||
0Dea6XpO
|
||||
|
||||
Name: res/bm.xml
|
||||
SHA-384-Digest: ZmgbQEdcFA7STKWimhNsXcXHOLe4FkuQh9TYNw5oLL6NNP+DMFX7QqFU
|
||||
gYAkuCYA
|
||||
|
||||
Name: res/ej.9.png
|
||||
SHA-384-Digest: itQLYheUPSVjyqev/myV1PB9NUgouleUiCEayMM32mD6frV30zz8lTJx
|
||||
HU4b2kBP
|
||||
|
||||
Name: res/Fx.png
|
||||
SHA-384-Digest: an2zjF1kW+ABwB3G4UKVGDi1Z60jn0o4yOP3lVCpz/GNrPMfwfFQ4tEy
|
||||
TM9Xin+U
|
||||
|
||||
Name: res/GY.png
|
||||
SHA-384-Digest: rjO7yTkjTdngvDr1YmzjLuK+ofIQRJCoRDs4mMwsSBd0D+b463grfkpZ
|
||||
N1CAvuBA
|
||||
|
||||
Name: res/D7.png
|
||||
SHA-384-Digest: MvDU9l06C1hrDSMBD435+zLrTGvTPUy16uCfd7QdUu6Tqq7TVT5X+xqZ
|
||||
I8GoiZD6
|
||||
|
||||
Name: res/OX.xml
|
||||
SHA-384-Digest: CSZ3UlmOYZ7CPXjQO5Q5WUaQzBWNEePvKs3Pks7Z+Y8+A6rM5h2/ZKnF
|
||||
U6isWEVH
|
||||
|
||||
Name: res/color/material_timepicker_modebutton_tint.xml
|
||||
SHA-384-Digest: WJcjJAzEKJM0cMgs4kwyaWXf3e3F2TA2UDeeo+CZ3huDPGvN1AO+miDy
|
||||
ht3wO/rN
|
||||
|
||||
Name: res/5N.xml
|
||||
SHA-384-Digest: ACygKz1FhnIbHrKNAt9gjL3VwCBwRe5DWMOhh46Bjo1RBmA+kOnyXyZu
|
||||
Fv2lXZwI
|
||||
|
||||
Name: res/color/m3_highlighted_text.xml
|
||||
SHA-384-Digest: bviuvfuHXYP4V6IIRyWq58DHBfzY43O27wCu8I+M3pSQH0GfyAvetQCO
|
||||
OYijAPEM
|
||||
|
||||
Name: res/color/material_slider_active_track_color.xml
|
||||
SHA-384-Digest: KG+hY2fpbNBUYjtJgyEvqZrcUdFn7iOb5qgntgR8jZLoXHYsr+w5YdkM
|
||||
OD6XqQ2G
|
||||
|
||||
Name: res/sH.xml
|
||||
SHA-384-Digest: PGaPV5X9hJdMlQ4QC6cBDcXDtnXX3CTVSQCY1JBQ0XQKLjKSeWYnjpNz
|
||||
2SNrEBko
|
||||
|
||||
Name: res/RD.xml
|
||||
SHA-384-Digest: 9qBKiHRi1cTEf7ArFaWT0xkO12l617ccsjFnzG93rscTuBsR5Mt7o4Fo
|
||||
Qa3NO3F/
|
||||
|
||||
Name: res/iZ1.xml
|
||||
SHA-384-Digest: DDOB9KPs2/XqkX45q604bUgow/J2CBqZwI4b/70EYCqhicZoHZvzeuYf
|
||||
1qNAycvd
|
||||
|
||||
Name: res/Uf.xml
|
||||
SHA-384-Digest: bRAtBLDFkz8XQOurXDUq6EY08LHQai24r+TbFd4ECzVL16UXYejoor6T
|
||||
gbcof36H
|
||||
|
||||
Name: res/color/abc_tint_default.xml
|
||||
SHA-384-Digest: 9yGIoNFXCUexT4K/G19OuczooHkRlGtkc+uS8w+habOrrEYNrw+7w7cc
|
||||
emBtDcw0
|
||||
|
||||
Name: res/hp.xml
|
||||
SHA-384-Digest: ULyoYzQvL4nH0jgDju883QTWScud68hxjsNnIPtb1k8s+WugZWkBC92k
|
||||
k+Ztt7Gn
|
||||
|
||||
Name: res/iQ.xml
|
||||
SHA-384-Digest: nUyIf6r6iLjBXg6zHOtit4ThVLa2udMrELE1al7QCEKkMl6H3ZSQU8sW
|
||||
HBcvcMFj
|
||||
|
||||
Name: res/JP.xml
|
||||
SHA-384-Digest: OUTuGwJHqFg7TiinzvFUm/Dtxv7aUjUVDjzyjhiRz0O7gRWNDdiWGA99
|
||||
ihCIpDAo
|
||||
|
||||
Name: res/ZC.xml
|
||||
SHA-384-Digest: ZntYVS7Fkp0bicqhtfBG8gasrKotzEMibi8d6C0zO6jTi/XfHkIAJwyU
|
||||
GvXvSXMx
|
||||
|
||||
Name: res/Fm.png
|
||||
SHA-384-Digest: AvWR8M+hukSbWfn4I3ZVL7n3RC4T8U3igynXfV2DBin6R3d8Mcy6HenQ
|
||||
5MAOHfIB
|
||||
|
||||
Name: res/aR.png
|
||||
SHA-384-Digest: dcpq8SDbUltUByshOBJ9mMAtAFWOe6OPRFJYCPa8e8O/OCAinBDYoxPy
|
||||
bLc4mgP3
|
||||
|
||||
Name: res/3-.png
|
||||
SHA-384-Digest: Ny7KV+9W8KmhFZqa01cntI145FIGVkA7MgO5OrtfKPXSW5kOfzGY0aNI
|
||||
C/fzG38k
|
||||
|
||||
Name: res/color/m3_button_ripple_color.xml
|
||||
SHA-384-Digest: rDx2n4+q3zeesMh6U/89L08SFy6zai3HsOUvdqOkjvWZOZ4HE9R7wE/M
|
||||
9NB/XL/i
|
||||
|
||||
Name: res/color/epg.xml
|
||||
SHA-384-Digest: gQgeD3GqsxIYL+9DHfERsTHTbiwjKvNAU5hBt7JsN4+zx7pEFyHKDz0S
|
||||
8zh5Jy3t
|
||||
|
||||
Name: res/color/mtrl_btn_stroke_color_selector.xml
|
||||
SHA-384-Digest: nITYRAamc51koJi72baQ2m3JZLeDl7aqJs9yolWNheJ4iNzUuM7Fhr8v
|
||||
d/lzEcy1
|
||||
|
||||
Name: res/AE.xml
|
||||
SHA-384-Digest: EQm1OEY3a3do9cLvcdh9qGcTVnayFaTqpIPxA1js0oqH3MA/3N1Q8yA3
|
||||
iI2S60oe
|
||||
|
||||
Name: res/Ws.xml
|
||||
SHA-384-Digest: /FuXzlNmR/KfDE6zFnN0Fp1RFBi0i2uiac1ysVFBppOxfUkLkdd4p2BU
|
||||
wMJP65ga
|
||||
|
||||
Name: res/XT.xml
|
||||
SHA-384-Digest: PtA7qpFYJQ9hOaOiX8bnaru7d+gVHykHicL5PX2HC4vogp7kFwsdPDf/
|
||||
EUlqPo6H
|
||||
|
||||
Name: org/seamless/swing/logging/img/trace.png
|
||||
SHA-384-Digest: Q1C4lFWPH+OF8tKRU1X/AhifcvQR+On68GKE0363LdXUMUepgsrIyxif
|
||||
a7Efn7Mu
|
||||
|
||||
Name: res/color/m3_fab_ripple_color_selector.xml
|
||||
SHA-384-Digest: eptQ6QcJOT3CZMJUo2aFQzUXG3Pnc+q98w6GVxBEaaR590Kf26lTLOaD
|
||||
REq1Uxvl
|
||||
|
||||
Name: res/bD.png
|
||||
SHA-384-Digest: dSDKwxvFa6DcrbVyg1fW5e9UIAMj8vgdXrLDW/Qqs6LOEF6EnU0k23jg
|
||||
XdABOqcf
|
||||
|
||||
Name: res/a0.xml
|
||||
SHA-384-Digest: Yaqjwqhn/uzNgAKfeAEif34+p6hqiNd3rQtlOVBN7ik0Uad58Ehd30UV
|
||||
/HcqbqdJ
|
||||
|
||||
Name: org/seamless/swing/logging/img/warn.png
|
||||
SHA-384-Digest: lnIX9FKS9qBuweUEmgIR4aMIX3RBiy8rEQrM2xpmRYmXZKmmdg7/bFKZ
|
||||
jp1TkEuu
|
||||
|
||||
Name: res/6x.xml
|
||||
SHA-384-Digest: Seo5uahO3tYwYlYdMVVTWE/bSd0A7VhJ/AJb6Iz8yGs50ZiwBhBPWeT8
|
||||
NzawOxHn
|
||||
|
||||
Name: res/4B.xml
|
||||
SHA-384-Digest: PvBIMN7DoCQ4WCtVG6cdtPVsW5hhrBHy0drgyLM0sA7NOiNuxWl/NXnb
|
||||
VykLk/O4
|
||||
|
||||
Name: res/AG.xml
|
||||
SHA-384-Digest: WBmsuN6n60lkh137dAo7KGZsTuxSQHLgxGGDXjnBZUluSlPUUJTB0/c+
|
||||
sdQruhJu
|
||||
|
||||
Name: res/U0.xml
|
||||
SHA-384-Digest: DD87CZ9e6oIqfirryo5kXehZ3vz1QYAxIUS4jSNjH65aLdUTt85BOi4A
|
||||
PdbcZK2H
|
||||
|
||||
Name: res/XR.xml
|
||||
SHA-384-Digest: zpdSFgQyhcbSDBzBwlUkJWEPSx2SSBoNPU+SnjJZ+vgCmWEWl+nihsIE
|
||||
dJdosY7j
|
||||
|
||||
Name: res/Y3.xml
|
||||
SHA-384-Digest: zi6g+CSY/hlfHRhhwb9oRtXuH6aqqactW5ba92NMR3zDaRfKQJ7sRCnZ
|
||||
7qmsQrkH
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/ContextHandler-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: bKD2wv18sylO8tn/pJ9dhBZWfl2lP80oxsEXyDQjBUsMLsuzk3Dsjp14
|
||||
c9dyW5yT
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages.properties
|
||||
SHA-384-Digest: eVR0+DOhgUYdWJUt2L+MLMX3VaMhQEMZv4GMBBXZzrun4hxrs7liVwJu
|
||||
B6KLUPss
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_ja.properties
|
||||
SHA-384-Digest: d39wJjrPg5aiT3ecHez02jrkBRJDCqpzvZXGrb3ubz1QQWPP86KKDLaU
|
||||
V74ciBHn
|
||||
|
||||
Name: res/color/nav_item.xml
|
||||
SHA-384-Digest: EHlz9hfdZ52gomful9X2bp88ZR0PZZ97GzhrIJrE4F41zjV0GE7UDOqI
|
||||
fEj32OJu
|
||||
|
||||
Name: META-INF/androidx.versionedparcelable_versionedparcelable.version
|
||||
SHA-384-Digest: Vwo+5qnrRWD+fBGRDh7y4g/OJLq8uwZIy5Spg1Awa7ID23DP+X5mwx6L
|
||||
MHVvh9t8
|
||||
|
||||
Name: res/tp.xml
|
||||
SHA-384-Digest: H6hePGNlpNf7iIr8crNtY+wacAGbJNZa+Vz/YIiBRLv3uniYbpUzkWcT
|
||||
FrBCb/N4
|
||||
|
||||
Name: res/color/m3_card_stroke_color.xml
|
||||
SHA-384-Digest: cc+JbJodQSs5iJ8zjH1qUQHGHbR9N1djFf9o+zzqHkK4wRgBn+pu9LDQ
|
||||
ZQW+pjZU
|
||||
|
||||
Name: res/color/mtrl_text_btn_text_color_selector.xml
|
||||
SHA-384-Digest: dwT2+ThbqS4/P+DbyR4ngcYu4gh/qmoAWF9NWf7WgkGmRb450/jBDx8c
|
||||
IUa4CAGQ
|
||||
|
||||
Name: res/ls.xml
|
||||
SHA-384-Digest: 2tyCsFT94quXQ38zJlAT06GCykrZnvnu33AfJ9sukREXKgx23Um+M0wi
|
||||
YOfdtXwI
|
||||
|
||||
Name: res/uL.9.png
|
||||
SHA-384-Digest: SNRb84Pi67o7Un5BMOgk0kXeYO48KzxgfMQ+AGH6j3ln77nCeONZB8fA
|
||||
vXAfrR/3
|
||||
|
||||
Name: res/27.xml
|
||||
SHA-384-Digest: qCdUdZ00nWR1KGXjgBC0JVTu5ZuS5YgNfZ+cf30VoVBNcERIW/o928K1
|
||||
Y5JfF5Sw
|
||||
|
||||
Name: res/2H.xml
|
||||
SHA-384-Digest: WeAMlCweuLcew/8ocA/Aei7qrbpQyhKcxHTImsqtncjja65TRC5F/jAF
|
||||
Bjv/dIvI
|
||||
|
||||
Name: res/color/m3_dark_primary_text_disable_only.xml
|
||||
SHA-384-Digest: E58bmeYvgwEmcq3qAV24aL3srvbOh5Lz68F7k3y7c5kU0DSIwXyy7UdB
|
||||
gQPNx1yI
|
||||
|
||||
Name: res/Y9.png
|
||||
SHA-384-Digest: sy9A7yR+zCpRXYfFzH5/yiSFVla+frPhVUUVjwK9Yu+rtFY1Evfn4vgd
|
||||
EnaO/RBc
|
||||
|
||||
Name: res/Jl.xml
|
||||
SHA-384-Digest: YVkNeKFTj5wFJi/M7FTNUAFzvh6+Xebnv6RU/hySn/6u62KmkdXCWl3s
|
||||
qGf50Ar3
|
||||
|
||||
Name: res/xj.xml
|
||||
SHA-384-Digest: vPjJtZ1xzsDRyjnQkIXyeG3Ybm1J4w0JgIws+bcoFVWuUGc8scKc67MQ
|
||||
+6tDaD0j
|
||||
|
||||
Name: res/XY1.xml
|
||||
SHA-384-Digest: gaEUL/EadLxkgMRN1D5RRzZ5+V3q23odkqk7GnKjjPMkrVcPzcHk2Ph0
|
||||
pf9duKoN
|
||||
|
||||
Name: res/4o.xml
|
||||
SHA-384-Digest: 1dPkFluuAcjNUmQW+1LSJSdDgxHcnMytJU3SVv6E5eBGeX1HjMJrI/Tp
|
||||
dRCiRnbT
|
||||
|
||||
Name: res/61.xml
|
||||
SHA-384-Digest: gKGwnQ4wzxV9eJCSuz9aIUcPRP9JAsotZ/0JI4BCABEDWyVJb1+ErvLk
|
||||
re4I9xdR
|
||||
|
||||
Name: res/ly.png
|
||||
SHA-384-Digest: y+LZF4qY5D0KMDs1FzNlYPZEOrsIpdq6uZojtT+M9oQLP1B9c7KM8Z3/
|
||||
0LO7MIKp
|
||||
|
||||
Name: res/tg.xml
|
||||
SHA-384-Digest: IRmJg0dWSSpdsf5wdcepmJUmS6zp7nNgxoZrYZpcZa28jFaL0PgCk3qq
|
||||
nH9yM9nx
|
||||
|
||||
Name: res/Aa.xml
|
||||
SHA-384-Digest: 9O56xMWRJq7i1+2fpfAxOCCULIF6SG0JjzS511nz28qpmmcGBlijTDBv
|
||||
+yzPkObV
|
||||
|
||||
Name: res/c2.xml
|
||||
SHA-384-Digest: PBzmrIlNtAlqMktI7r5lA5d05gtfNACnhpXIrHSK3DbHM1kI8l+Wdq1L
|
||||
/ASZ0gNw
|
||||
|
||||
Name: res/color/material_on_surface_emphasis_medium.xml
|
||||
SHA-384-Digest: nnuBMGP0cnHUhDcnT/eHT38igBM96CkjxZlN0K49pWUdsbBESmRIGwbR
|
||||
e59lUNa7
|
||||
|
||||
Name: res/Y7.9.png
|
||||
SHA-384-Digest: 48F/ofMcKR0Es2Uo71hPzN/m4T/6+dPJzJD0DyGBYRWwCUbRZ4mkdcRB
|
||||
zWCotySb
|
||||
|
||||
Name: res/4F.png
|
||||
SHA-384-Digest: 1tzxn4JdG+iDfaJpiSnK6qW3f6TbpvVr2w66rGjS39zkgQHDjtrNc/U7
|
||||
9mV+qk3d
|
||||
|
||||
Name: res/Bb.png
|
||||
SHA-384-Digest: Dp1juMUnIarkgy34T6dyNV4OlMtE1mDheGW/Xee36MxoVoWoN0pgfMNM
|
||||
luSgiAxS
|
||||
|
||||
Name: res/xo1.xml
|
||||
SHA-384-Digest: gIMxE/Q041247Weip+tn+IGAM+pWi1lbQV3o2chzuwf0sNvsZps2vU5j
|
||||
ccMEOuco
|
||||
|
||||
Name: res/ay.xml
|
||||
SHA-384-Digest: BY4bbXAxd5g05o8d7n+uEoPqP9SNP3F33rWlUvfKkwLT4V1+9hoVAaWF
|
||||
a0nAR23z
|
||||
|
||||
Name: res/TB.png
|
||||
SHA-384-Digest: 0k8xeYC10DsNpQt3Bt/P0BGfc1TTcKm10+GDdq8/XFdrwH8cWEG+/8f+
|
||||
avk6qtZR
|
||||
|
||||
Name: res/ud.xml
|
||||
SHA-384-Digest: DMtpDfVgEhxMtRXMZj2zNMwwDz/ica8H7UtJyLnDFDd573n9IOnjB7BH
|
||||
V9GMPAeF
|
||||
|
||||
Name: res/Wd.png
|
||||
SHA-384-Digest: luOOzKNuA53xyPfG/pcB4Sm+opyvusRGgEO3LzKJuoTI0+wOCpovaB29
|
||||
s/rDQC8f
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_hdr_internal_es3.gls
|
||||
l
|
||||
SHA-384-Digest: 9/lNM5IkMAV39nbQWZf1fAuXgMI5ADGBe7n6pVQqsJMyJG5ESnpCWZhx
|
||||
aJ46OKzm
|
||||
|
||||
Name: res/7H.xml
|
||||
SHA-384-Digest: D6siyHUTPx6I0Eh060mnT3WkFrAMIondcC8L+Lt62LIgt2TtpITXlhhF
|
||||
aYddchvG
|
||||
|
||||
Name: res/Z0.xml
|
||||
SHA-384-Digest: S+5WMTKxvxOYUdkDNp2aHx1Yd/mTl3+XuuqbDlRB+2RdNyT0SGQ+gKji
|
||||
m1SSKZ3m
|
||||
|
||||
Name: res/rx.xml
|
||||
SHA-384-Digest: eaby9ehdKrEVE6eSAuqsXW3tqbRs+MsISyWuxbyRJDovFnVpLREXv1wo
|
||||
juZKGeUb
|
||||
|
||||
Name: res/color/abc_hint_foreground_material_dark.xml
|
||||
SHA-384-Digest: oS6BS216IwoejClzS9qDSu5SapTxf5oyuS25+elCnbDdtP9JoUA74O0Z
|
||||
amoetMEE
|
||||
|
||||
Name: res/MO.xml
|
||||
SHA-384-Digest: DHm7yKJMbQlCHCldKlFDKCRJWW4tZDUyf+VgpWZkwl0oNftyG4Wlhkym
|
||||
j84mzyj8
|
||||
|
||||
Name: res/N0.xml
|
||||
SHA-384-Digest: qI1A5qGje8n1/aDb2wghLG2jLyJqUVs4J4qbF8GAXWzLmdAjBHkiazl5
|
||||
k949EdHj
|
||||
|
||||
Name: res/d3.png
|
||||
SHA-384-Digest: aNw8aswpauwS3eXPyOKEfejvuS4O5eu8ecg7nyxuIYcLxXUNxj8I7OWm
|
||||
qimWXP4F
|
||||
|
||||
Name: res/NP.png
|
||||
SHA-384-Digest: J2Mj7HtSeBZ5YYps7oczdKXJI6rRfBmEjs6W8xoQI1BGwOZiadv67R/+
|
||||
o99aNDaQ
|
||||
|
||||
Name: res/Xe.xml
|
||||
SHA-384-Digest: CxVOuS15BeeEG2VxpP/rcKm/hzgFxeM1odSDQ4X9gXQQnfLOH/aW3rb0
|
||||
Z226xPyj
|
||||
|
||||
Name: res/Mq1.png
|
||||
SHA-384-Digest: uhgwoFVU8Le3xrV9bCEUyavb286sVkIr81YLTtTqIw2UfWEd4K2VssM4
|
||||
/eiGzKYk
|
||||
|
||||
Name: res/S4.png
|
||||
SHA-384-Digest: hAwbLrcNRUJHhdNeA6yCs6uD24/XIcnpv1ocFr/QxKN16jDLoOSHlQA9
|
||||
rDeV1Zia
|
||||
|
||||
Name: res/jN.xml
|
||||
SHA-384-Digest: EjDLl60kcOl9j+BQBYCS3qIOsLpA2aSlV9hnrh+nevWGCOB9sC0S00IO
|
||||
/cGE/5QC
|
||||
|
||||
Name: META-INF/androidx.preference_preference.version
|
||||
SHA-384-Digest: Wq5o6BYc/OOTgZoWqpNZmsuUTDCi9YRat3rMZdyEKxxSG8+nDNsqU/OH
|
||||
fQqHXINc
|
||||
|
||||
Name: res/Cc.xml
|
||||
SHA-384-Digest: aBWfd6n9ScV9r6UchGkI2+SZDHCiZ105vNWonKixUX6aBTeBzLoUXfte
|
||||
+YsTM/nK
|
||||
|
||||
Name: res/tK.xml
|
||||
SHA-384-Digest: c/clC4Kj7rs2Q+pz75AnjhOBy+IZlNb64OA8AveSrEMOz4XbWt3+IzAG
|
||||
oTmW10Qg
|
||||
|
||||
Name: META-INF/jsoup/LICENSE
|
||||
SHA-384-Digest: o8tNii50A/JFotn5jvM24abE1v1Sdomwl80tLa4KP9vVbSz0LX8x6xso
|
||||
20R8SBGf
|
||||
|
||||
Name: res/LJ.xml
|
||||
SHA-384-Digest: RM0PRzIvZenHxiVZAM0RCxQR8XNvhcZun1pxkwO4zlwtX6iSm20hSI5q
|
||||
mpzZh3s3
|
||||
|
||||
Name: res/qn.xml
|
||||
SHA-384-Digest: vc8uW3coB1BkXgO8MQ4rJCTxYMylCKndBAKC39tU4PRSjxLxYQsG5CfA
|
||||
iRRUkLFt
|
||||
|
||||
Name: res/sg.9.png
|
||||
SHA-384-Digest: x6DUu5WYGhx6rmDBkj3qyp9thUr1EzMD1t4VOK5jNiZOo3NTVh3eE7VL
|
||||
gvUogPAi
|
||||
|
||||
Name: res/Ny.xml
|
||||
SHA-384-Digest: f6rm2zvzKDMMwglbSGXor2m1Cfa6e2g1ZzLrgVNcVNtj3RQJVBq24PKh
|
||||
oWkwxYbp
|
||||
|
||||
Name: res/OZ.xml
|
||||
SHA-384-Digest: mfyvU8CCgyk7inKHevhiwmJCZ0vkgxCni6k6r8eL5zvjjdcTY88uHCWg
|
||||
Z/ht6Pcx
|
||||
|
||||
Name: res/_I.xml
|
||||
SHA-384-Digest: 4j9LjdQFMtmABkOoMnwcKxR+gjzd5sZaRUU7OfPgwWfobRWCPX6er5/T
|
||||
9LimDevS
|
||||
|
||||
Name: res/NF.xml
|
||||
SHA-384-Digest: ZkonzqoYV17K+LCjiTEJeVKO+MmiGuRiys4hCBJQIwXQ5onmf/VnHwzV
|
||||
NZvQdlBf
|
||||
|
||||
Name: res/Bw.png
|
||||
SHA-384-Digest: e5HIiFxL173r0QZsj4IrdW9qmQhIyMsTp6UCZP47IPArKEAI7Ypvwfk9
|
||||
+ZHCNXoH
|
||||
|
||||
Name: res/-B.png
|
||||
SHA-384-Digest: B85dv7Dj2aEWw4uCp0he1xujICQMlbhA/nwwebklnLhAtnTM1TNCwYuR
|
||||
TlCgn9as
|
||||
|
||||
Name: res/Ec.png
|
||||
SHA-384-Digest: NRTN+m2YL0AAAe4I1OAgbAYN1jHaiQoMsm3hPVknzkllbZS9strxDLAJ
|
||||
nyMJalYU
|
||||
|
||||
Name: res/8h.9.png
|
||||
SHA-384-Digest: qpQM/wg1kAHEHGhpCGKevLHVYky5qaoR9SrR0KiaXW/8a3hWq+7PoBMV
|
||||
UuPBXpf1
|
||||
|
||||
Name: res/1x.xml
|
||||
SHA-384-Digest: Pru/fmTQzrm47xLsmAnK7j2QSC/V/BKhDl5X7ig07n6G2ceunfNb0RvC
|
||||
zirIi5lX
|
||||
|
||||
Name: res/QK.png
|
||||
SHA-384-Digest: cW8WhhnuGPjD4Xig1nFRvqDxOgirvNbU2hSPDjEeR3G/CscLAlv+86Xh
|
||||
yRxmduA/
|
||||
|
||||
Name: res/eD.xml
|
||||
SHA-384-Digest: S8N9ilZSWZOw4JkuCDXS2CtBpP8m0Lb6BsxfxOV8svyDml/1vaStimA7
|
||||
0jpUTyY+
|
||||
|
||||
Name: res/DZ.xml
|
||||
SHA-384-Digest: 5vk6RZw4BQN+jPVFjVe84qTAnJjnqIg2lk226kq7Cz38PF2Q3JLxiXSm
|
||||
ey8qzXFN
|
||||
|
||||
Name: res/7C.9.png
|
||||
SHA-384-Digest: AJA0hcLEVfnJMp0WwwBJdSp7F0ruRZQ6zeNsCk8LVA3u3oOY7MTn+LfB
|
||||
nblRV/9X
|
||||
|
||||
Name: res/8K1.xml
|
||||
SHA-384-Digest: A2LLkgX4p51YFusHP/dQzZRy75bh42XnshmnhnLi1chFR3c0tZ4fCNYY
|
||||
zx0HasqP
|
||||
|
||||
Name: res/color/m3_tabs_icon_color_secondary.xml
|
||||
SHA-384-Digest: dSS0qj3cW14q6xL3CrWglE2XuR3LPiVZZ2rpSiCOYk0l6S5sNSDN6H6V
|
||||
SfIfezGB
|
||||
|
||||
Name: res/Mt.xml
|
||||
SHA-384-Digest: Bw8G7KXXXcwnjDDp7vcGzWPTiCn5/VVAMcKz7kEOe2Ya82JG3mSfQ55/
|
||||
rR9LBNHT
|
||||
|
||||
Name: res/D5.xml
|
||||
SHA-384-Digest: Qu/6Ebf9F3kujmLdgVCbHvskvpgvI004t7YZ2OkRJoVKj1elg0wIQMgK
|
||||
MQgBwsOQ
|
||||
|
||||
Name: lib/arm64-v8a/libavutil.so
|
||||
SHA-384-Digest: ZyvZvd0U09NznovolDkRCG2mcNdfYjVLJjmlz9EGBfdt/MvHm6FmhqWF
|
||||
X0NEabMG
|
||||
|
||||
Name: res/color/m3_chip_assist_text_color.xml
|
||||
SHA-384-Digest: MzamUoX7+e5LZpdeBX3xcZmWrJFgf01NqLtFMp2SV/CDjiMotvKUtvxP
|
||||
5BYF4aKg
|
||||
|
||||
Name: res/dv.png
|
||||
SHA-384-Digest: AJMiJ51DqzGMhI4mx10q490lJ2CmFIH7zVBSx8n0wwM3QdCZ+3TTL6mg
|
||||
ybubvaOC
|
||||
|
||||
Name: assets/shaders/fragment_shader_alpha_scale_es2.glsl
|
||||
SHA-384-Digest: 7hk6suC/CfRwjqRDpTaKLP8hJ7Bm/8YNjCNeKzUfmDpAsDPNU0GgFHvT
|
||||
BkOpzhj/
|
||||
|
||||
Name: res/fg.xml
|
||||
SHA-384-Digest: +Isir4Ts/wdvrWy+tKU7dobZky6r5RxOyQdz42yXmANc0A7pNeibMVzu
|
||||
HGkt9sRb
|
||||
|
||||
Name: res/kr.xml
|
||||
SHA-384-Digest: vR8+S6GMbHbMCu3BmwiTCdp7uDuQMIqQ+QUQhmeSDKKb2NQz7VFOr8u5
|
||||
5AN7ed92
|
||||
|
||||
Name: org/seamless/swing/logging/img/info.png
|
||||
SHA-384-Digest: 2iz8IhKVMAwBOGywx8UTXDIj5mgvxUALe3+ONLjr0K5eVZ5V/f65Og5Z
|
||||
19VBJnNB
|
||||
|
||||
Name: res/QZ.png
|
||||
SHA-384-Digest: 4UGx6bXNH2m/nlSB77M6Ird0fMYc70G9v3BpuCz3ylQCfQVCRLeKIKqj
|
||||
FWkVIZqn
|
||||
|
||||
Name: res/ZL.xml
|
||||
SHA-384-Digest: 1gEeX2THigamNCVIUvFGEfDJpGbcNcPblVUKnnBWOgGbEwWEpakYSYZa
|
||||
XmDv96qf
|
||||
|
||||
Name: res/iZ.xml
|
||||
SHA-384-Digest: 5Wjt+iCcSs+HBEbdgT6INggbfb95FMRbQY8JLinJTjFYB6Nqx+ejTVWD
|
||||
ASrGKfxT
|
||||
|
||||
Name: res/RM.xml
|
||||
SHA-384-Digest: xOGPgV0deTgmvR34nIVP4nqX+gHoHpX3g1csMY4wXAg2SBD7h2H9jtTt
|
||||
Wp6pcvXC
|
||||
|
||||
Name: res/w7.xml
|
||||
SHA-384-Digest: /3/ndqZ4FYSBLWjUGqKVmYO3lGvQIjQdbUlwFOBF9vuKOi/6XKUeE3J2
|
||||
ha3C1gvi
|
||||
|
||||
Name: res/aT.xml
|
||||
SHA-384-Digest: xX6hiFQVErXSd72zAyOFeZij55OstDLRxTDXf2jcApTuYp3PaY3X7gH+
|
||||
kkZRGbvd
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_ripple_color.xml
|
||||
SHA-384-Digest: lm3EwsJBw9jqnY3+g/3CPNg1JUBH1OTOjM6fJFQ0wVQAmiDiI6Vpfthe
|
||||
fZ4rDGwP
|
||||
|
||||
Name: res/nm.xml
|
||||
SHA-384-Digest: vVgqAO+YCCXMKxZffgSHbORVL5VfHBucazMn65YINLbuaNei7eG5JPR4
|
||||
Zfn4PbJD
|
||||
|
||||
Name: res/kJ.9.png
|
||||
SHA-384-Digest: 1Yq1PgfOaZIwDnSj7jNoglM3RcYP1H1oEiurtSkPuNaTncsfjB1VQByp
|
||||
LXEe7B/p
|
||||
|
||||
Name: lib/arm64-v8a/libxl_thunder_sdk.so
|
||||
SHA-384-Digest: hl0hFhQER+Rycfsb40+0UTM9vvAmrWk0WiEIKlEydQyJ4y6ejDnD/Wlj
|
||||
hEWUImdi
|
||||
|
||||
Name: res/color/m3_timepicker_clock_text_color.xml
|
||||
SHA-384-Digest: rJWyI1oJyQxyp+gR8SFHXKnC6n4nqWq+71ez9+wzmPDxH6tOBv32yGxo
|
||||
tBOKXPKg
|
||||
|
||||
Name: res/yO.xml
|
||||
SHA-384-Digest: T1PFozcJiT/2XZPzjL7DHUR2GgAQuchwt9BcpVa0cDlwtX026Xz4Nc/V
|
||||
4JIzvvw3
|
||||
|
||||
Name: res/9N.9.png
|
||||
SHA-384-Digest: dF3DOBMD41IgaZ6F5o9cV6cWn2aXAPV5wfywf7LcNX6YhXk1TkhvLABa
|
||||
ubMtgiUL
|
||||
|
||||
Name: res/Ha.xml
|
||||
SHA-384-Digest: gnXu4n0g/+/E37aWO1pn9C7OmPkKo87REj2QZ209ksY9LR1DAdvbWKTD
|
||||
n1Fvtco+
|
||||
|
||||
Name: res/s4.png
|
||||
SHA-384-Digest: T2X0yP9gITsDx+j1CL2gROKFamPCYLJILgi5Utx3DWn2s4hhkjzfYwu8
|
||||
qXRR3SLO
|
||||
|
||||
Name: res/uU.png
|
||||
SHA-384-Digest: 1UYiF0c8wCSvy6omkQ8LAqtFA9+thk2OQeR1EyWTCkGflDLTqIaA7nP8
|
||||
RLX+ewBD
|
||||
|
||||
Name: res/AI.xml
|
||||
SHA-384-Digest: NYO/dYndev+C/RlmiGgi6s0Sp+cVxAAOQbRc1Q5IGJb9wHn+OyjKzQMY
|
||||
jkMhztwm
|
||||
|
||||
Name: res/_p.png
|
||||
SHA-384-Digest: YsB1vhd/pelAJhSRz4Hg5fobx/Tn9TWr2npi3nnHB+ApX0XaN40sBlEi
|
||||
Tn48Wn3V
|
||||
|
||||
Name: res/aa.xml
|
||||
SHA-384-Digest: Jc1TxLKsyn5i2t+d2WgZgkKLKYLB1Js0/+Dv23iiP0DzFPLevtobCu4g
|
||||
7fomzofB
|
||||
|
||||
Name: res/Bd.xml
|
||||
SHA-384-Digest: QulHIkQUglTz4pdNeovEaaLGqmet3kHOU8dV63b03f/vnmmo2S4T0wtf
|
||||
Jf/Czm/o
|
||||
|
||||
Name: res/VO.png
|
||||
SHA-384-Digest: PHighKEEGnh4eR+8my3jpa8JxmLn+4KOwQQhmEr0vVubTwsm3h+iFkgH
|
||||
pszStuVK
|
||||
|
||||
Name: res/UF.xml
|
||||
SHA-384-Digest: xqm1+S85CIH0SYtx45ZPFMVLdrLnut25x2cOk3/ccgr8+5CLVXSrdjAD
|
||||
LR8WU+jM
|
||||
|
||||
Name: res/ln.png
|
||||
SHA-384-Digest: vdh8eKziwRyWOQ+a37Xe5xrMhRsI7PjVe0Fk1cUQTlRZDsu0BFf0XAR2
|
||||
0lv53imZ
|
||||
|
||||
Name: res/ti.xml
|
||||
SHA-384-Digest: 98PXSqXmWTXkaMvXkSBcNM2ulBFPF2VPoXCRoWpvH+ooSxQfWHbbrM/s
|
||||
PaxfJ2Q2
|
||||
|
||||
Name: res/uJ.xml
|
||||
SHA-384-Digest: 0g7DOKLgvrvy1LdI2c9sz7fV65BRuJs5mfdo5AFjV8i47sottA20EhNB
|
||||
oaLms7sN
|
||||
|
||||
Name: res/MF.9.png
|
||||
SHA-384-Digest: hhcvZfo4Z89OZzuGhkRSh2Z5SbNlO1oynoXtOlTgNODJ+dSxsBLt7y/y
|
||||
fMLWwhYD
|
||||
|
||||
Name: assets/dexopt/baseline.profm
|
||||
SHA-384-Digest: qD6Hu9f81hsDXFvB8fKfAtsjXn2/Y1NUrM/ug1F6cbXmN8v1W0VYDZLh
|
||||
8C5WpuBJ
|
||||
|
||||
Name: res/L_.xml
|
||||
SHA-384-Digest: LRhms+ng1wfhig0jlz4bVkMUm8TXjOTUSLX0XxaG3tA0baKv6352HKI1
|
||||
1RNo1SdL
|
||||
|
||||
Name: res/color/mtrl_choice_chip_text_color.xml
|
||||
SHA-384-Digest: V9ajQKFq0bq0HF7gUJx9fhJUBahA9ZUK137tqfYj7I47khQzlPXaXmOC
|
||||
gRycSrAl
|
||||
|
||||
Name: res/7N.xml
|
||||
SHA-384-Digest: Zsg5fdbunYUT7kuu3P4gbQI2kuMOee4htMxE7rOrihIj1I/UaqyE7AI9
|
||||
sLyXBf1m
|
||||
|
||||
Name: res/TV.xml
|
||||
SHA-384-Digest: lFNUy/RsgiHe+vdymzKz3nMLUsUnS8VBxXC1sMMeA6GNfv6W8E06Gr8L
|
||||
TLLkGjTE
|
||||
|
||||
Name: res/U7.xml
|
||||
SHA-384-Digest: PIQ2IFrn63YxxacPV/oke5n69DaSkQ0ukmNTfLE277L8EKhxvYiHkPYn
|
||||
zgmlumzr
|
||||
|
||||
Name: res/color/mtrl_btn_ripple_color.xml
|
||||
SHA-384-Digest: oF/nm6tdsOyygE65HkONxMKn/qimJUQBGJTN4EPFYfdCT8Kk0vdKspgv
|
||||
BqXgeLn8
|
||||
|
||||
Name: res/sS.xml
|
||||
SHA-384-Digest: BBah3KG+UDpPdETmCcpWLEa/Z/qFqXPY0IP6/zAJwq5kJKmuQcIPCz2o
|
||||
Lmj0kUSf
|
||||
|
||||
Name: res/uO.xml
|
||||
SHA-384-Digest: /HNbBdIu/OcgPaBg4kh9xKzK9wNK6KW4IjVEgN6lEzHq5YVnaWVIEhRv
|
||||
yxOh6Kom
|
||||
|
||||
Name: res/yS.png
|
||||
SHA-384-Digest: AMbwox1IT70FrlBjfTEWwBHMLgdmL/1aNcbqBRLVJRr7p9cvhisKUKxP
|
||||
Q5RiuBs4
|
||||
|
||||
Name: res/271.xml
|
||||
SHA-384-Digest: DEa+qXk4rmD8OtM/TZ7H+DfFYBRdCSQENiyOhmKFoAtz1gO5LNhcvmL5
|
||||
68g0Ob22
|
||||
|
||||
Name: res/GD.xml
|
||||
SHA-384-Digest: usPdgpTP6CmtKwjF2OQ6EmPxxm7EDdhH6oE7XNribeJMhTNsyuPRy7MY
|
||||
KFmMOwy5
|
||||
|
||||
Name: res/2f.xml
|
||||
SHA-384-Digest: oj2cTk3F4addP8BuUyvdXoC57UvTqzKEqSW4MN6WFcuwf2rmSsPVEdK4
|
||||
yyFfmddT
|
||||
|
||||
Name: res/zn.png
|
||||
SHA-384-Digest: aUYrbXuyRzf0i053TP+p1u1cfhLOoNnEISljCtR5enXGMXtwAu0k+V4+
|
||||
ig9EPLWU
|
||||
|
||||
Name: META-INF/androidx.appcompat_appcompat-resources.version
|
||||
SHA-384-Digest: OJdKqS7BPvMDv6kg86pDe2iIdWwRyndLoE905Go0NVlmkCVwueaF6s8F
|
||||
ScPMFpv3
|
||||
|
||||
Name: res/color/material_personalized_primary_inverse_text_disable_only.
|
||||
xml
|
||||
SHA-384-Digest: yyO9Q91DyiZRVbz40krRnbZUpG42a2Wb60DZnLje8TLgOLEgmrt9PKPW
|
||||
l6Kyombl
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_fr.properties
|
||||
SHA-384-Digest: EeLPboQ+1AoD1r7LYmcoUejNrSFv6ZenOlLA0gnkw8LBt/6mI48ue8sx
|
||||
mzdnnGfq
|
||||
|
||||
Name: res/color/m3_icon_button_icon_color_selector.xml
|
||||
SHA-384-Digest: 1bSxdLHe4o022jUV02QxZLgSBK8LzgcgdfkZa0ZCVPVVNJAFcx+yeqMw
|
||||
vJFnXmJ4
|
||||
|
||||
Name: res/JT.xml
|
||||
SHA-384-Digest: wqHI24BmsrAr4W0Rywyik0xx/RxeArZ/o/B4DWByEw9GPqlLhQBlXAJ+
|
||||
lwUfjMun
|
||||
|
||||
Name: res/K5.xml
|
||||
SHA-384-Digest: IYLMcbEYIrlfIK/t1h1At598TcbLTaf1a/436I5vgrXfUaCBe8qrNc4l
|
||||
rip6mdcf
|
||||
|
||||
Name: META-INF/version-control-info.textproto
|
||||
SHA-384-Digest: 8BGGu05iYQawPwReB6cgR80rn0SsXmLFoiAbTxjCNXqRu3VEtPr/9c/x
|
||||
spX4ieUG
|
||||
|
||||
Name: res/7s.xml
|
||||
SHA-384-Digest: gGqIL+TWb2rUGvVi2SxxCAqnoJ0YX42k0cdGCUrkdN3hJ4tIsPVPYs5+
|
||||
XfwPTZep
|
||||
|
||||
Name: res/IX.9.png
|
||||
SHA-384-Digest: BU1xjQwqtHeUQIe9Wdo6k5lYh0EjhckBmz530dPfQlSJKkjq/VyP30xg
|
||||
WWGhdsGz
|
||||
|
||||
Name: res/color/m3_efab_ripple_color_selector.xml
|
||||
SHA-384-Digest: kZ9G++ybPkQFCDP8F/WO17vI8wU3tt8HSTYrQZ1C8JpSo25YYDsaA0+W
|
||||
XV9ytY8b
|
||||
|
||||
Name: res/ha.xml
|
||||
SHA-384-Digest: xjwVjOQd2ksc8hoo4qAwp7XQyTQqmAPrSCsgZgMbM8hqQ/1/BzLBBU0w
|
||||
dye47D7d
|
||||
|
||||
Name: res/MD.png
|
||||
SHA-384-Digest: a4v823Cast7TPrKJhcK2tl8xIm5x9H9vIUcMy7HcsbPWZZ6h/7OjNF7t
|
||||
eyIoJ7tK
|
||||
|
||||
Name: res/LA.png
|
||||
SHA-384-Digest: lxqCvKBjtUnfalnmb8+Yq64lJ5eaWnepBpznDdqj0Kc7jYq/TT7KKL9T
|
||||
NipHBCVD
|
||||
|
||||
Name: res/gM.xml
|
||||
SHA-384-Digest: a7TG8YT998crIDMlqpx438qm0DT1eULBcDpvirEAw59yJSOUI2yb4AeQ
|
||||
0Xi7OdYP
|
||||
|
||||
Name: res/Ap.xml
|
||||
SHA-384-Digest: J6gUIRhBMqQ+pM/9zRm+xiQCcK6WnULJDRJnej5t2tCTunqTRlUho4Ii
|
||||
QuxrisID
|
||||
|
||||
Name: javax/servlet/LocalStrings_ja.properties
|
||||
SHA-384-Digest: ldPOPoZW5jwIhF+AuIGd8oDzz/6DFBGUKm37f+bLyd58PfMu8Kg23xIP
|
||||
+9XSfCId
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_en.properties
|
||||
SHA-384-Digest: cdnmdGqgjmEgQpRH7E2k0sB+UYKPY4Gtt3fO+Aja3Le6gQQEX1ujXC5Y
|
||||
il3op8sX
|
||||
|
||||
Name: res/1v.xml
|
||||
SHA-384-Digest: WgmAikX2LxhHIiJRdUcDgT8Gz8b/5ehfDyhJYvz+bQwRnMGqmdM946hE
|
||||
CRnkQier
|
||||
|
||||
Name: res/FT.xml
|
||||
SHA-384-Digest: bB0EwZaxCR55heU3xJ+oHHZMbf3GY0IIhsYhCiTS3icAgNpe74GYBrZC
|
||||
j9bqlVfQ
|
||||
|
||||
Name: META-INF/androidx.appcompat_appcompat.version
|
||||
SHA-384-Digest: kAeVEStR/hlSCxBeSIj8tg6KO5B6H2ciuyj/wYR9+2vK7KfRYlxbTPvg
|
||||
+NI45wJ9
|
||||
|
||||
Name: res/OM.xml
|
||||
SHA-384-Digest: G5QhNGMLKoLHDCktlDUOZ8vl6isZWMXYQXulFur4QjZU4Jq6LyAwAM3y
|
||||
GEquz9Kl
|
||||
|
||||
Name: res/color/m3_navigation_bar_ripple_color_selector.xml
|
||||
SHA-384-Digest: 8uLD0TJySMfJWUXyB6Z7LlZc7f5wNO3DULqPr0Ts3KABbzKzTBmo/xr0
|
||||
8gJe6rkg
|
||||
|
||||
Name: res/Ro.xml
|
||||
SHA-384-Digest: YDOD3u5VYMEx0ZhsL6fSWIQRAmw2Wa2rm3WLEmth9kQVGLalGyv5Jukk
|
||||
59dRWW3a
|
||||
|
||||
Name: res/color/abc_primary_text_material_dark.xml
|
||||
SHA-384-Digest: eox6hNOdHqEnMFmI+vrvoYfc89FtHyRptzu9PrtclELJoWJ+pPC4ZOGR
|
||||
FYgReGt5
|
||||
|
||||
Name: res/Vv.png
|
||||
SHA-384-Digest: 2tTsPlvPCvusU3oTN8sFCUq5qHpeHsIqc+SnaUwYKnV/PrH6jiasAWB5
|
||||
F1FNBv95
|
||||
|
||||
Name: META-INF/nanohttpd/default-mimetypes.properties
|
||||
SHA-384-Digest: 4gHl/iwjjc3Lr5hOpPr/Lc6luYV9cwnnLwbCt1QOI0SJqkb/QnbXAOSo
|
||||
G0ghhheF
|
||||
|
||||
Name: res/vT.xml
|
||||
SHA-384-Digest: n823EEjy8z4oJ2nPKYfriMYwlmcEfRwORPjBIqMkDPyehzSxEf4S5fEX
|
||||
xNxaoggK
|
||||
|
||||
Name: res/Yt.9.png
|
||||
SHA-384-Digest: c6DDAvYGRUAqbaD3GisSQiSTuhsRyuWcCMQAA7kVCzhvPpv+bSO7dq7C
|
||||
mu48wDfX
|
||||
|
||||
Name: res/color-v31/m3_dynamic_default_color_primary_text.xml
|
||||
SHA-384-Digest: JA/qTwNlDgJBICXe73GsLlm6bOiSeDfjFZ8ZW8y9ekfOkHOIAo2jonWg
|
||||
9Asaxk9W
|
||||
|
||||
Name: res/color-v31/m3_dynamic_primary_text_disable_only.xml
|
||||
SHA-384-Digest: BE7E/tTYXXshSDVgX8mNwpRNoAGKqzfXD1suTho5JppJFUxP5sBSEBuF
|
||||
ONW/0tNL
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/ContextHandlerCollection-mbea
|
||||
n.properties
|
||||
SHA-384-Digest: 9zCcSmWDnDwXsCSZNjvdp+WDmXB/3hy7lngaqD/JIxxHelsQN0d9D0fL
|
||||
rB7cX3DM
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/upnp-cds-
|
||||
1.0.xsd
|
||||
SHA-384-Digest: kTgDYvz2lTwrxTIzRwSozH3bkWKPBHYkv/E9BprEvUz50Uz35UDIh4MA
|
||||
WZVYriVH
|
||||
|
||||
Name: res/dt.xml
|
||||
SHA-384-Digest: kBn6WPeVXuFtmRxcjyXTCNhjMJuLw/Beo9ijYwOxq+3g0AAconJZQeky
|
||||
KinrSIZ/
|
||||
|
||||
Name: res/f6.xml
|
||||
SHA-384-Digest: tqMCWPsj4Am/3wgUzMSspZ/Cu/CDMfzkV+9LQXTa93VYH7ZRl3Xp/DAE
|
||||
LiFxRula
|
||||
|
||||
Name: res/DG1.xml
|
||||
SHA-384-Digest: E56ySTGoIObm0PgTyfaVC52ti/dGLpb2yWGz7cg+dVVB7ZiuPYGQcWY3
|
||||
y7JzV8OM
|
||||
|
||||
Name: res/v4.9.png
|
||||
SHA-384-Digest: S1xOWZG/PBejufz7COaUpPJ3yGSfYkU3KtoHCiYPpf014JmphyEivR49
|
||||
wNCU8PV4
|
||||
|
||||
Name: res/j9.xml
|
||||
SHA-384-Digest: hAWfboxeI3prFYkXi2LDck8SQqu1fMPZLLRqFjxCZnWUL6Xxwxe9klAp
|
||||
HtUDbplX
|
||||
|
||||
Name: res/hR.xml
|
||||
SHA-384-Digest: AuXrT1SE6PVBWEVfWeqyz1BktVmUcyzPIn8zqp0ltxYrEnGPodbV+71a
|
||||
lc6dwJ6T
|
||||
|
||||
Name: res/X3.9.png
|
||||
SHA-384-Digest: WvaqHpN2Bnb0xp3MFKdIdJI2ZipXg3roGP7coIkB+XrkEdOAdyJU8CeH
|
||||
QWOe9NAg
|
||||
|
||||
Name: res/yQ.xml
|
||||
SHA-384-Digest: ebO9zr3IR36wMMFlteXamhYOH3FdtmUbib61Vxa3YLV/NJXi6nf7pEGM
|
||||
AMD4k02v
|
||||
|
||||
Name: org/fourthline/cling/support/avtransport/metadata-1.0-avt.xsd
|
||||
SHA-384-Digest: bGfABkBPwkZ8D41yi2V8QnPAcULZ097m5hMlbDETwHVV0MZ/1LPpoR9/
|
||||
eQ02DP1Y
|
||||
|
||||
Name: res/color-v23/abc_tint_default.xml
|
||||
SHA-384-Digest: 2n2HOLN/UCDLk/4wfgKNdJd2/DiOgNM7Jm6pPcgcwQL3o7Rg4cvsMWyV
|
||||
D0u6QXsx
|
||||
|
||||
Name: res/dO.xml
|
||||
SHA-384-Digest: AAz4MTFvE4SMWxIaV2aTm9U5CBGXnG3JqYhQCC7NSY3sDEYga55IiS9F
|
||||
rI7hNCjl
|
||||
|
||||
Name: res/e0.xml
|
||||
SHA-384-Digest: ROSebSjhRGNfCIm6y4EdgxYQCLnbl3FJlAigpOcdE1Lonv9wdyFiueQ+
|
||||
vp/3KzmG
|
||||
|
||||
Name: res/E5.ogg
|
||||
SHA-384-Digest: CXzByAtuwXNwesTZSSC9tHO2B983WpGzlu4Kq+OqEV4ZwRPccGm2JYx/
|
||||
ycrw4WO7
|
||||
|
||||
Name: res/tI.xml
|
||||
SHA-384-Digest: 1V6QpVRKttjD0w3ORjaMXq8iauxGAT9zTro1ji6BPqHhYyHifouXW+Qf
|
||||
YczWyuHd
|
||||
|
||||
Name: assets/images/ic_push.svg
|
||||
SHA-384-Digest: 956E0YnoN/UhIzgAMIj39oB1wWY+yMkX47sMQ9q/5id5CtoI7kVRwdMf
|
||||
ohAAPrwH
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_es.properties
|
||||
SHA-384-Digest: pDXy6tM1dLDm/4diyYtl/mbl/7JQNZhfmMxvBgKfrc8qArByZkQbQt5T
|
||||
mYUmcKgg
|
||||
|
||||
Name: res/y-.xml
|
||||
SHA-384-Digest: tk8VStD3XV0PAOmRNdlgKMsN9UVjct05SHiI+j0dN8/zapcauM9n43o1
|
||||
gsT/4Pg0
|
||||
|
||||
Name: res/Zu.xml
|
||||
SHA-384-Digest: fSCBWD1OvLX2l5i8cEn3kq6EhB1EGIIKR7mWdxreub9awV6mmy2+QyDN
|
||||
EPfXAfnO
|
||||
|
||||
Name: res/1R.xml
|
||||
SHA-384-Digest: BRv/2LFCbDWXBmIPIsmgpshgNZdfBmwJYj9JXRm6RippDLPSwLYBlFVZ
|
||||
15a36gz2
|
||||
|
||||
Name: res/color/material_personalized_hint_foreground.xml
|
||||
SHA-384-Digest: mi8LUXnGIbpdAeF83QgV40ekbIoY2dofKTOuqd/Tiz6w7ayDveqPdonB
|
||||
QYDsbms0
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletHolder-mbean.properties
|
||||
SHA-384-Digest: 5x/1ar+n5q1XAbNHOn8LlMurA1DiTuOQZf+WhBmfA5N4FB/XQZj/ecpa
|
||||
glnSFEM6
|
||||
|
||||
Name: res/NH.xml
|
||||
SHA-384-Digest: +4VXJe5WVGJDIxkcuExdyiuLtt1p/WDfHhQ64U4ZWuroL7qKnl3L6ad8
|
||||
/pdm5n/u
|
||||
|
||||
Name: res/color/m3_timepicker_secondary_text_button_ripple_color.xml
|
||||
SHA-384-Digest: sHF+aMBDCwro4Q2nnBdkt779E9wmeefmp/SFb5z/3Tqk2nexRdXJ2JJd
|
||||
Kz//FYtG
|
||||
|
||||
Name: res/Id.xml
|
||||
SHA-384-Digest: VIYJAgRXDNlZRs/F+/6S4oYKY/vW8cAqxlIb60N9usunqypEsWFd8o4n
|
||||
TF72Zzzy
|
||||
|
||||
Name: res/_G.xml
|
||||
SHA-384-Digest: ZgK22yB6xbSDEZFvSepqq1yh7Nn6xdwP9zCcnGZ4oVJM/8BDHPd/cmuL
|
||||
8IE6lW60
|
||||
|
||||
Name: res/oe.xml
|
||||
SHA-384-Digest: nMftZv7ybY0LATGQj62DJl5USk2GAVt59nuAOCAARWWXXvFu0uxhMYAp
|
||||
Q3xGl1/o
|
||||
|
||||
Name: res/pF.xml
|
||||
SHA-384-Digest: ijytAkmxTNCVTfPe7LSBX6fpyxUVbLwrKQSCZtK+Dc62s4CK7bEg5D3U
|
||||
o/NRaWwk
|
||||
|
||||
Name: res/Zc.xml
|
||||
SHA-384-Digest: dJZJ5Of3LgANMmKmuBNe5zpzdFiddTdoF4j6L7O19cYS+VEcyirs5zxH
|
||||
U05Zvjn0
|
||||
|
||||
Name: res/bV.xml
|
||||
SHA-384-Digest: ffvKKHyBwY9cA1EBvcjIJq2jvH2tEe6NdUavxFOHIon8nlsgqYVEp6pd
|
||||
0R/X8G6r
|
||||
|
||||
Name: res/CK.9.png
|
||||
SHA-384-Digest: Ddxrc+DRv65I1IJo3eZNA9N7l/kSkriVgMET0n/Vo2saT2q2eUnHkpGI
|
||||
LjXO2o5B
|
||||
|
||||
Name: res/KM.png
|
||||
SHA-384-Digest: jsz28lJFi0YLCCnkeBC3LL/mbRWWtYOJtaMa9wX35iUo/Dzs9wIiYSSC
|
||||
IZsojq5k
|
||||
|
||||
Name: res/3a.png
|
||||
SHA-384-Digest: 9OvixzYh0jUCkkjpGCd2PdU6z+EoAinhAs49Ryt0+6PEhOQ2AZ2bgq4M
|
||||
HNeDOOaE
|
||||
|
||||
Name: res/kS.png
|
||||
SHA-384-Digest: njdTYNcGfjv8yBv89aupB2Si8U86NlCE2+lCFWr2zFEwTWv6Wtg32nex
|
||||
+UgWkMZ6
|
||||
|
||||
Name: res/7R.png
|
||||
SHA-384-Digest: NamsrZ5G/58ofFDWlMm+ZCXGaJNHmPiDmC6fi8iIlh1V/rHN75Vh8y0w
|
||||
ZUWkVJCB
|
||||
|
||||
Name: META-INF/androidx.cursoradapter_cursoradapter.version
|
||||
SHA-384-Digest: iwEbL14KRTjjGGSDLpcoAQLYeIY7pP5kGYGf0Udn+Kf4tShyz+RN1Wm+
|
||||
YvDKq8jD
|
||||
|
||||
Name: res/t6.xml
|
||||
SHA-384-Digest: HT2W/formBf/E7fHypvmsOFUUFWMPPh52r9qoorKNyzAQZrjF6npoOMF
|
||||
/2ZsXHE4
|
||||
|
||||
Name: res/HQ.png
|
||||
SHA-384-Digest: 1xhlGiog30L9vr7Q3tCZg37wqjfRTBj+5MONRhzZ7EIAxbuotLcvclG/
|
||||
uN+mryMs
|
||||
|
||||
Name: res/jn.xml
|
||||
SHA-384-Digest: kEGvDwW79oD+EsFc/I296fSS2ygDy5i72P9tiU4BTf647wocL766Uho3
|
||||
XjpNCMGg
|
||||
|
||||
Name: res/VM.xml
|
||||
SHA-384-Digest: WimHL3t5ShkUGDlszcg6B9RsWemepqyaEAC5EhUXLQi/EbfrT4WdpXyn
|
||||
LZwdUD9V
|
||||
|
||||
Name: res/ZP.xml
|
||||
SHA-384-Digest: 7LQ8bcqEztRPU7g3oK7TMCEVJr4pVjdhky6QtRb78tZamTGCcpJpb92f
|
||||
vcfZjfIn
|
||||
|
||||
Name: res/IQ.xml
|
||||
SHA-384-Digest: vxuDeBHkVfMuiRMhztgaTiYw9jHnXGPiw4zIYrwCn82dr/lqiYGkLRML
|
||||
qwnjcbiq
|
||||
|
||||
Name: res/Wh.png
|
||||
SHA-384-Digest: Z5rIEDCCGzcRoeTNuHTWWUjRIejbsTi9Eo79vqtCF+RkpfIQMiGWxJnU
|
||||
WOzPy1Ur
|
||||
|
||||
Name: res/color/m3_tabs_icon_color.xml
|
||||
SHA-384-Digest: S6QzIrEVdABYH8PCDoGSqUFPdUXBc50650ggFxnRw8eiPFmsKbFz6F06
|
||||
Id7CJcEl
|
||||
|
||||
Name: res/wX.xml
|
||||
SHA-384-Digest: tG8A5UzkOZ9n/2O0TJiHJZcGzxDzJCa2TcATkr4m/5mn/uA2QsZeX5nC
|
||||
ZGKZ5728
|
||||
|
||||
Name: META-INF/androidx.fragment_fragment.version
|
||||
SHA-384-Digest: WaypCM+yE0/1Lb+EMCSkzaNk57favewOEwmzffOQoEvRXfArrgTV79aQ
|
||||
8FdxRAee
|
||||
|
||||
Name: res/0c.png
|
||||
SHA-384-Digest: HUzNT619ucHhlP+lzbNxxWWQ0ZTizT7kfCoTny4Mo9n63rq2QDh1Am8R
|
||||
oabzJHQB
|
||||
|
||||
Name: res/UH.xml
|
||||
SHA-384-Digest: Ms4XJ0ploThzV9AY03Px9yxMBd4mQ47D6QV4CNHbi0QgKKtrORJpqCSj
|
||||
XfzqPCmH
|
||||
|
||||
Name: res/Pd.xml
|
||||
SHA-384-Digest: 2JQdwJ9CfsSc6nZCc9xbjV3Xvg8KOhZYBCKOqR6gQOdkQESqkYHCUDE+
|
||||
ibt+UqWZ
|
||||
|
||||
Name: res/PQ.xml
|
||||
SHA-384-Digest: S1r5g93s5Tw4dXq7pcG/4XnzDvDmOi868kqZKW01RzRNU43TmwOW31gC
|
||||
UnkLtH21
|
||||
|
||||
Name: res/Gj.xml
|
||||
SHA-384-Digest: NoH2AGgnlgs60cZpd5A7VL4AiqLR11kXwgQWOQSW5ZSjo1BOMZKM8cUX
|
||||
A6j/NVYJ
|
||||
|
||||
Name: res/hc.xml
|
||||
SHA-384-Digest: sj6CBD0OZ4A8/Gl0Paz3yFMycve2D6ERIS7FhshHRDN/Yt4vxhz4+Xzc
|
||||
qqiX4AVp
|
||||
|
||||
Name: res/iD.xml
|
||||
SHA-384-Digest: OMbiyTOd/SxON8IVpjWoK1xMWUfFuM9uXjjYTBliybT0lq6DdMBthvm3
|
||||
wrRO9Gju
|
||||
|
||||
Name: META-INF/androidx.sqlite_sqlite-framework.version
|
||||
SHA-384-Digest: 6IDSDC1vT4Ya5La7JtumIJqHtTGPA5F9/XHq5plrXZWR1V4XSJQwJJj2
|
||||
EiGhrl42
|
||||
|
||||
Name: res/TB.xml
|
||||
SHA-384-Digest: 3pbZnUcuOIEuh0xTm5ehooDVajdrvYqIXU20TmHQDZqQBBoniStswmZL
|
||||
RSwQQYS5
|
||||
|
||||
Name: javax/servlet/http/LocalStrings.properties
|
||||
SHA-384-Digest: OxW36VtLaudlgmgQzRrDaSqud0gf9Im7DN61MynEuzxj8rD4PWGEi7TG
|
||||
Mxu7gCz/
|
||||
|
||||
Name: res/C6.png
|
||||
SHA-384-Digest: 1zMQeWRqm7kbVz4Plfzbmik+MoJl6kgHIMkrZbjOhBD+oTIgv0H3VZcf
|
||||
ltExU26R
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral4.xml
|
||||
SHA-384-Digest: DwEsuxTKLU6j9FDv7/z2aXCTV+hkhtVzPwXHxefroY8RJ4nCb2ude9fb
|
||||
vqtTt91Q
|
||||
|
||||
Name: res/mG.xml
|
||||
SHA-384-Digest: 0I9XlNIH2gWJqIaAfdZX1n09KWn3mEkqABohcaGomkWcI2QtidOpwXXy
|
||||
B7QhlaXC
|
||||
|
||||
Name: res/GF.xml
|
||||
SHA-384-Digest: Mf9AdZzw7FI1nJAK8YKck+stePQ0FsvVcQDA61GL7Y4n3TNndWHhXIo8
|
||||
AiRf0FQ0
|
||||
|
||||
Name: res/5T.xml
|
||||
SHA-384-Digest: 5POTljojGKsj/0k0xCt5qziElBDcwLMeGQ/bZ6ZNBV0th29wjTMdZKhy
|
||||
V74yeHZE
|
||||
|
||||
Name: res/JT1.xml
|
||||
SHA-384-Digest: Jfgai8ZTqgy6TFVA642Grq0iTa9nJypicRGJl0a6ZEyZzQL2nyMgq1EE
|
||||
8tovTs+i
|
||||
|
||||
Name: res/K51.xml
|
||||
SHA-384-Digest: JG3DUO7Kt3zo9DuDGVC365SscNLDZ2O0uynCPFd6j50coVZNqX1pTVJK
|
||||
eyelECqG
|
||||
|
||||
Name: assets/test_base_module2.mjs
|
||||
SHA-384-Digest: TPBfnFeHeut9Gr6DuVkG9rf/0I8H4G9OG9rVnraL5X9PutmKlFrP2IJ+
|
||||
2R7o4SJr
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_item_tint.xml
|
||||
SHA-384-Digest: vPPCSuEglGsc7tikrWOZFZ8y0K1D5I5yWgu6f69gC+rQObQM2aI1GRsx
|
||||
18FMejWc
|
||||
|
||||
Name: res/RI.xml
|
||||
SHA-384-Digest: LhlZawi2x9MiED2Eabg02315gsZMWSQtD1AOvOsLT7vZ9xbPX1b38QLk
|
||||
ZXc0CgR6
|
||||
|
||||
Name: assets/js/jquery.min.js
|
||||
SHA-384-Digest: HPjBztVW0JXRtVcaiYJnhiydSEza3czwe0ZsznS6GSvqHJx7LUHCpXsq
|
||||
i/YacynG
|
||||
|
||||
Name: res/aW.xml
|
||||
SHA-384-Digest: Gy9iSmufS1vSUCjW3cZVkCgQUwBOSn71sOp2pHe4T1Vc7miPYWpVPZ2r
|
||||
bFuHJYAe
|
||||
|
||||
Name: res/wx.png
|
||||
SHA-384-Digest: ub5qu0BaWbXRFvNYhmX0aPJWTHSZYdP4fA1qTCEHsiNvQRhn6GOE4sO+
|
||||
ZB717gWL
|
||||
|
||||
Name: res/21.xml
|
||||
SHA-384-Digest: 3Qu0jrxgtr6qnA87w1YR7TbIhFuY6/sk8KVxlAZF82+GzBrzPVp4bqk6
|
||||
wGhnEIfn
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version
|
||||
SHA-384-Digest: bFAhyh9d3V1d0FXWgCKZvHdVZN7em8znzQq2nqmY81U5FbJflNIuw4fS
|
||||
Wo85aqvI
|
||||
|
||||
Name: kotlin/reflect/reflect.kotlin_builtins
|
||||
SHA-384-Digest: gHv4UYWuNoxyS3oQXI6iRtEN7p8OEhziLIWy/KaBiiFld5NGBLWkoTxf
|
||||
5gvvieZ0
|
||||
|
||||
Name: res/rH.png
|
||||
SHA-384-Digest: GhI5GTelH0bsUxoz4vEoRFeV8zqEzrfkMQOS1L6Afo2TMw9nn7HFjngB
|
||||
EmeSALs8
|
||||
|
||||
Name: okhttp3/internal/publicsuffix/NOTICE
|
||||
SHA-384-Digest: E2IcMHFXtxCg6EaUkh/2/MIvgHaPppEDXt5W/wmFfBoQ2+UkKOF62Oi1
|
||||
r5mDC+NI
|
||||
|
||||
Name: res/color/mtrl_btn_text_btn_bg_color_selector.xml
|
||||
SHA-384-Digest: XgBP0M3I5ArmybDFI4nzvBegpOa69VP9VmO2VEU+q6B0o34BehpXx+Kv
|
||||
6anh5Q2i
|
||||
|
||||
Name: res/4N.png
|
||||
SHA-384-Digest: Nen8rucT+wT9qEQJEsSb24mt6X7iBE96niN+Q20FU65bgXl9MpupwM4/
|
||||
ef/4cNk9
|
||||
|
||||
Name: res/xd.xml
|
||||
SHA-384-Digest: v+fj5MexJd7Yktmmr9TSKxT1Kr0+LIEmmr5xYNBZk0yzf743eoKbukpY
|
||||
l/1kytG2
|
||||
|
||||
Name: res/hu.xml
|
||||
SHA-384-Digest: iRF2EYIFIFU3UCsN50SbueM5Tp3CQAy+mqOCa8lswlIDn4bldyfPiZWk
|
||||
sgJWvxyZ
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant98.xml
|
||||
SHA-384-Digest: tPn0QsldesaIz3f0ENQO2pfUyikqSQgSggKwya7HG87SMhODkstOcf7t
|
||||
vOjzTvx9
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/HandlerWrapper-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: ziIMndzJMWCjUWEaQacoDnbHjV/Y4hk/80m3v2G9OIMDO/3vYLEomFG5
|
||||
Gpggc6fy
|
||||
|
||||
Name: META-INF/nanohttpd/mimetypes.properties
|
||||
SHA-384-Digest: oytHJyDvafvInI1qt8z/2ps1P5EgDihBK8PrqDYVO1DZIs43fK+WhSZc
|
||||
qEnvhqOV
|
||||
|
||||
Name: res/oN.png
|
||||
SHA-384-Digest: nltuuuKF+gscYuWUsmMJgOu6hddDxvm5GZhH52PYladwXzLVpyKTJWwM
|
||||
/9IsmZN3
|
||||
|
||||
Name: res/Ix.xml
|
||||
SHA-384-Digest: GthjlHbSlUPlenRvioR2OPo1ysY5EyJYV00kkWmqVi+3PM/WLiws+0YX
|
||||
KLc2MtV7
|
||||
|
||||
Name: res/color/mtrl_btn_bg_color_selector.xml
|
||||
SHA-384-Digest: /AzX7wlEQGjinFVOeZJxErvV5TnPHLygMxQ6HJ/s5yew08aokP9XWzFs
|
||||
ZkQYtj9k
|
||||
|
||||
Name: res/0G.png
|
||||
SHA-384-Digest: iMIrO9A1aduR/kLkPBnOglmhVn9WYIisz4ype6dqWjrAx2VsH78RNTJT
|
||||
Ds/JxWoB
|
||||
|
||||
Name: res/color/m3_navigation_bar_item_with_indicator_icon_tint.xml
|
||||
SHA-384-Digest: nGCX8F2NCgOsWuXeFy+WGvw9z1XPtQ0Hh+sIXRwdWtZhvAQO8LC8nnbY
|
||||
yzuQKS46
|
||||
|
||||
Name: res/c6.xml
|
||||
SHA-384-Digest: DYo25oURnmxdolIgUywysb8/Xb1fjDDAz5NsjK4tDp8eOCLdTlwdFIUb
|
||||
L9HtrgVB
|
||||
|
||||
Name: res/color/m3_hint_foreground.xml
|
||||
SHA-384-Digest: odaQx7ihuQhmseYmzZz12NjiiVlc4wD2LsHhT1k0EXSxsmRMrgxQm4fV
|
||||
OCZAcQWC
|
||||
|
||||
Name: res/dQ.xml
|
||||
SHA-384-Digest: UR1ZwTHm0AEHmuMNjfk1lyXO2NYLZj00lqBz7JXRL2UWg7fNjGXS7One
|
||||
HQIBiZ1t
|
||||
|
||||
Name: res/MH.png
|
||||
SHA-384-Digest: vGdzcYlOhjDqTv1Yuso72u3JQA/xGJhzz675bR8qaxWymzCJbHluvigR
|
||||
6PkBqR+8
|
||||
|
||||
Name: resources.arsc
|
||||
SHA-384-Digest: tyC1sRThyB6d/GSSxOQ2LnU/RrAat+0JZRmS8IeoIaoRGT9+X6/EzH+4
|
||||
MbZ1UtEH
|
||||
|
||||
Name: res/color/m3_selection_control_ripple_color_selector.xml
|
||||
SHA-384-Digest: JYFmYxtHEQnfmx6Pd6hVA24uKPBNdX8mUqR1UQTizpKd0nMC8U1iGrW8
|
||||
BrbpXA6p
|
||||
|
||||
Name: res/QZ.xml
|
||||
SHA-384-Digest: Bi8eTgF7LaTRqdpdt/kCzKlxZzzMHdqSXNiXLPUL7UILzDu2WtzCNrvc
|
||||
ERDM6tUn
|
||||
|
||||
Name: res/u3.png
|
||||
SHA-384-Digest: Ni5BMUKFdqjLbYatiZDPKP5u0co2w5R5fVVdKfNcbP6YFclU8FRvjeFP
|
||||
E/5UjILF
|
||||
|
||||
Name: res/color/abc_tint_spinner.xml
|
||||
SHA-384-Digest: eAg4pl09lgDPpJCCBlaE65lv8XaTgXsgdinWtmaMSDm/4QYy2evleEaY
|
||||
ZZPxan4l
|
||||
|
||||
Name: res/SY.png
|
||||
SHA-384-Digest: OMwQtZEHsTdjD4taciTPFrsz45rr8CiUh4EZxFFnSeL1Kh2hGzmyQ4f6
|
||||
YRS7K5Ls
|
||||
|
||||
Name: res/96.png
|
||||
SHA-384-Digest: O3JYNMBWEXrM5x26qN+I6jkrDy6DcFLndD9r4OHR83EVSlPl5qVqPCt3
|
||||
kit8vQkj
|
||||
|
||||
Name: res/DG.xml
|
||||
SHA-384-Digest: Kx8M4Vc1tf5d8+rmems1FunfCCvf//6rzK73BcduB/ww9743GnhcprfT
|
||||
cBtwVMHT
|
||||
|
||||
Name: res/V3.xml
|
||||
SHA-384-Digest: atyAo03JilNgUOosMMvYm/qO7AprKtuH02ezuG1E3+fqPWk/HcRTyaRs
|
||||
JsQBWUuA
|
||||
|
||||
Name: res/U-.9.png
|
||||
SHA-384-Digest: 2qoazX7Mc37+3d6CY+zy9pCncnoEBU/6Dhrl9TPiycsiwxr/Bu1qyWrJ
|
||||
NlKQX+bg
|
||||
|
||||
Name: res/Gc.png
|
||||
SHA-384-Digest: /dQdbuKUp5GdfOZ8LnvMwupW8dTt7w0LVjDAVJ1jYZ1VC6jIqeCPDFps
|
||||
7UJ9lU+S
|
||||
|
||||
Name: res/6X.png
|
||||
SHA-384-Digest: zYNiojAB0QzsxIjyii/e3aFEtDY2BWwjPfl1JHOI9PkL49tdsER6Uiaz
|
||||
Hf3953QD
|
||||
|
||||
Name: res/DL.9.png
|
||||
SHA-384-Digest: dHAA36PO+M7bwUmf0Ylhc5qzmKQDD/ovE5LIT5AZz0WmReENQljJYtl1
|
||||
pbs0ten9
|
||||
|
||||
Name: res/color/m3_button_outline_color_selector.xml
|
||||
SHA-384-Digest: cyZsztrW8jLoR7n6uNVw+sTFgMWXInwGap8G+/skWpudp+MRIkLapXJx
|
||||
+kzFP6iQ
|
||||
|
||||
Name: res/rp.xml
|
||||
SHA-384-Digest: E8/L9LrdKFsIUXe1TlkkIRGysciP+qpQ7MdcIJCqV+13KP1q19KjTxcA
|
||||
nA781RkI
|
||||
|
||||
Name: res/tk.xml
|
||||
SHA-384-Digest: OqsxyB7nyp+uP3To1H8PROWaZ1Foriu26UxbDjr2hp1dj34+sgHJNtKP
|
||||
5rNxAMoT
|
||||
|
||||
Name: res/v-.xml
|
||||
SHA-384-Digest: Fg0uPt/LUllf8KXBBqxJeMJXJ623anxsAu0OVnTOzjHUEev+GS5lB1NY
|
||||
ECiX2JoM
|
||||
|
||||
Name: res/Xx.xml
|
||||
SHA-384-Digest: p5qLJBy51gX8KtwckvyKmtmuvTQMLPb9VwPMOB4iUCWH3ikapVosCtGi
|
||||
yfDL7KYq
|
||||
|
||||
Name: assets/shaders/vertex_shader_transformation_es3.glsl
|
||||
SHA-384-Digest: cUqWwE9xXk3lIqoFDfnY90UH6g3pQu9sdZjuXb2wQTohG+hBDN5dSgBU
|
||||
8LwLD+QD
|
||||
|
||||
Name: res/Sr.xml
|
||||
SHA-384-Digest: QJNbfHq/JwTL521i+GR14Za1il94Fj1oKx1IUtgenAPNtQTl8MqN24e2
|
||||
uceym5dC
|
||||
|
||||
Name: res/9z.xml
|
||||
SHA-384-Digest: 3cCYU7RRZy1IMOaawsX2eBi8unDxp5AtuKYggoNcCEH+FiJZDFOG0FJK
|
||||
B0K6DoS8
|
||||
|
||||
Name: res/zr.png
|
||||
SHA-384-Digest: K8aK80xg1H1D53r/D5BR07To94+U11iwUKF1bfDNBmZ09EHbWCiJvKD3
|
||||
KZqpF+W4
|
||||
|
||||
Name: res/l3.xml
|
||||
SHA-384-Digest: 1AjY+/1eGSCa4vDQB6VMYQWgJcx6n1EDBuudxw3xEY3eBT/3dNL7Fb/x
|
||||
ze3lZmPq
|
||||
|
||||
Name: res/color/abc_search_url_text.xml
|
||||
SHA-384-Digest: 1nB4WI4X7s8UrJXE9DPK6MxmJQ/aIYroNbOqCk/Tqe+2PQs7plboErbh
|
||||
ra0c8Qc5
|
||||
|
||||
Name: res/lc.png
|
||||
SHA-384-Digest: LUIQG9tlwE8pHOl0WVnkZpJBhhiLl3eqcnQSGKFNdOKYkVovnyJku4ay
|
||||
3ejoyyd5
|
||||
|
||||
Name: res/Yy.png
|
||||
SHA-384-Digest: H3CZhaRLR4BVlYbXwaWpf8byUJDXttvcCl8u2aP3hvFgYgc27ECteM1x
|
||||
EwPTH4J9
|
||||
|
||||
Name: res/zR.xml
|
||||
SHA-384-Digest: gKRmrMoWdS4+eTJzsR0sdQiXJ8crjclnH9QhYUQzyGn248mKN0LrUFuH
|
||||
sp9Gjw9L
|
||||
|
||||
Name: res/Mp.xml
|
||||
SHA-384-Digest: vRKGiDJAaKeNfyCXLyRmkyjWvHYErZz11PgiGv74fLicLhCQ1nfACEv5
|
||||
GyNfttx2
|
||||
|
||||
Name: META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler
|
||||
SHA-384-Digest: 2a9u9oJnx6kIglXq4S1thFvGrUtj97Z+ZK85s9n67MlnFbVDB5FLiFRi
|
||||
I/OAHwlb
|
||||
|
||||
Name: res/xU.xml
|
||||
SHA-384-Digest: 6b0UpuIflcFA/T69dX6jJfYSE0wzzsHMj5wcdsfLKcUqqpaFtqK0geHf
|
||||
ZH+tAW7a
|
||||
|
||||
Name: res/SH.xml
|
||||
SHA-384-Digest: BeIilzRrjDbkCvOOpcs6gp0q6XEwlSPYObyc2LSL3rzGB4ltDRcp6OtA
|
||||
ONJF/imK
|
||||
|
||||
Name: org/bouncycastle/x509/CertPathReviewerMessages_de.properties
|
||||
SHA-384-Digest: f0P/drivzgQ6N6XTXHJlwQcF4ILYTS8wr0jYE2Izuy57CUCBcPlyXuAQ
|
||||
FFr68w0Z
|
||||
|
||||
Name: res/pF1.xml
|
||||
SHA-384-Digest: EWR0a9WIbRyNI4qi0qAyTCDIS3mHP15xyi+3P5HKZQi3ZugmWB4MOF4x
|
||||
W+Ynl0vM
|
||||
|
||||
Name: res/ph.png
|
||||
SHA-384-Digest: wsp7Lbvf9Xz3Ftmy7xHe8VIIXo9diV2IbuJxckgEtwH/u2tUtnVUeu0L
|
||||
dRKBaXyJ
|
||||
|
||||
Name: res/_y.xml
|
||||
SHA-384-Digest: 1/A0np51w7f9QWJsGv7oCU9bsPsal/fLd7MyRPX6XbII2liRMmIwWvqM
|
||||
4ULZuIas
|
||||
|
||||
Name: res/Sr1.xml
|
||||
SHA-384-Digest: BlFQIqfWy8A/lRTYOX+kT2l/lp/YZ/lYi7/57PrXpBvcYlYgY7ZVPtYE
|
||||
GO7ZCcf5
|
||||
|
||||
Name: res/vg.xml
|
||||
SHA-384-Digest: buq8+i3uR9yC/IhI+q0lLZvJc/jajC2vgDTsovTKINoMPKbk6DsutHad
|
||||
o3l9R4Gi
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_es2.glsl
|
||||
SHA-384-Digest: 5MHjB2xLCPW5wqBXCJEqyvZdMvf1m48/zx9BpCIUVDjBVHbMN3b5fdgd
|
||||
rFTuF4fl
|
||||
|
||||
Name: res/WB.png
|
||||
SHA-384-Digest: n92KbkQ9zWPkMgJe6/cC08h91NCYmNvwwF6TySShKy1Ezon5oFkFtPm+
|
||||
w1QjFbjU
|
||||
|
||||
Name: res/eT.9.png
|
||||
SHA-384-Digest: yfF79aK9spwev7yeA3MIGOKskuC3+77nVMB+w9F1KUz77Dd0xCJ7OhJi
|
||||
qXWKRfim
|
||||
|
||||
Name: res/vZ.xml
|
||||
SHA-384-Digest: AsKL7lVTnRufDZcu+M4r+kLpSZwyTa5beAJe+t6b8Le5LQd94oIk1HSp
|
||||
E4wKetLx
|
||||
|
||||
Name: res/M7.xml
|
||||
SHA-384-Digest: 1lO3krEbpP2qvHRu0nav6u2NFwlDLkDFMGteN0xibwICmp0xuBpCMavS
|
||||
+GhglUbm
|
||||
|
||||
Name: res/d9.png
|
||||
SHA-384-Digest: IylMdufLlJy9wSRssRXdcxh0emUCuIp9W0SZPLnNGs83pXuWkD6NyWap
|
||||
p9AbgR0X
|
||||
|
||||
Name: META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactor
|
||||
y
|
||||
SHA-384-Digest: SvKtmQd2cD/F3QykpRUeTmKsZQLsWxe2S6oUWxd0S3hxJxH/DFDOYxxf
|
||||
IBdxXt/Q
|
||||
|
||||
Name: res/z-.9.png
|
||||
SHA-384-Digest: 6SaZ1z0WAnb3sHKq52j5PHUc5/dUlrf991KCYhzGDgse/geqg0+tWU08
|
||||
FgowcVlu
|
||||
|
||||
Name: res/color/mtrl_tabs_colored_ripple_color.xml
|
||||
SHA-384-Digest: 9bYdH329Bf4WSx597aSELNM2dkd7U2aCy7zpyMGE0pZ52epOCxdmCK/W
|
||||
4vPfHi2P
|
||||
|
||||
Name: kotlin/collections/collections.kotlin_builtins
|
||||
SHA-384-Digest: XEvrbLScsVo3XLonuMHA9n7AAtw1MmWwcW6NeSRf0hQhkKuojlzYu5uJ
|
||||
IRBUi6QP
|
||||
|
||||
Name: org/seamless/schemas/xml.xsd
|
||||
SHA-384-Digest: PalDupgU6uwToZBdzyv/U3d7fGAvoFvf/A8aR1wPnP61lUUX3fEBy4sD
|
||||
+l2qtXGu
|
||||
|
||||
Name: META-INF/kotlinx_coroutines_android.version
|
||||
SHA-384-Digest: E2tNDK/xEDe7KULnVhHhi4DR1gg+xx7i/MXJvLOghOc2VeyXxxxKgIsH
|
||||
Sbd2dnfI
|
||||
|
||||
Name: res/color-v23/abc_btn_colored_borderless_text_material.xml
|
||||
SHA-384-Digest: CQVZpPRpaqnQVCbCFuHADU2xN/kUNRpjXYPXSlVs7I0EOzJ0/8Jv4YJC
|
||||
AxcusXIi
|
||||
|
||||
Name: res/2O.xml
|
||||
SHA-384-Digest: HmalxxLeUnn/Iaz1qbVzU3nfklv4xLmOwkzJ4tIWSJ9/giL2oi1//fB7
|
||||
EQxFMI3I
|
||||
|
||||
Name: res/color/m3_timepicker_display_text_color.xml
|
||||
SHA-384-Digest: SZTdmUV6dcBaz7pnhuZsDelrJE0MPXEXf87mEEFuexZvZaQOGOgtqs2/
|
||||
+bMLpPUp
|
||||
|
||||
Name: res/XY.xml
|
||||
SHA-384-Digest: qQAlpB2Ko9aAnLuOqGkgyYWSjhS4SSNR2jxJXcI61u94VbOHNVtTsVmI
|
||||
cU2D4ixM
|
||||
|
||||
Name: res/Su.9.png
|
||||
SHA-384-Digest: zoG6eMmtdC1kM4IBkYmRyfS1KhwtX0D2HjMIoORSz5o8mIyatzfHMzKg
|
||||
ENav8A/e
|
||||
|
||||
Name: res/oY.xml
|
||||
SHA-384-Digest: HwTu151RyKm5REtuvZhWm22VaQQETC5EP+uj8VYaa5klcPdsbzTm5xbE
|
||||
rtDgMBBL
|
||||
|
||||
Name: res/eD.png
|
||||
SHA-384-Digest: KVdl+csGHMT3ts6f7fPoG36oIAymmMPAp/oQpQRcnASLDpHik+c93bnU
|
||||
rOkcK38k
|
||||
|
||||
Name: res/pY.png
|
||||
SHA-384-Digest: UthyXdFYYTigCoOinZRAmZROBZ3nFMVE9lzVULycn8AC3QeGc0Xqv4bZ
|
||||
f1kDCBqh
|
||||
|
||||
Name: res/color/m3_simple_item_ripple_color.xml
|
||||
SHA-384-Digest: Q82ehkaT+gNE5zjSS8wpylZiYs+baperM2nc3m1ib3tkIT9zvbuaLOND
|
||||
SA+h0TBa
|
||||
|
||||
Name: res/UE.9.png
|
||||
SHA-384-Digest: 9Jif6Uiq5VoTS52o31XniOgmrtpm3oDUTqmpIOQSMfTXp2lYykrHEzM8
|
||||
tOgFil3N
|
||||
|
||||
Name: res/9P.xml
|
||||
SHA-384-Digest: fpqdjsuo56u0RY5wj7sajCRkZB/w3ddMdYT5WqpSoTtCvijqljSGY/SZ
|
||||
jPEiHpWY
|
||||
|
||||
Name: res/aJ.xml
|
||||
SHA-384-Digest: TdeeTz3M0RyxsbwrkwkIQMwqN4ydLPKZy2P49jvm8P/XG/KaqwlMrggV
|
||||
tsiUYKYf
|
||||
|
||||
Name: res/OA.xml
|
||||
SHA-384-Digest: QhBBEULO4jNzfGQL76gEFASLMrfnWemzslL8EaCXaqiO6rojpb3ZPsr+
|
||||
gU3T1DT4
|
||||
|
||||
Name: res/_M.xml
|
||||
SHA-384-Digest: qNiBXagfa/SX1It3vY5wUZ1Q3AtHy369SJcSPoo0DPscGP6quHa7ioHt
|
||||
YDjnjF5v
|
||||
|
||||
Name: res/4u.xml
|
||||
SHA-384-Digest: nlNI58L2r1yGAMnqA2dxfbBnbVYLuKHk4VlTnui22qDfD8AzxGq7YRbt
|
||||
+i65ElDn
|
||||
|
||||
Name: res/G2.xml
|
||||
SHA-384-Digest: ksVtYXHwkWMQj7qIhQ0Tuw6Bho8ceUJRpEh32GbnKlsb8Sjkk388plIB
|
||||
r0mYBmlm
|
||||
|
||||
Name: res/pU.xml
|
||||
SHA-384-Digest: EuzhvELdLV8hn3naZRRNoqVWvtvXDtF0P2ltI4d17Lr6538X/rN9FEbQ
|
||||
IJfE7DZ5
|
||||
|
||||
Name: res/q6.xml
|
||||
SHA-384-Digest: 8a4NIlNqnX3kLoGwW8+E3LnCo+Z/rx+b23FHDJVqkvPUehoPn9ZoZpso
|
||||
RARJ4Td1
|
||||
|
||||
Name: lib/arm64-v8a/libswscale.so
|
||||
SHA-384-Digest: FBmuOSIVEVnaXtqTaEwStjHL4hDYK5aCP09ok97sBfgp/Nb5R26IrWZP
|
||||
hvrndQ4u
|
||||
|
||||
Name: res/0E.xml
|
||||
SHA-384-Digest: AUrFVHjbnZnWQBr9iX8UxZVbj8JhZGjPhyVkWWYVZp6K1y6ZTmX9We8J
|
||||
FDDi6Tf5
|
||||
|
||||
Name: res/fM.9.png
|
||||
SHA-384-Digest: GN1Y8cnvdD4O5S8yhrFSAeUy2p8YrXqHpiebwGXeNEKPLd7u5qtCi6u1
|
||||
9gpZmFNT
|
||||
|
||||
Name: res/A2.xml
|
||||
SHA-384-Digest: +8N9+DVZ6ijvvFjoIyOuSpL/68wwoaEYrxY+XBjxxivJ3KdbniXsPxGv
|
||||
MemJMKFq
|
||||
|
||||
Name: org/seamless/schemas/xhtml1-strict.xsd
|
||||
SHA-384-Digest: FlX68nGnFfC2i4abn9WmW7n0+BCdyv0RiINdAuW3IeJA4YTbcfdTgJg5
|
||||
waYodP+6
|
||||
|
||||
Name: res/_h.xml
|
||||
SHA-384-Digest: uyu3u4MUt5S3f50PcDbRp25IYTK0H2j0cFlZZW5lo/M+mrKxYECmtQgt
|
||||
lKwhavq8
|
||||
|
||||
Name: res/color/m3_navigation_item_ripple_color.xml
|
||||
SHA-384-Digest: 739IT64H7oPonQfLPgG9JqBHLNlUmKmT0ivzELrXNPuoW2ucG+QjpD7K
|
||||
HT0JWjD8
|
||||
|
||||
Name: res/color/material_personalized_color_primary_text.xml
|
||||
SHA-384-Digest: wD5PfJm1aLvT67Awz+oXBFmPsLGVa6aDQcZjlSaOcyOmVJnn9gRRrqUd
|
||||
czX7eDJ9
|
||||
|
||||
Name: res/hX.xml
|
||||
SHA-384-Digest: 7xPzIXx0Kg5BBI7+lPyJoSnaAbLjpa1oT9uV86s1nblVxDPZJbFxgnH9
|
||||
UCTpg7V4
|
||||
|
||||
Name: assets/js/lib/cat.js
|
||||
SHA-384-Digest: hORSn/8IrZK8DC5OL/ZovIu3Oh0zqKqrHGFc2NmdKpIYkci3s0G3CRle
|
||||
6xXgB2bZ
|
||||
|
||||
Name: META-INF/androidx.viewpager2_viewpager2.version
|
||||
SHA-384-Digest: 06Z7BpcrmLDRxSNmu3rjzKNpJA/lJSra2enFEuDoDmidzYXhNuiQy/ox
|
||||
dkJitN2o
|
||||
|
||||
Name: res/BN.png
|
||||
SHA-384-Digest: oqMJ6GdTPTkptVOZD1ftHQxOb7LRpeqxiTGNrPVFi86zfwzhYVFHpSAU
|
||||
17OBzCak
|
||||
|
||||
Name: res/Y-.xml
|
||||
SHA-384-Digest: br97xqkfpQcqE8ay7CELE7ArpcnRWAe2Ma2SFpE0+EXn1jWSo9uJHbxO
|
||||
OIjoxMIF
|
||||
|
||||
Name: res/color/m3_card_foreground_color.xml
|
||||
SHA-384-Digest: 8WaoUIO7O0eBhmWN+bKW/nC9UvsKAtMU0+2ilSgqJ1IfoT25DyCzE+4f
|
||||
QzgUof1o
|
||||
|
||||
Name: res/fR.png
|
||||
SHA-384-Digest: C/wG3Ulm7smlpss+jA0fN2Xk9dGFX3Ipp3syugR5RXG8JNOif68gffch
|
||||
8HZhUkqE
|
||||
|
||||
Name: res/Fq.xml
|
||||
SHA-384-Digest: o0a0VeNtfPFk/RxewE90gj7tZf4HM94u9pCwz+muDm7pS1qUngSpmj3T
|
||||
Q1TDEHod
|
||||
|
||||
Name: res/GR.xml
|
||||
SHA-384-Digest: 64SV5E7exL+5JyUCAJWFCMyROjbcCC6vKpSV1xjjJFVwE3PJewgM6Fn9
|
||||
RU3Bhumf
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant96.xml
|
||||
SHA-384-Digest: Si28kFVzFijuQbc0Ga1tMtEMbrqCrZe7qcluIUC+LLRXssnovQZf0nt2
|
||||
CIaFDEPu
|
||||
|
||||
Name: res/9n.9.png
|
||||
SHA-384-Digest: LLLzU9mI4vNUCdWARRxZauITwJUjwfttzE/NdDWodPniOlj4hCdlySQO
|
||||
vMZjiVyP
|
||||
|
||||
Name: res/UE.xml
|
||||
SHA-384-Digest: VOaenWSf2c8R1giPFCiiAqje0bFMPyxwDW7hPqRZbBPjvMlw9RBaoQB1
|
||||
NSrLH8tI
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletHandler-mbean.properties
|
||||
SHA-384-Digest: NvS/IWi5B9Ok6bdlI0lnoW/6a9IHBim2QVEW72pJjde4G1KVmxKsw3tR
|
||||
+RZdqhAi
|
||||
|
||||
Name: res/cr.xml
|
||||
SHA-384-Digest: D3V1r7NWKPUqdfdR/AIl3QNuS0Wzm60Nc7UA9YMQzBg8Yj5p+D2MmQUe
|
||||
STyyX7FF
|
||||
|
||||
Name: res/dS.xml
|
||||
SHA-384-Digest: tOkjcedgmvBKXLvWEq8URhvgs8Rd/1Gt9eolCXLDQFUSq4re87rb2KIv
|
||||
BYe7ZkWE
|
||||
|
||||
Name: res/color/material_personalized_color_secondary_text.xml
|
||||
SHA-384-Digest: eA7+BFPpOqfitYZILrE1rkAXZyyvqMD9ziNITXffOzMp0P/mizWDN+v8
|
||||
9T6gJ7X2
|
||||
|
||||
Name: META-INF/androidx.transition_transition.version
|
||||
SHA-384-Digest: GvR8UHp/YwDMBARXx8WHytVwBltlxxZTHrhWhzcL780JGryvIq5dmp9d
|
||||
g93lndjc
|
||||
|
||||
Name: res/By.xml
|
||||
SHA-384-Digest: L+SsXawroHqfB1/7MBRgKX5KLCw01R5DjiChBJefYrW0c/jU+/8c5wVc
|
||||
IjurQxUj
|
||||
|
||||
Name: res/color/m3_radiobutton_button_tint.xml
|
||||
SHA-384-Digest: 3PqOQvIOnz0bmkp7FeNBgczjlwUZ6tOM7emsd8Lz2RpkVRlF/tB1h9hB
|
||||
QZKd3DBQ
|
||||
|
||||
Name: res/JJ.9.png
|
||||
SHA-384-Digest: +Gd9PQiz5aA6tiZ5KEcp4fRiBas3Zu+QWWiRESFxJ5OhUQpxMXouzcw5
|
||||
u6780AsM
|
||||
|
||||
Name: res/lN.xml
|
||||
SHA-384-Digest: 1MNPp0x+ZdvedxATRo7SeF0PPkaUl+4Uxu6yonZuYQE99XtmkzOPUli+
|
||||
9x6OWx05
|
||||
|
||||
Name: res/23.png
|
||||
SHA-384-Digest: q1lGeTbi8gcNm1bNVPp4ajWjsOm65YTZeESEYeCR5NDdnka7z6vjOeEi
|
||||
RKU15a78
|
||||
|
||||
Name: res/TG.xml
|
||||
SHA-384-Digest: oHmI1iasm16Yx2LMaM9dsVFbyiAgk/4UYDu7LwLjkbODy/1lxZOkEkpm
|
||||
P4EE3Yim
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant17.xml
|
||||
SHA-384-Digest: 7I5ONIjRzJEz0DeGNiZ6k/ew1nHnpAd/a9J7Oe9ffnvXtw+J/4X16bwl
|
||||
ikAs92Tx
|
||||
|
||||
Name: res/u01.xml
|
||||
SHA-384-Digest: yPZOQWrgS1NoSDZ97oe78Q9BaRZK1UXQcnFzmhz7mV25e2LL0VxErDdM
|
||||
9Q5fjcdy
|
||||
|
||||
Name: res/ua.png
|
||||
SHA-384-Digest: 3LWa3UaUPiPYPIl/AQPLu+xve60xiKLKMYOebFlsoz12V7dkg2OvLRc2
|
||||
dZ6zMqoc
|
||||
|
||||
Name: res/dt.png
|
||||
SHA-384-Digest: PY0yrKsSE09N/TTsdS69gOotihsZoERfeKSIP/S/FHndcus26aST6+p+
|
||||
NARCZE05
|
||||
|
||||
Name: res/color/m3_dark_default_color_secondary_text.xml
|
||||
SHA-384-Digest: ucPZQzK2gYCO70t7cAhaqS599eZWslh39dh5rGgPuY4qvJqq7M7cw/PU
|
||||
joRER6Nl
|
||||
|
||||
Name: res/zE.png
|
||||
SHA-384-Digest: 8Z1LdiuMWs/4t7sqGbr7aI0V7SSgiGUwIre89HyaV1MK0IQegxhSykhl
|
||||
iAjmtKZi
|
||||
|
||||
Name: res/BJ.xml
|
||||
SHA-384-Digest: PGv/FwdxOqxVz+G3qoHA46zbbiQXX6S23hg3yXTbfEM5t7hWdmtjHSV/
|
||||
/Y9MlGMI
|
||||
|
||||
Name: res/c4.xml
|
||||
SHA-384-Digest: vJB8SwocZi2/Ob21RoRDxOnrcf9emDpC/YgM5pozX0Zst/FNIr+ai14b
|
||||
N3a/ZiOJ
|
||||
|
||||
Name: res/Ff.png
|
||||
SHA-384-Digest: qEZtTXcCVWri6e+jM8NETRYdONhE3HKeCNdWrkHKyF+Iieyuv3qTbTUY
|
||||
Q5JEKOu4
|
||||
|
||||
Name: res/4L.xml
|
||||
SHA-384-Digest: VturCPEmsSk38GDJpob2gO/FaQH3o16XZc7ZQCvi280n0EZo1Wu1r1wn
|
||||
wErd+2CN
|
||||
|
||||
Name: res/Ga.png
|
||||
SHA-384-Digest: eQb7cnup1PXy3OVYZB0DmQFU7/AB3bE/a3gNbCtETqy/PDKafvnePp3J
|
||||
k5JK0LSS
|
||||
|
||||
Name: res/Zg.xml
|
||||
SHA-384-Digest: seulcfFIevrF9TeSosKD5nqaD1BmlsA2dggczNXP5ukUgp9OEAsWomqa
|
||||
p5XDeNmN
|
||||
|
||||
Name: META-INF/androidx.documentfile_documentfile.version
|
||||
SHA-384-Digest: 33mUbTHzEhENUML6ontTV1+8qf4+/6oamJwi/TI39u73alvTcJapwKRy
|
||||
QLiO0XxD
|
||||
|
||||
Name: res/6t.png
|
||||
SHA-384-Digest: J+RTEPzuBRyUDKZtQaFsiwB5KBe8Ws43wmlefJq6d8CVbdOs98wA4ogU
|
||||
i3HwsGbt
|
||||
|
||||
Name: res/jS1.9.png
|
||||
SHA-384-Digest: OTfWD2qkmZOfAhE89zFXf/x1Kq6CrPIPCPjdDSAlIQKQMU3rXFyd8c/1
|
||||
dq4ezrAM
|
||||
|
||||
Name: res/color/m3_checkbox_button_icon_tint.xml
|
||||
SHA-384-Digest: hggqFCnbW+oqlau8+Kxb/dq08sjRdOz/C5ynJjdcVFusLVzZitb1FGOC
|
||||
1WarYnEs
|
||||
|
||||
Name: res/color/m3_switch_track_tint.xml
|
||||
SHA-384-Digest: qaWtRyA+xyvtZRvzl2Xpc4KdBZZrFumxWlODKKb6UnT6g36qNr8f0Uad
|
||||
5Qd7TZ06
|
||||
|
||||
Name: res/6Z.png
|
||||
SHA-384-Digest: zRh3Mp3M0Ki8vScW2+kdaNg0nTaf3WMrc1yiQ/kF1HoPw1j9ws8YS0VK
|
||||
SeN7dI5T
|
||||
|
||||
Name: res/77.xml
|
||||
SHA-384-Digest: QVaBtjHmI++duVD9IsWBB0aFuVTAaQIorE2SMxAV9woF7V0mz7K669Fa
|
||||
8QGOP1b8
|
||||
|
||||
Name: res/color/mtrl_switch_track_tint.xml
|
||||
SHA-384-Digest: eSJ6ZyXf3LDdIbYPQwU8K++vF2lCZBaX/Iw8xZ3Wn/zv6Oj2cHkddEEU
|
||||
OQ3hHEZW
|
||||
|
||||
Name: res/NN1.xml
|
||||
SHA-384-Digest: W7W1csmWiHN4M8ULFtvySTRBI8s5tvJ5Sk8LUdRxg0trE8WGhmFOCBJJ
|
||||
d+VlNdRd
|
||||
|
||||
Name: res/color-v23/abc_color_highlight_material.xml
|
||||
SHA-384-Digest: Al7OBfblD4jyAhRvzfspchNOEOWLFC15th8CcaTpcm6z37iZ2yUCWkVN
|
||||
O4lwkbCI
|
||||
|
||||
Name: res/color/material_timepicker_button_background.xml
|
||||
SHA-384-Digest: ll2mD0HPR+ILrINjHxgnh3BBqmjXdjJhhd9NXwpdg/ewC4BzN45KIIiY
|
||||
Uocuxwe5
|
||||
|
||||
Name: res/Pa.9.png
|
||||
SHA-384-Digest: S+VEtmqT2Qy27Kp8YqlbCmR4zh/abtRpJA0qz27IC+arrR9q0u8PnWCc
|
||||
XAn7kwv0
|
||||
|
||||
Name: META-INF/androidx.emoji2_emoji2-views-helper.version
|
||||
SHA-384-Digest: 6ZhGj7EwIC6cKUzr5pbIgsJC2l4oRznFyLhA6sBCwgCF4aD3ydvJ3SOe
|
||||
gR7JAGIY
|
||||
|
||||
Name: META-INF/androidx.recyclerview_recyclerview.version
|
||||
SHA-384-Digest: 0Dhh56ybPWynqrKupTKEZuWVJEQB/hhyixvsWy8LWcJj8JoM5whgj/8d
|
||||
NRWGA9pW
|
||||
|
||||
Name: res/X4.png
|
||||
SHA-384-Digest: 6MF20yZmbIwRd705/friLFAsFU5IkJ2DpnB81ssnPgo7sJmObjInOi/L
|
||||
muhCzLOV
|
||||
|
||||
Name: res/Th.png
|
||||
SHA-384-Digest: 2CzT/72xJbPermQ/nVTOljKuK4Tbxy6NmT+mVSQWkXFxcCmolROx+/8D
|
||||
BmXlaciE
|
||||
|
||||
Name: res/GC.xml
|
||||
SHA-384-Digest: VCKMz5G5XCgVTZMCro+Gb5vQ7lDwaDJjXsMJODULrDBJFAT+rZOUSM6R
|
||||
pQq0noTs
|
||||
|
||||
Name: res/Qu.xml
|
||||
SHA-384-Digest: wOvq/THrbpvPqEdSGU7PGxcvYOuL/3+iyEua844X6R6n5+nI6mIKebt4
|
||||
0RgIFvsB
|
||||
|
||||
Name: res/jd.png
|
||||
SHA-384-Digest: Qlsq0GLUtJo7FVL2Hy//tgfu5WE+0xnOlVkMKGFdQ1epWA0SPNRtQd3F
|
||||
qMPikreO
|
||||
|
||||
Name: META-INF/androidx.tracing_tracing.version
|
||||
SHA-384-Digest: KDxWnCoe731MScRwjJBcuG63E0YZyU7HYWy4LL2RE2ZCt/GFd05MtGcn
|
||||
eIq+AlL/
|
||||
|
||||
Name: res/06.xml
|
||||
SHA-384-Digest: IFcJak/Vli5VgK9nsE8hx3P0Bj8SgM3SB++GrAIQVUm8RXdruBtZf3D6
|
||||
RRo0b5wt
|
||||
|
||||
Name: res/g-.xml
|
||||
SHA-384-Digest: o7skI+Gdw4x5c3985zwQxUoOUtnI09enEfxO6ja1w54bC5eXjcoWVJJm
|
||||
RFrL4s/M
|
||||
|
||||
Name: res/2w.xml
|
||||
SHA-384-Digest: fh2RsAqAzPclVvSSfof01o1/qyhvYGXoYprEH24r7766UaK0cxYQFFO9
|
||||
1c0tpOrn
|
||||
|
||||
Name: res/49.xml
|
||||
SHA-384-Digest: dFr2jLx7r3StCVmhMXOEY0IElJ2j5iWaD2i5Wm70ImTCLmUJp6vq4anu
|
||||
Hf8NRUQQ
|
||||
|
||||
Name: res/bb.xml
|
||||
SHA-384-Digest: aoOkHkClwvU6IEcbdMuiJfEbf4phkeGVDSe8p/7wSbPzuhe8QXjdzO8i
|
||||
X1VpwGPq
|
||||
|
||||
Name: res/Pg.9.png
|
||||
SHA-384-Digest: g7QAjG408IYx2xl7VOdB2XnAN0rqx6XiH83D2ldCS1eKwo6Tm8Xgwyze
|
||||
DoTTq+Gf
|
||||
|
||||
Name: res/vX.xml
|
||||
SHA-384-Digest: F1Ycf2pdUwKH0aRGxP3ttQLlKbidBEsad8PK2qR13NS465JS8opo1SGk
|
||||
USMEv/h7
|
||||
|
||||
Name: res/w9.xml
|
||||
SHA-384-Digest: 3Noo+mBZoSQfD9chbcOv4/Zw1+3c5fCmXkg088ocjVXtR4ye8VIICEMn
|
||||
lN9m1qZv
|
||||
|
||||
Name: META-INF/androidx.startup_startup-runtime.version
|
||||
SHA-384-Digest: lUjgzEoqD7sexrgdVT9WSy8v1xVo86FcKoahBjv8rel5C1OB37BCw6KX
|
||||
7B0ZkqAq
|
||||
|
||||
Name: assets/css/ui.css
|
||||
SHA-384-Digest: zVEtZX4aCDbYDRU1et1oUv5oBWmxw+s99W8JBB9m+mmjRUfUQw0rlyhz
|
||||
ReBIoMrR
|
||||
|
||||
Name: res/PN.xml
|
||||
SHA-384-Digest: Cc07NPh8afKaSU2KS3E/9UPqv+UQlxba1Y1sBFsqmRAEBYMZtAR7CjHO
|
||||
f2L7hFqf
|
||||
|
||||
Name: res/YW.xml
|
||||
SHA-384-Digest: 22YDnt1GrFAKqKijTzNCFHAWD7nxYYahuvvWZVhXTNvI2bFcO79HH04D
|
||||
WW5XITMt
|
||||
|
||||
Name: res/sO.xml
|
||||
SHA-384-Digest: rpY7EaleF8sNZ6JUQ6SX2SmGXfojXt+g2Tewzsmpai6lb4eSk4qi/+lo
|
||||
T9wfmv5T
|
||||
|
||||
Name: res/RA.png
|
||||
SHA-384-Digest: CSahgYHE3ftj9Of1evNe2lTIDKZ7nif9l8Ri4gRpCcar71hkYdkmiVxB
|
||||
hcf2SzQw
|
||||
|
||||
Name: res/ii.png
|
||||
SHA-384-Digest: cmHbUbuVmt6y1y40ogs/2libGcEZ7L/9RdPb/P+zGXlAoTBQIlimxvAw
|
||||
YfRSd02M
|
||||
|
||||
Name: res/LT.xml
|
||||
SHA-384-Digest: eiOhJsAsXc681jKvAm1IccuJ44i0Xz+OgrfXXCr7iZzCN54ggxIOm4E9
|
||||
9yPAqKaB
|
||||
|
||||
Name: res/M5.xml
|
||||
SHA-384-Digest: jFKiKig/Mg7Y22ixY8DRlV6gVM5y8JqLEFsa+cMfVddWzqDyWBZjuNYD
|
||||
RmQNK+A7
|
||||
|
||||
Name: res/HQ.xml
|
||||
SHA-384-Digest: lRiDgxlBgI4oW0/hvaOTmY0UwAdQObKJt2RCRJkoLH1L03JFfV51+VPk
|
||||
+STXY++C
|
||||
|
||||
Name: res/tL.xml
|
||||
SHA-384-Digest: AhAwzxVAo5EZpHg73DOS188jLJCKtqeXAO/aGu7jZhGtmpv5a0TRbYPm
|
||||
OwvSTUBk
|
||||
|
||||
Name: org/fourthline/cling/support/renderingcontrol/metadata-1.0-rcs.xsd
|
||||
SHA-384-Digest: hqkRzk6HLjVaY4NDZ56hn9tDR5npsWP66J0Xwq6LsES+P7owuQuhhUMy
|
||||
vt1cg00M
|
||||
|
||||
Name: res/a9.xml
|
||||
SHA-384-Digest: dZjEHNeLBi/sAYX+QiWnZK0d3PLHmqwZGYsASgLWJ16Ex7pw7T1Y0zTB
|
||||
Rh7VkWr6
|
||||
|
||||
Name: res/color/m3_calendar_item_stroke_color.xml
|
||||
SHA-384-Digest: QGwZXnx4+eXdD0z5S8y/a8cvad015NLwsoNEjtbU0dVkQuFU+d1qIVmA
|
||||
HUZg5+aj
|
||||
|
||||
Name: res/Lo.xml
|
||||
SHA-384-Digest: rSgb8S5udleuefaJCNkQBTH7S713Gdhvl8E66+1GhPL/9dB2PfYOkAFp
|
||||
NWTtWY99
|
||||
|
||||
Name: res/eo.png
|
||||
SHA-384-Digest: DO3iHVEjX0VVauCz/8im7Kq1wfNwk9w2XpuMp2h/WIcwhve+thxQKcFr
|
||||
k+yXdKH8
|
||||
|
||||
Name: res/1c.png
|
||||
SHA-384-Digest: yC7eBdyCxPGXZLLAR0RroyNyHhpzXbEvCKtarpHNBhmyrI7PREQ8cPRK
|
||||
zFhKXRJs
|
||||
|
||||
Name: res/6G.png
|
||||
SHA-384-Digest: WX+hMGFnTOwmjvN84XPSuyPKSCHxHqOqIXBfh0N8AAVZJVHTtzYqBIL1
|
||||
Zi/7aFm/
|
||||
|
||||
Name: res/LI.xml
|
||||
SHA-384-Digest: qUTf95+d2tDIneaOjiYVKHv9v2przAJ5X7fTlf2Z2/6/zREnquC6LXc3
|
||||
25qAZhz5
|
||||
|
||||
Name: res/color/m3_chip_stroke_color.xml
|
||||
SHA-384-Digest: SHCm13+yRLvUeGxaC+MFrkDe92s/cTzjSLH2+5C2qoK3lt6ZhSbXm/hK
|
||||
ZeAU9c2B
|
||||
|
||||
Name: org/seamless/swing/logging/img/viewtext.png
|
||||
SHA-384-Digest: p47pw2JjXZnYYmwudhk527O0xvIR+7GD/1V2OGi5H478/R+LvPMA3jXD
|
||||
LIe6U6Ck
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant4.xml
|
||||
SHA-384-Digest: AbGKAe2HC+QTHYvXpor8sKu/7FD8R1RrW5PmZI1+6RZq8BbVQiHTOx4H
|
||||
hz0MlNph
|
||||
|
||||
Name: res/yT.xml
|
||||
SHA-384-Digest: MXZ2eqI/NbBsb9qZE1C1VrMoATl+QRAW+8GMMJZG4HFqMV3PCu7R0f/q
|
||||
JAD5jDOJ
|
||||
|
||||
Name: res/z5.xml
|
||||
SHA-384-Digest: vDEqn9O/y5o3XdCBjSDe99hNvoN0MzLZfeyefF3xJduuhmMYzhEo4PtW
|
||||
7NbrjgsD
|
||||
|
||||
Name: res/LX.png
|
||||
SHA-384-Digest: 6IarMkumCDH8CDYzxi5qC7cBnI5zxmypTo0zZbhOe7YnV/o9x1gs7UZV
|
||||
UvrD6bUj
|
||||
|
||||
Name: res/cV.xml
|
||||
SHA-384-Digest: DkO9dYD3WzM4dcVdqOQSs432mlQAIGYuAwrg9GdGgO9IOA3B+5D94dOf
|
||||
7XurgPjZ
|
||||
|
||||
Name: res/2w1.xml
|
||||
SHA-384-Digest: 3XC8GC9DuJ39I1YCzjkzUWzZ9NI1ngS/JVP+wDUSAKWtYPbdAqdrzO+7
|
||||
2PDufUNU
|
||||
|
||||
Name: res/color/m3_navigation_item_background_color.xml
|
||||
SHA-384-Digest: R+x4TBzIiFAShBoe2II95ajho7mtyqI1kANeXOMfKF8VL3r/axUKzwRj
|
||||
YOLRN4d4
|
||||
|
||||
Name: res/T4.xml
|
||||
SHA-384-Digest: MKNbAwYOmuXzzn8ilLzV6IQtjNdkfgzCvFI1LjABZGz1K0oCv5sv6V5p
|
||||
odzLTEjE
|
||||
|
||||
Name: res/-8.xml
|
||||
SHA-384-Digest: bdjNGJd6Nt9LUnkPB9yDzOrqtfg+F0K/ZZUddrB4ht7v3Tw5sQkYAuoh
|
||||
V2Q5yTIq
|
||||
|
||||
Name: res/color/group.xml
|
||||
SHA-384-Digest: 8p+MCuttEz1lWdi52/JPWL4ibwyVR3Fy63xjzMYcTbi+vmfgOYHvsi3a
|
||||
4Egx6ehK
|
||||
|
||||
Name: res/FO.xml
|
||||
SHA-384-Digest: tSLTEUpdaLvOVqcZK4oCPAHWpLEh7qAK03LJkdtLlec3J1/U0lfdaybX
|
||||
T6lMUeCU
|
||||
|
||||
Name: res/G0.xml
|
||||
SHA-384-Digest: pTyjc63zZ997FHdNot93zROGrsJUUIpWtApc5D6FWF+d/fuMpxxi65nr
|
||||
QN+au5ul
|
||||
|
||||
Name: res/Yj.xml
|
||||
SHA-384-Digest: fzdgOROPrnMoG2dy5rTadUBmuvwpmcD7daDVVBLf+fhYr1T+J1fvENsa
|
||||
Poo6pRXW
|
||||
|
||||
Name: res/color/mtrl_on_surface_ripple_color.xml
|
||||
SHA-384-Digest: CVofN0Kk1KMiye8OoChPqLxIb2ByLOPXQaCvQcWEjhnxHcfbSotgjMoS
|
||||
xbmywhiw
|
||||
|
||||
Name: kotlin/annotation/annotation.kotlin_builtins
|
||||
SHA-384-Digest: 6uKoko8b2hrrpzfbHh+lB0hqDd9W8ya9PCSFDyt7BrxXeQDoohpFNU3K
|
||||
5IwBP/Sk
|
||||
|
||||
Name: res/iv.xml
|
||||
SHA-384-Digest: pZMkj45xcB1r5GicO9FM5YgTDLPfqwQhZa4BVeCKgvMd04zmZL1gxsIE
|
||||
CPEMI1/Q
|
||||
|
||||
Name: res/k8.xml
|
||||
SHA-384-Digest: nn8F9AOIole/Ng2LpPLvPg9D9OKeQw7O0gpe3MtKGDCyRJJuFKgkn6tI
|
||||
A35lDJJv
|
||||
|
||||
Name: res/color/m3_timepicker_display_ripple_color.xml
|
||||
SHA-384-Digest: W5WFc1g0rm4Y7muzbFoozc6ABAA6C4RxuooBa9SjooxN08L/mf7SJLMz
|
||||
Xt7lZDar
|
||||
|
||||
Name: res/color/m3_dark_highlighted_text.xml
|
||||
SHA-384-Digest: cExXSqrLlc+OXsTYy6ytbNWO+XBzq/7NPuEIKPlIdZ9A2+KhM6mgPc/I
|
||||
sGb3RANy
|
||||
|
||||
Name: res/wX.png
|
||||
SHA-384-Digest: dDK8Vze6Grr0A75s4p3KAoky8qGaZI2aAuQFxAQMqq0v+Rrg/arP7Zrl
|
||||
l92zn33A
|
||||
|
||||
Name: res/dW.png
|
||||
SHA-384-Digest: NCXMJiaJtsRIpTLEyN+ypvB+4Jkf0tkbxjvhqvxAimW0sFRb4KdHuQ+J
|
||||
GNXDpGUu
|
||||
|
||||
Name: res/NB.xml
|
||||
SHA-384-Digest: UXUmeZmnInzSQfWbLAo33KDenRy7pjdRpLqAJEZrxuYXbmV1GYi9zIfp
|
||||
9IHGvPpU
|
||||
|
||||
Name: res/Ao.png
|
||||
SHA-384-Digest: XG93j0iuZAlhDOSVyvgWp8T5jUMcHtCK5KR0GqoSDSGjsZf2bPgE78ss
|
||||
qP1VhRUW
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version
|
||||
SHA-384-Digest: W9f/dl83UYP6UGja2F7eqPDsmepKXW8kMZe+BXZh948EQ7kEqbuBQpoW
|
||||
alx7kw/u
|
||||
|
||||
Name: res/KH.9.png
|
||||
SHA-384-Digest: q26+Hdwqi3sblqWxFeC0J+q9pkrf25f0UnbWfF5eWQEZDGYVsjcBpROP
|
||||
G+eTxGIT
|
||||
|
||||
Name: res/b-.xml
|
||||
SHA-384-Digest: 0zrkjeQye7+hRiQMr8ml8wCvIVxoDofGHV2E684qU9CDA+UcP5+lQuWc
|
||||
WyK14VV+
|
||||
|
||||
Name: res/iR.9.png
|
||||
SHA-384-Digest: N9t5yA88XLRn4hlTtTkYP2+JjeLZgPDis/bpNfmUKfwja/DmYXV2qgup
|
||||
S7hjMi5z
|
||||
|
||||
Name: res/OC.png
|
||||
SHA-384-Digest: 25pFGq/9jzkSUxCqRux5pIaylvQJoMtSomvy9FIxL3At0sp9Cijf3a1U
|
||||
weOPRf0Y
|
||||
|
||||
Name: res/f0.xml
|
||||
SHA-384-Digest: lWSPDn6HT6yo0OJSW9MtdpvF6GCVMGSUpYvFpb10epfRVoa8l4mjtdy7
|
||||
uTAJc2zh
|
||||
|
||||
Name: res/FS.png
|
||||
SHA-384-Digest: k7dUPkU/LecfarpfqdnuuVAES6efsVikYqP5wOLP9yrtk0al9zEMAvDF
|
||||
7ZDfkzhn
|
||||
|
||||
Name: res/l9.png
|
||||
SHA-384-Digest: JUSqBi8c/uxwI/0qrYuHL2WC45Eqc6H8bWpepw+VeZ8YrEUNqB6Iexh7
|
||||
eS436nN9
|
||||
|
||||
Name: res/6p.xml
|
||||
SHA-384-Digest: ct6nMhTucFMq8t7t3zmdvWqBoHyAuXkm89Wjk/Amugu1uDDUuXWzTKCq
|
||||
vf8BebeA
|
||||
|
||||
Name: res/7Q.xml
|
||||
SHA-384-Digest: pSokxccb2DqJk3ZkI7kn/xT/oTk5AKuKmh0q2zu952mO2kpdcHVSlblM
|
||||
HUQANpNa
|
||||
|
||||
Name: res/A4.xml
|
||||
SHA-384-Digest: Dsu1rSV/ajG4j729PkTpLuYcMjswI6T7U/hn8QoWFPgOC+HgXFoooAbG
|
||||
DQuF2eKv
|
||||
|
||||
Name: res/DV.xml
|
||||
SHA-384-Digest: 3cjQHYuZBR04pHwouGI18ik6xDu/ZlnMd3wPRvcCjodS1/lz7U8lwvk0
|
||||
gUtqdzxb
|
||||
|
||||
Name: res/zc.xml
|
||||
SHA-384-Digest: 2mWbdqeFDXnHiN0Zva7dxzPSpwU8nBdj/kpph3r8zsYZfNyRN3yYC4Lk
|
||||
tl0N3leJ
|
||||
|
||||
Name: res/p01.xml
|
||||
SHA-384-Digest: Zp/6JOe2mpt0cIizfrWlxX9B0fbH49UX1QgctBax0ed8lqGDTJQOi/g5
|
||||
eo3dJkGh
|
||||
|
||||
Name: res/B5.png
|
||||
SHA-384-Digest: wNu3hRK6dlQR6s3F8yQEWzwKe2XHNns2SYo7QswGCbAOiJlgQ2NwURrI
|
||||
vvwTGLFO
|
||||
|
||||
Name: res/Tj.9.png
|
||||
SHA-384-Digest: iLVooKsmMkvUSSG1R/DsFiXVxY8O0/PHaVeLOjGdMCXimQe2TDe73V/P
|
||||
E543lEEa
|
||||
|
||||
Name: res/color/m3_timepicker_display_background_color.xml
|
||||
SHA-384-Digest: b75pSFq9AAQDSnEqBVIxEPWQ+MjZG3a5iZi/4uSKUwK+7uipNYXKaC+g
|
||||
8clof9te
|
||||
|
||||
Name: res/ZZ.xml
|
||||
SHA-384-Digest: p06vyDlT/AvlArLYNcFuFEL4yzPKDhymUar+ct3QlyAeR+eX7rxVL/0Y
|
||||
F6wS917k
|
||||
|
||||
Name: res/lP.png
|
||||
SHA-384-Digest: BDyqk6eW7gD/HJEjmOkQ4RFKJfi1Oa9pHeddUjS4lUbBfyGhhpXEgP2r
|
||||
Jz7mO5z4
|
||||
|
||||
Name: res/hu.png
|
||||
SHA-384-Digest: VNxECb6Tb1xDHBq/NrqewwksiTg419T3MSKnQBWwJWfVnMSXWERCgjss
|
||||
Ips7TkUw
|
||||
|
||||
Name: res/tV.png
|
||||
SHA-384-Digest: Pl2Q2rV6KBQK882/1Qbtk0AMMTHr11znujTM1aB6kGIOQgZyOzAaMvr6
|
||||
5E8UlM4L
|
||||
|
||||
Name: res/eZ.xml
|
||||
SHA-384-Digest: upko7Xep6oiXs+epp/zZl/cCsQY1ybg4wQao76sKMkZfOLMXdhucuucT
|
||||
mMm/NAG2
|
||||
|
||||
Name: res/VW.png
|
||||
SHA-384-Digest: IlZC3mJARzUHTnZ1jJE3Bs0pa3/SwPeaB/MByh4pTWRTJsX3w0D8kBE4
|
||||
4M5mukNG
|
||||
|
||||
Name: res/Mp.png
|
||||
SHA-384-Digest: lRIBg46BvEIAntc/YMKcSYQrAu50LWk36d86xTC0UH9N8EVKpWBs3OzN
|
||||
wWpW02fA
|
||||
|
||||
Name: res/cA.xml
|
||||
SHA-384-Digest: n3znHivnBPYtl1xJdVtFBJwqXwQh6Ro6wSoHDUTxrakGNKpWZVGd4WqP
|
||||
NzOV48+o
|
||||
|
||||
Name: META-INF/androidx/annotation/annotation/LICENSE.txt
|
||||
SHA-384-Digest: FijqHNoFUwK86F8kufPzQ2/09IKehkYJkBCAoTxjshm6lP9e/cfN6Mse
|
||||
gV29zS9m
|
||||
|
||||
Name: res/9a.xml
|
||||
SHA-384-Digest: ZOPpD1YDkhtvYwoCqC81V7kMDx26PXaGddaSQZ/lczhsAjhyJpXTrbmA
|
||||
6v9mHQf1
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant94.xml
|
||||
SHA-384-Digest: 7MqDONc0BqUPQDnHQhY2LTCNlxMA3k0BFOUdZh5Ry3ovGOl7laF7lzEQ
|
||||
hduRBkMX
|
||||
|
||||
Name: res/color/mtrl_switch_track_decoration_tint.xml
|
||||
SHA-384-Digest: +oDe/c5CnTn1JVNYRIRUfA11vJ0zq4iCYF1CXMHVQ3Hdansm3blTit9V
|
||||
02OrHdzy
|
||||
|
||||
Name: res/Tm.xml
|
||||
SHA-384-Digest: pcbt9KQgK3lV9rJmVLvylr0b70g/5zDK8elEJguRmkhTyDdXyqfTbBcP
|
||||
W3YeIoPW
|
||||
|
||||
Name: res/rp.png
|
||||
SHA-384-Digest: 9EqQGuuDpq4LzoOY9HQXjXa9yCrkcmdJA0yQENcozxrkkRpedGMIkbL7
|
||||
I8YLY8FZ
|
||||
|
||||
Name: res/jB.xml
|
||||
SHA-384-Digest: ZBC0biVVkEo8D3CoOYmIJOLeYFMLP1nQSo6RSjjlHRmHWWO9NgJS65hq
|
||||
RgKNAl5N
|
||||
|
||||
Name: okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz
|
||||
SHA-384-Digest: Pg1KS7TNjYq3xdGSv9sZkh6a7Zr9UnEH07c4HiBQlahD+1grAN1boXms
|
||||
44ZoOY19
|
||||
|
||||
Name: res/0k.xml
|
||||
SHA-384-Digest: fOv8R1+oUY1ZJwk0RD7bGiKC31jNROzY003x97a3e+cQE+r9yDlercw/
|
||||
SwNrtMPW
|
||||
|
||||
Name: res/3A.xml
|
||||
SHA-384-Digest: iDqYUbkJ3i2oyVd2wJ3K5su6tSO8QA07umLwVOGJwWhTAOSr7vV8g+9L
|
||||
AwIkJ2KW
|
||||
|
||||
Name: assets/favicon.ico
|
||||
SHA-384-Digest: JKh/H5vzjFzgvqW5EB5eviCsilDgsmcNny2PAksMefso4wfp5sAlfrHB
|
||||
Ckx1JcIo
|
||||
|
||||
Name: res/56.xml
|
||||
SHA-384-Digest: 2fOG1gywd4JwNEN1a6vSB5kTFIlu3fr88FcyAjHeNY7YB7xfcLEeFycw
|
||||
Pxkj3rPB
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_default_color_primary_text.xml
|
||||
SHA-384-Digest: RR0AIjrErmyXBFx/YRh5j8yzPjoRX42dst3Oh5s0awnD6KTfa9bFbarS
|
||||
yb0/ggn2
|
||||
|
||||
Name: res/Ml.xml
|
||||
SHA-384-Digest: a6Nk5pzf1VootQ+NOjyvlq2YHidd3foyZHD6q/Rw//o71jE/JhLU+O4+
|
||||
+rt+JV8s
|
||||
|
||||
Name: res/NM.xml
|
||||
SHA-384-Digest: 1IX/h414UNObmSD6S6RwP+avXKyjzkQRORFT2QPVfoI0SWus6wmn0Zy2
|
||||
vUzzCWzt
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/AbstractConnector-mbean.properties
|
||||
SHA-384-Digest: WJJ2rYtQ9yXHjMXecU7IUVPU7oIkS3iG5qWbxW/KimBvB6BEKYob3lCs
|
||||
frxtjS4D
|
||||
|
||||
Name: res/bX.9.png
|
||||
SHA-384-Digest: qbCk2b41WywWLBC+IGHHEHvko/qVY7GGARUnKLgISO02OLq8D7+MqQDk
|
||||
RZePLvAk
|
||||
|
||||
Name: res/color/material_personalized_color_primary_text_inverse.xml
|
||||
SHA-384-Digest: IaYhMEksecT8sK9WR4cGysFb+3vzYVcT7SU7gN4hqRRqWc4b4/o44v2e
|
||||
nHk7N7Pl
|
||||
|
||||
Name: res/0V.xml
|
||||
SHA-384-Digest: 4eUxDShqG1fABqSwo7CWSliKUJ7MTSGgCVRDfiS0OEgFkGB6PdRPuMIH
|
||||
+NqbNKU7
|
||||
|
||||
Name: res/J71.xml
|
||||
SHA-384-Digest: D4iSuNofMHv8cbouq/I/y6/QFJdT0Q7nBvhwyQV/BPF+ntXZ/kqQWBvM
|
||||
lLJ/Q4/S
|
||||
|
||||
Name: res/zR.png
|
||||
SHA-384-Digest: z+gxk6FIZ2xCfZ0CY23uzZULZoDL8kGeTkHHKvuRutbxdjVRRz5sjUUR
|
||||
m5up1ghe
|
||||
|
||||
Name: res/tG.png
|
||||
SHA-384-Digest: GLPzrytgCvsQInLmXmPYS08WrNjY3AFp/ofr0bQZoBLtTkJM4QlpMyle
|
||||
I9md5eqo
|
||||
|
||||
Name: res/dj.xml
|
||||
SHA-384-Digest: l922YMhM1pJbr8aYblEWxIdf0EjYCLV5An9+Y3Ayv+QywzS9OpiYLje6
|
||||
VuStwESa
|
||||
|
||||
Name: res/eK.xml
|
||||
SHA-384-Digest: i94SKSuGbla4vloRi1Eywi6sJHo7UhEPOAyUhlVZtudfkCLB9qDp/4O2
|
||||
2MEuDCKU
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_internal_es2.gls
|
||||
l
|
||||
SHA-384-Digest: 72aGI36CHTGMr3GqHWCK1dJ4KbR/aj+rSQq8aevW+d/ENxhf/z89CaS3
|
||||
DDxjcK8R
|
||||
|
||||
Name: res/color/m3_chip_background_color.xml
|
||||
SHA-384-Digest: uDqHvVbO1+SF/If9AyU61ajbKkrsKicV45lCkyQyp8hp1xyikdNlog2o
|
||||
BozsjfTQ
|
||||
|
||||
Name: res/color/mtrl_choice_chip_ripple_color.xml
|
||||
SHA-384-Digest: eeObOePG7obzKa5fiU9EAYbbL0vC8d6aAhTZgy0z/5RVrJ0EkZ0xFSMl
|
||||
+/HPWVO3
|
||||
|
||||
Name: res/9z.png
|
||||
SHA-384-Digest: 37qXfpz2kvyiB7Iu/5gfYGME0wFh8XdLDJ3UWO4nIvmcT+OJuE2BeQ58
|
||||
fHR1yzQx
|
||||
|
||||
Name: res/Ma.9.png
|
||||
SHA-384-Digest: aGToD4lK9H4bN4aDCFRZCndRhptFz9HbFEygTqTFIP742XfLozP49+ND
|
||||
cZNXdib8
|
||||
|
||||
Name: res/UR.png
|
||||
SHA-384-Digest: tBPO3wC/I5Bgt0QGwkvgvEHfYtFKLVdB35RsFq/sUTwXxYjp3MDO8ogD
|
||||
iJsLnYjY
|
||||
|
||||
Name: res/color/abc_background_cache_hint_selector_material_light.xml
|
||||
SHA-384-Digest: HVfiPiHWwKDhHLsQsGhaVAhdpvA0nRc4UkMqReZtWtoCJWY6hIBgNlNh
|
||||
XZb1LBBu
|
||||
|
||||
Name: res/color/m3_slider_active_track_color.xml
|
||||
SHA-384-Digest: hu1BJgeyrwTnnrQLBty5DLrlSbQrxONFbZTodWXa9tW4f+kyzWwH+Hp8
|
||||
3GIgKIy8
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/reflect-config.json
|
||||
SHA-384-Digest: gIYIt554iTBloK5VIJX+fO+OGuWtZSG4SeB9uGq3qha4n9DSJmKlLtfs
|
||||
2rf73RGJ
|
||||
|
||||
Name: res/6_.xml
|
||||
SHA-384-Digest: /08yUm14zXOjgw3LKbs9UHgv6yz+8/4wdCN+jLOFTqKcH+xsU+vzV+Qn
|
||||
p7lU/Ilr
|
||||
|
||||
Name: res/_y.png
|
||||
SHA-384-Digest: nHakG8QaxKgLSiX2UNTsMF9BJwEBe9z2ilZOODulwbY8Y4gIP9sgniKo
|
||||
AZEj1K4g
|
||||
|
||||
Name: res/WK.xml
|
||||
SHA-384-Digest: UAfYdPrh+r8tH6Fru3NUTZtIOZKlChR/001IBe9SzxXjABOMbtBYiud6
|
||||
Mst6skmo
|
||||
|
||||
Name: res/_Q.xml
|
||||
SHA-384-Digest: pMrrQD/lq5VnjYVTmqwsHAh4e5BtujTo+HdteQ6tp+MTb5VLrWxAA87H
|
||||
6XKUNgRn
|
||||
|
||||
Name: classes5.dex
|
||||
SHA-384-Digest: t0hswY9BeYc2Mv+TyENKfmzhpRbzgvdcZB6lHtFMYyoQpNK4z/VftG7P
|
||||
cVwTPTEI
|
||||
|
||||
Name: res/color/material_personalized_primary_text_disable_only.xml
|
||||
SHA-384-Digest: gA3Xnbvq9nkfExy3OZaLEw5SQDr6yOWp87VtkmO0JFf69frEztu5YDDs
|
||||
7+r46HCU
|
||||
|
||||
Name: res/hh.9.png
|
||||
SHA-384-Digest: XsnEsYpojO7OuhFTxJwdNX/3vv609iFKtpnxwnSvQYOvo0ZSdKwWXnbS
|
||||
lDDMBRXZ
|
||||
|
||||
Name: res/fv.xml
|
||||
SHA-384-Digest: fU9dlG4J7iRzrlYKHI/2GWaxHRIKZSqVQyZ2OrpjCBxqPtpXe2o/JenX
|
||||
Z0v4Xx6f
|
||||
|
||||
Name: res/jQ.xml
|
||||
SHA-384-Digest: OoRCoiD0wSIjmFBKMWPnNmEtGwzB6u7QpWyET/A9jfwcjaATbLjH3Xic
|
||||
9wKJF428
|
||||
|
||||
Name: res/d_.png
|
||||
SHA-384-Digest: qpz0ve+dlgi2HzDZ5/6z+9VqslolIA8uzxpHU+D99XjQCoDFBpHG6VVU
|
||||
7+pr3Kwe
|
||||
|
||||
Name: res/qv.xml
|
||||
SHA-384-Digest: NoUKneaI8K2gPriIpsAkihPwCTm+FJ9Bk+gxZm0yzIxkR3D6bfNslQhq
|
||||
vvlQ3naG
|
||||
|
||||
Name: res/rW.xml
|
||||
SHA-384-Digest: 3vjYf2U1sOXgC9BVDmYvqYwBi9kiWaAf8UkjwZrbVuwH4y8QtNCfP0AS
|
||||
FGrjraJ2
|
||||
|
||||
Name: javax/servlet/LocalStrings_fr.properties
|
||||
SHA-384-Digest: YkBy01l99wbg5RDqWMZHwf68JH0R1A+OQSnLoZrAjsy+z5IzLWKvFlez
|
||||
He9q0U+D
|
||||
|
||||
Name: res/yV.xml
|
||||
SHA-384-Digest: m0FjF5KdEjtvN1GSRDezjqg3cife30+KEoHoEVEzyTo4C0onGVuhpVKW
|
||||
I1atx5HR
|
||||
|
||||
Name: META-INF/androidx.drawerlayout_drawerlayout.version
|
||||
SHA-384-Digest: fZO4/HsIi59dYMIMktb/SLoGcUGGpfZLFHU8oBbj76VYEEBmG4fQD4w/
|
||||
+S0EAa39
|
||||
|
||||
Name: res/xQ.xml
|
||||
SHA-384-Digest: XAgHMlYD/sUktn2h+n53J8ZP4FPEKPfK26gF5nRSNMkRPi7jWJrJZKwj
|
||||
IRZMioUZ
|
||||
|
||||
Name: res/Ox.xml
|
||||
SHA-384-Digest: eZqYi55DnnWrkn8No6iVsywWb2HAPNC5uWkXtOFJEFqwd09qs8xI97uc
|
||||
48Ug/Pjl
|
||||
|
||||
Name: res/fz.png
|
||||
SHA-384-Digest: /ch3M42AHrKZnwjHSgXSykdFc9t3hTn1cG3uADxPC3LkDVoIt2Bdd9Dq
|
||||
MFjopWqk
|
||||
|
||||
Name: res/2y.png
|
||||
SHA-384-Digest: UNt/0AlNtunAZ278K+XanmS5kuGwJb7Tyuthoi7uK/YPGxnRrOAGecbE
|
||||
SxKzAjPK
|
||||
|
||||
Name: res/3Z.png
|
||||
SHA-384-Digest: M1LIlyhI0gvBdeuSuv+OTh0K3TVH7LQp2+rbPXToRPDCJ2aykrjG17ml
|
||||
l2GYweMZ
|
||||
|
||||
Name: res/xH.png
|
||||
SHA-384-Digest: VDjRGdd9h6saAj0o8ZC8ryf4VZgSE0jOZSv0JKvk6LIWymIzQx6bHqkR
|
||||
jOfPyU5L
|
||||
|
||||
Name: res/_u.xml
|
||||
SHA-384-Digest: NPFeFjHZpwJMyFVxEj7TTL004OFPtnbOXP550JqTOgBcpisLQXPrrY0N
|
||||
vEMYITdm
|
||||
|
||||
Name: res/a7.xml
|
||||
SHA-384-Digest: gVuRJkAQFbDF9fsv3zjDXKLyOZs1eQ8yBIg+Hzzhuoup/3IFi7GnyIZq
|
||||
/4/YLCwH
|
||||
|
||||
Name: META-INF/versions/15/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: ti0zZFKptjThWq/TfPyTeQAmowQrjfXGZBzS58IvnwqnVN+HioTB1qI7
|
||||
QqpfQ+MZ
|
||||
|
||||
Name: res/Lq.png
|
||||
SHA-384-Digest: 5w1RIHtdG0wT89UpToXOiouAVbG/LgkyoGNGdstSDDcBpYYE3Ap+9OBX
|
||||
QNJvJ6Iv
|
||||
|
||||
Name: res/N3.png
|
||||
SHA-384-Digest: NhnqVtv/KUPL9ZOQrN5f4Fo5QCJZcNYe2NrTafO+uxvQ86WQd/e8p3Bg
|
||||
Ey0Wd88p
|
||||
|
||||
Name: res/ZE.xml
|
||||
SHA-384-Digest: 0mSJC9F0MPD81awTJRvCTFRCjl5VZP4SKHrNJ9YHgGfOauf4T7Rqi9GL
|
||||
O7VMFkNc
|
||||
|
||||
Name: res/dY.png
|
||||
SHA-384-Digest: taeRThDuhnoVjZHfwbBn0WLH1njcCtGjF2Rkn0tkl5EG0OiRo3hxyfgt
|
||||
VS1SuHY0
|
||||
|
||||
Name: res/Oi.xml
|
||||
SHA-384-Digest: bGRUqRqsIFlcZEiRGUKGTd30+J6UTRfie2oEjrVni0oOioik34a+fjeF
|
||||
GrDWdIHC
|
||||
|
||||
Name: res/YD.png
|
||||
SHA-384-Digest: jDMEytsvDGFUffMefn/56ByL0YMqFrCB1tgDtYgT2kOKFwn8fCagmKRe
|
||||
MiVWoyvf
|
||||
|
||||
Name: res/color/m3_default_color_secondary_text.xml
|
||||
SHA-384-Digest: /wqoOwswyCK8PIzt71yl8Bj2kc/RB9BMk52YMf8f+ahmFLg0xlhbXpUg
|
||||
kkMzWy3P
|
||||
|
||||
Name: res/te.png
|
||||
SHA-384-Digest: eWrXL1nlt6Xnx591L2ZN/dV+mDuSUhnLHjv28eROJAW9YFOrOb17NcVM
|
||||
mWexk8R2
|
||||
|
||||
Name: res/9T2.xml
|
||||
SHA-384-Digest: sCgojscAz22Pc6BoQRLvnbZypSjlR3XoNgvHe1yfZz03u3Oldvkncy+l
|
||||
SlXqBbGf
|
||||
|
||||
Name: lib/arm64-v8a/libmedia3ext.so
|
||||
SHA-384-Digest: sjCKJRaVOjPOUFWRMKwkBlUgJ2sPZHjKVPj0jp76oa7IMbUDA2ZgRPp/
|
||||
odOQrSyG
|
||||
|
||||
Name: res/NW.png
|
||||
SHA-384-Digest: jthvkhevVGKzsOf0XChFOlmw/SIliujAjlyAmGBIUSZtTW25sc2jdgZM
|
||||
R5GOW+TU
|
||||
|
||||
Name: res/pu.png
|
||||
SHA-384-Digest: Odnk7y7M22cukHGMnq6xppVbOBGSPhc8lGilUkHDsMeSFXo4gwAw+pac
|
||||
X+EEvbW3
|
||||
|
||||
Name: assets/images/ic_setting.svg
|
||||
SHA-384-Digest: YUW7csCLmXQ/sVc4XcM3vA5rArNsmjRXAEC3p8PZOza2EcSAvAUgtEcU
|
||||
UEAUM175
|
||||
|
||||
Name: res/Ep.png
|
||||
SHA-384-Digest: XQ5vfXXFZqaQleQvX9QJ/GVs+Df4WWtp10JVWQUMD6CJDrI6zJyxf7Z/
|
||||
eOEo8/ji
|
||||
|
||||
Name: res/vu.png
|
||||
SHA-384-Digest: gUMgkYdfRG00msqJBJnFgIZ6MJFD9mCuSasJ0pDgc/4bnF7y/TWAGaLk
|
||||
xKFqEQdm
|
||||
|
||||
Name: res/x7.png
|
||||
SHA-384-Digest: +0MZom83oLStwTauEYlIMDfNmVdnWVp0/0GtD50bzI5sl75rlkPCn/wu
|
||||
G1xMv+rK
|
||||
|
||||
Name: res/QN1.xml
|
||||
SHA-384-Digest: YD9lxm/Q+V8VYo9sB+Zy9hSKiMLf+jEwk/yJaV/fY2WbMUVciPnoQOop
|
||||
fjSJK2nT
|
||||
|
||||
Name: res/eM.xml
|
||||
SHA-384-Digest: CoOsRmp78MLvkF4P9p+mDSQK1tIj5zwh3zV+h6YtMU3J2Syuw4i0fNwh
|
||||
FBObrC2H
|
||||
|
||||
Name: res/f_.xml
|
||||
SHA-384-Digest: 7AF6MSPU+lUeKcs3+1aIH+VEp5nBPZbcV8KFQmvkbTyJTYoGXdVzUgNP
|
||||
NF2RYpnl
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_zh_CN.properties
|
||||
SHA-384-Digest: DazikSii+NdyQUbrbFMSVsPrJmRbhWLjxBb835JpNQ3yiRJqpU4fKVdg
|
||||
WiFJQU+R
|
||||
|
||||
Name: res/kz.xml
|
||||
SHA-384-Digest: R+sMSdZLrMy3GHPiu0NLkX7GLmO71vEiT6xJVOc7CtMPd36LGcuRKN1+
|
||||
4TnhsTkn
|
||||
|
||||
Name: res/color/material_personalized_hint_foreground_inverse.xml
|
||||
SHA-384-Digest: GwHHDDhtilyCoM6ORUk/XtW+ifwGy9F6fsmW02o1zi7GWUeVgTImNipR
|
||||
tw3W5jRR
|
||||
|
||||
Name: res/4H.xml
|
||||
SHA-384-Digest: qoGkmbOhKMRJD+Ia55gNCFp8MSbnBta8eZ1jngBf4h2JmzCONGGYorm8
|
||||
bhVB8h69
|
||||
|
||||
Name: res/nX.xml
|
||||
SHA-384-Digest: qHDvZm67et9V5cH5n41Iri7sZeh/J8c8C7actjSqg/bn51JCaI1oHZqP
|
||||
b4+0rPeh
|
||||
|
||||
Name: res/9p.xml
|
||||
SHA-384-Digest: 51lSNPpOYTP9GdWgWM0T10zjYtzUrieP9MVJ9+a2qUa2yDFmGDPL5nfI
|
||||
ErcjO6Fr
|
||||
|
||||
Name: res/vL.9.png
|
||||
SHA-384-Digest: PgU2SAFvgniXEsZPNd8/4vcAjMZLdpPxllLAni6F90BtyNVAGbbL4E5Q
|
||||
1i6U63x8
|
||||
|
||||
Name: res/g3.xml
|
||||
SHA-384-Digest: bANqkZwha/GoXIbJV2VZdpAoJS43ByqoHMgSVWhcr2BN7dMh/26W853n
|
||||
yiYARC1d
|
||||
|
||||
Name: res/Av.xml
|
||||
SHA-384-Digest: BkE8hodQYtv/3VxskdhodLhrf+HYZWdFFWye/tFAzbvwHWdJmXAaJFZb
|
||||
u7wvTxpl
|
||||
|
||||
Name: res/BW.xml
|
||||
SHA-384-Digest: NnbWr9LpN2cyBSWOtxfOS8HCzm/41X9jyKd6zX3RKWuhqgJioSqCbNap
|
||||
guPBLEk1
|
||||
|
||||
Name: res/9X.9.png
|
||||
SHA-384-Digest: ayKVlQ6QlmDlLO/qMtCpHiFDl9icQx10foh0mPNKHhzTwXhCmlEJRThT
|
||||
rnxBPL3V
|
||||
|
||||
Name: res/vG.xml
|
||||
SHA-384-Digest: aV3RImJbR72JnehyhgD+gChEcUU4+cNuwK+Fp86gfoYeAlKlRCvddO0P
|
||||
XEaXDQgy
|
||||
|
||||
Name: org/bouncycastle/x509/CertPathReviewerMessages.properties
|
||||
SHA-384-Digest: q2eJ99gIk/wDO2JKAPjwBWgK5u2NsmXlsodFSa0/fLZntoI7F2Vou30c
|
||||
NDKW/Jfb
|
||||
|
||||
Name: res/color/mtrl_navigation_item_icon_tint.xml
|
||||
SHA-384-Digest: AcBTGF+zMYn1BVyP9pdULFH605dDIAmhQGugeQ28N9DgtijZ0DRol/PC
|
||||
fazwuM1a
|
||||
|
||||
Name: res/color/mtrl_calendar_item_stroke_color.xml
|
||||
SHA-384-Digest: rEx9VyCjBoozAm9JUMsmutc09tlJLjYFvNuHT2KIybKJR49qiKNZgd3f
|
||||
wWvCE0Bo
|
||||
|
||||
Name: res/Sh.xml
|
||||
SHA-384-Digest: COCRKF/YXSrOIw79EG2WdDZ7m/ehqEpjDpJV92qPRZJIKBgznXIzHm8F
|
||||
/lnW4ShJ
|
||||
|
||||
Name: res/yY.9.png
|
||||
SHA-384-Digest: 5+bxfMC2U93waFWwH9MwCXeNTi+FGsXdqWoDdox/oobBc0nBwXcUE2O3
|
||||
2BHtGW7r
|
||||
|
||||
Name: res/uu.9.png
|
||||
SHA-384-Digest: WjZiIce0tzYeaQ4e+sdO47GyVTZNuIuk9ykbPtmaDuB+fuvsFyiHgs50
|
||||
FB8m86bN
|
||||
|
||||
Name: res/color/abc_tint_btn_checkable.xml
|
||||
SHA-384-Digest: VNE7f8HgWX8izVoB/t0eWg7pFnj3ZujChzqjrCV5Jnoz9SIgnPsKqRYu
|
||||
jOLjeQsx
|
||||
|
||||
Name: META-INF/androidx.swiperefreshlayout_swiperefreshlayout.version
|
||||
SHA-384-Digest: PXzK2spioJlSlZRBDGoLaM6Z2YO/aKwbuyz9WLXVQ8gg5wroeYXW2v2L
|
||||
UKZ9Ma+k
|
||||
|
||||
Name: res/f2.png
|
||||
SHA-384-Digest: 88JP2whB7GTOCWBD+4+5DMXLJfJiuW2E66NnUU6jqgSEk+ydwOupNrzi
|
||||
8TDEsDEA
|
||||
|
||||
Name: res/W51.png
|
||||
SHA-384-Digest: cwNTjCOytzKoLYSrm8KIOYa8QRCuY1YJwWsgxSBEHaesocxGMByPI63m
|
||||
GdqpxMTm
|
||||
|
||||
Name: res/color/m3_chip_ripple_color.xml
|
||||
SHA-384-Digest: 2ZBFY2c1PBQBeQlk+ripRJ/ChnyKKOgohhOE0ekkwZIy1RvhP3gVNY06
|
||||
17I+YvX4
|
||||
|
||||
Name: res/OX.png
|
||||
SHA-384-Digest: QzPJN2C1dIpXdG1+qSyVyrGKjmE7koPhJvVqp1/5qG+HKsjzE5Fu4S4a
|
||||
/05n/r/5
|
||||
|
||||
Name: res/RV.png
|
||||
SHA-384-Digest: SyxsH1NUo2ukaKfbfSMIaLLheLocoUu/Zh2CWAeqGpgETrlC/0wAmAxO
|
||||
7AQ7Cbxf
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-process.version
|
||||
SHA-384-Digest: tb4zvrKyt+xD3SBimsm9zyBy8bwKU6SXKnmc/Jz97d0UsyAumnGQOQWY
|
||||
rjLUNZOV
|
||||
|
||||
Name: res/color/mtrl_on_primary_text_btn_text_color_selector.xml
|
||||
SHA-384-Digest: L7fSGmHopoYZJQsPjzZkXBjDPV17wnPU9KooPO8dAixLloe6mlTdTfH7
|
||||
3LH0L0vA
|
||||
|
||||
Name: res/ZM.png
|
||||
SHA-384-Digest: 58XCczHX1r1XyyPEPSsqqx4Xnuu5OZ01uEYQjw+coFmsKq5Js9720Cbf
|
||||
MdNj2QmX
|
||||
|
||||
Name: res/ar.png
|
||||
SHA-384-Digest: On1U7cA9ZzzIrsFR1zBZTj7FxpWYLbk+nzgsaJoZPXV8a+bYwAb5Fsu6
|
||||
HkWE9HDA
|
||||
|
||||
Name: res/UP.xml
|
||||
SHA-384-Digest: BlkJQJiwCWEda9+zsqkb95AvVYDHJB+nxQVbD7A7pR/ZR81LvJCmMoeh
|
||||
nTgzEQCV
|
||||
|
||||
Name: res/V1.xml
|
||||
SHA-384-Digest: eT50vpMM9SefBugS8haAfJyYQl9umQOxue0y5oIwz/neRe1Qkwokbhek
|
||||
0R2ooDGu
|
||||
|
||||
Name: META-INF/services/java.security.Provider
|
||||
SHA-384-Digest: rNzpHZ9RvVTqROYb/UEuShmZFaoY6/2S97fItrm/bVHmFeZfQ6RqXGSN
|
||||
qz7xlZ69
|
||||
|
||||
Name: res/zp.xml
|
||||
SHA-384-Digest: b7DBEEKAVpPb4FrSml7bo8GNS9LflrU60LpB16Kxqfq4aRPkULzDrPGh
|
||||
nn4HhfTP
|
||||
|
||||
Name: res/hG.xml
|
||||
SHA-384-Digest: vzF4mfxUsmXzAN9sfYsgtv5PR3m6IgngTkWk2hBwIaAn3lXDqkQbIG35
|
||||
9T4Q2197
|
||||
|
||||
Name: res/cc.xml
|
||||
SHA-384-Digest: OYKdNG6llrFjlzYHQh5SIy4Z68tmRFenqfPi6nqqDNEJW0El2bSAPDAv
|
||||
HnBzsTLd
|
||||
|
||||
Name: res/3z.png
|
||||
SHA-384-Digest: bUfIbUn5+0ho7BpB9xUBxS2PYLAsAdHqFJBB9r4iff3t3rZefp2SP3UK
|
||||
3dCK6+Sy
|
||||
|
||||
Name: res/0X.png
|
||||
SHA-384-Digest: nG5UM96OwhjhVD6GR8TcaoUkj/IEk5be2cTMtRETIgE1+shrO7QNRVsE
|
||||
+kmtj+9I
|
||||
|
||||
Name: res/EH.png
|
||||
SHA-384-Digest: TZzuGJclMHHLTd9kJGnzv5jryDq5lCgJAbpE9aIfIgFIy1RPYr8XxOWx
|
||||
VyZ3fZ05
|
||||
|
||||
Name: res/Z8.png
|
||||
SHA-384-Digest: jTcBitc6etJaSS8EU3Yczn0psI6wJVzyzsHLECmaWhua1OoZTYDy3df5
|
||||
1z45r9Ha
|
||||
|
||||
Name: res/o_.9.png
|
||||
SHA-384-Digest: P24U0g1+yxSCQKtCLJeLh2GoKU8QAq3++MpfOdFTyia94CB3MumFSxK3
|
||||
Pyzvr+uQ
|
||||
|
||||
Name: res/V5.png
|
||||
SHA-384-Digest: Eq9HN2Mm5yKqOpww+RwRiN5rJ/A1OS3l+omHJdBb2Q0Hd1f2Jo40SDdR
|
||||
3wtOg1ow
|
||||
|
||||
Name: res/Fg1.xml
|
||||
SHA-384-Digest: clKubaOp6BfbZ+J/DZol1zyt+u1keemFyX1Hxw6vTZ4NXri1i2uyy4Hp
|
||||
fRxNd6Fv
|
||||
|
||||
Name: res/color/mtrl_switch_thumb_icon_tint.xml
|
||||
SHA-384-Digest: ttA2Ga0ZSNcsZWoTSIJOLpLsI7+VXWx47ha/aapTOSXElppc6URcu5uh
|
||||
Dtvj4GBS
|
||||
|
||||
Name: META-INF/androidx.viewpager_viewpager.version
|
||||
SHA-384-Digest: eTlY+O+SF4rzkafvD0RbGgC2MIz0yLg6L2Y0RaGdrcML03buuVbD+KFS
|
||||
YXiiEv8T
|
||||
|
||||
Name: res/y4.xml
|
||||
SHA-384-Digest: eFvvGIC/pa78C7p6+EbXCfMmERH+AnNaHgp2yGClPHG2a8bq5GfJ+DxM
|
||||
iwJKBnQC
|
||||
|
||||
Name: res/Y3.png
|
||||
SHA-384-Digest: +KsHZKNK4FX7svi07SyrT0Zv8OHkqD61cJhDJt04GwiWv6ouAtrQVRUg
|
||||
pNrgYurQ
|
||||
|
||||
Name: res/_U.png
|
||||
SHA-384-Digest: QkjavLoPqkHm555GjrYRYhYKZ/TXE8ZTW8AiXck0kQOS2FQ87kDhR97q
|
||||
3OvrbKM8
|
||||
|
||||
Name: META-INF/androidx.cardview_cardview.version
|
||||
SHA-384-Digest: VlWO/SAPFtUyoIeWVHUdy+65wUvbFYIGSSBw51w/9d52gmTToaRS8qpR
|
||||
gi95Yv2W
|
||||
|
||||
Name: res/n0.xml
|
||||
SHA-384-Digest: XI3vI0bCWbAhSz0qCm54YzWWLLyOLewQEg8YNzdzzwX3bYgljt/dc3xs
|
||||
eTKWfxzi
|
||||
|
||||
Name: res/RV.ttf
|
||||
SHA-384-Digest: xOTLd2+7QLw0XGhi33wDzGaTSTUdJls4TrbyKiSJoQSSimr0eGiz0Pla
|
||||
yShHNI/A
|
||||
|
||||
Name: res/color/mtrl_btn_text_color_selector.xml
|
||||
SHA-384-Digest: kNWWbt/OF2HCPAnRPLEzOCr0/fy5PwMrLh7bIxjbINt1dACbAzOeku26
|
||||
uCpgwiRw
|
||||
|
||||
Name: res/vM.png
|
||||
SHA-384-Digest: RtOC9HwgslPlR1Jl5TBG9KhEOvU2101UpNUWjHlXN3B62FMM2M5kXqix
|
||||
XZ3GykAK
|
||||
|
||||
Name: res/PL.png
|
||||
SHA-384-Digest: u50XejDXUtgmYJUy7isJbxklOEJcaLLlg7GTF4H5Pn2t61jWTSq7IA7Y
|
||||
ivo7s126
|
||||
|
||||
Name: res/Q-.png
|
||||
SHA-384-Digest: huxCWvIiZs5WG9U+1d3b+bEOr+FMdCpn+wgQT2aGjELRZTvKGoJPV0Hu
|
||||
9sbKSCMf
|
||||
|
||||
Name: lib/arm64-v8a/libcronet.76.0.3809.111.so
|
||||
SHA-384-Digest: 0PgmQEAn6r5jyp1BXBWcmRb4CVoaS1+IY3Q5Hxe+SseFyDOgqi9MIQ5A
|
||||
YhNGS8MX
|
||||
|
||||
Name: res/2S.png
|
||||
SHA-384-Digest: sZGG4BK6IlBgOLGzbvRAcQCR1+FN9bIOK5zFoVA3m8fDQ1SNOKkzJFwn
|
||||
7VepkYEB
|
||||
|
||||
Name: META-INF/androidx.coordinatorlayout_coordinatorlayout.version
|
||||
SHA-384-Digest: sNC3JJf9bXEFwzgax/iNZpcn0rC14jw9lm2kYx705tAo9d8hsIChNijf
|
||||
kkDpBVyB
|
||||
|
||||
Name: res/47.png
|
||||
SHA-384-Digest: UkhQOVOl4JIM96qxa3U8H7I3JA6F3FUKmJhNqTa/YqJHDsHfZFimuCrT
|
||||
/UWE0KVf
|
||||
|
||||
Name: res/GN.xml
|
||||
SHA-384-Digest: imL2GlZzmlcOeJaGghXsL/DY1dvRdT0DTYD3EM3mqLLlgeAblLTBhQad
|
||||
fPoSNC53
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant92.xml
|
||||
SHA-384-Digest: eE6trX2Ga/RmOhTaGy+AGg6Iegz/fCIRqL8J8iC0/80EcUYy6NUD0UAl
|
||||
se9gNL6u
|
||||
|
||||
Name: res/9x.png
|
||||
SHA-384-Digest: yjUNPEwtrDZM4I6X6r/9nplSHYyVqjSVW0UfM0/PZwoAoV++kZIbDv01
|
||||
q2v4oBkA
|
||||
|
||||
Name: res/o_.png
|
||||
SHA-384-Digest: x6wT0aZmSGqCuDkZeaOrmsEnnJ4hYjxgELGio4q5AOyoWiZ2s0QQog3t
|
||||
ItTg2JTa
|
||||
|
||||
Name: META-INF/kotlinx_coroutines_core.version
|
||||
SHA-384-Digest: 7jc5+d6JMuR0MBxtFsrj4EPPVd9Is4Qdq5KPSfcxh30VgyIIqJT2HeiP
|
||||
UxkYCrnv
|
||||
|
||||
Name: res/SJ.png
|
||||
SHA-384-Digest: 5S6f64TgVvDC7Lsu11XHQxtsCoug7HdpERLrOu0K0WvKI1ESyiWqtaW0
|
||||
5fZnsgmk
|
||||
|
||||
Name: res/g-1.png
|
||||
SHA-384-Digest: ZT29IxX8OA+rHxbW6+K9D7spAZgV8gnRZH44+L8pSfQab/FLbnjdw4Y4
|
||||
LdYTg0CW
|
||||
|
||||
Name: res/VN1.xml
|
||||
SHA-384-Digest: uswy8+CnUbbYtY10/4HLGw4GwzG6qxE8xI4LY0VxwnNJdvCjqnzsn1ve
|
||||
v8kcdpw4
|
||||
|
||||
Name: res/F8.xml
|
||||
SHA-384-Digest: lBtxrt7Z0fewmXazsXYOvFsjOBBSFwDKknhZjOndcDi+jzdUYgxhSABL
|
||||
/UjZw1L5
|
||||
|
||||
Name: res/GA.png
|
||||
SHA-384-Digest: lgB/et99CU8Ht0DcGJ4Y0iWLuVGqPIjRyxl/f5bcy9lhqGjsA2Fe/32o
|
||||
fthZ623y
|
||||
|
||||
Name: META-INF/androidx.annotation_annotation-experimental.version
|
||||
SHA-384-Digest: xjLWgfsCrtsNEmxBI3BJ/RmFPP/B6EoJnh9yDZ46ruMMQjt0yAV+cEzZ
|
||||
sGf0AawA
|
||||
|
||||
Name: res/49.png
|
||||
SHA-384-Digest: ItM7NNq7Mslq5vEOoHb9SfcFFisfDUEwNeKPGXawf6AcmC+8nCaq2ZlP
|
||||
0rsicy28
|
||||
|
||||
Name: res/6z.png
|
||||
SHA-384-Digest: wKocOUiLriw1ymDNgCVX2tcCxcrGl84ZLKJQsgmtqTCtQsrZ0GEgWrEU
|
||||
oS6Ih4Uz
|
||||
|
||||
Name: res/color/material_slider_inactive_track_color.xml
|
||||
SHA-384-Digest: ookzSC19C0xOgk1r2YvEl/jzdBmWmygiDBS/CXpmXeL+w6UiCBlD1xmE
|
||||
uEnu8JiH
|
||||
|
||||
Name: res/color/m3_text_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: SIFdg1P7B5bzUKdGSjgPK3/zY4eKJ27ooIifNmo0q0r92lnKTg1zgAtu
|
||||
OR2SR/5n
|
||||
|
||||
Name: res/0Z.png
|
||||
SHA-384-Digest: +G7d+7QrSESKqyWF5cXLY43PEGO/Xn1c2ItWfV04KoPjoESsFFOq0jwX
|
||||
9rsUTSiV
|
||||
|
||||
Name: assets/js/script.js
|
||||
SHA-384-Digest: ewBhBji8NMKsk/xBfZVGyfN7VtNOGsdKDtSCysVrwFweRlYfzjPcZk23
|
||||
zeGYK4u1
|
||||
|
||||
Name: classes3.dex
|
||||
SHA-384-Digest: xWazOD16BzKwwYtbvwTFBobv3e0R47tPNnYYVEeVscE6Bme/d4hldGK6
|
||||
hxCWEZZQ
|
||||
|
||||
Name: res/YN.webp
|
||||
SHA-384-Digest: rd0XtlUtXib1eYG/E2Lz0ZjlLtXTkoHiefT5TVuTjhFLFEp0CDMxwhXE
|
||||
1YkQv3o1
|
||||
|
||||
Name: res/ut.9.png
|
||||
SHA-384-Digest: JYhDfObetmr5m9IG/OHKfj9YEt6bLBGpn2CuM9T7y+q9dQPckne/LuHq
|
||||
xWecLo0n
|
||||
|
||||
Name: res/3R.xml
|
||||
SHA-384-Digest: eKBRPtyoMOBfAzJaLUNK3lXrueOj2F6/OF0bPsiK/bfHctJKfYCvHRff
|
||||
uJty28tt
|
||||
|
||||
Name: res/color-v23/abc_tint_switch_track.xml
|
||||
SHA-384-Digest: M7UXgI0otjK3oTkQbLeRYAYyy/SLgSslgik/nAOP5DZsD7+VFwT7Ta0X
|
||||
CrDpRZff
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/resource-config.json
|
||||
SHA-384-Digest: 1Slfz83Mk94Dhaxr58hMlyRKBewuHu67p9ydJpcgQdeXJUhOskKqW990
|
||||
C98W33ZD
|
||||
|
||||
Name: res/qx.xml
|
||||
SHA-384-Digest: ucCTY2wotRSa19DuL18N6EmrDVDPccpKqt82xA6qgOIfo2QGtMqC7f1K
|
||||
rta6EWfD
|
||||
|
||||
Name: res/rY.xml
|
||||
SHA-384-Digest: H+Ix4/OPK8RPOSc64+GhDJey8LwTiyiNL4Ebto2Hoq85Y2ABxiTPzxrB
|
||||
KdfQk5L3
|
||||
|
||||
Name: assets/index.html
|
||||
SHA-384-Digest: +J8RJ2w2SV3g5KDb9YTYo9joCUukEYYnR8myOulFSZtIfdCBGIUVoadY
|
||||
ccBv2ccr
|
||||
|
||||
Name: res/d7.png
|
||||
SHA-384-Digest: Fa46LatTcXENwKpguod4OHf5WWQtFPPMNTS0ocxP6Am0ettCAD17762K
|
||||
+8xfo9QN
|
||||
|
||||
Name: org/eclipse/jetty/favicon.ico
|
||||
SHA-384-Digest: weucH7CvvkaODAvjpvsmAijW5M0wYj1A7NpzhWF3Q1WmRFjaLGWtmdcb
|
||||
J3+b6WiF
|
||||
|
||||
Name: res/A0.xml
|
||||
SHA-384-Digest: +A35ndfeyjxMLjJfjkmALpA8i1v5OEQW3rMahQLdTK9Akf0SBvlBKvT8
|
||||
UHAcNVP+
|
||||
|
||||
Name: res/0C.xml
|
||||
SHA-384-Digest: GGJMBO+zlUwCw2T8VN9ysR0OQal8WlwmalLVNYTELNq7W42r03bkySdU
|
||||
OtlJWT+p
|
||||
|
||||
Name: res/Gt.xml
|
||||
SHA-384-Digest: Jrmoh6HtdSE+4CJGCWtxJb9+ulJ8VlgKkRPTNgJJ1TXjQm+2tC9wNVAJ
|
||||
W7hPi7E6
|
||||
|
||||
Name: res/4F.xml
|
||||
SHA-384-Digest: HiPuHkA66+FBOImrNvF7nSvUmyzAKhFjNCtK/W0qdvci0pglGgnzNXKj
|
||||
iYfI3y7t
|
||||
|
||||
Name: res/gy.xml
|
||||
SHA-384-Digest: wdBAfUrPJhhQctnSgxyxNb6ds3kCmtVtAhJle4Sm+3mfIZn8EiacJfSp
|
||||
N7yGnl8J
|
||||
|
||||
Name: res/a5.xml
|
||||
SHA-384-Digest: onorOSxgDb8XUer6ilN0pB8r4CUxzl3UxcNmjfUgbpfsDtNdrJ4CJtyF
|
||||
+J7SBtoO
|
||||
|
||||
Name: res/cv.xml
|
||||
SHA-384-Digest: w5rAYu8sWOkoSFJo/eI2kk7U77PysBeLvvXHTrN/thFiJVVbw1sZu3WZ
|
||||
8Oqtzl8p
|
||||
|
||||
Name: res/jW.png
|
||||
SHA-384-Digest: Blr8BQnLYd4GzBV/eBApjOwWjEBNdnApcGtXxZ/y+/vkUG09/yQin3CG
|
||||
N24IcZui
|
||||
|
||||
Name: res/my.png
|
||||
SHA-384-Digest: bWh2JInly/E+xkkanFmAXvahy4myKkc5AvlxYKjo3Zkx6+jghqP8eDtQ
|
||||
PcnytmzU
|
||||
|
||||
Name: res/YF.png
|
||||
SHA-384-Digest: 9ovNByAzuQ4p4umNC1FtFUgp5DiVFIU7r4UnGvajC4GicV6DNHm9jGUX
|
||||
UX2fvkzY
|
||||
|
||||
Name: res/nz.xml
|
||||
SHA-384-Digest: zl0Pj89bZDSfGCHXpxSMuTiTEJ8ylNjBkISI+54tzdV0rvePCPNl/Ulj
|
||||
OeRjURlu
|
||||
|
||||
Name: res/color-v23/abc_tint_btn_checkable.xml
|
||||
SHA-384-Digest: FQuIsAdY0f8ZeS9ncAuE+nFwEwHymBMCHNzwO1Mhq2Q1vWvi9x8nwc47
|
||||
t18lyUCk
|
||||
|
||||
Name: res/2d.png
|
||||
SHA-384-Digest: +sp/LnbRwGY4+W/ItbZLm8LRvmOaa9KSCZHQVjCXuMNSB8ezcF6xKPDw
|
||||
KI3nUNtk
|
||||
|
||||
Name: res/3E.png
|
||||
SHA-384-Digest: DuX0tfObMeIx37dbDwoWJmClExNvGkGXKKC2mJTt4Ryl+7bp8Cu1j3gn
|
||||
kVJPPBs5
|
||||
|
||||
Name: res/qA.xml
|
||||
SHA-384-Digest: bEb8F9PEJHSzTK6RlPZJDnh1qcaiVQ7lnR8bTZNMb2X6V1YzqNjaUGKn
|
||||
2MX2WFSz
|
||||
|
||||
Name: res/lP.9.png
|
||||
SHA-384-Digest: yefbBYp1Csh3wATSA1QNwzihN2XYXsCb1illIXqujsrBxdaUh+9m4Q4T
|
||||
Ybw+LTRd
|
||||
|
||||
Name: res/CQ.png
|
||||
SHA-384-Digest: 0oPf3U0tvPWVD9idBg7YBArtkrBT799+Ts3mDXPToPluS8I6z80P3bGW
|
||||
yTKJEVqf
|
||||
|
||||
Name: res/WI.xml
|
||||
SHA-384-Digest: J26qqdMvtlMd33NfQwBSIjeppfMwDLTAmnnUJfI3nITwKJ7Veg5Yx6LE
|
||||
6ShdEJw0
|
||||
|
||||
Name: res/color/type_text_color.xml
|
||||
SHA-384-Digest: fMnpdzeImHuSE5xkMsFUJ+oZfJo/RctO5j9WnmByZD7mjURxQb+jxi1+
|
||||
Rvo+o8N0
|
||||
|
||||
Name: res/eO.png
|
||||
SHA-384-Digest: eCiTz5pcXbuGXAOcyQ8Xuni/mDyo5wGfRclH+HtIK5OOmx4b+wZhMklQ
|
||||
4BERCLgx
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
1.8.0
|
||||
@@ -1 +0,0 @@
|
||||
1.8.0
|
||||
@@ -1 +0,0 @@
|
||||
1.4.1
|
||||
@@ -1 +0,0 @@
|
||||
1.7.0
|
||||
@@ -1 +0,0 @@
|
||||
1.7.0
|
||||
@@ -1 +0,0 @@
|
||||
task ':arch:core:core-runtime:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
1.13.1
|
||||
@@ -1 +0,0 @@
|
||||
1.13.1
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
8.8.2
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.1
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.3.0
|
||||
@@ -1 +0,0 @@
|
||||
1.3.0
|
||||
@@ -1 +0,0 @@
|
||||
1.3.6
|
||||
@@ -1 +0,0 @@
|
||||
1.3.6
|
||||
@@ -1 +0,0 @@
|
||||
1.5.4
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-livedata-core-ktx:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-livedata-core:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-livedata:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-process:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-runtime-ktx:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-runtime:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-viewmodel-ktx:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-viewmodel-savedstate:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-viewmodel:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.7.0
|
||||
@@ -1 +0,0 @@
|
||||
1.2.1
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.3.1
|
||||
@@ -1 +0,0 @@
|
||||
1.3.0
|
||||
@@ -1 +0,0 @@
|
||||
2.7.1
|
||||
@@ -1 +0,0 @@
|
||||
1.2.1
|
||||
@@ -1 +0,0 @@
|
||||
1.2.1
|
||||
@@ -1 +0,0 @@
|
||||
1.2.0
|
||||
@@ -1 +0,0 @@
|
||||
2.5.0
|
||||
@@ -1 +0,0 @@
|
||||
2.5.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.1
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.5.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.1
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1,178 +0,0 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
1.12.0
|
||||
@@ -1,21 +0,0 @@
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2009-2025 Jonathan Hedley <https://jsoup.org/>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1 +0,0 @@
|
||||
1.7.3
|
||||
@@ -1 +0,0 @@
|
||||
1.7.3
|
||||
@@ -1,30 +0,0 @@
|
||||
#default mime types for nanohttpd, use META-INF/mimetypes.properties for user defined mimetypes
|
||||
css=text/css
|
||||
htm=text/html
|
||||
html=text/html
|
||||
xml=text/xml
|
||||
java=text/x-java-source, text/java
|
||||
md=text/plain
|
||||
txt=text/plain
|
||||
asc=text/plain
|
||||
gif=image/gif
|
||||
jpg=image/jpeg
|
||||
jpeg=image/jpeg
|
||||
png=image/png
|
||||
svg=image/svg+xml
|
||||
mp3=audio/mpeg
|
||||
m3u=audio/mpeg-url
|
||||
mp4=video/mp4
|
||||
ogv=video/ogg
|
||||
flv=video/x-flv
|
||||
mov=video/quicktime
|
||||
swf=application/x-shockwave-flash
|
||||
js=application/javascript
|
||||
pdf=application/pdf
|
||||
doc=application/msword
|
||||
ogg=application/x-ogg
|
||||
zip=application/octet-stream
|
||||
exe=application/octet-stream
|
||||
class=application/octet-stream
|
||||
m3u8=application/vnd.apple.mpegurl
|
||||
ts=video/mp2t
|
||||
@@ -1 +0,0 @@
|
||||
#mime types for nanohttpd, use a file like this for user defined mimetypes
|
||||
@@ -1 +0,0 @@
|
||||
Args = -H:+AddAllCharsets -H:EnableURLProtocols=http,https --enable-https --features=okhttp3.internal.graal.OkHttpFeature
|
||||
@@ -1,22 +0,0 @@
|
||||
[
|
||||
{
|
||||
"name": "kotlin.internal.jdk8.JDK8PlatformImplementations",
|
||||
"allDeclaredConstructors":true
|
||||
},
|
||||
{
|
||||
"name": "kotlin.KotlinVersion",
|
||||
"allPublicMethods": true,
|
||||
"allDeclaredFields":true,
|
||||
"allDeclaredMethods":true,
|
||||
"allDeclaredConstructors":true
|
||||
},
|
||||
{
|
||||
"name": "kotlin.KotlinVersion[]"
|
||||
},
|
||||
{
|
||||
"name": "kotlin.KotlinVersion$Companion"
|
||||
},
|
||||
{
|
||||
"name": "kotlin.KotlinVersion$Companion[]"
|
||||
}
|
||||
]
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"resources": [
|
||||
{"pattern": "okhttp3/internal/publicsuffix/publicsuffixes.gz"}
|
||||
]
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
org.bouncycastle.jce.provider.BouncyCastleProvider
|
||||
org.bouncycastle.pqc.jcajce.provider.BouncyCastlePQCProvider
|
||||
@@ -1 +0,0 @@
|
||||
org.mozilla.javascript.engine.RhinoScriptEngineFactory
|
||||
@@ -1 +0,0 @@
|
||||
kotlinx.coroutines.android.AndroidExceptionPreHandler
|
||||
@@ -1 +0,0 @@
|
||||
kotlinx.coroutines.android.AndroidDispatcherFactory
|
||||
@@ -1 +0,0 @@
|
||||
org.xmlpull.mxp1.MXParserFactory
|
||||
@@ -1,5 +0,0 @@
|
||||
repositories {
|
||||
system: GIT
|
||||
local_root_path: "$PROJECT_DIR"
|
||||
revision: "a03ac275211c5afa5764e9cd7724de5405f4d029"
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Import-Package: java.io;resolution:=optional,java.lang;resolution:=opt
|
||||
ional,java.lang.invoke;resolution:=optional,java.lang.ref;resolution:
|
||||
=optional,java.lang.reflect;resolution:=optional,java.math;resolution
|
||||
:=optional,java.net;resolution:=optional,java.nio;resolution:=optiona
|
||||
l,java.nio.channels;resolution:=optional,java.nio.charset;resolution:
|
||||
=optional,java.security;resolution:=optional,java.security.cert;resol
|
||||
ution:=optional,java.security.interfaces;resolution:=optional,java.se
|
||||
curity.spec;resolution:=optional,java.sql;resolution:=optional,java.t
|
||||
ext;resolution:=optional,java.util;resolution:=optional,java.util.con
|
||||
current;resolution:=optional,java.util.concurrent.atomic;resolution:=
|
||||
optional,java.util.logging;resolution:=optional,java.util.zip;resolut
|
||||
ion:=optional,javax.crypto;resolution:=optional,javax.crypto.interfac
|
||||
es;resolution:=optional,javax.crypto.spec;resolution:=optional,javax.
|
||||
naming;resolution:=optional,javax.naming.directory;resolution:=option
|
||||
al,javax.security.auth;resolution:=optional,javax.security.auth.callb
|
||||
ack;resolution:=optional,javax.security.auth.x500;resolution:=optiona
|
||||
l
|
||||
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=11))"
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Import-Package: java.io;resolution:=optional,java.lang;resolution:=opt
|
||||
ional,java.lang.invoke;resolution:=optional,java.lang.ref;resolution:
|
||||
=optional,java.lang.reflect;resolution:=optional,java.math;resolution
|
||||
:=optional,java.net;resolution:=optional,java.nio;resolution:=optiona
|
||||
l,java.nio.channels;resolution:=optional,java.nio.charset;resolution:
|
||||
=optional,java.security;resolution:=optional,java.security.cert;resol
|
||||
ution:=optional,java.security.interfaces;resolution:=optional,java.se
|
||||
curity.spec;resolution:=optional,java.sql;resolution:=optional,java.t
|
||||
ext;resolution:=optional,java.util;resolution:=optional,java.util.con
|
||||
current;resolution:=optional,java.util.concurrent.atomic;resolution:=
|
||||
optional,java.util.logging;resolution:=optional,java.util.zip;resolut
|
||||
ion:=optional,javax.crypto;resolution:=optional,javax.crypto.interfac
|
||||
es;resolution:=optional,javax.crypto.spec;resolution:=optional,javax.
|
||||
naming;resolution:=optional,javax.naming.directory;resolution:=option
|
||||
al,javax.security.auth;resolution:=optional,javax.security.auth.callb
|
||||
ack;resolution:=optional,javax.security.auth.x500;resolution:=optiona
|
||||
l
|
||||
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=15))"
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Import-Package: java.io;resolution:=optional,java.lang;resolution:=opt
|
||||
ional,java.lang.invoke;resolution:=optional,java.lang.ref;resolution:
|
||||
=optional,java.lang.reflect;resolution:=optional,java.math;resolution
|
||||
:=optional,java.net;resolution:=optional,java.nio;resolution:=optiona
|
||||
l,java.nio.channels;resolution:=optional,java.nio.charset;resolution:
|
||||
=optional,java.security;resolution:=optional,java.security.cert;resol
|
||||
ution:=optional,java.security.interfaces;resolution:=optional,java.se
|
||||
curity.spec;resolution:=optional,java.sql;resolution:=optional,java.t
|
||||
ext;resolution:=optional,java.util;resolution:=optional,java.util.con
|
||||
current;resolution:=optional,java.util.concurrent.atomic;resolution:=
|
||||
optional,java.util.logging;resolution:=optional,java.util.zip;resolut
|
||||
ion:=optional,javax.crypto;resolution:=optional,javax.crypto.interfac
|
||||
es;resolution:=optional,javax.crypto.spec;resolution:=optional,javax.
|
||||
naming;resolution:=optional,javax.naming.directory;resolution:=option
|
||||
al,javax.security.auth;resolution:=optional,javax.security.auth.callb
|
||||
ack;resolution:=optional,javax.security.auth.x500;resolution:=optiona
|
||||
l
|
||||
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=21))"
|
||||
|
||||
@@ -1,5576 +0,0 @@
|
||||
body {
|
||||
--weui-BTN-DISABLED-FONT-COLOR: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BTN-DISABLED-FONT-COLOR: hsla(0, 0%, 100%, 0.2);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-DISABLED-FONT-COLOR: hsla(0, 0%, 100%, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BTN-DEFAULT-BG: #f2f2f2;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BTN-DEFAULT-BG: hsla(0, 0%, 100%, 0.08);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-DEFAULT-BG: hsla(0, 0%, 100%, 0.08);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BTN-DEFAULT-COLOR: #06ae56;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BTN-DEFAULT-COLOR: hsla(0, 0%, 100%, 0.8);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-DEFAULT-COLOR: hsla(0, 0%, 100%, 0.8);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BTN-DEFAULT-ACTIVE-BG: #e6e6e6;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BTN-DEFAULT-ACTIVE-BG: hsla(0, 0%, 100%, 0.126);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-DEFAULT-ACTIVE-BG: hsla(0, 0%, 100%, 0.126);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BTN-ACTIVE-MASK: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BTN-ACTIVE-MASK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-ACTIVE-MASK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
}
|
||||
|
||||
body[data-weui-mode="care"] {
|
||||
--weui-BTN-DEFAULT-COLOR: #018942;
|
||||
}
|
||||
|
||||
body[data-weui-mode="care"][data-weui-theme="dark"] {
|
||||
--weui-BTN-DEFAULT-COLOR: hsla(0, 0%, 100%, 0.8);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body[data-weui-mode="care"]:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-DEFAULT-COLOR: hsla(0, 0%, 100%, 0.8);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-DIALOG-LINE-COLOR: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-DIALOG-LINE-COLOR: hsla(0, 0%, 100%, 0.1);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-DIALOG-LINE-COLOR: hsla(0, 0%, 100%, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
line-height: 1.6;
|
||||
font-family: system-ui, -apple-system, Helvetica Neue, sans-serif;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
a img {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
input,
|
||||
textarea {
|
||||
caret-color: #07c160;
|
||||
caret-color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
::placeholder {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BG-0: #ededed;
|
||||
--weui-BG-1: #f7f7f7;
|
||||
--weui-BG-2: #fff;
|
||||
--weui-BG-3: #f7f7f7;
|
||||
--weui-BG-4: #4c4c4c;
|
||||
--weui-BG-5: #fff;
|
||||
--weui-FG-0: rgba(0, 0, 0, 0.9);
|
||||
--weui-FG-HALF: rgba(0, 0, 0, 0.9);
|
||||
--weui-FG-1: rgba(0, 0, 0, 0.5);
|
||||
--weui-FG-2: rgba(0, 0, 0, 0.3);
|
||||
--weui-FG-3: rgba(0, 0, 0, 0.1);
|
||||
--weui-FG-4: rgba(0, 0, 0, 0.15);
|
||||
--weui-RED: #fa5151;
|
||||
--weui-ORANGE: #fa9d3b;
|
||||
--weui-YELLOW: #ffc300;
|
||||
--weui-GREEN: #91d300;
|
||||
--weui-LIGHTGREEN: #95ec69;
|
||||
--weui-BRAND: #07c160;
|
||||
--weui-BLUE: #10aeff;
|
||||
--weui-INDIGO: #1485ee;
|
||||
--weui-PURPLE: #6467f0;
|
||||
--weui-WHITE: #fff;
|
||||
--weui-LINK: #576b95;
|
||||
--weui-TEXTGREEN: #06ae56;
|
||||
--weui-FG: #000;
|
||||
--weui-BG: #fff;
|
||||
--weui-TAG-TEXT-ORANGE: #fa9d3b;
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(250, 157, 59, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: #06ae56;
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: #10aeff;
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(16, 174, 255, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: rgba(0, 0, 0, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BG-0: #111;
|
||||
--weui-BG-1: #1e1e1e;
|
||||
--weui-BG-2: #191919;
|
||||
--weui-BG-3: #202020;
|
||||
--weui-BG-4: #404040;
|
||||
--weui-BG-5: #2c2c2c;
|
||||
--weui-FG-0: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-FG-HALF: hsla(0, 0%, 100%, 0.6);
|
||||
--weui-FG-1: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-FG-2: hsla(0, 0%, 100%, 0.3);
|
||||
--weui-FG-3: hsla(0, 0%, 100%, 0.1);
|
||||
--weui-FG-4: hsla(0, 0%, 100%, 0.15);
|
||||
--weui-RED: #fa5151;
|
||||
--weui-ORANGE: #c87d2f;
|
||||
--weui-YELLOW: #cc9c00;
|
||||
--weui-GREEN: #74a800;
|
||||
--weui-LIGHTGREEN: #3eb575;
|
||||
--weui-BRAND: #07c160;
|
||||
--weui-BLUE: #10aeff;
|
||||
--weui-INDIGO: #1196ff;
|
||||
--weui-PURPLE: #8183ff;
|
||||
--weui-WHITE: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-LINK: #7d90a9;
|
||||
--weui-TEXTGREEN: #259c5c;
|
||||
--weui-FG: #fff;
|
||||
--weui-BG: #000;
|
||||
--weui-TAG-TEXT-ORANGE: rgba(250, 157, 59, 0.6);
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(250, 157, 59, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: rgba(6, 174, 86, 0.6);
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: rgba(16, 174, 255, 0.6);
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(16, 174, 255, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BG-0: #111;
|
||||
--weui-BG-1: #1e1e1e;
|
||||
--weui-BG-2: #191919;
|
||||
--weui-BG-3: #202020;
|
||||
--weui-BG-4: #404040;
|
||||
--weui-BG-5: #2c2c2c;
|
||||
--weui-FG-0: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-FG-HALF: hsla(0, 0%, 100%, 0.6);
|
||||
--weui-FG-1: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-FG-2: hsla(0, 0%, 100%, 0.3);
|
||||
--weui-FG-3: hsla(0, 0%, 100%, 0.1);
|
||||
--weui-FG-4: hsla(0, 0%, 100%, 0.15);
|
||||
--weui-RED: #fa5151;
|
||||
--weui-ORANGE: #c87d2f;
|
||||
--weui-YELLOW: #cc9c00;
|
||||
--weui-GREEN: #74a800;
|
||||
--weui-LIGHTGREEN: #3eb575;
|
||||
--weui-BRAND: #07c160;
|
||||
--weui-BLUE: #10aeff;
|
||||
--weui-INDIGO: #1196ff;
|
||||
--weui-PURPLE: #8183ff;
|
||||
--weui-WHITE: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-LINK: #7d90a9;
|
||||
--weui-TEXTGREEN: #259c5c;
|
||||
--weui-FG: #fff;
|
||||
--weui-BG: #000;
|
||||
--weui-TAG-TEXT-ORANGE: rgba(250, 157, 59, 0.6);
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(250, 157, 59, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: rgba(6, 174, 86, 0.6);
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: rgba(16, 174, 255, 0.6);
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(16, 174, 255, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
|
||||
body[data-weui-mode="care"] {
|
||||
--weui-BG-0: #ededed;
|
||||
--weui-BG-1: #f7f7f7;
|
||||
--weui-BG-2: #fff;
|
||||
--weui-BG-3: #f7f7f7;
|
||||
--weui-BG-4: #4c4c4c;
|
||||
--weui-BG-5: #fff;
|
||||
--weui-FG-0: #000;
|
||||
--weui-FG-HALF: #000;
|
||||
--weui-FG-1: rgba(0, 0, 0, 0.6);
|
||||
--weui-FG-2: rgba(0, 0, 0, 0.42);
|
||||
--weui-FG-3: rgba(0, 0, 0, 0.1);
|
||||
--weui-FG-4: rgba(0, 0, 0, 0.15);
|
||||
--weui-RED: #dc3636;
|
||||
--weui-ORANGE: #e17719;
|
||||
--weui-YELLOW: #bb8e00;
|
||||
--weui-GREEN: #4f8400;
|
||||
--weui-LIGHTGREEN: #2e8800;
|
||||
--weui-BRAND: #018942;
|
||||
--weui-BLUE: #007dbb;
|
||||
--weui-INDIGO: #0075e2;
|
||||
--weui-PURPLE: #6265f1;
|
||||
--weui-WHITE: #fff;
|
||||
--weui-LINK: #576b95;
|
||||
--weui-TEXTGREEN: #06ae56;
|
||||
--weui-FG: #000;
|
||||
--weui-BG: #fff;
|
||||
--weui-TAG-TEXT-ORANGE: #e17719;
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(225, 119, 25, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: #06ae56;
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: #007dbb;
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(0, 125, 187, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: rgba(0, 0, 0, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body[data-weui-mode="care"]:not([data-weui-theme="light"]) {
|
||||
--weui-BG-0: #111;
|
||||
--weui-BG-1: #1e1e1e;
|
||||
--weui-BG-2: #191919;
|
||||
--weui-BG-3: #202020;
|
||||
--weui-BG-4: #404040;
|
||||
--weui-BG-5: #2c2c2c;
|
||||
--weui-FG-0: hsla(0, 0%, 100%, 0.85);
|
||||
--weui-FG-HALF: hsla(0, 0%, 100%, 0.65);
|
||||
--weui-FG-1: hsla(0, 0%, 100%, 0.55);
|
||||
--weui-FG-2: hsla(0, 0%, 100%, 0.35);
|
||||
--weui-FG-3: hsla(0, 0%, 100%, 0.1);
|
||||
--weui-FG-4: hsla(0, 0%, 100%, 0.15);
|
||||
--weui-RED: #fa5151;
|
||||
--weui-ORANGE: #c87d2f;
|
||||
--weui-YELLOW: #cc9c00;
|
||||
--weui-GREEN: #74a800;
|
||||
--weui-LIGHTGREEN: #3eb575;
|
||||
--weui-BRAND: #07c160;
|
||||
--weui-BLUE: #10aeff;
|
||||
--weui-INDIGO: #1196ff;
|
||||
--weui-PURPLE: #8183ff;
|
||||
--weui-WHITE: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-LINK: #7d90a9;
|
||||
--weui-TEXTGREEN: #259c5c;
|
||||
--weui-FG: #fff;
|
||||
--weui-BG: #000;
|
||||
--weui-TAG-TEXT-ORANGE: rgba(250, 157, 59, 0.6);
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(250, 157, 59, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: rgba(6, 174, 86, 0.6);
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: rgba(16, 174, 255, 0.6);
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(16, 174, 255, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
}
|
||||
|
||||
body[data-weui-mode="care"][data-weui-theme="dark"] {
|
||||
--weui-BG-0: #111;
|
||||
--weui-BG-1: #1e1e1e;
|
||||
--weui-BG-2: #191919;
|
||||
--weui-BG-3: #202020;
|
||||
--weui-BG-4: #404040;
|
||||
--weui-BG-5: #2c2c2c;
|
||||
--weui-FG-0: hsla(0, 0%, 100%, 0.85);
|
||||
--weui-FG-HALF: hsla(0, 0%, 100%, 0.65);
|
||||
--weui-FG-1: hsla(0, 0%, 100%, 0.55);
|
||||
--weui-FG-2: hsla(0, 0%, 100%, 0.35);
|
||||
--weui-FG-3: hsla(0, 0%, 100%, 0.1);
|
||||
--weui-FG-4: hsla(0, 0%, 100%, 0.15);
|
||||
--weui-RED: #fa5151;
|
||||
--weui-ORANGE: #c87d2f;
|
||||
--weui-YELLOW: #cc9c00;
|
||||
--weui-GREEN: #74a800;
|
||||
--weui-LIGHTGREEN: #3eb575;
|
||||
--weui-BRAND: #07c160;
|
||||
--weui-BLUE: #10aeff;
|
||||
--weui-INDIGO: #1196ff;
|
||||
--weui-PURPLE: #8183ff;
|
||||
--weui-WHITE: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-LINK: #7d90a9;
|
||||
--weui-TEXTGREEN: #259c5c;
|
||||
--weui-FG: #fff;
|
||||
--weui-BG: #000;
|
||||
--weui-TAG-TEXT-ORANGE: rgba(250, 157, 59, 0.6);
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(250, 157, 59, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: rgba(6, 174, 86, 0.6);
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: rgba(16, 174, 255, 0.6);
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(16, 174, 255, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BG-COLOR-ACTIVE: #ececec;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BG-COLOR-ACTIVE: #373737;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BG-COLOR-ACTIVE: #373737;
|
||||
}
|
||||
}
|
||||
|
||||
[class*=" weui-icon-"][class*=" weui-icon-"],
|
||||
[class*=" weui-icon-"][class^="weui-icon-"],
|
||||
[class^="weui-icon-"][class*=" weui-icon-"],
|
||||
[class^="weui-icon-"][class^="weui-icon-"] {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
font-size: 10px;
|
||||
width: 2.4em;
|
||||
height: 2.4em;
|
||||
-webkit-mask-position: 50% 50%;
|
||||
mask-position: 50% 50%;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
mask-size: 100%;
|
||||
background-color: currentColor;
|
||||
}
|
||||
|
||||
.weui-icon-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-download {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.25%2012.04l-1.72-1.72-1.06%201.06%202.828%202.83a1%201%200%20001.414-.001l2.828-2.828-1.06-1.061-1.73%201.73V7h-1.5v5.04zm0-5.04V2h1.5v5h6.251c.55%200%20.999.446.999.996v13.008a.998.998%200%2001-.996.996H4.996A.998.998%200%20014%2021.004V7.996A1%201%200%20014.999%207h6.251z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.25%2012.04l-1.72-1.72-1.06%201.06%202.828%202.83a1%201%200%20001.414-.001l2.828-2.828-1.06-1.061-1.73%201.73V7h-1.5v5.04zm0-5.04V2h1.5v5h6.251c.55%200%20.999.446.999.996v13.008a.998.998%200%2001-.996.996H4.996A.998.998%200%20014%2021.004V7.996A1%201%200%20014.999%207h6.251z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-info {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.75-12v7h1.5v-7h-1.5zM12%209a1%201%200%20100-2%201%201%200%20000%202z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.75-12v7h1.5v-7h-1.5zM12%209a1%201%200%20100-2%201%201%200%20000%202z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-safe-success {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.6C315.5%2046.7%20180.4%2093.1%2057.6%20132c0%20129.3.2%20231.7.2%20339.7%200%20304.2%20248.3%20471.6%20443.1%20523.7C695.7%20943.3%20944%20775.9%20944%20471.7c0-108%20.2-210.4.2-339.7C821.4%2093.1%20686.3%2046.7%20500.9%204.6zm248.3%20349.1l-299.7%20295c-2.1%202-5.3%202-7.4-.1L304.4%20506.1c-2-2.1-2.3-5.7-.6-8l18.3-24.9c1.7-2.3%205-2.8%207.2-1l112.2%2086c2.3%201.8%206%201.7%208.1-.1l274.7-228.9c2.2-1.8%205.7-1.7%207.7.3l17%2016.8c2.2%202.1%202.2%205.3.2%207.4z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23070202%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.6C315.5%2046.7%20180.4%2093.1%2057.6%20132c0%20129.3.2%20231.7.2%20339.7%200%20304.2%20248.3%20471.6%20443.1%20523.7C695.7%20943.3%20944%20775.9%20944%20471.7c0-108%20.2-210.4.2-339.7C821.4%2093.1%20686.3%2046.7%20500.9%204.6zm248.3%20349.1l-299.7%20295c-2.1%202-5.3%202-7.4-.1L304.4%20506.1c-2-2.1-2.3-5.7-.6-8l18.3-24.9c1.7-2.3%205-2.8%207.2-1l112.2%2086c2.3%201.8%206%201.7%208.1-.1l274.7-228.9c2.2-1.8%205.7-1.7%207.7.3l17%2016.8c2.2%202.1%202.2%205.3.2%207.4z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23070202%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-safe-warn {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.5c-185.4%2042-320.4%2088.4-443.2%20127.3%200%20129.3.2%20231.7.2%20339.6%200%20304.1%20248.2%20471.4%20443%20523.6%20194.7-52.2%20443-219.5%20443-523.6%200-107.9.2-210.3.2-339.6C821.3%2092.9%20686.2%2046.5%20500.9%204.5zm-26.1%20271.1h52.1c5.8%200%2010.3%204.7%2010.1%2010.4l-11.6%20313.8c-.1%202.8-2.5%205.2-5.4%205.2h-38.2c-2.9%200-5.3-2.3-5.4-5.2L464.8%20286c-.2-5.8%204.3-10.4%2010-10.4zm26.1%20448.3c-20.2%200-36.5-16.3-36.5-36.5s16.3-36.5%2036.5-36.5%2036.5%2016.3%2036.5%2036.5-16.4%2036.5-36.5%2036.5z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23020202%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.5c-185.4%2042-320.4%2088.4-443.2%20127.3%200%20129.3.2%20231.7.2%20339.6%200%20304.1%20248.2%20471.4%20443%20523.6%20194.7-52.2%20443-219.5%20443-523.6%200-107.9.2-210.3.2-339.6C821.3%2092.9%20686.2%2046.5%20500.9%204.5zm-26.1%20271.1h52.1c5.8%200%2010.3%204.7%2010.1%2010.4l-11.6%20313.8c-.1%202.8-2.5%205.2-5.4%205.2h-38.2c-2.9%200-5.3-2.3-5.4-5.2L464.8%20286c-.2-5.8%204.3-10.4%2010-10.4zm26.1%20448.3c-20.2%200-36.5-16.3-36.5-36.5s16.3-36.5%2036.5-36.5%2036.5%2016.3%2036.5%2036.5-16.4%2036.5-36.5%2036.5z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23020202%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-success {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-success-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm-1.172-6.242l5.809-5.808.848.849-5.95%205.95a1%201%200%2001-1.414%200L7%2012.426l.849-.849%202.98%202.98z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm-1.172-6.242l5.809-5.808.848.849-5.95%205.95a1%201%200%2001-1.414%200L7%2012.426l.849-.849%202.98%202.98z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-success-no-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-waiting {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.75%2011.38V6h-1.5v6l4.243%204.243%201.06-1.06-3.803-3.804zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.75%2011.38V6h-1.5v6l4.243%204.243%201.06-1.06-3.803-3.804zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-waiting-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.6%2011.503l3.891%203.891-.848.849L11.4%2012V6h1.2v5.503zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.6%2011.503l3.891%203.891-.848.849L11.4%2012V6h1.2v5.503zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-warn {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.763-15.864l.11%207.596h1.305l.11-7.596h-1.525zm.759%2010.967c.512%200%20.902-.383.902-.882%200-.5-.39-.882-.902-.882a.878.878%200%2000-.896.882c0%20.499.396.882.896.882z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.763-15.864l.11%207.596h1.305l.11-7.596h-1.525zm.759%2010.967c.512%200%20.902-.383.902-.882%200-.5-.39-.882-.902-.882a.878.878%200%2000-.896.882c0%20.499.396.882.896.882z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-info-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zM11.4%2010h1.2v7h-1.2v-7zm.6-1a1%201%200%20110-2%201%201%200%20010%202z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zM11.4%2010h1.2v7h-1.2v-7zm.6-1a1%201%200%20110-2%201%201%200%20010%202z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-cancel {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20d%3D%22M12.849%2012l3.11%203.111-.848.849L12%2012.849l-3.111%203.11-.849-.848L11.151%2012l-3.11-3.111.848-.849L12%2011.151l3.111-3.11.849.848L12.849%2012z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20d%3D%22M12.849%2012l3.11%203.111-.848.849L12%2012.849l-3.111%203.11-.849-.848L11.151%2012l-3.11-3.111.848-.849L12%2011.151l3.111-3.11.849.848L12.849%2012z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-search {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M16.31%2015.561l4.114%204.115-.848.848-4.123-4.123a7%207%200%2011.857-.84zM16.8%2011a5.8%205.8%200%2010-11.6%200%205.8%205.8%200%200011.6%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M16.31%2015.561l4.114%204.115-.848.848-4.123-4.123a7%207%200%2011.857-.84zM16.8%2011a5.8%205.8%200%2010-11.6%200%205.8%205.8%200%200011.6%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-clear {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M13.06%2012l3.006-3.005-1.06-1.06L12%2010.938%208.995%207.934l-1.06%201.06L10.938%2012l-3.005%203.005%201.06%201.06L12%2013.062l3.005%203.005%201.06-1.06L13.062%2012zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M13.06%2012l3.006-3.005-1.06-1.06L12%2010.938%208.995%207.934l-1.06%201.06L10.938%2012l-3.005%203.005%201.06%201.06L12%2013.062l3.005%203.005%201.06-1.06L13.062%2012zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-back {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm1.999-6.563L10.68%2012%2014%208.562%2012.953%207.5%209.29%2011.277a1.045%201.045%200%20000%201.446l3.663%203.777L14%2015.437z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm1.999-6.563L10.68%2012%2014%208.562%2012.953%207.5%209.29%2011.277a1.045%201.045%200%20000%201.446l3.663%203.777L14%2015.437z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-delete {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M6.774%206.4l.812%2013.648a.8.8%200%2000.798.752h7.232a.8.8%200%2000.798-.752L17.226%206.4H6.774zm11.655%200l-.817%2013.719A2%202%200%200115.616%2022H8.384a2%202%200%2001-1.996-1.881L5.571%206.4H3.5v-.7a.5.5%200%2001.5-.5h16a.5.5%200%2001.5.5v.7h-2.071zM14%203a.5.5%200%2001.5.5v.7h-5v-.7A.5.5%200%200110%203h4zM9.5%209h1.2l.5%209H10l-.5-9zm3.8%200h1.2l-.5%209h-1.2l.5-9z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M6.774%206.4l.812%2013.648a.8.8%200%2000.798.752h7.232a.8.8%200%2000.798-.752L17.226%206.4H6.774zm11.655%200l-.817%2013.719A2%202%200%200115.616%2022H8.384a2%202%200%2001-1.996-1.881L5.571%206.4H3.5v-.7a.5.5%200%2001.5-.5h16a.5.5%200%2001.5.5v.7h-2.071zM14%203a.5.5%200%2001.5.5v.7h-5v-.7A.5.5%200%200110%203h4zM9.5%209h1.2l.5%209H10l-.5-9zm3.8%200h1.2l-.5%209h-1.2l.5-9z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-success-no-circle-thin {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.864%2016.617l-5.303-5.303-1.061%201.06%205.657%205.657a1%201%200%20001.414%200L21.238%206.364l-1.06-1.06L8.864%2016.616z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.864%2016.617l-5.303-5.303-1.061%201.06%205.657%205.657a1%201%200%20001.414%200L21.238%206.364l-1.06-1.06L8.864%2016.616z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-arrow {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-arrow-bold {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20height%3D%2224%22%20width%3D%2212%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.157%2012.711L4.5%2018.368l-1.414-1.414%204.95-4.95-4.95-4.95L4.5%205.64l5.657%205.657a1%201%200%20010%201.414z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20height%3D%2224%22%20width%3D%2212%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.157%2012.711L4.5%2018.368l-1.414-1.414%204.95-4.95-4.95-4.95L4.5%205.64l5.657%205.657a1%201%200%20010%201.414z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-back-arrow {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M3.343%2012l7.071%207.071L9%2020.485l-7.778-7.778a1%201%200%20010-1.414L9%203.515l1.414%201.414L3.344%2012z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M3.343%2012l7.071%207.071L9%2020.485l-7.778-7.778a1%201%200%20010-1.414L9%203.515l1.414%201.414L3.344%2012z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-back-arrow-thin {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-close {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2010.586l5.657-5.657%201.414%201.414L13.414%2012l5.657%205.657-1.414%201.414L12%2013.414l-5.657%205.657-1.414-1.414L10.586%2012%204.929%206.343%206.343%204.93%2012%2010.586z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2010.586l5.657-5.657%201.414%201.414L13.414%2012l5.657%205.657-1.414%201.414L12%2013.414l-5.657%205.657-1.414-1.414L10.586%2012%204.929%206.343%206.343%204.93%2012%2010.586z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-close-thin {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-back-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm1.999-5.363L12.953%2016.5%209.29%2012.723a1.045%201.045%200%20010-1.446L12.953%207.5%2014%208.563%2010.68%2012%2014%2015.438z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm1.999-5.363L12.953%2016.5%209.29%2012.723a1.045%201.045%200%20010-1.446L12.953%207.5%2014%208.563%2010.68%2012%2014%2015.438z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-success {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-icon-waiting {
|
||||
color: #10aeff;
|
||||
color: var(--weui-BLUE);
|
||||
}
|
||||
|
||||
.weui-icon-warn {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-icon-info {
|
||||
color: #10aeff;
|
||||
color: var(--weui-BLUE);
|
||||
}
|
||||
|
||||
.weui-icon-success-circle,
|
||||
.weui-icon-success-no-circle,
|
||||
.weui-icon-success-no-circle-thin {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-icon-waiting-circle {
|
||||
color: #10aeff;
|
||||
color: var(--weui-BLUE);
|
||||
}
|
||||
|
||||
.weui-icon-circle {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-icon-download {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-icon-info-circle {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-icon-safe-success {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-icon-safe-warn {
|
||||
color: #ffc300;
|
||||
color: var(--weui-YELLOW);
|
||||
}
|
||||
|
||||
.weui-icon-cancel {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-icon-search {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-icon-clear {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-icon-clear:active {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-icon-delete.weui-icon_gallery-delete {
|
||||
color: #fff;
|
||||
color: var(--weui-WHITE);
|
||||
}
|
||||
|
||||
.weui-icon-arrow-bold.weui-icon-arrow,
|
||||
.weui-icon-arrow-bold.weui-icon-arrow-bold,
|
||||
.weui-icon-arrow-bold.weui-icon-back-arrow,
|
||||
.weui-icon-arrow-bold.weui-icon-back-arrow-thin,
|
||||
.weui-icon-arrow.weui-icon-arrow,
|
||||
.weui-icon-arrow.weui-icon-arrow-bold,
|
||||
.weui-icon-arrow.weui-icon-back-arrow,
|
||||
.weui-icon-arrow.weui-icon-back-arrow-thin,
|
||||
.weui-icon-back-arrow-thin.weui-icon-arrow,
|
||||
.weui-icon-back-arrow-thin.weui-icon-arrow-bold,
|
||||
.weui-icon-back-arrow-thin.weui-icon-back-arrow,
|
||||
.weui-icon-back-arrow-thin.weui-icon-back-arrow-thin,
|
||||
.weui-icon-back-arrow.weui-icon-arrow,
|
||||
.weui-icon-back-arrow.weui-icon-arrow-bold,
|
||||
.weui-icon-back-arrow.weui-icon-back-arrow,
|
||||
.weui-icon-back-arrow.weui-icon-back-arrow-thin {
|
||||
width: 1.2em;
|
||||
}
|
||||
|
||||
.weui-icon-arrow,
|
||||
.weui-icon-arrow-bold {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-icon-back,
|
||||
.weui-icon-back-arrow,
|
||||
.weui-icon-back-arrow-thin,
|
||||
.weui-icon-back-circle {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-icon_msg.weui-icon_msg {
|
||||
width: 6.4em;
|
||||
height: 6.4em;
|
||||
}
|
||||
|
||||
.weui-icon_msg.weui-icon_msg.weui-icon-warn {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-icon_msg.weui-icon_msg.weui-icon-info-circle {
|
||||
color: #10aeff;
|
||||
color: var(--weui-BLUE);
|
||||
}
|
||||
|
||||
.weui-icon_msg-primary.weui-icon_msg-primary {
|
||||
width: 6.4em;
|
||||
height: 6.4em;
|
||||
}
|
||||
|
||||
.weui-icon_msg-primary.weui-icon_msg-primary.weui-icon-warn {
|
||||
color: #ffc300;
|
||||
color: var(--weui-YELLOW);
|
||||
}
|
||||
|
||||
.weui-hidden_abs {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.weui-hidden-space:empty:before,
|
||||
.weui-hidden_abs {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-hidden-space:empty:before {
|
||||
content: "\00A0";
|
||||
}
|
||||
|
||||
.weui-a11y-combo {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-a11y-combo__helper {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-a11y-combo__content {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.weui-wa-hotarea-el {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
min-width: 44px;
|
||||
min-height: 44px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.weui-wa-hotarea,
|
||||
.weui-wa-hotarea-el__wrp,
|
||||
.weui-wa-hotarea_before {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-wa-hotarea-el__wrp a,
|
||||
.weui-wa-hotarea-el__wrp navigator,
|
||||
.weui-wa-hotarea_before a,
|
||||
.weui-wa-hotarea_before navigator,
|
||||
.weui-wa-hotarea a,
|
||||
.weui-wa-hotarea navigator {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.weui-wa-hotarea:after,
|
||||
.weui-wa-hotarea_before:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
min-width: 44px;
|
||||
min-height: 44px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.weui-link {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-link,
|
||||
.weui-link:visited {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-link:active {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.weui-btn {
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 184px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding: 8px 24px;
|
||||
box-sizing: border-box;
|
||||
font-weight: 700;
|
||||
font-size: 17px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
line-height: 1.88235294;
|
||||
border-radius: 8px;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.weui-btn:before {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
background-color: var(--weui-BTN-ACTIVE-MASK);
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.weui-btn:not(.weui-btn_disabled):not(.weui-btn_loading):active:before,
|
||||
.weui-btn:not([disabled]):not(.weui-btn_loading):active:before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.weui-btn_block {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.weui-btn_inline {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.weui-btn_default {
|
||||
background-color: #f2f2f2;
|
||||
background-color: var(--weui-BTN-DEFAULT-BG);
|
||||
}
|
||||
|
||||
.weui-btn_default,
|
||||
.weui-btn_default:not(.weui-btn_disabled):visited {
|
||||
color: #06ae56;
|
||||
color: var(--weui-BTN-DEFAULT-COLOR);
|
||||
}
|
||||
|
||||
.weui-btn_primary {
|
||||
background-color: #07c160;
|
||||
background-color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-btn_primary:not(.weui-btn_disabled):visited {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.weui-btn_warn {
|
||||
background-color: #f2f2f2;
|
||||
background-color: var(--weui-BTN-DEFAULT-BG);
|
||||
}
|
||||
|
||||
.weui-btn_warn,
|
||||
.weui-btn_warn:not(.weui-btn_disabled):visited {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-btn[disabled],
|
||||
.weui-btn_disabled {
|
||||
color: rgba(0, 0, 0, 0.2);
|
||||
color: var(--weui-BTN-DISABLED-FONT-COLOR);
|
||||
background-color: #f2f2f2;
|
||||
background-color: var(--weui-BTN-DEFAULT-BG);
|
||||
}
|
||||
|
||||
.weui-btn_loading .weui-loading {
|
||||
margin: -0.2em 0.34em 0 0;
|
||||
}
|
||||
|
||||
.weui-btn_loading .weui-primary-loading {
|
||||
margin: -0.2em 8px 0 0;
|
||||
vertical-align: middle;
|
||||
color: currentColor;
|
||||
}
|
||||
|
||||
.weui-btn_loading .weui-primary-loading:before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.weui-btn_loading.weui-btn_primary {
|
||||
color: #fff;
|
||||
color: var(--weui-WHITE);
|
||||
}
|
||||
|
||||
.weui-btn_cell {
|
||||
position: relative;
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
box-sizing: border-box;
|
||||
font-size: 17px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
line-height: 1.41176471;
|
||||
padding: 16px;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-5);
|
||||
}
|
||||
|
||||
.weui-btn_cell+.weui-btn_cell {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.weui-btn_cell:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-btn_cell__icon {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: -0.2em 0.34em 0 0;
|
||||
}
|
||||
|
||||
.weui-btn_cell-default {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-btn_cell-primary {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-btn_cell-warn {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page {
|
||||
height: 100%;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page__content {
|
||||
min-height: 0;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
padding-bottom: 80px;
|
||||
box-sizing: border-box;
|
||||
overflow-y: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr {
|
||||
padding: 16px 32px 24px;
|
||||
padding: 16px calc(32px + constant(safe-area-inset-right)) calc(24px + constant(safe-area-inset-bottom)) calc(32px + constant(safe-area-inset-left));
|
||||
padding: 16px calc(32px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(32px + env(safe-area-inset-left));
|
||||
background: #fff;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr:before {
|
||||
content: "";
|
||||
height: 80px;
|
||||
background: -webkit-linear-gradient(bottom, #fff, hsla(0, 0%, 100%, 0));
|
||||
background: linear-gradient(0deg, #fff, hsla(0, 0%, 100%, 0));
|
||||
position: absolute;
|
||||
bottom: calc(100% - 1px);
|
||||
left: 0;
|
||||
right: 0;
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] .weui-bottom-fixed-opr {
|
||||
background: #191919;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) .weui-bottom-fixed-opr {
|
||||
background: #191919;
|
||||
}
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] .weui-bottom-fixed-opr:before {
|
||||
background: -webkit-linear-gradient(bottom, #191919, rgba(25, 25, 25, 0));
|
||||
background: linear-gradient(0deg, #191919, rgba(25, 25, 25, 0));
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) .weui-bottom-fixed-opr:before {
|
||||
background: -webkit-linear-gradient(bottom, #191919, rgba(25, 25, 25, 0));
|
||||
background: linear-gradient(0deg, #191919, rgba(25, 25, 25, 0));
|
||||
}
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn {
|
||||
width: 184px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2),
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2)+.weui-btn {
|
||||
margin: 0 8px;
|
||||
width: 136px;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2)+.weui-btn:first-child,
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2):first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2)+.weui-btn:last-child,
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2):last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page_btn-wrap .weui-bottom-fixed-opr {
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page_btn-wrap .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2),
|
||||
.weui-bottom-fixed-opr-page_btn-wrap .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2)+.weui-btn {
|
||||
width: 184px;
|
||||
margin: 16px 0 0;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page_btn-wrap .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2)+.weui-btn:first-child,
|
||||
.weui-bottom-fixed-opr-page_btn-wrap .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2):first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-half-screen-dialog__hd {
|
||||
padding: 0 24px;
|
||||
padding: 0 calc(24px + constant(safe-area-inset-right)) 0 calc(24px + constant(safe-area-inset-left));
|
||||
padding: 0 calc(24px + env(safe-area-inset-right)) 0 calc(24px + env(safe-area-inset-left));
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-half-screen-dialog__bd {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-half-screen-dialog__ft {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-bottom-fixed-opr-page {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-bottom-fixed-opr-page__content {
|
||||
padding: 0 24px;
|
||||
padding: 0 calc(24px + constant(safe-area-inset-right)) 0 calc(24px + constant(safe-area-inset-left));
|
||||
padding: 0 calc(24px + env(safe-area-inset-right)) 0 calc(24px + env(safe-area-inset-left));
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-bottom-fixed-opr {
|
||||
padding: 16px 0 64px;
|
||||
padding: 16px 0 calc(64px + constant(safe-area-inset-bottom));
|
||||
padding: 16px 0 calc(64px + env(safe-area-inset-bottom));
|
||||
}
|
||||
|
||||
button.weui-btn,
|
||||
input.weui-btn {
|
||||
border-width: 0;
|
||||
outline: 0;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
button.weui-btn:focus,
|
||||
input.weui-btn:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
button.weui-btn_inline,
|
||||
button.weui-btn_mini,
|
||||
input.weui-btn_inline,
|
||||
input.weui-btn_mini {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.weui-btn_mini {
|
||||
font-size: 16px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.weui-btn_mini,
|
||||
.weui-btn_xmini {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
padding: 0 12px;
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
.weui-btn_xmini {
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
border-radius: 2.8px;
|
||||
}
|
||||
|
||||
.weui-btn+.weui-btn {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.weui-btn.weui-btn_mini+.weui-btn.weui-btn_mini,
|
||||
.weui-btn.weui-btn_xmini+.weui-btn.weui-btn_xmini {
|
||||
margin-top: auto;
|
||||
}
|
||||
|
||||
.weui-btn.weui-btn_inline+.weui-btn.weui-btn_inline {
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.weui-btn-area {
|
||||
margin: 48px 16px 8px;
|
||||
}
|
||||
|
||||
.weui-btn-area_inline {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-btn-area_inline .weui-btn {
|
||||
margin-top: auto;
|
||||
margin-right: 16px;
|
||||
width: 100%;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-btn-area_inline .weui-btn:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.weui-btn_icon,
|
||||
.weui-btn_reset {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.weui-btn_icon {
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-btn_icon:active [class*="weui-icon-"] {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-cells {
|
||||
margin-top: 8px;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-cells:before {
|
||||
top: 0;
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-cells:after,
|
||||
.weui-cells:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.weui-cells:after {
|
||||
bottom: 0;
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-cells__title {
|
||||
margin-top: 16px;
|
||||
margin-bottom: 3px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-cells__title+.weui-cells {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-cells__tips {
|
||||
margin-top: 8px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-cells__tips a,
|
||||
.weui-cells__tips navigator {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-cells__tips navigator {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-cell {
|
||||
padding: 16px;
|
||||
position: relative;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
line-height: 1.41176471;
|
||||
font-size: 17px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-cell:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
left: 16px;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.weui-cell:first-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cell_active:active:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
background: var(--weui-FG-3);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.weui-cell_primary {
|
||||
-webkit-box-align: start;
|
||||
-webkit-align-items: flex-start;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.weui-cell__bd {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.weui-cell__ft {
|
||||
text-align: right;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-cell__ft button {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
.weui-cell__name {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-cell__desc {
|
||||
font-size: 12px;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
line-height: 1.4;
|
||||
padding-top: 4px;
|
||||
}
|
||||
|
||||
.weui-cell_swiped {
|
||||
display: block;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-cell_swiped>.weui-cell__bd {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-cell_swiped>.weui-cell__ft {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.weui-cell_swiped>.weui-cell__ft,
|
||||
.weui-swiped-btn {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-swiped-btn {
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
padding: 16px 1em;
|
||||
line-height: 1.41176471;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.weui-swiped-btn_default {
|
||||
background-color: #ededed;
|
||||
background-color: var(--weui-BG-0);
|
||||
}
|
||||
|
||||
.weui-swiped-btn_warn {
|
||||
background-color: #fa5151;
|
||||
background-color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-cell_access {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.weui-cell_access:active:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
background: var(--weui-FG-3);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.weui-cell_access .weui-cell__ft {
|
||||
padding-right: 24px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-cell_access .weui-cell__ft:after {
|
||||
content: " ";
|
||||
width: 12px;
|
||||
height: 24px;
|
||||
-webkit-mask-position: 0 0;
|
||||
mask-position: 0 0;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
mask-size: 100%;
|
||||
background-color: currentColor;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
margin-top: -12px;
|
||||
}
|
||||
|
||||
.weui-cell_link {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-cell_link:first-child:before {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.weui-check__label {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-check__label.weui-cell_disabled,
|
||||
.weui-check__label.weui-cell_readonly {
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-check {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-check[disabled]+.weui-icon-checked {
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
.weui-cells_radio .weui-cell__ft {
|
||||
padding-left: 16px;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-cells_radio .weui-check+.weui-icon-checked {
|
||||
min-width: 16px;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.weui-cells_radio .weui-check:checked+.weui-icon-checked,
|
||||
.weui-cells_radio .weui-check[aria-checked="true"]+.weui-icon-checked {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-cells_checkbox .weui-check__label:before {
|
||||
left: 55px;
|
||||
}
|
||||
|
||||
.weui-cells_checkbox .weui-cell__hd {
|
||||
padding-right: 16px;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-cells_checkbox .weui-icon-checked {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-cells_checkbox .weui-check:checked+.weui-icon-checked,
|
||||
.weui-cells_checkbox .weui-check[aria-checked="true"]+.weui-icon-checked {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-label {
|
||||
display: block;
|
||||
width: 105px;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.weui-input {
|
||||
width: 100%;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
-webkit-appearance: none;
|
||||
background-color: transparent;
|
||||
font-size: inherit;
|
||||
color: inherit;
|
||||
height: 1.41176471em;
|
||||
line-height: 1.41176471;
|
||||
}
|
||||
|
||||
.weui-input::-webkit-inner-spin-button,
|
||||
.weui-input::-webkit-outer-spin-button {
|
||||
-webkit-appearance: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.weui-input:focus:not(:placeholder-shown)+.weui-btn_input-clear {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-textarea {
|
||||
display: block;
|
||||
border: 0;
|
||||
resize: none;
|
||||
background: transparent;
|
||||
width: 100%;
|
||||
color: inherit;
|
||||
font-size: 1em;
|
||||
line-height: inherit;
|
||||
height: 80px;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.weui-textarea-counter {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
text-align: right;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-cell_warn,
|
||||
.weui-cell_warn .weui-textarea-counter {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-cell_warn .weui-icon-warn {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.weui-cell_disabled .weui-input:disabled,
|
||||
.weui-cell_disabled .weui-textarea:disabled,
|
||||
.weui-cell_readonly .weui-input:disabled,
|
||||
.weui-cell_readonly .weui-textarea:disabled {
|
||||
opacity: 1;
|
||||
-webkit-text-fill-color: rgba(0, 0, 0, 0.5);
|
||||
-webkit-text-fill-color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-cell_disabled .weui-input[disabled],
|
||||
.weui-cell_disabled .weui-input[readonly],
|
||||
.weui-cell_disabled .weui-textarea[disabled],
|
||||
.weui-cell_disabled .weui-textarea[readonly],
|
||||
.weui-cell_readonly .weui-input[disabled],
|
||||
.weui-cell_readonly .weui-input[readonly],
|
||||
.weui-cell_readonly .weui-textarea[disabled],
|
||||
.weui-cell_readonly .weui-textarea[readonly] {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-btn_input-clear {
|
||||
display: none;
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
.weui-btn_input-clear [class*="weui-icon-"] {
|
||||
width: 18px;
|
||||
}
|
||||
|
||||
.weui-cells_form .weui-cell_disabled:active,
|
||||
.weui-cells_form .weui-cell_readonly:active,
|
||||
.weui-cells_form .weui-cell_switch:active,
|
||||
.weui-cells_form .weui-cell_vcode:active {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.weui-cells_form .weui-cell__ft {
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-cells_form .weui-icon-warn {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cells_form input,
|
||||
.weui-cells_form label[for],
|
||||
.weui-cells_form textarea {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-form-preview {
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-form-preview:before {
|
||||
top: 0;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-form-preview:after,
|
||||
.weui-form-preview:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-form-preview:after {
|
||||
bottom: 0;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-form-preview__hd {
|
||||
position: relative;
|
||||
padding: 16px;
|
||||
text-align: right;
|
||||
line-height: 2.5em;
|
||||
}
|
||||
|
||||
.weui-form-preview__hd:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
left: 16px;
|
||||
}
|
||||
|
||||
.weui-form-preview__hd .weui-form-preview__value {
|
||||
font-style: normal;
|
||||
font-size: 1.6em;
|
||||
}
|
||||
|
||||
.weui-form-preview__bd {
|
||||
padding: 16px;
|
||||
font-size: 0.9em;
|
||||
text-align: right;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
.weui-form-preview__ft {
|
||||
position: relative;
|
||||
line-height: 50px;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-form-preview__ft:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-DIALOG-LINE-COLOR);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-DIALOG-LINE-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-form-preview__item {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-form-preview__label {
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
min-width: 4em;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
text-align: justify;
|
||||
text-align-last: justify;
|
||||
}
|
||||
|
||||
.weui-form-preview__value {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
word-break: normal;
|
||||
word-wrap: break-word;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-form-preview__btn {
|
||||
position: relative;
|
||||
display: block;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
text-align: center;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
button.weui-form-preview__btn {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
line-height: inherit;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
.weui-form-preview__btn:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-form-preview__btn:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-left: 1px solid var(--weui-DIALOG-LINE-COLOR);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-DIALOG-LINE-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-form-preview__btn:first-child:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-form-preview__btn_default {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-HALF);
|
||||
}
|
||||
|
||||
.weui-form-preview__btn_primary {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-form-preview__list {
|
||||
padding-top: 24px;
|
||||
padding-bottom: 24px;
|
||||
line-height: 1.4;
|
||||
font-size: 14px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-form-preview__list:before {
|
||||
content: "";
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-form-preview__list:last-child {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-form-preview__list .weui-form-preview__label {
|
||||
text-align: left;
|
||||
text-align-last: unset;
|
||||
width: 6em;
|
||||
}
|
||||
|
||||
.weui-form-preview__list .weui-form-preview__value {
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-form-preview__list .weui-form-preview__item {
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
.weui-form-preview__list .weui-form-preview__item:first-child,
|
||||
.weui-form-preview__list>.weui-cells__title:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-cell_select {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-cell_select .weui-cell__bd:after {
|
||||
content: " ";
|
||||
width: 12px;
|
||||
height: 24px;
|
||||
-webkit-mask-position: 0 0;
|
||||
mask-position: 0 0;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
mask-size: 100%;
|
||||
background-color: currentColor;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 16px;
|
||||
margin-top: -12px;
|
||||
}
|
||||
|
||||
.weui-select {
|
||||
-webkit-appearance: none;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
background-color: transparent;
|
||||
width: 100%;
|
||||
font-size: inherit;
|
||||
min-height: 56px;
|
||||
line-height: 56px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding-left: 16px;
|
||||
padding-right: 40px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
vertical-align: bottom;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-cell__hd {
|
||||
padding-left: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-cell__hd:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-right: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 100% 0;
|
||||
transform-origin: 100% 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-cell__hd:before {
|
||||
content: " ";
|
||||
width: 12px;
|
||||
height: 24px;
|
||||
-webkit-mask-position: 0 0;
|
||||
mask-position: 0 0;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
mask-size: 100%;
|
||||
background-color: currentColor;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 16px;
|
||||
margin-top: -12px;
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-cell__bd {
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-cell__bd:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-select {
|
||||
max-width: 5em;
|
||||
width: 105px;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.weui-cell_select-after .weui-cell__hd {
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
||||
.weui-cell_select-after .weui-select {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.weui-cell_vcode {
|
||||
padding-top: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-vcode-btn,
|
||||
.weui-vcode-img {
|
||||
margin-left: 5px;
|
||||
height: 56px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.weui-vcode-btn {
|
||||
display: inline-block;
|
||||
padding: 0 0.6em 0 0.7em;
|
||||
line-height: 56px;
|
||||
font-size: 17px;
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-vcode-btn:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-left: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
button.weui-vcode-btn {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.weui-vcode-btn:active {
|
||||
color: var(--weui-LINK-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-gallery {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: #000;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.weui-gallery__img,
|
||||
.weui-gallery__opr {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
left: constant(safe-area-inset-left);
|
||||
left: env(safe-area-inset-left);
|
||||
right: 0;
|
||||
right: constant(safe-area-inset-right);
|
||||
right: env(safe-area-inset-right);
|
||||
}
|
||||
|
||||
.weui-gallery__img {
|
||||
top: 0;
|
||||
top: constant(safe-area-inset-top);
|
||||
top: env(safe-area-inset-top);
|
||||
bottom: 60px;
|
||||
bottom: calc(60px + constant(safe-area-inset-bottom));
|
||||
bottom: calc(60px + env(safe-area-inset-bottom));
|
||||
width: 100%;
|
||||
background: 50% no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.weui-gallery__opr {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
background-color: #0d0d0d;
|
||||
color: #fff;
|
||||
color: var(--weui-WHITE);
|
||||
line-height: 60px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-gallery__del {
|
||||
display: block;
|
||||
padding-bottom: 0;
|
||||
padding-bottom: constant(safe-area-inset-bottom);
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
}
|
||||
|
||||
.weui-gallery__del:active {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.weui-cell_switch {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
|
||||
.weui-cell_switch.weui-cell_disabled,
|
||||
.weui-cell_switch.weui-cell_readonly {
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-switch {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.weui-switch,
|
||||
.weui-switch-cp__box {
|
||||
vertical-align: bottom;
|
||||
position: relative;
|
||||
width: 52px;
|
||||
height: 32px;
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
background-color: var(--weui-FG-3);
|
||||
border: 0;
|
||||
padding: 2px;
|
||||
outline: 0;
|
||||
border-radius: 16px;
|
||||
box-sizing: border-box;
|
||||
-webkit-transition: background-color 0.1s, border 0.1s;
|
||||
transition: background-color 0.1s, border 0.1s;
|
||||
}
|
||||
|
||||
.weui-switch-cp__box:after,
|
||||
.weui-switch:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border-radius: 15px;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.06);
|
||||
-webkit-transition: -webkit-transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35);
|
||||
transition: -webkit-transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35);
|
||||
transition: transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35);
|
||||
transition: transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35),
|
||||
-webkit-transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35);
|
||||
}
|
||||
|
||||
.weui-switch-cp__input:checked+.weui-switch-cp__box,
|
||||
.weui-switch-cp__input[aria-checked="true"]+.weui-switch-cp__box,
|
||||
.weui-switch:checked {
|
||||
background-color: #07c160;
|
||||
background-color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-switch-cp__input:checked+.weui-switch-cp__box:after,
|
||||
.weui-switch-cp__input[aria-checked="true"]+.weui-switch-cp__box:after,
|
||||
.weui-switch:checked:after {
|
||||
-webkit-transform: translateX(20px);
|
||||
transform: translateX(20px);
|
||||
}
|
||||
|
||||
.weui-switch-cp__input[aria-disabled="true"]+.weui-switch-cp__box,
|
||||
.weui-switch-cp__input[disabled]+.weui-switch-cp__box,
|
||||
.weui-switch[disabled] {
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
.weui-switch-cp__input {
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-switch-cp__box {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.weui-cell_uploader {
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
|
||||
.weui-uploader {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-uploader__hd {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
padding-bottom: 16px;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-uploader__title {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-uploader__info {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-uploader__bd {
|
||||
margin-bottom: -8px;
|
||||
margin-right: -8px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-uploader__files {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.weui-uploader__file {
|
||||
float: left;
|
||||
margin-right: 8px;
|
||||
margin-bottom: 8px;
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
background: no-repeat 50%;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.weui-uploader__file_status {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-uploader__file_status:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.weui-uploader__file_status .weui-uploader__file-content {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.weui-uploader__file-content {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
color: #fff;
|
||||
color: var(--weui-WHITE);
|
||||
}
|
||||
|
||||
.weui-uploader__file-content .weui-icon-warn {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.weui-uploader__input-box {
|
||||
float: left;
|
||||
position: relative;
|
||||
margin-right: 8px;
|
||||
margin-bottom: 8px;
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
box-sizing: border-box;
|
||||
background-color: #ededed;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] .weui-uploader__input-box {
|
||||
background-color: #2e2e2e;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) .weui-uploader__input-box {
|
||||
background-color: #2e2e2e;
|
||||
}
|
||||
}
|
||||
|
||||
.weui-uploader__input-box:after,
|
||||
.weui-uploader__input-box:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
background-color: #a3a3a3;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] .weui-uploader__input-box:after,
|
||||
body[data-weui-theme="dark"] .weui-uploader__input-box:before {
|
||||
background-color: #6d6d6d;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
|
||||
body:not([data-weui-theme="light"]) .weui-uploader__input-box:after,
|
||||
body:not([data-weui-theme="light"]) .weui-uploader__input-box:before {
|
||||
background-color: #6d6d6d;
|
||||
}
|
||||
}
|
||||
|
||||
.weui-uploader__input-box:before {
|
||||
width: 2px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.weui-uploader__input-box:after {
|
||||
width: 32px;
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
.weui-uploader__input-box:active:after,
|
||||
.weui-uploader__input-box:active:before {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.weui-uploader__input {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-msg__desc-primary a,
|
||||
.weui-msg__desc a,
|
||||
.weui-msg__tips a {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
.weui-msg {
|
||||
padding-top: 48px;
|
||||
padding: calc(48px + constant(safe-area-inset-top)) constant(safe-area-inset-right) constant(safe-area-inset-bottom) constant(safe-area-inset-left);
|
||||
padding: calc(48px + env(safe-area-inset-top)) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
|
||||
text-align: center;
|
||||
line-height: 1.4;
|
||||
min-height: 100%;
|
||||
box-sizing: border-box;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-msg__icon-area {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.weui-msg__text-area {
|
||||
margin-bottom: 32px;
|
||||
padding: 0 32px;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
line-height: 1.6;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-msg__text-area:first-child {
|
||||
padding-top: 96px;
|
||||
}
|
||||
|
||||
.weui-msg__title {
|
||||
font-weight: 500;
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.weui-msg__desc,
|
||||
.weui-msg__title {
|
||||
margin-bottom: 16px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-msg__desc {
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.weui-msg__desc-primary {
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-msg__custom-area {
|
||||
text-align: left;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-msg__title+.weui-msg__custom-area {
|
||||
margin-top: 48px;
|
||||
}
|
||||
|
||||
.weui-msg__desc+.weui-msg__custom-area,
|
||||
.weui-msg__desc-primary+.weui-msg__custom-area {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.weui-msg__custom-area .weui-cells__group_form .weui-cells {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area .weui-btn-area {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area .weui-btn+.weui-btn {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area:last-child {
|
||||
margin-bottom: 96px;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area+.weui-msg__extra-area {
|
||||
margin-top: 48px;
|
||||
}
|
||||
|
||||
.weui-msg__tips-area {
|
||||
margin-bottom: 16px;
|
||||
padding: 0 40px;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area+.weui-msg__tips-area {
|
||||
margin-bottom: 48px;
|
||||
}
|
||||
|
||||
.weui-msg__tips-area:last-child {
|
||||
margin-bottom: 64px;
|
||||
}
|
||||
|
||||
.weui-msg__extra-area,
|
||||
.weui-msg__tips {
|
||||
font-size: 12px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-msg__extra-area {
|
||||
margin-bottom: 24px;
|
||||
padding: 0 32px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.weui-msg__extra-area a,
|
||||
.weui-msg__extra-area navigator {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-msg__extra-area navigator {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-msg_align-top .weui-msg__text-area:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
body,
|
||||
page {
|
||||
--weui-STEPS-DEFAULT-COLOR: var(--weui-FG-3);
|
||||
--weui-STEPS-HIGHLIGHT-COLOR: var(--weui-BRAND);
|
||||
--weui-STEPS-FONT-SIZE: 17;
|
||||
--weui-STEPS-LINEHEIGHT: 1.4;
|
||||
--weui-STEPS-DOT-SIZE: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
--weui-STEPS-ICON-SIZE: 40;
|
||||
--weui-STEPS-VERTICAL-DOT-GAP: calc((1em - var(--weui-STEPS-DOT-SIZE)) / 2);
|
||||
--weui-STEPS-HORIZONAL-DOT-GAP: 4px;
|
||||
}
|
||||
|
||||
.weui-steps {
|
||||
line-height: 1.4;
|
||||
line-height: var(--weui-STEPS-LINEHEIGHT);
|
||||
font-size: 17px;
|
||||
font-size: calc(1px * var(--weui-STEPS-FONT-SIZE));
|
||||
}
|
||||
|
||||
.weui-steps__item__desc,
|
||||
.weui-steps__item__title {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.weui-steps__item__title {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.weui-steps__item__desc {
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.weui-steps_vertical {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item {
|
||||
position: relative;
|
||||
padding-bottom: 32px;
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item:before {
|
||||
content: "";
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid var(--weui-FG-3);
|
||||
border-left: 1px solid var(--weui-STEPS-DEFAULT-COLOR);
|
||||
color: var(--weui-FG-3);
|
||||
color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
top: 1.2em;
|
||||
top: calc((var(--weui-STEPS-LINEHEIGHT) - (var(--weui-STEPS-LINEHEIGHT) - 1) / 2) * 1em);
|
||||
bottom: -0.2em;
|
||||
bottom: calc((var(--weui-STEPS-LINEHEIGHT) - 1) / 2 * -1em);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item:first-child:not(.weui-steps__item_success) .weui-steps__item__inner:before {
|
||||
background-color: var(--weui-BRAND);
|
||||
background-color: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item:last-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item__inner {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding-left: 36px;
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item__inner:before {
|
||||
content: "";
|
||||
width: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
width: var(--weui-STEPS-DOT-SIZE);
|
||||
height: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
height: var(--weui-STEPS-DOT-SIZE);
|
||||
border-radius: 100%;
|
||||
background-color: var(--weui-FG-3);
|
||||
background-color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__icon,
|
||||
.weui-steps_vertical .weui-steps__item__inner:before {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
left: 0;
|
||||
top: 0.7em;
|
||||
top: calc(var(--weui-STEPS-LINEHEIGHT) / 2 * 1em);
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__icon {
|
||||
font-size: 17px;
|
||||
font-size: calc(1px * var(--weui-STEPS-FONT-SIZE));
|
||||
width: 2.35294em;
|
||||
width: calc(var(--weui-STEPS-ICON-SIZE) / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
height: 2.35294em;
|
||||
height: calc(var(--weui-STEPS-ICON-SIZE) / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
margin-top: 0.39647em;
|
||||
margin-top: calc((var(--weui-STEPS-ICON-SIZE) / var(--weui-STEPS-FONT-SIZE) * 1em - 1em) / 2 - 0.28em);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item_icon:before {
|
||||
top: calc(((1em - var(--weui-STEPS-DOT-SIZE)) / 2) + 40 / 17 * 1em - 0.14em);
|
||||
top: calc(var(--weui-STEPS-VERTICAL-DOT-GAP) + var(--weui-STEPS-ICON-SIZE) / var(--weui-STEPS-FONT-SIZE) * 1em - 0.14em);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item_icon .weui-steps__item__inner:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item_icon-prev:before {
|
||||
bottom: calc(((1em - var(--weui-STEPS-DOT-SIZE)) / 2) - 0.4 / 2 * 1em + 0.14em);
|
||||
bottom: calc(var(--weui-STEPS-VERTICAL-DOT-GAP) - (var(--weui-STEPS-LINEHEIGHT) - 1) / 2 * 1em + 0.14em);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item_success:before {
|
||||
border-color: var(--weui-BRAND);
|
||||
border-color: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item_success+.weui-steps__item .weui-steps__item__inner:before,
|
||||
.weui-steps_vertical .weui-steps__item_success .weui-steps__item__inner:before {
|
||||
background-color: var(--weui-BRAND);
|
||||
background-color: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal,
|
||||
.weui-steps_horizonal .weui-steps__item {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item:before {
|
||||
content: "";
|
||||
display: block;
|
||||
width: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
width: var(--weui-STEPS-DOT-SIZE);
|
||||
height: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
height: var(--weui-STEPS-DOT-SIZE);
|
||||
border-radius: 100%;
|
||||
background-color: var(--weui-FG-3);
|
||||
background-color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item:after {
|
||||
content: "";
|
||||
height: 0.5px;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
margin: 0 4px;
|
||||
margin: 0 var(--weui-STEPS-HORIZONAL-DOT-GAP);
|
||||
background: var(--weui-FG-3);
|
||||
background: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item:last-child {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: none;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item:last-child:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item:first-child:not(.weui-steps__item_success):before {
|
||||
background: var(--weui-BRAND);
|
||||
background: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item__inner {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item_success+.weui-steps__item:before,
|
||||
.weui-steps_horizonal .weui-steps__item_success:after,
|
||||
.weui-steps_horizonal .weui-steps__item_success:before {
|
||||
background: var(--weui-BRAND);
|
||||
background: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
border-top: 1px solid var(--weui-STEPS-DEFAULT-COLOR);
|
||||
color: var(--weui-FG-3);
|
||||
color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item:last-child {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: none;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item:last-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item__inner {
|
||||
position: relative;
|
||||
padding-top: 36px;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item__inner:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
width: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
width: var(--weui-STEPS-DOT-SIZE);
|
||||
height: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
height: var(--weui-STEPS-DOT-SIZE);
|
||||
border-radius: 100%;
|
||||
background-color: var(--weui-FG-3);
|
||||
background-color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
top: 0;
|
||||
left: 0;
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item__inner:after {
|
||||
content: "";
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
width: calc((8 / var(--weui-STEPS-FONT-SIZE) * 1em) + 2 * 4px);
|
||||
width: calc(var(--weui-STEPS-DOT-SIZE) + 2 * var(--weui-STEPS-HORIZONAL-DOT-GAP));
|
||||
height: calc((8 / var(--weui-STEPS-FONT-SIZE) * 1em) + 2 * 4px);
|
||||
height: calc(var(--weui-STEPS-DOT-SIZE) + 2 * var(--weui-STEPS-HORIZONAL-DOT-GAP));
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
-webkit-transform: translate(calc(-50% + (8 / var(--weui-STEPS-FONT-SIZE) * 1em) / 2),
|
||||
-50%);
|
||||
-webkit-transform: translate(calc(-50% + var(--weui-STEPS-DOT-SIZE) / 2),
|
||||
-50%);
|
||||
transform: translate(calc(-50% + (8 / var(--weui-STEPS-FONT-SIZE) * 1em) / 2),
|
||||
-50%);
|
||||
transform: translate(calc(-50% + var(--weui-STEPS-DOT-SIZE) / 2), -50%);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item_success:before {
|
||||
border-color: var(--weui-BRAND);
|
||||
border-color: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item_success+.weui-steps__item .weui-steps__item__inner:before,
|
||||
.weui-steps_horizonal-primary .weui-steps__item_success .weui-steps__item__inner:before {
|
||||
background: var(--weui-BRAND);
|
||||
background: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item:after,
|
||||
.weui-steps_horizonal-center .weui-steps__item:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
border-top: 1px solid var(--weui-STEPS-DEFAULT-COLOR);
|
||||
color: var(--weui-FG-3);
|
||||
color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item:before {
|
||||
right: 50%;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item:after {
|
||||
left: 50%;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item:first-child:before,
|
||||
.weui-steps_horizonal-center .weui-steps__item:last-child:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item__inner {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding-top: 36px;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item__inner:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
width: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
width: var(--weui-STEPS-DOT-SIZE);
|
||||
height: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
height: var(--weui-STEPS-DOT-SIZE);
|
||||
border-radius: 100%;
|
||||
background-color: var(--weui-FG-3);
|
||||
background-color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
top: 0;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item__inner:after {
|
||||
content: "";
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
width: calc((8 / var(--weui-STEPS-FONT-SIZE) * 1em) + 2 * 4px);
|
||||
width: calc(var(--weui-STEPS-DOT-SIZE) + 2 * var(--weui-STEPS-HORIZONAL-DOT-GAP));
|
||||
height: calc((8 / var(--weui-STEPS-FONT-SIZE) * 1em) + 2 * 4px);
|
||||
height: calc(var(--weui-STEPS-DOT-SIZE) + 2 * var(--weui-STEPS-HORIZONAL-DOT-GAP));
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item_success+.weui-steps__item .weui-steps__item__inner:before,
|
||||
.weui-steps_horizonal-center .weui-steps__item_success+.weui-steps__item:before,
|
||||
.weui-steps_horizonal-center .weui-steps__item_success .weui-steps__item__inner:before,
|
||||
.weui-steps_horizonal-center .weui-steps__item_success:after,
|
||||
.weui-steps_horizonal-center .weui-steps__item_success:before {
|
||||
background: var(--weui-BRAND);
|
||||
background: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
body,
|
||||
page {
|
||||
--weui-cellMarginLR: 16px;
|
||||
--weui-cellPaddingLR: 16px;
|
||||
}
|
||||
|
||||
.weui-cells__group {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form {
|
||||
margin-top: 24px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells {
|
||||
margin-left: 16px;
|
||||
margin-left: var(--weui-cellMarginLR);
|
||||
margin-right: 16px;
|
||||
margin-right: var(--weui-cellMarginLR);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells:after,
|
||||
.weui-cells__group_form .weui-cells:before {
|
||||
left: 16px;
|
||||
left: var(--weui-cellPaddingLR);
|
||||
right: 16px;
|
||||
right: var(--weui-cellPaddingLR);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell {
|
||||
padding: 16px;
|
||||
padding: 16px var(--weui-cellPaddingLR);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell:before {
|
||||
left: 16px;
|
||||
left: var(--weui-cellPaddingLR);
|
||||
right: 16px;
|
||||
right: var(--weui-cellPaddingLR);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell__hd {
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell__ft {
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells__title {
|
||||
margin-top: 24px;
|
||||
margin-bottom: 8px;
|
||||
padding: 0 32px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form:first-child .weui-cells__title {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells__tips {
|
||||
margin-top: 8px;
|
||||
padding: 0 32px;
|
||||
padding: 0 calc(var(--weui-cellMarginLR) + var(--weui-cellPaddingLR));
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells__tips a {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells__tips_warn {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-label {
|
||||
max-width: 5em;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_access:active:after,
|
||||
.weui-cells__group_form .weui-cell_active:active:after {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_warn input {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_disabled:active:after,
|
||||
.weui-cells__group_form .weui-cell_readonly:active:after,
|
||||
.weui-cells__group_form .weui-cell_switch:active:after,
|
||||
.weui-cells__group_form .weui-cell_vcode:active:after,
|
||||
.weui-cells__group_form .weui-icon-warn {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cells__group_form input,
|
||||
.weui-cells__group_form label[for],
|
||||
.weui-cells__group_form textarea {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_wrap {
|
||||
-webkit-box-align: initial;
|
||||
-webkit-align-items: initial;
|
||||
align-items: initial;
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_wrap .weui-cell__hd {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_wrap .weui-label {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_wrap .weui-cell__bd {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell__control {
|
||||
margin: 8px 0 8px 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell__control_flex {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-width: 30vw;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-vcode-btn {
|
||||
font-size: 16px;
|
||||
padding: 0 12px;
|
||||
height: auto;
|
||||
width: auto;
|
||||
line-height: 2;
|
||||
border-radius: 6px;
|
||||
color: #06ae56;
|
||||
color: var(--weui-BTN-DEFAULT-COLOR);
|
||||
background-color: #f2f2f2;
|
||||
background-color: var(--weui-BTN-DEFAULT-BG);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-vcode-btn:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap {
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap .weui-label {
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap .weui-input {
|
||||
font-size: 17px;
|
||||
min-height: 1.88235294em;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells_checkbox .weui-check__label:before {
|
||||
left: 56px;
|
||||
left: calc(40px + var(--weui-cellPaddingLR));
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_select {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_select-before .weui-cell__hd {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_switch {
|
||||
padding: 12px 16px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form-primary {
|
||||
margin-top: 32px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form-primary .weui-cells {
|
||||
background: #f7f7f7;
|
||||
background: var(--weui-BG-1);
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-cells__group_form-primary .weui-cells:after,
|
||||
.weui-cells__group_form-primary .weui-cells:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cells__group_form-primary .weui-cell_access:active:after,
|
||||
.weui-cells__group_form-primary .weui-cell_active:active:after {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.weui-form {
|
||||
padding: 56px 0 0;
|
||||
padding: calc(56px + constant(safe-area-inset-top)) constant(safe-area-inset-right) constant(safe-area-inset-bottom) constant(safe-area-inset-left);
|
||||
padding: calc(56px + env(safe-area-inset-top)) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
line-height: 1.4;
|
||||
min-height: 100%;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-form .weui-footer,
|
||||
.weui-form .weui-footer__link {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-form .weui-agree {
|
||||
padding: 0;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
text-align: justify;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
line-height: 1.6;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-form .weui-agree__checkbox {
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-form .weui-agree__text {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.weui-form__text-area {
|
||||
padding: 0 32px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-form__control-area {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
margin: 48px 0;
|
||||
}
|
||||
|
||||
.weui-form__extra-area,
|
||||
.weui-form__tips-area {
|
||||
margin-bottom: 24px;
|
||||
padding: 0 32px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-form__extra-area {
|
||||
margin-top: 52px;
|
||||
}
|
||||
|
||||
.weui-form__opr-area {
|
||||
padding: 0 32px;
|
||||
}
|
||||
|
||||
.weui-form__opr-area:last-child {
|
||||
margin-bottom: 96px;
|
||||
}
|
||||
|
||||
.weui-form__opr-area+.weui-form__tips-area {
|
||||
margin-top: 16px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-form__tips-area+.weui-form__extra-area {
|
||||
margin-top: 32px;
|
||||
}
|
||||
|
||||
.weui-form__tips-area:last-child {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.weui-form__title {
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
line-height: 1.36;
|
||||
}
|
||||
|
||||
.weui-form__desc {
|
||||
font-size: 17px;
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.weui-form__tips {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-form__tips a,
|
||||
.weui-form__tips navigator {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-form__tips navigator {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-article {
|
||||
padding: 48px 24px;
|
||||
padding: 48px calc(24px + constant(safe-area-inset-right)) calc(48px + constant(safe-area-inset-bottom)) calc(24px + constant(safe-area-inset-left));
|
||||
padding: 48px calc(24px + env(safe-area-inset-right)) calc(48px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
font-size: 17px;
|
||||
line-height: 1.6;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-article section {
|
||||
margin-bottom: 48px;
|
||||
}
|
||||
|
||||
.weui-article section section {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.weui-article section section section {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.weui-article h1,
|
||||
.weui-article h2,
|
||||
.weui-article h3,
|
||||
.weui-article h4,
|
||||
.weui-article h5,
|
||||
.weui-article h6 {
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-article h1 {
|
||||
font-size: 22px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 48px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-article h2 {
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-article h3 {
|
||||
font-size: 17px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.weui-article h4 {
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.weui-article h5,
|
||||
.weui-article h6 {
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.weui-article * {
|
||||
max-width: 100%;
|
||||
box-sizing: border-box;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.weui-article img {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
.weui-article p {
|
||||
margin: 0 0 24px;
|
||||
}
|
||||
|
||||
.weui-article ol,
|
||||
.weui-article ul {
|
||||
list-style: none;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.weui-article ol ol,
|
||||
.weui-article ol ul,
|
||||
.weui-article ul ol,
|
||||
.weui-article ul ul {
|
||||
padding-left: 16px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-tabbar {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
position: relative;
|
||||
z-index: 500;
|
||||
background-color: #f7f7f7;
|
||||
background-color: var(--weui-BG-1);
|
||||
}
|
||||
|
||||
.weui-tabbar:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-tabbar__item {
|
||||
display: block;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
font-size: 0;
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
text-align: center;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-tabbar__item:first-child {
|
||||
padding-left: constant(safe-area-inset-left);
|
||||
padding-left: env(safe-area-inset-left);
|
||||
}
|
||||
|
||||
.weui-tabbar__item:last-child {
|
||||
padding-right: constant(safe-area-inset-right);
|
||||
padding-right: env(safe-area-inset-right);
|
||||
}
|
||||
|
||||
.weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon,
|
||||
.weui-tabbar__item.weui-bar__item_on .weui-tabbar__label {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
|
||||
svg {
|
||||
fill: #07c160;
|
||||
}
|
||||
|
||||
svg {
|
||||
fill: var(--weui-BRAND);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-tabbar__icon {
|
||||
display: inline-block;
|
||||
margin-bottom: 6px;
|
||||
|
||||
svg {
|
||||
fill: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
|
||||
svg {
|
||||
fill: var(--weui-FG-0);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-tabbar__label {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
font-size: 12px;
|
||||
line-height: 1.4;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.weui-navbar {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
position: relative;
|
||||
z-index: 500;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
padding-top: constant(safe-area-inset-top);
|
||||
padding-top: env(safe-area-inset-top);
|
||||
}
|
||||
|
||||
.weui-navbar:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-navbar+.weui-tab__panel {
|
||||
padding-bottom: constant(safe-area-inset-bottom);
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
}
|
||||
|
||||
.weui-navbar__item {
|
||||
position: relative;
|
||||
display: block;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
padding: 16px 0;
|
||||
padding-top: calc(16px + constant(safe-area-inset-top));
|
||||
padding-top: calc(16px + env(safe-area-inset-top));
|
||||
text-align: center;
|
||||
font-size: 17px;
|
||||
line-height: 1.41176471;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-navbar__item.weui-bar__item_on,
|
||||
.weui-navbar__item:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-navbar__item:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-right: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 100% 0;
|
||||
transform-origin: 100% 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-navbar__item:first-child {
|
||||
padding-left: constant(safe-area-inset-left);
|
||||
padding-left: env(safe-area-inset-left);
|
||||
}
|
||||
|
||||
.weui-navbar__item:last-child {
|
||||
padding-right: constant(safe-area-inset-right);
|
||||
padding-right: env(safe-area-inset-right);
|
||||
}
|
||||
|
||||
.weui-navbar__item:last-child:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-tab {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.weui-tab__panel {
|
||||
box-sizing: border-box;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
overflow: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.weui-tab__content {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-progress {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-progress__bar {
|
||||
background-color: #ededed;
|
||||
background-color: var(--weui-BG-0);
|
||||
height: 3px;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-progress__inner-bar {
|
||||
width: 0;
|
||||
height: 100%;
|
||||
background-color: #07c160;
|
||||
background-color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-progress__opr {
|
||||
display: block;
|
||||
margin-left: 15px;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-panel {
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
margin-top: 10px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-panel:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-panel:before {
|
||||
top: 0;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-panel:after,
|
||||
.weui-panel:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-panel:after {
|
||||
bottom: 0;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-panel .weui-cells:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-panel__hd {
|
||||
padding: 16px 16px 13px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
font-size: 15px;
|
||||
font-weight: 500;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-panel__hd:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
left: 15px;
|
||||
}
|
||||
|
||||
.weui-media-box {
|
||||
padding: 16px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-media-box:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
left: 16px;
|
||||
}
|
||||
|
||||
.weui-media-box:first-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
a.weui-media-box {
|
||||
color: #000;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
a.weui-media-box:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-media-box__title {
|
||||
display: block;
|
||||
font-weight: 400;
|
||||
font-size: 17px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
width: auto;
|
||||
white-space: nowrap;
|
||||
word-wrap: normal;
|
||||
}
|
||||
|
||||
.weui-media-box__desc,
|
||||
.weui-media-box__title {
|
||||
line-height: 1.4;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-media-box__desc {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
font-size: 14px;
|
||||
padding-top: 4px;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
}
|
||||
|
||||
.weui-media-box__info {
|
||||
display: block;
|
||||
margin-top: 16px;
|
||||
padding-bottom: 4px;
|
||||
font-size: 13px;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
line-height: 1em;
|
||||
list-style: none;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-media-box__info__meta {
|
||||
float: left;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
.weui-media-box__info__meta_extra {
|
||||
padding-left: 1em;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.3);
|
||||
border-left: 1px solid var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-media-box_appmsg {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-media-box_appmsg .weui-media-box__hd {
|
||||
margin-right: 16px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-media-box_appmsg .weui-media-box__thumb {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.weui-media-box_appmsg .weui-media-box__bd {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.weui-media-box_small-appmsg {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-media-box_small-appmsg .weui-cells {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-media-box_small-appmsg .weui-cells:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-grids {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-grids:before {
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-grids:after,
|
||||
.weui-grids:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-grids:after {
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-left: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-grid {
|
||||
position: relative;
|
||||
float: left;
|
||||
padding: 20px 10px;
|
||||
width: 33.33333333%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.weui-grid:before {
|
||||
top: 0;
|
||||
width: 1px;
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-right: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 100% 0;
|
||||
transform-origin: 100% 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-grid:after,
|
||||
.weui-grid:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-grid:after {
|
||||
left: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-grid:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-grid__icon {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.weui-grid__icon img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.weui-grid__icon+.weui-grid__label {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.weui-grid__label {
|
||||
display: block;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-footer,
|
||||
.weui-grid__label {
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-footer {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-footer a,
|
||||
.weui-footer navigator {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-footer navigator {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-footer_fixed-bottom {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding-top: 16px;
|
||||
padding-bottom: 16px;
|
||||
padding-bottom: calc(16px + constant(safe-area-inset-bottom));
|
||||
padding-bottom: calc(16px + env(safe-area-inset-bottom));
|
||||
left: constant(safe-area-inset-left);
|
||||
left: env(safe-area-inset-left);
|
||||
right: constant(safe-area-inset-right);
|
||||
right: env(safe-area-inset-right);
|
||||
}
|
||||
|
||||
.weui-footer__links {
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-footer__link {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 0 8px;
|
||||
position: relative;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-footer__link:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-left: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
left: -8px;
|
||||
top: 0.36em;
|
||||
bottom: 0.36em;
|
||||
}
|
||||
|
||||
.weui-footer__link:first-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-footer__text {
|
||||
padding: 0 16px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.weui-flex {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-flex__item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-dialog {
|
||||
position: fixed;
|
||||
z-index: 5000;
|
||||
top: 50%;
|
||||
left: 16px;
|
||||
right: 16px;
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
text-align: center;
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-flex-direction: column;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
flex-direction: column;
|
||||
max-height: 90%;
|
||||
}
|
||||
|
||||
.weui-dialog__hd {
|
||||
padding: 32px 24px 16px;
|
||||
}
|
||||
|
||||
.weui-dialog__title {
|
||||
font-weight: 700;
|
||||
font-size: 20px;
|
||||
line-height: 1.4;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-dialog__bd {
|
||||
overflow-y: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
padding: 0 24px;
|
||||
margin-bottom: 32px;
|
||||
font-size: 17px;
|
||||
line-height: 1.4;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-dialog__bd:first-child {
|
||||
min-height: 40px;
|
||||
padding: 32px 24px 0;
|
||||
font-weight: 700;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
-webkit-flex-direction: column;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
flex-direction: column;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.weui-dialog__bd:first-child,
|
||||
.weui-dialog__ft {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-dialog__ft {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-dialog__ft:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-DIALOG-LINE-COLOR);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-DIALOG-LINE-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-dialog__btn {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
display: block;
|
||||
line-height: 1.41176471;
|
||||
padding: 16px 0;
|
||||
font-size: 17px;
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
font-weight: 700;
|
||||
text-decoration: none;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-dialog__btn:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-dialog__btn:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-left: 1px solid var(--weui-DIALOG-LINE-COLOR);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-DIALOG-LINE-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-dialog__btn:first-child:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-dialog__btn_default {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-HALF);
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog {
|
||||
text-align: left;
|
||||
box-shadow: 0 6px 30px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__title {
|
||||
font-size: 22px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__hd {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__bd {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__bd:first-child {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__ft {
|
||||
display: block;
|
||||
text-align: right;
|
||||
line-height: 40px;
|
||||
min-height: 40px;
|
||||
padding: 0 24px 16px;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__ft:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__btn {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
padding: 0 0.8em;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__btn:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__btn:last-child {
|
||||
margin-right: -0.8em;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__btn_default {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-HALF);
|
||||
}
|
||||
|
||||
@media screen and (min-width: 352px) {
|
||||
.weui-dialog {
|
||||
width: 320px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
min-height: 255px;
|
||||
max-height: 75%;
|
||||
z-index: 5000;
|
||||
line-height: 1.4;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
border-top-left-radius: 12px;
|
||||
border-top-right-radius: 12px;
|
||||
overflow: hidden;
|
||||
padding: 0 24px;
|
||||
padding: 0 calc(24px + constant(safe-area-inset-right)) constant(safe-area-inset-bottom) calc(24px + constant(safe-area-inset-left));
|
||||
padding: 0 calc(24px + env(safe-area-inset-right)) env(safe-area-inset-bottom) calc(24px + env(safe-area-inset-left));
|
||||
box-sizing: border-box;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
@media only screen and (max-device-height: 558px) {
|
||||
.weui-half-screen-dialog {
|
||||
max-height: calc(100% - 16px);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd {
|
||||
min-height: 64px;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd .weui-btn_icon,
|
||||
.weui-half-screen-dialog__hd .weui-icon-btn {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd .weui-btn_icon:active,
|
||||
.weui-half-screen-dialog__hd .weui-icon-btn:active {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd__side {
|
||||
position: relative;
|
||||
left: -8px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd__main {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd__side+.weui-half-screen-dialog__hd__main {
|
||||
text-align: center;
|
||||
padding: 0 40px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd__main+.weui-half-screen-dialog__hd__side {
|
||||
right: -8px;
|
||||
left: auto;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd__main+.weui-half-screen-dialog__hd__side .weui-btn_icon,
|
||||
.weui-half-screen-dialog__hd__main+.weui-half-screen-dialog__hd__side .weui-icon-btn {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__title {
|
||||
display: block;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
font-weight: 700;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__subtitle {
|
||||
display: block;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__bd {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
overflow-y: auto;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
padding-bottom: 56px;
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__desc {
|
||||
font-size: 17px;
|
||||
font-weight: 700;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__tips {
|
||||
padding-top: 16px;
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__ft {
|
||||
padding: 0 0 64px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__ft .weui-btn:nth-last-child(n + 2),
|
||||
.weui-half-screen-dialog__ft .weui-btn:nth-last-child(n + 2)+.weui-btn {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 0 8px;
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area .weui-btn {
|
||||
width: 184px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2),
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2)+.weui-btn {
|
||||
margin: 0 8px;
|
||||
width: 136px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2)+.weui-btn:first-child,
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2):first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2)+.weui-btn:last-child,
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2):last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area+.weui-half-screen-dialog__attachment-area {
|
||||
margin-top: 24px;
|
||||
margin-bottom: -34px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog_btn-wrap .weui-half-screen-dialog__btn-area {
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog_btn-wrap .weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2),
|
||||
.weui-half-screen-dialog_btn-wrap .weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2)+.weui-btn {
|
||||
width: 184px;
|
||||
margin: 16px 0 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog_btn-wrap .weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2)+.weui-btn:first-child,
|
||||
.weui-half-screen-dialog_btn-wrap .weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2):first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog_large {
|
||||
max-height: none;
|
||||
top: 16px;
|
||||
}
|
||||
|
||||
.weui-icon-more {
|
||||
-webkit-mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M5 10.25a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5z'/%3E%3C/svg%3E") no-repeat 50% 50%;
|
||||
mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M5 10.25a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5z'/%3E%3C/svg%3E") no-repeat 50% 50%;
|
||||
}
|
||||
|
||||
.weui-icon-slide-down {
|
||||
-webkit-mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'%3E %3Cdefs%3E %3Crect id='dda90263-a290-4594-926f-6aba8cb4779f-a' width='24' height='24' x='0' y='0' rx='12'/%3E %3C/defs%3E %3Cg fill='none' fill-rule='evenodd'%3E %3Cmask id='dda90263-a290-4594-926f-6aba8cb4779f-b' fill='%23fff'%3E %3Cuse xlink:href='%23dda90263-a290-4594-926f-6aba8cb4779f-a'/%3E %3C/mask%3E %3Cuse fill='%23000' fill-opacity='.05' xlink:href='%23dda90263-a290-4594-926f-6aba8cb4779f-a'/%3E %3Cg fill-opacity='.9' mask='url(%23dda90263-a290-4594-926f-6aba8cb4779f-b)'%3E %3Cpath fill='%23000' d='M11.407 15.464L6.693 10.75l1.179-1.179 4.125 4.125 4.124-4.125L17.3 10.75l-4.714 4.714a.833.833 0 0 1-1.179 0z'/%3E %3C/g%3E %3C/g%3E%3C/svg%3E");
|
||||
mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'%3E %3Cdefs%3E %3Crect id='dda90263-a290-4594-926f-6aba8cb4779f-a' width='24' height='24' x='0' y='0' rx='12'/%3E %3C/defs%3E %3Cg fill='none' fill-rule='evenodd'%3E %3Cmask id='dda90263-a290-4594-926f-6aba8cb4779f-b' fill='%23fff'%3E %3Cuse xlink:href='%23dda90263-a290-4594-926f-6aba8cb4779f-a'/%3E %3C/mask%3E %3Cuse fill='%23000' fill-opacity='.05' xlink:href='%23dda90263-a290-4594-926f-6aba8cb4779f-a'/%3E %3Cg fill-opacity='.9' mask='url(%23dda90263-a290-4594-926f-6aba8cb4779f-b)'%3E %3Cpath fill='%23000' d='M11.407 15.464L6.693 10.75l1.179-1.179 4.125 4.125 4.124-4.125L17.3 10.75l-4.714 4.714a.833.833 0 0 1-1.179 0z'/%3E %3C/g%3E %3C/g%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.weui-icon-btn.weui-icon-btn {
|
||||
outline: 0;
|
||||
-webkit-appearance: none;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
border-width: 0;
|
||||
background-color: transparent;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
font-size: 0;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.weui-icon-btn_goback.weui-icon-btn_goback {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
width: 1.2em;
|
||||
height: 2.4em;
|
||||
-webkit-mask: url("data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;
|
||||
mask: url("data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;
|
||||
}
|
||||
|
||||
.weui-icon-btn_close.weui-icon-btn_close {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
width: 1.4em;
|
||||
height: 2.4em;
|
||||
-webkit-mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;
|
||||
mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;
|
||||
}
|
||||
|
||||
.weui-toast {
|
||||
position: fixed;
|
||||
z-index: 5000;
|
||||
font-size: 10px;
|
||||
width: 13.6em;
|
||||
height: 13.6em;
|
||||
top: 40%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
border-radius: 12px;
|
||||
color: #333333;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
background-color: #1A1A1A;
|
||||
box-sizing: border-box;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-toast_text {
|
||||
width: auto;
|
||||
height: auto;
|
||||
min-width: 152px;
|
||||
max-width: 216px;
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
.weui-toast_text .weui-toast__content {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-icon_toast {
|
||||
display: block;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-icon_toast {
|
||||
width: 4em;
|
||||
height: 4em;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-icon-success-no-circle,
|
||||
.weui-icon_toast.weui-icon-warn {
|
||||
color: #FFEB3B;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-loading {
|
||||
width: 3.6em;
|
||||
height: 3.6em;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-primary-loading {
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
font-size: 40px;
|
||||
color: #FFEB3B;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-primary-loading:before {
|
||||
border-width: 4px 0 4px 4px;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-primary-loading:after {
|
||||
border-width: 4px 4px 4px 0;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-primary-loading .weui-primary-loading__dot {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
.weui-toast__content {
|
||||
font-size: 17px;
|
||||
padding: 0 12px;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-toast_text-more .weui-icon_toast {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.weui-toast_text-more .weui-toast__content {
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.weui-mask {
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.weui-mask,
|
||||
.weui-mask_transparent {
|
||||
position: fixed;
|
||||
z-index: 1000;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.weui-actionsheet {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
-webkit-transform: translateY(100%);
|
||||
transform: translateY(100%);
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
z-index: 5000;
|
||||
width: 100%;
|
||||
background-color: #f7f7f7;
|
||||
background-color: var(--weui-BG-1);
|
||||
-webkit-transition: -webkit-transform 0.3s;
|
||||
transition: -webkit-transform 0.3s;
|
||||
transition: transform 0.3s;
|
||||
transition: transform 0.3s, -webkit-transform 0.3s;
|
||||
border-top-left-radius: 12px;
|
||||
border-top-right-radius: 12px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-actionsheet__title {
|
||||
position: relative;
|
||||
height: 56px;
|
||||
padding: 8px 24px;
|
||||
padding: 8px calc(24px + constant(safe-area-inset-right)) 8px calc(24px + constant(safe-area-inset-left));
|
||||
padding: 8px calc(24px + env(safe-area-inset-right)) 8px calc(24px + env(safe-area-inset-left));
|
||||
box-sizing: border-box;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
line-height: 1.4;
|
||||
background: #fff;
|
||||
background: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-actionsheet__title:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-actionsheet__title .weui-actionsheet__title-text {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
}
|
||||
|
||||
.weui-actionsheet__action,
|
||||
.weui-actionsheet__menu {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-actionsheet__action {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.weui-actionsheet__action .weui-actionsheet__cell:last-child {
|
||||
padding-bottom: calc(16px + constant(safe-area-inset-bottom));
|
||||
padding-bottom: calc(16px + env(safe-area-inset-bottom));
|
||||
}
|
||||
|
||||
.weui-actionsheet__cell {
|
||||
position: relative;
|
||||
padding: 16px;
|
||||
padding: 16px calc(16px + constant(safe-area-inset-right)) 16px calc(16px + constant(safe-area-inset-left));
|
||||
padding: 16px calc(16px + env(safe-area-inset-right)) 16px calc(16px + env(safe-area-inset-left));
|
||||
text-align: center;
|
||||
font-size: 17px;
|
||||
line-height: 1.41176471;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-actionsheet__cell:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-actionsheet__cell:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-actionsheet__cell:first-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-actionsheet__cell_warn {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet {
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
bottom: auto;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
width: 274px;
|
||||
box-sizing: border-box;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
background: transparent;
|
||||
-webkit-transition: -webkit-transform 0.3s;
|
||||
transition: -webkit-transform 0.3s;
|
||||
transition: transform 0.3s;
|
||||
transition: transform 0.3s, -webkit-transform 0.3s;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet__action {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet__menu {
|
||||
border-radius: 2px;
|
||||
box-shadow: 0 6px 30px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet__cell {
|
||||
padding: 16px;
|
||||
font-size: 17px;
|
||||
line-height: 1.41176471;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet__cell:first-child {
|
||||
border-top-left-radius: 2px;
|
||||
border-top-right-radius: 2px;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet__cell:last-child {
|
||||
border-bottom-left-radius: 2px;
|
||||
border-bottom-right-radius: 2px;
|
||||
}
|
||||
|
||||
.weui-actionsheet_toggle {
|
||||
-webkit-transform: translate(0);
|
||||
transform: translate(0);
|
||||
}
|
||||
|
||||
.weui-loadmore {
|
||||
width: 65%;
|
||||
margin: 20px auto;
|
||||
text-align: center;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-loadmore .weui-loading,
|
||||
.weui-loadmore .weui-primary-loading {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.weui-loadmore__tips {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-loadmore_line {
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
margin-top: 32px;
|
||||
}
|
||||
|
||||
.weui-loadmore_line .weui-loadmore__tips {
|
||||
position: relative;
|
||||
top: -0.9em;
|
||||
padding: 0 0.55em;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-loadmore_dot .weui-loadmore__tips {
|
||||
padding: 0 0.16em;
|
||||
}
|
||||
|
||||
.weui-loadmore_dot .weui-loadmore__tips:before {
|
||||
content: " ";
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-radius: 50%;
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
background-color: var(--weui-FG-3);
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
vertical-align: 0;
|
||||
top: -0.16em;
|
||||
}
|
||||
|
||||
.weui-badge {
|
||||
display: inline-block;
|
||||
padding: 0.15em 0.4em;
|
||||
min-width: 0.66666667em;
|
||||
border-radius: 18px;
|
||||
background-color: #fa5151;
|
||||
background-color: var(--weui-RED);
|
||||
color: #fff;
|
||||
line-height: 1.2;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.weui-badge_dot {
|
||||
padding: 0.4em;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.weui-toptips {
|
||||
display: none;
|
||||
position: fixed;
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
top: 8px;
|
||||
left: 8px;
|
||||
right: 8px;
|
||||
padding: 10px;
|
||||
border-radius: 8px;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
z-index: 5000;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.weui-toptips_warn {
|
||||
background-color: #fa5151;
|
||||
background-color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-list-tips {
|
||||
list-style: none;
|
||||
padding-top: 24px;
|
||||
padding-bottom: 24px;
|
||||
line-height: 1.4;
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-list-tips:before {
|
||||
content: "";
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-list-tips:last-child {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-list-tips__item {
|
||||
position: relative;
|
||||
padding-left: 15px;
|
||||
margin: 16px 0;
|
||||
}
|
||||
|
||||
.weui-list-tips__item:before {
|
||||
content: "\2022";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: -0.1em;
|
||||
}
|
||||
|
||||
.weui-list-tips__item:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-form-preview__list+.weui-list-tips>.weui-list-tips__item:first-child {
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.weui-search-bar {
|
||||
position: relative;
|
||||
padding: 8px;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
background-color: #ededed;
|
||||
background-color: var(--weui-BG-0);
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-search-bar.weui-search-bar_focusing .weui-search-bar__cancel-btn {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.weui-search-bar.weui-search-bar_focusing .weui-search-bar__label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-search-bar .weui-icon-search {
|
||||
font-size: 10px;
|
||||
width: 1.6em;
|
||||
height: 1.6em;
|
||||
margin-left: 8px;
|
||||
margin-right: 4px;
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.weui-search-bar__form {
|
||||
position: relative;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.weui-search-bar__box {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-search-bar__box .weui-search-bar__input {
|
||||
padding: 8px 0;
|
||||
width: 100%;
|
||||
height: 1.14285714em;
|
||||
border: 0;
|
||||
font-size: 14px;
|
||||
line-height: 1.14285714em;
|
||||
box-sizing: content-box;
|
||||
background: transparent;
|
||||
caret-color: #07c160;
|
||||
caret-color: var(--weui-BRAND);
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-search-bar__box .weui-search-bar__input:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.weui-search-bar__box .weui-icon-clear {
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
font-size: 10px;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
margin-left: 8px;
|
||||
-webkit-mask-size: 2em;
|
||||
mask-size: 2em;
|
||||
-webkit-mask-position: calc(100% - 8px) 0;
|
||||
mask-position: calc(100% - 8px) 0;
|
||||
min-width: 44px;
|
||||
}
|
||||
|
||||
.weui-search-bar__box .weui-icon-clear:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 44px;
|
||||
}
|
||||
|
||||
.weui-search-bar__label {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 2;
|
||||
font-size: 0;
|
||||
border-radius: 4px;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
background: #fff;
|
||||
background: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-search-bar__label span {
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.weui-search-bar__cancel-btn {
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
display: none;
|
||||
margin-left: 8px;
|
||||
line-height: 28px;
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-search-bar__input:not(:valid)+.weui-icon-clear {
|
||||
display: none;
|
||||
}
|
||||
|
||||
input[type="search"]::-webkit-search-cancel-button,
|
||||
input[type="search"]::-webkit-search-decoration,
|
||||
input[type="search"]::-webkit-search-results-button,
|
||||
input[type="search"]::-webkit-search-results-decoration {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-picker {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 5000;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
padding-bottom: constant(safe-area-inset-bottom);
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
-webkit-transform: translateY(100%);
|
||||
transform: translateY(100%);
|
||||
-webkit-transition: -webkit-transform 0.3s;
|
||||
transition: -webkit-transform 0.3s;
|
||||
transition: transform 0.3s;
|
||||
transition: transform 0.3s, -webkit-transform 0.3s;
|
||||
}
|
||||
|
||||
.weui-picker__hd {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
padding: 16px;
|
||||
padding: 16px calc(16px + constant(safe-area-inset-right)) 16px calc(16px + constant(safe-area-inset-left));
|
||||
padding: 16px calc(16px + env(safe-area-inset-right)) 16px calc(16px + env(safe-area-inset-left));
|
||||
position: relative;
|
||||
text-align: center;
|
||||
font-size: 17px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-picker__hd:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-picker__bd {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
height: 240px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-picker__group {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.weui-picker__group:first-child .weui-picker__item {
|
||||
padding-left: constant(safe-area-inset-left);
|
||||
padding-left: env(safe-area-inset-left);
|
||||
}
|
||||
|
||||
.weui-picker__group:last-child .weui-picker__item {
|
||||
padding-right: constant(safe-area-inset-right);
|
||||
padding-right: env(safe-area-inset-right);
|
||||
}
|
||||
|
||||
.weui-picker__mask {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0 auto;
|
||||
z-index: 3;
|
||||
background-image: -webkit-linear-gradient(top,
|
||||
hsla(0, 0%, 100%, 0.95),
|
||||
hsla(0, 0%, 100%, 0.6)),
|
||||
-webkit-linear-gradient(bottom, hsla(0, 0%, 100%, 0.95), hsla(0, 0%, 100%, 0.6));
|
||||
background-image: linear-gradient(180deg,
|
||||
hsla(0, 0%, 100%, 0.95),
|
||||
hsla(0, 0%, 100%, 0.6)),
|
||||
linear-gradient(0deg, hsla(0, 0%, 100%, 0.95), hsla(0, 0%, 100%, 0.6));
|
||||
background-position: top, bottom;
|
||||
background-size: 100% 92px;
|
||||
background-repeat: no-repeat;
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] .weui-picker__mask {
|
||||
background-image: -webkit-linear-gradient(top,
|
||||
rgba(25, 25, 25, 0.95),
|
||||
rgba(25, 25, 25, 0.6)),
|
||||
-webkit-linear-gradient(bottom, rgba(25, 25, 25, 0.95), rgba(25, 25, 25, 0.6));
|
||||
background-image: linear-gradient(180deg,
|
||||
rgba(25, 25, 25, 0.95),
|
||||
rgba(25, 25, 25, 0.6)),
|
||||
linear-gradient(0deg, rgba(25, 25, 25, 0.95), rgba(25, 25, 25, 0.6));
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) .weui-picker__mask {
|
||||
background-image: -webkit-linear-gradient(top,
|
||||
rgba(25, 25, 25, 0.95),
|
||||
rgba(25, 25, 25, 0.6)),
|
||||
-webkit-linear-gradient(bottom, rgba(25, 25, 25, 0.95), rgba(25, 25, 25, 0.6));
|
||||
background-image: linear-gradient(180deg,
|
||||
rgba(25, 25, 25, 0.95),
|
||||
rgba(25, 25, 25, 0.6)),
|
||||
linear-gradient(0deg, rgba(25, 25, 25, 0.95), rgba(25, 25, 25, 0.6));
|
||||
}
|
||||
}
|
||||
|
||||
.weui-picker__indicator {
|
||||
width: 100%;
|
||||
height: 56px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 92px;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.weui-picker__indicator:before {
|
||||
top: 0;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-picker__indicator:after,
|
||||
.weui-picker__indicator:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-picker__indicator:after {
|
||||
bottom: 0;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-picker__content {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.weui-picker__item {
|
||||
height: 48px;
|
||||
line-height: 48px;
|
||||
text-align: center;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-picker__item_disabled {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
@-webkit-keyframes a {
|
||||
0% {
|
||||
-webkit-transform: translate3d(0, 100%, 0);
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes a {
|
||||
0% {
|
||||
-webkit-transform: translate3d(0, 100%, 0);
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-animate-slide-up,
|
||||
.weui-animate_slide-up {
|
||||
-webkit-animation: a ease 0.3s forwards;
|
||||
animation: a ease 0.3s forwards;
|
||||
}
|
||||
|
||||
@-webkit-keyframes b {
|
||||
0% {
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translate3d(0, 100%, 0);
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes b {
|
||||
0% {
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translate3d(0, 100%, 0);
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-animate-slide-down,
|
||||
.weui-animate_slide-down {
|
||||
-webkit-animation: b ease 0.3s forwards;
|
||||
animation: b ease 0.3s forwards;
|
||||
}
|
||||
|
||||
@-webkit-keyframes c {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes c {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.weui-animate-fade-in,
|
||||
.weui-animate_fade-in {
|
||||
-webkit-animation: c ease 0.3s forwards;
|
||||
animation: c ease 0.3s forwards;
|
||||
}
|
||||
|
||||
@-webkit-keyframes d {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes d {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.weui-animate-fade-out,
|
||||
.weui-animate_fade-out {
|
||||
-webkit-animation: d ease 0.3s forwards;
|
||||
animation: d ease 0.3s forwards;
|
||||
}
|
||||
|
||||
.weui-transition.weui-mask {
|
||||
-webkit-transition: opacity 0.3s, visibility 0.3s;
|
||||
transition: opacity 0.3s, visibility 0.3s;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.weui-transition.weui-half-screen-dialog {
|
||||
-webkit-transition: -webkit-transform 0.3s;
|
||||
transition: -webkit-transform 0.3s;
|
||||
transition: transform 0.3s;
|
||||
transition: transform 0.3s, -webkit-transform 0.3s;
|
||||
-webkit-transform: translateY(100%);
|
||||
transform: translateY(100%);
|
||||
}
|
||||
|
||||
.weui-transition_show.weui-mask {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.weui-transition_show.weui-half-screen-dialog {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.weui-agree {
|
||||
display: block;
|
||||
padding: 8px 15px 0;
|
||||
font-size: 14px;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-agree a,
|
||||
.weui-agree navigator {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-agree navigator {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-agree__text {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.weui-agree__checkbox {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
display: inline-block;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
vertical-align: middle;
|
||||
background-color: currentColor;
|
||||
-webkit-mask-position: 0 0;
|
||||
mask-position: 0 0;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
mask-size: 100%;
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
font-size: 17px;
|
||||
margin-top: -0.2em;
|
||||
}
|
||||
|
||||
.weui-agree__checkbox-check {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-agree__checkbox-check[aria-checked="true"]+.weui-agree__checkbox,
|
||||
.weui-agree__checkbox:checked {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-agree_animate {
|
||||
-webkit-animation: e 0.3s 1;
|
||||
animation: e 0.3s 1;
|
||||
}
|
||||
|
||||
@-webkit-keyframes e {
|
||||
0% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
16% {
|
||||
-webkit-transform: translateX(-8px);
|
||||
transform: translateX(-8px);
|
||||
}
|
||||
|
||||
28% {
|
||||
-webkit-transform: translateX(-16px);
|
||||
transform: translateX(-16px);
|
||||
}
|
||||
|
||||
44% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
59% {
|
||||
-webkit-transform: translateX(-16px);
|
||||
transform: translateX(-16px);
|
||||
}
|
||||
|
||||
73% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
82% {
|
||||
-webkit-transform: translateX(16px);
|
||||
transform: translateX(16px);
|
||||
}
|
||||
|
||||
94% {
|
||||
-webkit-transform: translateX(8px);
|
||||
transform: translateX(8px);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes e {
|
||||
0% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
16% {
|
||||
-webkit-transform: translateX(-8px);
|
||||
transform: translateX(-8px);
|
||||
}
|
||||
|
||||
28% {
|
||||
-webkit-transform: translateX(-16px);
|
||||
transform: translateX(-16px);
|
||||
}
|
||||
|
||||
44% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
59% {
|
||||
-webkit-transform: translateX(-16px);
|
||||
transform: translateX(-16px);
|
||||
}
|
||||
|
||||
73% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
82% {
|
||||
-webkit-transform: translateX(16px);
|
||||
transform: translateX(16px);
|
||||
}
|
||||
|
||||
94% {
|
||||
-webkit-transform: translateX(8px);
|
||||
transform: translateX(8px);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-primary-loading {
|
||||
font-size: 16px;
|
||||
display: -webkit-inline-box;
|
||||
display: -webkit-inline-flex;
|
||||
display: inline-flex;
|
||||
position: relative;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
vertical-align: middle;
|
||||
color: #606060;
|
||||
-webkit-animation: f 1s steps(60) infinite;
|
||||
animation: f 1s steps(60) infinite;
|
||||
}
|
||||
|
||||
.weui-primary-loading:after,
|
||||
.weui-primary-loading:before {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 0.5em;
|
||||
height: 1em;
|
||||
box-sizing: border-box;
|
||||
border: 0.125em solid;
|
||||
border-color: currentColor;
|
||||
}
|
||||
|
||||
.weui-primary-loading:before {
|
||||
border-right-width: 0;
|
||||
border-top-left-radius: 1em;
|
||||
border-bottom-left-radius: 1em;
|
||||
-webkit-mask-image: -webkit-linear-gradient(top,
|
||||
#000 8%,
|
||||
rgba(0, 0, 0, 0.3) 95%);
|
||||
}
|
||||
|
||||
.weui-primary-loading:after {
|
||||
border-left-width: 0;
|
||||
border-top-right-radius: 1em;
|
||||
border-bottom-right-radius: 1em;
|
||||
-webkit-mask-image: -webkit-linear-gradient(top,
|
||||
transparent 8%,
|
||||
rgba(0, 0, 0, 0.3) 95%);
|
||||
}
|
||||
|
||||
.weui-primary-loading__dot {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
margin-left: -0.0625em;
|
||||
width: 0.125em;
|
||||
height: 0.125em;
|
||||
border-top-right-radius: 0.125em;
|
||||
border-bottom-right-radius: 0.125em;
|
||||
background: currentColor;
|
||||
}
|
||||
|
||||
.weui-primary-loading_brand {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-primary-loading_transparent {
|
||||
color: #ededed;
|
||||
}
|
||||
|
||||
.weui-loading {
|
||||
font-size: 10px;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
-webkit-animation: f 1s steps(12) infinite;
|
||||
animation: f 1s steps(12) infinite;
|
||||
background: transparent url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E9E9E9' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23989697' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%239B999A' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23A3A1A2' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23ABA9AA' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23B2B2B2' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23BAB8B9' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23C2C0C1' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23CBCBCB' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23D2D2D2' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23DADADA' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E2E2E2' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E") no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.weui-btn_loading.weui-btn_primary .weui-loading,
|
||||
.weui-loading.weui-loading_transparent {
|
||||
background-image: url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect xmlns='http://www.w3.org/2000/svg' width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.56)' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.5)' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.43)' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.38)' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.32)' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.28)' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.25)' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.2)' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.17)' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.14)' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.1)' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.03)' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
@-webkit-keyframes f {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: rotate(1turn);
|
||||
transform: rotate(1turn);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes f {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: rotate(1turn);
|
||||
transform: rotate(1turn);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-slider {
|
||||
padding: 15px 18px;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.weui-slider__inner {
|
||||
position: relative;
|
||||
height: 2px;
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
background-color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-slider__track {
|
||||
height: 100%;
|
||||
background-color: #07c160;
|
||||
background-color: var(--weui-BRAND);
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.weui-slider__handler {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
margin-left: -14px;
|
||||
margin-top: -14px;
|
||||
border-radius: 50%;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0 4px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0 0 4px var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-slider-box {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-slider-box .weui-slider {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-slider-box__value {
|
||||
margin-left: 0.5em;
|
||||
min-width: 24px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
body,
|
||||
html {
|
||||
height: 100%;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: system-ui, -apple-system, Helvetica Neue, sans-serif;
|
||||
}
|
||||
|
||||
.page,
|
||||
body {
|
||||
background-color: var(--weui-BG-0);
|
||||
}
|
||||
|
||||
.page {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
overflow-y: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
box-sizing: border-box;
|
||||
z-index: 1;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 15 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M9.17 6l2 2H20v10H4V6h5.17M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/></svg>
|
||||
|
Before Width: | Height: | Size: 276 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3zM8 13h2.55v3h2.9v-3H16l-4-4z"/></svg>
|
||||
|
Before Width: | Height: | Size: 518 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
|
||||
|
Before Width: | Height: | Size: 393 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.09-.16-.26-.25-.44-.25-.06 0-.12.01-.17.03l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.06-.02-.12-.03-.18-.03-.17 0-.34.09-.43.25l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.09.16.26.25.44.25.06 0 .12-.01.17-.03l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.06.02.12.03.18.03.17 0 .34-.09.43-.25l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zm-1.98-1.71c.04.31.05.52.05.73 0 .21-.02.43-.05.73l-.14 1.13.89.7 1.08.84-.7 1.21-1.27-.51-1.04-.42-.9.68c-.43.32-.84.56-1.25.73l-1.06.43-.16 1.13-.2 1.35h-1.4l-.19-1.35-.16-1.13-1.06-.43c-.43-.18-.83-.41-1.23-.71l-.91-.7-1.06.43-1.27.51-.7-1.21 1.08-.84.89-.7-.14-1.13c-.03-.31-.05-.54-.05-.74s.02-.43.05-.73l.14-1.13-.89-.7-1.08-.84.7-1.21 1.27.51 1.04.42.9-.68c.43-.32.84-.56 1.25-.73l1.06-.43.16-1.13.2-1.35h1.39l.19 1.35.16 1.13 1.06.43c.43.18.83.41 1.23.71l.91.7 1.06-.43 1.27-.51.7 1.21-1.07.85-.89.7.14 1.13zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.4 KiB |
@@ -1,215 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-cmn-Hans">
|
||||
|
||||
<head>
|
||||
<title>影視</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover">
|
||||
<meta name="wechat-enable-text-zoom-em" content="true">
|
||||
<meta name="layoutmode" content="standard">
|
||||
<link rel="stylesheet" type="text/css" href="css/style.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/ui.css">
|
||||
<script src="js/jquery.min.js"></script>
|
||||
<script src="js/script.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="page">
|
||||
<div class="page__bd" style="height: 100%;">
|
||||
<div class="weui-tab">
|
||||
<div id="panel1" role="tabpanel" aria-labelledby="tab1" class="weui-tab__panel">
|
||||
<div class="weui-form">
|
||||
<div class="weui-form__text-area">
|
||||
<h2 class="weui-form__title">搜尋</h2>
|
||||
</div>
|
||||
<div class="weui-form__control-area">
|
||||
<div class="weui-cells__group weui-cells__group_form">
|
||||
<div class="weui-cells">
|
||||
<div class="weui-cell weui-cell_active weui-cell_vcode weui-cell_wrap">
|
||||
<div class="weui-cell__bd weui-flex">
|
||||
<input id="keyword" class="weui-input weui-cell__control weui-cell__control_flex" type="text" value="" placeholder="請輸入關鍵字..." />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: center;margin-top: 16px;">
|
||||
<button onclick="search(); return false;" class="weui-cell__control weui-btn weui-btn_default weui-vcode-btn">確定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="panel2" role="tabpanel" aria-labelledby="tab2" class="weui-tab__panel" style="display: none;">
|
||||
<div class="weui-form">
|
||||
<div class="weui-form__text-area">
|
||||
<h2 class="weui-form__title">推送</h2>
|
||||
</div>
|
||||
<div class="weui-form__control-area">
|
||||
<div class="weui-cells__group weui-cells__group_form">
|
||||
<div class="weui-cells">
|
||||
<div class="weui-cell weui-cell_active weui-cell_vcode weui-cell_wrap">
|
||||
<div class="weui-cell__bd weui-flex">
|
||||
<input id="push_url" class="weui-input weui-cell__control weui-cell__control_flex" type="text" value="" placeholder="請輸入播放網址..." />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: center;margin-top: 16px;">
|
||||
<button onclick="push(); return false;" class="weui-cell__control weui-btn weui-btn_default weui-vcode-btn">確定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="panel3" role="tabpanel" aria-labelledby="tab3" class="weui-tab__panel" style="display: none;">
|
||||
<div class="weui-form">
|
||||
<div class="weui-form__text-area">
|
||||
<h2 class="weui-form__title">設定</h2>
|
||||
</div>
|
||||
<div class="weui-form__control-area">
|
||||
<div class="weui-cells__group weui-cells__group_form">
|
||||
<div class="weui-cells">
|
||||
<div class="weui-cell weui-cell_active weui-cell_vcode weui-cell_wrap">
|
||||
<div class="weui-cell__bd weui-flex">
|
||||
<input id="setting_name" class="weui-input weui-cell__control" type="text" value="" placeholder="請輸入名稱" />
|
||||
<input id="setting_text" class="weui-input weui-cell__control weui-cell__control_flex" type="text" value="" placeholder="請輸入接口/Proxy/User-Agent..." />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: center;margin-top: 16px;">
|
||||
<button onclick="setting(); return false;" class="weui-cell__control weui-btn weui-btn_default weui-vcode-btn">確定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="panel4" role="tabpanel" aria-labelledby="tab4" class="weui-tab__panel" style="display: none;">
|
||||
<div class="weui-form" style="min-height: 0;">
|
||||
<div class="weui-form__text-area">
|
||||
<h2 class="weui-form__title">本地</h2>
|
||||
</div>
|
||||
<input type="file" id="file_uploader" style="display:none;" onchange="uploadTip()" multiple />
|
||||
<div class="weui-form__control-area" style="text-align: center;margin-bottom: 8px !important;">
|
||||
<div>
|
||||
<a href="javascript:void(0)" role="button" class="weui-btn weui-btn_mini weui-btn_default weui-wa-hotarea" href="javascript:void(0)" onclick="uploadFile()">上傳檔案</a>
|
||||
<a href="javascript:void(0)" role="button" class="weui-btn weui-btn_mini weui-btn_default weui-wa-hotarea" href="javascript:void(0)" onclick="newFolder()">新增資料夾</a>
|
||||
<a id="delCurFolder" href="javascript:void(0)" role="button" class="weui-btn weui-btn_mini weui-btn_warn weui-wa-hotarea" href="javascript:void(0)" onclick="delFolder()" style="display: none;">刪除資料夾</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="weui-cells" id="file_list"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tablist" class="weui-tabbar">
|
||||
<div id="tab1" role="tab" aria-labelledby="t1_title" aria-selected="true" aria-controls="panel1" class="weui-tabbar__item weui-bar__item_on">
|
||||
<div class="weui-tabbar__icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
|
||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
||||
<path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" />
|
||||
</svg>
|
||||
</div>
|
||||
<p id="t1_title" aria-hidden="true" class="weui-tabbar__label">搜尋</p>
|
||||
</div>
|
||||
<div id="tab2" role="tab" aria-labelledby="t2_title" aria-selected="false" aria-controls="panel2" class="weui-tabbar__item">
|
||||
<div class="weui-tabbar__icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
|
||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
||||
<path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3zM8 13h2.55v3h2.9v-3H16l-4-4z" />
|
||||
</svg>
|
||||
</div>
|
||||
<p id="t2_title" aria-hidden="true" class="weui-tabbar__label">推送</p>
|
||||
</div>
|
||||
<div id="tab3" role="tab" aria-labelledby="t3_title" aria-selected="false" aria-controls="panel3" class="weui-tabbar__item">
|
||||
<div class="weui-tabbar__icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
|
||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
||||
<path d="M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.09-.16-.26-.25-.44-.25-.06 0-.12.01-.17.03l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.06-.02-.12-.03-.18-.03-.17 0-.34.09-.43.25l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.09.16.26.25.44.25.06 0 .12-.01.17-.03l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.06.02.12.03.18.03.17 0 .34-.09.43-.25l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zm-1.98-1.71c.04.31.05.52.05.73 0 .21-.02.43-.05.73l-.14 1.13.89.7 1.08.84-.7 1.21-1.27-.51-1.04-.42-.9.68c-.43.32-.84.56-1.25.73l-1.06.43-.16 1.13-.2 1.35h-1.4l-.19-1.35-.16-1.13-1.06-.43c-.43-.18-.83-.41-1.23-.71l-.91-.7-1.06.43-1.27.51-.7-1.21 1.08-.84.89-.7-.14-1.13c-.03-.31-.05-.54-.05-.74s.02-.43.05-.73l.14-1.13-.89-.7-1.08-.84.7-1.21 1.27.51 1.04.42.9-.68c.43-.32.84-.56 1.25-.73l1.06-.43.16-1.13.2-1.35h1.39l.19 1.35.16 1.13 1.06.43c.43.18.83.41 1.23.71l.91.7 1.06-.43 1.27-.51.7 1.21-1.07.85-.89.7.14 1.13zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z" />
|
||||
</svg>
|
||||
</div>
|
||||
<p id="t3_title" aria-hidden="true" class="weui-tabbar__label">設定</p>
|
||||
</div>
|
||||
<div id="tab4" role="tab" aria-labelledby="t4_title" aria-selected="false" aria-controls="panel4" class="weui-tabbar__item">
|
||||
<div class="weui-tabbar__icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
|
||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
||||
<path d="M9.17 6l2 2H20v10H4V6h5.17M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z" />
|
||||
</svg>
|
||||
</div>
|
||||
<p id="t4_title" aria-hidden="true" class="weui-tabbar__label">本地</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="dialog" aria-hidden="true" aria-modal="true" id="fileInfoDialog" style="display: none;">
|
||||
<div class="weui-mask"></div>
|
||||
<div class="weui-dialog">
|
||||
<div class="weui-dialog__hd"><strong class="weui-dialog__title">本地路徑</strong></div>
|
||||
<div class="weui-dialog__bd" id="fileUrl"></div>
|
||||
<div class="weui-dialog__ft">
|
||||
<a role="button" href="javascript:void(0)" onclick="pushFile(0)" class="weui-dialog__btn weui-dialog__btn_default">關閉</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="pushFile(1)" class="weui-dialog__btn weui-dialog__btn_primary">使用</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="delFile()" class="weui-dialog__btn weui-dialog__btn_primary" id="delFileBtn">刪除</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="dialog" aria-hidden="true" aria-modal="true" id="uploadTip" style="display: none;">
|
||||
<div class="weui-mask"></div>
|
||||
<div class="weui-dialog">
|
||||
<div class="weui-dialog__hd"><strong class="weui-dialog__title">確認上傳?</strong></div>
|
||||
<div class="weui-dialog__bd" id="uploadTipContent"></div>
|
||||
<div class="weui-dialog__ft">
|
||||
<a role="button" href="javascript:void(0)" onclick="doUpload(0)" class="weui-dialog__btn weui-dialog__btn_default">取消</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="doUpload(1)" class="weui-dialog__btn weui-dialog__btn_primary">確定</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="dialog" aria-hidden="true" aria-modal="true" id="newFolder" style="display: none;">
|
||||
<div class="weui-mask"></div>
|
||||
<div class="weui-dialog">
|
||||
<div class="weui-dialog__hd"><strong class="weui-dialog__title">新增資料夾</strong></div>
|
||||
<div class="weui-dialog__bd">
|
||||
<input id="newFolderContent" class="weui-input weui-cell__control weui-cell__control_flex" type="text" value="" placeholder="請輸入資料夾名稱..." />
|
||||
</div>
|
||||
<div class="weui-dialog__ft">
|
||||
<a role="button" href="javascript:void(0)" onclick="doNewFolder(0)" class="weui-dialog__btn weui-dialog__btn_default">取消</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="doNewFolder(1)" class="weui-dialog__btn weui-dialog__btn_primary">確定</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="dialog" aria-hidden="true" aria-modal="true" id="delFolder" style="display: none;">
|
||||
<div class="weui-mask"></div>
|
||||
<div class="weui-dialog">
|
||||
<div class="weui-dialog__hd"><strong class="weui-dialog__title">刪除資料夾</strong></div>
|
||||
<div class="weui-dialog__bd" id="delFolderContent"></div>
|
||||
<div class="weui-dialog__ft">
|
||||
<a role="button" href="javascript:void(0)" onclick="doDelFolder(0)" class="weui-dialog__btn weui-dialog__btn_default">取消</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="doDelFolder(1)" class="weui-dialog__btn weui-dialog__btn_primary">確定</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="dialog" aria-hidden="true" aria-modal="true" id="delFile" style="display: none;">
|
||||
<div class="weui-mask"></div>
|
||||
<div class="weui-dialog">
|
||||
<div class="weui-dialog__hd"><strong class="weui-dialog__title">刪除檔案</strong></div>
|
||||
<div class="weui-dialog__bd" id="delFileContent"></div>
|
||||
<div class="weui-dialog__ft">
|
||||
<a role="button" href="javascript:void(0)" onclick="doDelFile(0)" class="weui-dialog__btn weui-dialog__btn_default">取消</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="doDelFile(1)" class="weui-dialog__btn weui-dialog__btn_primary">確定</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="alert" id="warnToast" style="display: none;">
|
||||
<div class="weui-mask_transparent"></div>
|
||||
<div class="weui-toast">
|
||||
<i class="weui-icon-warn weui-icon_toast"></i>
|
||||
<p class="weui-toast__content" id="warnToastContent"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div role="alert" id="loadingToast" style="display: none;">
|
||||
<div class="weui-mask_transparent"></div>
|
||||
<div class="weui-toast">
|
||||
<span class="weui-primary-loading weui-icon_toast"><span class="weui-primary-loading__dot"></span></span>
|
||||
<p class="weui-toast__content">載入中</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,6191 +0,0 @@
|
||||
;(function (root, factory) {
|
||||
if (typeof exports === "object") {
|
||||
// CommonJS
|
||||
module.exports = exports = factory();
|
||||
}
|
||||
else if (typeof define === "function" && define.amd) {
|
||||
// AMD
|
||||
define([], factory);
|
||||
}
|
||||
else {
|
||||
// Global (browser)
|
||||
globalThis.CryptoJS = factory();
|
||||
}
|
||||
}(this, function () {
|
||||
|
||||
/*globals window, global, require*/
|
||||
|
||||
/**
|
||||
* CryptoJS core components.
|
||||
*/
|
||||
var CryptoJS = CryptoJS || (function (Math, undefined) {
|
||||
|
||||
var crypto;
|
||||
|
||||
// Native crypto from window (Browser)
|
||||
if (typeof window !== 'undefined' && window.crypto) {
|
||||
crypto = window.crypto;
|
||||
}
|
||||
|
||||
// Native crypto in web worker (Browser)
|
||||
if (typeof self !== 'undefined' && self.crypto) {
|
||||
crypto = self.crypto;
|
||||
}
|
||||
|
||||
// Native crypto from worker
|
||||
if (typeof globalThis !== 'undefined' && globalThis.crypto) {
|
||||
crypto = globalThis.crypto;
|
||||
}
|
||||
|
||||
// Native (experimental IE 11) crypto from window (Browser)
|
||||
if (!crypto && typeof window !== 'undefined' && window.msCrypto) {
|
||||
crypto = window.msCrypto;
|
||||
}
|
||||
|
||||
// Native crypto from global (NodeJS)
|
||||
if (!crypto && typeof global !== 'undefined' && global.crypto) {
|
||||
crypto = global.crypto;
|
||||
}
|
||||
|
||||
// Native crypto import via require (NodeJS)
|
||||
if (!crypto && typeof require === 'function') {
|
||||
try {
|
||||
crypto = require('crypto');
|
||||
} catch (err) {}
|
||||
}
|
||||
|
||||
/*
|
||||
* Cryptographically secure pseudorandom number generator
|
||||
*
|
||||
* As Math.random() is cryptographically not safe to use
|
||||
*/
|
||||
var cryptoSecureRandomInt = function () {
|
||||
if (crypto) {
|
||||
// Use getRandomValues method (Browser)
|
||||
if (typeof crypto.getRandomValues === 'function') {
|
||||
try {
|
||||
return crypto.getRandomValues(new Uint32Array(1))[0];
|
||||
} catch (err) {}
|
||||
}
|
||||
|
||||
// Use randomBytes method (NodeJS)
|
||||
if (typeof crypto.randomBytes === 'function') {
|
||||
try {
|
||||
return crypto.randomBytes(4).readInt32LE();
|
||||
} catch (err) {}
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error('Native crypto module could not be used to get secure random number.');
|
||||
};
|
||||
|
||||
/*
|
||||
* Local polyfill of Object.create
|
||||
|
||||
*/
|
||||
var create = Object.create || (function () {
|
||||
function F() {}
|
||||
|
||||
return function (obj) {
|
||||
var subtype;
|
||||
|
||||
F.prototype = obj;
|
||||
|
||||
subtype = new F();
|
||||
|
||||
F.prototype = null;
|
||||
|
||||
return subtype;
|
||||
};
|
||||
}());
|
||||
|
||||
/**
|
||||
* CryptoJS namespace.
|
||||
*/
|
||||
var C = {};
|
||||
|
||||
/**
|
||||
* Library namespace.
|
||||
*/
|
||||
var C_lib = C.lib = {};
|
||||
|
||||
/**
|
||||
* Base object for prototypal inheritance.
|
||||
*/
|
||||
var Base = C_lib.Base = (function () {
|
||||
|
||||
|
||||
return {
|
||||
/**
|
||||
* Creates a new object that inherits from this object.
|
||||
*
|
||||
* @param {Object} overrides Properties to copy into the new object.
|
||||
*
|
||||
* @return {Object} The new object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var MyType = CryptoJS.lib.Base.extend({
|
||||
* field: 'value',
|
||||
*
|
||||
* method: function () {
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
extend: function (overrides) {
|
||||
// Spawn
|
||||
var subtype = create(this);
|
||||
|
||||
// Augment
|
||||
if (overrides) {
|
||||
subtype.mixIn(overrides);
|
||||
}
|
||||
|
||||
// Create default initializer
|
||||
if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {
|
||||
subtype.init = function () {
|
||||
subtype.$super.init.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
|
||||
// Initializer's prototype is the subtype object
|
||||
subtype.init.prototype = subtype;
|
||||
|
||||
// Reference supertype
|
||||
subtype.$super = this;
|
||||
|
||||
return subtype;
|
||||
},
|
||||
|
||||
/**
|
||||
* Extends this object and runs the init method.
|
||||
* Arguments to create() will be passed to init().
|
||||
*
|
||||
* @return {Object} The new object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var instance = MyType.create();
|
||||
*/
|
||||
create: function () {
|
||||
var instance = this.extend();
|
||||
instance.init.apply(instance, arguments);
|
||||
|
||||
return instance;
|
||||
},
|
||||
|
||||
/**
|
||||
* Initializes a newly created object.
|
||||
* Override this method to add some logic when your objects are created.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var MyType = CryptoJS.lib.Base.extend({
|
||||
* init: function () {
|
||||
* // ...
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
init: function () {
|
||||
},
|
||||
|
||||
/**
|
||||
* Copies properties into this object.
|
||||
*
|
||||
* @param {Object} properties The properties to mix in.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* MyType.mixIn({
|
||||
* field: 'value'
|
||||
* });
|
||||
*/
|
||||
mixIn: function (properties) {
|
||||
for (var propertyName in properties) {
|
||||
if (properties.hasOwnProperty(propertyName)) {
|
||||
this[propertyName] = properties[propertyName];
|
||||
}
|
||||
}
|
||||
|
||||
// IE won't copy toString using the loop above
|
||||
if (properties.hasOwnProperty('toString')) {
|
||||
this.toString = properties.toString;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a copy of this object.
|
||||
*
|
||||
* @return {Object} The clone.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var clone = instance.clone();
|
||||
*/
|
||||
clone: function () {
|
||||
return this.init.prototype.extend(this);
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
/**
|
||||
* An array of 32-bit words.
|
||||
*
|
||||
* @property {Array} words The array of 32-bit words.
|
||||
* @property {number} sigBytes The number of significant bytes in this word array.
|
||||
*/
|
||||
var WordArray = C_lib.WordArray = Base.extend({
|
||||
/**
|
||||
* Initializes a newly created word array.
|
||||
*
|
||||
* @param {Array} words (Optional) An array of 32-bit words.
|
||||
* @param {number} sigBytes (Optional) The number of significant bytes in the words.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.lib.WordArray.create();
|
||||
* var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
|
||||
* var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
|
||||
*/
|
||||
init: function (words, sigBytes) {
|
||||
words = this.words = words || [];
|
||||
|
||||
if (sigBytes != undefined) {
|
||||
this.sigBytes = sigBytes;
|
||||
} else {
|
||||
this.sigBytes = words.length * 4;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts this word array to a string.
|
||||
*
|
||||
* @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
|
||||
*
|
||||
* @return {string} The stringified word array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var string = wordArray + '';
|
||||
* var string = wordArray.toString();
|
||||
* var string = wordArray.toString(CryptoJS.enc.Utf8);
|
||||
*/
|
||||
toString: function (encoder) {
|
||||
return (encoder || Hex).stringify(this);
|
||||
},
|
||||
|
||||
/**
|
||||
* Concatenates a word array to this word array.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array to append.
|
||||
*
|
||||
* @return {WordArray} This word array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* wordArray1.concat(wordArray2);
|
||||
*/
|
||||
concat: function (wordArray) {
|
||||
// Shortcuts
|
||||
var thisWords = this.words;
|
||||
var thatWords = wordArray.words;
|
||||
var thisSigBytes = this.sigBytes;
|
||||
var thatSigBytes = wordArray.sigBytes;
|
||||
|
||||
// Clamp excess bits
|
||||
this.clamp();
|
||||
|
||||
// Concat
|
||||
if (thisSigBytes % 4) {
|
||||
// Copy one byte at a time
|
||||
for (var i = 0; i < thatSigBytes; i++) {
|
||||
var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);
|
||||
}
|
||||
} else {
|
||||
// Copy one word at a time
|
||||
for (var j = 0; j < thatSigBytes; j += 4) {
|
||||
thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];
|
||||
}
|
||||
}
|
||||
this.sigBytes += thatSigBytes;
|
||||
|
||||
// Chainable
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes insignificant bits.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* wordArray.clamp();
|
||||
*/
|
||||
clamp: function () {
|
||||
// Shortcuts
|
||||
var words = this.words;
|
||||
var sigBytes = this.sigBytes;
|
||||
|
||||
// Clamp
|
||||
words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);
|
||||
words.length = Math.ceil(sigBytes / 4);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a copy of this word array.
|
||||
*
|
||||
* @return {WordArray} The clone.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var clone = wordArray.clone();
|
||||
*/
|
||||
clone: function () {
|
||||
var clone = Base.clone.call(this);
|
||||
clone.words = this.words.slice(0);
|
||||
|
||||
return clone;
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a word array filled with random bytes.
|
||||
*
|
||||
* @param {number} nBytes The number of random bytes to generate.
|
||||
*
|
||||
* @return {WordArray} The random word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.lib.WordArray.random(16);
|
||||
*/
|
||||
random: function (nBytes) {
|
||||
var words = [];
|
||||
|
||||
for (var i = 0; i < nBytes; i += 4) {
|
||||
words.push(cryptoSecureRandomInt());
|
||||
}
|
||||
|
||||
return new WordArray.init(words, nBytes);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Encoder namespace.
|
||||
*/
|
||||
var C_enc = C.enc = {};
|
||||
|
||||
/**
|
||||
* Hex encoding strategy.
|
||||
*/
|
||||
var Hex = C_enc.Hex = {
|
||||
/**
|
||||
* Converts a word array to a hex string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The hex string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hexString = CryptoJS.enc.Hex.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
|
||||
// Convert
|
||||
var hexChars = [];
|
||||
for (var i = 0; i < sigBytes; i++) {
|
||||
var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
hexChars.push((bite >>> 4).toString(16));
|
||||
hexChars.push((bite & 0x0f).toString(16));
|
||||
}
|
||||
|
||||
return hexChars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a hex string to a word array.
|
||||
*
|
||||
* @param {string} hexStr The hex string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Hex.parse(hexString);
|
||||
*/
|
||||
parse: function (hexStr) {
|
||||
// Shortcut
|
||||
var hexStrLength = hexStr.length;
|
||||
|
||||
// Convert
|
||||
var words = [];
|
||||
for (var i = 0; i < hexStrLength; i += 2) {
|
||||
words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
|
||||
}
|
||||
|
||||
return new WordArray.init(words, hexStrLength / 2);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Latin1 encoding strategy.
|
||||
*/
|
||||
var Latin1 = C_enc.Latin1 = {
|
||||
/**
|
||||
* Converts a word array to a Latin1 string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The Latin1 string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
|
||||
// Convert
|
||||
var latin1Chars = [];
|
||||
for (var i = 0; i < sigBytes; i++) {
|
||||
var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
latin1Chars.push(String.fromCharCode(bite));
|
||||
}
|
||||
|
||||
return latin1Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a Latin1 string to a word array.
|
||||
*
|
||||
* @param {string} latin1Str The Latin1 string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
|
||||
*/
|
||||
parse: function (latin1Str) {
|
||||
// Shortcut
|
||||
var latin1StrLength = latin1Str.length;
|
||||
|
||||
// Convert
|
||||
var words = [];
|
||||
for (var i = 0; i < latin1StrLength; i++) {
|
||||
words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
|
||||
}
|
||||
|
||||
return new WordArray.init(words, latin1StrLength);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* UTF-8 encoding strategy.
|
||||
*/
|
||||
var Utf8 = C_enc.Utf8 = {
|
||||
/**
|
||||
* Converts a word array to a UTF-8 string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The UTF-8 string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
try {
|
||||
return decodeURIComponent(escape(Latin1.stringify(wordArray)));
|
||||
} catch (e) {
|
||||
throw new Error('Malformed UTF-8 data');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a UTF-8 string to a word array.
|
||||
*
|
||||
* @param {string} utf8Str The UTF-8 string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
|
||||
*/
|
||||
parse: function (utf8Str) {
|
||||
return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Abstract buffered block algorithm template.
|
||||
*
|
||||
* The property blockSize must be implemented in a concrete subtype.
|
||||
*
|
||||
* @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
|
||||
*/
|
||||
var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({
|
||||
/**
|
||||
* Resets this block algorithm's data buffer to its initial state.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* bufferedBlockAlgorithm.reset();
|
||||
*/
|
||||
reset: function () {
|
||||
// Initial values
|
||||
this._data = new WordArray.init();
|
||||
this._nDataBytes = 0;
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds new data to this block algorithm's buffer.
|
||||
*
|
||||
* @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* bufferedBlockAlgorithm._append('data');
|
||||
* bufferedBlockAlgorithm._append(wordArray);
|
||||
*/
|
||||
_append: function (data) {
|
||||
// Convert string to WordArray, else assume WordArray already
|
||||
if (typeof data == 'string') {
|
||||
data = Utf8.parse(data);
|
||||
}
|
||||
|
||||
// Append
|
||||
this._data.concat(data);
|
||||
this._nDataBytes += data.sigBytes;
|
||||
},
|
||||
|
||||
/**
|
||||
* Processes available data blocks.
|
||||
*
|
||||
* This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
|
||||
*
|
||||
* @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
|
||||
*
|
||||
* @return {WordArray} The processed data.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var processedData = bufferedBlockAlgorithm._process();
|
||||
* var processedData = bufferedBlockAlgorithm._process(!!'flush');
|
||||
*/
|
||||
_process: function (doFlush) {
|
||||
var processedWords;
|
||||
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
var dataSigBytes = data.sigBytes;
|
||||
var blockSize = this.blockSize;
|
||||
var blockSizeBytes = blockSize * 4;
|
||||
|
||||
// Count blocks ready
|
||||
var nBlocksReady = dataSigBytes / blockSizeBytes;
|
||||
if (doFlush) {
|
||||
// Round up to include partial blocks
|
||||
nBlocksReady = Math.ceil(nBlocksReady);
|
||||
} else {
|
||||
// Round down to include only full blocks,
|
||||
// less the number of blocks that must remain in the buffer
|
||||
nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
|
||||
}
|
||||
|
||||
// Count words ready
|
||||
var nWordsReady = nBlocksReady * blockSize;
|
||||
|
||||
// Count bytes ready
|
||||
var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);
|
||||
|
||||
// Process blocks
|
||||
if (nWordsReady) {
|
||||
for (var offset = 0; offset < nWordsReady; offset += blockSize) {
|
||||
// Perform concrete-algorithm logic
|
||||
this._doProcessBlock(dataWords, offset);
|
||||
}
|
||||
|
||||
// Remove processed words
|
||||
processedWords = dataWords.splice(0, nWordsReady);
|
||||
data.sigBytes -= nBytesReady;
|
||||
}
|
||||
|
||||
// Return processed words
|
||||
return new WordArray.init(processedWords, nBytesReady);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a copy of this object.
|
||||
*
|
||||
* @return {Object} The clone.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var clone = bufferedBlockAlgorithm.clone();
|
||||
*/
|
||||
clone: function () {
|
||||
var clone = Base.clone.call(this);
|
||||
clone._data = this._data.clone();
|
||||
|
||||
return clone;
|
||||
},
|
||||
|
||||
_minBufferSize: 0
|
||||
});
|
||||
|
||||
/**
|
||||
* Abstract hasher template.
|
||||
*
|
||||
* @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
|
||||
*/
|
||||
var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*/
|
||||
cfg: Base.extend(),
|
||||
|
||||
/**
|
||||
* Initializes a newly created hasher.
|
||||
*
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this hash computation.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hasher = CryptoJS.algo.SHA256.create();
|
||||
*/
|
||||
init: function (cfg) {
|
||||
// Apply config defaults
|
||||
this.cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Set initial values
|
||||
this.reset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Resets this hasher to its initial state.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* hasher.reset();
|
||||
*/
|
||||
reset: function () {
|
||||
// Reset data buffer
|
||||
BufferedBlockAlgorithm.reset.call(this);
|
||||
|
||||
// Perform concrete-hasher logic
|
||||
this._doReset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates this hasher with a message.
|
||||
*
|
||||
* @param {WordArray|string} messageUpdate The message to append.
|
||||
*
|
||||
* @return {Hasher} This hasher.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* hasher.update('message');
|
||||
* hasher.update(wordArray);
|
||||
*/
|
||||
update: function (messageUpdate) {
|
||||
// Append
|
||||
this._append(messageUpdate);
|
||||
|
||||
// Update the hash
|
||||
this._process();
|
||||
|
||||
// Chainable
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Finalizes the hash computation.
|
||||
* Note that the finalize operation is effectively a destructive, read-once operation.
|
||||
*
|
||||
* @param {WordArray|string} messageUpdate (Optional) A final message update.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = hasher.finalize();
|
||||
* var hash = hasher.finalize('message');
|
||||
* var hash = hasher.finalize(wordArray);
|
||||
*/
|
||||
finalize: function (messageUpdate) {
|
||||
// Final message update
|
||||
if (messageUpdate) {
|
||||
this._append(messageUpdate);
|
||||
}
|
||||
|
||||
// Perform concrete-hasher logic
|
||||
var hash = this._doFinalize();
|
||||
|
||||
return hash;
|
||||
},
|
||||
|
||||
blockSize: 512/32,
|
||||
|
||||
/**
|
||||
* Creates a shortcut function to a hasher's object interface.
|
||||
*
|
||||
* @param {Hasher} hasher The hasher to create a helper for.
|
||||
*
|
||||
* @return {Function} The shortcut function.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
|
||||
*/
|
||||
_createHelper: function (hasher) {
|
||||
return function (message, cfg) {
|
||||
return new hasher.init(cfg).finalize(message);
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {Hasher} hasher The hasher to use in this HMAC helper.
|
||||
*
|
||||
* @return {Function} The shortcut function.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
|
||||
*/
|
||||
_createHmacHelper: function (hasher) {
|
||||
return function (message, key) {
|
||||
return new C_algo.HMAC.init(hasher, key).finalize(message);
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Algorithm namespace.
|
||||
*/
|
||||
var C_algo = C.algo = {};
|
||||
|
||||
return C;
|
||||
}(Math));
|
||||
|
||||
|
||||
(function (undefined) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Base = C_lib.Base;
|
||||
var X32WordArray = C_lib.WordArray;
|
||||
|
||||
/**
|
||||
* x64 namespace.
|
||||
*/
|
||||
var C_x64 = C.x64 = {};
|
||||
|
||||
/**
|
||||
* A 64-bit word.
|
||||
*/
|
||||
var X64Word = C_x64.Word = Base.extend({
|
||||
/**
|
||||
* Initializes a newly created 64-bit word.
|
||||
*
|
||||
* @param {number} high The high 32 bits.
|
||||
* @param {number} low The low 32 bits.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);
|
||||
*/
|
||||
init: function (high, low) {
|
||||
this.high = high;
|
||||
this.low = low;
|
||||
}
|
||||
|
||||
/**
|
||||
* Bitwise NOTs this word.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after negating.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var negated = x64Word.not();
|
||||
*/
|
||||
// not: function () {
|
||||
// var high = ~this.high;
|
||||
// var low = ~this.low;
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Bitwise ANDs this word with the passed word.
|
||||
*
|
||||
* @param {X64Word} word The x64-Word to AND with this word.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after ANDing.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var anded = x64Word.and(anotherX64Word);
|
||||
*/
|
||||
// and: function (word) {
|
||||
// var high = this.high & word.high;
|
||||
// var low = this.low & word.low;
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Bitwise ORs this word with the passed word.
|
||||
*
|
||||
* @param {X64Word} word The x64-Word to OR with this word.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after ORing.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ored = x64Word.or(anotherX64Word);
|
||||
*/
|
||||
// or: function (word) {
|
||||
// var high = this.high | word.high;
|
||||
// var low = this.low | word.low;
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Bitwise XORs this word with the passed word.
|
||||
*
|
||||
* @param {X64Word} word The x64-Word to XOR with this word.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after XORing.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var xored = x64Word.xor(anotherX64Word);
|
||||
*/
|
||||
// xor: function (word) {
|
||||
// var high = this.high ^ word.high;
|
||||
// var low = this.low ^ word.low;
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Shifts this word n bits to the left.
|
||||
*
|
||||
* @param {number} n The number of bits to shift.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after shifting.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var shifted = x64Word.shiftL(25);
|
||||
*/
|
||||
// shiftL: function (n) {
|
||||
// if (n < 32) {
|
||||
// var high = (this.high << n) | (this.low >>> (32 - n));
|
||||
// var low = this.low << n;
|
||||
// } else {
|
||||
// var high = this.low << (n - 32);
|
||||
// var low = 0;
|
||||
// }
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Shifts this word n bits to the right.
|
||||
*
|
||||
* @param {number} n The number of bits to shift.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after shifting.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var shifted = x64Word.shiftR(7);
|
||||
*/
|
||||
// shiftR: function (n) {
|
||||
// if (n < 32) {
|
||||
// var low = (this.low >>> n) | (this.high << (32 - n));
|
||||
// var high = this.high >>> n;
|
||||
// } else {
|
||||
// var low = this.high >>> (n - 32);
|
||||
// var high = 0;
|
||||
// }
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Rotates this word n bits to the left.
|
||||
*
|
||||
* @param {number} n The number of bits to rotate.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after rotating.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var rotated = x64Word.rotL(25);
|
||||
*/
|
||||
// rotL: function (n) {
|
||||
// return this.shiftL(n).or(this.shiftR(64 - n));
|
||||
// },
|
||||
|
||||
/**
|
||||
* Rotates this word n bits to the right.
|
||||
*
|
||||
* @param {number} n The number of bits to rotate.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after rotating.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var rotated = x64Word.rotR(7);
|
||||
*/
|
||||
// rotR: function (n) {
|
||||
// return this.shiftR(n).or(this.shiftL(64 - n));
|
||||
// },
|
||||
|
||||
/**
|
||||
* Adds this word with the passed word.
|
||||
*
|
||||
* @param {X64Word} word The x64-Word to add with this word.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after adding.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var added = x64Word.add(anotherX64Word);
|
||||
*/
|
||||
// add: function (word) {
|
||||
// var low = (this.low + word.low) | 0;
|
||||
// var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;
|
||||
// var high = (this.high + word.high + carry) | 0;
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// }
|
||||
});
|
||||
|
||||
/**
|
||||
* An array of 64-bit words.
|
||||
*
|
||||
* @property {Array} words The array of CryptoJS.x64.Word objects.
|
||||
* @property {number} sigBytes The number of significant bytes in this word array.
|
||||
*/
|
||||
var X64WordArray = C_x64.WordArray = Base.extend({
|
||||
/**
|
||||
* Initializes a newly created word array.
|
||||
*
|
||||
* @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.
|
||||
* @param {number} sigBytes (Optional) The number of significant bytes in the words.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.x64.WordArray.create();
|
||||
*
|
||||
* var wordArray = CryptoJS.x64.WordArray.create([
|
||||
* CryptoJS.x64.Word.create(0x00010203, 0x04050607),
|
||||
* CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
|
||||
* ]);
|
||||
*
|
||||
* var wordArray = CryptoJS.x64.WordArray.create([
|
||||
* CryptoJS.x64.Word.create(0x00010203, 0x04050607),
|
||||
* CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
|
||||
* ], 10);
|
||||
*/
|
||||
init: function (words, sigBytes) {
|
||||
words = this.words = words || [];
|
||||
|
||||
if (sigBytes != undefined) {
|
||||
this.sigBytes = sigBytes;
|
||||
} else {
|
||||
this.sigBytes = words.length * 8;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts this 64-bit word array to a 32-bit word array.
|
||||
*
|
||||
* @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var x32WordArray = x64WordArray.toX32();
|
||||
*/
|
||||
toX32: function () {
|
||||
// Shortcuts
|
||||
var x64Words = this.words;
|
||||
var x64WordsLength = x64Words.length;
|
||||
|
||||
// Convert
|
||||
var x32Words = [];
|
||||
for (var i = 0; i < x64WordsLength; i++) {
|
||||
var x64Word = x64Words[i];
|
||||
x32Words.push(x64Word.high);
|
||||
x32Words.push(x64Word.low);
|
||||
}
|
||||
|
||||
return X32WordArray.create(x32Words, this.sigBytes);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a copy of this word array.
|
||||
*
|
||||
* @return {X64WordArray} The clone.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var clone = x64WordArray.clone();
|
||||
*/
|
||||
clone: function () {
|
||||
var clone = Base.clone.call(this);
|
||||
|
||||
// Clone "words" array
|
||||
var words = clone.words = this.words.slice(0);
|
||||
|
||||
// Clone each X64Word object
|
||||
var wordsLength = words.length;
|
||||
for (var i = 0; i < wordsLength; i++) {
|
||||
words[i] = words[i].clone();
|
||||
}
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Check if typed arrays are supported
|
||||
if (typeof ArrayBuffer != 'function') {
|
||||
return;
|
||||
}
|
||||
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
|
||||
// Reference original init
|
||||
var superInit = WordArray.init;
|
||||
|
||||
// Augment WordArray.init to handle typed arrays
|
||||
var subInit = WordArray.init = function (typedArray) {
|
||||
// Convert buffers to uint8
|
||||
if (typedArray instanceof ArrayBuffer) {
|
||||
typedArray = new Uint8Array(typedArray);
|
||||
}
|
||||
|
||||
// Convert other array views to uint8
|
||||
if (
|
||||
typedArray instanceof Int8Array ||
|
||||
(typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) ||
|
||||
typedArray instanceof Int16Array ||
|
||||
typedArray instanceof Uint16Array ||
|
||||
typedArray instanceof Int32Array ||
|
||||
typedArray instanceof Uint32Array ||
|
||||
typedArray instanceof Float32Array ||
|
||||
typedArray instanceof Float64Array
|
||||
) {
|
||||
typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);
|
||||
}
|
||||
|
||||
// Handle Uint8Array
|
||||
if (typedArray instanceof Uint8Array) {
|
||||
// Shortcut
|
||||
var typedArrayByteLength = typedArray.byteLength;
|
||||
|
||||
// Extract bytes
|
||||
var words = [];
|
||||
for (var i = 0; i < typedArrayByteLength; i++) {
|
||||
words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);
|
||||
}
|
||||
|
||||
// Initialize this word array
|
||||
superInit.call(this, words, typedArrayByteLength);
|
||||
} else {
|
||||
// Else call normal init
|
||||
superInit.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
subInit.prototype = WordArray;
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_enc = C.enc;
|
||||
|
||||
/**
|
||||
* UTF-16 BE encoding strategy.
|
||||
*/
|
||||
var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {
|
||||
/**
|
||||
* Converts a word array to a UTF-16 BE string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The UTF-16 BE string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
|
||||
// Convert
|
||||
var utf16Chars = [];
|
||||
for (var i = 0; i < sigBytes; i += 2) {
|
||||
var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;
|
||||
utf16Chars.push(String.fromCharCode(codePoint));
|
||||
}
|
||||
|
||||
return utf16Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a UTF-16 BE string to a word array.
|
||||
*
|
||||
* @param {string} utf16Str The UTF-16 BE string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Utf16.parse(utf16String);
|
||||
*/
|
||||
parse: function (utf16Str) {
|
||||
// Shortcut
|
||||
var utf16StrLength = utf16Str.length;
|
||||
|
||||
// Convert
|
||||
var words = [];
|
||||
for (var i = 0; i < utf16StrLength; i++) {
|
||||
words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);
|
||||
}
|
||||
|
||||
return WordArray.create(words, utf16StrLength * 2);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* UTF-16 LE encoding strategy.
|
||||
*/
|
||||
C_enc.Utf16LE = {
|
||||
/**
|
||||
* Converts a word array to a UTF-16 LE string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The UTF-16 LE string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
|
||||
// Convert
|
||||
var utf16Chars = [];
|
||||
for (var i = 0; i < sigBytes; i += 2) {
|
||||
var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);
|
||||
utf16Chars.push(String.fromCharCode(codePoint));
|
||||
}
|
||||
|
||||
return utf16Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a UTF-16 LE string to a word array.
|
||||
*
|
||||
* @param {string} utf16Str The UTF-16 LE string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);
|
||||
*/
|
||||
parse: function (utf16Str) {
|
||||
// Shortcut
|
||||
var utf16StrLength = utf16Str.length;
|
||||
|
||||
// Convert
|
||||
var words = [];
|
||||
for (var i = 0; i < utf16StrLength; i++) {
|
||||
words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));
|
||||
}
|
||||
|
||||
return WordArray.create(words, utf16StrLength * 2);
|
||||
}
|
||||
};
|
||||
|
||||
function swapEndian(word) {
|
||||
return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);
|
||||
}
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_enc = C.enc;
|
||||
|
||||
/**
|
||||
* Base64 encoding strategy.
|
||||
*/
|
||||
var Base64 = C_enc.Base64 = {
|
||||
/**
|
||||
* Converts a word array to a Base64 string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The Base64 string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var base64String = CryptoJS.enc.Base64.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
var map = this._map;
|
||||
|
||||
// Clamp excess bits
|
||||
wordArray.clamp();
|
||||
|
||||
// Convert
|
||||
var base64Chars = [];
|
||||
for (var i = 0; i < sigBytes; i += 3) {
|
||||
var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
|
||||
var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
|
||||
|
||||
var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
|
||||
|
||||
for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
|
||||
base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
|
||||
}
|
||||
}
|
||||
|
||||
// Add padding
|
||||
var paddingChar = map.charAt(64);
|
||||
if (paddingChar) {
|
||||
while (base64Chars.length % 4) {
|
||||
base64Chars.push(paddingChar);
|
||||
}
|
||||
}
|
||||
|
||||
return base64Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a Base64 string to a word array.
|
||||
*
|
||||
* @param {string} base64Str The Base64 string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Base64.parse(base64String);
|
||||
*/
|
||||
parse: function (base64Str) {
|
||||
// Shortcuts
|
||||
var base64StrLength = base64Str.length;
|
||||
var map = this._map;
|
||||
var reverseMap = this._reverseMap;
|
||||
|
||||
if (!reverseMap) {
|
||||
reverseMap = this._reverseMap = [];
|
||||
for (var j = 0; j < map.length; j++) {
|
||||
reverseMap[map.charCodeAt(j)] = j;
|
||||
}
|
||||
}
|
||||
|
||||
// Ignore padding
|
||||
var paddingChar = map.charAt(64);
|
||||
if (paddingChar) {
|
||||
var paddingIndex = base64Str.indexOf(paddingChar);
|
||||
if (paddingIndex !== -1) {
|
||||
base64StrLength = paddingIndex;
|
||||
}
|
||||
}
|
||||
|
||||
// Convert
|
||||
return parseLoop(base64Str, base64StrLength, reverseMap);
|
||||
|
||||
},
|
||||
|
||||
_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
|
||||
};
|
||||
|
||||
function parseLoop(base64Str, base64StrLength, reverseMap) {
|
||||
var words = [];
|
||||
var nBytes = 0;
|
||||
for (var i = 0; i < base64StrLength; i++) {
|
||||
if (i % 4) {
|
||||
var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
|
||||
var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
|
||||
var bitsCombined = bits1 | bits2;
|
||||
words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
|
||||
nBytes++;
|
||||
}
|
||||
}
|
||||
return WordArray.create(words, nBytes);
|
||||
}
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_enc = C.enc;
|
||||
|
||||
/**
|
||||
* Base64url encoding strategy.
|
||||
*/
|
||||
var Base64url = C_enc.Base64url = {
|
||||
/**
|
||||
* Converts a word array to a Base64url string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @param {boolean} urlSafe Whether to use url safe
|
||||
*
|
||||
* @return {string} The Base64url string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var base64String = CryptoJS.enc.Base64url.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray, urlSafe=true) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
var map = urlSafe ? this._safe_map : this._map;
|
||||
|
||||
// Clamp excess bits
|
||||
wordArray.clamp();
|
||||
|
||||
// Convert
|
||||
var base64Chars = [];
|
||||
for (var i = 0; i < sigBytes; i += 3) {
|
||||
var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
|
||||
var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
|
||||
|
||||
var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
|
||||
|
||||
for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
|
||||
base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
|
||||
}
|
||||
}
|
||||
|
||||
// Add padding
|
||||
var paddingChar = map.charAt(64);
|
||||
if (paddingChar) {
|
||||
while (base64Chars.length % 4) {
|
||||
base64Chars.push(paddingChar);
|
||||
}
|
||||
}
|
||||
|
||||
return base64Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a Base64url string to a word array.
|
||||
*
|
||||
* @param {string} base64Str The Base64url string.
|
||||
*
|
||||
* @param {boolean} urlSafe Whether to use url safe
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Base64url.parse(base64String);
|
||||
*/
|
||||
parse: function (base64Str, urlSafe=true) {
|
||||
// Shortcuts
|
||||
var base64StrLength = base64Str.length;
|
||||
var map = urlSafe ? this._safe_map : this._map;
|
||||
var reverseMap = this._reverseMap;
|
||||
|
||||
if (!reverseMap) {
|
||||
reverseMap = this._reverseMap = [];
|
||||
for (var j = 0; j < map.length; j++) {
|
||||
reverseMap[map.charCodeAt(j)] = j;
|
||||
}
|
||||
}
|
||||
|
||||
// Ignore padding
|
||||
var paddingChar = map.charAt(64);
|
||||
if (paddingChar) {
|
||||
var paddingIndex = base64Str.indexOf(paddingChar);
|
||||
if (paddingIndex !== -1) {
|
||||
base64StrLength = paddingIndex;
|
||||
}
|
||||
}
|
||||
|
||||
// Convert
|
||||
return parseLoop(base64Str, base64StrLength, reverseMap);
|
||||
|
||||
},
|
||||
|
||||
_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',
|
||||
_safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',
|
||||
};
|
||||
|
||||
function parseLoop(base64Str, base64StrLength, reverseMap) {
|
||||
var words = [];
|
||||
var nBytes = 0;
|
||||
for (var i = 0; i < base64StrLength; i++) {
|
||||
if (i % 4) {
|
||||
var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
|
||||
var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
|
||||
var bitsCombined = bits1 | bits2;
|
||||
words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
|
||||
nBytes++;
|
||||
}
|
||||
}
|
||||
return WordArray.create(words, nBytes);
|
||||
}
|
||||
}());
|
||||
|
||||
(function (Math) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Constants table
|
||||
var T = [];
|
||||
|
||||
// Compute constants
|
||||
(function () {
|
||||
for (var i = 0; i < 64; i++) {
|
||||
T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;
|
||||
}
|
||||
}());
|
||||
|
||||
/**
|
||||
* MD5 hash algorithm.
|
||||
*/
|
||||
var MD5 = C_algo.MD5 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new WordArray.init([
|
||||
0x67452301, 0xefcdab89,
|
||||
0x98badcfe, 0x10325476
|
||||
]);
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Swap endian
|
||||
for (var i = 0; i < 16; i++) {
|
||||
// Shortcuts
|
||||
var offset_i = offset + i;
|
||||
var M_offset_i = M[offset_i];
|
||||
|
||||
M[offset_i] = (
|
||||
(((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
|
||||
(((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
}
|
||||
|
||||
// Shortcuts
|
||||
var H = this._hash.words;
|
||||
|
||||
var M_offset_0 = M[offset + 0];
|
||||
var M_offset_1 = M[offset + 1];
|
||||
var M_offset_2 = M[offset + 2];
|
||||
var M_offset_3 = M[offset + 3];
|
||||
var M_offset_4 = M[offset + 4];
|
||||
var M_offset_5 = M[offset + 5];
|
||||
var M_offset_6 = M[offset + 6];
|
||||
var M_offset_7 = M[offset + 7];
|
||||
var M_offset_8 = M[offset + 8];
|
||||
var M_offset_9 = M[offset + 9];
|
||||
var M_offset_10 = M[offset + 10];
|
||||
var M_offset_11 = M[offset + 11];
|
||||
var M_offset_12 = M[offset + 12];
|
||||
var M_offset_13 = M[offset + 13];
|
||||
var M_offset_14 = M[offset + 14];
|
||||
var M_offset_15 = M[offset + 15];
|
||||
|
||||
// Working varialbes
|
||||
var a = H[0];
|
||||
var b = H[1];
|
||||
var c = H[2];
|
||||
var d = H[3];
|
||||
|
||||
// Computation
|
||||
a = FF(a, b, c, d, M_offset_0, 7, T[0]);
|
||||
d = FF(d, a, b, c, M_offset_1, 12, T[1]);
|
||||
c = FF(c, d, a, b, M_offset_2, 17, T[2]);
|
||||
b = FF(b, c, d, a, M_offset_3, 22, T[3]);
|
||||
a = FF(a, b, c, d, M_offset_4, 7, T[4]);
|
||||
d = FF(d, a, b, c, M_offset_5, 12, T[5]);
|
||||
c = FF(c, d, a, b, M_offset_6, 17, T[6]);
|
||||
b = FF(b, c, d, a, M_offset_7, 22, T[7]);
|
||||
a = FF(a, b, c, d, M_offset_8, 7, T[8]);
|
||||
d = FF(d, a, b, c, M_offset_9, 12, T[9]);
|
||||
c = FF(c, d, a, b, M_offset_10, 17, T[10]);
|
||||
b = FF(b, c, d, a, M_offset_11, 22, T[11]);
|
||||
a = FF(a, b, c, d, M_offset_12, 7, T[12]);
|
||||
d = FF(d, a, b, c, M_offset_13, 12, T[13]);
|
||||
c = FF(c, d, a, b, M_offset_14, 17, T[14]);
|
||||
b = FF(b, c, d, a, M_offset_15, 22, T[15]);
|
||||
|
||||
a = GG(a, b, c, d, M_offset_1, 5, T[16]);
|
||||
d = GG(d, a, b, c, M_offset_6, 9, T[17]);
|
||||
c = GG(c, d, a, b, M_offset_11, 14, T[18]);
|
||||
b = GG(b, c, d, a, M_offset_0, 20, T[19]);
|
||||
a = GG(a, b, c, d, M_offset_5, 5, T[20]);
|
||||
d = GG(d, a, b, c, M_offset_10, 9, T[21]);
|
||||
c = GG(c, d, a, b, M_offset_15, 14, T[22]);
|
||||
b = GG(b, c, d, a, M_offset_4, 20, T[23]);
|
||||
a = GG(a, b, c, d, M_offset_9, 5, T[24]);
|
||||
d = GG(d, a, b, c, M_offset_14, 9, T[25]);
|
||||
c = GG(c, d, a, b, M_offset_3, 14, T[26]);
|
||||
b = GG(b, c, d, a, M_offset_8, 20, T[27]);
|
||||
a = GG(a, b, c, d, M_offset_13, 5, T[28]);
|
||||
d = GG(d, a, b, c, M_offset_2, 9, T[29]);
|
||||
c = GG(c, d, a, b, M_offset_7, 14, T[30]);
|
||||
b = GG(b, c, d, a, M_offset_12, 20, T[31]);
|
||||
|
||||
a = HH(a, b, c, d, M_offset_5, 4, T[32]);
|
||||
d = HH(d, a, b, c, M_offset_8, 11, T[33]);
|
||||
c = HH(c, d, a, b, M_offset_11, 16, T[34]);
|
||||
b = HH(b, c, d, a, M_offset_14, 23, T[35]);
|
||||
a = HH(a, b, c, d, M_offset_1, 4, T[36]);
|
||||
d = HH(d, a, b, c, M_offset_4, 11, T[37]);
|
||||
c = HH(c, d, a, b, M_offset_7, 16, T[38]);
|
||||
b = HH(b, c, d, a, M_offset_10, 23, T[39]);
|
||||
a = HH(a, b, c, d, M_offset_13, 4, T[40]);
|
||||
d = HH(d, a, b, c, M_offset_0, 11, T[41]);
|
||||
c = HH(c, d, a, b, M_offset_3, 16, T[42]);
|
||||
b = HH(b, c, d, a, M_offset_6, 23, T[43]);
|
||||
a = HH(a, b, c, d, M_offset_9, 4, T[44]);
|
||||
d = HH(d, a, b, c, M_offset_12, 11, T[45]);
|
||||
c = HH(c, d, a, b, M_offset_15, 16, T[46]);
|
||||
b = HH(b, c, d, a, M_offset_2, 23, T[47]);
|
||||
|
||||
a = II(a, b, c, d, M_offset_0, 6, T[48]);
|
||||
d = II(d, a, b, c, M_offset_7, 10, T[49]);
|
||||
c = II(c, d, a, b, M_offset_14, 15, T[50]);
|
||||
b = II(b, c, d, a, M_offset_5, 21, T[51]);
|
||||
a = II(a, b, c, d, M_offset_12, 6, T[52]);
|
||||
d = II(d, a, b, c, M_offset_3, 10, T[53]);
|
||||
c = II(c, d, a, b, M_offset_10, 15, T[54]);
|
||||
b = II(b, c, d, a, M_offset_1, 21, T[55]);
|
||||
a = II(a, b, c, d, M_offset_8, 6, T[56]);
|
||||
d = II(d, a, b, c, M_offset_15, 10, T[57]);
|
||||
c = II(c, d, a, b, M_offset_6, 15, T[58]);
|
||||
b = II(b, c, d, a, M_offset_13, 21, T[59]);
|
||||
a = II(a, b, c, d, M_offset_4, 6, T[60]);
|
||||
d = II(d, a, b, c, M_offset_11, 10, T[61]);
|
||||
c = II(c, d, a, b, M_offset_2, 15, T[62]);
|
||||
b = II(b, c, d, a, M_offset_9, 21, T[63]);
|
||||
|
||||
// Intermediate hash value
|
||||
H[0] = (H[0] + a) | 0;
|
||||
H[1] = (H[1] + b) | 0;
|
||||
H[2] = (H[2] + c) | 0;
|
||||
H[3] = (H[3] + d) | 0;
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
|
||||
var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);
|
||||
var nBitsTotalL = nBitsTotal;
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (
|
||||
(((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |
|
||||
(((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
|
||||
(((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |
|
||||
(((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
|
||||
data.sigBytes = (dataWords.length + 1) * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Shortcuts
|
||||
var hash = this._hash;
|
||||
var H = hash.words;
|
||||
|
||||
// Swap endian
|
||||
for (var i = 0; i < 4; i++) {
|
||||
// Shortcut
|
||||
var H_i = H[i];
|
||||
|
||||
H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
|
||||
(((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
|
||||
}
|
||||
|
||||
// Return final computed hash
|
||||
return hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
function FF(a, b, c, d, x, s, t) {
|
||||
var n = a + ((b & c) | (~b & d)) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
function GG(a, b, c, d, x, s, t) {
|
||||
var n = a + ((b & d) | (c & ~d)) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
function HH(a, b, c, d, x, s, t) {
|
||||
var n = a + (b ^ c ^ d) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
function II(a, b, c, d, x, s, t) {
|
||||
var n = a + (c ^ (b | ~d)) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.MD5('message');
|
||||
* var hash = CryptoJS.MD5(wordArray);
|
||||
*/
|
||||
C.MD5 = Hasher._createHelper(MD5);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacMD5(message, key);
|
||||
*/
|
||||
C.HmacMD5 = Hasher._createHmacHelper(MD5);
|
||||
}(Math));
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Reusable object
|
||||
var W = [];
|
||||
|
||||
/**
|
||||
* SHA-1 hash algorithm.
|
||||
*/
|
||||
var SHA1 = C_algo.SHA1 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new WordArray.init([
|
||||
0x67452301, 0xefcdab89,
|
||||
0x98badcfe, 0x10325476,
|
||||
0xc3d2e1f0
|
||||
]);
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcut
|
||||
var H = this._hash.words;
|
||||
|
||||
// Working variables
|
||||
var a = H[0];
|
||||
var b = H[1];
|
||||
var c = H[2];
|
||||
var d = H[3];
|
||||
var e = H[4];
|
||||
|
||||
// Computation
|
||||
for (var i = 0; i < 80; i++) {
|
||||
if (i < 16) {
|
||||
W[i] = M[offset + i] | 0;
|
||||
} else {
|
||||
var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];
|
||||
W[i] = (n << 1) | (n >>> 31);
|
||||
}
|
||||
|
||||
var t = ((a << 5) | (a >>> 27)) + e + W[i];
|
||||
if (i < 20) {
|
||||
t += ((b & c) | (~b & d)) + 0x5a827999;
|
||||
} else if (i < 40) {
|
||||
t += (b ^ c ^ d) + 0x6ed9eba1;
|
||||
} else if (i < 60) {
|
||||
t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;
|
||||
} else /* if (i < 80) */ {
|
||||
t += (b ^ c ^ d) - 0x359d3e2a;
|
||||
}
|
||||
|
||||
e = d;
|
||||
d = c;
|
||||
c = (b << 30) | (b >>> 2);
|
||||
b = a;
|
||||
a = t;
|
||||
}
|
||||
|
||||
// Intermediate hash value
|
||||
H[0] = (H[0] + a) | 0;
|
||||
H[1] = (H[1] + b) | 0;
|
||||
H[2] = (H[2] + c) | 0;
|
||||
H[3] = (H[3] + d) | 0;
|
||||
H[4] = (H[4] + e) | 0;
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
|
||||
data.sigBytes = dataWords.length * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Return final computed hash
|
||||
return this._hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA1('message');
|
||||
* var hash = CryptoJS.SHA1(wordArray);
|
||||
*/
|
||||
C.SHA1 = Hasher._createHelper(SHA1);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA1(message, key);
|
||||
*/
|
||||
C.HmacSHA1 = Hasher._createHmacHelper(SHA1);
|
||||
}());
|
||||
|
||||
|
||||
(function (Math) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Initialization and round constants tables
|
||||
var H = [];
|
||||
var K = [];
|
||||
|
||||
// Compute constants
|
||||
(function () {
|
||||
function isPrime(n) {
|
||||
var sqrtN = Math.sqrt(n);
|
||||
for (var factor = 2; factor <= sqrtN; factor++) {
|
||||
if (!(n % factor)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function getFractionalBits(n) {
|
||||
return ((n - (n | 0)) * 0x100000000) | 0;
|
||||
}
|
||||
|
||||
var n = 2;
|
||||
var nPrime = 0;
|
||||
while (nPrime < 64) {
|
||||
if (isPrime(n)) {
|
||||
if (nPrime < 8) {
|
||||
H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));
|
||||
}
|
||||
K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));
|
||||
|
||||
nPrime++;
|
||||
}
|
||||
|
||||
n++;
|
||||
}
|
||||
}());
|
||||
|
||||
// Reusable object
|
||||
var W = [];
|
||||
|
||||
/**
|
||||
* SHA-256 hash algorithm.
|
||||
*/
|
||||
var SHA256 = C_algo.SHA256 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new WordArray.init(H.slice(0));
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcut
|
||||
var H = this._hash.words;
|
||||
|
||||
// Working variables
|
||||
var a = H[0];
|
||||
var b = H[1];
|
||||
var c = H[2];
|
||||
var d = H[3];
|
||||
var e = H[4];
|
||||
var f = H[5];
|
||||
var g = H[6];
|
||||
var h = H[7];
|
||||
|
||||
// Computation
|
||||
for (var i = 0; i < 64; i++) {
|
||||
if (i < 16) {
|
||||
W[i] = M[offset + i] | 0;
|
||||
} else {
|
||||
var gamma0x = W[i - 15];
|
||||
var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^
|
||||
((gamma0x << 14) | (gamma0x >>> 18)) ^
|
||||
(gamma0x >>> 3);
|
||||
|
||||
var gamma1x = W[i - 2];
|
||||
var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^
|
||||
((gamma1x << 13) | (gamma1x >>> 19)) ^
|
||||
(gamma1x >>> 10);
|
||||
|
||||
W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
|
||||
}
|
||||
|
||||
var ch = (e & f) ^ (~e & g);
|
||||
var maj = (a & b) ^ (a & c) ^ (b & c);
|
||||
|
||||
var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));
|
||||
var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));
|
||||
|
||||
var t1 = h + sigma1 + ch + K[i] + W[i];
|
||||
var t2 = sigma0 + maj;
|
||||
|
||||
h = g;
|
||||
g = f;
|
||||
f = e;
|
||||
e = (d + t1) | 0;
|
||||
d = c;
|
||||
c = b;
|
||||
b = a;
|
||||
a = (t1 + t2) | 0;
|
||||
}
|
||||
|
||||
// Intermediate hash value
|
||||
H[0] = (H[0] + a) | 0;
|
||||
H[1] = (H[1] + b) | 0;
|
||||
H[2] = (H[2] + c) | 0;
|
||||
H[3] = (H[3] + d) | 0;
|
||||
H[4] = (H[4] + e) | 0;
|
||||
H[5] = (H[5] + f) | 0;
|
||||
H[6] = (H[6] + g) | 0;
|
||||
H[7] = (H[7] + h) | 0;
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
|
||||
data.sigBytes = dataWords.length * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Return final computed hash
|
||||
return this._hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA256('message');
|
||||
* var hash = CryptoJS.SHA256(wordArray);
|
||||
*/
|
||||
C.SHA256 = Hasher._createHelper(SHA256);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA256(message, key);
|
||||
*/
|
||||
C.HmacSHA256 = Hasher._createHmacHelper(SHA256);
|
||||
}(Math));
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_algo = C.algo;
|
||||
var SHA256 = C_algo.SHA256;
|
||||
|
||||
/**
|
||||
* SHA-224 hash algorithm.
|
||||
*/
|
||||
var SHA224 = C_algo.SHA224 = SHA256.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new WordArray.init([
|
||||
0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
|
||||
0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
|
||||
]);
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
var hash = SHA256._doFinalize.call(this);
|
||||
|
||||
hash.sigBytes -= 4;
|
||||
|
||||
return hash;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA224('message');
|
||||
* var hash = CryptoJS.SHA224(wordArray);
|
||||
*/
|
||||
C.SHA224 = SHA256._createHelper(SHA224);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA224(message, key);
|
||||
*/
|
||||
C.HmacSHA224 = SHA256._createHmacHelper(SHA224);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_x64 = C.x64;
|
||||
var X64Word = C_x64.Word;
|
||||
var X64WordArray = C_x64.WordArray;
|
||||
var C_algo = C.algo;
|
||||
|
||||
function X64Word_create() {
|
||||
return X64Word.create.apply(X64Word, arguments);
|
||||
}
|
||||
|
||||
// Constants
|
||||
var K = [
|
||||
X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),
|
||||
X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),
|
||||
X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),
|
||||
X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),
|
||||
X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),
|
||||
X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),
|
||||
X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),
|
||||
X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),
|
||||
X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),
|
||||
X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),
|
||||
X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),
|
||||
X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),
|
||||
X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),
|
||||
X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),
|
||||
X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),
|
||||
X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),
|
||||
X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),
|
||||
X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),
|
||||
X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),
|
||||
X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),
|
||||
X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),
|
||||
X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),
|
||||
X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),
|
||||
X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),
|
||||
X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),
|
||||
X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),
|
||||
X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),
|
||||
X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),
|
||||
X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),
|
||||
X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),
|
||||
X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),
|
||||
X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),
|
||||
X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),
|
||||
X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),
|
||||
X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),
|
||||
X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),
|
||||
X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),
|
||||
X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),
|
||||
X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),
|
||||
X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)
|
||||
];
|
||||
|
||||
// Reusable objects
|
||||
var W = [];
|
||||
(function () {
|
||||
for (var i = 0; i < 80; i++) {
|
||||
W[i] = X64Word_create();
|
||||
}
|
||||
}());
|
||||
|
||||
/**
|
||||
* SHA-512 hash algorithm.
|
||||
*/
|
||||
var SHA512 = C_algo.SHA512 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new X64WordArray.init([
|
||||
new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),
|
||||
new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),
|
||||
new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),
|
||||
new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)
|
||||
]);
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcuts
|
||||
var H = this._hash.words;
|
||||
|
||||
var H0 = H[0];
|
||||
var H1 = H[1];
|
||||
var H2 = H[2];
|
||||
var H3 = H[3];
|
||||
var H4 = H[4];
|
||||
var H5 = H[5];
|
||||
var H6 = H[6];
|
||||
var H7 = H[7];
|
||||
|
||||
var H0h = H0.high;
|
||||
var H0l = H0.low;
|
||||
var H1h = H1.high;
|
||||
var H1l = H1.low;
|
||||
var H2h = H2.high;
|
||||
var H2l = H2.low;
|
||||
var H3h = H3.high;
|
||||
var H3l = H3.low;
|
||||
var H4h = H4.high;
|
||||
var H4l = H4.low;
|
||||
var H5h = H5.high;
|
||||
var H5l = H5.low;
|
||||
var H6h = H6.high;
|
||||
var H6l = H6.low;
|
||||
var H7h = H7.high;
|
||||
var H7l = H7.low;
|
||||
|
||||
// Working variables
|
||||
var ah = H0h;
|
||||
var al = H0l;
|
||||
var bh = H1h;
|
||||
var bl = H1l;
|
||||
var ch = H2h;
|
||||
var cl = H2l;
|
||||
var dh = H3h;
|
||||
var dl = H3l;
|
||||
var eh = H4h;
|
||||
var el = H4l;
|
||||
var fh = H5h;
|
||||
var fl = H5l;
|
||||
var gh = H6h;
|
||||
var gl = H6l;
|
||||
var hh = H7h;
|
||||
var hl = H7l;
|
||||
|
||||
// Rounds
|
||||
for (var i = 0; i < 80; i++) {
|
||||
var Wil;
|
||||
var Wih;
|
||||
|
||||
// Shortcut
|
||||
var Wi = W[i];
|
||||
|
||||
// Extend message
|
||||
if (i < 16) {
|
||||
Wih = Wi.high = M[offset + i * 2] | 0;
|
||||
Wil = Wi.low = M[offset + i * 2 + 1] | 0;
|
||||
} else {
|
||||
// Gamma0
|
||||
var gamma0x = W[i - 15];
|
||||
var gamma0xh = gamma0x.high;
|
||||
var gamma0xl = gamma0x.low;
|
||||
var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);
|
||||
var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));
|
||||
|
||||
// Gamma1
|
||||
var gamma1x = W[i - 2];
|
||||
var gamma1xh = gamma1x.high;
|
||||
var gamma1xl = gamma1x.low;
|
||||
var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);
|
||||
var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));
|
||||
|
||||
// W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
|
||||
var Wi7 = W[i - 7];
|
||||
var Wi7h = Wi7.high;
|
||||
var Wi7l = Wi7.low;
|
||||
|
||||
var Wi16 = W[i - 16];
|
||||
var Wi16h = Wi16.high;
|
||||
var Wi16l = Wi16.low;
|
||||
|
||||
Wil = gamma0l + Wi7l;
|
||||
Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);
|
||||
Wil = Wil + gamma1l;
|
||||
Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);
|
||||
Wil = Wil + Wi16l;
|
||||
Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);
|
||||
|
||||
Wi.high = Wih;
|
||||
Wi.low = Wil;
|
||||
}
|
||||
|
||||
var chh = (eh & fh) ^ (~eh & gh);
|
||||
var chl = (el & fl) ^ (~el & gl);
|
||||
var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
|
||||
var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
|
||||
|
||||
var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));
|
||||
var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));
|
||||
var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));
|
||||
var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));
|
||||
|
||||
// t1 = h + sigma1 + ch + K[i] + W[i]
|
||||
var Ki = K[i];
|
||||
var Kih = Ki.high;
|
||||
var Kil = Ki.low;
|
||||
|
||||
var t1l = hl + sigma1l;
|
||||
var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);
|
||||
var t1l = t1l + chl;
|
||||
var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);
|
||||
var t1l = t1l + Kil;
|
||||
var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);
|
||||
var t1l = t1l + Wil;
|
||||
var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);
|
||||
|
||||
// t2 = sigma0 + maj
|
||||
var t2l = sigma0l + majl;
|
||||
var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);
|
||||
|
||||
// Update working variables
|
||||
hh = gh;
|
||||
hl = gl;
|
||||
gh = fh;
|
||||
gl = fl;
|
||||
fh = eh;
|
||||
fl = el;
|
||||
el = (dl + t1l) | 0;
|
||||
eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;
|
||||
dh = ch;
|
||||
dl = cl;
|
||||
ch = bh;
|
||||
cl = bl;
|
||||
bh = ah;
|
||||
bl = al;
|
||||
al = (t1l + t2l) | 0;
|
||||
ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;
|
||||
}
|
||||
|
||||
// Intermediate hash value
|
||||
H0l = H0.low = (H0l + al);
|
||||
H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));
|
||||
H1l = H1.low = (H1l + bl);
|
||||
H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));
|
||||
H2l = H2.low = (H2l + cl);
|
||||
H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));
|
||||
H3l = H3.low = (H3l + dl);
|
||||
H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));
|
||||
H4l = H4.low = (H4l + el);
|
||||
H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));
|
||||
H5l = H5.low = (H5l + fl);
|
||||
H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));
|
||||
H6l = H6.low = (H6l + gl);
|
||||
H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));
|
||||
H7l = H7.low = (H7l + hl);
|
||||
H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);
|
||||
dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;
|
||||
data.sigBytes = dataWords.length * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Convert hash to 32-bit word array before returning
|
||||
var hash = this._hash.toX32();
|
||||
|
||||
// Return final computed hash
|
||||
return hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
},
|
||||
|
||||
blockSize: 1024/32
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA512('message');
|
||||
* var hash = CryptoJS.SHA512(wordArray);
|
||||
*/
|
||||
C.SHA512 = Hasher._createHelper(SHA512);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA512(message, key);
|
||||
*/
|
||||
C.HmacSHA512 = Hasher._createHmacHelper(SHA512);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_x64 = C.x64;
|
||||
var X64Word = C_x64.Word;
|
||||
var X64WordArray = C_x64.WordArray;
|
||||
var C_algo = C.algo;
|
||||
var SHA512 = C_algo.SHA512;
|
||||
|
||||
/**
|
||||
* SHA-384 hash algorithm.
|
||||
*/
|
||||
var SHA384 = C_algo.SHA384 = SHA512.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new X64WordArray.init([
|
||||
new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),
|
||||
new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),
|
||||
new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),
|
||||
new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)
|
||||
]);
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
var hash = SHA512._doFinalize.call(this);
|
||||
|
||||
hash.sigBytes -= 16;
|
||||
|
||||
return hash;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA384('message');
|
||||
* var hash = CryptoJS.SHA384(wordArray);
|
||||
*/
|
||||
C.SHA384 = SHA512._createHelper(SHA384);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA384(message, key);
|
||||
*/
|
||||
C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
|
||||
}());
|
||||
|
||||
|
||||
(function (Math) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_x64 = C.x64;
|
||||
var X64Word = C_x64.Word;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Constants tables
|
||||
var RHO_OFFSETS = [];
|
||||
var PI_INDEXES = [];
|
||||
var ROUND_CONSTANTS = [];
|
||||
|
||||
// Compute Constants
|
||||
(function () {
|
||||
// Compute rho offset constants
|
||||
var x = 1, y = 0;
|
||||
for (var t = 0; t < 24; t++) {
|
||||
RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;
|
||||
|
||||
var newX = y % 5;
|
||||
var newY = (2 * x + 3 * y) % 5;
|
||||
x = newX;
|
||||
y = newY;
|
||||
}
|
||||
|
||||
// Compute pi index constants
|
||||
for (var x = 0; x < 5; x++) {
|
||||
for (var y = 0; y < 5; y++) {
|
||||
PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;
|
||||
}
|
||||
}
|
||||
|
||||
// Compute round constants
|
||||
var LFSR = 0x01;
|
||||
for (var i = 0; i < 24; i++) {
|
||||
var roundConstantMsw = 0;
|
||||
var roundConstantLsw = 0;
|
||||
|
||||
for (var j = 0; j < 7; j++) {
|
||||
if (LFSR & 0x01) {
|
||||
var bitPosition = (1 << j) - 1;
|
||||
if (bitPosition < 32) {
|
||||
roundConstantLsw ^= 1 << bitPosition;
|
||||
} else /* if (bitPosition >= 32) */ {
|
||||
roundConstantMsw ^= 1 << (bitPosition - 32);
|
||||
}
|
||||
}
|
||||
|
||||
// Compute next LFSR
|
||||
if (LFSR & 0x80) {
|
||||
// Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1
|
||||
LFSR = (LFSR << 1) ^ 0x71;
|
||||
} else {
|
||||
LFSR <<= 1;
|
||||
}
|
||||
}
|
||||
|
||||
ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);
|
||||
}
|
||||
}());
|
||||
|
||||
// Reusable objects for temporary values
|
||||
var T = [];
|
||||
(function () {
|
||||
for (var i = 0; i < 25; i++) {
|
||||
T[i] = X64Word.create();
|
||||
}
|
||||
}());
|
||||
|
||||
/**
|
||||
* SHA-3 hash algorithm.
|
||||
*/
|
||||
var SHA3 = C_algo.SHA3 = Hasher.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {number} outputLength
|
||||
* The desired number of bits in the output hash.
|
||||
* Only values permitted are: 224, 256, 384, 512.
|
||||
* Default: 512
|
||||
*/
|
||||
cfg: Hasher.cfg.extend({
|
||||
outputLength: 512
|
||||
}),
|
||||
|
||||
_doReset: function () {
|
||||
var state = this._state = []
|
||||
for (var i = 0; i < 25; i++) {
|
||||
state[i] = new X64Word.init();
|
||||
}
|
||||
|
||||
this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcuts
|
||||
var state = this._state;
|
||||
var nBlockSizeLanes = this.blockSize / 2;
|
||||
|
||||
// Absorb
|
||||
for (var i = 0; i < nBlockSizeLanes; i++) {
|
||||
// Shortcuts
|
||||
var M2i = M[offset + 2 * i];
|
||||
var M2i1 = M[offset + 2 * i + 1];
|
||||
|
||||
// Swap endian
|
||||
M2i = (
|
||||
(((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |
|
||||
(((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
M2i1 = (
|
||||
(((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |
|
||||
(((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
|
||||
// Absorb message into state
|
||||
var lane = state[i];
|
||||
lane.high ^= M2i1;
|
||||
lane.low ^= M2i;
|
||||
}
|
||||
|
||||
// Rounds
|
||||
for (var round = 0; round < 24; round++) {
|
||||
// Theta
|
||||
for (var x = 0; x < 5; x++) {
|
||||
// Mix column lanes
|
||||
var tMsw = 0, tLsw = 0;
|
||||
for (var y = 0; y < 5; y++) {
|
||||
var lane = state[x + 5 * y];
|
||||
tMsw ^= lane.high;
|
||||
tLsw ^= lane.low;
|
||||
}
|
||||
|
||||
// Temporary values
|
||||
var Tx = T[x];
|
||||
Tx.high = tMsw;
|
||||
Tx.low = tLsw;
|
||||
}
|
||||
for (var x = 0; x < 5; x++) {
|
||||
// Shortcuts
|
||||
var Tx4 = T[(x + 4) % 5];
|
||||
var Tx1 = T[(x + 1) % 5];
|
||||
var Tx1Msw = Tx1.high;
|
||||
var Tx1Lsw = Tx1.low;
|
||||
|
||||
// Mix surrounding columns
|
||||
var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));
|
||||
var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));
|
||||
for (var y = 0; y < 5; y++) {
|
||||
var lane = state[x + 5 * y];
|
||||
lane.high ^= tMsw;
|
||||
lane.low ^= tLsw;
|
||||
}
|
||||
}
|
||||
|
||||
// Rho Pi
|
||||
for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
|
||||
var tMsw;
|
||||
var tLsw;
|
||||
|
||||
// Shortcuts
|
||||
var lane = state[laneIndex];
|
||||
var laneMsw = lane.high;
|
||||
var laneLsw = lane.low;
|
||||
var rhoOffset = RHO_OFFSETS[laneIndex];
|
||||
|
||||
// Rotate lanes
|
||||
if (rhoOffset < 32) {
|
||||
tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));
|
||||
tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));
|
||||
} else /* if (rhoOffset >= 32) */ {
|
||||
tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));
|
||||
tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));
|
||||
}
|
||||
|
||||
// Transpose lanes
|
||||
var TPiLane = T[PI_INDEXES[laneIndex]];
|
||||
TPiLane.high = tMsw;
|
||||
TPiLane.low = tLsw;
|
||||
}
|
||||
|
||||
// Rho pi at x = y = 0
|
||||
var T0 = T[0];
|
||||
var state0 = state[0];
|
||||
T0.high = state0.high;
|
||||
T0.low = state0.low;
|
||||
|
||||
// Chi
|
||||
for (var x = 0; x < 5; x++) {
|
||||
for (var y = 0; y < 5; y++) {
|
||||
// Shortcuts
|
||||
var laneIndex = x + 5 * y;
|
||||
var lane = state[laneIndex];
|
||||
var TLane = T[laneIndex];
|
||||
var Tx1Lane = T[((x + 1) % 5) + 5 * y];
|
||||
var Tx2Lane = T[((x + 2) % 5) + 5 * y];
|
||||
|
||||
// Mix rows
|
||||
lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);
|
||||
lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);
|
||||
}
|
||||
}
|
||||
|
||||
// Iota
|
||||
var lane = state[0];
|
||||
var roundConstant = ROUND_CONSTANTS[round];
|
||||
lane.high ^= roundConstant.high;
|
||||
lane.low ^= roundConstant.low;
|
||||
}
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
var blockSizeBits = this.blockSize * 32;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);
|
||||
dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;
|
||||
data.sigBytes = dataWords.length * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Shortcuts
|
||||
var state = this._state;
|
||||
var outputLengthBytes = this.cfg.outputLength / 8;
|
||||
var outputLengthLanes = outputLengthBytes / 8;
|
||||
|
||||
// Squeeze
|
||||
var hashWords = [];
|
||||
for (var i = 0; i < outputLengthLanes; i++) {
|
||||
// Shortcuts
|
||||
var lane = state[i];
|
||||
var laneMsw = lane.high;
|
||||
var laneLsw = lane.low;
|
||||
|
||||
// Swap endian
|
||||
laneMsw = (
|
||||
(((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |
|
||||
(((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
laneLsw = (
|
||||
(((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |
|
||||
(((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
|
||||
// Squeeze state to retrieve hash
|
||||
hashWords.push(laneLsw);
|
||||
hashWords.push(laneMsw);
|
||||
}
|
||||
|
||||
// Return final computed hash
|
||||
return new WordArray.init(hashWords, outputLengthBytes);
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
|
||||
var state = clone._state = this._state.slice(0);
|
||||
for (var i = 0; i < 25; i++) {
|
||||
state[i] = state[i].clone();
|
||||
}
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA3('message');
|
||||
* var hash = CryptoJS.SHA3(wordArray);
|
||||
*/
|
||||
C.SHA3 = Hasher._createHelper(SHA3);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA3(message, key);
|
||||
*/
|
||||
C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
|
||||
}(Math));
|
||||
|
||||
|
||||
/** @preserve
|
||||
(c) 2012 by Cédric Mesnil. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
(function (Math) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Constants table
|
||||
var _zl = WordArray.create([
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
||||
7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
|
||||
3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
|
||||
1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
|
||||
4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);
|
||||
var _zr = WordArray.create([
|
||||
5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
|
||||
6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
|
||||
15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
|
||||
8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
|
||||
12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);
|
||||
var _sl = WordArray.create([
|
||||
11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
|
||||
7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
|
||||
11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
|
||||
11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
|
||||
9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);
|
||||
var _sr = WordArray.create([
|
||||
8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
|
||||
9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
|
||||
9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
|
||||
15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
|
||||
8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);
|
||||
|
||||
var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);
|
||||
var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);
|
||||
|
||||
/**
|
||||
* RIPEMD160 hash algorithm.
|
||||
*/
|
||||
var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
|
||||
// Swap endian
|
||||
for (var i = 0; i < 16; i++) {
|
||||
// Shortcuts
|
||||
var offset_i = offset + i;
|
||||
var M_offset_i = M[offset_i];
|
||||
|
||||
// Swap
|
||||
M[offset_i] = (
|
||||
(((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
|
||||
(((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
}
|
||||
// Shortcut
|
||||
var H = this._hash.words;
|
||||
var hl = _hl.words;
|
||||
var hr = _hr.words;
|
||||
var zl = _zl.words;
|
||||
var zr = _zr.words;
|
||||
var sl = _sl.words;
|
||||
var sr = _sr.words;
|
||||
|
||||
// Working variables
|
||||
var al, bl, cl, dl, el;
|
||||
var ar, br, cr, dr, er;
|
||||
|
||||
ar = al = H[0];
|
||||
br = bl = H[1];
|
||||
cr = cl = H[2];
|
||||
dr = dl = H[3];
|
||||
er = el = H[4];
|
||||
// Computation
|
||||
var t;
|
||||
for (var i = 0; i < 80; i += 1) {
|
||||
t = (al + M[offset+zl[i]])|0;
|
||||
if (i<16){
|
||||
t += f1(bl,cl,dl) + hl[0];
|
||||
} else if (i<32) {
|
||||
t += f2(bl,cl,dl) + hl[1];
|
||||
} else if (i<48) {
|
||||
t += f3(bl,cl,dl) + hl[2];
|
||||
} else if (i<64) {
|
||||
t += f4(bl,cl,dl) + hl[3];
|
||||
} else {// if (i<80) {
|
||||
t += f5(bl,cl,dl) + hl[4];
|
||||
}
|
||||
t = t|0;
|
||||
t = rotl(t,sl[i]);
|
||||
t = (t+el)|0;
|
||||
al = el;
|
||||
el = dl;
|
||||
dl = rotl(cl, 10);
|
||||
cl = bl;
|
||||
bl = t;
|
||||
|
||||
t = (ar + M[offset+zr[i]])|0;
|
||||
if (i<16){
|
||||
t += f5(br,cr,dr) + hr[0];
|
||||
} else if (i<32) {
|
||||
t += f4(br,cr,dr) + hr[1];
|
||||
} else if (i<48) {
|
||||
t += f3(br,cr,dr) + hr[2];
|
||||
} else if (i<64) {
|
||||
t += f2(br,cr,dr) + hr[3];
|
||||
} else {// if (i<80) {
|
||||
t += f1(br,cr,dr) + hr[4];
|
||||
}
|
||||
t = t|0;
|
||||
t = rotl(t,sr[i]) ;
|
||||
t = (t+er)|0;
|
||||
ar = er;
|
||||
er = dr;
|
||||
dr = rotl(cr, 10);
|
||||
cr = br;
|
||||
br = t;
|
||||
}
|
||||
// Intermediate hash value
|
||||
t = (H[1] + cl + dr)|0;
|
||||
H[1] = (H[2] + dl + er)|0;
|
||||
H[2] = (H[3] + el + ar)|0;
|
||||
H[3] = (H[4] + al + br)|0;
|
||||
H[4] = (H[0] + bl + cr)|0;
|
||||
H[0] = t;
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
|
||||
(((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
|
||||
(((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
data.sigBytes = (dataWords.length + 1) * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Shortcuts
|
||||
var hash = this._hash;
|
||||
var H = hash.words;
|
||||
|
||||
// Swap endian
|
||||
for (var i = 0; i < 5; i++) {
|
||||
// Shortcut
|
||||
var H_i = H[i];
|
||||
|
||||
// Swap
|
||||
H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
|
||||
(((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
|
||||
}
|
||||
|
||||
// Return final computed hash
|
||||
return hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function f1(x, y, z) {
|
||||
return ((x) ^ (y) ^ (z));
|
||||
|
||||
}
|
||||
|
||||
function f2(x, y, z) {
|
||||
return (((x)&(y)) | ((~x)&(z)));
|
||||
}
|
||||
|
||||
function f3(x, y, z) {
|
||||
return (((x) | (~(y))) ^ (z));
|
||||
}
|
||||
|
||||
function f4(x, y, z) {
|
||||
return (((x) & (z)) | ((y)&(~(z))));
|
||||
}
|
||||
|
||||
function f5(x, y, z) {
|
||||
return ((x) ^ ((y) |(~(z))));
|
||||
|
||||
}
|
||||
|
||||
function rotl(x,n) {
|
||||
return (x<<n) | (x>>>(32-n));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.RIPEMD160('message');
|
||||
* var hash = CryptoJS.RIPEMD160(wordArray);
|
||||
*/
|
||||
C.RIPEMD160 = Hasher._createHelper(RIPEMD160);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacRIPEMD160(message, key);
|
||||
*/
|
||||
C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);
|
||||
}(Math));
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Base = C_lib.Base;
|
||||
var C_enc = C.enc;
|
||||
var Utf8 = C_enc.Utf8;
|
||||
var C_algo = C.algo;
|
||||
|
||||
/**
|
||||
* HMAC algorithm.
|
||||
*/
|
||||
var HMAC = C_algo.HMAC = Base.extend({
|
||||
/**
|
||||
* Initializes a newly created HMAC.
|
||||
*
|
||||
* @param {Hasher} hasher The hash algorithm to use.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
|
||||
*/
|
||||
init: function (hasher, key) {
|
||||
// Init hasher
|
||||
hasher = this._hasher = new hasher.init();
|
||||
|
||||
// Convert string to WordArray, else assume WordArray already
|
||||
if (typeof key == 'string') {
|
||||
key = Utf8.parse(key);
|
||||
}
|
||||
|
||||
// Shortcuts
|
||||
var hasherBlockSize = hasher.blockSize;
|
||||
var hasherBlockSizeBytes = hasherBlockSize * 4;
|
||||
|
||||
// Allow arbitrary length keys
|
||||
if (key.sigBytes > hasherBlockSizeBytes) {
|
||||
key = hasher.finalize(key);
|
||||
}
|
||||
|
||||
// Clamp excess bits
|
||||
key.clamp();
|
||||
|
||||
// Clone key for inner and outer pads
|
||||
var oKey = this._oKey = key.clone();
|
||||
var iKey = this._iKey = key.clone();
|
||||
|
||||
// Shortcuts
|
||||
var oKeyWords = oKey.words;
|
||||
var iKeyWords = iKey.words;
|
||||
|
||||
// XOR keys with pad constants
|
||||
for (var i = 0; i < hasherBlockSize; i++) {
|
||||
oKeyWords[i] ^= 0x5c5c5c5c;
|
||||
iKeyWords[i] ^= 0x36363636;
|
||||
}
|
||||
oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;
|
||||
|
||||
// Set initial values
|
||||
this.reset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Resets this HMAC to its initial state.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* hmacHasher.reset();
|
||||
*/
|
||||
reset: function () {
|
||||
// Shortcut
|
||||
var hasher = this._hasher;
|
||||
|
||||
// Reset
|
||||
hasher.reset();
|
||||
hasher.update(this._iKey);
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates this HMAC with a message.
|
||||
*
|
||||
* @param {WordArray|string} messageUpdate The message to append.
|
||||
*
|
||||
* @return {HMAC} This HMAC instance.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* hmacHasher.update('message');
|
||||
* hmacHasher.update(wordArray);
|
||||
*/
|
||||
update: function (messageUpdate) {
|
||||
this._hasher.update(messageUpdate);
|
||||
|
||||
// Chainable
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Finalizes the HMAC computation.
|
||||
* Note that the finalize operation is effectively a destructive, read-once operation.
|
||||
*
|
||||
* @param {WordArray|string} messageUpdate (Optional) A final message update.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = hmacHasher.finalize();
|
||||
* var hmac = hmacHasher.finalize('message');
|
||||
* var hmac = hmacHasher.finalize(wordArray);
|
||||
*/
|
||||
finalize: function (messageUpdate) {
|
||||
// Shortcut
|
||||
var hasher = this._hasher;
|
||||
|
||||
// Compute HMAC
|
||||
var innerHash = hasher.finalize(messageUpdate);
|
||||
hasher.reset();
|
||||
var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));
|
||||
|
||||
return hmac;
|
||||
}
|
||||
});
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Base = C_lib.Base;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_algo = C.algo;
|
||||
var SHA1 = C_algo.SHA1;
|
||||
var HMAC = C_algo.HMAC;
|
||||
|
||||
/**
|
||||
* Password-Based Key Derivation Function 2 algorithm.
|
||||
*/
|
||||
var PBKDF2 = C_algo.PBKDF2 = Base.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
|
||||
* @property {Hasher} hasher The hasher to use. Default: SHA1
|
||||
* @property {number} iterations The number of iterations to perform. Default: 1
|
||||
*/
|
||||
cfg: Base.extend({
|
||||
keySize: 128/32,
|
||||
hasher: SHA1,
|
||||
iterations: 1
|
||||
}),
|
||||
|
||||
/**
|
||||
* Initializes a newly created key derivation function.
|
||||
*
|
||||
* @param {Object} cfg (Optional) The configuration options to use for the derivation.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var kdf = CryptoJS.algo.PBKDF2.create();
|
||||
* var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });
|
||||
* var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });
|
||||
*/
|
||||
init: function (cfg) {
|
||||
this.cfg = this.cfg.extend(cfg);
|
||||
},
|
||||
|
||||
/**
|
||||
* Computes the Password-Based Key Derivation Function 2.
|
||||
*
|
||||
* @param {WordArray|string} password The password.
|
||||
* @param {WordArray|string} salt A salt.
|
||||
*
|
||||
* @return {WordArray} The derived key.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var key = kdf.compute(password, salt);
|
||||
*/
|
||||
compute: function (password, salt) {
|
||||
// Shortcut
|
||||
var cfg = this.cfg;
|
||||
|
||||
// Init HMAC
|
||||
var hmac = HMAC.create(cfg.hasher, password);
|
||||
|
||||
// Initial values
|
||||
var derivedKey = WordArray.create();
|
||||
var blockIndex = WordArray.create([0x00000001]);
|
||||
|
||||
// Shortcuts
|
||||
var derivedKeyWords = derivedKey.words;
|
||||
var blockIndexWords = blockIndex.words;
|
||||
var keySize = cfg.keySize;
|
||||
var iterations = cfg.iterations;
|
||||
|
||||
// Generate key
|
||||
while (derivedKeyWords.length < keySize) {
|
||||
var block = hmac.update(salt).finalize(blockIndex);
|
||||
hmac.reset();
|
||||
|
||||
// Shortcuts
|
||||
var blockWords = block.words;
|
||||
var blockWordsLength = blockWords.length;
|
||||
|
||||
// Iterations
|
||||
var intermediate = block;
|
||||
for (var i = 1; i < iterations; i++) {
|
||||
intermediate = hmac.finalize(intermediate);
|
||||
hmac.reset();
|
||||
|
||||
// Shortcut
|
||||
var intermediateWords = intermediate.words;
|
||||
|
||||
// XOR intermediate with block
|
||||
for (var j = 0; j < blockWordsLength; j++) {
|
||||
blockWords[j] ^= intermediateWords[j];
|
||||
}
|
||||
}
|
||||
|
||||
derivedKey.concat(block);
|
||||
blockIndexWords[0]++;
|
||||
}
|
||||
derivedKey.sigBytes = keySize * 4;
|
||||
|
||||
return derivedKey;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Computes the Password-Based Key Derivation Function 2.
|
||||
*
|
||||
* @param {WordArray|string} password The password.
|
||||
* @param {WordArray|string} salt A salt.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this computation.
|
||||
*
|
||||
* @return {WordArray} The derived key.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var key = CryptoJS.PBKDF2(password, salt);
|
||||
* var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });
|
||||
* var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });
|
||||
*/
|
||||
C.PBKDF2 = function (password, salt, cfg) {
|
||||
return PBKDF2.create(cfg).compute(password, salt);
|
||||
};
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Base = C_lib.Base;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_algo = C.algo;
|
||||
var MD5 = C_algo.MD5;
|
||||
|
||||
/**
|
||||
* This key derivation function is meant to conform with EVP_BytesToKey.
|
||||
* www.openssl.org/docs/crypto/EVP_BytesToKey.html
|
||||
*/
|
||||
var EvpKDF = C_algo.EvpKDF = Base.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
|
||||
* @property {Hasher} hasher The hash algorithm to use. Default: MD5
|
||||
* @property {number} iterations The number of iterations to perform. Default: 1
|
||||
*/
|
||||
cfg: Base.extend({
|
||||
keySize: 128/32,
|
||||
hasher: MD5,
|
||||
iterations: 1
|
||||
}),
|
||||
|
||||
/**
|
||||
* Initializes a newly created key derivation function.
|
||||
*
|
||||
* @param {Object} cfg (Optional) The configuration options to use for the derivation.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var kdf = CryptoJS.algo.EvpKDF.create();
|
||||
* var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
|
||||
* var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
|
||||
*/
|
||||
init: function (cfg) {
|
||||
this.cfg = this.cfg.extend(cfg);
|
||||
},
|
||||
|
||||
/**
|
||||
* Derives a key from a password.
|
||||
*
|
||||
* @param {WordArray|string} password The password.
|
||||
* @param {WordArray|string} salt A salt.
|
||||
*
|
||||
* @return {WordArray} The derived key.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var key = kdf.compute(password, salt);
|
||||
*/
|
||||
compute: function (password, salt) {
|
||||
var block;
|
||||
|
||||
// Shortcut
|
||||
var cfg = this.cfg;
|
||||
|
||||
// Init hasher
|
||||
var hasher = cfg.hasher.create();
|
||||
|
||||
// Initial values
|
||||
var derivedKey = WordArray.create();
|
||||
|
||||
// Shortcuts
|
||||
var derivedKeyWords = derivedKey.words;
|
||||
var keySize = cfg.keySize;
|
||||
var iterations = cfg.iterations;
|
||||
|
||||
// Generate key
|
||||
while (derivedKeyWords.length < keySize) {
|
||||
if (block) {
|
||||
hasher.update(block);
|
||||
}
|
||||
block = hasher.update(password).finalize(salt);
|
||||
hasher.reset();
|
||||
|
||||
// Iterations
|
||||
for (var i = 1; i < iterations; i++) {
|
||||
block = hasher.finalize(block);
|
||||
hasher.reset();
|
||||
}
|
||||
|
||||
derivedKey.concat(block);
|
||||
}
|
||||
derivedKey.sigBytes = keySize * 4;
|
||||
|
||||
return derivedKey;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Derives a key from a password.
|
||||
*
|
||||
* @param {WordArray|string} password The password.
|
||||
* @param {WordArray|string} salt A salt.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this computation.
|
||||
*
|
||||
* @return {WordArray} The derived key.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var key = CryptoJS.EvpKDF(password, salt);
|
||||
* var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });
|
||||
* var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });
|
||||
*/
|
||||
C.EvpKDF = function (password, salt, cfg) {
|
||||
return EvpKDF.create(cfg).compute(password, salt);
|
||||
};
|
||||
}());
|
||||
|
||||
|
||||
/**
|
||||
* Cipher core components.
|
||||
*/
|
||||
CryptoJS.lib.Cipher || (function (undefined) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Base = C_lib.Base;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;
|
||||
var C_enc = C.enc;
|
||||
var Utf8 = C_enc.Utf8;
|
||||
var Base64 = C_enc.Base64;
|
||||
var C_algo = C.algo;
|
||||
var EvpKDF = C_algo.EvpKDF;
|
||||
|
||||
/**
|
||||
* Abstract base cipher template.
|
||||
*
|
||||
* @property {number} keySize This cipher's key size. Default: 4 (128 bits)
|
||||
* @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)
|
||||
* @property {number} _ENC_XFORM_MODE A constant representing encryption mode.
|
||||
* @property {number} _DEC_XFORM_MODE A constant representing decryption mode.
|
||||
*/
|
||||
var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {WordArray} iv The IV to use for this operation.
|
||||
*/
|
||||
cfg: Base.extend(),
|
||||
|
||||
/**
|
||||
* Creates this cipher in encryption mode.
|
||||
*
|
||||
* @param {WordArray} key The key.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {Cipher} A cipher instance.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
|
||||
*/
|
||||
createEncryptor: function (key, cfg) {
|
||||
return this.create(this._ENC_XFORM_MODE, key, cfg);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates this cipher in decryption mode.
|
||||
*
|
||||
* @param {WordArray} key The key.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {Cipher} A cipher instance.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
|
||||
*/
|
||||
createDecryptor: function (key, cfg) {
|
||||
return this.create(this._DEC_XFORM_MODE, key, cfg);
|
||||
},
|
||||
|
||||
/**
|
||||
* Initializes a newly created cipher.
|
||||
*
|
||||
* @param {number} xformMode Either the encryption or decryption transormation mode constant.
|
||||
* @param {WordArray} key The key.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
|
||||
*/
|
||||
init: function (xformMode, key, cfg) {
|
||||
// Apply config defaults
|
||||
this.cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Store transform mode and key
|
||||
this._xformMode = xformMode;
|
||||
this._key = key;
|
||||
|
||||
// Set initial values
|
||||
this.reset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Resets this cipher to its initial state.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* cipher.reset();
|
||||
*/
|
||||
reset: function () {
|
||||
// Reset data buffer
|
||||
BufferedBlockAlgorithm.reset.call(this);
|
||||
|
||||
// Perform concrete-cipher logic
|
||||
this._doReset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds data to be encrypted or decrypted.
|
||||
*
|
||||
* @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
|
||||
*
|
||||
* @return {WordArray} The data after processing.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var encrypted = cipher.process('data');
|
||||
* var encrypted = cipher.process(wordArray);
|
||||
*/
|
||||
process: function (dataUpdate) {
|
||||
// Append
|
||||
this._append(dataUpdate);
|
||||
|
||||
// Process available blocks
|
||||
return this._process();
|
||||
},
|
||||
|
||||
/**
|
||||
* Finalizes the encryption or decryption process.
|
||||
* Note that the finalize operation is effectively a destructive, read-once operation.
|
||||
*
|
||||
* @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
|
||||
*
|
||||
* @return {WordArray} The data after final processing.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var encrypted = cipher.finalize();
|
||||
* var encrypted = cipher.finalize('data');
|
||||
* var encrypted = cipher.finalize(wordArray);
|
||||
*/
|
||||
finalize: function (dataUpdate) {
|
||||
// Final data update
|
||||
if (dataUpdate) {
|
||||
this._append(dataUpdate);
|
||||
}
|
||||
|
||||
// Perform concrete-cipher logic
|
||||
var finalProcessedData = this._doFinalize();
|
||||
|
||||
return finalProcessedData;
|
||||
},
|
||||
|
||||
keySize: 128/32,
|
||||
|
||||
ivSize: 128/32,
|
||||
|
||||
_ENC_XFORM_MODE: 1,
|
||||
|
||||
_DEC_XFORM_MODE: 2,
|
||||
|
||||
/**
|
||||
* Creates shortcut functions to a cipher's object interface.
|
||||
*
|
||||
* @param {Cipher} cipher The cipher to create a helper for.
|
||||
*
|
||||
* @return {Object} An object with encrypt and decrypt shortcut functions.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
|
||||
*/
|
||||
_createHelper: (function () {
|
||||
function selectCipherStrategy(key) {
|
||||
if (typeof key == 'string') {
|
||||
return PasswordBasedCipher;
|
||||
} else {
|
||||
return SerializableCipher;
|
||||
}
|
||||
}
|
||||
|
||||
return function (cipher) {
|
||||
return {
|
||||
encrypt: function (message, key, cfg) {
|
||||
return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);
|
||||
},
|
||||
|
||||
decrypt: function (ciphertext, key, cfg) {
|
||||
return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);
|
||||
}
|
||||
};
|
||||
};
|
||||
}())
|
||||
});
|
||||
|
||||
/**
|
||||
* Abstract base stream cipher template.
|
||||
*
|
||||
* @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)
|
||||
*/
|
||||
var StreamCipher = C_lib.StreamCipher = Cipher.extend({
|
||||
_doFinalize: function () {
|
||||
// Process partial blocks
|
||||
var finalProcessedBlocks = this._process(!!'flush');
|
||||
|
||||
return finalProcessedBlocks;
|
||||
},
|
||||
|
||||
blockSize: 1
|
||||
});
|
||||
|
||||
/**
|
||||
* Mode namespace.
|
||||
*/
|
||||
var C_mode = C.mode = {};
|
||||
|
||||
/**
|
||||
* Abstract base block cipher mode template.
|
||||
*/
|
||||
var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({
|
||||
/**
|
||||
* Creates this mode for encryption.
|
||||
*
|
||||
* @param {Cipher} cipher A block cipher instance.
|
||||
* @param {Array} iv The IV words.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
|
||||
*/
|
||||
createEncryptor: function (cipher, iv) {
|
||||
return this.Encryptor.create(cipher, iv);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates this mode for decryption.
|
||||
*
|
||||
* @param {Cipher} cipher A block cipher instance.
|
||||
* @param {Array} iv The IV words.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
|
||||
*/
|
||||
createDecryptor: function (cipher, iv) {
|
||||
return this.Decryptor.create(cipher, iv);
|
||||
},
|
||||
|
||||
/**
|
||||
* Initializes a newly created mode.
|
||||
*
|
||||
* @param {Cipher} cipher A block cipher instance.
|
||||
* @param {Array} iv The IV words.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
|
||||
*/
|
||||
init: function (cipher, iv) {
|
||||
this._cipher = cipher;
|
||||
this._iv = iv;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Cipher Block Chaining mode.
|
||||
*/
|
||||
var CBC = C_mode.CBC = (function () {
|
||||
/**
|
||||
* Abstract base CBC mode.
|
||||
*/
|
||||
var CBC = BlockCipherMode.extend();
|
||||
|
||||
/**
|
||||
* CBC encryptor.
|
||||
*/
|
||||
CBC.Encryptor = CBC.extend({
|
||||
/**
|
||||
* Processes the data block at offset.
|
||||
*
|
||||
* @param {Array} words The data words to operate on.
|
||||
* @param {number} offset The offset where the block starts.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* mode.processBlock(data.words, offset);
|
||||
*/
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher;
|
||||
var blockSize = cipher.blockSize;
|
||||
|
||||
// XOR and encrypt
|
||||
xorBlock.call(this, words, offset, blockSize);
|
||||
cipher.encryptBlock(words, offset);
|
||||
|
||||
// Remember this block to use with next block
|
||||
this._prevBlock = words.slice(offset, offset + blockSize);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* CBC decryptor.
|
||||
*/
|
||||
CBC.Decryptor = CBC.extend({
|
||||
/**
|
||||
* Processes the data block at offset.
|
||||
*
|
||||
* @param {Array} words The data words to operate on.
|
||||
* @param {number} offset The offset where the block starts.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* mode.processBlock(data.words, offset);
|
||||
*/
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher;
|
||||
var blockSize = cipher.blockSize;
|
||||
|
||||
// Remember this block to use with next block
|
||||
var thisBlock = words.slice(offset, offset + blockSize);
|
||||
|
||||
// Decrypt and XOR
|
||||
cipher.decryptBlock(words, offset);
|
||||
xorBlock.call(this, words, offset, blockSize);
|
||||
|
||||
// This block becomes the previous block
|
||||
this._prevBlock = thisBlock;
|
||||
}
|
||||
});
|
||||
|
||||
function xorBlock(words, offset, blockSize) {
|
||||
var block;
|
||||
|
||||
// Shortcut
|
||||
var iv = this._iv;
|
||||
|
||||
// Choose mixing block
|
||||
if (iv) {
|
||||
block = iv;
|
||||
|
||||
// Remove IV for subsequent blocks
|
||||
this._iv = undefined;
|
||||
} else {
|
||||
block = this._prevBlock;
|
||||
}
|
||||
|
||||
// XOR blocks
|
||||
for (var i = 0; i < blockSize; i++) {
|
||||
words[offset + i] ^= block[i];
|
||||
}
|
||||
}
|
||||
|
||||
return CBC;
|
||||
}());
|
||||
|
||||
/**
|
||||
* Padding namespace.
|
||||
*/
|
||||
var C_pad = C.pad = {};
|
||||
|
||||
/**
|
||||
* PKCS #5/7 padding strategy.
|
||||
*/
|
||||
var Pkcs7 = C_pad.Pkcs7 = {
|
||||
/**
|
||||
* Pads data using the algorithm defined in PKCS #5/7.
|
||||
*
|
||||
* @param {WordArray} data The data to pad.
|
||||
* @param {number} blockSize The multiple that the data should be padded to.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* CryptoJS.pad.Pkcs7.pad(wordArray, 4);
|
||||
*/
|
||||
pad: function (data, blockSize) {
|
||||
// Shortcut
|
||||
var blockSizeBytes = blockSize * 4;
|
||||
|
||||
// Count padding bytes
|
||||
var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
|
||||
|
||||
// Create padding word
|
||||
var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;
|
||||
|
||||
// Create padding
|
||||
var paddingWords = [];
|
||||
for (var i = 0; i < nPaddingBytes; i += 4) {
|
||||
paddingWords.push(paddingWord);
|
||||
}
|
||||
var padding = WordArray.create(paddingWords, nPaddingBytes);
|
||||
|
||||
// Add padding
|
||||
data.concat(padding);
|
||||
},
|
||||
|
||||
/**
|
||||
* Unpads data that had been padded using the algorithm defined in PKCS #5/7.
|
||||
*
|
||||
* @param {WordArray} data The data to unpad.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* CryptoJS.pad.Pkcs7.unpad(wordArray);
|
||||
*/
|
||||
unpad: function (data) {
|
||||
// Get number of padding bytes from last byte
|
||||
var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
|
||||
|
||||
// Remove padding
|
||||
data.sigBytes -= nPaddingBytes;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Abstract base block cipher template.
|
||||
*
|
||||
* @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)
|
||||
*/
|
||||
var BlockCipher = C_lib.BlockCipher = Cipher.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {Mode} mode The block mode to use. Default: CBC
|
||||
* @property {Padding} padding The padding strategy to use. Default: Pkcs7
|
||||
*/
|
||||
cfg: Cipher.cfg.extend({
|
||||
mode: CBC,
|
||||
padding: Pkcs7
|
||||
}),
|
||||
|
||||
reset: function () {
|
||||
var modeCreator;
|
||||
|
||||
// Reset cipher
|
||||
Cipher.reset.call(this);
|
||||
|
||||
// Shortcuts
|
||||
var cfg = this.cfg;
|
||||
var iv = cfg.iv;
|
||||
var mode = cfg.mode;
|
||||
|
||||
// Reset block mode
|
||||
if (this._xformMode == this._ENC_XFORM_MODE) {
|
||||
modeCreator = mode.createEncryptor;
|
||||
} else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
|
||||
modeCreator = mode.createDecryptor;
|
||||
// Keep at least one block in the buffer for unpadding
|
||||
this._minBufferSize = 1;
|
||||
}
|
||||
|
||||
if (this._mode && this._mode.__creator == modeCreator) {
|
||||
this._mode.init(this, iv && iv.words);
|
||||
} else {
|
||||
this._mode = modeCreator.call(mode, this, iv && iv.words);
|
||||
this._mode.__creator = modeCreator;
|
||||
}
|
||||
},
|
||||
|
||||
_doProcessBlock: function (words, offset) {
|
||||
this._mode.processBlock(words, offset);
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
var finalProcessedBlocks;
|
||||
|
||||
// Shortcut
|
||||
var padding = this.cfg.padding;
|
||||
|
||||
// Finalize
|
||||
if (this._xformMode == this._ENC_XFORM_MODE) {
|
||||
// Pad data
|
||||
padding.pad(this._data, this.blockSize);
|
||||
|
||||
// Process final blocks
|
||||
finalProcessedBlocks = this._process(!!'flush');
|
||||
} else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
|
||||
// Process final blocks
|
||||
finalProcessedBlocks = this._process(!!'flush');
|
||||
|
||||
// Unpad data
|
||||
padding.unpad(finalProcessedBlocks);
|
||||
}
|
||||
|
||||
return finalProcessedBlocks;
|
||||
},
|
||||
|
||||
blockSize: 128/32
|
||||
});
|
||||
|
||||
/**
|
||||
* A collection of cipher parameters.
|
||||
*
|
||||
* @property {WordArray} ciphertext The raw ciphertext.
|
||||
* @property {WordArray} key The key to this ciphertext.
|
||||
* @property {WordArray} iv The IV used in the ciphering operation.
|
||||
* @property {WordArray} salt The salt used with a key derivation function.
|
||||
* @property {Cipher} algorithm The cipher algorithm.
|
||||
* @property {Mode} mode The block mode used in the ciphering operation.
|
||||
* @property {Padding} padding The padding scheme used in the ciphering operation.
|
||||
* @property {number} blockSize The block size of the cipher.
|
||||
* @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.
|
||||
*/
|
||||
var CipherParams = C_lib.CipherParams = Base.extend({
|
||||
/**
|
||||
* Initializes a newly created cipher params object.
|
||||
*
|
||||
* @param {Object} cipherParams An object with any of the possible cipher parameters.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipherParams = CryptoJS.lib.CipherParams.create({
|
||||
* ciphertext: ciphertextWordArray,
|
||||
* key: keyWordArray,
|
||||
* iv: ivWordArray,
|
||||
* salt: saltWordArray,
|
||||
* algorithm: CryptoJS.algo.AES,
|
||||
* mode: CryptoJS.mode.CBC,
|
||||
* padding: CryptoJS.pad.PKCS7,
|
||||
* blockSize: 4,
|
||||
* formatter: CryptoJS.format.OpenSSL
|
||||
* });
|
||||
*/
|
||||
init: function (cipherParams) {
|
||||
this.mixIn(cipherParams);
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts this cipher params object to a string.
|
||||
*
|
||||
* @param {Format} formatter (Optional) The formatting strategy to use.
|
||||
*
|
||||
* @return {string} The stringified cipher params.
|
||||
*
|
||||
* @throws Error If neither the formatter nor the default formatter is set.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var string = cipherParams + '';
|
||||
* var string = cipherParams.toString();
|
||||
* var string = cipherParams.toString(CryptoJS.format.OpenSSL);
|
||||
*/
|
||||
toString: function (formatter) {
|
||||
return (formatter || this.formatter).stringify(this);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Format namespace.
|
||||
*/
|
||||
var C_format = C.format = {};
|
||||
|
||||
/**
|
||||
* OpenSSL formatting strategy.
|
||||
*/
|
||||
var OpenSSLFormatter = C_format.OpenSSL = {
|
||||
/**
|
||||
* Converts a cipher params object to an OpenSSL-compatible string.
|
||||
*
|
||||
* @param {CipherParams} cipherParams The cipher params object.
|
||||
*
|
||||
* @return {string} The OpenSSL-compatible string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
|
||||
*/
|
||||
stringify: function (cipherParams) {
|
||||
var wordArray;
|
||||
|
||||
// Shortcuts
|
||||
var ciphertext = cipherParams.ciphertext;
|
||||
var salt = cipherParams.salt;
|
||||
|
||||
// Format
|
||||
if (salt) {
|
||||
wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);
|
||||
} else {
|
||||
wordArray = ciphertext;
|
||||
}
|
||||
|
||||
return wordArray.toString(Base64);
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts an OpenSSL-compatible string to a cipher params object.
|
||||
*
|
||||
* @param {string} openSSLStr The OpenSSL-compatible string.
|
||||
*
|
||||
* @return {CipherParams} The cipher params object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
|
||||
*/
|
||||
parse: function (openSSLStr) {
|
||||
var salt;
|
||||
|
||||
// Parse base64
|
||||
var ciphertext = Base64.parse(openSSLStr);
|
||||
|
||||
// Shortcut
|
||||
var ciphertextWords = ciphertext.words;
|
||||
|
||||
// Test for salt
|
||||
if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {
|
||||
// Extract salt
|
||||
salt = WordArray.create(ciphertextWords.slice(2, 4));
|
||||
|
||||
// Remove salt from ciphertext
|
||||
ciphertextWords.splice(0, 4);
|
||||
ciphertext.sigBytes -= 16;
|
||||
}
|
||||
|
||||
return CipherParams.create({ ciphertext: ciphertext, salt: salt });
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* A cipher wrapper that returns ciphertext as a serializable cipher params object.
|
||||
*/
|
||||
var SerializableCipher = C_lib.SerializableCipher = Base.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
|
||||
*/
|
||||
cfg: Base.extend({
|
||||
format: OpenSSLFormatter
|
||||
}),
|
||||
|
||||
/**
|
||||
* Encrypts a message.
|
||||
*
|
||||
* @param {Cipher} cipher The cipher algorithm to use.
|
||||
* @param {WordArray|string} message The message to encrypt.
|
||||
* @param {WordArray} key The key.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {CipherParams} A cipher params object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
|
||||
* var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
|
||||
* var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
|
||||
*/
|
||||
encrypt: function (cipher, message, key, cfg) {
|
||||
// Apply config defaults
|
||||
cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Encrypt
|
||||
var encryptor = cipher.createEncryptor(key, cfg);
|
||||
var ciphertext = encryptor.finalize(message);
|
||||
|
||||
// Shortcut
|
||||
var cipherCfg = encryptor.cfg;
|
||||
|
||||
// Create and return serializable cipher params
|
||||
return CipherParams.create({
|
||||
ciphertext: ciphertext,
|
||||
key: key,
|
||||
iv: cipherCfg.iv,
|
||||
algorithm: cipher,
|
||||
mode: cipherCfg.mode,
|
||||
padding: cipherCfg.padding,
|
||||
blockSize: cipher.blockSize,
|
||||
formatter: cfg.format
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Decrypts serialized ciphertext.
|
||||
*
|
||||
* @param {Cipher} cipher The cipher algorithm to use.
|
||||
* @param {CipherParams|string} ciphertext The ciphertext to decrypt.
|
||||
* @param {WordArray} key The key.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {WordArray} The plaintext.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
|
||||
* var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
|
||||
*/
|
||||
decrypt: function (cipher, ciphertext, key, cfg) {
|
||||
// Apply config defaults
|
||||
cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Convert string to CipherParams
|
||||
ciphertext = this._parse(ciphertext, cfg.format);
|
||||
|
||||
// Decrypt
|
||||
var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);
|
||||
|
||||
return plaintext;
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts serialized ciphertext to CipherParams,
|
||||
* else assumed CipherParams already and returns ciphertext unchanged.
|
||||
*
|
||||
* @param {CipherParams|string} ciphertext The ciphertext.
|
||||
* @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
|
||||
*
|
||||
* @return {CipherParams} The unserialized ciphertext.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
|
||||
*/
|
||||
_parse: function (ciphertext, format) {
|
||||
if (typeof ciphertext == 'string') {
|
||||
return format.parse(ciphertext, this);
|
||||
} else {
|
||||
return ciphertext;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Key derivation function namespace.
|
||||
*/
|
||||
var C_kdf = C.kdf = {};
|
||||
|
||||
/**
|
||||
* OpenSSL key derivation function.
|
||||
*/
|
||||
var OpenSSLKdf = C_kdf.OpenSSL = {
|
||||
/**
|
||||
* Derives a key and IV from a password.
|
||||
*
|
||||
* @param {string} password The password to derive from.
|
||||
* @param {number} keySize The size in words of the key to generate.
|
||||
* @param {number} ivSize The size in words of the IV to generate.
|
||||
* @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
|
||||
*
|
||||
* @return {CipherParams} A cipher params object with the key, IV, and salt.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
|
||||
* var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
|
||||
*/
|
||||
execute: function (password, keySize, ivSize, salt) {
|
||||
// Generate random salt
|
||||
if (!salt) {
|
||||
salt = WordArray.random(64/8);
|
||||
}
|
||||
|
||||
// Derive key and IV
|
||||
var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);
|
||||
|
||||
// Separate key and IV
|
||||
var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);
|
||||
key.sigBytes = keySize * 4;
|
||||
|
||||
// Return params
|
||||
return CipherParams.create({ key: key, iv: iv, salt: salt });
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* A serializable cipher wrapper that derives the key from a password,
|
||||
* and returns ciphertext as a serializable cipher params object.
|
||||
*/
|
||||
var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
|
||||
*/
|
||||
cfg: SerializableCipher.cfg.extend({
|
||||
kdf: OpenSSLKdf
|
||||
}),
|
||||
|
||||
/**
|
||||
* Encrypts a message using a password.
|
||||
*
|
||||
* @param {Cipher} cipher The cipher algorithm to use.
|
||||
* @param {WordArray|string} message The message to encrypt.
|
||||
* @param {string} password The password.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {CipherParams} A cipher params object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
|
||||
* var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
|
||||
*/
|
||||
encrypt: function (cipher, message, password, cfg) {
|
||||
// Apply config defaults
|
||||
cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Derive key and other params
|
||||
var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);
|
||||
|
||||
// Add IV to config
|
||||
cfg.iv = derivedParams.iv;
|
||||
|
||||
// Encrypt
|
||||
var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);
|
||||
|
||||
// Mix in derived params
|
||||
ciphertext.mixIn(derivedParams);
|
||||
|
||||
return ciphertext;
|
||||
},
|
||||
|
||||
/**
|
||||
* Decrypts serialized ciphertext using a password.
|
||||
*
|
||||
* @param {Cipher} cipher The cipher algorithm to use.
|
||||
* @param {CipherParams|string} ciphertext The ciphertext to decrypt.
|
||||
* @param {string} password The password.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {WordArray} The plaintext.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
|
||||
* var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
|
||||
*/
|
||||
decrypt: function (cipher, ciphertext, password, cfg) {
|
||||
// Apply config defaults
|
||||
cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Convert string to CipherParams
|
||||
ciphertext = this._parse(ciphertext, cfg.format);
|
||||
|
||||
// Derive key and other params
|
||||
var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);
|
||||
|
||||
// Add IV to config
|
||||
cfg.iv = derivedParams.iv;
|
||||
|
||||
// Decrypt
|
||||
var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);
|
||||
|
||||
return plaintext;
|
||||
}
|
||||
});
|
||||
}());
|
||||
|
||||
|
||||
/**
|
||||
* Cipher Feedback block mode.
|
||||
*/
|
||||
CryptoJS.mode.CFB = (function () {
|
||||
var CFB = CryptoJS.lib.BlockCipherMode.extend();
|
||||
|
||||
CFB.Encryptor = CFB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher;
|
||||
var blockSize = cipher.blockSize;
|
||||
|
||||
generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
|
||||
|
||||
// Remember this block to use with next block
|
||||
this._prevBlock = words.slice(offset, offset + blockSize);
|
||||
}
|
||||
});
|
||||
|
||||
CFB.Decryptor = CFB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher;
|
||||
var blockSize = cipher.blockSize;
|
||||
|
||||
// Remember this block to use with next block
|
||||
var thisBlock = words.slice(offset, offset + blockSize);
|
||||
|
||||
generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
|
||||
|
||||
// This block becomes the previous block
|
||||
this._prevBlock = thisBlock;
|
||||
}
|
||||
});
|
||||
|
||||
function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {
|
||||
var keystream;
|
||||
|
||||
// Shortcut
|
||||
var iv = this._iv;
|
||||
|
||||
// Generate keystream
|
||||
if (iv) {
|
||||
keystream = iv.slice(0);
|
||||
|
||||
// Remove IV for subsequent blocks
|
||||
this._iv = undefined;
|
||||
} else {
|
||||
keystream = this._prevBlock;
|
||||
}
|
||||
cipher.encryptBlock(keystream, 0);
|
||||
|
||||
// Encrypt
|
||||
for (var i = 0; i < blockSize; i++) {
|
||||
words[offset + i] ^= keystream[i];
|
||||
}
|
||||
}
|
||||
|
||||
return CFB;
|
||||
}());
|
||||
|
||||
|
||||
/**
|
||||
* Counter block mode.
|
||||
*/
|
||||
CryptoJS.mode.CTR = (function () {
|
||||
var CTR = CryptoJS.lib.BlockCipherMode.extend();
|
||||
|
||||
var Encryptor = CTR.Encryptor = CTR.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher
|
||||
var blockSize = cipher.blockSize;
|
||||
var iv = this._iv;
|
||||
var counter = this._counter;
|
||||
|
||||
// Generate keystream
|
||||
if (iv) {
|
||||
counter = this._counter = iv.slice(0);
|
||||
|
||||
// Remove IV for subsequent blocks
|
||||
this._iv = undefined;
|
||||
}
|
||||
var keystream = counter.slice(0);
|
||||
cipher.encryptBlock(keystream, 0);
|
||||
|
||||
// Increment counter
|
||||
counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0
|
||||
|
||||
// Encrypt
|
||||
for (var i = 0; i < blockSize; i++) {
|
||||
words[offset + i] ^= keystream[i];
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
CTR.Decryptor = Encryptor;
|
||||
|
||||
return CTR;
|
||||
}());
|
||||
|
||||
|
||||
/** @preserve
|
||||
* Counter block mode compatible with Dr Brian Gladman fileenc.c
|
||||
* derived from CryptoJS.mode.CTR
|
||||
* Jan Hruby jhruby.web@gmail.com
|
||||
*/
|
||||
CryptoJS.mode.CTRGladman = (function () {
|
||||
var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();
|
||||
|
||||
function incWord(word)
|
||||
{
|
||||
if (((word >> 24) & 0xff) === 0xff) { //overflow
|
||||
var b1 = (word >> 16)&0xff;
|
||||
var b2 = (word >> 8)&0xff;
|
||||
var b3 = word & 0xff;
|
||||
|
||||
if (b1 === 0xff) // overflow b1
|
||||
{
|
||||
b1 = 0;
|
||||
if (b2 === 0xff)
|
||||
{
|
||||
b2 = 0;
|
||||
if (b3 === 0xff)
|
||||
{
|
||||
b3 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
++b3;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
++b2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
++b1;
|
||||
}
|
||||
|
||||
word = 0;
|
||||
word += (b1 << 16);
|
||||
word += (b2 << 8);
|
||||
word += b3;
|
||||
}
|
||||
else
|
||||
{
|
||||
word += (0x01 << 24);
|
||||
}
|
||||
return word;
|
||||
}
|
||||
|
||||
function incCounter(counter)
|
||||
{
|
||||
if ((counter[0] = incWord(counter[0])) === 0)
|
||||
{
|
||||
// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8
|
||||
counter[1] = incWord(counter[1]);
|
||||
}
|
||||
return counter;
|
||||
}
|
||||
|
||||
var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher
|
||||
var blockSize = cipher.blockSize;
|
||||
var iv = this._iv;
|
||||
var counter = this._counter;
|
||||
|
||||
// Generate keystream
|
||||
if (iv) {
|
||||
counter = this._counter = iv.slice(0);
|
||||
|
||||
// Remove IV for subsequent blocks
|
||||
this._iv = undefined;
|
||||
}
|
||||
|
||||
incCounter(counter);
|
||||
|
||||
var keystream = counter.slice(0);
|
||||
cipher.encryptBlock(keystream, 0);
|
||||
|
||||
// Encrypt
|
||||
for (var i = 0; i < blockSize; i++) {
|
||||
words[offset + i] ^= keystream[i];
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
CTRGladman.Decryptor = Encryptor;
|
||||
|
||||
return CTRGladman;
|
||||
}());
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Output Feedback block mode.
|
||||
*/
|
||||
CryptoJS.mode.OFB = (function () {
|
||||
var OFB = CryptoJS.lib.BlockCipherMode.extend();
|
||||
|
||||
var Encryptor = OFB.Encryptor = OFB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher
|
||||
var blockSize = cipher.blockSize;
|
||||
var iv = this._iv;
|
||||
var keystream = this._keystream;
|
||||
|
||||
// Generate keystream
|
||||
if (iv) {
|
||||
keystream = this._keystream = iv.slice(0);
|
||||
|
||||
// Remove IV for subsequent blocks
|
||||
this._iv = undefined;
|
||||
}
|
||||
cipher.encryptBlock(keystream, 0);
|
||||
|
||||
// Encrypt
|
||||
for (var i = 0; i < blockSize; i++) {
|
||||
words[offset + i] ^= keystream[i];
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
OFB.Decryptor = Encryptor;
|
||||
|
||||
return OFB;
|
||||
}());
|
||||
|
||||
|
||||
/**
|
||||
* Electronic Codebook block mode.
|
||||
*/
|
||||
CryptoJS.mode.ECB = (function () {
|
||||
var ECB = CryptoJS.lib.BlockCipherMode.extend();
|
||||
|
||||
ECB.Encryptor = ECB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
this._cipher.encryptBlock(words, offset);
|
||||
}
|
||||
});
|
||||
|
||||
ECB.Decryptor = ECB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
this._cipher.decryptBlock(words, offset);
|
||||
}
|
||||
});
|
||||
|
||||
return ECB;
|
||||
}());
|
||||
|
||||
|
||||
/**
|
||||
* ANSI X.923 padding strategy.
|
||||
*/
|
||||
CryptoJS.pad.AnsiX923 = {
|
||||
pad: function (data, blockSize) {
|
||||
// Shortcuts
|
||||
var dataSigBytes = data.sigBytes;
|
||||
var blockSizeBytes = blockSize * 4;
|
||||
|
||||
// Count padding bytes
|
||||
var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
|
||||
|
||||
// Compute last byte position
|
||||
var lastBytePos = dataSigBytes + nPaddingBytes - 1;
|
||||
|
||||
// Pad
|
||||
data.clamp();
|
||||
data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);
|
||||
data.sigBytes += nPaddingBytes;
|
||||
},
|
||||
|
||||
unpad: function (data) {
|
||||
// Get number of padding bytes from last byte
|
||||
var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
|
||||
|
||||
// Remove padding
|
||||
data.sigBytes -= nPaddingBytes;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* ISO 10126 padding strategy.
|
||||
*/
|
||||
CryptoJS.pad.Iso10126 = {
|
||||
pad: function (data, blockSize) {
|
||||
// Shortcut
|
||||
var blockSizeBytes = blockSize * 4;
|
||||
|
||||
// Count padding bytes
|
||||
var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
|
||||
|
||||
// Pad
|
||||
data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).
|
||||
concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));
|
||||
},
|
||||
|
||||
unpad: function (data) {
|
||||
// Get number of padding bytes from last byte
|
||||
var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
|
||||
|
||||
// Remove padding
|
||||
data.sigBytes -= nPaddingBytes;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* ISO/IEC 9797-1 Padding Method 2.
|
||||
*/
|
||||
CryptoJS.pad.Iso97971 = {
|
||||
pad: function (data, blockSize) {
|
||||
// Add 0x80 byte
|
||||
data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));
|
||||
|
||||
// Zero pad the rest
|
||||
CryptoJS.pad.ZeroPadding.pad(data, blockSize);
|
||||
},
|
||||
|
||||
unpad: function (data) {
|
||||
// Remove zero padding
|
||||
CryptoJS.pad.ZeroPadding.unpad(data);
|
||||
|
||||
// Remove one more byte -- the 0x80 byte
|
||||
data.sigBytes--;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Zero padding strategy.
|
||||
*/
|
||||
CryptoJS.pad.ZeroPadding = {
|
||||
pad: function (data, blockSize) {
|
||||
// Shortcut
|
||||
var blockSizeBytes = blockSize * 4;
|
||||
|
||||
// Pad
|
||||
data.clamp();
|
||||
data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);
|
||||
},
|
||||
|
||||
unpad: function (data) {
|
||||
// Shortcut
|
||||
var dataWords = data.words;
|
||||
|
||||
// Unpad
|
||||
var i = data.sigBytes - 1;
|
||||
for (var i = data.sigBytes - 1; i >= 0; i--) {
|
||||
if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {
|
||||
data.sigBytes = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* A noop padding strategy.
|
||||
*/
|
||||
CryptoJS.pad.NoPadding = {
|
||||
pad: function () {
|
||||
},
|
||||
|
||||
unpad: function () {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
(function (undefined) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var CipherParams = C_lib.CipherParams;
|
||||
var C_enc = C.enc;
|
||||
var Hex = C_enc.Hex;
|
||||
var C_format = C.format;
|
||||
|
||||
var HexFormatter = C_format.Hex = {
|
||||
/**
|
||||
* Converts the ciphertext of a cipher params object to a hexadecimally encoded string.
|
||||
*
|
||||
* @param {CipherParams} cipherParams The cipher params object.
|
||||
*
|
||||
* @return {string} The hexadecimally encoded string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hexString = CryptoJS.format.Hex.stringify(cipherParams);
|
||||
*/
|
||||
stringify: function (cipherParams) {
|
||||
return cipherParams.ciphertext.toString(Hex);
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a hexadecimally encoded ciphertext string to a cipher params object.
|
||||
*
|
||||
* @param {string} input The hexadecimally encoded string.
|
||||
*
|
||||
* @return {CipherParams} The cipher params object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipherParams = CryptoJS.format.Hex.parse(hexString);
|
||||
*/
|
||||
parse: function (input) {
|
||||
var ciphertext = Hex.parse(input);
|
||||
return CipherParams.create({ ciphertext: ciphertext });
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var BlockCipher = C_lib.BlockCipher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Lookup tables
|
||||
var SBOX = [];
|
||||
var INV_SBOX = [];
|
||||
var SUB_MIX_0 = [];
|
||||
var SUB_MIX_1 = [];
|
||||
var SUB_MIX_2 = [];
|
||||
var SUB_MIX_3 = [];
|
||||
var INV_SUB_MIX_0 = [];
|
||||
var INV_SUB_MIX_1 = [];
|
||||
var INV_SUB_MIX_2 = [];
|
||||
var INV_SUB_MIX_3 = [];
|
||||
|
||||
// Compute lookup tables
|
||||
(function () {
|
||||
// Compute double table
|
||||
var d = [];
|
||||
for (var i = 0; i < 256; i++) {
|
||||
if (i < 128) {
|
||||
d[i] = i << 1;
|
||||
} else {
|
||||
d[i] = (i << 1) ^ 0x11b;
|
||||
}
|
||||
}
|
||||
|
||||
// Walk GF(2^8)
|
||||
var x = 0;
|
||||
var xi = 0;
|
||||
for (var i = 0; i < 256; i++) {
|
||||
// Compute sbox
|
||||
var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);
|
||||
sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;
|
||||
SBOX[x] = sx;
|
||||
INV_SBOX[sx] = x;
|
||||
|
||||
// Compute multiplication
|
||||
var x2 = d[x];
|
||||
var x4 = d[x2];
|
||||
var x8 = d[x4];
|
||||
|
||||
// Compute sub bytes, mix columns tables
|
||||
var t = (d[sx] * 0x101) ^ (sx * 0x1010100);
|
||||
SUB_MIX_0[x] = (t << 24) | (t >>> 8);
|
||||
SUB_MIX_1[x] = (t << 16) | (t >>> 16);
|
||||
SUB_MIX_2[x] = (t << 8) | (t >>> 24);
|
||||
SUB_MIX_3[x] = t;
|
||||
|
||||
// Compute inv sub bytes, inv mix columns tables
|
||||
var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);
|
||||
INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);
|
||||
INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);
|
||||
INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);
|
||||
INV_SUB_MIX_3[sx] = t;
|
||||
|
||||
// Compute next counter
|
||||
if (!x) {
|
||||
x = xi = 1;
|
||||
} else {
|
||||
x = x2 ^ d[d[d[x8 ^ x2]]];
|
||||
xi ^= d[d[xi]];
|
||||
}
|
||||
}
|
||||
}());
|
||||
|
||||
// Precomputed Rcon lookup
|
||||
var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];
|
||||
|
||||
/**
|
||||
* AES block cipher algorithm.
|
||||
*/
|
||||
var AES = C_algo.AES = BlockCipher.extend({
|
||||
_doReset: function () {
|
||||
var t;
|
||||
|
||||
// Skip reset of nRounds has been set before and key did not change
|
||||
if (this._nRounds && this._keyPriorReset === this._key) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Shortcuts
|
||||
var key = this._keyPriorReset = this._key;
|
||||
var keyWords = key.words;
|
||||
var keySize = key.sigBytes / 4;
|
||||
|
||||
// Compute number of rounds
|
||||
var nRounds = this._nRounds = keySize + 6;
|
||||
|
||||
// Compute number of key schedule rows
|
||||
var ksRows = (nRounds + 1) * 4;
|
||||
|
||||
// Compute key schedule
|
||||
var keySchedule = this._keySchedule = [];
|
||||
for (var ksRow = 0; ksRow < ksRows; ksRow++) {
|
||||
if (ksRow < keySize) {
|
||||
keySchedule[ksRow] = keyWords[ksRow];
|
||||
} else {
|
||||
t = keySchedule[ksRow - 1];
|
||||
|
||||
if (!(ksRow % keySize)) {
|
||||
// Rot word
|
||||
t = (t << 8) | (t >>> 24);
|
||||
|
||||
// Sub word
|
||||
t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
|
||||
|
||||
// Mix Rcon
|
||||
t ^= RCON[(ksRow / keySize) | 0] << 24;
|
||||
} else if (keySize > 6 && ksRow % keySize == 4) {
|
||||
// Sub word
|
||||
t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
|
||||
}
|
||||
|
||||
keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;
|
||||
}
|
||||
}
|
||||
|
||||
// Compute inv key schedule
|
||||
var invKeySchedule = this._invKeySchedule = [];
|
||||
for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {
|
||||
var ksRow = ksRows - invKsRow;
|
||||
|
||||
if (invKsRow % 4) {
|
||||
var t = keySchedule[ksRow];
|
||||
} else {
|
||||
var t = keySchedule[ksRow - 4];
|
||||
}
|
||||
|
||||
if (invKsRow < 4 || ksRow <= 4) {
|
||||
invKeySchedule[invKsRow] = t;
|
||||
} else {
|
||||
invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^
|
||||
INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
encryptBlock: function (M, offset) {
|
||||
this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);
|
||||
},
|
||||
|
||||
decryptBlock: function (M, offset) {
|
||||
// Swap 2nd and 4th rows
|
||||
var t = M[offset + 1];
|
||||
M[offset + 1] = M[offset + 3];
|
||||
M[offset + 3] = t;
|
||||
|
||||
this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);
|
||||
|
||||
// Inv swap 2nd and 4th rows
|
||||
var t = M[offset + 1];
|
||||
M[offset + 1] = M[offset + 3];
|
||||
M[offset + 3] = t;
|
||||
},
|
||||
|
||||
_doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {
|
||||
// Shortcut
|
||||
var nRounds = this._nRounds;
|
||||
|
||||
// Get input, add round key
|
||||
var s0 = M[offset] ^ keySchedule[0];
|
||||
var s1 = M[offset + 1] ^ keySchedule[1];
|
||||
var s2 = M[offset + 2] ^ keySchedule[2];
|
||||
var s3 = M[offset + 3] ^ keySchedule[3];
|
||||
|
||||
// Key schedule row counter
|
||||
var ksRow = 4;
|
||||
|
||||
// Rounds
|
||||
for (var round = 1; round < nRounds; round++) {
|
||||
// Shift rows, sub bytes, mix columns, add round key
|
||||
var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];
|
||||
var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];
|
||||
var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];
|
||||
var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];
|
||||
|
||||
// Update state
|
||||
s0 = t0;
|
||||
s1 = t1;
|
||||
s2 = t2;
|
||||
s3 = t3;
|
||||
}
|
||||
|
||||
// Shift rows, sub bytes, add round key
|
||||
var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];
|
||||
var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];
|
||||
var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];
|
||||
var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];
|
||||
|
||||
// Set output
|
||||
M[offset] = t0;
|
||||
M[offset + 1] = t1;
|
||||
M[offset + 2] = t2;
|
||||
M[offset + 3] = t3;
|
||||
},
|
||||
|
||||
keySize: 256/32
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.AES = BlockCipher._createHelper(AES);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var BlockCipher = C_lib.BlockCipher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Permuted Choice 1 constants
|
||||
var PC1 = [
|
||||
57, 49, 41, 33, 25, 17, 9, 1,
|
||||
58, 50, 42, 34, 26, 18, 10, 2,
|
||||
59, 51, 43, 35, 27, 19, 11, 3,
|
||||
60, 52, 44, 36, 63, 55, 47, 39,
|
||||
31, 23, 15, 7, 62, 54, 46, 38,
|
||||
30, 22, 14, 6, 61, 53, 45, 37,
|
||||
29, 21, 13, 5, 28, 20, 12, 4
|
||||
];
|
||||
|
||||
// Permuted Choice 2 constants
|
||||
var PC2 = [
|
||||
14, 17, 11, 24, 1, 5,
|
||||
3, 28, 15, 6, 21, 10,
|
||||
23, 19, 12, 4, 26, 8,
|
||||
16, 7, 27, 20, 13, 2,
|
||||
41, 52, 31, 37, 47, 55,
|
||||
30, 40, 51, 45, 33, 48,
|
||||
44, 49, 39, 56, 34, 53,
|
||||
46, 42, 50, 36, 29, 32
|
||||
];
|
||||
|
||||
// Cumulative bit shift constants
|
||||
var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
|
||||
|
||||
// SBOXes and round permutation constants
|
||||
var SBOX_P = [
|
||||
{
|
||||
0x0: 0x808200,
|
||||
0x10000000: 0x8000,
|
||||
0x20000000: 0x808002,
|
||||
0x30000000: 0x2,
|
||||
0x40000000: 0x200,
|
||||
0x50000000: 0x808202,
|
||||
0x60000000: 0x800202,
|
||||
0x70000000: 0x800000,
|
||||
0x80000000: 0x202,
|
||||
0x90000000: 0x800200,
|
||||
0xa0000000: 0x8200,
|
||||
0xb0000000: 0x808000,
|
||||
0xc0000000: 0x8002,
|
||||
0xd0000000: 0x800002,
|
||||
0xe0000000: 0x0,
|
||||
0xf0000000: 0x8202,
|
||||
0x8000000: 0x0,
|
||||
0x18000000: 0x808202,
|
||||
0x28000000: 0x8202,
|
||||
0x38000000: 0x8000,
|
||||
0x48000000: 0x808200,
|
||||
0x58000000: 0x200,
|
||||
0x68000000: 0x808002,
|
||||
0x78000000: 0x2,
|
||||
0x88000000: 0x800200,
|
||||
0x98000000: 0x8200,
|
||||
0xa8000000: 0x808000,
|
||||
0xb8000000: 0x800202,
|
||||
0xc8000000: 0x800002,
|
||||
0xd8000000: 0x8002,
|
||||
0xe8000000: 0x202,
|
||||
0xf8000000: 0x800000,
|
||||
0x1: 0x8000,
|
||||
0x10000001: 0x2,
|
||||
0x20000001: 0x808200,
|
||||
0x30000001: 0x800000,
|
||||
0x40000001: 0x808002,
|
||||
0x50000001: 0x8200,
|
||||
0x60000001: 0x200,
|
||||
0x70000001: 0x800202,
|
||||
0x80000001: 0x808202,
|
||||
0x90000001: 0x808000,
|
||||
0xa0000001: 0x800002,
|
||||
0xb0000001: 0x8202,
|
||||
0xc0000001: 0x202,
|
||||
0xd0000001: 0x800200,
|
||||
0xe0000001: 0x8002,
|
||||
0xf0000001: 0x0,
|
||||
0x8000001: 0x808202,
|
||||
0x18000001: 0x808000,
|
||||
0x28000001: 0x800000,
|
||||
0x38000001: 0x200,
|
||||
0x48000001: 0x8000,
|
||||
0x58000001: 0x800002,
|
||||
0x68000001: 0x2,
|
||||
0x78000001: 0x8202,
|
||||
0x88000001: 0x8002,
|
||||
0x98000001: 0x800202,
|
||||
0xa8000001: 0x202,
|
||||
0xb8000001: 0x808200,
|
||||
0xc8000001: 0x800200,
|
||||
0xd8000001: 0x0,
|
||||
0xe8000001: 0x8200,
|
||||
0xf8000001: 0x808002
|
||||
},
|
||||
{
|
||||
0x0: 0x40084010,
|
||||
0x1000000: 0x4000,
|
||||
0x2000000: 0x80000,
|
||||
0x3000000: 0x40080010,
|
||||
0x4000000: 0x40000010,
|
||||
0x5000000: 0x40084000,
|
||||
0x6000000: 0x40004000,
|
||||
0x7000000: 0x10,
|
||||
0x8000000: 0x84000,
|
||||
0x9000000: 0x40004010,
|
||||
0xa000000: 0x40000000,
|
||||
0xb000000: 0x84010,
|
||||
0xc000000: 0x80010,
|
||||
0xd000000: 0x0,
|
||||
0xe000000: 0x4010,
|
||||
0xf000000: 0x40080000,
|
||||
0x800000: 0x40004000,
|
||||
0x1800000: 0x84010,
|
||||
0x2800000: 0x10,
|
||||
0x3800000: 0x40004010,
|
||||
0x4800000: 0x40084010,
|
||||
0x5800000: 0x40000000,
|
||||
0x6800000: 0x80000,
|
||||
0x7800000: 0x40080010,
|
||||
0x8800000: 0x80010,
|
||||
0x9800000: 0x0,
|
||||
0xa800000: 0x4000,
|
||||
0xb800000: 0x40080000,
|
||||
0xc800000: 0x40000010,
|
||||
0xd800000: 0x84000,
|
||||
0xe800000: 0x40084000,
|
||||
0xf800000: 0x4010,
|
||||
0x10000000: 0x0,
|
||||
0x11000000: 0x40080010,
|
||||
0x12000000: 0x40004010,
|
||||
0x13000000: 0x40084000,
|
||||
0x14000000: 0x40080000,
|
||||
0x15000000: 0x10,
|
||||
0x16000000: 0x84010,
|
||||
0x17000000: 0x4000,
|
||||
0x18000000: 0x4010,
|
||||
0x19000000: 0x80000,
|
||||
0x1a000000: 0x80010,
|
||||
0x1b000000: 0x40000010,
|
||||
0x1c000000: 0x84000,
|
||||
0x1d000000: 0x40004000,
|
||||
0x1e000000: 0x40000000,
|
||||
0x1f000000: 0x40084010,
|
||||
0x10800000: 0x84010,
|
||||
0x11800000: 0x80000,
|
||||
0x12800000: 0x40080000,
|
||||
0x13800000: 0x4000,
|
||||
0x14800000: 0x40004000,
|
||||
0x15800000: 0x40084010,
|
||||
0x16800000: 0x10,
|
||||
0x17800000: 0x40000000,
|
||||
0x18800000: 0x40084000,
|
||||
0x19800000: 0x40000010,
|
||||
0x1a800000: 0x40004010,
|
||||
0x1b800000: 0x80010,
|
||||
0x1c800000: 0x0,
|
||||
0x1d800000: 0x4010,
|
||||
0x1e800000: 0x40080010,
|
||||
0x1f800000: 0x84000
|
||||
},
|
||||
{
|
||||
0x0: 0x104,
|
||||
0x100000: 0x0,
|
||||
0x200000: 0x4000100,
|
||||
0x300000: 0x10104,
|
||||
0x400000: 0x10004,
|
||||
0x500000: 0x4000004,
|
||||
0x600000: 0x4010104,
|
||||
0x700000: 0x4010000,
|
||||
0x800000: 0x4000000,
|
||||
0x900000: 0x4010100,
|
||||
0xa00000: 0x10100,
|
||||
0xb00000: 0x4010004,
|
||||
0xc00000: 0x4000104,
|
||||
0xd00000: 0x10000,
|
||||
0xe00000: 0x4,
|
||||
0xf00000: 0x100,
|
||||
0x80000: 0x4010100,
|
||||
0x180000: 0x4010004,
|
||||
0x280000: 0x0,
|
||||
0x380000: 0x4000100,
|
||||
0x480000: 0x4000004,
|
||||
0x580000: 0x10000,
|
||||
0x680000: 0x10004,
|
||||
0x780000: 0x104,
|
||||
0x880000: 0x4,
|
||||
0x980000: 0x100,
|
||||
0xa80000: 0x4010000,
|
||||
0xb80000: 0x10104,
|
||||
0xc80000: 0x10100,
|
||||
0xd80000: 0x4000104,
|
||||
0xe80000: 0x4010104,
|
||||
0xf80000: 0x4000000,
|
||||
0x1000000: 0x4010100,
|
||||
0x1100000: 0x10004,
|
||||
0x1200000: 0x10000,
|
||||
0x1300000: 0x4000100,
|
||||
0x1400000: 0x100,
|
||||
0x1500000: 0x4010104,
|
||||
0x1600000: 0x4000004,
|
||||
0x1700000: 0x0,
|
||||
0x1800000: 0x4000104,
|
||||
0x1900000: 0x4000000,
|
||||
0x1a00000: 0x4,
|
||||
0x1b00000: 0x10100,
|
||||
0x1c00000: 0x4010000,
|
||||
0x1d00000: 0x104,
|
||||
0x1e00000: 0x10104,
|
||||
0x1f00000: 0x4010004,
|
||||
0x1080000: 0x4000000,
|
||||
0x1180000: 0x104,
|
||||
0x1280000: 0x4010100,
|
||||
0x1380000: 0x0,
|
||||
0x1480000: 0x10004,
|
||||
0x1580000: 0x4000100,
|
||||
0x1680000: 0x100,
|
||||
0x1780000: 0x4010004,
|
||||
0x1880000: 0x10000,
|
||||
0x1980000: 0x4010104,
|
||||
0x1a80000: 0x10104,
|
||||
0x1b80000: 0x4000004,
|
||||
0x1c80000: 0x4000104,
|
||||
0x1d80000: 0x4010000,
|
||||
0x1e80000: 0x4,
|
||||
0x1f80000: 0x10100
|
||||
},
|
||||
{
|
||||
0x0: 0x80401000,
|
||||
0x10000: 0x80001040,
|
||||
0x20000: 0x401040,
|
||||
0x30000: 0x80400000,
|
||||
0x40000: 0x0,
|
||||
0x50000: 0x401000,
|
||||
0x60000: 0x80000040,
|
||||
0x70000: 0x400040,
|
||||
0x80000: 0x80000000,
|
||||
0x90000: 0x400000,
|
||||
0xa0000: 0x40,
|
||||
0xb0000: 0x80001000,
|
||||
0xc0000: 0x80400040,
|
||||
0xd0000: 0x1040,
|
||||
0xe0000: 0x1000,
|
||||
0xf0000: 0x80401040,
|
||||
0x8000: 0x80001040,
|
||||
0x18000: 0x40,
|
||||
0x28000: 0x80400040,
|
||||
0x38000: 0x80001000,
|
||||
0x48000: 0x401000,
|
||||
0x58000: 0x80401040,
|
||||
0x68000: 0x0,
|
||||
0x78000: 0x80400000,
|
||||
0x88000: 0x1000,
|
||||
0x98000: 0x80401000,
|
||||
0xa8000: 0x400000,
|
||||
0xb8000: 0x1040,
|
||||
0xc8000: 0x80000000,
|
||||
0xd8000: 0x400040,
|
||||
0xe8000: 0x401040,
|
||||
0xf8000: 0x80000040,
|
||||
0x100000: 0x400040,
|
||||
0x110000: 0x401000,
|
||||
0x120000: 0x80000040,
|
||||
0x130000: 0x0,
|
||||
0x140000: 0x1040,
|
||||
0x150000: 0x80400040,
|
||||
0x160000: 0x80401000,
|
||||
0x170000: 0x80001040,
|
||||
0x180000: 0x80401040,
|
||||
0x190000: 0x80000000,
|
||||
0x1a0000: 0x80400000,
|
||||
0x1b0000: 0x401040,
|
||||
0x1c0000: 0x80001000,
|
||||
0x1d0000: 0x400000,
|
||||
0x1e0000: 0x40,
|
||||
0x1f0000: 0x1000,
|
||||
0x108000: 0x80400000,
|
||||
0x118000: 0x80401040,
|
||||
0x128000: 0x0,
|
||||
0x138000: 0x401000,
|
||||
0x148000: 0x400040,
|
||||
0x158000: 0x80000000,
|
||||
0x168000: 0x80001040,
|
||||
0x178000: 0x40,
|
||||
0x188000: 0x80000040,
|
||||
0x198000: 0x1000,
|
||||
0x1a8000: 0x80001000,
|
||||
0x1b8000: 0x80400040,
|
||||
0x1c8000: 0x1040,
|
||||
0x1d8000: 0x80401000,
|
||||
0x1e8000: 0x400000,
|
||||
0x1f8000: 0x401040
|
||||
},
|
||||
{
|
||||
0x0: 0x80,
|
||||
0x1000: 0x1040000,
|
||||
0x2000: 0x40000,
|
||||
0x3000: 0x20000000,
|
||||
0x4000: 0x20040080,
|
||||
0x5000: 0x1000080,
|
||||
0x6000: 0x21000080,
|
||||
0x7000: 0x40080,
|
||||
0x8000: 0x1000000,
|
||||
0x9000: 0x20040000,
|
||||
0xa000: 0x20000080,
|
||||
0xb000: 0x21040080,
|
||||
0xc000: 0x21040000,
|
||||
0xd000: 0x0,
|
||||
0xe000: 0x1040080,
|
||||
0xf000: 0x21000000,
|
||||
0x800: 0x1040080,
|
||||
0x1800: 0x21000080,
|
||||
0x2800: 0x80,
|
||||
0x3800: 0x1040000,
|
||||
0x4800: 0x40000,
|
||||
0x5800: 0x20040080,
|
||||
0x6800: 0x21040000,
|
||||
0x7800: 0x20000000,
|
||||
0x8800: 0x20040000,
|
||||
0x9800: 0x0,
|
||||
0xa800: 0x21040080,
|
||||
0xb800: 0x1000080,
|
||||
0xc800: 0x20000080,
|
||||
0xd800: 0x21000000,
|
||||
0xe800: 0x1000000,
|
||||
0xf800: 0x40080,
|
||||
0x10000: 0x40000,
|
||||
0x11000: 0x80,
|
||||
0x12000: 0x20000000,
|
||||
0x13000: 0x21000080,
|
||||
0x14000: 0x1000080,
|
||||
0x15000: 0x21040000,
|
||||
0x16000: 0x20040080,
|
||||
0x17000: 0x1000000,
|
||||
0x18000: 0x21040080,
|
||||
0x19000: 0x21000000,
|
||||
0x1a000: 0x1040000,
|
||||
0x1b000: 0x20040000,
|
||||
0x1c000: 0x40080,
|
||||
0x1d000: 0x20000080,
|
||||
0x1e000: 0x0,
|
||||
0x1f000: 0x1040080,
|
||||
0x10800: 0x21000080,
|
||||
0x11800: 0x1000000,
|
||||
0x12800: 0x1040000,
|
||||
0x13800: 0x20040080,
|
||||
0x14800: 0x20000000,
|
||||
0x15800: 0x1040080,
|
||||
0x16800: 0x80,
|
||||
0x17800: 0x21040000,
|
||||
0x18800: 0x40080,
|
||||
0x19800: 0x21040080,
|
||||
0x1a800: 0x0,
|
||||
0x1b800: 0x21000000,
|
||||
0x1c800: 0x1000080,
|
||||
0x1d800: 0x40000,
|
||||
0x1e800: 0x20040000,
|
||||
0x1f800: 0x20000080
|
||||
},
|
||||
{
|
||||
0x0: 0x10000008,
|
||||
0x100: 0x2000,
|
||||
0x200: 0x10200000,
|
||||
0x300: 0x10202008,
|
||||
0x400: 0x10002000,
|
||||
0x500: 0x200000,
|
||||
0x600: 0x200008,
|
||||
0x700: 0x10000000,
|
||||
0x800: 0x0,
|
||||
0x900: 0x10002008,
|
||||
0xa00: 0x202000,
|
||||
0xb00: 0x8,
|
||||
0xc00: 0x10200008,
|
||||
0xd00: 0x202008,
|
||||
0xe00: 0x2008,
|
||||
0xf00: 0x10202000,
|
||||
0x80: 0x10200000,
|
||||
0x180: 0x10202008,
|
||||
0x280: 0x8,
|
||||
0x380: 0x200000,
|
||||
0x480: 0x202008,
|
||||
0x580: 0x10000008,
|
||||
0x680: 0x10002000,
|
||||
0x780: 0x2008,
|
||||
0x880: 0x200008,
|
||||
0x980: 0x2000,
|
||||
0xa80: 0x10002008,
|
||||
0xb80: 0x10200008,
|
||||
0xc80: 0x0,
|
||||
0xd80: 0x10202000,
|
||||
0xe80: 0x202000,
|
||||
0xf80: 0x10000000,
|
||||
0x1000: 0x10002000,
|
||||
0x1100: 0x10200008,
|
||||
0x1200: 0x10202008,
|
||||
0x1300: 0x2008,
|
||||
0x1400: 0x200000,
|
||||
0x1500: 0x10000000,
|
||||
0x1600: 0x10000008,
|
||||
0x1700: 0x202000,
|
||||
0x1800: 0x202008,
|
||||
0x1900: 0x0,
|
||||
0x1a00: 0x8,
|
||||
0x1b00: 0x10200000,
|
||||
0x1c00: 0x2000,
|
||||
0x1d00: 0x10002008,
|
||||
0x1e00: 0x10202000,
|
||||
0x1f00: 0x200008,
|
||||
0x1080: 0x8,
|
||||
0x1180: 0x202000,
|
||||
0x1280: 0x200000,
|
||||
0x1380: 0x10000008,
|
||||
0x1480: 0x10002000,
|
||||
0x1580: 0x2008,
|
||||
0x1680: 0x10202008,
|
||||
0x1780: 0x10200000,
|
||||
0x1880: 0x10202000,
|
||||
0x1980: 0x10200008,
|
||||
0x1a80: 0x2000,
|
||||
0x1b80: 0x202008,
|
||||
0x1c80: 0x200008,
|
||||
0x1d80: 0x0,
|
||||
0x1e80: 0x10000000,
|
||||
0x1f80: 0x10002008
|
||||
},
|
||||
{
|
||||
0x0: 0x100000,
|
||||
0x10: 0x2000401,
|
||||
0x20: 0x400,
|
||||
0x30: 0x100401,
|
||||
0x40: 0x2100401,
|
||||
0x50: 0x0,
|
||||
0x60: 0x1,
|
||||
0x70: 0x2100001,
|
||||
0x80: 0x2000400,
|
||||
0x90: 0x100001,
|
||||
0xa0: 0x2000001,
|
||||
0xb0: 0x2100400,
|
||||
0xc0: 0x2100000,
|
||||
0xd0: 0x401,
|
||||
0xe0: 0x100400,
|
||||
0xf0: 0x2000000,
|
||||
0x8: 0x2100001,
|
||||
0x18: 0x0,
|
||||
0x28: 0x2000401,
|
||||
0x38: 0x2100400,
|
||||
0x48: 0x100000,
|
||||
0x58: 0x2000001,
|
||||
0x68: 0x2000000,
|
||||
0x78: 0x401,
|
||||
0x88: 0x100401,
|
||||
0x98: 0x2000400,
|
||||
0xa8: 0x2100000,
|
||||
0xb8: 0x100001,
|
||||
0xc8: 0x400,
|
||||
0xd8: 0x2100401,
|
||||
0xe8: 0x1,
|
||||
0xf8: 0x100400,
|
||||
0x100: 0x2000000,
|
||||
0x110: 0x100000,
|
||||
0x120: 0x2000401,
|
||||
0x130: 0x2100001,
|
||||
0x140: 0x100001,
|
||||
0x150: 0x2000400,
|
||||
0x160: 0x2100400,
|
||||
0x170: 0x100401,
|
||||
0x180: 0x401,
|
||||
0x190: 0x2100401,
|
||||
0x1a0: 0x100400,
|
||||
0x1b0: 0x1,
|
||||
0x1c0: 0x0,
|
||||
0x1d0: 0x2100000,
|
||||
0x1e0: 0x2000001,
|
||||
0x1f0: 0x400,
|
||||
0x108: 0x100400,
|
||||
0x118: 0x2000401,
|
||||
0x128: 0x2100001,
|
||||
0x138: 0x1,
|
||||
0x148: 0x2000000,
|
||||
0x158: 0x100000,
|
||||
0x168: 0x401,
|
||||
0x178: 0x2100400,
|
||||
0x188: 0x2000001,
|
||||
0x198: 0x2100000,
|
||||
0x1a8: 0x0,
|
||||
0x1b8: 0x2100401,
|
||||
0x1c8: 0x100401,
|
||||
0x1d8: 0x400,
|
||||
0x1e8: 0x2000400,
|
||||
0x1f8: 0x100001
|
||||
},
|
||||
{
|
||||
0x0: 0x8000820,
|
||||
0x1: 0x20000,
|
||||
0x2: 0x8000000,
|
||||
0x3: 0x20,
|
||||
0x4: 0x20020,
|
||||
0x5: 0x8020820,
|
||||
0x6: 0x8020800,
|
||||
0x7: 0x800,
|
||||
0x8: 0x8020000,
|
||||
0x9: 0x8000800,
|
||||
0xa: 0x20800,
|
||||
0xb: 0x8020020,
|
||||
0xc: 0x820,
|
||||
0xd: 0x0,
|
||||
0xe: 0x8000020,
|
||||
0xf: 0x20820,
|
||||
0x80000000: 0x800,
|
||||
0x80000001: 0x8020820,
|
||||
0x80000002: 0x8000820,
|
||||
0x80000003: 0x8000000,
|
||||
0x80000004: 0x8020000,
|
||||
0x80000005: 0x20800,
|
||||
0x80000006: 0x20820,
|
||||
0x80000007: 0x20,
|
||||
0x80000008: 0x8000020,
|
||||
0x80000009: 0x820,
|
||||
0x8000000a: 0x20020,
|
||||
0x8000000b: 0x8020800,
|
||||
0x8000000c: 0x0,
|
||||
0x8000000d: 0x8020020,
|
||||
0x8000000e: 0x8000800,
|
||||
0x8000000f: 0x20000,
|
||||
0x10: 0x20820,
|
||||
0x11: 0x8020800,
|
||||
0x12: 0x20,
|
||||
0x13: 0x800,
|
||||
0x14: 0x8000800,
|
||||
0x15: 0x8000020,
|
||||
0x16: 0x8020020,
|
||||
0x17: 0x20000,
|
||||
0x18: 0x0,
|
||||
0x19: 0x20020,
|
||||
0x1a: 0x8020000,
|
||||
0x1b: 0x8000820,
|
||||
0x1c: 0x8020820,
|
||||
0x1d: 0x20800,
|
||||
0x1e: 0x820,
|
||||
0x1f: 0x8000000,
|
||||
0x80000010: 0x20000,
|
||||
0x80000011: 0x800,
|
||||
0x80000012: 0x8020020,
|
||||
0x80000013: 0x20820,
|
||||
0x80000014: 0x20,
|
||||
0x80000015: 0x8020000,
|
||||
0x80000016: 0x8000000,
|
||||
0x80000017: 0x8000820,
|
||||
0x80000018: 0x8020820,
|
||||
0x80000019: 0x8000020,
|
||||
0x8000001a: 0x8000800,
|
||||
0x8000001b: 0x0,
|
||||
0x8000001c: 0x20800,
|
||||
0x8000001d: 0x820,
|
||||
0x8000001e: 0x20020,
|
||||
0x8000001f: 0x8020800
|
||||
}
|
||||
];
|
||||
|
||||
// Masks that select the SBOX input
|
||||
var SBOX_MASK = [
|
||||
0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,
|
||||
0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f
|
||||
];
|
||||
|
||||
/**
|
||||
* DES block cipher algorithm.
|
||||
*/
|
||||
var DES = C_algo.DES = BlockCipher.extend({
|
||||
_doReset: function () {
|
||||
// Shortcuts
|
||||
var key = this._key;
|
||||
var keyWords = key.words;
|
||||
|
||||
// Select 56 bits according to PC1
|
||||
var keyBits = [];
|
||||
for (var i = 0; i < 56; i++) {
|
||||
var keyBitPos = PC1[i] - 1;
|
||||
keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;
|
||||
}
|
||||
|
||||
// Assemble 16 subkeys
|
||||
var subKeys = this._subKeys = [];
|
||||
for (var nSubKey = 0; nSubKey < 16; nSubKey++) {
|
||||
// Create subkey
|
||||
var subKey = subKeys[nSubKey] = [];
|
||||
|
||||
// Shortcut
|
||||
var bitShift = BIT_SHIFTS[nSubKey];
|
||||
|
||||
// Select 48 bits according to PC2
|
||||
for (var i = 0; i < 24; i++) {
|
||||
// Select from the left 28 key bits
|
||||
subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);
|
||||
|
||||
// Select from the right 28 key bits
|
||||
subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);
|
||||
}
|
||||
|
||||
// Since each subkey is applied to an expanded 32-bit input,
|
||||
// the subkey can be broken into 8 values scaled to 32-bits,
|
||||
// which allows the key to be used without expansion
|
||||
subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);
|
||||
for (var i = 1; i < 7; i++) {
|
||||
subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);
|
||||
}
|
||||
subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);
|
||||
}
|
||||
|
||||
// Compute inverse subkeys
|
||||
var invSubKeys = this._invSubKeys = [];
|
||||
for (var i = 0; i < 16; i++) {
|
||||
invSubKeys[i] = subKeys[15 - i];
|
||||
}
|
||||
},
|
||||
|
||||
encryptBlock: function (M, offset) {
|
||||
this._doCryptBlock(M, offset, this._subKeys);
|
||||
},
|
||||
|
||||
decryptBlock: function (M, offset) {
|
||||
this._doCryptBlock(M, offset, this._invSubKeys);
|
||||
},
|
||||
|
||||
_doCryptBlock: function (M, offset, subKeys) {
|
||||
// Get input
|
||||
this._lBlock = M[offset];
|
||||
this._rBlock = M[offset + 1];
|
||||
|
||||
// Initial permutation
|
||||
exchangeLR.call(this, 4, 0x0f0f0f0f);
|
||||
exchangeLR.call(this, 16, 0x0000ffff);
|
||||
exchangeRL.call(this, 2, 0x33333333);
|
||||
exchangeRL.call(this, 8, 0x00ff00ff);
|
||||
exchangeLR.call(this, 1, 0x55555555);
|
||||
|
||||
// Rounds
|
||||
for (var round = 0; round < 16; round++) {
|
||||
// Shortcuts
|
||||
var subKey = subKeys[round];
|
||||
var lBlock = this._lBlock;
|
||||
var rBlock = this._rBlock;
|
||||
|
||||
// Feistel function
|
||||
var f = 0;
|
||||
for (var i = 0; i < 8; i++) {
|
||||
f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];
|
||||
}
|
||||
this._lBlock = rBlock;
|
||||
this._rBlock = lBlock ^ f;
|
||||
}
|
||||
|
||||
// Undo swap from last round
|
||||
var t = this._lBlock;
|
||||
this._lBlock = this._rBlock;
|
||||
this._rBlock = t;
|
||||
|
||||
// Final permutation
|
||||
exchangeLR.call(this, 1, 0x55555555);
|
||||
exchangeRL.call(this, 8, 0x00ff00ff);
|
||||
exchangeRL.call(this, 2, 0x33333333);
|
||||
exchangeLR.call(this, 16, 0x0000ffff);
|
||||
exchangeLR.call(this, 4, 0x0f0f0f0f);
|
||||
|
||||
// Set output
|
||||
M[offset] = this._lBlock;
|
||||
M[offset + 1] = this._rBlock;
|
||||
},
|
||||
|
||||
keySize: 64/32,
|
||||
|
||||
ivSize: 64/32,
|
||||
|
||||
blockSize: 64/32
|
||||
});
|
||||
|
||||
// Swap bits across the left and right words
|
||||
function exchangeLR(offset, mask) {
|
||||
var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;
|
||||
this._rBlock ^= t;
|
||||
this._lBlock ^= t << offset;
|
||||
}
|
||||
|
||||
function exchangeRL(offset, mask) {
|
||||
var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;
|
||||
this._lBlock ^= t;
|
||||
this._rBlock ^= t << offset;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.DES = BlockCipher._createHelper(DES);
|
||||
|
||||
/**
|
||||
* Triple-DES block cipher algorithm.
|
||||
*/
|
||||
var TripleDES = C_algo.TripleDES = BlockCipher.extend({
|
||||
_doReset: function () {
|
||||
// Shortcuts
|
||||
var key = this._key;
|
||||
var keyWords = key.words;
|
||||
// Make sure the key length is valid (64, 128 or >= 192 bit)
|
||||
if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {
|
||||
throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');
|
||||
}
|
||||
|
||||
// Extend the key according to the keying options defined in 3DES standard
|
||||
var key1 = keyWords.slice(0, 2);
|
||||
var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);
|
||||
var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);
|
||||
|
||||
// Create DES instances
|
||||
this._des1 = DES.createEncryptor(WordArray.create(key1));
|
||||
this._des2 = DES.createEncryptor(WordArray.create(key2));
|
||||
this._des3 = DES.createEncryptor(WordArray.create(key3));
|
||||
},
|
||||
|
||||
encryptBlock: function (M, offset) {
|
||||
this._des1.encryptBlock(M, offset);
|
||||
this._des2.decryptBlock(M, offset);
|
||||
this._des3.encryptBlock(M, offset);
|
||||
},
|
||||
|
||||
decryptBlock: function (M, offset) {
|
||||
this._des3.decryptBlock(M, offset);
|
||||
this._des2.encryptBlock(M, offset);
|
||||
this._des1.decryptBlock(M, offset);
|
||||
},
|
||||
|
||||
keySize: 192/32,
|
||||
|
||||
ivSize: 64/32,
|
||||
|
||||
blockSize: 64/32
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.TripleDES = BlockCipher._createHelper(TripleDES);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var StreamCipher = C_lib.StreamCipher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
/**
|
||||
* RC4 stream cipher algorithm.
|
||||
*/
|
||||
var RC4 = C_algo.RC4 = StreamCipher.extend({
|
||||
_doReset: function () {
|
||||
// Shortcuts
|
||||
var key = this._key;
|
||||
var keyWords = key.words;
|
||||
var keySigBytes = key.sigBytes;
|
||||
|
||||
// Init sbox
|
||||
var S = this._S = [];
|
||||
for (var i = 0; i < 256; i++) {
|
||||
S[i] = i;
|
||||
}
|
||||
|
||||
// Key setup
|
||||
for (var i = 0, j = 0; i < 256; i++) {
|
||||
var keyByteIndex = i % keySigBytes;
|
||||
var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;
|
||||
|
||||
j = (j + S[i] + keyByte) % 256;
|
||||
|
||||
// Swap
|
||||
var t = S[i];
|
||||
S[i] = S[j];
|
||||
S[j] = t;
|
||||
}
|
||||
|
||||
// Counters
|
||||
this._i = this._j = 0;
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
M[offset] ^= generateKeystreamWord.call(this);
|
||||
},
|
||||
|
||||
keySize: 256/32,
|
||||
|
||||
ivSize: 0
|
||||
});
|
||||
|
||||
function generateKeystreamWord() {
|
||||
// Shortcuts
|
||||
var S = this._S;
|
||||
var i = this._i;
|
||||
var j = this._j;
|
||||
|
||||
// Generate keystream word
|
||||
var keystreamWord = 0;
|
||||
for (var n = 0; n < 4; n++) {
|
||||
i = (i + 1) % 256;
|
||||
j = (j + S[i]) % 256;
|
||||
|
||||
// Swap
|
||||
var t = S[i];
|
||||
S[i] = S[j];
|
||||
S[j] = t;
|
||||
|
||||
keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);
|
||||
}
|
||||
|
||||
// Update counters
|
||||
this._i = i;
|
||||
this._j = j;
|
||||
|
||||
return keystreamWord;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.RC4 = StreamCipher._createHelper(RC4);
|
||||
|
||||
/**
|
||||
* Modified RC4 stream cipher algorithm.
|
||||
*/
|
||||
var RC4Drop = C_algo.RC4Drop = RC4.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {number} drop The number of keystream words to drop. Default 192
|
||||
*/
|
||||
cfg: RC4.cfg.extend({
|
||||
drop: 192
|
||||
}),
|
||||
|
||||
_doReset: function () {
|
||||
RC4._doReset.call(this);
|
||||
|
||||
// Drop
|
||||
for (var i = this.cfg.drop; i > 0; i--) {
|
||||
generateKeystreamWord.call(this);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.RC4Drop = StreamCipher._createHelper(RC4Drop);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var StreamCipher = C_lib.StreamCipher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Reusable objects
|
||||
var S = [];
|
||||
var C_ = [];
|
||||
var G = [];
|
||||
|
||||
/**
|
||||
* Rabbit stream cipher algorithm
|
||||
*/
|
||||
var Rabbit = C_algo.Rabbit = StreamCipher.extend({
|
||||
_doReset: function () {
|
||||
// Shortcuts
|
||||
var K = this._key.words;
|
||||
var iv = this.cfg.iv;
|
||||
|
||||
// Swap endian
|
||||
for (var i = 0; i < 4; i++) {
|
||||
K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |
|
||||
(((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);
|
||||
}
|
||||
|
||||
// Generate initial state values
|
||||
var X = this._X = [
|
||||
K[0], (K[3] << 16) | (K[2] >>> 16),
|
||||
K[1], (K[0] << 16) | (K[3] >>> 16),
|
||||
K[2], (K[1] << 16) | (K[0] >>> 16),
|
||||
K[3], (K[2] << 16) | (K[1] >>> 16)
|
||||
];
|
||||
|
||||
// Generate initial counter values
|
||||
var C = this._C = [
|
||||
(K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
|
||||
(K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
|
||||
(K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
|
||||
(K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
|
||||
];
|
||||
|
||||
// Carry bit
|
||||
this._b = 0;
|
||||
|
||||
// Iterate the system four times
|
||||
for (var i = 0; i < 4; i++) {
|
||||
nextState.call(this);
|
||||
}
|
||||
|
||||
// Modify the counters
|
||||
for (var i = 0; i < 8; i++) {
|
||||
C[i] ^= X[(i + 4) & 7];
|
||||
}
|
||||
|
||||
// IV setup
|
||||
if (iv) {
|
||||
// Shortcuts
|
||||
var IV = iv.words;
|
||||
var IV_0 = IV[0];
|
||||
var IV_1 = IV[1];
|
||||
|
||||
// Generate four subvectors
|
||||
var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
|
||||
var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
|
||||
var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
|
||||
var i3 = (i2 << 16) | (i0 & 0x0000ffff);
|
||||
|
||||
// Modify counter values
|
||||
C[0] ^= i0;
|
||||
C[1] ^= i1;
|
||||
C[2] ^= i2;
|
||||
C[3] ^= i3;
|
||||
C[4] ^= i0;
|
||||
C[5] ^= i1;
|
||||
C[6] ^= i2;
|
||||
C[7] ^= i3;
|
||||
|
||||
// Iterate the system four times
|
||||
for (var i = 0; i < 4; i++) {
|
||||
nextState.call(this);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcut
|
||||
var X = this._X;
|
||||
|
||||
// Iterate the system
|
||||
nextState.call(this);
|
||||
|
||||
// Generate four keystream words
|
||||
S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
|
||||
S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
|
||||
S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
|
||||
S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
// Swap endian
|
||||
S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
|
||||
(((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
|
||||
|
||||
// Encrypt
|
||||
M[offset + i] ^= S[i];
|
||||
}
|
||||
},
|
||||
|
||||
blockSize: 128/32,
|
||||
|
||||
ivSize: 64/32
|
||||
});
|
||||
|
||||
function nextState() {
|
||||
// Shortcuts
|
||||
var X = this._X;
|
||||
var C = this._C;
|
||||
|
||||
// Save old counter values
|
||||
for (var i = 0; i < 8; i++) {
|
||||
C_[i] = C[i];
|
||||
}
|
||||
|
||||
// Calculate new counter values
|
||||
C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
|
||||
C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
|
||||
C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
|
||||
C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
|
||||
C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
|
||||
C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
|
||||
C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
|
||||
C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
|
||||
this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
|
||||
|
||||
// Calculate the g-values
|
||||
for (var i = 0; i < 8; i++) {
|
||||
var gx = X[i] + C[i];
|
||||
|
||||
// Construct high and low argument for squaring
|
||||
var ga = gx & 0xffff;
|
||||
var gb = gx >>> 16;
|
||||
|
||||
// Calculate high and low result of squaring
|
||||
var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
|
||||
var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
|
||||
|
||||
// High XOR low
|
||||
G[i] = gh ^ gl;
|
||||
}
|
||||
|
||||
// Calculate new state values
|
||||
X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
|
||||
X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
|
||||
X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
|
||||
X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
|
||||
X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
|
||||
X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
|
||||
X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
|
||||
X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.Rabbit = StreamCipher._createHelper(Rabbit);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var StreamCipher = C_lib.StreamCipher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Reusable objects
|
||||
var S = [];
|
||||
var C_ = [];
|
||||
var G = [];
|
||||
|
||||
/**
|
||||
* Rabbit stream cipher algorithm.
|
||||
*
|
||||
* This is a legacy version that neglected to convert the key to little-endian.
|
||||
* This error doesn't affect the cipher's security,
|
||||
* but it does affect its compatibility with other implementations.
|
||||
*/
|
||||
var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({
|
||||
_doReset: function () {
|
||||
// Shortcuts
|
||||
var K = this._key.words;
|
||||
var iv = this.cfg.iv;
|
||||
|
||||
// Generate initial state values
|
||||
var X = this._X = [
|
||||
K[0], (K[3] << 16) | (K[2] >>> 16),
|
||||
K[1], (K[0] << 16) | (K[3] >>> 16),
|
||||
K[2], (K[1] << 16) | (K[0] >>> 16),
|
||||
K[3], (K[2] << 16) | (K[1] >>> 16)
|
||||
];
|
||||
|
||||
// Generate initial counter values
|
||||
var C = this._C = [
|
||||
(K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
|
||||
(K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
|
||||
(K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
|
||||
(K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
|
||||
];
|
||||
|
||||
// Carry bit
|
||||
this._b = 0;
|
||||
|
||||
// Iterate the system four times
|
||||
for (var i = 0; i < 4; i++) {
|
||||
nextState.call(this);
|
||||
}
|
||||
|
||||
// Modify the counters
|
||||
for (var i = 0; i < 8; i++) {
|
||||
C[i] ^= X[(i + 4) & 7];
|
||||
}
|
||||
|
||||
// IV setup
|
||||
if (iv) {
|
||||
// Shortcuts
|
||||
var IV = iv.words;
|
||||
var IV_0 = IV[0];
|
||||
var IV_1 = IV[1];
|
||||
|
||||
// Generate four subvectors
|
||||
var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
|
||||
var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
|
||||
var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
|
||||
var i3 = (i2 << 16) | (i0 & 0x0000ffff);
|
||||
|
||||
// Modify counter values
|
||||
C[0] ^= i0;
|
||||
C[1] ^= i1;
|
||||
C[2] ^= i2;
|
||||
C[3] ^= i3;
|
||||
C[4] ^= i0;
|
||||
C[5] ^= i1;
|
||||
C[6] ^= i2;
|
||||
C[7] ^= i3;
|
||||
|
||||
// Iterate the system four times
|
||||
for (var i = 0; i < 4; i++) {
|
||||
nextState.call(this);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcut
|
||||
var X = this._X;
|
||||
|
||||
// Iterate the system
|
||||
nextState.call(this);
|
||||
|
||||
// Generate four keystream words
|
||||
S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
|
||||
S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
|
||||
S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
|
||||
S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
// Swap endian
|
||||
S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
|
||||
(((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
|
||||
|
||||
// Encrypt
|
||||
M[offset + i] ^= S[i];
|
||||
}
|
||||
},
|
||||
|
||||
blockSize: 128/32,
|
||||
|
||||
ivSize: 64/32
|
||||
});
|
||||
|
||||
function nextState() {
|
||||
// Shortcuts
|
||||
var X = this._X;
|
||||
var C = this._C;
|
||||
|
||||
// Save old counter values
|
||||
for (var i = 0; i < 8; i++) {
|
||||
C_[i] = C[i];
|
||||
}
|
||||
|
||||
// Calculate new counter values
|
||||
C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
|
||||
C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
|
||||
C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
|
||||
C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
|
||||
C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
|
||||
C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
|
||||
C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
|
||||
C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
|
||||
this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
|
||||
|
||||
// Calculate the g-values
|
||||
for (var i = 0; i < 8; i++) {
|
||||
var gx = X[i] + C[i];
|
||||
|
||||
// Construct high and low argument for squaring
|
||||
var ga = gx & 0xffff;
|
||||
var gb = gx >>> 16;
|
||||
|
||||
// Calculate high and low result of squaring
|
||||
var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
|
||||
var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
|
||||
|
||||
// High XOR low
|
||||
G[i] = gh ^ gl;
|
||||
}
|
||||
|
||||
// Calculate new state values
|
||||
X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
|
||||
X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
|
||||
X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
|
||||
X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
|
||||
X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
|
||||
X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
|
||||
X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
|
||||
X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);
|
||||
}());
|
||||
|
||||
|
||||
return CryptoJS;
|
||||
|
||||
}));
|
||||
@@ -1,17 +0,0 @@
|
||||
let req = (url, options) => http(url, Object.assign({
|
||||
async: false
|
||||
}, options));
|
||||
|
||||
function http(url, options = {}) {
|
||||
if (options?.async === false) return _http(url, options)
|
||||
return new Promise(resolve => _http(url, Object.assign({
|
||||
complete: res => resolve(res)
|
||||
}, options))).catch(err => {
|
||||
console.error(err.name, err.message, err.stack)
|
||||
return {
|
||||
ok: false,
|
||||
status: 500,
|
||||
url
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
function compareTwoStrings(first,second){if((first=first.replace(/\s+/g,""))===(second=second.replace(/\s+/g,"")))return 1;if(first.length<2||second.length<2)return 0;var firstBigrams=new Map;for(let i=0;i<first.length-1;i++){var bigram=first.substring(i,i+2),count=firstBigrams.has(bigram)?firstBigrams.get(bigram)+1:1;firstBigrams.set(bigram,count)}let intersectionSize=0;for(let i=0;i<second.length-1;i++){const bigram=second.substring(i,i+2),count=firstBigrams.has(bigram)?firstBigrams.get(bigram):0;0<count&&(firstBigrams.set(bigram,count-1),intersectionSize++)}return 2*intersectionSize/(first.length+second.length-2)}function findBestMatch(mainString,targetStrings){var ratings=[];let bestMatchIndex=0;for(let i=0;i<targetStrings.length;i++){var currentTargetString=targetStrings[i],currentRating=compareTwoStrings(mainString,currentTargetString);ratings.push({target:currentTargetString,rating:currentRating}),currentRating>ratings[bestMatchIndex].rating&&(bestMatchIndex=i)}return{ratings:ratings,bestMatch:ratings[bestMatchIndex],bestMatchIndex:bestMatchIndex}}function lcs(str1,str2){if(!str1||!str2)return{length:0,sequence:"",offset:0};for(var sequence="",str1Length=str1.length,str2Length=str2.length,num=new Array(str1Length),maxlen=0,lastSubsBegin=0,i=0;i<str1Length;i++){for(var subArray=new Array(str2Length),j=0;j<str2Length;j++)subArray[j]=0;num[i]=subArray}for(var thisSubsBegin=null,i=0;i<str1Length;i++)for(j=0;j<str2Length;j++)str1[i]!==str2[j]?num[i][j]=0:(num[i][j]=0===i||0===j?1:1+num[i-1][j-1],num[i][j]>maxlen&&(maxlen=num[i][j],lastSubsBegin===(thisSubsBegin=i-num[i][j]+1)?sequence+=str1[i]:(lastSubsBegin=thisSubsBegin,sequence="",sequence+=str1.substr(lastSubsBegin,i+1-lastSubsBegin))));return{length:maxlen,sequence:sequence,offset:thisSubsBegin}}function findBestLCS(mainString,targetStrings){var results=[];let bestMatchIndex=0;for(let i=0;i<targetStrings.length;i++){var currentTargetString=targetStrings[i],currentLCS=lcs(mainString,currentTargetString);results.push({target:currentTargetString,lcs:currentLCS}),currentLCS.length>results[bestMatchIndex].lcs.length&&(bestMatchIndex=i)}return{allLCS:results,bestMatch:results[bestMatchIndex],bestMatchIndex:bestMatchIndex}}export{compareTwoStrings,findBestMatch,findBestLCS};
|
||||
@@ -1,10 +0,0 @@
|
||||
import * as spider from '%s'
|
||||
|
||||
if (!globalThis.__JS_SPIDER__) {
|
||||
if (spider.__jsEvalReturn) {
|
||||
globalThis.req = http
|
||||
globalThis.__JS_SPIDER__ = spider.__jsEvalReturn()
|
||||
} else if (spider.default) {
|
||||
globalThis.__JS_SPIDER__ = typeof spider.default === 'function' ? spider.default() : spider.default
|
||||
}
|
||||
}
|
||||
@@ -1,250 +0,0 @@
|
||||
let ic_dir = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAA7AAAAOwBeShxvQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIoSURBVFiF7Ze/T9RgGMc/T9/WO+74IXdRNKCJxETPQaOJi8LoxiouTurmv+DAYvwH3JzVhOhgSHByMTqY6GBCCBFMcJFwURC4O1rbvo8DoIg9rvHuYOGTdGjfb/J88vZpn1Z0bKw7JjsiaCcJqMiCKQ1OyuhonLTeLG5MZlLQq/UCooqd/nwfuNcOAUfgSorcbR0fN20RACRF7hgzc0PtEJB47IGmCSq8EXjbOKjG+VG54Buv531puK/WkfO2L0cY+ZI5ksVfD84vTt91U5vCEBvH7qxU0GqV18PX+Xg2+e6GFmZXhPlc3zOX5dW0Do2xMbIeEBuXmVMX68Y8BwxQzhXFlWqtdQKbzA+cIch0pMq630vgX55DTJgY+Bn18ql8hyAqphb4VjjeMLPVeG722nOKztddw0EPTARPUws0ohqB3TRw8w2KAwyaCRara/i2u+niCqxHf85TPQWe+Jw2L3kX3GhaYCdip5xU74FV28dSPNB8QZR8VEbCiCe1h+kFWopCVLH42oWz58Xh98s/y9o+CWzjQOBA4EBg3wX+mgWxdwlrTtSJRrjBK0T99glUC49R52jdcG75Fp7/on0C4BGGIeWFMtsHRL4zT2/hMCoerebfHkgYTWm+2/+XHTsQ4h3y6D/ZnxgWjRKvt0wgv3QTa+rN/I0mbDVipxxLe3c5kWjNgqIOSOO/nRajMVu99kF0hi4iM4LQtSfVrWbigHMa21k35NEvWSq4Cnb1Ay8AAAAASUVORK5CYII=';
|
||||
let ic_file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAA7AAAAOwBeShxvQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAJdSURBVFiF7ZfLaxNRFMa/c+8MbZO0xAgmGIIxUmtsQCkobsSNO12I7v0PXAjuBDeCCN0I/gvdu3HhQlHBBwouTA1UUoulKXmYSDp59TEzx4XUpmFm0tsMTRd+u5l7uN9vvnvunRmCh+r1+km2+CWAlFedm5byP79PIHRx8tKk4VYjvCawTfvafs0BoN1qThWNYn7h3cK4EgDPI23P07Ox5pM7+zXfVqPRPFbulPO517nQngBmv3JwkwIPQXQDXDs9KAAANI1WtLpVXcx9yEU8AWY/WU95nRvL1tVbfhgLKXcgGq1oZe3XajabPdJdo3VfMOg2AAL7YQ8kUyewIiQs0wQAbG5sjHbqnUUARx0BAMi/IP4oEAxganpnFcuFEggU7q7x3AUHoaED9C6Bp5gZlmUpGQgSENL9OR0B2KUJCssFFAslJQAShPMXzkHX9b0DuCmRTCCRTCgB9JPzSeirhbeUEjDqBgyjoWQgiBCLxyCEcx8494DLZLZtwzbVmpAFeUaqlEA4EkY4Eu5fqKBDeg64bsNVVEoVJQMCITOTga47WznfJefJ4onjiMWjygBSk67jSgcRCYImlNqmr4beA0M/iP4ncDgT+BfBAUThmQDbpv+OPZ+8ngBa+xWEWfbFt9PqgJmh6/r7XR5OxduIkpcw9uMsWE4MZM7QMKoFq2uBF2dS6VO1vgArWzPIjDwHSUCOA2DXf0sFit9z6XS61nu7F8AEgLfrD/CtfQUhWR3YNzZS+ngzdPc+ps03TuO7Xjuzn61HzHQPDL1pAvaAu4AZJYvo+uPL9MWt5g/5NsVsHsMO8wAAAABJRU5ErkJggg==';
|
||||
let current_root = '';
|
||||
let current_file = '';
|
||||
let current_parent = '';
|
||||
|
||||
function search() {
|
||||
doAction('search', { word: $('#keyword').val() });
|
||||
}
|
||||
|
||||
function push() {
|
||||
doAction('push', { url: $('#push_url').val() });
|
||||
}
|
||||
|
||||
function setting() {
|
||||
doAction('setting', { text: $('#setting_text').val(), name: $('#setting_name').val() });
|
||||
}
|
||||
|
||||
function file(path) {
|
||||
doAction('file', { path: path });
|
||||
}
|
||||
|
||||
function doAction(action, kv) {
|
||||
kv['do'] = action;
|
||||
$.post('/action', kv, function (data) {
|
||||
console.log(data);
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
function tpl_top(path) {
|
||||
return `<a class="weui-cell weui-cell_access" href="javascript:void(0)" onclick="listFile('` + path + `')">
|
||||
<div class="weui-cell__hd"><img src="` + ic_dir + `" alt="" style="width: 32px; margin-right: 16px; display: block;"></div>
|
||||
<span class="weui-cell__bd">
|
||||
<span class="weui-cell__name">..</span>
|
||||
</span>
|
||||
<span class="weui-cell__ft">
|
||||
</span>
|
||||
</a>`;
|
||||
}
|
||||
|
||||
function tpl_dir(name, time, path) {
|
||||
return `<a class="weui-cell weui-cell_access" href="#" onclick="listFile('` + path + `')">
|
||||
<div class="weui-cell__hd"><img src="` + ic_dir + `" alt="" style="width: 32px; margin-right: 16px; display: block;"></div>
|
||||
<span class="weui-cell__bd">
|
||||
<span class="weui-cell__name">` + name + `</span>
|
||||
<div class="weui-cell__desc">` + time + `</div>
|
||||
</span>
|
||||
<span class="weui-cell__ft">
|
||||
</span>
|
||||
</a>`;
|
||||
}
|
||||
|
||||
function tpl_file(name, time, path, canDel) {
|
||||
return `<a class="weui-cell weui-cell_access" href="javascript:void(0)" onclick="selectFile('` + path + `', ` + canDel + `)">
|
||||
<div class="weui-cell__hd"><img src="` + ic_file + `" alt="" style="width: 32px; margin-right: 16px; display: block;"></div>
|
||||
<span class="weui-cell__bd">
|
||||
<span class="weui-cell__name">` + name + `</span>
|
||||
<div class="weui-cell__desc">` + time + `</div>
|
||||
</span>
|
||||
</a>`;
|
||||
}
|
||||
|
||||
function clear_list() {
|
||||
$('#file_list').html('');
|
||||
}
|
||||
|
||||
function add_file(node) {
|
||||
$('#file_list').append(node);
|
||||
}
|
||||
|
||||
function selectFile(path, canDel) {
|
||||
current_file = path;
|
||||
if (canDel) $("#delFileBtn").show();
|
||||
else $("#delFileBtn").hide();
|
||||
$("#fileUrl").html("file:/" + current_file);
|
||||
$("#fileInfoDialog").show();
|
||||
}
|
||||
|
||||
function pushFile(yes) {
|
||||
hideFileInfo();
|
||||
if (yes == 1) {
|
||||
file("file:/" + current_file);
|
||||
}
|
||||
}
|
||||
|
||||
function hideFileInfo() {
|
||||
$("#fileInfoDialog").hide();
|
||||
}
|
||||
|
||||
function listFile(path) {
|
||||
$('#loadingToast').show();
|
||||
$.get('/file' + path, function (res) {
|
||||
let info = JSON.parse(res);
|
||||
let parent = info.parent;
|
||||
let canDel = info.parent != '.';
|
||||
current_root = path;
|
||||
current_parent = parent;
|
||||
let array = info.files;
|
||||
if (path === '' && array.length == 0) {
|
||||
warnToast('可能沒有存儲權限');
|
||||
}
|
||||
clear_list();
|
||||
if (parent !== '.') {
|
||||
add_file(tpl_top(parent));
|
||||
}
|
||||
if (canDel) {
|
||||
$('#delCurFolder').show();
|
||||
} else {
|
||||
$('#delCurFolder').hide();
|
||||
}
|
||||
array.forEach(node => {
|
||||
if (node.dir === 1) {
|
||||
add_file(tpl_dir(node.name, node.time, node.path));
|
||||
} else {
|
||||
add_file(tpl_file(node.name, node.time, node.path, canDel));
|
||||
}
|
||||
});
|
||||
$('#loadingToast').hide();
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function uploadFile() {
|
||||
$('#file_uploader').click();
|
||||
}
|
||||
|
||||
function uploadTip() {
|
||||
let files = $('#file_uploader')[0].files;
|
||||
if (files.length <= 0) return false;
|
||||
let tip = '';
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
tip += (files[i].name) + ',';
|
||||
}
|
||||
tip = tip.substring(0, tip.length - 1);
|
||||
$('#uploadTipContent').html(tip);
|
||||
$('#uploadTip').show();
|
||||
}
|
||||
|
||||
function doUpload(yes) {
|
||||
$('#uploadTip').hide();
|
||||
if (yes == 1) {
|
||||
let files = $('#file_uploader')[0].files;
|
||||
if (files.length <= 0) return false;
|
||||
var formData = new FormData();
|
||||
formData.append('path', current_root);
|
||||
for (i = 0; i < files.length; i++) {
|
||||
formData.append("files-" + i, files[i]);
|
||||
}
|
||||
$('#loadingToast').show();
|
||||
$.ajax({
|
||||
url: '/upload',
|
||||
type: 'post',
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
complete: function () {
|
||||
$('#loadingToast').hide();
|
||||
listFile(current_root);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function newFolder() {
|
||||
$('#newFolder').show();
|
||||
}
|
||||
|
||||
function doNewFolder(yes) {
|
||||
$('#newFolder').hide();
|
||||
if (yes == 1) {
|
||||
let name = $('#newFolderContent')[0].value.trim();
|
||||
if (name.length <= 0) return false;
|
||||
$('#loadingToast').show();
|
||||
$.post('/newFolder', { path: current_root, name: name }, function (data) {
|
||||
$('#loadingToast').hide();
|
||||
listFile(current_root);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function delFolder() {
|
||||
$('#delFolderContent').html('是否刪除 ' + current_root);
|
||||
$('#delFolder').show();
|
||||
}
|
||||
|
||||
function doDelFolder(yes) {
|
||||
$('#delFolder').hide();
|
||||
if (yes == 1) {
|
||||
$('#loadingToast').show();
|
||||
$.post('/delFolder', { path: current_root }, function (data) {
|
||||
$('#loadingToast').hide();
|
||||
listFile(current_parent);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function delFile() {
|
||||
$('#delFileContent').html('是否刪除 ' + current_file);
|
||||
$('#delFile').show();
|
||||
hideFileInfo();
|
||||
}
|
||||
|
||||
function doDelFile(yes) {
|
||||
$('#delFile').hide();
|
||||
if (yes == 1) {
|
||||
$('#loadingToast').show();
|
||||
$.post('/delFile', { path: current_file }, function (data) {
|
||||
$('#loadingToast').hide();
|
||||
listFile(current_root);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function warnToast(msg) {
|
||||
$('#warnToastContent').html(msg);
|
||||
$('#warnToast').show();
|
||||
setTimeout(() => {
|
||||
$('#warnToast').hide();
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
function showPanel(id) {
|
||||
let tab = $('#tab' + id);
|
||||
$(tab).attr('aria-selected', 'true').addClass('weui-bar__item_on');
|
||||
$(tab).siblings('.weui-bar__item_on').removeClass('weui-bar__item_on').attr('aria-selected', 'false');
|
||||
var panelId = '#' + $(tab).attr('aria-controls');
|
||||
$(panelId).css('display', 'block');
|
||||
$(panelId).siblings('.weui-tab__panel').css('display', 'none');
|
||||
if (id === 4) listFile('')
|
||||
}
|
||||
|
||||
$(function () {
|
||||
$('.weui-tabbar__item').on('click', function () {
|
||||
showPanel(parseInt($(this).attr('id').substr(3)));
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function () {
|
||||
var url = window.location.search;
|
||||
if (url.indexOf('tab=2') > 0) {
|
||||
showPanel(2);
|
||||
} else if (url.indexOf('tab=3') > 0) {
|
||||
showPanel(3);
|
||||
} else if (url.indexOf('tab=4') > 0) {
|
||||
showPanel(4);
|
||||
} else {
|
||||
showPanel(1);
|
||||
}
|
||||
});
|
||||
@@ -1,26 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-TW">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes">
|
||||
<title>解析</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container"></div>
|
||||
<script>
|
||||
const jxs = "%s";
|
||||
const url = "%s";
|
||||
const list = jxs.split(";");
|
||||
const container = document.getElementById('container');
|
||||
list.forEach(item => {
|
||||
const iframe = document.createElement('iframe');
|
||||
iframe.src = item + url;
|
||||
iframe.sandbox = 'allow-scripts allow-same-origin allow-forms';
|
||||
container.appendChild(iframe);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,27 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2023 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 2 fragment shader that samples from a (non-external) texture with
|
||||
// uTexSampler, and multiplies its alpha value by uAlphaScale.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
uniform float uAlphaScale;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
void main() {
|
||||
vec4 src = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
gl_FragColor = vec4(src.rgb, src.a * uAlphaScale);
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2023 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 2 fragment shader that samples from a (non-external) texture with
|
||||
// uTexSampler and copies this to the output.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
void main() {
|
||||
gl_FragColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2022 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 2 fragment shader that samples from a (non-external) texture with
|
||||
// uTexSampler. It then converts the RGB color input into HSL and adjusts
|
||||
// the Hue, Saturation, and Lightness and converts it then back to RGB.
|
||||
|
||||
// We use the algorithm based on the work by Sam Hocevar, which optimizes
|
||||
// for an efficient branchless RGB <-> HSL conversion. A blog post is
|
||||
// at https://www.chilliant.com/rgb2hsv.html and it is further explained at
|
||||
// http://lolengine.net/blog/2013/01/13/fast-rgb-to-hsv.
|
||||
|
||||
precision highp float;
|
||||
uniform sampler2D uTexSampler;
|
||||
// uHueAdjustmentDegrees, uSaturationAdjustment, and uLightnessAdjustment
|
||||
// are normalized to the unit interval [0, 1].
|
||||
uniform float uHueAdjustmentDegrees;
|
||||
uniform float uSaturationAdjustment;
|
||||
uniform float uLightnessAdjustment;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
const float epsilon = 1e-10;
|
||||
|
||||
vec3 rgbToHcv(vec3 rgb) {
|
||||
vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0)
|
||||
: vec4(rgb.gb, 0.0, -1.0 / 3.0);
|
||||
vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx);
|
||||
float c = q.x - min(q.w, q.y);
|
||||
float h = abs((q.w - q.y) / (6.0 * c + epsilon) + q.z);
|
||||
return vec3(h, c, q.x);
|
||||
}
|
||||
|
||||
vec3 rgbToHsl(vec3 rgb) {
|
||||
vec3 hcv = rgbToHcv(rgb);
|
||||
float l = hcv.z - hcv.y * 0.5;
|
||||
float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + epsilon);
|
||||
return vec3(hcv.x, s, l);
|
||||
}
|
||||
|
||||
vec3 hueToRgb(float hue) {
|
||||
float r = abs(hue * 6.0 - 3.0) - 1.0;
|
||||
float g = 2.0 - abs(hue * 6.0 - 2.0);
|
||||
float b = 2.0 - abs(hue * 6.0 - 4.0);
|
||||
return clamp(vec3(r, g, b), 0.0, 1.0);
|
||||
}
|
||||
|
||||
vec3 hslToRgb(vec3 hsl) {
|
||||
vec3 rgb = hueToRgb(hsl.x);
|
||||
float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y;
|
||||
return (rgb - 0.5) * c + hsl.z;
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
vec3 hslColor = rgbToHsl(inputColor.rgb);
|
||||
|
||||
hslColor.x = mod(hslColor.x + uHueAdjustmentDegrees, 1.0);
|
||||
hslColor.y = clamp(hslColor.y + uSaturationAdjustment, 0.0, 1.0);
|
||||
hslColor.z = clamp(hslColor.z + uLightnessAdjustment, 0.0, 1.0);
|
||||
|
||||
gl_FragColor = vec4(hslToRgb(hslColor), inputColor.a);
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2022 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES2 fragment shader that samples from a (non-external) texture with
|
||||
// uTexSampler, copying from this texture to the current output while
|
||||
// applying a 3D color lookup table to change the pixel colors.
|
||||
|
||||
precision highp float;
|
||||
uniform sampler2D uTexSampler;
|
||||
// The uColorLut texture is a N x N^2 2D texture where each z-plane of the 3D
|
||||
// LUT is vertically stacked on top of each other. The red channel of the input
|
||||
// color (z-axis in LUT[R][G][B] = LUT[z][y][x]) points to the plane to sample
|
||||
// from. For more information check the
|
||||
// androidx/media3/effect/SingleColorLut.java class, especially the function
|
||||
// #transformCubeIntoBitmap with a provided example.
|
||||
uniform sampler2D uColorLut;
|
||||
uniform float uColorLutLength;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
// Applies the color lookup using uLut based on the input colors.
|
||||
vec3 applyLookup(vec3 color) {
|
||||
// Reminder: Inside OpenGL vector.xyz is the same as vector.rgb.
|
||||
// Here we use mentions of x and y coordinates to references to
|
||||
// the position to sample from inside the 2D LUT plane and
|
||||
// rgb to create the 3D coordinates based on the input colors.
|
||||
|
||||
// To sample from the 3D LUT we interpolate bilinearly twice in the 2D LUT
|
||||
// to replicate the trilinear interpolation in a 3D LUT. Thus we sample
|
||||
// from the plane of position redCoordLow and on the plane above.
|
||||
// redCoordLow points to the lower plane to sample from.
|
||||
float redCoord = color.r * (uColorLutLength - 1.0);
|
||||
// Clamping to uColorLutLength - 2 is only needed if redCoord points to the
|
||||
// most upper plane. In this case there would not be any plane above
|
||||
// available to sample from.
|
||||
float redCoordLow = clamp(floor(redCoord), 0.0, uColorLutLength - 2.0);
|
||||
|
||||
// lowerY is indexed in two steps. First redCoordLow defines the plane to
|
||||
// sample from. Next the green color component is added to index the row in
|
||||
// the found plane. As described in the NVIDIA blog article about LUTs
|
||||
// https://developer.nvidia.com/gpugems/gpugems2/part-iii-high-quality-rendering/chapter-24-using-lookup-tables-accelerate-color
|
||||
// (Section 24.2), we sample from color * scale + offset, where offset is
|
||||
// defined by 1 / (2 * uColorLutLength) and the scale is defined by
|
||||
// (uColorLutLength - 1.0) / uColorLutLength.
|
||||
|
||||
// The following derives the equation of lowerY. For this let
|
||||
// N = uColorLutLenght. The general formula to sample at row y
|
||||
// is defined as y = N * r + g.
|
||||
// Using the offset and scale as described in NVIDIA's blog article we get:
|
||||
// y = offset + (N * r + g) * scale
|
||||
// y = 1 / (2 * N) + (N * r + g) * (N - 1) / N
|
||||
// y = 1 / (2 * N) + N * r * (N - 1) / N + g * (N - 1) / N
|
||||
// We have defined redCoord as r * (N - 1) if we excluded the clamping for
|
||||
// now, giving us:
|
||||
// y = 1 / (2 * N) + N * redCoord / N + g * (N - 1) / N
|
||||
// This simplifies to:
|
||||
// y = 0.5 / N + (N * redCoord + g * (N - 1)) / N
|
||||
// y = (0.5 + N * redCoord + g * (N - 1)) / N
|
||||
// This formula now assumes a coordinate system in the range of [0, N] but
|
||||
// OpenGL uses a [0, 1] unit coordinate system internally. Thus dividing
|
||||
// by N gives us the final formula for y:
|
||||
// y = ((0.5 + N * redCoord + g * (N - 1)) / N) / N
|
||||
// y = (0.5 + redCoord * N + g * (N - 1)) / (N * N)
|
||||
float lowerY = (0.5 + redCoordLow * uColorLutLength +
|
||||
color.g * (uColorLutLength - 1.0)) /
|
||||
(uColorLutLength * uColorLutLength);
|
||||
// The upperY is the same position moved up by one LUT plane.
|
||||
float upperY = lowerY + 1.0 / uColorLutLength;
|
||||
|
||||
// The x position is the blue color channel (x-axis in LUT[R][G][B]).
|
||||
float x = (0.5 + color.b * (uColorLutLength - 1.0)) / uColorLutLength;
|
||||
|
||||
vec3 lowerRgb = texture2D(uColorLut, vec2(x, lowerY)).rgb;
|
||||
vec3 upperRgb = texture2D(uColorLut, vec2(x, upperY)).rgb;
|
||||
|
||||
// Linearly interpolate between lowerRgb and upperRgb based on the
|
||||
// distance of the actual in the plane and the lower sampling position.
|
||||
return mix(lowerRgb, upperRgb, redCoord - redCoordLow);
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
|
||||
gl_FragColor.rgb = applyLookup(inputColor.rgb);
|
||||
gl_FragColor.a = inputColor.a;
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
#version 300 es
|
||||
// Copyright 2022 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 3 fragment shader that:
|
||||
// 1. Samples optical linear BT.2020 RGB from a (non-external) texture with
|
||||
// uTexSampler.
|
||||
// 2. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 3. Outputs electrical (HLG or PQ) BT.2020 RGB based on uOutputColorTransfer,
|
||||
// via an OETF.
|
||||
// The output will be red if an error has occurred.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
in vec2 vTexSamplingCoord;
|
||||
out vec4 outColor;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_ST2084 and COLOR_TRANSFER_HLG are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
uniform mat3 uColorTransform;
|
||||
uniform mat4 uRgbMatrix;
|
||||
|
||||
// TODO(b/227624622): Consider using mediump to save precision, if it won't lead
|
||||
// to noticeable quantization.
|
||||
|
||||
// HLG OETF for one channel.
|
||||
highp float hlgOetfSingleChannel(highp float linearChannel) {
|
||||
// Specification:
|
||||
// https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_HLG
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=529-543;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float a = 0.17883277;
|
||||
const highp float b = 0.28466892;
|
||||
const highp float c = 0.55991073;
|
||||
|
||||
return linearChannel <= 1.0 / 12.0 ? sqrt(3.0 * linearChannel)
|
||||
: a * log(12.0 * linearChannel - b) + c;
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG OETF.
|
||||
highp vec3 hlgOetf(highp vec3 linearColor) {
|
||||
return vec3(hlgOetfSingleChannel(linearColor.r),
|
||||
hlgOetfSingleChannel(linearColor.g),
|
||||
hlgOetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020, PQ / ST2084 OETF.
|
||||
highp vec3 pqOetf(highp vec3 linearColor) {
|
||||
// Specification:
|
||||
// https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_PQ
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=514-527;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float m1 = (2610.0 / 16384.0);
|
||||
const highp float m2 = (2523.0 / 4096.0) * 128.0;
|
||||
const highp float c1 = (3424.0 / 4096.0);
|
||||
const highp float c2 = (2413.0 / 4096.0) * 32.0;
|
||||
const highp float c3 = (2392.0 / 4096.0) * 32.0;
|
||||
|
||||
highp vec3 temp = pow(linearColor, vec3(m1));
|
||||
temp = (c1 + c2 * temp) / (1.0 + c3 * temp);
|
||||
return pow(temp, vec3(m2));
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
// LINT.IfChange(color_transfer)
|
||||
const int COLOR_TRANSFER_ST2084 = 6;
|
||||
const int COLOR_TRANSFER_HLG = 7;
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return pqOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return hlgOetf(linearColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture(uTexSampler, vTexSamplingCoord);
|
||||
// transformedColors is an optical color.
|
||||
vec4 transformedColors = uRgbMatrix * vec4(inputColor.rgb, 1);
|
||||
outColor = vec4(applyOetf(transformedColors.rgb), inputColor.a);
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2022 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 2 fragment shader that samples from a (non-external) texture with
|
||||
// uTexSampler, copying from this texture to the current output while
|
||||
// applying a 4x4 RGB color matrix to change the pixel colors.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
uniform mat4 uRgbMatrix;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
gl_FragColor = uRgbMatrix * vec4(inputColor.rgb, 1);
|
||||
gl_FragColor.a = inputColor.a;
|
||||
}
|
||||
@@ -1,240 +0,0 @@
|
||||
#version 300 es
|
||||
// Copyright 2022 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 3 fragment shader that:
|
||||
// 1. Samples electrical (HLG or PQ) BT.2020 YUV from an external texture with
|
||||
// uTexSampler, where the sampler uses the EXT_YUV_target extension specified
|
||||
// at
|
||||
// https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_YUV_target.txt,
|
||||
// 2. Applies a YUV to RGB conversion using the specified color transform
|
||||
// uYuvToRgbColorTransform, yielding electrical (HLG or PQ) BT.2020 RGB,
|
||||
// 3. Applies an EOTF based on uInputColorTransfer, yielding optical linear
|
||||
// BT.2020 RGB.
|
||||
// 4. Optionally applies a BT2020 to BT709 OOTF, if OpenGL tone-mapping is
|
||||
// requested via uApplyHdrToSdrToneMapping.
|
||||
// 5. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 6. Outputs as requested by uOutputColorTransfer. Use COLOR_TRANSFER_LINEAR
|
||||
// for outputting to intermediate shaders, or COLOR_TRANSFER_ST2084 /
|
||||
// COLOR_TRANSFER_HLG to output electrical colors via an OETF (e.g. to an
|
||||
// encoder).
|
||||
// The output will be red or blue if an error has occurred.
|
||||
|
||||
#extension GL_OES_EGL_image_external : require
|
||||
#extension GL_EXT_YUV_target : require
|
||||
precision mediump float;
|
||||
uniform __samplerExternal2DY2YEXT uTexSampler;
|
||||
uniform mat3 uYuvToRgbColorTransform;
|
||||
uniform mat4 uRgbMatrix;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_ST2084 and COLOR_TRANSFER_HLG are allowed.
|
||||
uniform int uInputColorTransfer;
|
||||
uniform int uApplyHdrToSdrToneMapping;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_LINEAR, COLOR_TRANSFER_GAMMA_2_2, COLOR_TRANSFER_ST2084,
|
||||
// and COLOR_TRANSFER_HLG are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
in vec2 vTexSamplingCoord;
|
||||
out vec4 outColor;
|
||||
|
||||
// LINT.IfChange(color_transfer)
|
||||
const int COLOR_TRANSFER_LINEAR = 1;
|
||||
const int COLOR_TRANSFER_GAMMA_2_2 = 10;
|
||||
const int COLOR_TRANSFER_ST2084 = 6;
|
||||
const int COLOR_TRANSFER_HLG = 7;
|
||||
|
||||
// TODO(b/227624622): Consider using mediump to save precision, if it won't lead
|
||||
// to noticeable quantization errors.
|
||||
|
||||
// BT.2100 / BT.2020 HLG EOTF for one channel.
|
||||
highp float hlgEotfSingleChannel(highp float hlgChannel) {
|
||||
// Specification:
|
||||
// https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_HLG
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=265-279;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float a = 0.17883277;
|
||||
const highp float b = 0.28466892;
|
||||
const highp float c = 0.55991073;
|
||||
return hlgChannel <= 0.5 ? hlgChannel * hlgChannel / 3.0
|
||||
: (b + exp((hlgChannel - c) / a)) / 12.0;
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG EOTF.
|
||||
highp vec3 hlgEotf(highp vec3 hlgColor) {
|
||||
return vec3(hlgEotfSingleChannel(hlgColor.r),
|
||||
hlgEotfSingleChannel(hlgColor.g),
|
||||
hlgEotfSingleChannel(hlgColor.b));
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 PQ EOTF.
|
||||
highp vec3 pqEotf(highp vec3 pqColor) {
|
||||
// Specification:
|
||||
// https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_PQ
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=250-263;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float m1 = (2610.0 / 16384.0);
|
||||
const highp float m2 = (2523.0 / 4096.0) * 128.0;
|
||||
const highp float c1 = (3424.0 / 4096.0);
|
||||
const highp float c2 = (2413.0 / 4096.0) * 32.0;
|
||||
const highp float c3 = (2392.0 / 4096.0) * 32.0;
|
||||
|
||||
highp vec3 temp = pow(clamp(pqColor, 0.0, 1.0), 1.0 / vec3(m2));
|
||||
temp = max(temp - c1, 0.0) / (c2 - c3 * temp);
|
||||
return pow(temp, 1.0 / vec3(m1));
|
||||
}
|
||||
|
||||
// Applies the appropriate EOTF to convert nonlinear electrical values to linear
|
||||
// optical values. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyEotf(highp vec3 electricalColor) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return pqEotf(electricalColor);
|
||||
} else if (uInputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return hlgEotf(electricalColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
// Apply the HLG BT2020 to BT709 OOTF.
|
||||
highp vec3 applyHlgBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
// Reference ("HLG Reference OOTF" section):
|
||||
// https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-2-201807-I!!PDF-E.pdf
|
||||
// Matrix values based on computeXYZMatrix(BT2020Primaries, BT2020WhitePoint)
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/base/libs/hwui/utils/HostColorSpace.cpp;l=200-232;drc=86bd214059cd6150304888a285941bf74af5b687
|
||||
const mat3 RGB_TO_XYZ_BT2020 =
|
||||
mat3(0.63695805f, 0.26270021f, 0.00000000f, 0.14461690f, 0.67799807f,
|
||||
0.02807269f, 0.16888098f, 0.05930172f, 1.06098506f);
|
||||
// Matrix values based on computeXYZMatrix(BT709Primaries, BT709WhitePoint)
|
||||
const mat3 XYZ_TO_RGB_BT709 =
|
||||
mat3(3.24096994f, -0.96924364f, 0.05563008f, -1.53738318f, 1.87596750f,
|
||||
-0.20397696f, -0.49861076f, 0.04155506f, 1.05697151f);
|
||||
// hlgGamma is 1.2 + 0.42 * log10(nominalPeakLuminance/1000);
|
||||
// nominalPeakLuminance was selected to use a 500 as a typical value, used
|
||||
// in
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/tonemap/tonemap.cpp;drc=7a577450e536aa1e99f229a0cb3d3531c82e8a8d;l=62,
|
||||
// b/199162498#comment35, and
|
||||
// https://www.microsoft.com/applied-sciences/uploads/projects/investigation-of-hdr-vs-tone-mapped-sdr/investigation-of-hdr-vs-tone-mapped-sdr.pdf.
|
||||
const float hlgGamma = 1.0735674018211279;
|
||||
|
||||
vec3 linearXyzBt2020 = RGB_TO_XYZ_BT2020 * linearRgbBt2020;
|
||||
vec3 linearXyzBt709 =
|
||||
linearXyzBt2020 * pow(linearXyzBt2020[1], hlgGamma - 1.0);
|
||||
vec3 linearRgbBt709 = clamp((XYZ_TO_RGB_BT709 * linearXyzBt709), 0.0, 1.0);
|
||||
return linearRgbBt709;
|
||||
}
|
||||
|
||||
// Apply the PQ BT2020 to BT709 OOTF.
|
||||
highp vec3 applyPqBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
float pqPeakLuminance = 10000.0;
|
||||
float sdrPeakLuminance = 500.0;
|
||||
|
||||
return linearRgbBt2020 * pqPeakLuminance / sdrPeakLuminance;
|
||||
}
|
||||
|
||||
highp vec3 applyBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return applyPqBt2020ToBt709Ootf(linearRgbBt2020);
|
||||
} else if (uInputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return applyHlgBt2020ToBt709Ootf(linearRgbBt2020);
|
||||
} else {
|
||||
// Output green as an obviously visible error.
|
||||
return vec3(0.0, 1.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG OETF for one channel.
|
||||
highp float hlgOetfSingleChannel(highp float linearChannel) {
|
||||
// Specification:
|
||||
// https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_HLG
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=529-543;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float a = 0.17883277;
|
||||
const highp float b = 0.28466892;
|
||||
const highp float c = 0.55991073;
|
||||
|
||||
return linearChannel <= 1.0 / 12.0 ? sqrt(3.0 * linearChannel)
|
||||
: a * log(12.0 * linearChannel - b) + c;
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG OETF.
|
||||
highp vec3 hlgOetf(highp vec3 linearColor) {
|
||||
return vec3(hlgOetfSingleChannel(linearColor.r),
|
||||
hlgOetfSingleChannel(linearColor.g),
|
||||
hlgOetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020, PQ / ST2084 OETF.
|
||||
highp vec3 pqOetf(highp vec3 linearColor) {
|
||||
// Specification:
|
||||
// https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_PQ
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=514-527;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float m1 = (2610.0 / 16384.0);
|
||||
const highp float m2 = (2523.0 / 4096.0) * 128.0;
|
||||
const highp float c1 = (3424.0 / 4096.0);
|
||||
const highp float c2 = (2413.0 / 4096.0) * 32.0;
|
||||
const highp float c3 = (2392.0 / 4096.0) * 32.0;
|
||||
|
||||
highp vec3 temp = pow(linearColor, vec3(m1));
|
||||
temp = (c1 + c2 * temp) / (1.0 + c3 * temp);
|
||||
return pow(temp, vec3(m2));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF for one channel.
|
||||
float gamma22OetfSingleChannel(highp float linearChannel) {
|
||||
// Reference:
|
||||
// https://developer.android.com/reference/android/hardware/DataSpace#TRANSFER_GAMMA2_2
|
||||
return pow(linearChannel, (1.0 / 2.2));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF.
|
||||
vec3 gamma22Oetf(highp vec3 linearColor) {
|
||||
return vec3(gamma22OetfSingleChannel(linearColor.r),
|
||||
gamma22OetfSingleChannel(linearColor.g),
|
||||
gamma22OetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return pqOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return hlgOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_GAMMA_2_2) {
|
||||
return gamma22Oetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_LINEAR) {
|
||||
return linearColor;
|
||||
} else {
|
||||
// Output blue as an obviously visible error.
|
||||
return vec3(0.0, 0.0, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
vec3 yuvToRgb(vec3 yuv) {
|
||||
const vec3 yuvOffset = vec3(0.0625, 0.5, 0.5);
|
||||
return clamp(uYuvToRgbColorTransform * (yuv - yuvOffset), 0.0, 1.0);
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec3 srcYuv = texture(uTexSampler, vTexSamplingCoord).xyz;
|
||||
vec3 opticalColorBt2020 = applyEotf(yuvToRgb(srcYuv));
|
||||
vec4 opticalColor =
|
||||
(uApplyHdrToSdrToneMapping == 1)
|
||||
? vec4(applyBt2020ToBt709Ootf(opticalColorBt2020), 1.0)
|
||||
: vec4(opticalColorBt2020, 1.0);
|
||||
vec4 transformedColors = uRgbMatrix * opticalColor;
|
||||
outColor = vec4(applyOetf(transformedColors.rgb), 1.0);
|
||||
}
|
||||
@@ -1,227 +0,0 @@
|
||||
#version 300 es
|
||||
// Copyright 2022 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 3 fragment shader that:
|
||||
// 1. Samples electrical (HLG or PQ) BT.2020 RGB from an internal texture.
|
||||
// 2. Applies an EOTF based on uInputColorTransfer, yielding optical linear
|
||||
// BT.2020 RGB.
|
||||
// 3. Optionally applies a BT2020 to BT709 OOTF, if OpenGL tone-mapping is
|
||||
// requested via uApplyHdrToSdrToneMapping.
|
||||
// 4. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 5. Outputs as requested by uOutputColorTransfer. Use COLOR_TRANSFER_LINEAR
|
||||
// for outputting to intermediate shaders, or COLOR_TRANSFER_ST2084 /
|
||||
// COLOR_TRANSFER_HLG to output electrical colors via an OETF (e.g. to an
|
||||
// encoder).
|
||||
// The output will be red or blue if an error has occurred.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
uniform mat4 uRgbMatrix;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_ST2084 and COLOR_TRANSFER_HLG are allowed.
|
||||
uniform int uInputColorTransfer;
|
||||
uniform int uApplyHdrToSdrToneMapping;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_LINEAR, COLOR_TRANSFER_GAMMA_2_2, COLOR_TRANSFER_ST2084,
|
||||
// and COLOR_TRANSFER_HLG are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
in vec2 vTexSamplingCoord;
|
||||
out vec4 outColor;
|
||||
|
||||
// LINT.IfChange(color_transfer)
|
||||
const int COLOR_TRANSFER_LINEAR = 1;
|
||||
const int COLOR_TRANSFER_GAMMA_2_2 = 10;
|
||||
const int COLOR_TRANSFER_ST2084 = 6;
|
||||
const int COLOR_TRANSFER_HLG = 7;
|
||||
|
||||
// TODO(b/227624622): Consider using mediump to save precision, if it won't lead
|
||||
// to noticeable quantization errors.
|
||||
|
||||
// BT.2100 / BT.2020 HLG EOTF for one channel.
|
||||
highp float hlgEotfSingleChannel(highp float hlgChannel) {
|
||||
// Specification:
|
||||
// https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_HLG
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=265-279;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float a = 0.17883277;
|
||||
const highp float b = 0.28466892;
|
||||
const highp float c = 0.55991073;
|
||||
return hlgChannel <= 0.5 ? hlgChannel * hlgChannel / 3.0
|
||||
: (b + exp((hlgChannel - c) / a)) / 12.0;
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG EOTF.
|
||||
highp vec3 hlgEotf(highp vec3 hlgColor) {
|
||||
return vec3(hlgEotfSingleChannel(hlgColor.r),
|
||||
hlgEotfSingleChannel(hlgColor.g),
|
||||
hlgEotfSingleChannel(hlgColor.b));
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 PQ EOTF.
|
||||
highp vec3 pqEotf(highp vec3 pqColor) {
|
||||
// Specification:
|
||||
// https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_PQ
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=250-263;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float m1 = (2610.0 / 16384.0);
|
||||
const highp float m2 = (2523.0 / 4096.0) * 128.0;
|
||||
const highp float c1 = (3424.0 / 4096.0);
|
||||
const highp float c2 = (2413.0 / 4096.0) * 32.0;
|
||||
const highp float c3 = (2392.0 / 4096.0) * 32.0;
|
||||
|
||||
highp vec3 temp = pow(clamp(pqColor, 0.0, 1.0), 1.0 / vec3(m2));
|
||||
temp = max(temp - c1, 0.0) / (c2 - c3 * temp);
|
||||
return pow(temp, 1.0 / vec3(m1));
|
||||
}
|
||||
|
||||
// Applies the appropriate EOTF to convert nonlinear electrical values to linear
|
||||
// optical values. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyEotf(highp vec3 electricalColor) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return pqEotf(electricalColor);
|
||||
} else if (uInputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return hlgEotf(electricalColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
// Apply the HLG BT2020 to BT709 OOTF.
|
||||
highp vec3 applyHlgBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
// Reference ("HLG Reference OOTF" section):
|
||||
// https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-2-201807-I!!PDF-E.pdf
|
||||
// Matrix values based on computeXYZMatrix(BT2020Primaries, BT2020WhitePoint)
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/base/libs/hwui/utils/HostColorSpace.cpp;l=200-232;drc=86bd214059cd6150304888a285941bf74af5b687
|
||||
const mat3 RGB_TO_XYZ_BT2020 =
|
||||
mat3(0.63695805f, 0.26270021f, 0.00000000f, 0.14461690f, 0.67799807f,
|
||||
0.02807269f, 0.16888098f, 0.05930172f, 1.06098506f);
|
||||
// Matrix values based on computeXYZMatrix(BT709Primaries, BT709WhitePoint)
|
||||
const mat3 XYZ_TO_RGB_BT709 =
|
||||
mat3(3.24096994f, -0.96924364f, 0.05563008f, -1.53738318f, 1.87596750f,
|
||||
-0.20397696f, -0.49861076f, 0.04155506f, 1.05697151f);
|
||||
// hlgGamma is 1.2 + 0.42 * log10(nominalPeakLuminance/1000);
|
||||
// nominalPeakLuminance was selected to use a 500 as a typical value, used
|
||||
// in
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/tonemap/tonemap.cpp;drc=7a577450e536aa1e99f229a0cb3d3531c82e8a8d;l=62,
|
||||
// b/199162498#comment35, and
|
||||
// https://www.microsoft.com/applied-sciences/uploads/projects/investigation-of-hdr-vs-tone-mapped-sdr/investigation-of-hdr-vs-tone-mapped-sdr.pdf.
|
||||
const float hlgGamma = 1.0735674018211279;
|
||||
|
||||
vec3 linearXyzBt2020 = RGB_TO_XYZ_BT2020 * linearRgbBt2020;
|
||||
vec3 linearXyzBt709 =
|
||||
linearXyzBt2020 * pow(linearXyzBt2020[1], hlgGamma - 1.0);
|
||||
vec3 linearRgbBt709 = clamp((XYZ_TO_RGB_BT709 * linearXyzBt709), 0.0, 1.0);
|
||||
return linearRgbBt709;
|
||||
}
|
||||
|
||||
// Apply the PQ BT2020 to BT709 OOTF.
|
||||
highp vec3 applyPqBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
float pqPeakLuminance = 10000.0;
|
||||
float sdrPeakLuminance = 500.0;
|
||||
|
||||
return linearRgbBt2020 * pqPeakLuminance / sdrPeakLuminance;
|
||||
}
|
||||
|
||||
highp vec3 applyBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return applyPqBt2020ToBt709Ootf(linearRgbBt2020);
|
||||
} else if (uInputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return applyHlgBt2020ToBt709Ootf(linearRgbBt2020);
|
||||
} else {
|
||||
// Output green as an obviously visible error.
|
||||
return vec3(0.0, 1.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG OETF for one channel.
|
||||
highp float hlgOetfSingleChannel(highp float linearChannel) {
|
||||
// Specification:
|
||||
// https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_HLG
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=529-543;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float a = 0.17883277;
|
||||
const highp float b = 0.28466892;
|
||||
const highp float c = 0.55991073;
|
||||
|
||||
return linearChannel <= 1.0 / 12.0 ? sqrt(3.0 * linearChannel)
|
||||
: a * log(12.0 * linearChannel - b) + c;
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG OETF.
|
||||
highp vec3 hlgOetf(highp vec3 linearColor) {
|
||||
return vec3(hlgOetfSingleChannel(linearColor.r),
|
||||
hlgOetfSingleChannel(linearColor.g),
|
||||
hlgOetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020, PQ / ST2084 OETF.
|
||||
highp vec3 pqOetf(highp vec3 linearColor) {
|
||||
// Specification:
|
||||
// https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_PQ
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=514-527;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float m1 = (2610.0 / 16384.0);
|
||||
const highp float m2 = (2523.0 / 4096.0) * 128.0;
|
||||
const highp float c1 = (3424.0 / 4096.0);
|
||||
const highp float c2 = (2413.0 / 4096.0) * 32.0;
|
||||
const highp float c3 = (2392.0 / 4096.0) * 32.0;
|
||||
|
||||
highp vec3 temp = pow(linearColor, vec3(m1));
|
||||
temp = (c1 + c2 * temp) / (1.0 + c3 * temp);
|
||||
return pow(temp, vec3(m2));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF for one channel.
|
||||
float gamma22OetfSingleChannel(highp float linearChannel) {
|
||||
// Reference:
|
||||
// https://developer.android.com/reference/android/hardware/DataSpace#TRANSFER_GAMMA2_2
|
||||
return pow(linearChannel, (1.0 / 2.2));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF.
|
||||
vec3 gamma22Oetf(highp vec3 linearColor) {
|
||||
return vec3(gamma22OetfSingleChannel(linearColor.r),
|
||||
gamma22OetfSingleChannel(linearColor.g),
|
||||
gamma22OetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return pqOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return hlgOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_GAMMA_2_2) {
|
||||
return gamma22Oetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_LINEAR) {
|
||||
return linearColor;
|
||||
} else {
|
||||
// Output blue as an obviously visible error.
|
||||
return vec3(0.0, 0.0, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec3 opticalColorBt2020 =
|
||||
applyEotf(texture(uTexSampler, vTexSamplingCoord).xyz);
|
||||
vec4 opticalColor =
|
||||
(uApplyHdrToSdrToneMapping == 1)
|
||||
? vec4(applyBt2020ToBt709Ootf(opticalColorBt2020), 1.0)
|
||||
: vec4(opticalColorBt2020, 1.0);
|
||||
vec4 transformedColors = uRgbMatrix * opticalColor;
|
||||
outColor = vec4(applyOetf(transformedColors.rgb), 1.0);
|
||||
}
|
||||
@@ -1,109 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2021 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 2 fragment shader that:
|
||||
// 1. Samples from an external texture with uTexSampler copying from this
|
||||
// texture to the current output.
|
||||
// 2. Transforms the electrical colors to optical colors using the SMPTE 170M
|
||||
// EOTF.
|
||||
// 3. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 4. Outputs as requested by uOutputColorTransfer. Use COLOR_TRANSFER_LINEAR
|
||||
// for outputting to intermediate shaders, or COLOR_TRANSFER_SDR_VIDEO to
|
||||
// output electrical colors via an OETF (e.g. to an encoder).
|
||||
|
||||
#extension GL_OES_EGL_image_external : require
|
||||
precision mediump float;
|
||||
uniform samplerExternalOES uTexSampler;
|
||||
uniform mat4 uRgbMatrix;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_LINEAR and COLOR_TRANSFER_SDR_VIDEO are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
uniform int uEnableColorTransfer;
|
||||
|
||||
const float inverseGamma = 0.4500;
|
||||
const float gamma = 1.0 / inverseGamma;
|
||||
const int GL_FALSE = 0;
|
||||
const int GL_TRUE = 1;
|
||||
|
||||
// Transforms a single channel from electrical to optical SDR using the SMPTE
|
||||
// 170M OETF.
|
||||
float smpte170mEotfSingleChannel(float electricalChannel) {
|
||||
// Specification:
|
||||
// https://www.itu.int/rec/R-REC-BT.1700-0-200502-I/en
|
||||
return electricalChannel < 0.0812
|
||||
? electricalChannel / 4.500
|
||||
: pow((electricalChannel + 0.099) / 1.099, gamma);
|
||||
}
|
||||
|
||||
// Transforms electrical to optical SDR using the SMPTE 170M EOTF.
|
||||
vec3 smpte170mEotf(vec3 electricalColor) {
|
||||
return vec3(smpte170mEotfSingleChannel(electricalColor.r),
|
||||
smpte170mEotfSingleChannel(electricalColor.g),
|
||||
smpte170mEotfSingleChannel(electricalColor.b));
|
||||
}
|
||||
|
||||
// Transforms a single channel from optical to electrical SDR.
|
||||
float smpte170mOetfSingleChannel(float opticalChannel) {
|
||||
// Specification:
|
||||
// https://www.itu.int/rec/R-REC-BT.1700-0-200502-I/en
|
||||
return opticalChannel < 0.018
|
||||
? opticalChannel * 4.500
|
||||
: 1.099 * pow(opticalChannel, inverseGamma) - 0.099;
|
||||
}
|
||||
|
||||
// Transforms optical SDR colors to electrical SDR using the SMPTE 170M OETF.
|
||||
vec3 smpte170mOetf(vec3 opticalColor) {
|
||||
return vec3(smpte170mOetfSingleChannel(opticalColor.r),
|
||||
smpte170mOetfSingleChannel(opticalColor.g),
|
||||
smpte170mOetfSingleChannel(opticalColor.b));
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
// LINT.IfChange(color_transfer)
|
||||
const int COLOR_TRANSFER_LINEAR = 1;
|
||||
const int COLOR_TRANSFER_SDR_VIDEO = 3;
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_LINEAR ||
|
||||
uEnableColorTransfer == GL_FALSE) {
|
||||
return linearColor;
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_SDR_VIDEO) {
|
||||
return smpte170mOetf(linearColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
vec3 applyEotf(vec3 electricalColor) {
|
||||
if (uEnableColorTransfer == GL_TRUE) {
|
||||
return smpte170mEotf(electricalColor);
|
||||
} else if (uEnableColorTransfer == GL_FALSE) {
|
||||
return electricalColor;
|
||||
} else {
|
||||
// Output blue as an obviously visible error.
|
||||
return vec3(0.0, 0.0, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
vec3 linearInputColor = applyEotf(inputColor.rgb);
|
||||
|
||||
vec4 transformedColors = uRgbMatrix * vec4(linearInputColor, 1);
|
||||
|
||||
gl_FragColor = vec4(applyOetf(transformedColors.rgb), inputColor.a);
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2023 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 2 fragment shader that:
|
||||
// 1. Samples from an input texture created from an internal texture (e.g. a
|
||||
// texture created from a bitmap), with uTexSampler copying from this texture
|
||||
// to the current output.
|
||||
// 2. Transforms the electrical colors to optical colors using the SMPTE 170M
|
||||
// EOTF or the sRGB EOTF, as requested by uInputColorTransfer.
|
||||
// 3. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 4. Outputs as requested by uOutputColorTransfer. Use COLOR_TRANSFER_LINEAR
|
||||
// for outputting to intermediate shaders, or COLOR_TRANSFER_SDR_VIDEO to
|
||||
// output electrical colors via an OETF (e.g. to an encoder).
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
uniform mat4 uRgbMatrix;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_SRGB and COLOR_TRANSFER_SDR_VIDEO are allowed.
|
||||
uniform int uInputColorTransfer;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_LINEAR and COLOR_TRANSFER_SDR_VIDEO are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
uniform int uEnableColorTransfer;
|
||||
|
||||
const float inverseGamma = 0.4500;
|
||||
const float gamma = 1.0 / inverseGamma;
|
||||
const int GL_FALSE = 0;
|
||||
const int GL_TRUE = 1;
|
||||
// LINT.IfChange(color_transfer)
|
||||
const int COLOR_TRANSFER_LINEAR = 1;
|
||||
const int COLOR_TRANSFER_SRGB = 2;
|
||||
const int COLOR_TRANSFER_SDR_VIDEO = 3;
|
||||
|
||||
// Transforms a single channel from electrical to optical SDR using the sRGB
|
||||
// EOTF.
|
||||
float srgbEotfSingleChannel(float electricalChannel) {
|
||||
// Specification:
|
||||
// https://developer.android.com/ndk/reference/group/a-data-space#group___a_data_space_1gga2759ad19cae46646cc5f7002758c4a1cac1bef6aa3a72abbf4a651a0bfb117f96
|
||||
return electricalChannel <= 0.04045
|
||||
? electricalChannel / 12.92
|
||||
: pow((electricalChannel + 0.055) / 1.055, 2.4);
|
||||
}
|
||||
|
||||
// Transforms electrical to optical SDR using the sRGB EOTF.
|
||||
vec3 srgbEotf(const vec3 electricalColor) {
|
||||
return vec3(srgbEotfSingleChannel(electricalColor.r),
|
||||
srgbEotfSingleChannel(electricalColor.g),
|
||||
srgbEotfSingleChannel(electricalColor.b));
|
||||
}
|
||||
|
||||
// Transforms a single channel from electrical to optical SDR using the SMPTE
|
||||
// 170M OETF.
|
||||
float smpte170mEotfSingleChannel(float electricalChannel) {
|
||||
// Specification:
|
||||
// https://www.itu.int/rec/R-REC-BT.1700-0-200502-I/en
|
||||
return electricalChannel < 0.0812
|
||||
? electricalChannel / 4.500
|
||||
: pow((electricalChannel + 0.099) / 1.099, gamma);
|
||||
}
|
||||
|
||||
// Transforms electrical to optical SDR using the SMPTE 170M EOTF.
|
||||
vec3 smpte170mEotf(vec3 electricalColor) {
|
||||
return vec3(smpte170mEotfSingleChannel(electricalColor.r),
|
||||
smpte170mEotfSingleChannel(electricalColor.g),
|
||||
smpte170mEotfSingleChannel(electricalColor.b));
|
||||
}
|
||||
|
||||
// Transforms a single channel from optical to electrical SDR.
|
||||
float smpte170mOetfSingleChannel(float opticalChannel) {
|
||||
// Specification:
|
||||
// https://www.itu.int/rec/R-REC-BT.1700-0-200502-I/en
|
||||
return opticalChannel < 0.018
|
||||
? opticalChannel * 4.500
|
||||
: 1.099 * pow(opticalChannel, inverseGamma) - 0.099;
|
||||
}
|
||||
|
||||
// Transforms optical SDR colors to electrical SDR using the SMPTE 170M OETF.
|
||||
vec3 smpte170mOetf(vec3 opticalColor) {
|
||||
return vec3(smpte170mOetfSingleChannel(opticalColor.r),
|
||||
smpte170mOetfSingleChannel(opticalColor.g),
|
||||
smpte170mOetfSingleChannel(opticalColor.b));
|
||||
}
|
||||
// Applies the appropriate EOTF to convert nonlinear electrical signals to
|
||||
// linear optical signals. Input and output are both normalized to [0, 1].
|
||||
vec3 applyEotf(vec3 electricalColor) {
|
||||
if (uEnableColorTransfer == GL_TRUE) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_SRGB) {
|
||||
return srgbEotf(electricalColor);
|
||||
} else if (uInputColorTransfer == COLOR_TRANSFER_SDR_VIDEO) {
|
||||
return smpte170mEotf(electricalColor);
|
||||
} else {
|
||||
// Output blue as an obviously visible error.
|
||||
return vec3(0.0, 0.0, 1.0);
|
||||
}
|
||||
} else if (uEnableColorTransfer == GL_FALSE) {
|
||||
return electricalColor;
|
||||
} else {
|
||||
// Output blue as an obviously visible error.
|
||||
return vec3(0.0, 0.0, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_LINEAR ||
|
||||
uEnableColorTransfer == GL_FALSE) {
|
||||
return linearColor;
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_SDR_VIDEO) {
|
||||
return smpte170mOetf(linearColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
vec2 getAdjustedTexSamplingCoord(vec2 originalTexSamplingCoord) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_SRGB) {
|
||||
// Whereas the Android system uses the top-left corner as (0,0) of the
|
||||
// coordinate system, OpenGL uses the bottom-left corner as (0,0), so the
|
||||
// texture gets flipped. We flip the texture vertically to ensure the
|
||||
// orientation of the output is correct.
|
||||
return vec2(originalTexSamplingCoord.x, 1.0 - originalTexSamplingCoord.y);
|
||||
} else {
|
||||
return originalTexSamplingCoord;
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor =
|
||||
texture2D(uTexSampler, getAdjustedTexSamplingCoord(vTexSamplingCoord));
|
||||
vec3 linearInputColor = applyEotf(inputColor.rgb);
|
||||
vec4 transformedColors = uRgbMatrix * vec4(linearInputColor, 1);
|
||||
|
||||
gl_FragColor = vec4(applyOetf(transformedColors.rgb), inputColor.a);
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2022 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 2 fragment shader that:
|
||||
// 1. Samples from uTexSampler, copying from this texture to the current
|
||||
// output.
|
||||
// 2. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 3. Transforms the optical colors to electrical colors using the SMPTE
|
||||
// 170M OETF.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
uniform mat4 uRgbMatrix;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_SDR and COLOR_TRANSFER_GAMMA_2_2 are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
|
||||
const float inverseGamma = 0.4500;
|
||||
|
||||
// Transforms a single channel from optical to electrical SDR using the SMPTE
|
||||
// 170M OETF.
|
||||
float smpte170mOetfSingleChannel(float opticalChannel) {
|
||||
// Specification:
|
||||
// https://www.itu.int/rec/R-REC-BT.1700-0-200502-I/en
|
||||
return opticalChannel < 0.018
|
||||
? opticalChannel * 4.500
|
||||
: 1.099 * pow(opticalChannel, inverseGamma) - 0.099;
|
||||
}
|
||||
|
||||
// Transforms optical SDR colors to electrical SDR using the SMPTE 170M OETF.
|
||||
vec3 smpte170mOetf(vec3 opticalColor) {
|
||||
return vec3(smpte170mOetfSingleChannel(opticalColor.r),
|
||||
smpte170mOetfSingleChannel(opticalColor.g),
|
||||
smpte170mOetfSingleChannel(opticalColor.b));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF for one channel.
|
||||
float gamma22OetfSingleChannel(highp float linearChannel) {
|
||||
// Reference:
|
||||
// https://developer.android.com/reference/android/hardware/DataSpace#TRANSFER_gamma22
|
||||
return pow(linearChannel, (1.0 / 2.2));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF.
|
||||
vec3 gamma22Oetf(highp vec3 linearColor) {
|
||||
return vec3(gamma22OetfSingleChannel(linearColor.r),
|
||||
gamma22OetfSingleChannel(linearColor.g),
|
||||
gamma22OetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
// LINT.IfChange(color_transfer_oetf)
|
||||
const int COLOR_TRANSFER_SDR_VIDEO = 3;
|
||||
const int COLOR_TRANSFER_GAMMA_2_2 = 10;
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_SDR_VIDEO) {
|
||||
return smpte170mOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_GAMMA_2_2) {
|
||||
return gamma22Oetf(linearColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
vec4 transformedColors = uRgbMatrix * vec4(inputColor.rgb, 1);
|
||||
|
||||
gl_FragColor = vec4(applyOetf(transformedColors.rgb), inputColor.a);
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2023 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES2 vertex shader that tiles frames horizontally.
|
||||
|
||||
attribute vec4 aFramePosition;
|
||||
uniform int uIndex;
|
||||
uniform int uCount;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
void main() {
|
||||
// Translate the coordinates from -1,+1 to 0,+2.
|
||||
float x = aFramePosition.x + 1.0;
|
||||
// Offset the frame by its index times its width (2).
|
||||
x += float(uIndex) * 2.0;
|
||||
// Shrink the frame to fit the thumbnail strip.
|
||||
x /= float(uCount);
|
||||
// Translate the coordinates back to -1,+1.
|
||||
x -= 1.0;
|
||||
|
||||
gl_Position = vec4(x, aFramePosition.yzw);
|
||||
vTexSamplingCoord = aFramePosition.xy * 0.5 + 0.5;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2021 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 2 vertex shader that applies the 4 * 4 transformation matrices
|
||||
// uTransformationMatrix and the uTexTransformationMatrix.
|
||||
|
||||
attribute vec4 aFramePosition;
|
||||
uniform mat4 uTransformationMatrix;
|
||||
uniform mat4 uTexTransformationMatrix;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
void main() {
|
||||
gl_Position = uTransformationMatrix * aFramePosition;
|
||||
vec4 texturePosition = vec4(aFramePosition.x * 0.5 + 0.5,
|
||||
aFramePosition.y * 0.5 + 0.5, 0.0, 1.0);
|
||||
vTexSamplingCoord = (uTexTransformationMatrix * texturePosition).xy;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
#version 300 es
|
||||
// Copyright 2021 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// ES 3 vertex shader that applies the 4 * 4 transformation matrices
|
||||
// uTransformationMatrix and the uTexTransformationMatrix.
|
||||
|
||||
in vec4 aFramePosition;
|
||||
uniform mat4 uTransformationMatrix;
|
||||
uniform mat4 uTexTransformationMatrix;
|
||||
out vec2 vTexSamplingCoord;
|
||||
void main() {
|
||||
gl_Position = uTransformationMatrix * aFramePosition;
|
||||
vec4 texturePosition = vec4(aFramePosition.x * 0.5 + 0.5,
|
||||
aFramePosition.y * 0.5 + 0.5, 0.0, 1.0);
|
||||
vTexSamplingCoord = (uTexTransformationMatrix * texturePosition).xy;
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
function fail(message) {
|
||||
if (message == null) {
|
||||
throw Error("❌assert error.")
|
||||
}
|
||||
|
||||
throw Error(message);
|
||||
}
|
||||
|
||||
export function assertEquals(expected, actual) {
|
||||
if (expected !== actual) {
|
||||
fail(`❌assert failed, expected:[${expected}] but was:[${actual}]`)
|
||||
}
|
||||
}
|
||||
|
||||
export function assertTrue(condition) {
|
||||
if (!condition) {
|
||||
fail()
|
||||
}
|
||||
}
|
||||
|
||||
export function assertFalse(condition) {
|
||||
if (condition) {
|
||||
fail()
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import {name, age} from './test_base_module2.mjs';
|
||||
import {assertEquals} from "./test_assert_define.js";
|
||||
|
||||
assertEquals(name, "Jack")
|
||||
assertEquals(age, 18)
|
||||
@@ -1,2 +0,0 @@
|
||||
export var name = 'Jack';
|
||||
export var age = 18;
|
||||
@@ -1,7 +0,0 @@
|
||||
import {assertEquals} from "./test_assert_define.js";
|
||||
|
||||
// dynamic import
|
||||
import("test_base_module2.mjs").then((res) => {
|
||||
assertEquals(res.name, "Jack")
|
||||
assertEquals(res.age, 18)
|
||||
})
|
||||
@@ -1,20 +0,0 @@
|
||||
function assertDate(expected, actual) {
|
||||
if ((Date.parse(expected) === new Date(expected).getTime()) && (Date.parse(expected) === actual)) {
|
||||
console.log('✅assert passed with ' + expected, 'Date.parse = ' + Date.parse(expected), 'Date.construct = ' + new Date(expected).getTime(), 'actual = ' + actual);
|
||||
} else {
|
||||
console.log('❌assert failed with ' + expected, 'Date.parse = ' + Date.parse(expected), 'Date.construct = ' + new Date(expected).getTime(), 'actual = ' + actual);
|
||||
throw Error('parse failed.');
|
||||
}
|
||||
}
|
||||
|
||||
assertDate('20130108', 1357603200000);
|
||||
assertDate('2018-04-24', 1524528000000);
|
||||
assertDate('2018-04-24 11:12', 1524539520000);
|
||||
assertDate('2018-05-02 11:12:13', 1525230733000);
|
||||
assertDate('2018-05-02 11:12:13.998', 1525230733998);
|
||||
assertDate('2018-4-1', 1522540800000);
|
||||
assertDate('2018-4-1 11:12', 1522552320000);
|
||||
assertDate('2018-4-1 1:1:1:223', 1522515661223);
|
||||
assertDate('2018-01', 1514764800000);
|
||||
assertDate('2018', 1514764800000);
|
||||
assertDate('2018-05-02T11:12:13Z', 1525259533000);
|
||||
@@ -1,65 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale en_US
|
||||
|
||||
err.not_iso8859_1=Not an ISO 8859-1 character: {0}
|
||||
err.servlet_config_not_initialized=ServletConfig has not been initialized
|
||||
value.true=true
|
||||
value.false=false
|
||||
@@ -1,66 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale fr_FR
|
||||
|
||||
err.not_iso8859_1={0} n''est pas un caractère ISO 8859-1
|
||||
value.true=true
|
||||
value.false=false
|
||||
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale ja_JP
|
||||
|
||||
err.not_iso8859_1=ISO 8859-1 \u306e\u6587\u5b57\u3067\u306f\u3042\u308a\u307e\u305b\u3093: {0}
|
||||
value.true=true
|
||||
value.false=false
|
||||
@@ -1,75 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale en_US
|
||||
|
||||
err.cookie_name_is_token=Cookie name \"{0}\" is a reserved token
|
||||
err.cookie_name_blank=Cookie name must not be null or empty
|
||||
err.io.nullArray=Null passed for byte array in write method
|
||||
err.io.indexOutOfBounds=Invalid offset [{0}] and / or length [{1}] specified for array of size [{2}]
|
||||
err.io.short_read=Short Read
|
||||
err.ise.getWriter=Illegal to call getWriter() after getOutputStream() has been called
|
||||
err.ise.getOutputStream=Illegal to call getOutputStream() after getWriter() has been called
|
||||
|
||||
http.method_not_implemented=Method {0} is not defined in RFC 2068 and is not supported by the Servlet API
|
||||
|
||||
http.method_get_not_supported=HTTP method GET is not supported by this URL
|
||||
http.method_post_not_supported=HTTP method POST is not supported by this URL
|
||||
http.method_put_not_supported=HTTP method PUT is not supported by this URL
|
||||
http.method_delete_not_supported=Http method DELETE is not supported by this URL
|
||||
@@ -1,73 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# $Id: LocalStrings_es.properties,v 1.1.1.1 2003/01/27 16:07:47 ja120114 Exp $
|
||||
#
|
||||
# Default localized string information
|
||||
# Localized para Locale es_ES
|
||||
|
||||
err.cookie_name_is_token=El Nombre de Cookie {0} es una palabra reservada
|
||||
err.io.negativelength=Longitud Negativa en el metodo write
|
||||
err.io.short_read=Lectura Corta
|
||||
|
||||
http.method_not_implemented=El Metodo {0} no esta definido en la especificacion RFC 2068 y no es soportado por la API Servlet
|
||||
|
||||
http.method_get_not_supported=El Metodo HTTP GET no es soportado por esta URL
|
||||
http.method_post_not_supported=El Metodo HTTP POST no es soportado por esta URL
|
||||
http.method_put_not_supported=El Metodo HTTP PUT no es soportado por esta URL
|
||||
http.method_delete_not_supported=El Metodo HTTP DELETE no es soportado por esta URL
|
||||
@@ -1,71 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale fr_FR
|
||||
|
||||
err.cookie_name_is_token=Le nom de cookie \"{0}\" est un \"token\" réservé
|
||||
err.io.negativelength=Taille négative donnée dans la méthode \"write\"
|
||||
err.io.short_read=Lecture partielle
|
||||
|
||||
http.method_not_implemented=Le méthode {0} n''est pas définie dans la RFC 2068 et n''est pas supportée par l''API Servlet
|
||||
|
||||
http.method_get_not_supported=La méthode HTTP GET n''est pas supportée par cette URL
|
||||
http.method_post_not_supported=La méthode HTTP POST n''est pas supportée par cette URL
|
||||
http.method_put_not_supported=La méthode HTTP PUT n''est pas supportée par cette URL
|
||||
http.method_delete_not_supported=La méthode HTTP DELETE n''est pas supportée par cette URL
|
||||
@@ -1,71 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale ja_JP
|
||||
|
||||
err.cookie_name_is_token=\u30af\u30c3\u30ad\u30fc\u540d \"{0}\" \u306f\u4e88\u7d04\u6e08\u306e\u30c8\u30fc\u30af\u30f3\u3067\u3059\u3002
|
||||
err.io.negativelength=write\u30e1\u30bd\u30c3\u30c9\u306b\u8ca0\u306e\u9577\u3055\u304c\u6307\u5b9a\u3055\u308c\u307e\u3057\u305f\u3002
|
||||
err.io.short_read=\u8aad\u307f\u8fbc\u307f\u304c\u3059\u3050\u306b\u7d42\u308f\u308a\u307e\u3057\u305f\u3002
|
||||
|
||||
http.method_not_implemented=\u30e1\u30bd\u30c3\u30c9 {0} \u306fRFC 2068\u306b\u306f\u5b9a\u7fa9\u3055\u308c\u3066\u304a\u3089\u305a\u3001\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8API\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093\u3002
|
||||
|
||||
http.method_get_not_supported=HTTP\u306eGET\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
http.method_post_not_supported=HTTP\u306ePOST\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
http.method_put_not_supported=HTTP\u306ePUT\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
http.method_delete_not_supported=HTTP\u306eDELETE\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
@@ -1,31 +0,0 @@
|
||||
body
|
||||
{
|
||||
background-color: #FFFFFF;
|
||||
margin: 10px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
h1
|
||||
{
|
||||
text-shadow: #000000 -1px -1px 1px;
|
||||
color: #FC390E;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a
|
||||
{
|
||||
color: #7036be;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
text-decoration: none;
|
||||
font-size:inherit;
|
||||
}
|
||||
|
||||
td
|
||||
{
|
||||
font-style: italic;
|
||||
padding: 2px 15px 2px 0px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
Note that PublicSuffixDatabase.gz is compiled from The Public Suffix List:
|
||||
https://publicsuffix.org/list/public_suffix_list.dat
|
||||
|
||||
It is subject to the terms of the Mozilla Public License, v. 2.0:
|
||||
https://mozilla.org/MPL/2.0/
|
||||
@@ -1,616 +0,0 @@
|
||||
|
||||
## constructor exceptions
|
||||
|
||||
# cert path is empty
|
||||
CertPathReviewer.emptyCertPath.title = CertPath is empty
|
||||
CertPathReviewer.emptyCertPath.text = PKIXCertPathReviewer: the CertPath is empty.
|
||||
CertPathReviewer.emptyCertPath.summary = PKIXCertPathReviewer: the CertPath is empty.
|
||||
CertPathReviewer.emptyCertPath.details = PKIXCertPathReviewer: the CertPath is empty.
|
||||
|
||||
## name constraints processing errors
|
||||
|
||||
# cert DN is not in the permitted tree
|
||||
# {0} DN as String
|
||||
CertPathReviewer.notPermittedDN.title = Name constraint error: certificate DN is not permitted
|
||||
CertPathReviewer.notPermittedDN.text = Name constraint error: the certificate DN {0} is not permitted.
|
||||
CertPathReviewer.notPermittedDN.summary = Name constraint error: certificate DN is not permitted.
|
||||
CertPathReviewer.notPermittedDN.details = Name constraint checking error. The certificate DN {0} is not in the permitted set of DNs.
|
||||
|
||||
# cert DN is in the excluded tree
|
||||
# {0} DN as String
|
||||
CertPathReviewer.excludedDN.title = Name constraint error: certificate DN is excluded
|
||||
CertPathReviewer.excludedDN.text = Name constraint error: The certificate DN {0} is excluded.
|
||||
CertPathReviewer.excludedDN.summary = Name constraint error: certificate DN is excluded.
|
||||
CertPathReviewer.excludedDN.details = Name constraint checking error. The certificate DN {0} is inside of the excluded set of DNs.
|
||||
|
||||
# cert email is not in the permitted tree
|
||||
# {0} email address as String
|
||||
CertPathReviewer.notPermittedEmail.title = Name constraint error: not permitted email address
|
||||
CertPathReviewer.notPermittedEmail.text = Name constraint error: certificate contains the not permitted email address {0}.
|
||||
CertPathReviewer.notPermittedEmail.summary = Name constraint error: not permitted email address.
|
||||
CertPathReviewer.notPermittedEmail.details = Name constraint checking error. The certificate contains the email address {0} which is not in the permitted set of email addresses.
|
||||
|
||||
# cert email is in the excluded tree
|
||||
# {0} email as String
|
||||
CertPathReviewer.excludedEmail.title = Name constraint error: excluded email address
|
||||
CertPathReviewer.excludedEmail.text = Name constraint error: certificate contains the excluded email address {0}.
|
||||
CertPathReviewer.excludedEmail.summary = Name constraint error: excluded email address.
|
||||
CertPathReviewer.excludedEmail.details = Name constraint checking error. The certificate contains the email address {0} which is in the excluded set of email addresses.
|
||||
|
||||
# cert IP is not in the permitted tree
|
||||
# {0} ip address as String
|
||||
CertPathReviewer.notPermittedIP.title = Name constraint error: not permitted IP address
|
||||
CertPathReviewer.notPermittedIP.text = Name constraint error: certificate contains the not permitted IP address {0}.
|
||||
CertPathReviewer.notPermittedIP.summary = Name constraint error: not permitted IP address.
|
||||
CertPathReviewer.notPermittedIP.details = Name constraint checking error. The certificate contains the IP address {0} which is not in the permitted set of IP addresses.
|
||||
|
||||
# cert ip is in the excluded tree
|
||||
# {0} ip address as String
|
||||
CertPathReviewer.excludedIP.title = Name constraint error: excluded IP address
|
||||
CertPathReviewer.excludedIP.text = Name constraint error: certificate contains the excluded IP address {0}.
|
||||
CertPathReviewer.excludedIP.summary = Name constraint error: excluded IP address.
|
||||
CertPathReviewer.excludedIP.details = Name constraint checking error. The certificate contains the IP address {0} which is in the excluded set of IP addresses.
|
||||
|
||||
# error processing the name constraints extension
|
||||
CertPathReviewer.ncExtError.title = Name constraint checking failed
|
||||
CertPathReviewer.ncExtError.text = Name constraint checking failed: there was an error processing the name constraints extension of the certificate.
|
||||
CertPathReviewer.ncExtError.summary = Error processing the name constraints extension.
|
||||
CertPathReviewer.ncExtError.details = Name constraint checking failed: there was an error processing the name constraints extension of the certificate.
|
||||
|
||||
# error processing the subject alternative name extension
|
||||
CertPathReviewer.subjAltNameExtError.title = Name constraint checking failed
|
||||
CertPathReviewer.subjAltNameExtError.text = Name constraint checking failed: there was an error processing the subject alternative name extension of the certificate.
|
||||
CertPathReviewer.subjAltNameExtError.summary = Error processing the subject alternative name extension.
|
||||
CertPathReviewer.subjAltNameExtError.details = Name constraint checking failed: there was an error processing the subject alternative name extension of the certificate.
|
||||
|
||||
# exception extracting subject name when checking subtrees
|
||||
# {0} subject Principal
|
||||
CertPathReviewer.ncSubjectNameError.title = Name constraint checking failed
|
||||
CertPathReviewer.ncSubjectNameError.text = Name constraint checking failed: there was an exception extracting the DN from the certificate.
|
||||
CertPathReviewer.ncSubjectNameError.summary = Name constraint checking failed: exception extracting the DN.
|
||||
CertPathReviewer.ncSubjectNameError.details = Name constraint checking failed: there was an exception extracting the DN from the certificate.
|
||||
|
||||
|
||||
## path length errors
|
||||
|
||||
# max path length extended
|
||||
CertPathReviewer.pathLengthExtended.title = Maximum path length extended
|
||||
CertPathReviewer.pathLengthExtended.text = Certificate path invalid: Maximum path length extended.
|
||||
CertPathReviewer.pathLengthExtended.summary = Certificate path invalid: Maximum path length extended.
|
||||
CertPathReviewer.pathLengthExtended.details = Certificate path invalid: Maximum path length extended.
|
||||
|
||||
# error reading length constraint from basic constraint extension
|
||||
CertPathReviewer.processLengthConstError.title = Path length checking failed
|
||||
CertPathReviewer.processLengthConstError.text = Path length checking failed: there was an error processing the basic constraint extension of the certificate.
|
||||
CertPathReviewer.processLengthConstError.summary = Error processing the subject alternative name extension.
|
||||
CertPathReviewer.processLengthConstError.details = Path length checking failed: there was an error processing the basic constraint extension of the certificate.
|
||||
|
||||
|
||||
## path length notifications
|
||||
|
||||
# total path length as defined in rfc 3280
|
||||
# {0} the path length as Integer
|
||||
CertPathReviewer.totalPathLength.title = Total path length
|
||||
CertPathReviewer.totalPathLength.text = The total path length without self-signed certificates is {0}.
|
||||
CertPathReviewer.totalPathLength.summary = The total path length without self-signed certificates is {0}.
|
||||
CertPathReviewer.totalPathLength.details = The total path length without self-signed certificates, as defined in RFC 3280, is {0}.
|
||||
|
||||
|
||||
## critical extensions errors
|
||||
|
||||
# one unknown critical extension
|
||||
# {0} extension as String
|
||||
CertPathReviewer.unknownCriticalExt.title = Unknown critical extension
|
||||
CertPathReviewer.unknownCriticalExt.text = The certificate contains the unknown critical extension {0}.
|
||||
CertPathReviewer.unknownCriticalExt.summary = Unknown critical extension: {0}.
|
||||
CertPathReviewer.unknownCriticalExt.details = The certificate contains the unknown critical extension with the OID {0}.
|
||||
|
||||
# more unknown critical extensions
|
||||
# {0} extensions as Set of Strings
|
||||
CertPathReviewer.unknownCriticalExts.title = Unknown critical extensions
|
||||
CertPathReviewer.unknownCriticalExts.text = The certificate contains two or more unknown critical extensions: {0}.
|
||||
CertPathReviewer.unknownCriticalExts.summary = Unknown critical extensions: {0}.
|
||||
CertPathReviewer.unknownCriticalExts.details = The certificate contains two or more unknown critical extensions with the OIDs: {0}.
|
||||
|
||||
# error processing critical extension
|
||||
# {0} the message of the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.criticalExtensionError.title = Error processing a critical extension
|
||||
CertPathReviewer.criticalExtensionError.text = Error processing a critical extension. A {0} occurred.
|
||||
CertPathReviewer.criticalExtensionError.summary = Error processing a critical extension. A {0} occurred.
|
||||
CertPathReviewer.criticalExtensionError.details = Error processing a critical extension. A {0} occurred. Cause: {0}.
|
||||
|
||||
# error initializing the certpath checkers
|
||||
# {0} the message of the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.certPathCheckerError.title = Checking critical extensions failed
|
||||
CertPathReviewer.certPathCheckerError.text = Checking critical extensions failed: there was a {2} initializing a CertPathChecker.
|
||||
CertPathReviewer.certPathCheckerError.summary = Checking critical extensions failed: {2} initializing a CertPathChecker
|
||||
CertPathReviewer.certPathCheckerError.details = Checking critical extensions failed: there was an {2} initializing a CertPathChecker. Cause: {0}
|
||||
|
||||
|
||||
## check signature errors
|
||||
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.title = Root key with valid signature but no trust anchor
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.text = The certificate has a valid signature, but is no trust anchor
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.summary = The certificate has a valid signature, but is no trust anchor
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.details = The certificate has a valid signature, but is no trust anchor
|
||||
|
||||
# trustanchor found, but certificate validation failed
|
||||
CertPathReviewer.trustButInvalidCert.title = Trust anchor found, but different public key
|
||||
CertPathReviewer.trustButInvalidCert.text = A trust anchor was found. But it has a different public key, than was used to issue the first certificate of the cert path.
|
||||
CertPathReviewer.trustButInvalidCert.summary = A trust anchor was found. But it has a different public key, than was used to issue the first certificate of the cert path.
|
||||
CertPathReviewer.trustButInvalidCert.details = A trust anchor was found. But it has a different public key, than was used to issue the first certificate of the cert path.
|
||||
|
||||
# trustanchor - cannot extract issuer
|
||||
CertPathReviewer.trustAnchorIssuerError.title = Finding trust anchor failed
|
||||
CertPathReviewer.trustAnchorIssuerError.text = Finding trust anchor failed: cannot extract issuer from certificate.
|
||||
CertPathReviewer.trustAnchorIssuerError.summary = Finding trust anchor failed: cannot extract issuer from certificate.
|
||||
CertPathReviewer.trustAnchorIssuerError.details = Finding trust anchor failed: cannot extract issuer from certificate.
|
||||
|
||||
# no trustanchor was found for the certificate path
|
||||
# {0} issuer of the root certificate of the path
|
||||
# {1} number of trusted root certificates (trustanchors) provided
|
||||
CertPathReviewer.noTrustAnchorFound.title = No trusted root certificate found
|
||||
CertPathReviewer.noTrustAnchorFound.text = The root certificate of the certificate path was issued by a CA that is not in the the trusted-root-certificate-store used for the path validation. The name of the CA is "{0}".
|
||||
CertPathReviewer.noTrustAnchorFound.summary = The root certificate of the certificate path was issued by a CA that is not in the the trusted-root-certificate-store used for the path validation.
|
||||
CertPathReviewer.noTrustAnchorFound.details = The root certificate of the certificate path was issued by a CA that is not in the the trusted-root-certificate-store used for the path validation. The name of the CA is "{0}". The trusted-root-certificate store contains {1} CA(s).
|
||||
|
||||
# conflicting trust anchors
|
||||
# {0} number of trustanchors found (Integer)
|
||||
# {1} the ca name
|
||||
CertPathReviewer.conflictingTrustAnchors.title = Corrupt trust root store
|
||||
CertPathReviewer.conflictingTrustAnchors.text = Warning: corrupt trust root store: There are {0} trusted public keys for the CA "{1}" - please ensure with CA which is the correct key.
|
||||
CertPathReviewer.conflictingTrustAnchors.summary = Warning: corrupt trust root store: There are {0} trusted public keys for the CA "{1}" - please ensure with CA which is the correct key.
|
||||
CertPathReviewer.conflictingTrustAnchors.details = Warning: corrupt trust root store: There are {0} trusted public keys for the CA "{1}" - please ensure with CA which is the correct key.
|
||||
|
||||
# trustanchor DN is invalid
|
||||
# {0} DN of the Trustanchor
|
||||
CertPathReviewer.trustDNInvalid.title = DN of TrustAnchor is improperly specified
|
||||
CertPathReviewer.trustDNInvalid.text = The DN of the TrustAnchor is improperly specified: {0}.
|
||||
CertPathReviewer.trustDNInvalid.summary = The DN of the TrustAnchor is improperly specified.
|
||||
CertPathReviewer.trustDNInvalid.details = The DN of the TrustAnchor is improperly specified: {0}. It's not a valid X.500 name. See RFC 1779 or RFC 2253.
|
||||
|
||||
# trustanchor public key algorithm error
|
||||
CertPathReviewer.trustPubKeyError.title = Error processing public key of the trust anchor
|
||||
CertPathReviewer.trustPubKeyError.text = Error processing public key of the trust anchor.
|
||||
CertPathReviewer.trustPubKeyError.summary = Error processing public key of the trust anchor.
|
||||
CertPathReviewer.trustPubKeyError.details = Error processing public key of the trust anchor. Could not extract the AlorithmIdentifier for the key.
|
||||
|
||||
# can not verifiy signature: issuer public key unknown
|
||||
CertPathReviewer.NoIssuerPublicKey.title = Can not verify the certificate signature
|
||||
CertPathReviewer.NoIssuerPublicKey.text = Can not verify the certificate signature: Issuer public key is unknown.
|
||||
CertPathReviewer.NoIssuerPublicKey.summary = Can not verify the certificate signature: Issuer public key is unknown.
|
||||
CertPathReviewer.NoIssuerPublicKey.details = Can not verify the certificate signature: Issuer public key is unknown.
|
||||
|
||||
# signature can not be verified
|
||||
# {0} message of the underlying exception (english)
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.signatureNotVerified.title = Certificate signature invalid
|
||||
CertPathReviewer.signatureNotVerified.text = The certificate signature is invalid. A {2} occurred.
|
||||
CertPathReviewer.signatureNotVerified.summary = The certificate signature is invalid.
|
||||
CertPathReviewer.signatureNotVerified.details = The certificate signature is invalid. A {2} occurred. Cause: {0}
|
||||
|
||||
# certificate expired
|
||||
# {0} the date the certificate expired
|
||||
CertPathReviewer.certificateExpired.title = Certificate is expired
|
||||
CertPathReviewer.certificateExpired.text = Could not validate the certificate. Certificate expired on {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateExpired.summary = Certificate expired on {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateExpired.details = Could not validate the certificate. Certificate expired on {0,date} {0,time,full}.
|
||||
|
||||
# certificate not yet valid
|
||||
# {0} the date from which on the certificate is valid
|
||||
CertPathReviewer.certificateNotYetValid.title = Certificate is not yet valid
|
||||
CertPathReviewer.certificateNotYetValid.text = Could not validate the certificate. Certificate is not valid until {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateNotYetValid.summary = Certificate is not valid until {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateNotYetValid.details = Could not validate the certificate. Certificate is not valid until {0,date} {0,time,full}.
|
||||
|
||||
# certificate invalid issuer DN
|
||||
# {0} expected issuer DN as String
|
||||
# {1} found issuer DN as String
|
||||
CertPathReviewer.certWrongIssuer.title = Issuer of certificate not valid
|
||||
CertPathReviewer.certWrongIssuer.text = Issuer of certificate is not valid. Expected {0}, but found {1}.
|
||||
CertPathReviewer.certWrongIssuer.summary = Issuer of certificate is not valid.
|
||||
CertPathReviewer.certWrongIssuer.details = Issuer of certificate is not valid. Expected {0}, but found {1}.
|
||||
|
||||
# intermediate certificate is no ca cert
|
||||
CertPathReviewer.noCACert.title = Certificate is no CA certificate
|
||||
CertPathReviewer.noCACert.text = Intermediate certificate is no CA certificate.
|
||||
CertPathReviewer.noCACert.summary = The certificate is no CA certificate.
|
||||
CertPathReviewer.noCACert.details = The certificate is no CA certificate but used as one.
|
||||
|
||||
# cert laks basic constraints
|
||||
CertPathReviewer.noBasicConstraints.title = Certificate has no basic constraints
|
||||
CertPathReviewer.noBasicConstraints.text = Intermediate certificate has no basic constraints.
|
||||
CertPathReviewer.noBasicConstraints.summary = Intermediate certificate has no basic constraints.
|
||||
CertPathReviewer.noBasicConstraints.details = Intermediate certificate has no basic constraints.
|
||||
|
||||
# error processing basic constraints
|
||||
CertPathReviewer.errorProcesingBC.title = Error processing the basic constraints extension
|
||||
CertPathReviewer.errorProcesingBC.text = There was an error while processing the basic constraints extension of this certificate.
|
||||
CertPathReviewer.errorProcesingBC.summary = Error processing the basic constraints extension.
|
||||
CertPathReviewer.errorProcesingBC.details = There was an error while processing the basic constraints extension of this certificate.
|
||||
|
||||
# certificate not usable for signing certs
|
||||
CertPathReviewer.noCertSign.title = Key not usable for signing certificates
|
||||
CertPathReviewer.noCertSign.text = The key usage constraint does not allow the use of this certificate key for signing certificates.
|
||||
CertPathReviewer.noCertSign.summary = The certificate key can not be used for signing certificates.
|
||||
CertPathReviewer.noCertSign.details = The key usage constraint does not allow the use of this certificate key for signing certificates.
|
||||
|
||||
# error processing public key
|
||||
CertPathReviewer.pubKeyError.title = Error processing public key
|
||||
CertPathReviewer.pubKeyError.text = Error processing public key of the certificate.
|
||||
CertPathReviewer.pubKeyError.summary = Error processing public key of the certificate.
|
||||
CertPathReviewer.pubKeyError.details = Error processing public key of the certificate. Could not extract the AlorithmIdentifier for the key.
|
||||
|
||||
|
||||
## check signatures notifications
|
||||
|
||||
#
|
||||
# trust anchor has no keyusage certSign
|
||||
CertPathReviewer.trustKeyUsage.title = Trust anchor key usage
|
||||
CertPathReviewer.trustKeyUsage.text = The trust anchor is not alloed to sign certificates.
|
||||
CertPathReviewer.trustKeyUsage.summary = The trust anchor is not alloed to sign certificates.
|
||||
CertPathReviewer.trustKeyUsage.details = The trust anchor is not alloed to sign certificates.
|
||||
|
||||
# certificate path validation date
|
||||
# {0} date for which the cert path is validated
|
||||
# {1} current date
|
||||
CertPathReviewer.certPathValidDate.title = Certificate path validation date
|
||||
CertPathReviewer.certPathValidDate.text = The certificate path was applied on {0,date} {0,time,full}. It was checked at {1,date} {1,time,full}.
|
||||
CertPathReviewer.certPathValidDate.summary = The certificate path was validated for {0,date} {0,time,full}. It was checked at {1,date} {1,time,full}.
|
||||
CertPathReviewer.certPathValidDate.details = The certificate path was validated for {0,date} {0,time,full}. It was checked at {1,date} {1,time,full}.
|
||||
|
||||
|
||||
## check policy errors
|
||||
|
||||
# error processing certificate policy extension
|
||||
CertPathReviewer.policyExtError.title = Policy checking failed
|
||||
CertPathReviewer.policyExtError.text = Policy checking failed: there was an error processing the certificate policy extension.
|
||||
CertPathReviewer.policyExtError.summary = Error processing the certificate policy extension.
|
||||
CertPathReviewer.policyExtError.details = Policy checking failed: there was an error processing the certificate policy extension.
|
||||
|
||||
# error processing policy constraints extension
|
||||
CertPathReviewer.policyConstExtError.title = Policy checking failed
|
||||
CertPathReviewer.policyConstExtError.text = Policy checking failed: there was an error processing the policy constraints extension.
|
||||
CertPathReviewer.policyConstExtError.summary = Error processing the policy constraints extension.
|
||||
CertPathReviewer.policyConstExtError.details = Policy checking failed: there was an error processing the policy constraints extension.
|
||||
|
||||
# error processing policy mapping extension
|
||||
CertPathReviewer.policyMapExtError.title = Policy checking failed
|
||||
CertPathReviewer.policyMapExtError.text = Policy checking failed: there was an error processing the policy mapping extension.
|
||||
CertPathReviewer.policyMapExtError.summary = Error processing the policy mapping extension.
|
||||
CertPathReviewer.policyMapExtError.details = Policy checking failed: there was an error processing the policy mapping extension.
|
||||
|
||||
# error processing inhibit any policy extension
|
||||
CertPathReviewer.policyInhibitExtError.title = Policy checking failed
|
||||
CertPathReviewer.policyInhibitExtError.text = Policy checking failed: there was an error processing the inhibit any policy extension.
|
||||
CertPathReviewer.policyInhibitExtError.summary = Error processing the inhibit any policy extension.
|
||||
CertPathReviewer.policyInhibitExtError.details = Policy checking failed: there was an error processing the inhibit any policy extension.
|
||||
|
||||
# error building qualifier set
|
||||
CertPathReviewer.policyQualifierError.title = Policy checking failed
|
||||
CertPathReviewer.policyQualifierError.text = Policy checking failed: error building the policy qualifier set.
|
||||
CertPathReviewer.policyQualifierError.summary = Policy checking failed: error building the policy qualifier set.
|
||||
CertPathReviewer.policyQualifierError.details = Policy checking failed: error building the policy qualifier set.
|
||||
|
||||
# no valid policy tree - explicit policy required
|
||||
CertPathReviewer.noValidPolicyTree.title = Policy checking failed
|
||||
CertPathReviewer.noValidPolicyTree.text = Policy checking failed: no valid policy tree found when one expected.
|
||||
CertPathReviewer.noValidPolicyTree.summary = Policy checking failed: no valid policy tree found when one expected.
|
||||
CertPathReviewer.noValidPolicyTree.details = Policy checking failed: no valid policy tree found when one expected.
|
||||
|
||||
# expicit policy requested, but no policy available
|
||||
CertPathReviewer.explicitPolicy.title = Policy checking failed
|
||||
CertPathReviewer.explicitPolicy.text = Policy checking failed: explicit policy requested but no policy available.
|
||||
CertPathReviewer.explicitPolicy.summary = Policy checking failed: explicit policy requested but no policy available.
|
||||
CertPathReviewer.explicitPolicy.details = Policy checking failed: explicit policy requested but no policy available.
|
||||
|
||||
# path processing failed on policy
|
||||
CertPathReviewer.invalidPolicy.title = Path processing failed on policy
|
||||
CertPathReviewer.invalidPolicy.text = Path processing failed on policy.
|
||||
CertPathReviewer.invalidPolicy.summary = Path processing failed on policy.
|
||||
CertPathReviewer.invalidPolicy.details = Path processing failed on policy.
|
||||
|
||||
# invalid policy mapping
|
||||
CertPathReviewer.invalidPolicyMapping.title = Invalid policy mapping
|
||||
CertPathReviewer.invalidPolicyMapping.text = Certificate contains an invalid policy mapping.
|
||||
CertPathReviewer.invalidPolicyMapping.summary = Certificate contains an invalid policy mapping.
|
||||
CertPathReviewer.invalidPolicyMapping.details = Certificate contains a policy mapping including the value any policy which is invalid.
|
||||
|
||||
## check CRL notifications
|
||||
|
||||
# found local valid CRL
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
CertPathReviewer.localValidCRL.title = Found valid local CRL
|
||||
CertPathReviewer.localValidCRL.text = Found a valid CRL in local certstore. Issued on {0,date}, next update {1,date}.
|
||||
CertPathReviewer.localValidCRL.summary = Found a valid CRL in local certstore. Issued on {0,date}, next update {1,date}.
|
||||
CertPathReviewer.localValidCRL.details = Found a valid CRL in local certstore. Issued on {0,date}, next update {1,date}.
|
||||
|
||||
|
||||
# found matching CRL, but not valid
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
CertPathReviewer.localInvalidCRL.title = Local CRL outdated
|
||||
CertPathReviewer.localInvalidCRL.text = Did not use a matching CRL in a local certstore, because it is outdated. Issued on {0,date}, next update {1,date}.
|
||||
CertPathReviewer.localInvalidCRL.summary = Did not use a matching CRL in a local certstore, because it is outdated. Issued on {0,date}, next update {1,date}.
|
||||
CertPathReviewer.localInvalidCRL.details = Did not use a matching CRL in a local certstore, because it is outdated. Issued on {0,date}, next update {1,date}.
|
||||
|
||||
# found a valid crl at crl distribution point
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineValidCRL.title = Found valid CRL at CRL distribution point
|
||||
CertPathReviewer.onlineValidCRL.text = Found a valid CRL at: {2}. Issued on {0,date}, next update on {1,date}.
|
||||
CertPathReviewer.onlineValidCRL.summary = Found a valid CRL at: {2}. Issued on {0,date}, next update on {1,date}.
|
||||
CertPathReviewer.onlineValidCRL.details = Found a valid CRL at: {2}. Issued on {0,date}, next update on {1,date}.
|
||||
|
||||
# found an invalid CRL at crl distribution point
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineInvalidCRL.title = Outdated CRL at CRL distribution point
|
||||
CertPathReviewer.onlineInvalidCRL.text = The CRL loaded from {2} was outdated. Issued on {0,date}, next update on {1,date}.
|
||||
CertPathReviewer.onlineInvalidCRL.summary = The CRL loaded from {2} was outdated. Issued on {0,date}, next update on {1,date}.
|
||||
CertPathReviewer.onlineInvalidCRL.details = The CRL loaded from {2} was outdated. Issued on {0,date}, next update on {1,date}.
|
||||
|
||||
#found a CRL at a crl distribution point, but issued by another CA
|
||||
# {0} issuer of the CRL
|
||||
# {1} expected issuer
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineCRLWrongCA.title = CRL from wrong issuer at CRL distribution point
|
||||
CertPathReviewer.onlineCRLWrongCA.text = The CRL loaded from {2} has was issued by {0}, excpected {1}.
|
||||
CertPathReviewer.onlineCRLWrongCA.summary = The CRL loaded from {2} has a wrong issuer.
|
||||
CertPathReviewer.onlineCRLWrongCA.details = The CRL loaded from {2} has was issued by {0}, excpected {1}.
|
||||
|
||||
# Certificate not revoked
|
||||
CertPathReviewer.notRevoked.title = Certificate not revoked
|
||||
CertPathReviewer.notRevoked.text = The certificate was not revoked.
|
||||
CertPathReviewer.notRevoked.summary = The certificate was not revoked.
|
||||
CertPathReviewer.notRevoked.details = The certificate was not revoked.
|
||||
|
||||
# CRL found: certificate was revoked, but after the validationDate
|
||||
# {0} the date the certificate was revoked
|
||||
# {1} the reason for revoking the certificate
|
||||
CertPathReviewer.revokedAfterValidation.title = Certificate was revoked after the validation date
|
||||
CertPathReviewer.revokedAfterValidation.text = The certificate was revoked after the validation date at {0,date} {0,time,full}. Reason: {1}.
|
||||
CertPathReviewer.revokedAfterValidation.summary = The certificate was revoked after the validation date at {0,date} {0,time,full}.
|
||||
CertPathReviewer.revokedAfterValidation.details = The certificate was revoked after the validation date at {0,date} {0,time,full}. Reason: {1}.
|
||||
|
||||
# updated crl available
|
||||
# {0} date since when the update is available
|
||||
CertPathReviewer.crlUpdateAvailable.title = CRL update available
|
||||
CertPathReviewer.crlUpdateAvailable.text = An update for the CRL of this certificate is available since {0,date} {0,time,full}.
|
||||
CertPathReviewer.crlUpdateAvailable.summary = An update for the CRL of this certificate is available since {0,date} {0,time,full}.
|
||||
CertPathReviewer.crlUpdateAvailable.details = An update for the CRL of this certificate is available since {0,date} {0,time,full}.
|
||||
|
||||
# crl distribution point url
|
||||
# {0} the crl distribution point url as String
|
||||
CertPathReviewer.crlDistPoint.title = CRL distribution point
|
||||
CertPathReviewer.crlDistPoint.text = A CRL can be obtained from: {0}.
|
||||
CertPathReviewer.crlDistPoint.summary = A CRL can be obtained from: {0}.
|
||||
CertPathReviewer.crlDistPoint.details = A CRL can be obtained from: {0}.
|
||||
|
||||
# ocsp location
|
||||
# {0} the url on which the ocsp service can be found
|
||||
CertPathReviewer.ocspLocation.title = OCSP responder location
|
||||
CertPathReviewer.ocspLocation.text = OCSP responder location: {0}.
|
||||
CertPathReviewer.ocspLocation.summary = OCSP responder location: {0}.
|
||||
CertPathReviewer.ocspLocation.details = OCSP responder location: {0}.
|
||||
|
||||
# unable to get crl from crl distribution point
|
||||
# {0} the url of the distribution point
|
||||
# {1} the message of the occurred exception
|
||||
# {2} the occurred exception
|
||||
# {3} the name of the exception
|
||||
CertPathReviewer.loadCrlDistPointError.title = Cannot load CRL from CRL distribution point
|
||||
CertPathReviewer.loadCrlDistPointError.text = Unable to load a CRL from: {0}. A {3} occurred.
|
||||
CertPathReviewer.loadCrlDistPointError.summary = Unable to load a CRL from: {0}. A {3} occurred.
|
||||
CertPathReviewer.loadCrlDistPointError.details = Unable to load a CRL from: {0}. A {3} occurred. Cause: {1}.
|
||||
|
||||
# no crl found in certstores
|
||||
# {0} the issuers which we searched for
|
||||
# {1} list of crl issuer names that are found in the certstores
|
||||
# {2} number of crls in the certstores
|
||||
CertPathReviewer.noCrlInCertstore.title = No matching CRL found in local CRL store
|
||||
CertPathReviewer.noCrlInCertstore.text = No matching CRL was found in the provided local CRL store.
|
||||
CertPathReviewer.noCrlInCertstore.summary = No matching CRL was found in the provided local CRL store.
|
||||
CertPathReviewer.noCrlInCertstore.details = No matching CRL was found in the provided local CRL store. \
|
||||
No CRL was found for the selector "{0}". The {2} CRL(s) in the certstores are from "{1}".
|
||||
|
||||
|
||||
## check CRL exceptions
|
||||
|
||||
# cannot extract issuer from certificate
|
||||
CertPathReviewer.crlIssuerException.title = CRL checking failed
|
||||
CertPathReviewer.crlIssuerException.text = CRL checking failed: cannot extract issuer from certificate.
|
||||
CertPathReviewer.crlIssuerException.summary = CRL checking failed: cannot extract issuer from certificate.
|
||||
CertPathReviewer.crlIssuerException.details = CRL checking failed: cannot extract issuer from certificate.
|
||||
|
||||
# cannot extract crls
|
||||
# {0} message from the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.crlExtractionError.title = CRL checking failed
|
||||
CertPathReviewer.crlExtractionError.text = CRL checking failed: Cannot extract CRL from CertStore. There was a {2}.
|
||||
CertPathReviewer.crlExtractionError.summary = CRL checking failed: Cannot extract CRL from CertStore. There was a {2}.
|
||||
CertPathReviewer.crlExtractionError.details = CRL checking failed: Cannot extract CRL from CertStore. There was a {2}. Cause: {0}.
|
||||
|
||||
# Issuer certificate key usage extension does not permit crl signing
|
||||
CertPathReviewer.noCrlSigningPermited.title = CRL checking failed
|
||||
CertPathReviewer.noCrlSigningPermited.text = CRL checking failed: issuer certificate does not permit CRL signing.
|
||||
CertPathReviewer.noCrlSigningPermited.summary = CRL checking failed: issuer certificate does not permit CRL signing.
|
||||
CertPathReviewer.noCrlSigningPermited.details = CRL checking failed: issuer certificate does not permit CRL signing.
|
||||
|
||||
# can not verify crl: issuer public key unknown
|
||||
CertPathReviewer.crlNoIssuerPublicKey.title = CRL checking failed
|
||||
CertPathReviewer.crlNoIssuerPublicKey.text = CRL checking failed: Can not verify the CRL: Issuer public key is unknown.
|
||||
CertPathReviewer.crlNoIssuerPublicKey.summary = CRL checking failed: Can not verify the CRL: Issuer public key is unknown.
|
||||
CertPathReviewer.crlNoIssuerPublicKey.details = CRL checking failed: Can not verify the CRL: Issuer public key is unknown.
|
||||
|
||||
# crl verification failed
|
||||
CertPathReviewer.crlVerifyFailed.title = CRL checking failed
|
||||
CertPathReviewer.crlVerifyFailed.text = CRL checking failed: CRL signature is invalid.
|
||||
CertPathReviewer.crlVerifyFailed.summary = CRL checking failed: CRL signature is invalid.
|
||||
CertPathReviewer.crlVerifyFailed.details = CRL checking failed: CRL signature is invalid.
|
||||
|
||||
# no valid CRL found
|
||||
CertPathReviewer.noValidCrlFound.title = CRL checking failed
|
||||
CertPathReviewer.noValidCrlFound.text = CRL checking failed: no valid CRL found.
|
||||
CertPathReviewer.noValidCrlFound.summary = CRL checking failed: no valid CRL found.
|
||||
CertPathReviewer.noValidCrlFound.details = CRL checking failed: no valid CRL found.
|
||||
|
||||
# No base CRL for delta CRL
|
||||
CertPathReviewer.noBaseCRL.title = CRL checking failed
|
||||
CertPathReviewer.noBaseCRL.text = CRL checking failed: no base CRL found for delta CRL.
|
||||
CertPathReviewer.noBaseCRL.summary = CRL checking failed: no base CRL found for delta CRL.
|
||||
CertPathReviewer.noBaseCRL.details = CRL checking failed: no base CRL found for delta CRL.
|
||||
|
||||
# certificate revoked
|
||||
# {0} the date the certificate was revoked
|
||||
# {1} the reason for revoking the certificate
|
||||
CertPathReviewer.certRevoked.title = Certificate was revoked
|
||||
CertPathReviewer.certRevoked.text = The certificate was revoked at {0,date} {0,time,full}. Reason: {1}.
|
||||
CertPathReviewer.certRevoked.summary = The certificate was revoked at {0,date} {0,time,full}.
|
||||
CertPathReviewer.certRevoked.details = The certificate was revoked at {0,date} {0,time,full}. Reason: {1}.
|
||||
|
||||
# error processing issuing distribution point extension
|
||||
CertPathReviewer.distrPtExtError.title = CRL checking failed
|
||||
CertPathReviewer.distrPtExtError.text = CRL checking failed: there was an error processing the issuing distribution point extension.
|
||||
CertPathReviewer.distrPtExtError.summary = Error processing the issuing distribution point extension.
|
||||
CertPathReviewer.distrPtExtError.details = CRL checking failed: there was an error processing the issuing distribution point extension.
|
||||
|
||||
# error processing crl distribution points extension
|
||||
CertPathReviewer.crlDistPtExtError.title = CRL checking failed
|
||||
CertPathReviewer.crlDistPtExtError.text = CRL checking failed: there was an error processing the crl distribution points extension.
|
||||
CertPathReviewer.crlDistPtExtError.summary = Error processing the crl distribution points extension.
|
||||
CertPathReviewer.crlDistPtExtError.details = CRL checking failed: there was an error processing the crl distribution points extension.
|
||||
|
||||
# error processing the authority info access extension
|
||||
CertPathReviewer.crlAuthInfoAccError.title = CRL checking failed
|
||||
CertPathReviewer.crlAuthInfoAccError.text = CRL checking failed: there was an error processing the authority info access extension.
|
||||
CertPathReviewer.crlAuthInfoAccError.summary = Error processing the authority info access extension.
|
||||
CertPathReviewer.crlAuthInfoAccError.details = CRL checking failed: there was an error processing the authority info access extension.
|
||||
|
||||
# error processing delta crl indicator extension
|
||||
CertPathReviewer.deltaCrlExtError.title = CRL checking failed
|
||||
CertPathReviewer.deltaCrlExtError.text = CRL checking failed: there was an error processing the delta CRL indicator extension.
|
||||
CertPathReviewer.deltaCrlExtError.summary = Error processing the delta CRL indicator extension.
|
||||
CertPathReviewer.deltaCrlExtError.details = CRL checking failed: there was an error processing the delta CRL indicator extension.
|
||||
|
||||
# error porcessing crl number extension
|
||||
CertPathReviewer.crlNbrExtError.title = CRL checking failed
|
||||
CertPathReviewer.crlNbrExtError.text = CRL checking failed: there was an error processing the CRL number extension.
|
||||
CertPathReviewer.crlNbrExtError.summary = Error processing the CRL number extension.
|
||||
CertPathReviewer.crlNbrExtError.details = CRL checking failed: there was an error processing the CRL number extension.
|
||||
|
||||
# error processing crl reason code extension
|
||||
CertPathReviewer.crlReasonExtError.title = CRL checking failed
|
||||
CertPathReviewer.crlReasonExtError.text = CRL checking failed: there was an error processing the CRL reason code extension.
|
||||
CertPathReviewer.crlReasonExtError.summary = Error processing the CRL reason code extension.
|
||||
CertPathReviewer.crlReasonExtError.details = CRL checking failed: there was an error processing the CRL reason code extension.
|
||||
|
||||
# error processing basic constraints extension
|
||||
CertPathReviewer.crlBCExtError.title = CRL checking failed
|
||||
CertPathReviewer.crlBCExtError.text = CRL checking failed: there was an error processing the basic constraints extension.
|
||||
CertPathReviewer.crlBCExtError.summary = Error processing the basic constraints extension.
|
||||
CertPathReviewer.crlBCExtError.details = CRL checking failed: there was an error processing the basic constraints extension.
|
||||
|
||||
# CA Cert CRL only contains user certificates
|
||||
CertPathReviewer.crlOnlyUserCert.title = CRL checking failed
|
||||
CertPathReviewer.crlOnlyUserCert.text = CRL checking failed: CRL only contains user certificates.
|
||||
CertPathReviewer.crlOnlyUserCert.summary = CRL checking failed: CRL only contains user certificates.
|
||||
CertPathReviewer.crlOnlyUserCert.details = CRL checking failed: CRL for CA certificate only contains user certificates.
|
||||
|
||||
# End CRL only contains CA certificates
|
||||
CertPathReviewer.crlOnlyCaCert.title = CRL checking failed
|
||||
CertPathReviewer.crlOnlyCaCert.text = CRL checking failed: CRL only contains CA certificates.
|
||||
CertPathReviewer.crlOnlyCaCert.summary = CRL checking failed: CRL only contains CA certificates.
|
||||
CertPathReviewer.crlOnlyCaCert.details = CRL checking failed: CRL for end certificate only contains CA certificates.
|
||||
|
||||
# onlyContainsAttributeCerts boolean is asserted
|
||||
CertPathReviewer.crlOnlyAttrCert.title = CRL checking failed
|
||||
CertPathReviewer.crlOnlyAttrCert.text = CRL checking failed: CRL only contains attribute certificates.
|
||||
CertPathReviewer.crlOnlyAttrCert.summary = CRL checking failed: CRL only contains attribute certificates.
|
||||
CertPathReviewer.crlOnlyAttrCert.details = CRL checking failed: CRL only contains attribute certificates.
|
||||
|
||||
|
||||
## QcStatement notifications
|
||||
|
||||
# unkown statement
|
||||
# {0} statement OID
|
||||
# {1} statement as ANS1Sequence
|
||||
CertPathReviewer.QcUnknownStatement.title = Unknown statement in QcStatement extension
|
||||
CertPathReviewer.QcUnknownStatement.text = Unknown statement in QcStatement extension: OID = {0}
|
||||
CertPathReviewer.QcUnknownStatement.summary = Unknown statement in QcStatement extension: OID = {0}
|
||||
CertPathReviewer.QcUnknownStatement.details = Unknown statement in QcStatement extension: OID = {0}, statement = {1}
|
||||
|
||||
# QcLimitValue Alpha currency code
|
||||
# {0} currency code
|
||||
# {1} limit value
|
||||
# {2} monetary value as MonetaryValue
|
||||
CertPathReviewer.QcLimitValueAlpha.title = Transaction Value Limit
|
||||
CertPathReviewer.QcLimitValueAlpha.text = This certificate has a limit for the transaction value: {1,number, ###,###,###,##0.00#} {0}.
|
||||
CertPathReviewer.QcLimitValueAlpha.summary = Transaction value limit: {1,number, ###,###,###,##0.00#} {0}.
|
||||
CertPathReviewer.QcLimitValueAlpha.details = This certificate has a limitation on the value of transaction for which this certificate can be used to the specified amount, according to the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, as implemented in the law of the country specified in the issuer field of this certificate. The limit for this certificate is {1,number, ###,###,###,##0.00#} {0}.
|
||||
|
||||
# QcLimitValue Numeric currency code
|
||||
# {0} currency code
|
||||
# {1} limit value
|
||||
# {2} monetary value as MonetaryValue
|
||||
CertPathReviewer.QcLimitValueNum.title = Transaction Value Limit
|
||||
CertPathReviewer.QcLimitValueNum.text = This certificate has a limit for the transaction value: {1,number, ###,###,###,##0.00#} of currency {0} (See RFC 4217 for currency codes).
|
||||
CertPathReviewer.QcLimitValueNum.summary = Transaction value limit: {1,number, ###,###,###,##0.00#} of currency {0} (See RFC 4217 for currency codes).
|
||||
CertPathReviewer.QcLimitValueNum.details = This certificate has a limitation on the value of transaction for which this certificate can be used to the specified amount, according to the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, as implemented in the law of the country specified in the issuer field of this certificate. The limit for this certificate is {1,number, ###,###,###,##0.00#} of currency {0} (See RFC 4217 for currency codes).
|
||||
|
||||
# QcSSCD
|
||||
CertPathReviewer.QcSSCD.title = QcSSCD Statement
|
||||
CertPathReviewer.QcSSCD.text = (SSCD) The issuer claims that for the certificate where this statement appears that the private key associated with the public key in the certificate is protected according to Annex III of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures.
|
||||
CertPathReviewer.QcSSCD.summary = (SSCD) The issuer claims that for the certificate where this statement appears that the private key associated with the public key in the certificate is protected according to Annex III of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures.
|
||||
CertPathReviewer.QcSSCD.details = (SSCD) The issuer claims that for the certificate where this statement appears that the private key associated with the public key in the certificate is protected according to Annex III of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures.
|
||||
|
||||
# QcEuCompliance
|
||||
CertPathReviewer.QcEuCompliance.title = Qualified Certificate
|
||||
CertPathReviewer.QcEuCompliance.text = This certificate is issued as a Qualified Certificate according Annex I and II of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, as implemented in the law of the country specified in the issuer field of this certificate.
|
||||
CertPathReviewer.QcEuCompliance.summary = This certificate is issued as a Qualified Certificate according Annex I and II of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, as implemented in the law of the country specified in the issuer field of this certificate.
|
||||
CertPathReviewer.QcEuCompliance.details = This certificate is issued as a Qualified Certificate according Annex I and II of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, as implemented in the law of the country specified in the issuer field of this certificate.
|
||||
|
||||
## QcStatement errors
|
||||
|
||||
# error processing the QcStatement extension
|
||||
CertPathReviewer.QcStatementExtError.title = Error processing the qc statements extension
|
||||
CertPathReviewer.QcStatementExtError.text = Error processing the qc statements extension.
|
||||
CertPathReviewer.QcStatementExtError.summary = Error processing the qc statements extension.
|
||||
CertPathReviewer.QcStatementExtError.details = Error processing the qc statements extension.
|
||||
|
||||
## unknown/generic errors
|
||||
CertPathReviewer.unknown.title = Unexpected Error
|
||||
CertPathReviewer.unknown.text = Unexpected Error {0}
|
||||
CertPathReviewer.unknown.summary = Unexpected Error
|
||||
CertPathReviewer.unknown.details = Unexpected Error {0}
|
||||
|
||||
#
|
||||
# crl reasons
|
||||
#
|
||||
unspecified = Unspecified
|
||||
keyCompromise = Key Compromise
|
||||
cACompromise = CA Compromise
|
||||
affiliationChanged = Affiliation Changed
|
||||
superseded = Superseded
|
||||
cessationOfOperation = Cessation of Operation
|
||||
certificateHold = Certificate Hold
|
||||
unknown = Unknown
|
||||
removeFromCRL = Remove from CRL
|
||||
privilegeWithdrawn = Privilege Withdrawn
|
||||
aACompromise = AA Compromise
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
missingIssuer = The missing certificate was issued by
|
||||
missingSerial = with the serial number
|
||||
|
||||
@@ -1,621 +0,0 @@
|
||||
|
||||
## constructor exceptions
|
||||
|
||||
# cert path is empty
|
||||
CertPathReviewer.emptyCertPath.title = Zertifizierungspfad ist leer
|
||||
CertPathReviewer.emptyCertPath.text = PKIXCertPathReviewer: der Zertifizierungspfad ist leer.
|
||||
CertPathReviewer.emptyCertPath.summary = PKIXCertPathReviewer: der Zertifizierungspfad ist leer.
|
||||
CertPathReviewer.emptyCertPath.details = PKIXCertPathReviewer: der Zertifizierungspfad ist leer.
|
||||
|
||||
## name constraints processing errors
|
||||
|
||||
# cert DN is not in the permitted tree
|
||||
# {0} DN as String
|
||||
CertPathReviewer.notPermittedDN.title = Fehler bei der Namensbeschränkung: Zertifikats DN ist nicht erlaubt
|
||||
CertPathReviewer.notPermittedDN.text = Fehler bei der Namensbeschränkung: Der Zertifikats DN {0} ist nicht erlaubt.
|
||||
CertPathReviewer.notPermittedDN.summary = Fehler bei der Namensbeschränkung: Der Zertifikats DN ist nicht erlaubt.
|
||||
CertPathReviewer.notPermittedDN.details = Fehler bei der Namensbeschränkung: Der Zertifikats DN {0} ist nicht im Set der erlaubten DNs.
|
||||
|
||||
# cert DN is in the excluded tree
|
||||
# {0} DN as String
|
||||
CertPathReviewer.excludedDN.title = Fehler bei der Namensbeschränkung: Zertifikats DN ist ausgeschlossen
|
||||
CertPathReviewer.excludedDN.text = Fehler bei der Namensbeschränkung: Der Zertifikats DN {0} ist ausgeschlossen.
|
||||
CertPathReviewer.excludedDN.summary = Fehler bei der Namensbeschränkung: Der Zertifikats DN ist ausgeschlossen
|
||||
CertPathReviewer.excludedDN.details = Fehler bei der Namensbeschränkung: Der Zertifikats DN ist {0} is innerhalb des Sets von ausgeschlossenen DNs.
|
||||
|
||||
# cert email is not in the permitted tree
|
||||
# {0} email address as String
|
||||
CertPathReviewer.notPermittedEmail.title = Fehler bei der Namensbeschränkung: nicht erlaubte Email Addresse
|
||||
CertPathReviewer.notPermittedEmail.text = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die nicht erlaubte Email Addresse {0}.
|
||||
CertPathReviewer.notPermittedEmail.summary = Fehler bei der Namensbeschränkung: Die Email Addresse ist nicht erlaubt.
|
||||
CertPathReviewer.notPermittedEmail.details = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die Email Addresse {0}, welche nicht im Set der erlaubten Email Addressen ist.
|
||||
|
||||
# cert email is in the excluded tree
|
||||
# {0} email as String
|
||||
CertPathReviewer.excludedEmail.title = Fehler bei der Namensbeschränkung: Email Addresse ausgeschlossen
|
||||
CertPathReviewer.excludedEmail.text = Fehler bei der Namensbeschränkung: Die Email Addresse {0} im Zertifikat ist ausgeschlossen.
|
||||
CertPathReviewer.excludedEmail.summary = Fehler bei der Namensbeschränkung: Die Email Addresse ist ausgeschlossen.
|
||||
CertPathReviewer.excludedEmail.details = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die Email Addresse {0}, welche im Set der ausgeschlossenen Email Addressen ist.
|
||||
|
||||
# cert IP is not in the permitted tree
|
||||
# {0} ip address as String
|
||||
CertPathReviewer.notPermittedIP.title = Fehler bei der Namensbeschränkung: nicht erlaubte IP Addresse
|
||||
CertPathReviewer.notPermittedIP.text = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die nicht erlaubte IP Addresse {0}.
|
||||
CertPathReviewer.notPermittedIP.summary = Fehler bei der Namensbeschränkung: Die IP Addresse ist nicht erlaubt.
|
||||
CertPathReviewer.notPermittedIP.details = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die IP Addresse {0}, welche nicht im Set der erlaubten IP Addressen ist.
|
||||
|
||||
# cert ip is in the excluded tree
|
||||
# {0} ip address as String
|
||||
CertPathReviewer.excludedIP.title = Fehler bei der Namensbeschränkung: Ausgeschlossene IP Addresse
|
||||
CertPathReviewer.excludedIP.text = Fehler bei der Namensbeschränkung: Das Zertifikat enhält die ausgeschlossene IP Addresse {0}.
|
||||
CertPathReviewer.excludedIP.summary = Fehler bei der Namensbeschränkung: Die IP Addresse im Zertifikat ist ausgeschlossen.
|
||||
CertPathReviewer.excludedIP.details = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die IP Addresse {0}, welche im Set der ausgeschlossenen IP Addressen ist.
|
||||
|
||||
# error processing the name constraints extension
|
||||
CertPathReviewer.ncExtError.title = Prüfen der Namensbeschränkungen fehlgeschlagen
|
||||
CertPathReviewer.ncExtError.text = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab Fehler bei der Verarbeitung der Name Constraints Erweiterung des Zertifikats.
|
||||
CertPathReviewer.ncExtError.summary = Prüfen der Namensbeschränkungen fehlgeschlagen: Fehler bei der Verarbeitung der Name Constraints Erweiterung.
|
||||
CertPathReviewer.ncExtError.details = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab Fehler bei der Verarbeitung der Name Constraints Erweiterung des Zertifikats.
|
||||
|
||||
# error processing the subject alternative name extension
|
||||
CertPathReviewer.subjAltNameExtError.title = Prüfen der Namensbeschränkungen fehlgeschlagen
|
||||
CertPathReviewer.subjAltNameExtError.text = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab Fehler bei der Verarbeitung der Subject Alternative Name Erweiterung des Zertifikats.
|
||||
CertPathReviewer.subjAltNameExtError.summary = Prüfen der Namensbeschränkungen fehlgeschlagen: Fehler bei der Verarbeitung der Subject Alternative Name Erweiterung.
|
||||
CertPathReviewer.subjAltNameExtError.details = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab Fehler bei der Verarbeitung der Subject Alternative Name Erweiterung des Zertifikats.
|
||||
|
||||
# exception extracting subject name when checking subtrees
|
||||
# {0} subject Principal
|
||||
CertPathReviewer.ncSubjectNameError.title = Prüfen der Namensbeschränkungen fehlgeschlagen
|
||||
CertPathReviewer.ncSubjectNameError.text = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab einen Fehler beim auslesen des DN des Zertifikats.
|
||||
CertPathReviewer.ncSubjectNameError.summary = Prüfen der Namensbeschränkungen fehlgeschlagen: Fehler beim auslesen des DNs.
|
||||
CertPathReviewer.ncSubjectNameError.details = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab einen Fehler beim auslesen des DN des Zertifikats.
|
||||
|
||||
|
||||
## path length errors
|
||||
|
||||
# max path length extended
|
||||
CertPathReviewer.pathLengthExtended.title = Maximale Pfadlänge überschritten
|
||||
CertPathReviewer.pathLengthExtended.text = Zertifizierungspfad ungültig: die Maximale Pfadlänge ist überschritten.
|
||||
CertPathReviewer.pathLengthExtended.summary = Zertifizierungspfad ungültig: die Maximale Pfadlänge ist überschritten.
|
||||
CertPathReviewer.pathLengthExtended.details = Zertifizierungspfad ungültig: die Maximale Pfadlänge ist überschritten.
|
||||
|
||||
# error reading length constraint from basic constraint extension
|
||||
CertPathReviewer.processLengthConstError.title = Prüfen der Pfadlänge fehlgeschlagen
|
||||
CertPathReviewer.processLengthConstError.text = Prüfen der Pfadlänge fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der subject alternative name Erweiterung des Zertifikats.
|
||||
CertPathReviewer.processLengthConstError.summary = Fehler bei der Verarbeitung der subject alternative name Erweiterung.
|
||||
CertPathReviewer.processLengthConstError.details = Prüfen der Pfadlänge fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der subject alternative name Erweiterung des Zertifikats.
|
||||
|
||||
|
||||
## path length notifications
|
||||
|
||||
# total path length as defined in rfc 3280
|
||||
# {0} the path length as Integer
|
||||
CertPathReviewer.totalPathLength.title = Totale Pfadlänge
|
||||
CertPathReviewer.totalPathLength.text = Die totale Pfadlänge ohne self-signed Zertifikate ist {0}.
|
||||
CertPathReviewer.totalPathLength.summary = Die totale Pfadlänge ohne self-signed Zertifikate ist {0}.
|
||||
CertPathReviewer.totalPathLength.details = Die totale Pfadlänge ohne self-signed Zertifikate, wie beschrieben in RFC 3280, ist {0}.
|
||||
|
||||
|
||||
## critical extensions errors
|
||||
|
||||
# one unknown critical extension
|
||||
# {0} extension as String
|
||||
CertPathReviewer.unknownCriticalExt.title = Unbekannte kritische Erweiterung
|
||||
CertPathReviewer.unknownCriticalExt.text = Das Zertifikat enhält eine unbekannte kritische Erweiterung mit der OID {0}.
|
||||
CertPathReviewer.unknownCriticalExt.summary = Unbekannte kritische Erweiterung: {0}.
|
||||
CertPathReviewer.unknownCriticalExt.details = Das Zertifikat enhält eine unbekannte kritische Erweiterung mit der OID {0}.
|
||||
|
||||
# more unknown critical extensions
|
||||
# {0} extensions as Set of Strings
|
||||
CertPathReviewer.unknownCriticalExts.title = Unbekannte kritische Erweiterung
|
||||
CertPathReviewer.unknownCriticalExts.text = Das Zertifikat enhält zwei oder mehr unbekannte kritische Erweiterungen mit den OIDs {0}.
|
||||
CertPathReviewer.unknownCriticalExts.summary = Unbekannte kritische Erweiterungen: {0}.
|
||||
CertPathReviewer.unknownCriticalExts.details = Das Zertifikat enhält zwei oder mehr unbekannte kritische Erweiterungen mit den OIDs {0}.
|
||||
|
||||
# error processing critical extension
|
||||
# {0} the message of the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.criticalExtensionError.title = Fehler bei der Verarbeitung einer kritischen Erweiterung
|
||||
CertPathReviewer.criticalExtensionError.text = Fehler bei der Verarbeitung einer kritischen Erweiterung. Es gab eine {2}.
|
||||
CertPathReviewer.criticalExtensionError.summary = Fehler bei der Verarbeitung einer kritischen Erweiterung. Es gab eine {2}.
|
||||
CertPathReviewer.criticalExtensionError.details = Fehler bei der Verarbeitung einer kritischen Erweiterung. Es gab eine {2}. Grund: {0}.
|
||||
|
||||
# error initializing the certpath checkers
|
||||
# {0} the message of the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.certPathCheckerError.title = Prüfen der kritischen Erweiterungen fehlgeschlagen
|
||||
CertPathReviewer.certPathCheckerError.text = Prüfen der kritischen Erweiterungen fehlgeschlagen: Es gab eine {2} bei der Initialisierung eines CertPathChecker.
|
||||
CertPathReviewer.certPathCheckerError.summary = Prüfen der kritischen Erweiterungen fehlgeschlagen: {2} bei der Initialisierung eines CertPathChecker.
|
||||
CertPathReviewer.certPathCheckerError.details = Prüfen der kritischen Erweiterungen fehlgeschlagen: Es gab eine {2} bei der Initialisierung eines CertPathChecker. Grund: {0}
|
||||
|
||||
|
||||
## check signature errors
|
||||
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.title = rootKeyIsValidButNotATrustAnchor
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.text = Das Zertifikat hat eine gültige Signatur, ist aber kein vertrauenswürdiges Root Zertifikat.
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.summary = Das Zertifikat hat eine gültige Signatur, ist aber kein vertrauenswürdiges Root Zertifikat.
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.details = Das Zertifikat hat eine gültige Signatur, ist aber kein vertrauenswürdiges Root Zertifikat.
|
||||
|
||||
# trustanchor found, but certificate validation failed
|
||||
CertPathReviewer.trustButInvalidCert.title = Vertrauenswürdiges Root Zertifikat invalid
|
||||
CertPathReviewer.trustButInvalidCert.text = Ein Root Zertifikat wurde gefunden. Es hat aber einen anderen öffentlichen Schlüssel als verwendet wurde um das erste Zertifikat des Zertifizierungspfades zu signieren.
|
||||
CertPathReviewer.trustButInvalidCert.summary = Ein Root Zertifikat wurde gefunden. Es hat aber einen anderen öffentlichen Schlüssel als verwendet wurde um das erste Zertifikat des Zertifizierungspfades zu signieren.
|
||||
CertPathReviewer.trustButInvalidCert.details = Ein Root Zertifikat wurde gefunden. Es hat aber einen anderen öffentlichen Schlüssel als verwendet wurde um das erste Zertifikat des Zertifizierungspfades zu signieren.
|
||||
|
||||
# trustanchor - cannot extract issuer
|
||||
CertPathReviewer.trustAnchorIssuerError.title = Kann kein vertrauenswürdiges Root Zertifikat finden
|
||||
CertPathReviewer.trustAnchorIssuerError.text = Kann kein vertrauenswürdiges Root Zertifikat finden: Der Herausgeber vom Zertifikat kann nicht auslesen werden.
|
||||
CertPathReviewer.trustAnchorIssuerError.summary = Kann kein vertrauenswürdiges Root Zertifikat finden: Der Herausgeber vom Zertifikat kann nicht auslesen werden.
|
||||
CertPathReviewer.trustAnchorIssuerError.details = Kann kein vertrauenswürdiges Root Zertifikat finden: Der Herausgeber vom Zertifikat kann nicht auslesen werden.
|
||||
|
||||
# no trustanchor was found for the certificate path
|
||||
# {0} issuer of the root certificate of the path
|
||||
# {1} number of trusted root certificates (trustanchors) provided
|
||||
CertPathReviewer.noTrustAnchorFound.title = Kein vertrauenswürdiges Root Zertifikat gefunden
|
||||
CertPathReviewer.noTrustAnchorFound.text = Das Root Zertifikat der Zertifizierungspfads wurde nicht von einer vertrauenswürdigen CA ausgestellt. Der Name der CA ist "{0}".
|
||||
CertPathReviewer.noTrustAnchorFound.summary = Das Root Zertifikat der Zertifizierungspfads wurde nicht von einer vertrauenswürdigen CA ausgestellt.
|
||||
CertPathReviewer.noTrustAnchorFound.details = Das Root Zertifikat der Zertifizierungspfads wurde nicht von einer vertrauenswürdigen CA ausgestellt. Der Name der CA ist "{0}". Der Root-Zertifikat-Speicher enthält {1} CA(s).
|
||||
|
||||
# conflicting trust anchors
|
||||
# {0} number of trustanchors found (Integer)
|
||||
# {1} the ca name
|
||||
CertPathReviewer.conflictingTrustAnchors.title = Korrupter Root-Zertifikat-Speicher
|
||||
CertPathReviewer.conflictingTrustAnchors.text = Warnung: Es sind {0} öffentliche Schlüssel für die CA "{1}" im Root-Zertifikat-Speicher vorhanden - bitte prüfen Sie mit der CA welches der richtige Schlüssel ist.
|
||||
CertPathReviewer.conflictingTrustAnchors.summary = Warnung: Es sind {0} öffentliche Schlüssel für die CA "{1}" im Root-Zertifikat-Speicher vorhanden - bitte prüfen Sie mit der CA welches der richtige Schlüssel ist.
|
||||
CertPathReviewer.conflictingTrustAnchors.details = Warnung: Es sind {0} öffentliche Schlüssel für die CA "{1}" im Root-Zertifikat-Speicher vorhanden - bitte prüfen Sie mit der CA welches der richtige Schlüssel ist.
|
||||
|
||||
# trustanchor DN is invalid
|
||||
# {0} DN of the Trustanchor
|
||||
CertPathReviewer.trustDNInvalid.title = DN des vertrauenswürdigen Root Zertifikats mit falschem Format.
|
||||
CertPathReviewer.trustDNInvalid.text = Der DN des vertrauenswürdigen Root Zertifikats hat ein falsches Format: {0}.
|
||||
CertPathReviewer.trustDNInvalid.summary = Der DN des vertrauenswürdigen Root Zertifikats hat ein falsches Format: {0}.
|
||||
CertPathReviewer.trustDNInvalid.details = Der DN des vertrauenswürdigen Root Zertifikats hat ein falsches Format: {0}. Es ist kein gültiger X.500 Name. Siehe RFC 1779 oder RFC 2253.
|
||||
|
||||
# trustanchor public key algorithm error
|
||||
CertPathReviewer.trustPubKeyError.title = Fehler bei der Verarbeitung des öffentlichen Schlüssels der vertrauenswürdigen Root Zertifikats
|
||||
CertPathReviewer.trustPubKeyError.text = Fehler bei der Verarbeitung des öffentlichen Schlüssels der vertrauenswürdigen Root Zertifikats.
|
||||
CertPathReviewer.trustPubKeyError.summary = Fehler bei der Verarbeitung des öffentlichen Schlüssels der vertrauenswürdigen Root Zertifikats.
|
||||
CertPathReviewer.trustPubKeyError.details = Fehler bei der Verarbeitung des öffentlichen Schlüssels der vertrauenswürdigen Root Zertifikats. Der AlorithmIdentifier vom Schlüssel kann nicht ausgelesen werden.
|
||||
|
||||
# can not verifiy signature: issuer public key unknown
|
||||
CertPathReviewer.NoIssuerPublicKey.title = Zertifikats Signatur kann nicht geprüft werden
|
||||
CertPathReviewer.NoIssuerPublicKey.text = Die Zertifikats Signatur kann nicht geprüft werden: Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
CertPathReviewer.NoIssuerPublicKey.summary = Die Zertifikats Signatur kann nicht geprüft werden: Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
CertPathReviewer.NoIssuerPublicKey.details = Die Zertifikats Signatur kann nicht geprüft werden: Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
|
||||
# signature can not be verified
|
||||
# {0} message of the underlying exception (english)
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.signatureNotVerified.title = Zertifikats Signatur ist ungültig
|
||||
CertPathReviewer.signatureNotVerified.text = Die Zertifikats Signatur ist ungültig. Es gab eine {2}.
|
||||
CertPathReviewer.signatureNotVerified.summary = Die Zertifikats Signatur ist ungültig.
|
||||
CertPathReviewer.signatureNotVerified.details = Die Zertifikats Signatur ist ungültig. Es gab eine {2}. Grund: {0}
|
||||
|
||||
# certificate expired
|
||||
# {0} the date the certificate expired
|
||||
CertPathReviewer.certificateExpired.title = Zertifikat ist abgelaufen
|
||||
CertPathReviewer.certificateExpired.text = Das Zertifikat ist ungültig. Es ist am {0,date} {0,time,full} abgelaufen.
|
||||
CertPathReviewer.certificateExpired.summary = Das Zertifikat ist abgelaufen am {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateExpired.details = Das Zertifikat ist ungültig. Es ist am {0,date} {0,time,full} abgelaufen.
|
||||
|
||||
# certificate not yet valid
|
||||
# {0} the date from which on the certificate is valid
|
||||
CertPathReviewer.certificateNotYetValid.title = Das Zertifikat ist noch nicht gültig
|
||||
CertPathReviewer.certificateNotYetValid.text = Das Zertifikat ist ungültig. Es ist erst gültig ab {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateNotYetValid.summary = Das Zertifikat ist nicht gültig bis {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateNotYetValid.details = Das Zertifikat ist ungültig. Es ist erst gültig ab {0,date} {0,time,full}.
|
||||
|
||||
# certificate invalid issuer DN
|
||||
# {0} expected issuer DN as String
|
||||
# {1} found issuer DN as String
|
||||
CertPathReviewer.certWrongIssuer.title = Falscher Herausgeber
|
||||
CertPathReviewer.certWrongIssuer.text = Das Herausgeber des Zertifikats ist ungültig. Erwartet {0}, gefunden {1}.
|
||||
CertPathReviewer.certWrongIssuer.summary = Das Herausgeber des Zertifikats ist ungültig.
|
||||
CertPathReviewer.certWrongIssuer.details = Das Herausgeber des Zertifikats ist ungültig. Erwartet {0}, gefunden {1}.
|
||||
|
||||
# intermediate certificate is no ca cert
|
||||
CertPathReviewer.noCACert.title = Zertifikat ist kein CA Zertifikat
|
||||
CertPathReviewer.noCACert.text = Das Zertifikat ist kein CA Zertifikat.
|
||||
CertPathReviewer.noCACert.summary = Das Zertifikat ist kein CA Zertifikat.
|
||||
CertPathReviewer.noCACert.details = Das Zertifikat ist kein CA Zertifikat, wird aber wie eines gebraucht.
|
||||
|
||||
# cert laks basic constraints
|
||||
CertPathReviewer.noBasicConstraints.title = Zertifikat hat keine Basiseinschränkungen
|
||||
CertPathReviewer.noBasicConstraints.text = Das Zertifikat hat keine Basiseinschränkungen.
|
||||
CertPathReviewer.noBasicConstraints.summary = Das Zertifikat hat keine Basiseinschränkungen.
|
||||
CertPathReviewer.noBasicConstraints.details = Das Zertifikat hat keine Basiseinschränkungen.
|
||||
|
||||
# error processing basic constraints
|
||||
CertPathReviewer.errorProcesingBC.title = Fehler bei der Verarbeitung der Basiseinschränkungen
|
||||
CertPathReviewer.errorProcesingBC.text = Es gab einen Fehler bei der Verarbeitung der Basiseinschränkungen des Zertifikats.
|
||||
CertPathReviewer.errorProcesingBC.summary = Fehler bei der Verarbeitung der Basiseinschränkungen
|
||||
CertPathReviewer.errorProcesingBC.details = Es gab einen Fehler bei der Verarbeitung der Basiseinschränkungen des Zertifikats.
|
||||
|
||||
# certificate not usable for signing certs
|
||||
CertPathReviewer.noCertSign.title = Schlüssel nicht nutzbar für Zertifikatssignaturen
|
||||
CertPathReviewer.noCertSign.text = Der Schlüssel kann nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
CertPathReviewer.noCertSign.summary = Der Schlüssel kann nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
CertPathReviewer.noCertSign.details = Der Schlüssel kann nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
|
||||
# error processing public key
|
||||
CertPathReviewer.pubKeyError.title = Fehler bei der Verarbeitung des öffentlichen Schlüssels
|
||||
CertPathReviewer.pubKeyError.text = Fehler bei der Verarbeitung des öffentlichen Schlüssels des Zertifikats.
|
||||
CertPathReviewer.pubKeyError.summary = Fehler bei der Verarbeitung des öffentlichen Schlüssels des Zertifikats.
|
||||
CertPathReviewer.pubKeyError.details = Fehler bei der Verarbeitung des öffentlichen Schlüssels des Zertifikats. Der AlorithmIdentifier konnte nicht extrahiert werden.
|
||||
|
||||
|
||||
## check signatures notifications
|
||||
|
||||
#
|
||||
# trust anchor has no keyusage certSign
|
||||
CertPathReviewer.trustKeyUsage.title = Root-Zertifikat Schlüsselverwendung
|
||||
CertPathReviewer.trustKeyUsage.text = Das Root-Zertifikat darf nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
CertPathReviewer.trustKeyUsage.summary = Das Root-Zertifikat darf nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
CertPathReviewer.trustKeyUsage.details = Das Root-Zertifikat darf nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
|
||||
# certificate path validation date
|
||||
# {0} date for which the cert path is validated
|
||||
# {1} current date
|
||||
CertPathReviewer.certPathValidDate.title = Datum der Zertifikatspfad Validierung
|
||||
CertPathReviewer.certPathValidDate.text = Der Zertifikatspfad wurde am {0,date} {0,time,full} angewendet. Er wurde am {1,date} {1,time,full} geprüft.
|
||||
CertPathReviewer.certPathValidDate.summary = Der Zertifikatspfad wurde am {0,date} {0,time,full} angewendet. Er wurde am {1,date} {1,time,full} geprüft.
|
||||
CertPathReviewer.certPathValidDate.details = Der Zertifikatspfad wurde am {0,date} {0,time,full} angewendet. Er wurde am {1,date} {1,time,full} geprüft.
|
||||
|
||||
|
||||
## check policy errors
|
||||
|
||||
# error processing certificate policy extension
|
||||
CertPathReviewer.policyExtError.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.policyExtError.text = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Erweiterung.
|
||||
CertPathReviewer.policyExtError.summary = Fehler bei der Verarbeitung der Policy Erweiterung.
|
||||
CertPathReviewer.policyExtError.details = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Erweiterung.
|
||||
|
||||
# error processing policy constraints extension
|
||||
CertPathReviewer.policyConstExtError.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.policyConstExtError.text = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Constraints Erweiterung.
|
||||
CertPathReviewer.policyConstExtError.summary = Fehler bei der Verarbeitung der Policy Constraints Erweiterung.
|
||||
CertPathReviewer.policyConstExtError.details = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Constraints Erweiterung.
|
||||
|
||||
# error processing policy mapping extension
|
||||
CertPathReviewer.policyMapExtError.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.policyMapExtError.text = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Mapping Erweiterung.
|
||||
CertPathReviewer.policyMapExtError.summary = Fehler bei der Verarbeitung der Policy Mapping Erweiterung.
|
||||
CertPathReviewer.policyMapExtError.details = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Mapping Erweiterung.
|
||||
|
||||
# error processing inhibit any policy extension
|
||||
CertPathReviewer.policyInhibitExtError.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.policyInhibitExtError.text = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Inhibit Any Policy Erweiterung.
|
||||
CertPathReviewer.policyInhibitExtError.summary = Fehler bei der Verarbeitung der Inhibit Any Policy Erweiterung.
|
||||
CertPathReviewer.policyInhibitExtError.details = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Inhibit Any Policy Erweiterung.
|
||||
|
||||
# error building qualifier set
|
||||
CertPathReviewer.policyQualifierError.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.policyQualifierError.text = Prüfen der Policy fehlgeschlagen: Fehler beim erstellen des Policy Qualifier Set.
|
||||
CertPathReviewer.policyQualifierError.summary = Prüfen der Policy fehlgeschlagen: Fehler beim erstellen des Policy Qualifier Set.
|
||||
CertPathReviewer.policyQualifierError.details = Prüfen der Policy fehlgeschlagen: Fehler beim erstellen des Policy Qualifier Set.
|
||||
|
||||
# no valid policy tree - explicit policy required
|
||||
CertPathReviewer.noValidPolicyTree.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.noValidPolicyTree.text = Prüfen der Policy fehlgeschlagen: Kein gültiger Policy Baum gefunden, als einer erwartet wurde.
|
||||
CertPathReviewer.noValidPolicyTree.summary = Prüfen der Policy fehlgeschlagen: Kein gültiger Policy Baum gefunden, als einer erwartet wurde.
|
||||
CertPathReviewer.noValidPolicyTree.details = Prüfen der Policy fehlgeschlagen: Kein gültiger Policy Baum gefunden, als einer erwartet wurde.
|
||||
|
||||
# expicit policy requested, but no policy available
|
||||
CertPathReviewer.explicitPolicy.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.explicitPolicy.text = Prüfen der Policy fehlgeschlagen: Policy verlang, aber keine Policy vorhanden.
|
||||
CertPathReviewer.explicitPolicy.summary = Prüfen der Policy fehlgeschlagen: Policy verlang, aber keine Policy vorhanden.
|
||||
CertPathReviewer.explicitPolicy.details = Prüfen der Policy fehlgeschlagen: Policy verlang, aber keine Policy vorhanden.
|
||||
|
||||
# path processing failed on policy
|
||||
CertPathReviewer.invalidPolicy.title = Pfad Validierung wegen der Policy fehlgeschlagen
|
||||
CertPathReviewer.invalidPolicy.text = Pfad Validierung wegen der Policy fehlgeschlagen.
|
||||
CertPathReviewer.invalidPolicy.summary = Pfad Validierung wegen der Policy fehlgeschlagen.
|
||||
CertPathReviewer.invalidPolicy.details = Pfad Validierung wegen der Policy fehlgeschlagen.
|
||||
|
||||
# invalid policy mapping
|
||||
CertPathReviewer.invalidPolicyMapping.title = Ungültiges Policy Mapping
|
||||
CertPathReviewer.invalidPolicyMapping.text = Das Zertifikat enthält ein Ungültiges Policy Mapping.
|
||||
CertPathReviewer.invalidPolicyMapping.summary = Das Zertifikat enthält ein Ungültiges Policy Mapping.
|
||||
CertPathReviewer.invalidPolicyMapping.details = Das Zertifikat enthält ein Ungültiges Policy Mapping, das den Wert Any Policy enthält.
|
||||
|
||||
## check CRL notifications
|
||||
|
||||
# found local valid CRL
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
CertPathReviewer.localValidCRL.title = Gültige Zertifikatssperrliste (CRL) gefunden
|
||||
CertPathReviewer.localValidCRL.text = Gültige Zertifikatssperrliste (CRL) im lokalen Speicher gefunden. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.localValidCRL.summary = Gültige Zertifikatssperrliste (CRL) im lokalen Speicher gefunden. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.localValidCRL.details = Gültige Zertifikatssperrliste (CRL) im lokalen Speicher gefunden. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
|
||||
|
||||
# found matching CRL, but not valid
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
CertPathReviewer.localInvalidCRL.title = Lokale Zertifikatssperrliste (CRL) veraltet
|
||||
CertPathReviewer.localInvalidCRL.text = Eine lokale Zertifikatssperrliste (CRL) wurde nicht genutzt, da sie veraltet ist. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.localInvalidCRL.summary = Eine lokale Zertifikatssperrliste (CRL) wurde nicht genutzt, da sie veraltet ist. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.localInvalidCRL.details = Eine lokale Zertifikatssperrliste (CRL) wurde nicht genutzt, da sie veraltet ist. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
|
||||
# found a valid crl at crl distribution point
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineValidCRL.title = Gültige Zertifikatssperrliste (CRL) von einem CDP
|
||||
CertPathReviewer.onlineValidCRL.text = Gültige Zertifikatssperrliste (CRL) gefunden von: {2}. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.onlineValidCRL.summary = Gültige Zertifikatssperrliste (CRL) gefunden von: {2}. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.onlineValidCRL.details = Gültige Zertifikatssperrliste (CRL) gefunden von: {2}. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
|
||||
# found an invalid CRL at crl distribution point
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineInvalidCRL.title = Veraltete Zertifikatssperrliste (CRL) von einem CDP
|
||||
CertPathReviewer.onlineInvalidCRL.text = Die Zertifikatssperrliste (CRL) von {2} ist veraltet. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.onlineInvalidCRL.summary = Die Zertifikatssperrliste (CRL) von {2} ist veraltet. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.onlineInvalidCRL.details = Die Zertifikatssperrliste (CRL) von {2} ist veraltet. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
|
||||
#found a CRL at a crl distribution point, but issued by another CA
|
||||
# {0} issuer of the CRL
|
||||
# {1} expected issuer
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineCRLWrongCA.title = Zertifikatssperrliste (CRL) von CDP mit falschem Herausgeber
|
||||
CertPathReviewer.onlineCRLWrongCA.text = Die Zertifikatssperrliste (CRL) von {2} wurde von {0} herausgegeben, erwartet wurde {1}.
|
||||
CertPathReviewer.onlineCRLWrongCA.summary = Die Zertifikatssperrliste (CRL) von {2} hat einen falschen Herausgeber.
|
||||
CertPathReviewer.onlineCRLWrongCA.details = Die Zertifikatssperrliste (CRL) von {2} wurde von {0} herausgegeben, erwartet wurde {1}.
|
||||
|
||||
# Certificate not revoked
|
||||
CertPathReviewer.notRevoked.title = Zertifikat nicht revoziert
|
||||
CertPathReviewer.notRevoked.text = Das Zertifikat ist nicht revoziert.
|
||||
CertPathReviewer.notRevoked.summary = Das Zertifikat ist nicht revoziert.
|
||||
CertPathReviewer.notRevoked.details = Das Zertifikat ist nicht revoziert.
|
||||
|
||||
# CRL found: certificate was revoked, but after the validationDate
|
||||
# {0} the date the certificate was revoked
|
||||
# {1} the reason for revoking the certificate
|
||||
CertPathReviewer.revokedAfterValidation.title = Zertifikat revoziert nach dem Validierungdatum
|
||||
CertPathReviewer.revokedAfterValidation.text = Das Zertifikat wurde nach dem Validierungdatum am {0,date} {0,time,full} revoziert. Grund: {1}.
|
||||
CertPathReviewer.revokedAfterValidation.summary = Das Zertifikat wurde nach dem Validierungdatum am {0,date} {0,time,full} revoziert.
|
||||
CertPathReviewer.revokedAfterValidation.details = Das Zertifikat wurde nach dem Validierungdatum am {0,date} {0,time,full} revoziert. Grund: {1}.
|
||||
|
||||
# updated crl available
|
||||
# {0} date since when the update is available
|
||||
CertPathReviewer.crlUpdateAvailable.title = Zertifikatssperrlisten (CRL) Update erhältlich
|
||||
CertPathReviewer.crlUpdateAvailable.text = Ein Update für die Zertifikatssperrliste (CRL) für dieses Zertifikat ist erhältlich seit {0,date} {0,time,full}.
|
||||
CertPathReviewer.crlUpdateAvailable.summary = Ein Update für die Zertifikatssperrliste (CRL) für dieses Zertifikat ist erhältlich seit {0,date} {0,time,full}.
|
||||
CertPathReviewer.crlUpdateAvailable.details = Ein Update für die Zertifikatssperrliste (CRL) für dieses Zertifikat ist erhältlich seit {0,date} {0,time,full}.
|
||||
|
||||
# crl distribution point url
|
||||
# {0} the crl distribution point url as String
|
||||
CertPathReviewer.crlDistPoint.title = CDP
|
||||
CertPathReviewer.crlDistPoint.text = Eine Zertifikatssperrliste (CRL) kann von {0} geladen werden.
|
||||
CertPathReviewer.crlDistPoint.summary = Eine Zertifikatssperrliste (CRL) kann von {0} geladen werden.
|
||||
CertPathReviewer.crlDistPoint.details = Eine Zertifikatssperrliste (CRL) kann von {0} geladen werden.
|
||||
|
||||
# ocsp location
|
||||
# {0} the url on which the ocsp service can be found
|
||||
CertPathReviewer.ocspLocation.title = OCSP Server
|
||||
CertPathReviewer.ocspLocation.text = OCSP Server: {0}.
|
||||
CertPathReviewer.ocspLocation.summary = OCSP Server: {0}.
|
||||
CertPathReviewer.ocspLocation.details = OCSP Server: {0}.
|
||||
|
||||
# unable to get crl from crl distribution point
|
||||
# {0} the url of the distribution point
|
||||
# {1} the message of the occurred exception
|
||||
# {2} the occurred exception
|
||||
# {3} the name of the exception
|
||||
CertPathReviewer.loadCrlDistPointError.title = Kann Zertifikatssperrliste (CRL) nicht von CDP laden
|
||||
CertPathReviewer.loadCrlDistPointError.text = Kann die Zertifikatssperrliste (CRL) von {0} nicht laden. Es gab eine {2}.
|
||||
CertPathReviewer.loadCrlDistPointError.summary = Kann die Zertifikatssperrliste (CRL) von {0} nicht laden. Es gab eine {2}.
|
||||
CertPathReviewer.loadCrlDistPointError.details = Kann die Zertifikatssperrliste (CRL) von {0} nicht laden. Es gab eine {2}. Grund: {1}.
|
||||
|
||||
# no crl found in certstores
|
||||
# {0} the issuers which we searched for
|
||||
# {1} list of crl issuer names that are found in the certstores
|
||||
# {2} number of crls in the certstores
|
||||
CertPathReviewer.noCrlInCertstore.title = Keine Zertifikatssperrliste (CRL) im lokalen Speicher
|
||||
CertPathReviewer.noCrlInCertstore.text = Es wurde keine Zertifikatssperrliste (CRL) im lokalen Speicher gefunden.
|
||||
CertPathReviewer.noCrlInCertstore.summary = Es wurde keine Zertifikatssperrliste (CRL) im lokalen Speicher gefunden.
|
||||
CertPathReviewer.noCrlInCertstore.details = Es wurde keine Zertifikatssperrliste (CRL) für den Herausgeber {0} im lokalen Speicher gefunden. \
|
||||
Die {2} Zertifikatssperrlisten im lokalen Speicher wurden hearusgegeben von {1}.
|
||||
|
||||
|
||||
## check CRL exceptions
|
||||
|
||||
# cannot extract issuer from certificate
|
||||
CertPathReviewer.crlIssuerException.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlIssuerException.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann den Herausgeber vom Zertifikat nicht extrahieren.
|
||||
CertPathReviewer.crlIssuerException.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann den Herausgeber vom Zertifikat nicht extrahieren.
|
||||
CertPathReviewer.crlIssuerException.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann den Herausgeber vom Zertifikat nicht extrahieren.
|
||||
|
||||
# cannot extract crls
|
||||
# {0} message from the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.crlExtractionError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlExtractionError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab eine {2} beim laden der Zertifikatssperrliste (CRL) aus dem lokalen Speicher.
|
||||
CertPathReviewer.crlExtractionError.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab eine {2} beim laden der Zertifikatssperrliste (CRL) aus dem lokalen Speicher.
|
||||
CertPathReviewer.crlExtractionError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab eine {2} beim laden der Zertifikatssperrliste (CRL) aus dem lokalen Speicher. Grund: {0}.
|
||||
|
||||
# Issuer certificate key usage extension does not permit crl signing
|
||||
CertPathReviewer.noCrlSigningPermited.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.noCrlSigningPermited.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Das Herausgeber Zertifikat erlaubt keine Signieren von Zertifikatssperrlisten (CRL).
|
||||
CertPathReviewer.noCrlSigningPermited.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Das Herausgeber Zertifikat erlaubt keine Signieren von Zertifikatssperrlisten (CRL).
|
||||
CertPathReviewer.noCrlSigningPermited.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Das Herausgeber Zertifikat erlaubt keine Signieren von Zertifikatssperrlisten (CRL).
|
||||
|
||||
# can not verify crl: issuer public key unknown
|
||||
CertPathReviewer.crlNoIssuerPublicKey.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlNoIssuerPublicKey.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann die Zertifikatssperrliste (CRL) nicht verifizieren. Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
CertPathReviewer.crlNoIssuerPublicKey.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann die Zertifikatssperrliste (CRL) nicht verifizieren. Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
CertPathReviewer.crlNoIssuerPublicKey.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann die Zertifikatssperrliste (CRL) nicht verifizieren. Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
|
||||
# crl verification failed
|
||||
CertPathReviewer.crlVerifyFailed.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlVerifyFailed.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Signatur der Zertifikatssperrliste (CRL) ist ungültig.
|
||||
CertPathReviewer.crlVerifyFailed.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Signatur der Zertifikatssperrliste (CRL) ist ungültig.
|
||||
CertPathReviewer.crlVerifyFailed.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Signatur der Zertifikatssperrliste (CRL) ist ungültig.
|
||||
|
||||
# no valid CRL found
|
||||
CertPathReviewer.noValidCrlFound.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.noValidCrlFound.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine gültige Zertifikatssperrliste (CRL) gefunden.
|
||||
CertPathReviewer.noValidCrlFound.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine gültige Zertifikatssperrliste (CRL) gefunden.
|
||||
CertPathReviewer.noValidCrlFound.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine gültige Zertifikatssperrliste (CRL) gefunden.
|
||||
|
||||
# No base CRL for delta CRL
|
||||
CertPathReviewer.noBaseCRL.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.noBaseCRL.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine Basis CRL für die Delta CRL gefunden.
|
||||
CertPathReviewer.noBaseCRL.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine Basis CRL für die Delta CRL gefunden.
|
||||
CertPathReviewer.noBaseCRL.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine Basis CRL für die Delta CRL gefunden.
|
||||
|
||||
# certificate revoked
|
||||
# {0} the date the certificate was revoked
|
||||
# {1} the reason for revoking the certificate
|
||||
CertPathReviewer.certRevoked.title = Zertifikat wurde revoziert
|
||||
CertPathReviewer.certRevoked.text = Das Zertifikat wurde am {0,date} {0,time,full} revoziert. Grund: {1}.
|
||||
CertPathReviewer.certRevoked.summary = Das Zertifikat wurde am {0,date} {0,time,full} revoziert.
|
||||
CertPathReviewer.certRevoked.details = Das Zertifikat wurde am {0,date} {0,time,full} revoziert. Grund: {1}.
|
||||
|
||||
# error processing issuing distribution point extension
|
||||
CertPathReviewer.distrPtExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.distrPtExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Issuing Distribution Point Erweiterung.
|
||||
CertPathReviewer.distrPtExtError.summary = Fehler bei der Verarbeitung der Issuing Distribution Point Erweiterung.
|
||||
CertPathReviewer.distrPtExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Issuing Distribution Point Erweiterung.
|
||||
|
||||
# error processing crl distribution points extension
|
||||
CertPathReviewer.crlDistPtExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlDistPtExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Distribution Points Erweiterung.
|
||||
CertPathReviewer.crlDistPtExtError.summary = Fehler bei der Verarbeitung der CRL Distribution Points Erweiterung.
|
||||
CertPathReviewer.crlDistPtExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Distribution Points Erweiterung.
|
||||
|
||||
# error processing the authority info access extension
|
||||
CertPathReviewer.crlAuthInfoAccError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlAuthInfoAccError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Authority Info Access Erweiterung.
|
||||
CertPathReviewer.crlAuthInfoAccError.summary = Fehler bei der Verarbeitung der Authority Info Access Erweiterung.
|
||||
CertPathReviewer.crlAuthInfoAccError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Authority Info Access Erweiterung.
|
||||
|
||||
# error processing delta crl indicator extension
|
||||
CertPathReviewer.deltaCrlExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.deltaCrlExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Delta CRL Indicator Erweiterung.
|
||||
CertPathReviewer.deltaCrlExtError.summary = Fehler bei der Verarbeitung der Delta CRL Indicator Erweiterung.
|
||||
CertPathReviewer.deltaCrlExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Delta CRL Indicator Erweiterung.
|
||||
|
||||
# error porcessing crl number extension
|
||||
CertPathReviewer.crlNbrExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlNbrExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Number Erweiterung.
|
||||
CertPathReviewer.crlNbrExtError.summary = Fehler bei der Verarbeitung der CRL Number Erweiterung.
|
||||
CertPathReviewer.crlNbrExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Number Erweiterung.
|
||||
|
||||
# error processing crl reason code extension
|
||||
CertPathReviewer.crlReasonExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlReasonExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
CertPathReviewer.crlReasonExtError.summary = Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
CertPathReviewer.crlReasonExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
|
||||
# error processing basic constraints extension
|
||||
CertPathReviewer.crlBCExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlBCExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
CertPathReviewer.crlBCExtError.summary = Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
CertPathReviewer.crlBCExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
|
||||
# CA Cert CRL only contains user certificates
|
||||
CertPathReviewer.crlOnlyUserCert.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlOnlyUserCert.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur User Zertifikate.
|
||||
CertPathReviewer.crlOnlyUserCert.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur User Zertifikate.
|
||||
CertPathReviewer.crlOnlyUserCert.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur User Zertifikate.
|
||||
|
||||
# End CRL only contains CA certificates
|
||||
CertPathReviewer.crlOnlyCaCert.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlOnlyCaCert.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur CA Zertifikate.
|
||||
CertPathReviewer.crlOnlyCaCert.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur CA Zertifikate.
|
||||
CertPathReviewer.crlOnlyCaCert.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur CA Zertifikate.
|
||||
|
||||
# onlyContainsAttributeCerts boolean is asserted
|
||||
CertPathReviewer.crlOnlyAttrCert.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlOnlyAttrCert.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur Attribut Zertifikate.
|
||||
CertPathReviewer.crlOnlyAttrCert.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur Attribut Zertifikate.
|
||||
CertPathReviewer.crlOnlyAttrCert.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur Attribut Zertifikate.
|
||||
|
||||
|
||||
## QcStatement notifications
|
||||
|
||||
# unkown statement
|
||||
# {0} statement OID
|
||||
# {1} statement as ANS1Sequence
|
||||
CertPathReviewer.QcUnknownStatement.title = Unbekanntes Statement in der QcStatement Erweiterung
|
||||
CertPathReviewer.QcUnknownStatement.text = Unbekanntes Statement in der QcStatement Erweiterung: OID = {0}
|
||||
CertPathReviewer.QcUnknownStatement.summary = Unbekanntes Statement in der QcStatement Erweiterung: OID = {0}
|
||||
CertPathReviewer.QcUnknownStatement.details = Unbekanntes Statement in der QcStatement Erweiterung: OID = {0}, statement = {1}
|
||||
|
||||
# QcLimitValue Alpha currency code
|
||||
# {0} currency code
|
||||
# {1} limit value
|
||||
# {2} monetary value as MonetaryValue
|
||||
CertPathReviewer.QcLimitValueAlpha.title = Transaction Value Limit
|
||||
CertPathReviewer.QcLimitValueAlpha.text = Dieses Zertifikat hat ein Wertlimite von {1,number, ###,###,###,##0.00#} {0} für Transaktionen.
|
||||
CertPathReviewer.QcLimitValueAlpha.summary = Wertlimite von {1,number, ###,###,###,##0.00#} {0} für Transaktionen.
|
||||
CertPathReviewer.QcLimitValueAlpha.details = Dieses Zertifikat hat eine Wertlimite für Transaktionen für welche\
|
||||
das Zertifikat genutzt werden kann, gemäss der Richtlinie 1999/93/EG des Europäischen Parlaments und\
|
||||
des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen und gemäss der Umsetzung der\
|
||||
Richtlinie im Land, das im Herausgeber dieses Zertifikats angegeben ist. Die Limite für diese Zertifikat ist {1,number, ###,###,###,##0.00#} {0}.
|
||||
|
||||
# QcLimitValue Numeric currency code
|
||||
# {0} currency code
|
||||
# {1} limit value
|
||||
# {2} monetary value as MonetaryValue
|
||||
CertPathReviewer.QcLimitValueNum.title = Transaction Value Limit
|
||||
CertPathReviewer.QcLimitValueNum.text = Dieses Zertifikat hat eine Wertlimite für Transaktionen von {1,number, ###,###,###,##0.00#} der Währung {0} (Siehe RFC 4217 für Währungscodes).
|
||||
CertPathReviewer.QcLimitValueNum.summary = Wertlimite für Transaktionen von {1,number, ###,###,###,##0.00#} der Währung {0} (Siehe RFC 4217 für Währungscodes).
|
||||
CertPathReviewer.QcLimitValueNum.details = Dieses Zertifikat hat eine Wertlimite für Transaktionen für welche\
|
||||
das Zertifikat genutzt werden kann, gemäss der Richtlinie 1999/93/EG des Europäischen Parlaments und\
|
||||
des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen und gemäss der Umsetzung der\
|
||||
Richtlinie im Land, das im Herausgeber dieses Zertifikats angegeben ist. Die Limite für diese Zertifikat ist {1,number, ###,###,###,##0.00#} der Währung {0} (Siehe RFC 4217 für Währungscodes).
|
||||
|
||||
# QcSSCD
|
||||
CertPathReviewer.QcSSCD.title = QcSSCD Statement
|
||||
CertPathReviewer.QcSSCD.text = (SSCD) Der Herausgeber macht geltend, dass der Private Schlüssel, der mit diesem Zertifikat verbunden ist, nach den Anforderungen die im Anhang III der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen geschützt ist.
|
||||
CertPathReviewer.QcSSCD.summary = (SSCD) Der Herausgeber macht geltend, dass der Private Schlüssel, der mit diesem Zertifikat verbunden ist, nach den Anforderungen die im Anhang III der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen geschützt ist.
|
||||
CertPathReviewer.QcSSCD.details = (SSCD) Der Herausgeber macht geltend, dass der Private Schlüssel, der mit diesem Zertifikat verbunden ist, nach den Anforderungen die im Anhang III der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen geschützt ist.
|
||||
|
||||
# QcEuCompliance
|
||||
CertPathReviewer.QcEuCompliance.title = Qualifiziertes Zertifikat
|
||||
CertPathReviewer.QcEuCompliance.text = Dieses Zertifikat wurde als Qualifiziertes Zertifikat herausgegeben gemäss Anhang I und II der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen und gemäss der Umsetzung der Richtlinie im Land, das im Herausgeber dieses Zertifikats angegeben ist.
|
||||
CertPathReviewer.QcEuCompliance.summary = Dieses Zertifikat wurde als Qualifiziertes Zertifikat herausgegeben gemäss Anhang I und II der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen und gemäss der Umsetzung der Richtlinie in dem Land, das im Herausgeber dieses Zertifikats angegeben ist.
|
||||
CertPathReviewer.QcEuCompliance.details = Dieses Zertifikat wurde als Qualifiziertes Zertifikat herausgegeben gemäss Anhang I und II der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen und gemäss der Umsetzung der Richtlinie in dem Land, das im Herausgeber dieses Zertifikats angegeben ist.
|
||||
|
||||
## QcStatement errors
|
||||
|
||||
# error processing the QcStatement extension
|
||||
CertPathReviewer.QcStatementExtError.title = Fehler bei der Verarbeitung der QcStatement Erweiterung
|
||||
CertPathReviewer.QcStatementExtError.text = Fehler bei der Verarbeitung der QcStatement Erweiterung.
|
||||
CertPathReviewer.QcStatementExtError.summary = Fehler bei der Verarbeitung der QcStatement Erweiterung.
|
||||
CertPathReviewer.QcStatementExtError.details = Fehler bei der Verarbeitung der QcStatement Erweiterung.
|
||||
|
||||
## unknown/generic errors
|
||||
CertPathReviewer.unknown.title = Unbekannter Fehler
|
||||
CertPathReviewer.unknown.text = Unbekannter Fehler {0}
|
||||
CertPathReviewer.unknown.summary = Unbekannter Fehler
|
||||
CertPathReviewer.unknown.details = Unbekannter Fehler {0}
|
||||
|
||||
#
|
||||
# crl reasons
|
||||
#
|
||||
unspecified = Nicht spezifiziert
|
||||
keyCompromise = Schlüssel Kompromittierung
|
||||
cACompromise = CA Kompromittierung
|
||||
affiliationChanged = Veränderte Zugehörigkeit
|
||||
superseded = Ersetzt
|
||||
cessationOfOperation = Einstellen der Tätigkeiten
|
||||
certificateHold = Zertifikat vorübergehend gesperrt
|
||||
unknown = Unbekannt
|
||||
removeFromCRL = Entferne von der CRL
|
||||
privilegeWithdrawn = Zurückgezogene Rechte
|
||||
aACompromise = AA Kompromittierung
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
missingIssuer = The missing certificate was issued by
|
||||
missingSerial = with the serial number
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,4 +0,0 @@
|
||||
text/html = ISO-8859-1
|
||||
text/plain = ISO-8859-1
|
||||
text/xml = UTF-8
|
||||
text/json = UTF-8
|
||||
@@ -1,181 +0,0 @@
|
||||
ai = application/postscript
|
||||
aif = audio/x-aiff
|
||||
aifc = audio/x-aiff
|
||||
aiff = audio/x-aiff
|
||||
apk = application/vnd.android.package-archive
|
||||
asc = text/plain
|
||||
asf = video/x.ms.asf
|
||||
asx = video/x.ms.asx
|
||||
au = audio/basic
|
||||
avi = video/x-msvideo
|
||||
bcpio = application/x-bcpio
|
||||
bin = application/octet-stream
|
||||
cab = application/x-cabinet
|
||||
cdf = application/x-netcdf
|
||||
class = application/java-vm
|
||||
cpio = application/x-cpio
|
||||
cpt = application/mac-compactpro
|
||||
crt = application/x-x509-ca-cert
|
||||
csh = application/x-csh
|
||||
css = text/css
|
||||
csv = text/comma-separated-values
|
||||
dcr = application/x-director
|
||||
dir = application/x-director
|
||||
dll = application/x-msdownload
|
||||
dms = application/octet-stream
|
||||
doc = application/msword
|
||||
dtd = application/xml-dtd
|
||||
dvi = application/x-dvi
|
||||
dxr = application/x-director
|
||||
eps = application/postscript
|
||||
etx = text/x-setext
|
||||
exe = application/octet-stream
|
||||
ez = application/andrew-inset
|
||||
gif = image/gif
|
||||
gtar = application/x-gtar
|
||||
gz = application/gzip
|
||||
gzip = application/gzip
|
||||
hdf = application/x-hdf
|
||||
hqx = application/mac-binhex40
|
||||
htc = text/x-component
|
||||
htm = text/html
|
||||
html = text/html
|
||||
ice = x-conference/x-cooltalk
|
||||
ico = image/x-icon
|
||||
ief = image/ief
|
||||
iges = model/iges
|
||||
igs = model/iges
|
||||
jad = text/vnd.sun.j2me.app-descriptor
|
||||
jar = application/java-archive
|
||||
java = text/plain
|
||||
jnlp = application/x-java-jnlp-file
|
||||
jpe = image/jpeg
|
||||
jpeg = image/jpeg
|
||||
jpg = image/jpeg
|
||||
js = application/x-javascript
|
||||
jsp = text/html
|
||||
kar = audio/midi
|
||||
latex = application/x-latex
|
||||
lha = application/octet-stream
|
||||
lzh = application/octet-stream
|
||||
man = application/x-troff-man
|
||||
mathml = application/mathml+xml
|
||||
me = application/x-troff-me
|
||||
mesh = model/mesh
|
||||
mid = audio/midi
|
||||
midi = audio/midi
|
||||
mif = application/vnd.mif
|
||||
mol = chemical/x-mdl-molfile
|
||||
mov = video/quicktime
|
||||
movie = video/x-sgi-movie
|
||||
mp2 = audio/mpeg
|
||||
mp3 = audio/mpeg
|
||||
mpe = video/mpeg
|
||||
mpeg = video/mpeg
|
||||
mpg = video/mpeg
|
||||
mpga = audio/mpeg
|
||||
ms = application/x-troff-ms
|
||||
msh = model/mesh
|
||||
msi = application/octet-stream
|
||||
nc = application/x-netcdf
|
||||
oda = application/oda
|
||||
odb = application/vnd.oasis.opendocument.database
|
||||
odc = application/vnd.oasis.opendocument.chart
|
||||
odf = application/vnd.oasis.opendocument.formula
|
||||
odg = application/vnd.oasis.opendocument.graphics
|
||||
odi = application/vnd.oasis.opendocument.image
|
||||
odm = application/vnd.oasis.opendocument.text-master
|
||||
odp = application/vnd.oasis.opendocument.presentation
|
||||
ods = application/vnd.oasis.opendocument.spreadsheet
|
||||
odt = application/vnd.oasis.opendocument.text
|
||||
ogg = application/ogg
|
||||
otc = application/vnd.oasis.opendocument.chart-template
|
||||
otf = application/vnd.oasis.opendocument.formula-template
|
||||
otg = application/vnd.oasis.opendocument.graphics-template
|
||||
oth = application/vnd.oasis.opendocument.text-web
|
||||
oti = application/vnd.oasis.opendocument.image-template
|
||||
otp = application/vnd.oasis.opendocument.presentation-template
|
||||
ots = application/vnd.oasis.opendocument.spreadsheet-template
|
||||
ott = application/vnd.oasis.opendocument.text-template
|
||||
pbm = image/x-portable-bitmap
|
||||
pdb = chemical/x-pdb
|
||||
pdf = application/pdf
|
||||
pgm = image/x-portable-graymap
|
||||
pgn = application/x-chess-pgn
|
||||
png = image/png
|
||||
pnm = image/x-portable-anymap
|
||||
ppm = image/x-portable-pixmap
|
||||
pps = application/vnd.ms-powerpoint
|
||||
ppt = application/vnd.ms-powerpoint
|
||||
ps = application/postscript
|
||||
qt = video/quicktime
|
||||
ra = audio/x-pn-realaudio
|
||||
ram = audio/x-pn-realaudio
|
||||
ras = image/x-cmu-raster
|
||||
rdf = application/rdf+xml
|
||||
rgb = image/x-rgb
|
||||
rm = audio/x-pn-realaudio
|
||||
roff = application/x-troff
|
||||
rpm = application/x-rpm
|
||||
rtf = application/rtf
|
||||
rtx = text/richtext
|
||||
rv = video/vnd.rn-realvideo
|
||||
ser = application/java-serialized-object
|
||||
sgm = text/sgml
|
||||
sgml = text/sgml
|
||||
sh = application/x-sh
|
||||
shar = application/x-shar
|
||||
silo = model/mesh
|
||||
sit = application/x-stuffit
|
||||
skd = application/x-koan
|
||||
skm = application/x-koan
|
||||
skp = application/x-koan
|
||||
skt = application/x-koan
|
||||
smi = application/smil
|
||||
smil = application/smil
|
||||
snd = audio/basic
|
||||
spl = application/x-futuresplash
|
||||
src = application/x-wais-source
|
||||
sv4cpio = application/x-sv4cpio
|
||||
sv4crc = application/x-sv4crc
|
||||
svg = image/svg+xml
|
||||
swf = application/x-shockwave-flash
|
||||
t = application/x-troff
|
||||
tar = application/x-tar
|
||||
tar.gz = application/x-gtar
|
||||
tcl = application/x-tcl
|
||||
tex = application/x-tex
|
||||
texi = application/x-texinfo
|
||||
texinfo = application/x-texinfo
|
||||
tgz = application/x-gtar
|
||||
tif = image/tiff
|
||||
tiff = image/tiff
|
||||
tr = application/x-troff
|
||||
tsv = text/tab-separated-values
|
||||
txt = text/plain
|
||||
ustar = application/x-ustar
|
||||
vcd = application/x-cdlink
|
||||
vrml = model/vrml
|
||||
vxml = application/voicexml+xml
|
||||
wav = audio/x-wav
|
||||
wbmp = image/vnd.wap.wbmp
|
||||
wml = text/vnd.wap.wml
|
||||
wmlc = application/vnd.wap.wmlc
|
||||
wmls = text/vnd.wap.wmlscript
|
||||
wmlsc = application/vnd.wap.wmlscriptc
|
||||
wrl = model/vrml
|
||||
wtls-ca-certificate = application/vnd.wap.wtls-ca-certificate
|
||||
xbm = image/x-xbitmap
|
||||
xht = application/xhtml+xml
|
||||
xhtml = application/xhtml+xml
|
||||
xls = application/vnd.ms-excel
|
||||
xml = application/xml
|
||||
xpm = image/x-xpixmap
|
||||
xsd = application/xml
|
||||
xsl = application/xml
|
||||
xslt = application/xslt+xml
|
||||
xul = application/vnd.mozilla.xul+xml
|
||||
xwd = image/x-xwindowdump
|
||||
xyz = chemical/x-xyz
|
||||
z = application/compress
|
||||
zip = application/zip
|
||||
@@ -1 +0,0 @@
|
||||
AbstractHandler: Jetty Handler.
|
||||
@@ -1,24 +0,0 @@
|
||||
ContextHandler: URI Context
|
||||
aliases: True if alias checking is performed on resource
|
||||
allowNullPathInfo: Checks if the /context is not redirected to /context/
|
||||
classPath: RO: The file classpath
|
||||
compactPath: True if URLs are compacted to replace the multiple '/'s with a single '/'
|
||||
connectorNames: Names and ports of accepted connectors
|
||||
contextAttributes: RO:MBean: Map of context attributes
|
||||
contextPath: URI prefix of context
|
||||
displayName: RO: Display name of the Context
|
||||
errorHandler: MObject: The error handler to use for the context
|
||||
initParams: Initial Parameter map for the context
|
||||
maxFormContentSize: The maximum content size
|
||||
removeContextAttribute(java.lang.String): MBean:ACTION: remove context attribute
|
||||
removeContextAttribute(java.lang.String)[0]: name: The attribute name
|
||||
resourceBase: Document root for the context
|
||||
setContextAttribute(java.lang.String,java.lang.Object): MBean:ACTION: Set context attribute
|
||||
setContextAttribute(java.lang.String,java.lang.Object)[0]: name: The attribute name
|
||||
setContextAttribute(java.lang.String,java.lang.Object)[1]: value: The attribute value
|
||||
setContextAttribute(java.lang.String,java.lang.String): MBean:ACTION: Set context attribute
|
||||
setContextAttribute(java.lang.String,java.lang.String)[0]: name: The attribute name
|
||||
setContextAttribute(java.lang.String,java.lang.String)[1]: value: The attribute value
|
||||
shutdown: False if this context is accepting new requests. True for graceful shutdown, which allows existing requests to complete
|
||||
virtualHosts: Virtual hosts accepted by the context
|
||||
welcomeFiles: Partial URIs of directory welcome files
|
||||
@@ -1,2 +0,0 @@
|
||||
ContextHandlerCollection: Context Handler Collection
|
||||
mapContexts(): Update the mapping of context path to context
|
||||
@@ -1,2 +0,0 @@
|
||||
HandlerCollection: Handler of multiple Handlers
|
||||
handlers: MObject:Wrapped handlers
|
||||
@@ -1,2 +0,0 @@
|
||||
HandlerWrapper: Handler wrapping another Handler
|
||||
handler: MObject:Wrapped handler
|
||||
@@ -1,28 +0,0 @@
|
||||
StatisticsHandler: Request Statistics gathering
|
||||
statsOnMs: Time in milliseconds stats have been collected for.
|
||||
statsReset(): Resets statistics.
|
||||
requests: Number of requests since statsReset() called.
|
||||
requestsActive: Number of requests currently active since statsReset() called.
|
||||
requestsActiveMax: Maximum number of active requests since statsReset() called.
|
||||
requestTimeMax: Maximum time in milliseconds of request handling since statsReset() called.
|
||||
requestTimeTotal: Total time in milliseconds of all request handling since statsReset() called.
|
||||
requestTimeMean: Mean of time in milliseconds of request handling since statsReset() called.
|
||||
requestTimeStdDev: Standard deviation of time in milliseconds of request handling since statsReset() called.
|
||||
dispatched: Number of dispatches since statsReset() called.
|
||||
dispatchedActive: Number of dispatches currently active since statsReset() called.
|
||||
dispatchedActiveMax: Maximum number of active dispatches since statsReset() called.
|
||||
dispatchedTimeMax: Maximum time in milliseconds of dispatched handling since statsReset() called.
|
||||
dispatchedTimeTotal: Total time in milliseconds of all dispatched handling since statsReset() called.
|
||||
dispatchedTimeMean: Mean of time in milliseconds of dispatch handling since statsReset() called.
|
||||
dispatchedTimeStdDev: Standard deviation of time in milliseconds of dispatch handling since statsReset() called.
|
||||
suspends: Number of requests suspended since statsReset() called.
|
||||
suspendsActive: Number of dispatches currently active since statsReset() called.
|
||||
suspendsActiveMax: Maximum number of active dispatches since statsReset() called.
|
||||
resumes: Number of requests resumed since statsReset() called.
|
||||
expires: Number of requests expired since statsReset() called.
|
||||
responses1xx: Number of responses with a 1xx status since statsReset() called.
|
||||
responses2xx: Number of responses with a 2xx status since statsReset() called.
|
||||
responses3xx: Number of responses with a 3xx status since statsReset() called.
|
||||
responses4xx: Number of responses with a 4xx status since statsReset() called.
|
||||
responses5xx: Number of responses with a 5xx status since statsReset() called.
|
||||
responsesBytesTotal: Total number of bytes of all responses since statsReset() called.
|
||||
@@ -1,19 +0,0 @@
|
||||
AbstractConnector: Abstract implementation of the Connector interface.
|
||||
acceptors: The number of acceptor threads.
|
||||
acceptQueueSize: The size of the accept queue.
|
||||
acceptorPriorityOffset: Priority offset of the acceptor threads. The priority is adjusted by this amount to either favor the acceptance of new threads and newly active connections or to favor the handling of already dispatched connections.
|
||||
forwardedForHeader: The header name for forwarded for (default x-forwarded-for).
|
||||
forwardedHostHeader: The header name for forwarded hosts (default x-forwarded-host)
|
||||
forwardedServerHeader: The header name for forwarded server (default x-forwarded-server)
|
||||
forwarded: Whether reverse proxy handling is on. True if this connector is checking the forwarded for/host/server headers.
|
||||
host: Host name of the server.
|
||||
hostHeader: Forced value for the host header. Only used if forwarded is true.
|
||||
soLingerTime: Enable or disable SO_LINGER with the specified linger time in seconds.
|
||||
reuseAddress: Whether the server socket will be opened in SO_REUSEADDR mode.
|
||||
name: Name of the connector.
|
||||
resolveNames: Whether or not to use DNS when handling forwards.
|
||||
confidentialPort: Port to use for confidential redirections.
|
||||
confidentialScheme: Scheme to use for confidential redirections.
|
||||
integralPort: Port to use for integral redirections.
|
||||
integralScheme: Scheme to use for integral redirections.
|
||||
lowResourcesMaxIdleTime: The period in ms that a connection may be idle when the connector has low resources, before it is closed.
|
||||
@@ -1,29 +0,0 @@
|
||||
Connector: HTTP Connector.
|
||||
server: MObject:RO:The server for this connector
|
||||
requestHeaderSize: The size of a request header buffer
|
||||
requestBufferSize: The size of a request content buffer
|
||||
responseHeaderSize: The size of a response header buffer
|
||||
responseBufferSize: The size of a response content buffer
|
||||
integralPort: Port to use for integral redirections
|
||||
integralScheme: Scheme to use for integral redirections
|
||||
confidentialPort: Port to use for confidential redirections
|
||||
confidentialScheme: Scheme to use for confidential redirections
|
||||
host: Host name to accept connections on
|
||||
port: TCP/IP port to accept connections on
|
||||
maxIdleTime: Maximum time in ms that a connection can be idle before being closed
|
||||
statsOn: True if statistics collection is turned on.
|
||||
statsOnMs: Time in milliseconds stats have been collected for.
|
||||
statsReset(): Reset statistics.
|
||||
connections: Number of connections accepted by the server since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsOpen: Number of connections currently open that were opened since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsOpenMax: Maximum number of connections opened simultaneously since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsDurationMean: Mean duration in milliseconds of open connections since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsDurationStdDev: Standard deviation of duration in milliseconds of an open connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsDurationMax: Maximum duration in milliseconds of an open connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsDurationTotal: Total duration in milliseconds of all open connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsRequestsMean: Mean number of requests per connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsRequestsStdDev: Standard deviation of number of requests per connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsRequestsMax: Maximum number of requests per connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
requests: Number of requests since statsReset() called. Undefined if setStatsOn(false).
|
||||
open(): Open the listening port
|
||||
close(): Close the listening port (but allow existing connections to continue for graceful shutdown)
|
||||
@@ -1,3 +0,0 @@
|
||||
Handler: Jetty Handler.
|
||||
server: MObject:RO:The Jetty server for this handler
|
||||
destroy(): destroy associated resources (eg MBean)
|
||||
@@ -1,3 +0,0 @@
|
||||
HandlerContainer: Handler of multiple Handlers
|
||||
handlers: MObject:RO:Handlers in this container
|
||||
childHandlers: MObject:RO:All contained handlers
|
||||
@@ -1,6 +0,0 @@
|
||||
NCSARequestLog : NCSA standard format request log
|
||||
filename : Filename of log
|
||||
retainDays : Number of days that the log files are kept
|
||||
append : Existing log files are appended to the new one
|
||||
extended : Use the extended NCSA format
|
||||
LogTimeZone : The timezone
|
||||
@@ -1,9 +0,0 @@
|
||||
Server: Jetty HTTP Servlet server
|
||||
connectors: MObject:HTTP Connectors for this server
|
||||
version: RO: The version of this server
|
||||
sendServerVersion: If true include the server version in HTTP headers
|
||||
threadPool: MObject:The server Thread Pool
|
||||
contexts: MMBean:RO:The contexts of this server
|
||||
startupTime: MBean:RO:The startup time, in milliseconds, since January 1st 1970
|
||||
dumpAfterStart: RW:Dump state to stderr after start
|
||||
dumpBeforeStop: RW:Dump state to stderr before stop
|
||||
@@ -1,2 +0,0 @@
|
||||
SelectChannelConnector: HTTP connector using NIO ByteChannels and Selectors
|
||||
lowResourcesConnections: The number of connections, which if exceeded represents low resources
|
||||
@@ -1,19 +0,0 @@
|
||||
AbstractSessionManager: Abstract Session Manager
|
||||
httpOnly: True if cookies use the http only flag
|
||||
idManager: MObject:RO:The ID Manager instance
|
||||
maxCookieAge: if greater than zero, the time in seconds a session cookie will last for
|
||||
maxInactiveInterval: default maximum time in seconds a session may be idle
|
||||
refreshCookieAge: The time in seconds after which a session cookie is re-set
|
||||
secureCookies: If true, the secure cookie flag is set on session cookies
|
||||
sessionCookie: The set session cookie
|
||||
sessionDomain: The domain of the session cookie or null for the default
|
||||
sessionPath: The path of the session cookie or null for the default
|
||||
sessionsTotal: The total number of sessions
|
||||
sessionIdPathParameterName: The name to use for URL session tracking
|
||||
statsReset(): Reset statistics
|
||||
sessions: Current instantaneous number of sessions
|
||||
sessionsMax: Maximum number of simultaneous sessions since statsReset() was called
|
||||
sessionTimeMax: Maximum amount of time in seconds session remained valid since statsReset() was called
|
||||
sessionTimeTotal: Total amount of time in seconds sessions remained valid since statsReset() was called
|
||||
sessionTimeMean: Mean amount of time in seconds a session remained valid since statsReset() was called
|
||||
sessionTimeStdDev: Standard deviation of amount of time in seconds a session remained valid since statsReset() was called
|
||||
@@ -1,4 +0,0 @@
|
||||
FilterMapping: Filter Mapping
|
||||
filterName: RO:Filter Name
|
||||
pathSpecs: RO:URL patterns
|
||||
servletNames: RO:Servlet Names
|
||||
@@ -1,5 +0,0 @@
|
||||
Holder: Holder
|
||||
name: RO:Name
|
||||
displayName: RO:Display Name
|
||||
className: RO:Class Name
|
||||
initParameters: RO:Initial parameters
|
||||
@@ -1,4 +0,0 @@
|
||||
ServletContextHandler: Servlet Context Handler
|
||||
securityHandler: MObject: The context's security handler
|
||||
servletHandler: MObject: The context's servlet handler
|
||||
sessionHandler: MObject: The context's session handler
|
||||
@@ -1,5 +0,0 @@
|
||||
ServletHandler: Servlet Handler
|
||||
servlets: MObject:RO:Servlets
|
||||
servletMappings: MObject:RO:Mappings of servlets
|
||||
filters: MObject:RO:Filters
|
||||
filterMappings: MObject:RO:Mappings of filters
|
||||
@@ -1,4 +0,0 @@
|
||||
ServletHolder: Servlet Holder
|
||||
initOrder: Initialization order
|
||||
runAsRole: Role to run servlet as
|
||||
forcedPath: Forced servlet path
|
||||
@@ -1,3 +0,0 @@
|
||||
ServletMapping: Servlet Mapping
|
||||
servletName: RO:Servlet Name
|
||||
pathSpecs: RO:URL patterns
|
||||
@@ -1,354 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema targetNamespace="urn:schemas-upnp-org:metadata-1-0/AVT/"
|
||||
xmlns:avt="urn:schemas-upnp-org:metadata-1-0/AVT/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
|
||||
<!--
|
||||
TODO: This schema was copied from AVTransport1.0.pdf.
|
||||
Apparently the UPnP clowns couldn't agree if it is *Metadata or *MetaData.
|
||||
So I've made changes and now all elements are called *MetaData, like the
|
||||
state variables in the spec. That _will_ break if someone really uses
|
||||
the original schema.
|
||||
-->
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
Schema for UPnP A/V AVTransport Service events, version 0.1(sic!)
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'Event' is the root element of AVTransport event document fragments.
|
||||
'InstanceID' is the only valid child of 'Event'.
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Event">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>Event is the root
|
||||
element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:element ref="avt:InstanceID"/>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'InstanceID' elements identify an individual event instance.
|
||||
|
||||
============================================================-->
|
||||
<xsd:group name="allowed-under-InstanceID">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
This group defines the elements allowed under the InstanceID element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice>
|
||||
<xsd:element ref="avt:TransportState"/>
|
||||
<xsd:element ref="avt:TransportStatus"/>
|
||||
<xsd:element ref="avt:PlaybackStorageMedium"/>
|
||||
<xsd:element ref="avt:RecordStorageMedium"/>
|
||||
<xsd:element ref="avt:PossiblePlaybackStorageMedia"/>
|
||||
<xsd:element ref="avt:PossibleRecordStorageMedia"/>
|
||||
<xsd:element ref="avt:CurrentPlayMode"/>
|
||||
<xsd:element ref="avt:TransportPlaySpeed"/>
|
||||
<xsd:element ref="avt:RecordMediumWriteStatus"/>
|
||||
<xsd:element ref="avt:CurrentRecordQualityMode"/>
|
||||
<xsd:element ref="avt:PossibleRecordQualityModes"/>
|
||||
<xsd:element ref="avt:NumberOfTracks"/>
|
||||
<xsd:element ref="avt:CurrentTransportActions"/>
|
||||
<xsd:element ref="avt:CurrentTrack"/>
|
||||
<xsd:element ref="avt:CurrentTrackDuration"/>
|
||||
<xsd:element ref="avt:CurrentMediaDuration"/>
|
||||
<xsd:element ref="avt:CurrentTrackURI"/>
|
||||
<xsd:element ref="avt:CurrentTrackMetaData"/>
|
||||
<xsd:element ref="avt:AVTransportURI"/>
|
||||
<xsd:element ref="avt:AVTransportURIMetaData"/>
|
||||
<xsd:element ref="avt:NextAVTransportURI"/>
|
||||
<xsd:element ref="avt:NextAVTransportURIMetaData"/>
|
||||
</xsd:choice>
|
||||
</xsd:group>
|
||||
<xsd:element name="InstanceID">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
InstanceID elements identify an individual event instance.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:group ref="avt:allowed-under-InstanceID"/>
|
||||
</xsd:choice>
|
||||
<!-- TODO: That attribute was missing in the spec! -->
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportState
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportState">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" use="required">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="STOPPED"/>
|
||||
<xsd:enumeration value="PLAYING"/>
|
||||
<xsd:enumeration value="TRANSITIONING"/>
|
||||
<xsd:enumeration value="PAUSED_PLAYBACK"/>
|
||||
<xsd:enumeration value="PAUSED_RECORDING"/>
|
||||
<xsd:enumeration value="RECORDING"/>
|
||||
<xsd:enumeration value="NO_MEDIA_PRESENT"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:attribute>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportStatus
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportStatus">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" use="required">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="OK"/>
|
||||
<xsd:enumeration value="ERROR_OCCURRED"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:attribute>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PlaybackStorageMedium
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PlaybackStorageMedium">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RecordStorageMedium
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RecordStorageMedium">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossiblePlaybackStorageMedia
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossiblePlaybackStorageMedia">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossibleRecordStorageMedia
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossibleRecordStorageMedia">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentPlayMode
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentPlayMode">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportPlaySpeed
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportPlaySpeed">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RecordMediumWriteStatus
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RecordMediumWriteStatus">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentRecordQualityMode
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentRecordQualityMode">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossibleRecordQualityModes (!!! TYPO IN SPEC !!!)
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossibleRecordQualityModes">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NumberOfTracks
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NumberOfTracks">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrack
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrack">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackDuration
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackDuration">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentMediaDuration
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentMediaDuration">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AVTransportURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AVTransportURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AVTransportURIMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AVTransportURIMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NextAVTransportURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NextAVTransportURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NextAVTransportURIMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NextAVTransportURIMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTransportActions
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTransportActions">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
@@ -1,403 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema targetNamespace="urn:schemas-upnp-org:metadata-1-0/AVT/"
|
||||
xmlns:avt="urn:schemas-upnp-org:metadata-1-0/AVT/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
|
||||
<!--
|
||||
TODO: This schema was copied from AVTransport1.0.pdf.
|
||||
Apparently the UPnP clowns couldn't agree if it is *Metadata or *MetaData.
|
||||
So I've made changes and now all elements are called *MetaData, like the
|
||||
state variables in the spec. That _will_ break if someone really uses
|
||||
the original schema.
|
||||
-->
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
Schema for UPnP A/V AVTransport Service events, version 0.1(sic!)
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'Event' is the root element of AVTransport event document fragments.
|
||||
'InstanceID' is the only valid child of 'Event'.
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Event">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>Event is the root
|
||||
element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:element ref="avt:InstanceID"/>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'InstanceID' elements identify an individual event instance.
|
||||
|
||||
============================================================-->
|
||||
<xsd:group name="allowed-under-InstanceID">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
This group defines the elements allowed under the InstanceID element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice>
|
||||
<xsd:element ref="avt:TransportState"/>
|
||||
<xsd:element ref="avt:TransportStatus"/>
|
||||
<xsd:element ref="avt:PlaybackStorageMedium"/>
|
||||
<xsd:element ref="avt:RecordStorageMedium"/>
|
||||
<xsd:element ref="avt:PossiblePlaybackStorageMedia"/>
|
||||
<xsd:element ref="avt:PossibleRecordStorageMedia"/>
|
||||
<xsd:element ref="avt:CurrentPlayMode"/>
|
||||
<xsd:element ref="avt:TransportPlaySpeed"/>
|
||||
<xsd:element ref="avt:RecordMediumWriteStatus"/>
|
||||
<xsd:element ref="avt:CurrentRecordQualityMode"/>
|
||||
<xsd:element ref="avt:PossibleRecordQualityModes"/>
|
||||
<xsd:element ref="avt:NumberOfTracks"/>
|
||||
<xsd:element ref="avt:CurrentTransportActions"/>
|
||||
<xsd:element ref="avt:CurrentTrack"/>
|
||||
<xsd:element ref="avt:CurrentTrackDuration"/>
|
||||
<xsd:element ref="avt:CurrentMediaDuration"/>
|
||||
<xsd:element ref="avt:CurrentTrackURI"/>
|
||||
<xsd:element ref="avt:CurrentTrackMetaData"/>
|
||||
<xsd:element ref="avt:AVTransportURI"/>
|
||||
<xsd:element ref="avt:AVTransportURIMetaData"/>
|
||||
<xsd:element ref="avt:NextAVTransportURI"/>
|
||||
<xsd:element ref="avt:NextAVTransportURIMetaData"/>
|
||||
<xsd:element ref="avt:RelativeTimePosition"/>
|
||||
<xsd:element ref="avt:AbsoluteTimePosition"/>
|
||||
<xsd:element ref="avt:RelativeCounterPosition"/>
|
||||
<xsd:element ref="avt:AbsoluteCounterPosition"/>
|
||||
</xsd:choice>
|
||||
</xsd:group>
|
||||
<xsd:element name="InstanceID">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
InstanceID elements identify an individual event instance.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:group ref="avt:allowed-under-InstanceID"/>
|
||||
</xsd:choice>
|
||||
<!-- TODO: That attribute was missing in the spec! -->
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportState
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportState">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" use="required">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="STOPPED"/>
|
||||
<xsd:enumeration value="PLAYING"/>
|
||||
<xsd:enumeration value="TRANSITIONING"/>
|
||||
<xsd:enumeration value="PAUSED_PLAYBACK"/>
|
||||
<xsd:enumeration value="PAUSED_RECORDING"/>
|
||||
<xsd:enumeration value="RECORDING"/>
|
||||
<xsd:enumeration value="NO_MEDIA_PRESENT"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:attribute>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportStatus
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportStatus">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" use="required">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="OK"/>
|
||||
<xsd:enumeration value="ERROR_OCCURRED"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:attribute>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PlaybackStorageMedium
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PlaybackStorageMedium">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RecordStorageMedium
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RecordStorageMedium">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossiblePlaybackStorageMedia
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossiblePlaybackStorageMedia">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossibleRecordStorageMedia
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossibleRecordStorageMedia">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentPlayMode
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentPlayMode">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportPlaySpeed
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportPlaySpeed">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RecordMediumWriteStatus
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RecordMediumWriteStatus">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentRecordQualityMode
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentRecordQualityMode">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossibleRecordQualityModes (!!! TYPO IN SPEC !!!)
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossibleRecordQualityModes">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NumberOfTracks
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NumberOfTracks">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrack
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrack">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackDuration
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackDuration">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentMediaDuration
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentMediaDuration">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AVTransportURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AVTransportURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AVTransportURIMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AVTransportURIMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NextAVTransportURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NextAVTransportURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NextAVTransportURIMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NextAVTransportURIMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTransportActions
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTransportActions">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RelativeTimePosition
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RelativeTimePosition">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AbsoluteTimePosition
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AbsoluteTimePosition">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RelativeCounterPosition
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RelativeCounterPosition">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AbsoluteTimePosition
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AbsoluteCounterPosition">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
@@ -1,60 +0,0 @@
|
||||
<xsd:schema
|
||||
targetNamespace="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="1.0"
|
||||
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
|
||||
jaxb:version="2.1">
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:schemaBindings>
|
||||
<jaxb:package name="org.fourthline.cling.support.contentdirectory.descriptor.dc"/>
|
||||
</jaxb:schemaBindings>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
Simple DC XML Schema, 2002-10-09
|
||||
by Pete Johnston (p.johnston@ukoln.ac.uk),
|
||||
Carl Lagoze (lagoze@cs.cornell.edu), Andy Powell (a.powell@ukoln.ac.uk),
|
||||
Herbert Van de Sompel (hvdsomp@yahoo.com).
|
||||
|
||||
This schema defines terms for Simple Dublin Core, i.e. the 15
|
||||
elements from the http://purl.org/dc/elements/1.1/ namespace, with
|
||||
no use of encoding schemes or element refinements.
|
||||
|
||||
Default content type for all elements is xsd:string with xml:lang attribute available.
|
||||
|
||||
Supercedes version of 2002-03-12.
|
||||
Amended to remove namespace declaration for http://www.w3.org/XML/1998/namespace namespace,
|
||||
and to reference lang attribute via built-in xml: namespace prefix.
|
||||
xsd:appinfo also removed.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:element name="title" type="xsd:string"/>
|
||||
<xsd:element name="creator" type="xsd:string"/>
|
||||
<xsd:element name="description" type="xsd:string"/>
|
||||
<xsd:element name="publisher" type="xsd:string"/>
|
||||
<xsd:element name="contributor" type="xsd:string"/>
|
||||
<xsd:element name="date" type="xsd:string"/>
|
||||
<xsd:element name="language" type="xsd:string"/>
|
||||
<xsd:element name="relation" type="xsd:string"/>
|
||||
<xsd:element name="rights" type="xsd:string"/>
|
||||
|
||||
<!-- TODO
|
||||
<xsd:complexType name="elementType">
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute ref="xml:lang" use="optional"/>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
-->
|
||||
|
||||
</xsd:schema>
|
||||
|
||||
@@ -1,298 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema targetNamespace="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"
|
||||
xmlns:didl-lite="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"
|
||||
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified" version="1.0"
|
||||
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
|
||||
jaxb:version="2.1">
|
||||
<!--
|
||||
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
|
||||
jaxb:extensionBindingPrefixes="xjc"
|
||||
-->
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:schemaBindings>
|
||||
<jaxb:package name="org.fourthline.cling.support.contentdirectory.descriptor.didl"/>
|
||||
</jaxb:schemaBindings>
|
||||
<jaxb:globalBindings generateElementClass="true" typesafeEnumMaxMembers="100">
|
||||
<!--
|
||||
<xjc:superClass name="org.fourthline.cling.support.didl.DidlObject"/>
|
||||
-->
|
||||
</jaxb:globalBindings>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
DIDL-Lite schema for UPnP A/V Content Directory Services, version 1.0.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:import namespace="urn:schemas-upnp-org:metadata-1-0/upnp/" schemaLocation="upnp-cds-1.0.xsd"/>
|
||||
<xsd:import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="dc-elements-1.1.xsd"/>
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||
|
||||
<xsd:element name="DIDL-Lite">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
'DIDL-Lite' is the root element of DIDL-Lite documents.
|
||||
<p>
|
||||
Attributes:
|
||||
<p>
|
||||
xml:lang use: optional
|
||||
<p>
|
||||
The 'xml:lang' attribute may optionally be used to specify the language of text
|
||||
in the DIDL-Lite document.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:property name="children"/>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
<xsd:element ref="didl-lite:item"/>
|
||||
<xsd:element ref="didl-lite:container"/>
|
||||
<xsd:element ref="didl-lite:desc"/>
|
||||
</xsd:choice>
|
||||
<!-- TODO
|
||||
<xsd:attribute ref="xml:lang" use="optional"/>
|
||||
-->
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="container">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
A 'container' element may contain any number of
|
||||
<p>
|
||||
1. Dublin Core,<br/>
|
||||
2. upnp,<br/>
|
||||
3. res,<br/>
|
||||
4. ref,<br/>
|
||||
5 item,<br/>
|
||||
6. container<br/>
|
||||
and 7. desc elements.<br/>
|
||||
<p>
|
||||
In all cases, the first element in each container child element sequence is
|
||||
required to be "dc:title". The 'upnp:class' element must also appear under
|
||||
container. Each container is required to specify a value for the 'id'
|
||||
and 'parentID' attributes. Each container is also required to specify a value for
|
||||
the 'restricted' attribute (true, false, 1, 0). When restricted="true", the ability to
|
||||
change or delete the container is restricted.
|
||||
<p>
|
||||
Other optional container element attributes are 'parentID', 'childCount',
|
||||
and 'searchable'.
|
||||
<p>
|
||||
Other optional attributes are 'parentID' and 'childCount'.
|
||||
<p>
|
||||
Attributes:
|
||||
<p>
|
||||
id type: string use: required<br/>
|
||||
parentID type: string use: required<br/>
|
||||
childCount type: int use: optional<br/>
|
||||
restricted type: boolean use: required<br/>
|
||||
<p>
|
||||
The equivalent MPEG21 DIDL element is 'CONTAINER'
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="dc:title"/>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:property name="children"/>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
<xsd:any namespace="urn:schemas-upnp-org:metadata-1-0/upnp/" processContents="strict"/>
|
||||
<xsd:any namespace="http://purl.org/dc/elements/1.1/" processContents="strict"/>
|
||||
<xsd:element ref="didl-lite:desc"/>
|
||||
<xsd:element ref="didl-lite:item"/>
|
||||
<xsd:element ref="didl-lite:res"/>
|
||||
|
||||
<!--
|
||||
Section 2.8.3: Incremental navigation i.e. the full hierarchy is never returned
|
||||
in one call since this is likely to flood the resources available to the control
|
||||
point (memory, network bandwidth, etc.).
|
||||
|
||||
So... why is this recursive then?
|
||||
-->
|
||||
<xsd:element ref="didl-lite:container"/>
|
||||
|
||||
</xsd:choice>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="id" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="parentID" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="childCount" type="xsd:int"/>
|
||||
<xsd:attribute name="restricted" type="xsd:boolean" use="required"/>
|
||||
<xsd:attribute name="searchable" type="xsd:boolean"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="item">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
An 'item' element contains any number of
|
||||
<p/>
|
||||
1. Dublin Core,<br/>
|
||||
2. upnp,<br/>
|
||||
3. res, and<br/>
|
||||
4. desc elements.<br/>
|
||||
<p/>
|
||||
In all cases, the first element in each item child element sequence is required
|
||||
to be "dc:title". The 'upnp:class' element must also appear under item. Each item
|
||||
is additionally required to specify a value for the 'id' attribute. If the item
|
||||
is actually a reference to another item, a value for 'refID' is specified.
|
||||
Each item is also required to specify a value for the 'parentID attribute, as well
|
||||
as the 'restricted' attribute (true, false, 1, 0). When restricted="true", the
|
||||
ability to change or delete the item is restricted.
|
||||
<p/>
|
||||
Attributes:
|
||||
<p/>
|
||||
id type: string use: required<br/>
|
||||
parentID type: string use: required<br/>
|
||||
refID type: string use: optional<br/>
|
||||
restricted type: boolean use: required<br/>
|
||||
<p/>
|
||||
The equivalent MPEG21 DIDL element is 'ITEM'.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="dc:title"/>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:property name="children"/>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
<xsd:any namespace="urn:schemas-upnp-org:metadata-1-0/upnp/" processContents="strict"/>
|
||||
<xsd:any namespace="http://purl.org/dc/elements/1.1/" processContents="strict"/>
|
||||
<xsd:element ref="didl-lite:desc"/>
|
||||
<xsd:element ref="didl-lite:res"/>
|
||||
</xsd:choice>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="id" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="refID" type="xsd:string"/>
|
||||
<xsd:attribute name="parentID" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="restricted" type="xsd:boolean" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="res">
|
||||
<xsd:complexType mixed="true">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
A 'res' element indentifies a resource. A resource is typically some type of a
|
||||
binary asset, such as photo, song, video, etc. A 'res' element contains a uri
|
||||
that identifies the resource.
|
||||
<p/>
|
||||
Attributes:
|
||||
<p/>
|
||||
'importUri' type: anyURI use: optional<br/>
|
||||
The 'importUri' attribute is the optional uri locator for resource update.
|
||||
<p/>
|
||||
'protocolInfo' type: string use: required<br/>
|
||||
The 'protocolInfo' attribute is a string that identifies the streaming or
|
||||
transport protocol for transmitting the resource. If not present then the
|
||||
content has not yet been fully imported by the ContentDirectory and is not yet
|
||||
accesible for playback purposes.
|
||||
<p/>
|
||||
'size' type: unsignedLong use: optional<br/>
|
||||
The size, in bytes, of the resource.
|
||||
<p/>
|
||||
'duration' type: string use: optional<br/>
|
||||
The 'duration' attribute identifies the duration of the playback of the resource, at normal speed.
|
||||
The form of the duration string is: H*:MM:SS.F*, or H*:MM:SS.F0/F1 where :
|
||||
H* means any number of digits (including no digits) to indicate elapsed hours
|
||||
MM means exactly 2 digits to indicate minutes (00 to 59)
|
||||
SS means exactly 2 digits to indicate seconds (00 to 59)
|
||||
F* means any number of digits (including no digits) to indicate fractions of seconds
|
||||
F0/F1 means a fraction, with F0 and F1 at least one digit long, and F0 < F1
|
||||
The string may be preceded by an optional + or - sign, and the decimal point itself may
|
||||
be omitted if there are no fractional second digits.
|
||||
<p/>
|
||||
'bitrate' type: unsignedInt use: optional<br/>
|
||||
The bitrate in bytes/second of the resource.
|
||||
<p/>
|
||||
'sampleFrequency' type: unsignedInt use: optional<br/>
|
||||
The sample frequency of the resource in Hz
|
||||
<p/>
|
||||
'bitsPerSample' type: unsignedInt use: optional<br/>
|
||||
The bits per sample of the resource.
|
||||
<p/>
|
||||
'nrAudioChannels' type: unsignedInt use: optional<br/>
|
||||
Number of audio channels of the resource, e.g. 1 for mono, 2 for stereo, 6 for Dolby surround, etc.
|
||||
<p/>
|
||||
'resolution' type: pattern-string use: optional<br/>
|
||||
X*Y resolution of the resource (image or video). The string pattern is restricted to strings of the
|
||||
form: [0-9]+x[0-9]+ (one or more digits,'x', followed by one or more digits).
|
||||
<p/>
|
||||
'colorDepth' type: unsignedInt use: optional<br/>
|
||||
The color depth in bits of the resource (image or video).
|
||||
<p/>
|
||||
'protection' type: string use: optional<br/>
|
||||
Some statement of the protection type of the resource (not standardized).
|
||||
<p/>
|
||||
The equivalent MPEG21 DIDL element is 'RESOURCE'.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute name="importUri" type="xsd:anyURI"/>
|
||||
<xsd:attribute name="protocolInfo" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="size" type="xsd:unsignedLong"/>
|
||||
<xsd:attribute name="duration" type="xsd:string"/>
|
||||
<xsd:attribute name="bitrate" type="xsd:unsignedInt"/>
|
||||
<xsd:attribute name="sampleFrequency" type="xsd:unsignedInt"/>
|
||||
<xsd:attribute name="bitsPerSample" type="xsd:unsignedInt"/>
|
||||
<xsd:attribute name="nrAudioChannels" type="xsd:unsignedInt"/>
|
||||
<xsd:attribute name="colorDepth" type="xsd:unsignedInt"/>
|
||||
<xsd:attribute name="protection" type="xsd:string"/>
|
||||
<xsd:attribute name="resolution">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="[0-9]+x[0-9]+"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:attribute>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="desc">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
A 'desc' element identifies a descriptor. A descriptor is intended to contain a block of metadata. A
|
||||
bio
|
||||
of a music artist is an example use of 'desc'. A 'desc' element may possess child elements from any
|
||||
namespace except the DIDL-Lite namespace. Values for 'id' and 'nameSpace' is required. An optional
|
||||
'type' attribute allows designation of the metadata type, e.g. 'ratings', 'rights', etc.
|
||||
|
||||
Attributes:
|
||||
'id' type: string use: optional
|
||||
'name' type: string use: optional
|
||||
'nameSpace' type: uri use: optional
|
||||
|
||||
The equivalent MPEG21 DIDL element is 'DESCRIPTOR'.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:sequence>
|
||||
<xsd:any namespace="##other"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="id" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="type" type="xsd:string"/>
|
||||
<xsd:attribute name="nameSpace" type="xsd:anyURI" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
|
||||
@@ -1,225 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema
|
||||
targetNamespace="urn:schemas-upnp-org:metadata-1-0/upnp/"
|
||||
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="1.0"
|
||||
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
|
||||
jaxb:version="2.1">
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:schemaBindings>
|
||||
<jaxb:package name="org.fourthline.cling.support.contentdirectory.descriptor.upnp"/>
|
||||
</jaxb:schemaBindings>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
UPnP Content Directory Service 1.0 schema, derived from the crude examples in the PDF document.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:element name="class">
|
||||
<xsd:complexType mixed="true">
|
||||
<!-- TODO: That causes weird namespace errors in marshalled XML output...
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:class name="Clazz"/>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
-->
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute name="name" type="xsd:string" use="optional"/>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="searchClass">
|
||||
<xsd:complexType mixed="true">
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute name="name" type="xsd:string" use="optional"/>
|
||||
<xsd:attribute name="includeDerived" type="xsd:boolean" use="required"/>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="createClass">
|
||||
<xsd:complexType mixed="true">
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute name="name" type="xsd:string" use="optional"/>
|
||||
<xsd:attribute name="includeDerived" type="xsd:boolean" use="required"/>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="writeStatus" type="upnp:writeStatusValue"/>
|
||||
<xsd:simpleType name="writeStatusValue">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="WRITABLE"/>
|
||||
<xsd:enumeration value="PROTECTED"/>
|
||||
<xsd:enumeration value="NOT_WRITABLE"/>
|
||||
<xsd:enumeration value="UNKNOWN"/>
|
||||
<xsd:enumeration value="MIXED"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="genre" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Name of the genre to which an object belongs.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="album" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Title of the album to which the item belongs.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="playlist" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Name of a playlist to which the item belongs.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="storageUsed" type="xsd:long" default="-1">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Combined space, in bytes, used by all the objects held in the storage
|
||||
represented by the container.
|
||||
Value –1 is reserved to indicate that the capacity is 'unknown'
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="storageTotal" type="xsd:long" default="-1">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Total capacity, in bytes, of the storage represented by the
|
||||
container.
|
||||
Value –1 is reserved to indicate that the capacity is 'unknown'
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="storageFree" type="xsd:long" default="-1">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Total free capacity, in bytes, of the storage represented by the container
|
||||
Value –1 is reserved to indicate that the capacity is 'unknown'
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="storageMaxPartition" type="xsd:long" default="-1">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Largest amount of space, in bytes, available for storing a single resource
|
||||
in the container.
|
||||
Value –1 is reserved to indicate that the capacity is 'unknown'
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="storageMedium" type="upnp:storageMediumValue">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Indicates the type of storage medium used for the content. Potentially useful
|
||||
for user-interface purposes.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:simpleType name="storageMediumValue">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="UNKNOWN"/>
|
||||
<xsd:enumeration value="DV"/>
|
||||
<xsd:enumeration value="MINI-DV"/>
|
||||
<xsd:enumeration value="VHS"/>
|
||||
<xsd:enumeration value="W-VHS"/>
|
||||
<xsd:enumeration value="S-VHS"/>
|
||||
<xsd:enumeration value="D-VHS"/>
|
||||
<xsd:enumeration value="VHSC"/>
|
||||
<xsd:enumeration value="VIDEO8"/>
|
||||
<xsd:enumeration value="HI8"/>
|
||||
<xsd:enumeration value="CD-ROM"/>
|
||||
<xsd:enumeration value="CD-DA"/>
|
||||
<xsd:enumeration value="CD-R"/>
|
||||
<xsd:enumeration value="CD-RW"/>
|
||||
<xsd:enumeration value="VIDEO-CD"/>
|
||||
<xsd:enumeration value="SACD"/>
|
||||
<xsd:enumeration value="MD-AUDIO"/>
|
||||
<xsd:enumeration value="MD-PICTURE"/>
|
||||
<xsd:enumeration value="DVD-ROM"/>
|
||||
<xsd:enumeration value="DVD-VIDEO"/>
|
||||
<xsd:enumeration value="DVD-R"/>
|
||||
<xsd:enumeration value="DVD+RW">
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:typesafeEnumMember name="DVD_PLUS_RW"/>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
</xsd:enumeration>
|
||||
<xsd:enumeration value="DVD-RW"/>
|
||||
<xsd:enumeration value="DVD-RAM"/>
|
||||
<xsd:enumeration value="DVD-AUDIO"/>
|
||||
<xsd:enumeration value="DAT"/>
|
||||
<xsd:enumeration value="LD"/>
|
||||
<xsd:enumeration value="HDD"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="longDescription" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
A few lines of description of the content item (longer than
|
||||
DublinCore's description element).
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="icon" type="xsd:anyURI">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Some icon that a control point can use in its UI to display the
|
||||
content, e.g. a CNN logo for a Tuner channel. Recommend same format
|
||||
as the icon element in the UPnP device description document schema.
|
||||
(PNG). Values must be properly escaped URIs as described in [RFC 2396].
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="region" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Some identification of the region, associated with the
|
||||
"source" of the object, e.g. "US", "Latin America",
|
||||
"Seattlle".
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="rating" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Rating of the object's resource, for 'parental control' filtering purposes,
|
||||
such as "R", "PG-13", "X", etc.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
@@ -1,284 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
TODO: UPNP VIOLATION: RenderingControl 1.0 specification schema says "/RCS/" but examples
|
||||
in the spec say "/AVT_RCS". We had "/AVT_RCS", then "/RCS", now we have "/RCS/", let's
|
||||
see who complains.
|
||||
-->
|
||||
<xsd:schema targetNamespace="urn:schemas-upnp-org:metadata-1-0/RCS/"
|
||||
xmlns:rcs="urn:schemas-upnp-org:metadata-1-0/RCS/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified">
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
Schema for UPnP A/V Rendering Control Service events, version 0.1 (sic!)
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'Event' is the root element of Rendering Control event document fragments.
|
||||
'InstanceID' is the only valid child of 'Event'.
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Event">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Event is the root element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:element ref="rcs:InstanceID"/>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'InstanceID' elements identify an individual event instance.
|
||||
|
||||
============================================================-->
|
||||
<xsd:group name="allowed-under-InstanceID">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
This group defines the elements allowed under the InstanceID element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice>
|
||||
<xsd:element ref="rcs:PresetNameList"/>
|
||||
<xsd:element ref="rcs:Brightness"/>
|
||||
<xsd:element ref="rcs:Contrast"/>
|
||||
<xsd:element ref="rcs:Sharpness"/>
|
||||
<xsd:element ref="rcs:RedVideoGain"/>
|
||||
<xsd:element ref="rcs:GreenVideoGain"/>
|
||||
<xsd:element ref="rcs:BlueVideoGain"/>
|
||||
<xsd:element ref="rcs:RedVideoBlackLevel"/>
|
||||
<xsd:element ref="rcs:GreenVideoBlackLevel"/>
|
||||
<xsd:element ref="rcs:BlueVideoBlackLevel"/>
|
||||
<xsd:element ref="rcs:ColorTemperature"/>
|
||||
<xsd:element ref="rcs:HorizontalKeystone"/>
|
||||
<xsd:element ref="rcs:VerticalKeystone"/>
|
||||
<xsd:element ref="rcs:Mute"/>
|
||||
<xsd:element ref="rcs:Volume"/>
|
||||
<xsd:element ref="rcs:VolumeDB"/>
|
||||
<xsd:element ref="rcs:Loudness"/>
|
||||
</xsd:choice>
|
||||
</xsd:group>
|
||||
|
||||
<xsd:element name="InstanceID">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
InstanceID elements identify an individual event instance.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:group ref="rcs:allowed-under-InstanceID"/>
|
||||
</xsd:choice>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PresetNameList
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PresetNameList">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
Brightness
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Brightness">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
Contrast
|
||||
|
||||
============================================================-->
|
||||
|
||||
<xsd:element name="Contrast">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
Sharpness
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Sharpness">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
RedVideoGain
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RedVideoGain">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
GreenVideoGain
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="GreenVideoGain">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
BlueVideoGain
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="BlueVideoGain">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
RedVideoBlackLevel
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RedVideoBlackLevel">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
GreenVideoBlackLevel
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="GreenVideoBlackLevel">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
BlueVideoBlackLevel
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="BlueVideoBlackLevel">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
ColorTemperature
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="ColorTemperature">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
HorizontalKeystone
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="HorizontalKeystone">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:integer"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
VerticalKeystone
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="VerticalKeystone">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:integer"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
Mute
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Mute">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:boolean"
|
||||
use="required"/>
|
||||
<xsd:attribute name="channel" type="xsd:string"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
Volume
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Volume">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
<xsd:attribute name="channel" type="xsd:string"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
VolumeDB
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="VolumeDB">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:integer"
|
||||
use="required"/>
|
||||
<xsd:attribute name="channel" type="xsd:string"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
Loudness
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Loudness">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:boolean"
|
||||
use="required"/>
|
||||
<xsd:attribute name="channel" type="xsd:string"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
@@ -1,1030 +0,0 @@
|
||||
#
|
||||
# Default JavaScript messages file.
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
# This is replaced during jar assembly from property string
|
||||
# and should not be translated
|
||||
implementation.version = @IMPLEMENTATION.VERSION@
|
||||
|
||||
#
|
||||
# To add JavaScript error messages for a particular locale, create a
|
||||
# new Messages_[locale].properties file, where [locale] is the Java
|
||||
# string abbreviation for that locale. For example, JavaScript
|
||||
# messages for the Polish locale should be located in
|
||||
# Messages_pl.properties, and messages for the Italian Swiss locale
|
||||
# should be located in Messages_it_CH.properties. Message properties
|
||||
# files should be accessible through the classpath under
|
||||
# org.mozilla.javascript.resources
|
||||
#
|
||||
# See:
|
||||
# java.util.ResourceBundle
|
||||
# java.text.MessageFormat
|
||||
#
|
||||
|
||||
# SomeJavaClassWhereUsed
|
||||
|
||||
params.omit.non.js.object.warning = true
|
||||
|
||||
msg.non.js.object.warning =\
|
||||
RHINO USAGE WARNING: Missed Context.javaToJS() conversion: Rhino runtime detected object "{0}" of class "{1}" where it expected String, Number, Boolean or Scriptable instance. Please check your code for missing Context.javaToJS() call.
|
||||
|
||||
# Codegen
|
||||
msg.dup.parms =\
|
||||
Duplicate parameter name "{0}".
|
||||
|
||||
msg.too.big.jump =\
|
||||
Program too complex: too big jump offset.
|
||||
|
||||
msg.too.big.index =\
|
||||
Program too complex: internal index exceeds 64K limit.
|
||||
|
||||
msg.while.compiling.fn =\
|
||||
Encountered code generation error while compiling function "{0}": {1}
|
||||
|
||||
msg.while.compiling.script =\
|
||||
Encountered code generation error while compiling script: {0}
|
||||
|
||||
# Context
|
||||
msg.ctor.not.found =\
|
||||
Constructor for "{0}" not found.
|
||||
|
||||
msg.not.ctor =\
|
||||
"{0}" is not a constructor.
|
||||
|
||||
# FunctionObject
|
||||
msg.varargs.ctor =\
|
||||
Method or constructor "{0}" must be static with the signature \
|
||||
"(Context cx, Object[] args, Function ctorObj, boolean inNewExpr)" \
|
||||
to define a variable arguments constructor.
|
||||
|
||||
msg.varargs.fun =\
|
||||
Method "{0}" must be static with the signature \
|
||||
"(Context cx, Scriptable thisObj, Object[] args, Function funObj)" \
|
||||
to define a variable arguments function.
|
||||
|
||||
msg.incompat.call =\
|
||||
Method "{0}" called on incompatible object.
|
||||
|
||||
msg.incompat.call.details =\
|
||||
Method "{0}" called on incompatible object ({1} is not an instance of {2}).
|
||||
|
||||
msg.bad.parms =\
|
||||
Unsupported parameter type "{0}" in method "{1}".
|
||||
|
||||
msg.bad.method.return =\
|
||||
Unsupported return type "{0}" in method "{1}".
|
||||
|
||||
msg.bad.ctor.return =\
|
||||
Construction of objects of type "{0}" is not supported.
|
||||
|
||||
msg.no.overload =\
|
||||
Method "{0}" occurs multiple times in class "{1}".
|
||||
|
||||
msg.method.not.found =\
|
||||
Method "{0}" not found in "{1}".
|
||||
|
||||
msg.method.missing.parameter =\
|
||||
{0}: At least {1} arguments required, but only {2} passed
|
||||
|
||||
# IRFactory
|
||||
|
||||
msg.bad.for.in.lhs =\
|
||||
Invalid left-hand side of for..in loop.
|
||||
|
||||
msg.mult.index =\
|
||||
Only one variable allowed in for..in loop.
|
||||
|
||||
msg.bad.for.in.destruct =\
|
||||
Left hand side of for..in loop must be an array of length 2 to accept \
|
||||
key/value pair.
|
||||
|
||||
msg.bad.computed.property.in.destruct =\
|
||||
Unsupported computed property in destructuring.
|
||||
|
||||
msg.cant.convert =\
|
||||
Can''t convert to type "{0}".
|
||||
|
||||
msg.bad.assign.left =\
|
||||
Invalid assignment left-hand side.
|
||||
|
||||
msg.bad.decr =\
|
||||
Invalid decrement operand.
|
||||
|
||||
msg.bad.incr =\
|
||||
Invalid increment operand.
|
||||
|
||||
msg.bad.yield =\
|
||||
yield must be in a function.
|
||||
|
||||
msg.yield.parenthesized =\
|
||||
yield expression must be parenthesized.
|
||||
|
||||
msg.nullish.bad.token =\
|
||||
Syntax Error: Unexpected token.
|
||||
|
||||
# NativeGlobal
|
||||
msg.cant.call.indirect =\
|
||||
Function "{0}" must be called directly, and not by way of a \
|
||||
function of another name.
|
||||
|
||||
msg.eval.nonstring =\
|
||||
Calling eval() with anything other than a primitive string value will \
|
||||
simply return the value. Is this what you intended?
|
||||
|
||||
msg.eval.nonstring.strict =\
|
||||
Calling eval() with anything other than a primitive string value is not \
|
||||
allowed in strict mode.
|
||||
|
||||
msg.bad.destruct.op =\
|
||||
Invalid destructuring assignment operator
|
||||
|
||||
# NativeCall
|
||||
msg.only.from.new =\
|
||||
"Constructor {0}" may only be invoked from a "new" expression.
|
||||
|
||||
msg.deprec.ctor =\
|
||||
The "{0}" constructor is deprecated.
|
||||
|
||||
# NativeFunction
|
||||
msg.no.function.ref.found =\
|
||||
no source found to decompile function reference {0}
|
||||
|
||||
msg.arg.isnt.array =\
|
||||
second argument to Function.prototype.apply must be an array
|
||||
|
||||
# NativeGlobal
|
||||
msg.bad.esc.mask =\
|
||||
invalid string escape mask
|
||||
|
||||
# NativeJavaClass
|
||||
msg.cant.instantiate =\
|
||||
error instantiating ({0}): class {1} is interface or abstract
|
||||
|
||||
msg.bad.ctor.sig =\
|
||||
Found constructor with wrong signature: \
|
||||
{0} calling {1} with signature {2}
|
||||
|
||||
msg.not.java.obj =\
|
||||
Expected argument to getClass() to be a Java object.
|
||||
|
||||
msg.no.java.ctor =\
|
||||
Java constructor for "{0}" with arguments "{1}" not found.
|
||||
|
||||
# NativeJavaMethod
|
||||
msg.method.ambiguous =\
|
||||
The choice of Java method {0}.{1} matching JavaScript argument types ({2}) is ambiguous; \
|
||||
candidate methods are: {3}
|
||||
|
||||
msg.constructor.ambiguous =\
|
||||
The choice of Java constructor {0} matching JavaScript argument types ({1}) is ambiguous; \
|
||||
candidate constructors are: {2}
|
||||
|
||||
# NativeJavaObject
|
||||
msg.conversion.not.allowed =\
|
||||
Cannot convert {0} to {1}
|
||||
|
||||
msg.no.empty.interface.conversion =\
|
||||
Cannot convert function to interface {0} with no methods
|
||||
|
||||
msg.no.function.interface.conversion =\
|
||||
Cannot convert function to interface {0} since it contains methods with \
|
||||
different names
|
||||
|
||||
msg.undefined.function.interface =\
|
||||
Property "{0}" is not defined in interface adapter
|
||||
|
||||
msg.not.function.interface =\
|
||||
Property "{0}" is not a function in interface adapter
|
||||
|
||||
# NativeJavaPackage
|
||||
msg.not.classloader =\
|
||||
Constructor for "Packages" expects argument of type java.lang.Classloader
|
||||
|
||||
# NativeRegExp
|
||||
msg.bad.quant =\
|
||||
Invalid quantifier {0}
|
||||
|
||||
msg.overlarge.backref =\
|
||||
Overly large back reference {0}
|
||||
|
||||
msg.overlarge.min =\
|
||||
Overly large minimum {0}
|
||||
|
||||
msg.overlarge.max =\
|
||||
Overly large maximum {0}
|
||||
|
||||
msg.zero.quant =\
|
||||
Zero quantifier {0}
|
||||
|
||||
msg.max.lt.min =\
|
||||
Invalid regular expression: The quantifier maximum ''{0}'' is less than the minimum ''{1}''.
|
||||
|
||||
msg.unterm.quant =\
|
||||
Unterminated quantifier {0}
|
||||
|
||||
msg.unterm.paren =\
|
||||
Unterminated parenthetical {0}
|
||||
|
||||
msg.unterm.class =\
|
||||
Unterminated character class {0}
|
||||
|
||||
msg.bad.range =\
|
||||
Invalid range in character class.
|
||||
|
||||
msg.trail.backslash =\
|
||||
Trailing \\ in regular expression.
|
||||
|
||||
msg.re.unmatched.right.paren =\
|
||||
unmatched ) in regular expression.
|
||||
|
||||
msg.no.regexp =\
|
||||
Regular expressions are not available.
|
||||
|
||||
msg.bad.backref =\
|
||||
back-reference exceeds number of capturing parentheses.
|
||||
|
||||
msg.bad.regexp.compile =\
|
||||
Only one argument may be specified if the first argument to \
|
||||
RegExp.prototype.compile is a RegExp object.
|
||||
|
||||
msg.arg.not.object =\
|
||||
Expected argument of type object, but instead had type {0}
|
||||
|
||||
msg.str.match.all.no.global.flag =\
|
||||
String.prototype.matchAll called with a non-global RegExp argument
|
||||
|
||||
# NativeDate
|
||||
msg.invalid.date =\
|
||||
Date is invalid.
|
||||
|
||||
msg.toisostring.must.return.primitive =\
|
||||
toISOString must return a primitive value, but instead returned "{0}"
|
||||
|
||||
msg.invalid.toprimitive.hint =\
|
||||
[Symbol.toPrimitive]: expected "string", "number", or "default", but got "{0}"
|
||||
|
||||
# NativeJSON
|
||||
msg.json.cant.serialize =\
|
||||
Do not know how to serialize a {0}
|
||||
|
||||
# Parser
|
||||
msg.got.syntax.errors = \
|
||||
Compilation produced {0} syntax errors.
|
||||
|
||||
msg.var.redecl =\
|
||||
redeclaration of var {0}.
|
||||
|
||||
msg.const.redecl =\
|
||||
redeclaration of const {0}.
|
||||
|
||||
msg.let.redecl =\
|
||||
redeclaration of variable {0}.
|
||||
|
||||
msg.parm.redecl =\
|
||||
redeclaration of formal parameter {0}.
|
||||
|
||||
msg.fn.redecl =\
|
||||
redeclaration of function {0}.
|
||||
|
||||
msg.let.decl.not.in.block =\
|
||||
let declaration not directly within block
|
||||
|
||||
msg.bad.object.init =\
|
||||
invalid object initializer
|
||||
|
||||
# NodeTransformer
|
||||
msg.dup.label =\
|
||||
duplicated label
|
||||
|
||||
msg.undef.label =\
|
||||
undefined label
|
||||
|
||||
msg.bad.break =\
|
||||
unlabelled break must be inside loop or switch
|
||||
|
||||
msg.continue.outside =\
|
||||
continue must be inside loop
|
||||
|
||||
msg.continue.nonloop =\
|
||||
continue can only use labeles of iteration statements
|
||||
|
||||
msg.bad.throw.eol =\
|
||||
Line terminator is not allowed between the throw keyword and throw \
|
||||
expression.
|
||||
|
||||
msg.no.paren.parms =\
|
||||
missing ( before function parameters.
|
||||
|
||||
msg.no.parm =\
|
||||
missing formal parameter
|
||||
|
||||
msg.no.paren.after.parms =\
|
||||
missing ) after formal parameters
|
||||
|
||||
msg.parm.after.rest =\
|
||||
parameter after rest parameter
|
||||
|
||||
msg.no.brace.body =\
|
||||
missing '{' before function body
|
||||
|
||||
msg.no.brace.after.body =\
|
||||
missing } after function body
|
||||
|
||||
msg.no.paren.cond =\
|
||||
missing ( before condition
|
||||
|
||||
msg.no.paren.after.cond =\
|
||||
missing ) after condition
|
||||
|
||||
msg.no.semi.stmt =\
|
||||
missing ; before statement
|
||||
|
||||
msg.missing.semi =\
|
||||
missing ; after statement
|
||||
|
||||
msg.no.name.after.dot =\
|
||||
missing name after . operator
|
||||
|
||||
msg.no.name.after.coloncolon =\
|
||||
missing name after :: operator
|
||||
|
||||
msg.no.name.after.dotdot =\
|
||||
missing name after .. operator
|
||||
|
||||
msg.no.name.after.xmlAttr =\
|
||||
missing name after .@
|
||||
|
||||
msg.no.bracket.index =\
|
||||
missing ] in index expression
|
||||
|
||||
msg.no.paren.switch =\
|
||||
missing ( before switch expression
|
||||
|
||||
msg.no.paren.after.switch =\
|
||||
missing ) after switch expression
|
||||
|
||||
msg.no.brace.switch =\
|
||||
missing '{' before switch body
|
||||
|
||||
msg.bad.switch =\
|
||||
invalid switch statement
|
||||
|
||||
msg.no.colon.case =\
|
||||
missing : after case expression
|
||||
|
||||
msg.double.switch.default =\
|
||||
double default label in the switch statement
|
||||
|
||||
msg.no.while.do =\
|
||||
missing while after do-loop body
|
||||
|
||||
msg.no.paren.for =\
|
||||
missing ( after for
|
||||
|
||||
msg.no.semi.for =\
|
||||
missing ; after for-loop initializer
|
||||
|
||||
msg.no.semi.for.cond =\
|
||||
missing ; after for-loop condition
|
||||
|
||||
msg.in.after.for.name =\
|
||||
missing in after for
|
||||
|
||||
msg.no.paren.for.ctrl =\
|
||||
missing ) after for-loop control
|
||||
|
||||
msg.no.paren.with =\
|
||||
missing ( before with-statement object
|
||||
|
||||
msg.no.paren.after.with =\
|
||||
missing ) after with-statement object
|
||||
|
||||
msg.no.with.strict =\
|
||||
with statements not allowed in strict mode
|
||||
|
||||
msg.no.paren.after.let =\
|
||||
missing ( after let
|
||||
|
||||
msg.no.paren.let =\
|
||||
missing ) after variable list
|
||||
|
||||
msg.no.curly.let =\
|
||||
missing } after let statement
|
||||
|
||||
msg.bad.return =\
|
||||
invalid return
|
||||
|
||||
msg.no.brace.block =\
|
||||
missing } in compound statement
|
||||
|
||||
msg.bad.label =\
|
||||
invalid label
|
||||
|
||||
msg.bad.var =\
|
||||
missing variable name
|
||||
|
||||
msg.bad.var.init =\
|
||||
invalid variable initialization
|
||||
|
||||
msg.no.colon.cond =\
|
||||
missing : in conditional expression
|
||||
|
||||
msg.no.paren.arg =\
|
||||
missing ) after argument list
|
||||
|
||||
msg.no.bracket.arg =\
|
||||
missing ] after element list
|
||||
|
||||
msg.bad.prop =\
|
||||
invalid property id
|
||||
|
||||
msg.no.colon.prop =\
|
||||
missing : after property id
|
||||
|
||||
msg.no.brace.prop =\
|
||||
missing } after property list
|
||||
|
||||
msg.no.paren =\
|
||||
missing ) in parenthetical
|
||||
|
||||
msg.reserved.id =\
|
||||
identifier is a reserved word: {0}
|
||||
|
||||
msg.super.shorthand.function =\
|
||||
super should be inside a shorthand function
|
||||
|
||||
msg.optional.super =\
|
||||
super is not allowed in an optional chaining expression
|
||||
|
||||
msg.super.delete =\
|
||||
cannot delete a super property
|
||||
|
||||
msg.no.paren.catch =\
|
||||
missing ( before catch-block condition
|
||||
|
||||
msg.bad.catchcond =\
|
||||
invalid catch block condition
|
||||
|
||||
msg.catch.unreachable =\
|
||||
any catch clauses following an unqualified catch are unreachable
|
||||
|
||||
msg.no.brace.try =\
|
||||
missing '{' before try block
|
||||
|
||||
msg.no.brace.catchblock =\
|
||||
missing '{' before catch-block body
|
||||
|
||||
msg.try.no.catchfinally =\
|
||||
''try'' without ''catch'' or ''finally''
|
||||
|
||||
msg.no.return.value =\
|
||||
function {0} does not always return a value
|
||||
|
||||
msg.anon.no.return.value =\
|
||||
anonymous function does not always return a value
|
||||
|
||||
msg.return.inconsistent =\
|
||||
return statement is inconsistent with previous usage
|
||||
|
||||
msg.generator.returns =\
|
||||
generator function {0} returns a value
|
||||
|
||||
msg.anon.generator.returns =\
|
||||
anonymous generator function returns a value
|
||||
|
||||
msg.syntax.invalid.assignment.lhs =\
|
||||
syntax error: Invalid left-hand side in assignment
|
||||
|
||||
msg.syntax =\
|
||||
syntax error
|
||||
|
||||
msg.unexpected.eof =\
|
||||
Unexpected end of file
|
||||
|
||||
msg.XML.bad.form =\
|
||||
illegally formed XML syntax
|
||||
|
||||
msg.XML.not.available =\
|
||||
XML runtime not available
|
||||
|
||||
msg.too.deep.parser.recursion =\
|
||||
Too deep recursion while parsing
|
||||
|
||||
msg.too.many.constructor.args =\
|
||||
Too many constructor arguments
|
||||
|
||||
msg.too.many.function.args =\
|
||||
Too many function arguments
|
||||
|
||||
msg.no.side.effects =\
|
||||
Code has no side effects
|
||||
|
||||
msg.extra.trailing.semi =\
|
||||
Extraneous trailing semicolon
|
||||
|
||||
msg.extra.trailing.comma =\
|
||||
Trailing comma is not legal in an ECMA-262 object initializer
|
||||
|
||||
msg.trailing.array.comma =\
|
||||
Trailing comma in array literal has different cross-browser behavior
|
||||
|
||||
msg.equal.as.assign =\
|
||||
Test for equality (==) mistyped as assignment (=)?
|
||||
|
||||
msg.var.hides.arg =\
|
||||
Variable {0} hides argument
|
||||
|
||||
msg.destruct.assign.no.init =\
|
||||
Missing = in destructuring declaration
|
||||
|
||||
msg.default.args =\
|
||||
Default values are only supported in version >= 200
|
||||
|
||||
msg.no.old.octal.strict =\
|
||||
Old octal numbers prohibited in strict mode.
|
||||
|
||||
msg.no.old.octal.bigint =\
|
||||
Old octal numbers prohibited in BigInt.
|
||||
|
||||
msg.dup.obj.lit.prop.strict =\
|
||||
Property "{0}" already defined in this object literal.
|
||||
|
||||
msg.dup.param.strict =\
|
||||
Parameter "{0}" already declared in this function.
|
||||
|
||||
msg.bad.id.strict =\
|
||||
"{0}" is not a valid identifier for this use in strict mode.
|
||||
|
||||
msg.no.unary.expr.on.left.exp =\
|
||||
"{0}" is not allowed on the left-hand side of "**".
|
||||
|
||||
# ScriptRuntime
|
||||
|
||||
# is there a better message for this?
|
||||
# it's currently only used as a poison pill for caller, caller and arguments properties
|
||||
msg.op.not.allowed =\
|
||||
This operation is not allowed.
|
||||
|
||||
msg.no.properties =\
|
||||
{0} has no properties.
|
||||
|
||||
msg.invalid.iterator =\
|
||||
Invalid iterator value
|
||||
|
||||
msg.iterator.primitive =\
|
||||
__iterator__ returned a primitive value
|
||||
|
||||
msg.not.iterable = \
|
||||
{0} is not iterable
|
||||
|
||||
msg.invalid.for.each = \
|
||||
invalid for each loop
|
||||
|
||||
msg.assn.create.strict =\
|
||||
Assignment to undeclared variable {0}
|
||||
|
||||
msg.ref.undefined.prop =\
|
||||
Reference to undefined property "{0}"
|
||||
|
||||
msg.prop.not.found =\
|
||||
Property {0} not found.
|
||||
|
||||
msg.set.prop.no.setter =\
|
||||
Cannot set property {0} that has only a getter to value ''{1}''.
|
||||
|
||||
msg.invalid.type =\
|
||||
Invalid JavaScript value of type {0}
|
||||
|
||||
msg.primitive.expected =\
|
||||
Primitive type expected (had {0} instead)
|
||||
|
||||
msg.namespace.expected =\
|
||||
Namespace object expected to left of :: (found {0} instead)
|
||||
|
||||
msg.null.to.object =\
|
||||
Cannot convert null to an object.
|
||||
|
||||
msg.undef.to.object =\
|
||||
Cannot convert undefined to an object.
|
||||
|
||||
msg.cant.convert.to.bigint =\
|
||||
Cannot convert {0} to an BigInt.
|
||||
|
||||
msg.cant.convert.to.bigint.isnt.integer =\
|
||||
Cannot convert {0} to an BigInt. It isn\'t an integer.
|
||||
|
||||
msg.bigint.bad.form =\
|
||||
illegally formed BigInt syntax
|
||||
|
||||
msg.cyclic.value =\
|
||||
Cyclic {0} value not allowed.
|
||||
|
||||
msg.is.not.defined =\
|
||||
"{0}" is not defined.
|
||||
|
||||
msg.undef.prop.read =\
|
||||
Cannot read property "{1}" from {0}
|
||||
|
||||
msg.undef.prop.write =\
|
||||
Cannot set property "{1}" of {0} to "{2}"
|
||||
|
||||
msg.undef.prop.delete =\
|
||||
Cannot delete property "{1}" of {0}
|
||||
|
||||
msg.undef.method.call =\
|
||||
Cannot call method "{1}" of {0}
|
||||
|
||||
msg.undef.with =\
|
||||
Cannot apply "with" to {0}
|
||||
|
||||
msg.isnt.function =\
|
||||
{0} is not a function, it is {1}.
|
||||
|
||||
msg.isnt.function.in =\
|
||||
Cannot call property {0} in object {1}. It is not a function, it is "{2}".
|
||||
|
||||
msg.function.not.found =\
|
||||
Cannot find function {0}.
|
||||
|
||||
msg.function.not.found.in =\
|
||||
Cannot find function {0} in object {1}.
|
||||
|
||||
msg.isnt.xml.object =\
|
||||
{0} is not an xml object.
|
||||
|
||||
msg.no.ref.to.get =\
|
||||
{0} is not a reference to read reference value.
|
||||
|
||||
msg.no.ref.to.set =\
|
||||
{0} is not a reference to set reference value to {1}.
|
||||
|
||||
msg.no.ref.from.function =\
|
||||
Function {0} can not be used as the left-hand side of assignment \
|
||||
or as an operand of ++ or -- operator.
|
||||
|
||||
msg.bad.default.value =\
|
||||
Object''s getDefaultValue() method returned an object.
|
||||
|
||||
msg.instanceof.not.object = \
|
||||
Can''t use ''instanceof'' on a non-object.
|
||||
|
||||
msg.instanceof.bad.prototype = \
|
||||
''prototype'' property of {0} is not an object.
|
||||
|
||||
msg.in.not.object = \
|
||||
Can''t use ''in'' on a non-object.
|
||||
|
||||
msg.bad.radix = \
|
||||
illegal radix {0}.
|
||||
|
||||
msg.division.zero = \
|
||||
Division by zero.
|
||||
|
||||
msg.bigint.negative.exponent = \
|
||||
BigInt negative exponent.
|
||||
|
||||
msg.bigint.out.of.range.arithmetic = \
|
||||
BigInt is too large.
|
||||
|
||||
msg.cant.convert.to.primitive = \
|
||||
Cannot convert object to primitive value.
|
||||
|
||||
# ScriptableObject
|
||||
msg.default.value =\
|
||||
Cannot find default value for object.
|
||||
|
||||
msg.zero.arg.ctor =\
|
||||
Cannot load class "{0}" which has no zero-parameter constructor.
|
||||
|
||||
duplicate.defineClass.name =\
|
||||
Invalid method "{0}": name "{1}" is already in use.
|
||||
|
||||
msg.ctor.multiple.parms =\
|
||||
Can''t define constructor or class {0} since more than one \
|
||||
constructor has multiple parameters.
|
||||
|
||||
msg.extend.scriptable =\
|
||||
{0} must extend ScriptableObject in order to define property {1}.
|
||||
|
||||
msg.bad.getter.parms =\
|
||||
In order to define a property, getter {0} must have zero parameters \
|
||||
or a single ScriptableObject parameter.
|
||||
|
||||
msg.obj.getter.parms =\
|
||||
Expected static or delegated getter {0} to take a ScriptableObject parameter.
|
||||
|
||||
msg.getter.static =\
|
||||
Getter and setter must both be static or neither be static.
|
||||
|
||||
msg.setter.return =\
|
||||
Setter must have void return type: {0}
|
||||
|
||||
msg.setter2.parms =\
|
||||
Two-parameter setter must take a ScriptableObject as its first parameter.
|
||||
|
||||
msg.setter1.parms =\
|
||||
Expected single parameter setter for {0}
|
||||
|
||||
msg.setter2.expected =\
|
||||
Expected static or delegated setter {0} to take two parameters.
|
||||
|
||||
msg.setter.parms =\
|
||||
Expected either one or two parameters for setter.
|
||||
|
||||
msg.setter.bad.type =\
|
||||
Unsupported parameter type "{0}" in setter "{1}".
|
||||
|
||||
msg.add.sealed =\
|
||||
Cannot add a property to a sealed object: {0}.
|
||||
|
||||
msg.remove.sealed =\
|
||||
Cannot remove a property from a sealed object: {0}.
|
||||
|
||||
msg.modify.sealed =\
|
||||
Cannot modify a property of a sealed object: {0}.
|
||||
|
||||
msg.modify.readonly =\
|
||||
Cannot modify readonly property: {0}.
|
||||
|
||||
msg.both.data.and.accessor.desc =\
|
||||
Cannot be both a data and an accessor descriptor.
|
||||
|
||||
msg.change.configurable.false.to.true =\
|
||||
Cannot change the configurable attribute of "{0}" from false to true.
|
||||
|
||||
msg.change.enumerable.with.configurable.false =\
|
||||
Cannot change the enumerable attribute of "{0}" because configurable is false.
|
||||
|
||||
msg.change.writable.false.to.true.with.configurable.false =\
|
||||
Cannot change the writable attribute of "{0}" from false to true because configurable is false.
|
||||
|
||||
msg.change.value.with.writable.false =\
|
||||
Cannot change the value of attribute "{0}" because writable is false.
|
||||
|
||||
msg.change.getter.with.configurable.false =\
|
||||
Cannot change the get attribute of "{0}" because configurable is false.
|
||||
|
||||
msg.change.setter.with.configurable.false =\
|
||||
Cannot change the set attribute of "{0}" because configurable is false.
|
||||
|
||||
msg.change.property.data.to.accessor.with.configurable.false =\
|
||||
Cannot change "{0}" from a data property to an accessor property because configurable is false.
|
||||
|
||||
msg.change.property.accessor.to.data.with.configurable.false =\
|
||||
Cannot change "{0}" from an accessor property to a data property because configurable is false.
|
||||
|
||||
msg.not.extensible =\
|
||||
Cannot add properties to this object because extensible is false.
|
||||
|
||||
msg.delete.property.with.configurable.false =\
|
||||
Cannot delete "{0}" property because configurable is false.
|
||||
|
||||
# TokenStream
|
||||
msg.missing.exponent =\
|
||||
missing exponent
|
||||
|
||||
msg.caught.nfe =\
|
||||
number format error
|
||||
|
||||
msg.unterminated.string.lit =\
|
||||
unterminated string literal
|
||||
|
||||
msg.unterminated.comment =\
|
||||
unterminated comment
|
||||
|
||||
msg.unterminated.re.lit =\
|
||||
unterminated regular expression literal
|
||||
|
||||
msg.invalid.re.flag =\
|
||||
invalid flag ''{0}'' after regular expression
|
||||
|
||||
msg.no.re.input.for =\
|
||||
no input for {0}
|
||||
|
||||
msg.illegal.character =\
|
||||
illegal character: {0}
|
||||
|
||||
msg.invalid.escape =\
|
||||
invalid Unicode escape sequence
|
||||
|
||||
msg.bad.namespace =\
|
||||
not a valid default namespace statement. \
|
||||
Syntax is: default xml namespace = EXPRESSION;
|
||||
|
||||
# TokensStream warnings
|
||||
msg.bad.octal.literal =\
|
||||
illegal octal literal digit {0}; interpreting it as a decimal digit
|
||||
|
||||
msg.reserved.keyword =\
|
||||
illegal usage of future reserved keyword {0}; interpreting it as ordinary identifier
|
||||
|
||||
# LiveConnect errors
|
||||
msg.java.internal.field.type =\
|
||||
Internal error: type conversion of {0} to assign to {1} on {2} failed.
|
||||
|
||||
msg.java.conversion.implicit_method =\
|
||||
Can''t find converter method "{0}" on class {1}.
|
||||
|
||||
msg.java.method.assign =\
|
||||
Java method "{0}" cannot be assigned to.
|
||||
|
||||
msg.java.internal.private =\
|
||||
Internal error: attempt to access private/protected field "{0}".
|
||||
|
||||
msg.java.no_such_method =\
|
||||
Can''t find method {0}.
|
||||
|
||||
msg.script.is.not.constructor =\
|
||||
Script objects are not constructors.
|
||||
|
||||
msg.nonjava.method =\
|
||||
Java method "{0}" was invoked with {1} as "this" value that can not be converted to Java type {2}.
|
||||
|
||||
msg.java.member.not.found =\
|
||||
Java class "{0}" has no public instance field or method named "{1}".
|
||||
|
||||
msg.java.array.index.out.of.bounds =\
|
||||
Array index {0} is out of bounds [0..{1}].
|
||||
|
||||
msg.java.array.member.not.found =\
|
||||
Java arrays have no public instance fields or methods named "{0}".
|
||||
|
||||
msg.pkg.int =\
|
||||
Java package names may not be numbers.
|
||||
|
||||
msg.access.prohibited =\
|
||||
Access to Java class "{0}" is prohibited.
|
||||
|
||||
# ImporterTopLevel
|
||||
msg.ambig.import =\
|
||||
Ambiguous import: "{0}" and and "{1}".
|
||||
|
||||
msg.not.pkg =\
|
||||
Function importPackage must be called with a package; had "{0}" instead.
|
||||
|
||||
msg.not.class =\
|
||||
Function importClass must be called with a class; had "{0}" instead.
|
||||
|
||||
msg.not.class.not.pkg =\
|
||||
"{0}" is neither a class nor a package.
|
||||
|
||||
msg.prop.defined =\
|
||||
Cannot import "{0}" since a property by that name is already defined.
|
||||
|
||||
#JavaAdapter
|
||||
msg.adapter.zero.args =\
|
||||
JavaAdapter requires at least one argument.
|
||||
|
||||
msg.not.java.class.arg = \
|
||||
Argument {0} is not Java class: {1}.
|
||||
|
||||
#JavaAdapter
|
||||
msg.only.one.super = \
|
||||
Only one class may be extended by a JavaAdapter. Had {0} and {1}.
|
||||
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.bad =\
|
||||
Inappropriate array length.
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.too.big =\
|
||||
Array length {0} exceeds supported capacity limit.
|
||||
|
||||
msg.empty.array.reduce =\
|
||||
Reduce of empty array with no initial value
|
||||
|
||||
# URI
|
||||
msg.bad.uri =\
|
||||
Malformed URI sequence.
|
||||
|
||||
# Number
|
||||
msg.bad.precision =\
|
||||
Precision {0} out of range.
|
||||
|
||||
# NativeGenerator
|
||||
msg.send.newborn =\
|
||||
Attempt to send value to newborn generator
|
||||
|
||||
msg.already.exec.gen =\
|
||||
Already executing generator
|
||||
|
||||
msg.StopIteration.invalid =\
|
||||
StopIteration may not be changed to an arbitrary object.
|
||||
|
||||
msg.generator.executing =\
|
||||
The generator is still executing from a previous invocation.
|
||||
|
||||
# Interpreter
|
||||
msg.yield.closing =\
|
||||
Yield from closing generator
|
||||
|
||||
msg.called.null.or.undefined=\
|
||||
{0}.prototype.{1} method called on null or undefined
|
||||
|
||||
msg.first.arg.not.regexp=\
|
||||
First argument to {0}.prototype.{1} must not be a regular expression
|
||||
|
||||
msg.arrowfunction.generator =\
|
||||
arrow function can not become generator
|
||||
|
||||
# Arguments
|
||||
msg.arguments.not.access.strict =\
|
||||
Cannot access "{0}" property of the arguments object in strict mode.
|
||||
|
||||
msg.object.cyclic.prototype =\
|
||||
Cyclic prototype "{0}" value not allowed.
|
||||
|
||||
msg.default.args.use.strict =\
|
||||
A function cannot have "use strict" directive with default arguments
|
||||
|
||||
# Symbol support
|
||||
msg.object.not.symbolscriptable =\
|
||||
Object {0} does not support Symbol keys
|
||||
|
||||
msg.no.assign.symbol.strict =\
|
||||
Symbol objects may not be assigned properties in strict mode
|
||||
|
||||
msg.not.a.string =\
|
||||
The object is not a string
|
||||
|
||||
msg.not.a.number =\
|
||||
The object is not a number
|
||||
|
||||
msg.cant.convert.to.number =\
|
||||
Cannot convert {0} to a number
|
||||
|
||||
msg.no.symbol.new =\
|
||||
Symbol objects may not be constructed using \"new\"
|
||||
|
||||
msg.compare.symbol =\
|
||||
Symbol objects may not be compared
|
||||
|
||||
msg.no.new =\
|
||||
{0} objects may not be constructed using \"new\"
|
||||
|
||||
msg.map.function.not =\
|
||||
Map function is not actually a function
|
||||
|
||||
msg.constructor.no.function =\
|
||||
The constructor for {0} may not be invoked as a function
|
||||
|
||||
msg.this.not.instance =\
|
||||
\"this\" is not an instance of the class
|
||||
|
||||
# Promises
|
||||
msg.function.expected =\
|
||||
Expecting the first argument to be a function
|
||||
|
||||
msg.constructor.expected =\
|
||||
Expecting the first argument to be a constructor
|
||||
|
||||
msg.promise.self.resolution =\
|
||||
Promise is being self-resolved
|
||||
|
||||
msg.promise.capability.state =\
|
||||
Invalid promise capability state
|
||||
|
||||
msg.promise.all.toobig =\
|
||||
Too many inputs to Promise.all
|
||||
|
||||
msg.promise.any.toobig =\
|
||||
Too many inputs to Promise.any
|
||||
|
||||
msg.typed.array.ctor.incompatible = \
|
||||
Method %TypedArray%.prototype.{0} called on incompatible receiver
|
||||
|
||||
msg.typed.array.bad.offset = \
|
||||
offset {0} out of range
|
||||
|
||||
msg.typed.array.bad.length = \
|
||||
length {0} out of range
|
||||
|
||||
msg.typed.array.bad.offset.byte.size = \
|
||||
offset {0} must be a multiple of the byte size {1}
|
||||
|
||||
msg.typed.array.bad.buffer.length.byte.size = \
|
||||
used buffer length {0} must be a multiple of the byte size {1}
|
||||
|
||||
msg.typed.array.bad.source.array = \
|
||||
source array is too long
|
||||
|
||||
msg.typed.array.index.out.of.bounds =\
|
||||
index {0} is out of bounds [{1}..{2}]
|
||||
|
||||
# Error
|
||||
msg.iterable.expected =\
|
||||
Expected the first argument to be iterable
|
||||
|
||||
# ArrayBuffer
|
||||
msg.species.invalid.ctor =\
|
||||
The [Symbol.species] property of object's constructor is not a constructor
|
||||
|
||||
msg.arraybuf.smaller.len =\
|
||||
Expected ArrayBuffer with at least {0} bytes, but got {1} bytes instead
|
||||
|
||||
msg.arraybuf.same =\
|
||||
Expected different ArrayBuffer
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# English JavaScript messages file.
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# The base messages file is used for all messages, but this file is
|
||||
# here so that English is selectable as a language when the default
|
||||
# Locale also has a translation.
|
||||
@@ -1,821 +0,0 @@
|
||||
#
|
||||
# French JavaScript messages file.
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
# Codegen
|
||||
msg.dup.parms =\
|
||||
Le nom de param\u00E8tre "{0}" existe d\u00E9j\u00E0.
|
||||
|
||||
msg.too.big.jump =\
|
||||
Programme trop complexe: d\u00E9calage de saut trop important
|
||||
|
||||
msg.too.big.index =\
|
||||
Programme trop complexe: l''indice interne d\u00E9passe la limite de 64\u00a0ko
|
||||
|
||||
msg.while.compiling.fn =\
|
||||
Une erreur de g\u00e9n\u00e9ration de code a \u00e9t\u00e9 rencontr\u00e9e \u00e0 la compilation de la fonction "{0}": {1}
|
||||
|
||||
msg.while.compiling.script =\
|
||||
Une erreur de g\u00e9n\u00e9ration de code a \u00e9t\u00e9 rencontr\u00e9e \u00e0 la compilation du script: {0}
|
||||
|
||||
# Context
|
||||
msg.ctor.not.found =\
|
||||
Le constructeur de "{0}" est introuvable
|
||||
|
||||
msg.not.ctor =\
|
||||
{0} n''est pas un constructeur
|
||||
|
||||
# FunctionObject
|
||||
msg.varargs.ctor =\
|
||||
La m\u00E9thode ou le constructeur "{0}" doit \u00EAtre statique avec la signature \
|
||||
"(Context cx, Object[] args, Function ctorObj, boolean inNewExpr)" \
|
||||
pour d\u00E9finir un constructeur d''arguments de variable.
|
||||
|
||||
msg.varargs.fun =\
|
||||
La m\u00E9thode "{0}" doit \u00EAtre statique avec la signature \
|
||||
"(Context cx, Scriptable thisObj, Object[] args, Function funObj)" \
|
||||
pour d\u00E9finir une fonction d''arguments de variable
|
||||
|
||||
msg.incompat.call =\
|
||||
La m\u00E9thode "{0}" a \u00E9t\u00E9 appel\u00E9e dans un objet non compatible
|
||||
|
||||
msg.bad.parms =\
|
||||
Les param\u00E8tres de la m\u00E9thode sont incorrects pour "{0}"
|
||||
|
||||
msg.bad.method.return =\
|
||||
Le type de retour "{0}" de la m\u00e9thode "{1}" est incorrect.
|
||||
|
||||
msg.bad.ctor.return =\
|
||||
La construction d''objets du type "{0}" n''est pas possible.
|
||||
|
||||
msg.no.overload =\
|
||||
La m\u00E9thode "{0}" appara\u00EEt plusieurs fois dans la classe "{1}"
|
||||
|
||||
msg.method.not.found =\
|
||||
La m\u00E9thode "{0}" est introuvable dans "{1}"
|
||||
|
||||
# IRFactory
|
||||
|
||||
msg.bad.for.in.lhs =\
|
||||
La partie gauche de la boucle for..in est incorrecte
|
||||
|
||||
msg.mult.index =\
|
||||
Une seule variable est autoris\u00E9e dans la boucle for..in
|
||||
|
||||
msg.bad.for.in.destruct =\
|
||||
La partie gauche de la boucle for..in doit \u00eatre un tableau de longueur 2 pour accepter \
|
||||
une paire clef/valeur.
|
||||
|
||||
msg.cant.convert =\
|
||||
La conversion en type "{0}" est impossible
|
||||
|
||||
msg.bad.assign.left =\
|
||||
La partie gauche de l''affectation est incorrecte
|
||||
|
||||
msg.bad.decr =\
|
||||
L''op\u00e9rande d\u00e9cr\u00e9ment\u00e9e est incorrecte.
|
||||
|
||||
msg.bad.incr =\
|
||||
L''op\u00e9rande incr\u00e9ment\u00e9e est incorrecte.
|
||||
|
||||
msg.bad.yield =\
|
||||
''yield'' doit \u00eatre dans une fonction.
|
||||
|
||||
msg.yield.parenthesized =\
|
||||
L''expression suivant ''yield'' doit \u00eatre entre parenth\u00e8ses.
|
||||
|
||||
msg.nullish.bad.token =\
|
||||
Erreur de syntaxe: Jeton inattendu.
|
||||
|
||||
# NativeGlobal
|
||||
msg.cant.call.indirect =\
|
||||
La fonction "{0}" doit \u00EAtre appel\u00E9e directement et non par l''interm\u00E9diaire \
|
||||
d''une fonction portant un autre nom
|
||||
|
||||
msg.eval.nonstring =\
|
||||
Si vous appelez la fonction eval() avec une valeur qui n''est pas \u00E0 une cha\u00EEne primitive, \
|
||||
c''est la valeur en question qui est renvoy\u00E9e. \u00E9tait-ce votre intention?
|
||||
|
||||
msg.eval.nonstring.strict =\
|
||||
La fonction eval() ne peut \u00eatre appel\u00e9e avec une valeur autre qu''une cha\u00EEne primitive \
|
||||
en mode strict
|
||||
|
||||
msg.bad.destruct.op =\
|
||||
L''op\u00e9rateur de l''assignation d\u00e9structurante est incorrect
|
||||
|
||||
# NativeCall
|
||||
msg.only.from.new =\
|
||||
{0} ne peut \u00EAtre appel\u00E9e qu''\u00E0 partir d''une "nouvelle" expression.
|
||||
|
||||
msg.deprec.ctor =\
|
||||
Le constructeur "{0}" est d\u00E9conseill\u00E9
|
||||
|
||||
# NativeFunction
|
||||
msg.no.function.ref.found =\
|
||||
aucune source n''a \u00E9t\u00E9 trouv\u00E9e pour d\u00E9compiler la r\u00E9f\u00E9rence de fonction {0}
|
||||
|
||||
msg.arg.isnt.array =\
|
||||
le second argument de la m\u00E9thode Function.prototype.apply doit \u00EAtre un tableau
|
||||
|
||||
# NativeGlobal
|
||||
msg.bad.esc.mask =\
|
||||
le masque d''\u00E9chappement de cha\u00EEne est incorrect
|
||||
|
||||
# NativeJavaClass
|
||||
msg.cant.instantiate =\
|
||||
erreur lors de l''instanciation ({0}): la classe {1} est une classe interface ou abstract
|
||||
|
||||
msg.bad.ctor.sig =\
|
||||
Un constructeur avec une signature incorrecte a \u00E9t\u00E9 d\u00E9tect\u00E9: \
|
||||
{0} qui appelle {1} avec la signature {2}
|
||||
|
||||
msg.not.java.obj =\
|
||||
L''argument attendu pour la fonction getClass() doit \u00EAtre un objet Java
|
||||
|
||||
msg.no.java.ctor =\
|
||||
Le constructeur Java de "{0}" avec les arguments "{1}" est introuvable
|
||||
|
||||
# NativeJavaMethod
|
||||
msg.method.ambiguous =\
|
||||
Le choix de la m\u00E9thode Java {0}.{1} correspondant aux types d''argument JavaScript ({2}) est ambigu. \
|
||||
Les m\u00E9thodes propos\u00E9es sont les suivantes: {3}
|
||||
|
||||
msg.constructor.ambiguous =\
|
||||
Le choix du constructeur Java {0} correspondant aux types d''argument JavaScript ({1}) est ambigu. \
|
||||
Les constructeurs propos\u00E9s sont les suivants: {2}
|
||||
|
||||
# NativeJavaObject
|
||||
msg.conversion.not.allowed =\
|
||||
Impossible de convertir {0} en {1}
|
||||
|
||||
msg.no.empty.interface.conversion =\
|
||||
Impossible de convertir la fonction en interface {0} sans aucune m\u00e9thode
|
||||
|
||||
msg.no.function.interface.conversion =\
|
||||
Impossible de convertir la fonction {0} en interface puisqu''elle contient des m\u00e9thodes avec \
|
||||
des noms diff\u00e9rents
|
||||
|
||||
msg.undefined.function.interface =\
|
||||
La propri\u00E9t\u00E9 "{0}" n''est pas d\u00E9finie dans l''adaptateur d''interface
|
||||
|
||||
msg.not.function.interface =\
|
||||
La propri\u00E9t\u00E9 "{0}" n''est pas une fonction dans l''adaptateur d''interface
|
||||
|
||||
# NativeJavaPackage
|
||||
msg.not.classloader =\
|
||||
Le constructeur de "Packages" attend un argument de type java.lang.Classloader
|
||||
|
||||
# NativeRegExp
|
||||
msg.bad.quant =\
|
||||
Le quantificateur {0} est incorrect
|
||||
|
||||
msg.overlarge.backref =\
|
||||
La r\u00e9f\u00e9rence ant\u00e9rieure est trop importante {0}
|
||||
|
||||
msg.overlarge.min =\
|
||||
Le minimum {0} est trop important
|
||||
|
||||
msg.overlarge.max =\
|
||||
Le maximum {0} est trop important
|
||||
|
||||
msg.zero.quant =\
|
||||
Le quantificateur {0} est nul
|
||||
|
||||
msg.max.lt.min =\
|
||||
Expression r\u00e9guli\u00e8re invalide : Le quantificateur maximum ''{0}'' est inf\u00e9rieur au minimum ''{1}''.
|
||||
|
||||
msg.unterm.quant =\
|
||||
Le quantificateur {0} n''a pas de limite
|
||||
|
||||
msg.unterm.paren =\
|
||||
Les parenth\u00E8ses {0} n''ont pas de limite
|
||||
|
||||
msg.unterm.class =\
|
||||
La classe de caract\u00E8res {0} n''a pas de limite
|
||||
|
||||
msg.bad.range =\
|
||||
La classe de caract\u00E8res contient une plage de valeurs incorrecte
|
||||
|
||||
msg.trail.backslash =\
|
||||
\\ \u00e0 la fin d''une expression rationnelle
|
||||
|
||||
msg.re.unmatched.right.paren =\
|
||||
Parenth\u00e8se fermante orpheline dans l''expression rationnelle
|
||||
|
||||
msg.no.regexp =\
|
||||
Les expressions rationnelles ne sont pas disponibles
|
||||
|
||||
msg.bad.backref =\
|
||||
la r\u00E9f\u00E9rence ant\u00E9rieure d\u00E9passe le nombre de parenth\u00E8ses de capture
|
||||
|
||||
msg.bad.regexp.compile =\
|
||||
Un seul argument peut \u00eatre sp\u00e9cifi\u00e9 si le premier argument de \
|
||||
RegExp.prototype.compile est un objet de type RegExp.
|
||||
|
||||
msg.arg.not.object =\
|
||||
L''argument attendu est de type ''object'' au lieu de ''{0}''
|
||||
|
||||
# NativeDate
|
||||
msg.invalid.date =\
|
||||
Date incorrecte.
|
||||
|
||||
msg.toisostring.must.return.primitive =\
|
||||
toISOString doit renvoyer une valeur primitive, mais a retourn\u00e9 \u00e0 la place "{0}"
|
||||
|
||||
# Parser
|
||||
msg.got.syntax.errors = \
|
||||
La compilation a produit {0} erreur(s) de syntaxe.
|
||||
|
||||
msg.var.redecl =\
|
||||
Erreur de type: la variable "{0}" a \u00e9t\u00e9 de nouveau d\u00e9clar\u00e9e.
|
||||
|
||||
msg.const.redecl =\
|
||||
Erreur de type: la constante "{0}" a \u00e9t\u00e9 de nouveau d\u00e9clar\u00e9e.
|
||||
|
||||
msg.let.redecl =\
|
||||
Erreur de type: la variable "{0}" a \u00e9t\u00e9 de nouveau d\u00e9clar\u00e9e.
|
||||
|
||||
msg.parm.redecl =\
|
||||
Erreur de type: le param\u00e8tre formel "{0}" a \u00e9t\u00e9 de nouveau d\u00e9clar\u00e9.
|
||||
|
||||
msg.fn.redecl =\
|
||||
Erreur de type: la fonction "{0}" a \u00E9t\u00E9 de nouveau d\u00E9clar\u00E9e.
|
||||
|
||||
msg.let.decl.not.in.block =\
|
||||
Erreur de syntaxe: la d\u00e9claration ''let'' n''est pas directement dans un block
|
||||
|
||||
msg.bad.object.init =\
|
||||
Erreur de syntaxe: initialiseur d''objet incorrect
|
||||
|
||||
# NodeTransformer
|
||||
msg.dup.label =\
|
||||
Le libell\u00E9 {0} existe d\u00E9j\u00E0
|
||||
|
||||
msg.undef.label =\
|
||||
Le libell\u00E9 {0} n''est pas d\u00E9fini
|
||||
|
||||
msg.bad.break =\
|
||||
Le saut non libell\u00E9 doit se trouver dans une boucle ou un switch
|
||||
|
||||
msg.continue.outside =\
|
||||
continue doit se trouver dans la boucle
|
||||
|
||||
msg.continue.nonloop =\
|
||||
Il n''est possible de continuer que dans l''instruction d''it\u00E9ration libell\u00E9e
|
||||
|
||||
msg.bad.throw.eol =\
|
||||
Un retour \u00e0 la ligne n''est pas autoris\u00e9 entre un mot-clef throw et son \
|
||||
expression.
|
||||
|
||||
msg.no.paren.parms =\
|
||||
il manque ''('' avant les param\u00E8tres de la fonction
|
||||
|
||||
msg.no.parm =\
|
||||
il manque un param\u00E8tre formel
|
||||
|
||||
msg.no.paren.after.parms =\
|
||||
il manque '')'' apr\u00E8s les param\u00E8tres formels
|
||||
|
||||
msg.no.brace.body =\
|
||||
il manque ''{'' avant le corps d''une fonction
|
||||
|
||||
msg.no.brace.after.body =\
|
||||
il manque ''}'' apr\u00E8s le corps d''une fonction
|
||||
|
||||
msg.no.paren.cond =\
|
||||
il manque ''('' avant une condition
|
||||
|
||||
msg.no.paren.after.cond =\
|
||||
il manque '')'' apr\u00E8s une condition
|
||||
|
||||
msg.no.semi.stmt =\
|
||||
il manque '';'' avant une instruction
|
||||
|
||||
msg.missing.semi =\
|
||||
il manque '';'' apr\u00e8s une instruction
|
||||
|
||||
msg.no.name.after.dot =\
|
||||
il manque un nom apr\u00E8s un op\u00E9rateur ''.''
|
||||
|
||||
msg.no.name.after.coloncolon =\
|
||||
il manque un nom apr\u00e8s un op\u00e9rateur ''::''
|
||||
|
||||
msg.no.name.after.dotdot =\
|
||||
il manque un nom apr\u00e8s un op\u00e9rateur ''..''
|
||||
|
||||
msg.no.name.after.xmlAttr =\
|
||||
il manque un nom apr\u00e8s ''.@''
|
||||
|
||||
msg.no.bracket.index =\
|
||||
il manque '']'' dans l''expression de l''indice
|
||||
|
||||
msg.no.paren.switch =\
|
||||
il manque ''('' avant l''expression du switch
|
||||
|
||||
msg.no.paren.after.switch =\
|
||||
il manque '')'' apr\u00E8s l''expression du switch
|
||||
|
||||
msg.no.brace.switch =\
|
||||
il manque ''{'' avant le corps du switch
|
||||
|
||||
msg.bad.switch =\
|
||||
l''instruction switch est incorrecte
|
||||
|
||||
msg.no.colon.case =\
|
||||
il manque '':'' apr\u00E8s l''expression d''un cas
|
||||
|
||||
msg.double.switch.default =\
|
||||
le libell\u00e9 ''default'' appara\u00eet plusieurs fois dans le bloc switch
|
||||
|
||||
msg.no.while.do =\
|
||||
il manque ''while'' apr\u00E8s le corps d''une boucle do-loop
|
||||
|
||||
msg.no.paren.for =\
|
||||
il manque ''('' apr\u00E8s for
|
||||
|
||||
msg.no.semi.for =\
|
||||
Il manque '';'' apr\u00E8s l''initialiseur for-loop
|
||||
|
||||
msg.no.semi.for.cond =\
|
||||
il manque '';'' apr\u00E8s la condition for-loop
|
||||
|
||||
msg.in.after.for.name =\
|
||||
il manque le mot-clef ''in'' apr\u00e8s ''for''
|
||||
|
||||
msg.no.paren.for.ctrl =\
|
||||
il manque '')'' apr\u00E8s le contr\u00f4le for-loop
|
||||
|
||||
msg.no.paren.with =\
|
||||
il manque ''('' avant un objet with-statement
|
||||
|
||||
msg.no.paren.after.with =\
|
||||
il manque '')'' apr\u00E8s un objet with-statement
|
||||
|
||||
msg.no.with.strict =\
|
||||
L''instruction with n''est pas autoris\u00e9e en mode strict
|
||||
|
||||
msg.no.paren.after.let =\
|
||||
il manque ''('' apr\u00e8s let
|
||||
|
||||
msg.no.paren.let =\
|
||||
il manque '')'' apr\u00e8s la liste de variables
|
||||
|
||||
msg.no.curly.let =\
|
||||
il manque ''}'' apr\u00e8s l''instruction let
|
||||
|
||||
msg.bad.return =\
|
||||
la valeur renvoy\u00E9e est incorrecte
|
||||
|
||||
msg.no.brace.block =\
|
||||
il manque ''}'' dans une instruction compos\u00E9e
|
||||
|
||||
msg.bad.label =\
|
||||
le libell\u00E9 est incorrect
|
||||
|
||||
msg.bad.var =\
|
||||
il manque un nom de variable
|
||||
|
||||
msg.bad.var.init =\
|
||||
l''initialisation de la variable est incorrecte
|
||||
|
||||
msg.no.colon.cond =\
|
||||
il manque '':'' dans une expression conditionnelle
|
||||
|
||||
msg.no.paren.arg =\
|
||||
il manque '')'' apr\u00E8s une liste d''arguments
|
||||
|
||||
msg.no.bracket.arg =\
|
||||
il manque '']'' apr\u00E8s une liste d''\u00E9l\u00E9ments
|
||||
|
||||
msg.bad.prop =\
|
||||
l''identifiant de propri\u00E9t\u00E9 est incorrect
|
||||
|
||||
msg.no.colon.prop =\
|
||||
il manque '':'' apr\u00E8s un identifiant de propri\u00E9t\u00E9
|
||||
|
||||
msg.no.brace.prop =\
|
||||
il manque ''}'' apr\u00E8s une liste de propri\u00E9t\u00E9s
|
||||
|
||||
msg.no.paren =\
|
||||
il manque '')'' dans des parenth\u00E8ses
|
||||
|
||||
msg.reserved.id =\
|
||||
l''identifiant est un mot r\u00E9serv\u00E9
|
||||
|
||||
msg.no.paren.catch =\
|
||||
il manque ''('' avant une condition catch-block
|
||||
|
||||
msg.bad.catchcond =\
|
||||
la condition catch-block est incorrecte
|
||||
|
||||
msg.catch.unreachable =\
|
||||
aucune clause catch suivant une interception non qualifi\u00E9e ne peut \u00EAtre atteinte
|
||||
|
||||
msg.no.brace.try =\
|
||||
il manque ''{'' avant le bloc try
|
||||
|
||||
msg.no.brace.catchblock =\
|
||||
il manque ''{'' avant le corps catch-block
|
||||
|
||||
msg.try.no.catchfinally =\
|
||||
''try'' a \u00E9t\u00E9 d\u00E9tect\u00E9 sans ''catch'' ni ''finally''
|
||||
|
||||
msg.no.return.value =\
|
||||
la fonction {0} ne renvoie pas toujours de valeur
|
||||
|
||||
msg.anon.no.return.value =\
|
||||
la fonction anonyme ne renvoie pas toujours de valeur
|
||||
|
||||
msg.return.inconsistent =\
|
||||
l''instruction return est incoh\u00e9rente avec les usages pr\u00e9c\u00e9dents
|
||||
|
||||
msg.generator.returns =\
|
||||
Erreur de type: la fonction g\u00e9n\u00e9ratrice {0} renvoie une valeur
|
||||
|
||||
msg.anon.generator.returns =\
|
||||
Erreur de type: la fonction g\u00e9n\u00e9ratrice anonyme renvoie une valeur
|
||||
|
||||
msg.syntax =\
|
||||
erreur de syntaxe
|
||||
|
||||
msg.unexpected.eof =\
|
||||
Fin de fichier inattendue
|
||||
|
||||
msg.XML.bad.form =\
|
||||
la syntaxe XML est mal form\u00e9e
|
||||
|
||||
msg.XML.not.available =\
|
||||
L''interpr\u00e9tation du XML n''est pas disponible
|
||||
|
||||
msg.too.deep.parser.recursion =\
|
||||
R\u00e9cursion trop profonde pendant l''analyse
|
||||
|
||||
msg.too.many.constructor.args =\
|
||||
Le constructeur a trop d''arguments
|
||||
|
||||
msg.too.many.function.args =\
|
||||
La fonction a trop d''arguments
|
||||
|
||||
msg.no.side.effects =\
|
||||
Le code n''a pas de valeur de retour
|
||||
|
||||
msg.extra.trailing.semi =\
|
||||
Point virgule superflux \u00e0 la fin
|
||||
|
||||
msg.extra.trailing.comma =\
|
||||
Une virgule \u00e0 la fin d''un initialiseur d''objet n''est pas autoris\u00e9 par le standard ECMA-262
|
||||
|
||||
msg.trailing.array.comma =\
|
||||
Une virgule \u00e0 la fin d''un tableau lit\u00e9ral a un comportement diff\u00e9rent suivant le navigateur utilis\u00e9
|
||||
|
||||
msg.equal.as.assign =\
|
||||
Le test d''\u00e9galit\u00e9 (==) a t''il \u00e9t\u00e9 saisi par erreur comme une assignation (=) ?
|
||||
|
||||
msg.var.hides.arg =\
|
||||
La variable {0} masque un argument
|
||||
|
||||
msg.destruct.assign.no.init =\
|
||||
Il manque ''='' dans l''assignation d\u00e9structurante
|
||||
|
||||
msg.no.octal.strict =\
|
||||
Les nombres octaux ne sont pas autoris\u00e9s en mode strict.
|
||||
|
||||
msg.dup.obj.lit.prop.strict =\
|
||||
La propri\u00e9t\u00e9 "{0}" est d\u00e9j\u00e0 d\u00e9finie dans cet objet lit\u00e9ral.
|
||||
|
||||
msg.dup.param.strict =\
|
||||
Le param\u00e8tre "{0}" est d\u00e9j\u00e0 d\u00e9clar\u00e9 dans cette fonction.
|
||||
|
||||
msg.bad.id.strict =\
|
||||
"{0}" n''est pas un identifiant valide pour cet usage en mode strict.
|
||||
|
||||
# ScriptRuntime
|
||||
|
||||
# is there a better message for this?
|
||||
# it's currently only used as a poison pill for caller, caller and arguments properties
|
||||
msg.op.not.allowed =\
|
||||
Cette op\u00e9ration n''est pas autoris\u00e9e.
|
||||
|
||||
msg.no.properties =\
|
||||
{0} n''a pas de propri\u00e9t\u00e9s.
|
||||
|
||||
msg.invalid.iterator =\
|
||||
La valeur n''est pas un it\u00e9rateur valide
|
||||
|
||||
msg.iterator.primitive =\
|
||||
__iterator__ a renvoy\u00e9 une valeur primitive
|
||||
|
||||
msg.assn.create.strict =\
|
||||
Assignation d''une variable non d\u00e9clar\u00e9e: {0}
|
||||
|
||||
msg.ref.undefined.prop =\
|
||||
R\u00e9f\u00e9rence \u00e0 une propri\u00e9t\u00e9 non d\u00e9finie "{0}"
|
||||
|
||||
msg.prop.not.found =\
|
||||
La propri\u00E9t\u00E9 est introuvable
|
||||
|
||||
msg.set.prop.no.setter =\
|
||||
Impossible de changer la propri\u00e9t\u00e9 ''{0}'' en l''absence de m\u00e9thode de d\u00e9finition.
|
||||
|
||||
msg.invalid.type =\
|
||||
Valeur JavaScript de type {0} incorrecte
|
||||
|
||||
msg.primitive.expected =\
|
||||
Un type primitif \u00E9tait attendu (et non {0})
|
||||
|
||||
msg.namespace.expected =\
|
||||
Un espace de nom est attendu \u00e0 gauche de :: ({0} trouv\u00e9 \u00e0 la place)
|
||||
|
||||
msg.null.to.object =\
|
||||
Il est impossible de convertir la valeur null en objet
|
||||
|
||||
msg.undef.to.object =\
|
||||
Il est impossible de convertir une valeur non d\u00E9finie en objet
|
||||
|
||||
msg.cyclic.value =\
|
||||
La valeur cyclique {0} n''est pas autoris\u00E9e
|
||||
|
||||
msg.is.not.defined =\
|
||||
"{0}" n''est pas d\u00E9fini
|
||||
|
||||
msg.undef.prop.read =\
|
||||
Impossible de lire la propri\u00e9t\u00e9 "{1}" de {0}
|
||||
|
||||
msg.undef.prop.write =\
|
||||
Impossible de changer la propri\u00e9t\u00e9 "{1}" de {0} en "{2}"
|
||||
|
||||
msg.undef.prop.delete =\
|
||||
Impossible de supprimer la propri\u00e9t\u00e9 "{1}" de {0}
|
||||
|
||||
msg.undef.method.call =\
|
||||
Impossible d''appeler la m\u00e9thode "{1}" de {0}
|
||||
|
||||
msg.undef.with =\
|
||||
Impossible d''appliquer "with" \u00e0 {0}
|
||||
|
||||
msg.isnt.function =\
|
||||
{0} n''est pas une fonction, c''est un {1}
|
||||
|
||||
msg.isnt.function.in =\
|
||||
Impossible d''appeler la propri\u00e9t\u00e9 {0} de l''objet {1}. Ce n''est pas une fonction, c''est un "{2}".
|
||||
|
||||
msg.function.not.found =\
|
||||
Impossible de trouver la fonction {0}.
|
||||
|
||||
msg.function.not.found.in =\
|
||||
Impossible de trouver la fonction {0} dans l''objet {1}.
|
||||
|
||||
msg.isnt.xml.object =\
|
||||
{0} n''est pas un objet xml.
|
||||
|
||||
msg.no.ref.to.get =\
|
||||
{0} n''est pas une r\u00e9f\u00e9rence vers une m\u00e9thode d''obtention.
|
||||
|
||||
msg.no.ref.to.set =\
|
||||
{0} n''est pas une r\u00e9f\u00e9rence vers une m\u00e9thode de d\u00e9finition.
|
||||
|
||||
msg.no.ref.from.function =\
|
||||
La fonction {0} ne peut pas \u00eatre utilis\u00e9e comme la partie gauche de l''assignation \
|
||||
ou comme l''op\u00e9rande de l''op\u00e9rateur ++ ou --.
|
||||
|
||||
msg.bad.default.value =\
|
||||
La m\u00E9thode getDefaultValue() de l''objet a renvoy\u00E9 un objet
|
||||
|
||||
msg.instanceof.not.object =\
|
||||
Il est impossible d''utiliser une instance d''un \u00E9l\u00E9ment autre qu''un objet
|
||||
|
||||
msg.instanceof.bad.prototype =\
|
||||
La propri\u00E9t\u00E9 ''prototype'' de {0} n''est pas un objet
|
||||
|
||||
msg.in.not.object = \
|
||||
Il est impossible d''utiliser une instance d''un \u00E9l\u00E9ment autre qu''un objet
|
||||
|
||||
msg.bad.radix =\
|
||||
la base {0} n''est pas autoris\u00E9e
|
||||
|
||||
# ScriptableObject
|
||||
msg.default.value =\
|
||||
La valeur par d\u00E9faut de l''objet est introuvable
|
||||
|
||||
msg.zero.arg.ctor =\
|
||||
Il est impossible de charger la classe "{0}", qui ne poss\u00E8de pas de constructeur de param\u00E8tre z\u00E9ro
|
||||
|
||||
duplicate.defineClass.name =\
|
||||
M\u00e9thode "{0}" incorrecte: le nom "{1}" est d\u00e9j\u00e0 utilis\u00e9.
|
||||
|
||||
msg.ctor.multiple.parms =\
|
||||
Il est impossible de d\u00E9finir le constructeur ou la classe {0} car plus d''un \
|
||||
constructeur poss\u00E8de plusieurs param\u00E8tres
|
||||
|
||||
msg.extend.scriptable =\
|
||||
{0} doit \u00E9tendre ScriptableObject afin de d\u00E9finir la propri\u00E9t\u00E9 {1}
|
||||
|
||||
msg.bad.getter.parms =\
|
||||
Pour d\u00E9finir une propri\u00E9t\u00E9, la m\u00E9thode d''obtention {0} doit avoir des param\u00E8tres z\u00E9ro \
|
||||
ou un seul param\u00E8tre ScriptableObject
|
||||
|
||||
msg.obj.getter.parms =\
|
||||
La m\u00E9thode d''obtention statique ou d\u00E9l\u00E9gu\u00E9e {0} doit utiliser un param\u00E8tre ScriptableObject
|
||||
|
||||
msg.getter.static =\
|
||||
La m\u00E9thode d''obtention et la m\u00E9thode de d\u00E9finition doivent toutes deux avoir le m\u00EAme \u00E9tat (statique ou non)
|
||||
|
||||
msg.setter.return =\
|
||||
La m\u00e9thode de d\u00e9finition doit avoir un type de retour vide: {0}
|
||||
|
||||
msg.setter2.parms =\
|
||||
La m\u00E9thode de d\u00E9finition \u00E0 deux param\u00E8tres doit utiliser un param\u00E8tre ScriptableObject comme premier param\u00E8tre
|
||||
|
||||
msg.setter1.parms =\
|
||||
Une m\u00E9thode d''obtention \u00E0 param\u00E8tre unique est attendue pour {0}
|
||||
|
||||
msg.setter2.expected =\
|
||||
La m\u00E9thode de d\u00E9finition statique ou d\u00E9l\u00E9gu\u00E9e {0} doit utiliser deux param\u00E8tres
|
||||
|
||||
msg.setter.parms =\
|
||||
Un ou deux param\u00E8tres sont attendus pour la m\u00E9thode de d\u00E9finition
|
||||
|
||||
msg.setter.bad.type =\
|
||||
Le type de param\u00e8tre "{0}" est incorrect dans la m\u00e9thode de d\u00e9finition "{1}".
|
||||
|
||||
msg.add.sealed =\
|
||||
Il est impossible d''ajouter une propri\u00E9t\u00E9 \u00E0 un objet scell\u00E9: {0}.
|
||||
|
||||
msg.remove.sealed =\
|
||||
Il est impossible de supprimer une propri\u00E9t\u00E9 d''un objet scell\u00E9: {0}.
|
||||
|
||||
msg.modify.sealed =\
|
||||
Il est impossible de modifier une propri\u00e9t\u00e9 d''un objet scell\u00E9: {0}.
|
||||
|
||||
msg.modify.readonly =\
|
||||
Il est impossible de modifier une propri\u00e9t\u00e9 en lecture seule: {0}.
|
||||
|
||||
msg.both.data.and.accessor.desc =\
|
||||
Le descripteur ne peut pas d\u00e9finir \u00e0 la fois un accesseur et une donn\u00e9e.
|
||||
|
||||
msg.change.configurable.false.to.true =\
|
||||
Impossible de changer de false \u00e0 true l''attribut ''configurable'' de "{0}".
|
||||
|
||||
msg.change.enumerable.with.configurable.false =\
|
||||
Impossible de changer l''attribut ''enumerable'' de "{0}" car ''configurable'' est ''false''.
|
||||
|
||||
msg.change.writable.false.to.true.with.configurable.false =\
|
||||
Impossible de changer de false \u00e0 true l''attribut ''writable'' de "{0}" car ''configurable'' est ''false''.
|
||||
|
||||
msg.change.value.with.writable.false =\
|
||||
Impossible de changer la valeur de l''attribut "{0}" car ''writable'' est ''false''.
|
||||
|
||||
msg.change.getter.with.configurable.false =\
|
||||
Impossible de changer l''attribut get de "{0}" car ''configurable'' est ''false''.
|
||||
|
||||
msg.change.setter.with.configurable.false =\
|
||||
Impossible de changer l''attribut set de "{0}" car ''configurable'' est ''false''.
|
||||
|
||||
msg.change.property.data.to.accessor.with.configurable.false =\
|
||||
Impossible de changer la propri\u00e9t\u00e9 par donn\u00e9e "{0}" en propri\u00e9t\u00e9 par accesseur car ''configurable'' est ''false''
|
||||
|
||||
msg.change.property.accessor.to.data.with.configurable.false =\
|
||||
Impossible de changer la propri\u00e9t\u00e9 par accesseur "{0}" en propri\u00e9t\u00e9 par donn\u00e9e car ''configurable'' est ''false''
|
||||
|
||||
msg.not.extensible =\
|
||||
Impossible d''ajouter des propri\u00e9t\u00e9s \u00e0 cet objet car ''extensible'' est ''false''.
|
||||
|
||||
# TokenStream
|
||||
msg.missing.exponent =\
|
||||
il manque un exposant
|
||||
|
||||
msg.caught.nfe =\
|
||||
erreur de format de nombre: {0}
|
||||
|
||||
msg.unterminated.string.lit =\
|
||||
le litt\u00E9ral de la cha\u00EEne n''a pas de limite
|
||||
|
||||
msg.unterminated.comment =\
|
||||
le commentaire n''a pas de limite
|
||||
|
||||
msg.unterminated.re.lit =\
|
||||
le litt\u00E9ral de l''expression rationnelle n''a pas de limite
|
||||
|
||||
msg.invalid.re.flag =\
|
||||
une expression rationnelle est suivie d''un indicateur incorrect ''{0}''
|
||||
|
||||
msg.no.re.input.for =\
|
||||
il n''y a pas d''entr\u00E9e pour {0}
|
||||
|
||||
msg.illegal.character =\
|
||||
caract\u00E8re non autoris\u00E9
|
||||
|
||||
msg.invalid.escape =\
|
||||
la s\u00E9quence d''\u00E9chappement Unicode est incorrecte
|
||||
|
||||
msg.bad.namespace =\
|
||||
L''instruction ''default xml namespace'' est incorrecte. \
|
||||
La syntaxe est: default xml namespace = EXPRESSION;
|
||||
|
||||
# TokensStream warnings
|
||||
msg.bad.octal.literal =\
|
||||
le chiffre octal du litt\u00E9ral, {0}, n''est pas autoris\u00E9 et sera interpr\u00E9t\u00E9 comme un chiffre d\u00E9cimal
|
||||
|
||||
msg.reserved.keyword =\
|
||||
l''utilisation du futur mot-cl\u00E9 r\u00E9serv\u00E9 {0} n''est pas autoris\u00E9e et celui-ci sera interpr\u00E9t\u00E9 comme un identifiant ordinaire
|
||||
|
||||
# LiveConnect errors
|
||||
msg.java.internal.field.type =\
|
||||
Erreur interne: la conversion de type de {0} afin d''affecter {1} \u00E0 {2} a \u00E9chou\u00E9
|
||||
|
||||
msg.java.conversion.implicit_method =\
|
||||
La m\u00E9thode de conversion "{0}" est introuvable dans la classe {1}
|
||||
|
||||
msg.java.method.assign =\
|
||||
La m\u00E9thode Java "{0}" ne peut pas \u00EAtre affect\u00E9e \u00E0
|
||||
|
||||
msg.java.internal.private =\
|
||||
Erreur interne: une tentative d''acc\u00E9der \u00E0 un champ "{0}" priv\u00E9/prot\u00E9g\u00E9 a \u00E9t\u00E9 d\u00E9tect\u00E9e
|
||||
|
||||
msg.java.no_such_method =\
|
||||
La m\u00E9thode ''{0}'' est introuvable
|
||||
|
||||
msg.script.is.not.constructor =\
|
||||
Les objets Script ne sont pas des constructeurs
|
||||
|
||||
msg.nonjava.method =\
|
||||
La m\u00E9thode Java "{0}" a \u00E9t\u00E9 appel\u00E9e avec une valeur ''this'' qui n''est pas un objet Java
|
||||
|
||||
msg.java.member.not.found =\
|
||||
La classe Java "{0}" ne poss\u00E8de aucun champ ou aucune m\u00E9thode d''instance publique appel\u00E9 "{1}"
|
||||
|
||||
msg.java.array.index.out.of.bounds =\
|
||||
L''indice {0} du tableau est en dehors de l''intervalle [0..{1}].
|
||||
|
||||
msg.java.array.member.not.found =\
|
||||
Les tableaux Java n''ont pas de champs ou de m\u00e9thodes publiques "{0}".
|
||||
|
||||
msg.pkg.int =\
|
||||
Les noms de package Java ne peuvent pas \u00EAtre des nombres
|
||||
|
||||
msg.access.prohibited =\
|
||||
L''acc\u00e8s \u00e0 la classe Java "{0}" est prohib\u00e9.
|
||||
|
||||
# ImporterTopLevel
|
||||
msg.ambig.import =\
|
||||
Importation ambigu\u00EB: "{0}" et "{1}"
|
||||
|
||||
msg.not.pkg =\
|
||||
La fonction importPackage doit \u00EAtre appel\u00E9e avec un package et non avec "{0}"
|
||||
|
||||
msg.not.class =\
|
||||
La fonction importClass doit \u00EAtre appel\u00E9e avec une classe et non avec "{0}"
|
||||
|
||||
msg.not.class.not.pkg =\
|
||||
"{0}" n''est ni une classe ni un package.
|
||||
|
||||
msg.prop.defined =\
|
||||
Il est impossible d''importer "{0}" car une propri\u00E9t\u00E9 portant le m\u00EAme nom a d\u00E9j\u00E0 \u00E9t\u00E9 d\u00E9finie
|
||||
|
||||
#JavaAdapter
|
||||
msg.adapter.zero.args =\
|
||||
JavaAdapter n\u00e9cessite au moins un argument.
|
||||
|
||||
msg.not.java.class.arg = \
|
||||
L''argument {0} n''est pas une classe Java: {1}.
|
||||
|
||||
#JavaAdapter
|
||||
msg.only.one.super = \
|
||||
Un JavaAdapter ne peut \u00e9tendre qu''une seule classe. Les classes {0} et {1} ont \u00e9t\u00e9 donn\u00e9es.
|
||||
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.bad =\
|
||||
La longueur du tableau n''est pas appropri\u00E9e
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.too.big =\
|
||||
La longueur du tableau {0} d\u00e9passe la capacit\u00e9 limite.
|
||||
|
||||
msg.empty.array.reduce =\
|
||||
La m\u00e9thode ''reduce'' ne fonctionne pas sans valeur initiale sur un tableau vide
|
||||
|
||||
# URI
|
||||
msg.bad.uri =\
|
||||
La s\u00E9quence URI n''est pas form\u00E9e correctement
|
||||
|
||||
# Number
|
||||
msg.bad.precision =\
|
||||
La pr\u00E9cision {0} ne se trouve pas dans la plage de valeurs
|
||||
|
||||
# NativeGenerator
|
||||
msg.send.newborn =\
|
||||
La m\u00e9thode send() d''un g\u00e9n\u00e9rateur ne peut \u00eatre appel\u00e9e avant un premier appel \u00e0 next()
|
||||
|
||||
msg.already.exec.gen =\
|
||||
Le g\u00e9n\u00e9rateur est d\u00e9j\u00e0 en cours d''ex\u00e9cution
|
||||
|
||||
msg.StopIteration.invalid =\
|
||||
L''exception StopIteration ne peut pas \u00eatre chang\u00e9e en un objet arbitraire.
|
||||
|
||||
# Interpreter
|
||||
msg.yield.closing =\
|
||||
yield impossible quand le g\u00e9n\u00e9rateur est en train de se fermer
|
||||
@@ -1,879 +0,0 @@
|
||||
#
|
||||
# Default JavaScript messages file.
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
# This is replaced during jar assembly from property string
|
||||
# and should not be translated
|
||||
implementation.version = @IMPLEMENTATION.VERSION@
|
||||
|
||||
#
|
||||
# To add JavaScript error messages for a particular locale, create a
|
||||
# new Messages_[locale].properties file, where [locale] is the Java
|
||||
# string abbreviation for that locale. For example, JavaScript
|
||||
# messages for the Polish locale should be located in
|
||||
# Messages_pl.properties, and messages for the Italian Swiss locale
|
||||
# should be located in Messages_it_CH.properties. Message properties
|
||||
# files should be accessible through the classpath under
|
||||
# org.mozilla.javascript.resources
|
||||
#
|
||||
# See:
|
||||
# java.util.ResourceBundle
|
||||
# java.text.MessageFormat
|
||||
#
|
||||
|
||||
# SomeJavaClassWhereUsed
|
||||
|
||||
params.omit.non.js.object.warning = true
|
||||
|
||||
msg.non.js.object.warning =\
|
||||
Rhino用法警告:缺少 Context.javaToJS() 转换:Rhino 运行时检测到类 “{1}” 的对象 “{0}”,它需要字符串、数字、布尔值或可编写脚本的实例。请检查您的代码是否缺少 Context.javaToJS() 调用。
|
||||
|
||||
# Codegen
|
||||
msg.dup.parms =\
|
||||
参数名称 “{0}” 已存在。
|
||||
|
||||
msg.too.big.jump =\
|
||||
程序太复杂:跳转偏移量太大。
|
||||
|
||||
msg.too.big.index =\
|
||||
程序太复杂:内部索引超过 64KB 限制。
|
||||
|
||||
msg.while.compiling.fn =\
|
||||
编译函数 “{0}” 时遇到代码生成错误:{1}
|
||||
|
||||
msg.while.compiling.script =\
|
||||
编译脚本时遇到代码生成错误:{0}
|
||||
|
||||
# Context
|
||||
msg.ctor.not.found =\
|
||||
未找到 “{0}” 的构造函数。
|
||||
|
||||
msg.not.ctor =\
|
||||
“{0}” 不是构造函数。
|
||||
|
||||
# FunctionObject
|
||||
msg.varargs.ctor =\
|
||||
方法或构造函数 “{0}” 必须是带有签名的静态 \
|
||||
“(Context cx, Object[] args, Function ctorObj, boolean inNewExpr)” \
|
||||
以定义可变参数的构造函数。
|
||||
|
||||
msg.varargs.fun =\
|
||||
方法 “{0}” 必须是带有签名的静态 \
|
||||
“(Context cx, Scriptable thisObj, Object[] args, Function funObj)” \
|
||||
以定义可变参数的函数。
|
||||
|
||||
msg.incompat.call =\
|
||||
在不兼容的对象中调用了方法 “{0}”。
|
||||
|
||||
msg.incompat.call.details =\
|
||||
对不兼容对象调用的方法 “{0}”({1} 不是 {2} 的实例)。
|
||||
|
||||
msg.bad.parms =\
|
||||
方法 “{1}” 中不支持参数类型 “{0}”。
|
||||
|
||||
msg.bad.method.return =\
|
||||
方法 “{1}” 中不支持返回类型 “{0}”。
|
||||
|
||||
msg.bad.ctor.return =\
|
||||
无法构造 “{0}” 类型的对象。
|
||||
|
||||
msg.no.overload =\
|
||||
方法 “{0}” 在类 “{1}” 中出现多次。
|
||||
|
||||
msg.method.not.found =\
|
||||
在 “{1}” 中找不到方法 “{0}” 。
|
||||
|
||||
msg.method.missing.parameter =\
|
||||
{0}:至少需要 {1} 个参数,但仅通过了 {2} 个
|
||||
|
||||
# IRFactory
|
||||
|
||||
msg.bad.for.in.lhs =\
|
||||
for..in 循环的左边部分不正确。
|
||||
|
||||
msg.mult.index =\
|
||||
for..in 循环中只允许有一个变量
|
||||
|
||||
msg.bad.for.in.destruct =\
|
||||
for..in 循环的左侧必须是一个长度为 2 的数组才能接受一个键值对。
|
||||
|
||||
msg.cant.convert =\
|
||||
无法转换为类型 “{0}”。
|
||||
|
||||
msg.bad.assign.left =\
|
||||
左侧分配无效。
|
||||
|
||||
msg.bad.decr =\
|
||||
递减的操作数无效。
|
||||
|
||||
msg.bad.incr =\
|
||||
递增的操作数无效。
|
||||
|
||||
msg.bad.yield =\
|
||||
yield 必须在函数内部。
|
||||
|
||||
msg.yield.parenthesized =\
|
||||
yield 后面的表达式必须放在括号中。
|
||||
|
||||
# NativeGlobal
|
||||
msg.cant.call.indirect =\
|
||||
必须直接调用函数 “{0}”,而不是通过具有其他名称的函数。
|
||||
|
||||
msg.eval.nonstring =\
|
||||
如果您使用不是原始字符串的值调用 eval() 函数,\
|
||||
则返回有问题的值。那是你的意图吗?
|
||||
|
||||
msg.eval.nonstring.strict =\
|
||||
在严格模式下,不能使用原始字符串以外的值调用 eval() 函数。
|
||||
|
||||
msg.bad.destruct.op =\
|
||||
无效的解构赋值运算符
|
||||
|
||||
# NativeCall
|
||||
msg.only.from.new =\
|
||||
“构造函数 {0}”只能从 “new” 表达式调用。
|
||||
|
||||
msg.deprec.ctor =\
|
||||
“{0}” 构造函数已弃用。
|
||||
|
||||
# NativeFunction
|
||||
msg.no.function.ref.found =\
|
||||
未找到反编译函数引用 {0} 的源
|
||||
|
||||
msg.arg.isnt.array =\
|
||||
Function.prototype.apply 方法的第二个参数必须是一个数组
|
||||
|
||||
# NativeGlobal
|
||||
msg.bad.esc.mask =\
|
||||
字符串转义掩码不正确
|
||||
|
||||
# NativeJavaClass
|
||||
msg.cant.instantiate =\
|
||||
实例化错误 ({0}):类 {1} 是接口或抽象类
|
||||
|
||||
msg.bad.ctor.sig =\
|
||||
检测到具有不正确签名的构造函数:\
|
||||
{0} 调用带有签名 {2} 的 {1}
|
||||
|
||||
msg.not.java.obj =\
|
||||
getClass() 函数的预期参数必须是 Java 对象。
|
||||
|
||||
msg.no.java.ctor =\
|
||||
未找到带有参数 “{1}” 的 “{0}” 的 Java 构造函数。
|
||||
|
||||
# NativeJavaMethod
|
||||
msg.method.ambiguous =\
|
||||
对应于 JavaScript 参数类型 ({2}) 的 Java 方法 {0}.{1} 的选择不明确。 \
|
||||
建议的方法是:{3}
|
||||
|
||||
msg.constructor.ambiguous =\
|
||||
对应于 JavaScript 参数类型 ({1}) 的 Java 构造函数 {0} 的选择不明确。 \
|
||||
建议的构造函数是:{2}
|
||||
|
||||
# NativeJavaObject
|
||||
msg.conversion.not.allowed =\
|
||||
无法将 {0} 转换为 {1}
|
||||
|
||||
msg.no.empty.interface.conversion =\
|
||||
无法在没有任何方法的情况下将函数转换为接口 {0}
|
||||
|
||||
msg.no.function.interface.conversion =\
|
||||
无法将函数 {0} 转换为接口,因为它包含具有不同名称的方法
|
||||
|
||||
msg.undefined.function.interface =\
|
||||
接口适配器中未设置属性“{0}”
|
||||
|
||||
msg.not.function.interface =\
|
||||
属性 “{0}” 不是接口适配器中的函数
|
||||
|
||||
# NativeJavaPackage
|
||||
msg.not.classloader =\
|
||||
“Packages” 的构造函数需要 java.lang.Classloader 类型的参数
|
||||
|
||||
# NativeRegExp
|
||||
msg.bad.quant =\
|
||||
量词 {0} 不正确
|
||||
|
||||
msg.overlarge.backref =\
|
||||
过大的反向引用 {0}
|
||||
|
||||
msg.overlarge.min =\
|
||||
最小值 {0} 太大
|
||||
|
||||
msg.overlarge.max =\
|
||||
最大值 {0} 太大
|
||||
|
||||
msg.zero.quant =\
|
||||
量词 {0} 为空
|
||||
|
||||
msg.max.lt.min =\
|
||||
最大值 {0} 小于最小值
|
||||
|
||||
msg.unterm.quant =\
|
||||
量词 {0} 没有限制
|
||||
|
||||
msg.unterm.paren =\
|
||||
{0} 括号没有限制
|
||||
|
||||
msg.unterm.class =\
|
||||
字符类 {0} 没有限制
|
||||
|
||||
msg.bad.range =\
|
||||
字符类包含不正确的值范围。
|
||||
|
||||
msg.trail.backslash =\
|
||||
“\\” 在正则表达式的末尾。
|
||||
|
||||
msg.re.unmatched.right.paren =\
|
||||
只有一个 “)” 在正则表达式中。
|
||||
|
||||
msg.no.regexp =\
|
||||
正则表达式不可用。
|
||||
|
||||
msg.bad.backref =\
|
||||
反向引用超过了捕获括号的数量。
|
||||
|
||||
msg.bad.regexp.compile =\
|
||||
如果 RegExp.prototype.compile 的第一个参数是 RegExp 类型的对象,则只能指定一个参数。
|
||||
|
||||
msg.arg.not.object =\
|
||||
预期参数的类型是 “object” 而不是 “{0}”
|
||||
|
||||
# NativeDate
|
||||
msg.invalid.date =\
|
||||
日期不正确。
|
||||
|
||||
msg.toisostring.must.return.primitive =\
|
||||
toISOString 应该返回一个原始值,而不是返回 “{0}”
|
||||
|
||||
# NativeJSON
|
||||
msg.json.cant.serialize =\
|
||||
不知道如何序列化 {0}
|
||||
|
||||
# Parser
|
||||
msg.got.syntax.errors = \
|
||||
编译产生 {0} 个语法错误。
|
||||
|
||||
msg.var.redecl =\
|
||||
类型错误:变量 {0} 被重新声明。
|
||||
|
||||
msg.const.redecl =\
|
||||
类型错误:重新声明了常量 {0}。
|
||||
|
||||
msg.let.redecl =\
|
||||
类型错误:变量 {0} 被重新声明。
|
||||
|
||||
msg.parm.redecl =\
|
||||
类型错误:重新声明了形式参数 {0} 。
|
||||
|
||||
msg.fn.redecl =\
|
||||
类型错误:重新声明了函数 {0}。
|
||||
|
||||
msg.let.decl.not.in.block =\
|
||||
语法错误:let 语句不能直接在块中
|
||||
|
||||
msg.bad.object.init =\
|
||||
语法错误:无效的对象初始化程序
|
||||
|
||||
# NodeTransformer
|
||||
msg.dup.label =\
|
||||
标签 {0} 已存在
|
||||
|
||||
msg.undef.label =\
|
||||
标签 {0} 未定义
|
||||
|
||||
msg.bad.break =\
|
||||
未标记的 break 必须在 loop 或 switch 内
|
||||
|
||||
msg.continue.outside =\
|
||||
只能在循环语句中使用 continue
|
||||
|
||||
msg.continue.nonloop =\
|
||||
只能在迭代语句中使用 continue
|
||||
|
||||
msg.bad.throw.eol =\
|
||||
在关键字 throw 与 throw 表达式之间不允许使用换行符表示。
|
||||
|
||||
msg.no.paren.parms =\
|
||||
在函数参数前面缺少 “(”。
|
||||
|
||||
msg.no.parm =\
|
||||
缺少形式参数
|
||||
|
||||
msg.no.paren.after.parms =\
|
||||
在形式参数后面缺少 “)”
|
||||
|
||||
msg.no.brace.body =\
|
||||
在函数体前面缺少 “{”
|
||||
|
||||
msg.no.brace.after.body =\
|
||||
在函数体后面缺少 “}”
|
||||
|
||||
msg.no.paren.cond =\
|
||||
在条件前面缺少 “(”
|
||||
|
||||
msg.no.paren.after.cond =\
|
||||
在字符 “)” 后面缺少条件
|
||||
|
||||
msg.no.semi.stmt =\
|
||||
在语句前面缺少 “;”
|
||||
|
||||
msg.missing.semi =\
|
||||
在语句后面缺少 “;”
|
||||
|
||||
msg.no.name.after.dot =\
|
||||
在运算符 “.” 后面缺少名称
|
||||
|
||||
msg.no.name.after.coloncolon =\
|
||||
在运算符 “::” 后面缺少名称
|
||||
|
||||
msg.no.name.after.dotdot =\
|
||||
在运算符 “..” 后面缺少名称
|
||||
|
||||
msg.no.name.after.xmlAttr =\
|
||||
在 “.@” 后面缺少名称
|
||||
|
||||
msg.no.bracket.index =\
|
||||
在索引表达式中缺少 “]”
|
||||
|
||||
msg.no.paren.switch =\
|
||||
在 switch 表达式的前面缺少 “(”
|
||||
|
||||
msg.no.paren.after.switch =\
|
||||
在 switch 表达式的后面缺少 “)”
|
||||
|
||||
msg.no.brace.switch =\
|
||||
在 switch 正文的前面缺少 “{”
|
||||
|
||||
msg.bad.switch =\
|
||||
switch 语句不正确
|
||||
|
||||
msg.no.colon.case =\
|
||||
在 case 表达式的后面缺少 “:”
|
||||
|
||||
msg.double.switch.default =\
|
||||
default 标签在 switch 语句中重复出现
|
||||
|
||||
msg.no.while.do =\
|
||||
在 do-loop 的后面缺少 while
|
||||
|
||||
msg.no.paren.for =\
|
||||
在 for 之后缺少 “(”
|
||||
|
||||
msg.no.semi.for =\
|
||||
在 for-loop 初始化程序的后面缺少 “;”
|
||||
|
||||
msg.no.semi.for.cond =\
|
||||
在 for-loop 条件的后面缺少 “;”
|
||||
|
||||
msg.in.after.for.name =\
|
||||
在 for 的后面缺少 “in”
|
||||
|
||||
msg.no.paren.for.ctrl =\
|
||||
在 for-loop 控件的后面缺少 “)”
|
||||
|
||||
msg.no.paren.with =\
|
||||
在 With-Statement 对象的前面缺少 “(”
|
||||
|
||||
msg.no.paren.after.with =\
|
||||
在 With-Statement 对象的后面面缺少 “(”
|
||||
|
||||
msg.no.with.strict =\
|
||||
严格模式下不允许使用 with 语句
|
||||
|
||||
msg.no.paren.after.let =\
|
||||
在 let 的后面缺少 “(”
|
||||
|
||||
msg.no.paren.let =\
|
||||
在变量列表后面缺少 “)”
|
||||
|
||||
msg.no.curly.let =\
|
||||
在 let 语句的后面缺少 “}”
|
||||
|
||||
msg.bad.return =\
|
||||
返回的值无效
|
||||
|
||||
msg.no.brace.block =\
|
||||
复合语句中缺少 “}”
|
||||
|
||||
msg.bad.label =\
|
||||
无效标签
|
||||
|
||||
msg.bad.var =\
|
||||
缺少变量名
|
||||
|
||||
msg.bad.var.init =\
|
||||
变量初始化不正确
|
||||
|
||||
msg.no.colon.cond =\
|
||||
在条件表达式中缺少 “:”
|
||||
|
||||
msg.no.paren.arg =\
|
||||
在参数列表的后面缺少 “)”
|
||||
|
||||
msg.no.bracket.arg =\
|
||||
在元素列表的后面缺少 “]”
|
||||
|
||||
msg.bad.prop =\
|
||||
属性 ID 不正确
|
||||
|
||||
msg.no.colon.prop =\
|
||||
在属性 ID 的后面缺少 “:”
|
||||
|
||||
msg.no.brace.prop =\
|
||||
在属性列表的后面缺少 “}”
|
||||
|
||||
msg.no.paren =\
|
||||
在括号中缺少 “)”
|
||||
|
||||
msg.reserved.id =\
|
||||
标识符是保留字: {0}
|
||||
|
||||
msg.no.paren.catch =\
|
||||
在 catch-block 条件的前面缺少 “(”
|
||||
|
||||
msg.bad.catchcond =\
|
||||
无效的 catch-block 条件
|
||||
|
||||
msg.catch.unreachable =\
|
||||
不合格的 catch 后面的任何 catch 子句都是到达不了的
|
||||
|
||||
msg.no.brace.try =\
|
||||
在 try 的前面缺少 “{”
|
||||
|
||||
msg.no.brace.catchblock =\
|
||||
在 catch-block 主体的前面缺少 “{”
|
||||
|
||||
msg.try.no.catchfinally =\
|
||||
try 被检测到没有 catch 或 finally
|
||||
|
||||
msg.no.return.value =\
|
||||
函数 {0} 并不总是返回值
|
||||
|
||||
msg.anon.no.return.value =\
|
||||
匿名函数并不总是返回值
|
||||
|
||||
msg.return.inconsistent =\
|
||||
return 语句与之前的用法不一致
|
||||
|
||||
msg.generator.returns =\
|
||||
类型错误:生成器函数 {0} 返回一个值
|
||||
|
||||
msg.anon.generator.returns =\
|
||||
类型错误:匿名生成器函数返回一个值
|
||||
|
||||
msg.syntax =\
|
||||
语法错误
|
||||
|
||||
msg.unexpected.eof =\
|
||||
文件意外结束
|
||||
|
||||
msg.XML.bad.form =\
|
||||
XML 语法格式错误
|
||||
|
||||
msg.XML.not.available =\
|
||||
XML 解析不可用
|
||||
|
||||
msg.too.deep.parser.recursion =\
|
||||
解析期间递归太深
|
||||
|
||||
msg.too.many.constructor.args =\
|
||||
构造函数的参数太多
|
||||
|
||||
msg.too.many.function.args =\
|
||||
函数的参数太多
|
||||
|
||||
msg.no.side.effects =\
|
||||
代码没有返回值
|
||||
|
||||
msg.extra.trailing.semi =\
|
||||
末尾有多余的分号
|
||||
|
||||
msg.extra.trailing.comma =\
|
||||
按照 ECMA-262 的标准不允许对象初始值设定项末尾的逗号
|
||||
|
||||
msg.trailing.array.comma =\
|
||||
数组文字末尾的逗号根据所使用的浏览器表现不同
|
||||
|
||||
msg.equal.as.assign =\
|
||||
判断相等性 “==” 错误地输入成为赋值 “=” ?
|
||||
|
||||
msg.var.hides.arg =\
|
||||
变量 {0} 隐藏了一个参数
|
||||
|
||||
msg.destruct.assign.no.init =\
|
||||
解构赋值中缺少 “=”
|
||||
|
||||
msg.destruct.default.vals =\
|
||||
解构声明中的默认值不支持
|
||||
|
||||
msg.no.old.octal.strict =\
|
||||
严格模式下不允许使用旧的八进制数。
|
||||
|
||||
msg.no.old.octal.bigint =\
|
||||
BigInt 中不允许使用旧的八进制数。
|
||||
|
||||
msg.dup.obj.lit.prop.strict =\
|
||||
此对象文字中已定义属性 “{0}”。
|
||||
|
||||
msg.dup.param.strict =\
|
||||
此函数中已声明参数 “{0}”。
|
||||
|
||||
msg.bad.id.strict =\
|
||||
“{0}” 不是严格模式下此用途的有效标识符。
|
||||
|
||||
msg.no.unary.expr.on.left.exp =\
|
||||
“{0}” 不允许出现在 “**” 的左侧。
|
||||
|
||||
# 脚本运行时(ScriptRuntime)
|
||||
|
||||
# is there a better message for this?
|
||||
# it's currently only used as a poison pill for caller, caller and arguments properties
|
||||
msg.op.not.allowed =\
|
||||
不允许此操作。
|
||||
|
||||
msg.no.properties =\
|
||||
{0} 没有属性。
|
||||
|
||||
msg.invalid.iterator =\
|
||||
值不是有效的迭代器
|
||||
|
||||
msg.iterator.primitive =\
|
||||
__iterator__ 返回一个原始值
|
||||
|
||||
msg.not.iterable = \
|
||||
{0} 不可迭代
|
||||
|
||||
msg.invalid.for.each = \
|
||||
对每个循环无效
|
||||
|
||||
msg.assn.create.strict =\
|
||||
未声明变量的赋值 {0}
|
||||
|
||||
msg.ref.undefined.prop =\
|
||||
对未定义属性 “{0}” 的引用
|
||||
|
||||
msg.prop.not.found =\
|
||||
未找到属性 {0}。
|
||||
|
||||
msg.set.prop.no.setter =\
|
||||
无法将只有 getter 的属性 {0} 的值设置为 “{1}”。
|
||||
|
||||
msg.invalid.type =\
|
||||
{0} 类型的 JavaScript 值无效
|
||||
|
||||
msg.primitive.expected =\
|
||||
需要使用原始类型,而不是使用 {0}
|
||||
|
||||
msg.namespace.expected =\
|
||||
命名空间对象应该位于 “::” 左侧(找到 {0} 代替)
|
||||
|
||||
msg.null.to.object =\
|
||||
无法将 null 转换为对象。
|
||||
|
||||
msg.undef.to.object =\
|
||||
无法将未定义的值转换为对象。
|
||||
|
||||
msg.cant.convert.to.bigint =\
|
||||
无法将 {0} 转换为 BigInt。
|
||||
|
||||
msg.cant.convert.to.bigint.isnt.integer =\
|
||||
无法将 {0} 转换为 BigInt,它不是整数。
|
||||
|
||||
msg.bigint.bad.form =\
|
||||
不允许形成的 BigInt 语法
|
||||
|
||||
msg.cyclic.value =\
|
||||
不允许使用循环 “{0}” 值。
|
||||
|
||||
msg.is.not.defined =\
|
||||
“{0}” 未定义。
|
||||
|
||||
msg.undef.prop.read =\
|
||||
无法读取 {0} 的属性 “{1}”
|
||||
|
||||
msg.undef.prop.write =\
|
||||
无法将 {0} 的属性 “{1}” 设置为 “{2}”
|
||||
|
||||
msg.undef.prop.delete =\
|
||||
无法删除 {0} 的属性 “{1}”
|
||||
|
||||
msg.undef.method.call =\
|
||||
无法调用 {0} 的方法 “{1}”
|
||||
|
||||
msg.undef.with =\
|
||||
无法将 “with” 应用于 {0}
|
||||
|
||||
msg.isnt.function =\
|
||||
{0} 不是函数,它是 {1}。
|
||||
|
||||
msg.isnt.function.in =\
|
||||
无法调用对象 {1} 中的属性 {0}。它不是一个函数,而是 “{2}”。
|
||||
|
||||
msg.function.not.found =\
|
||||
找不到函数 {0}。
|
||||
|
||||
msg.function.not.found.in =\
|
||||
在对象 {1} 中找不到函数 {0} 。
|
||||
|
||||
msg.isnt.xml.object =\
|
||||
{0} 不是 XML 对象。
|
||||
|
||||
msg.no.ref.to.get =\
|
||||
{0} 不是对读取参考值的引用。
|
||||
|
||||
msg.no.ref.to.set =\
|
||||
{0} 不是将引用值设置为 {1} 的引用。
|
||||
|
||||
msg.no.ref.from.function =\
|
||||
函数 {0} 不能用作赋值的左侧部分,也不能用作 “++” 或 “--” 运算符的操作数。
|
||||
|
||||
msg.bad.default.value =\
|
||||
Object 的 getDefaultValue() 方法返回了一个对象。
|
||||
|
||||
msg.instanceof.not.object = \
|
||||
不能在非对象上使用 “instanceof”。
|
||||
|
||||
msg.instanceof.bad.prototype = \
|
||||
{0} 的 “prototype” 属性不是对象。
|
||||
|
||||
msg.in.not.object = \
|
||||
不能在非对象上使用 “in”。
|
||||
|
||||
msg.bad.radix = \
|
||||
不允许的基数 {0}。
|
||||
|
||||
msg.division.zero = \
|
||||
除以零。
|
||||
|
||||
msg.bigint.negative.exponent = \
|
||||
BigInt 负指数。
|
||||
|
||||
msg.bigint.out.of.range.arithmetic = \
|
||||
BigInt 的数过大。
|
||||
|
||||
# ScriptableObject
|
||||
msg.default.value =\
|
||||
未找到对象默认值。
|
||||
|
||||
msg.zero.arg.ctor =\
|
||||
无法加载没有零参数构造函数的类 “{0}”。
|
||||
|
||||
duplicate.defineClass.name =\
|
||||
方法 “{0}” 无效:名称 “{1}” 已在使用中。
|
||||
|
||||
msg.ctor.multiple.parms =\
|
||||
无法定义构造函数或类 {0},因为多个构造函数具有多个参数。
|
||||
|
||||
msg.extend.scriptable =\
|
||||
{0} 必须扩展 ScriptableObject 才能定义属性 {1}。
|
||||
|
||||
msg.bad.getter.parms =\
|
||||
为了定义一个属性,getter {0} 必须有零个参数或一个 ScriptableObject 参数。
|
||||
|
||||
msg.obj.getter.parms =\
|
||||
静态或委托 getter 方法 {0} 必须使用 ScriptableObject 参数。
|
||||
|
||||
msg.getter.static =\
|
||||
getter 方法和 setter 方法必须具有相同的状态(静态或非静态)。
|
||||
|
||||
msg.setter.return =\
|
||||
setter 方法的返回类型必须为空:{0}
|
||||
|
||||
msg.setter2.parms =\
|
||||
双参数 setter 方法必须使用 ScriptableObject 参数作为第一个参数。
|
||||
|
||||
msg.setter1.parms =\
|
||||
{0} 需要一个参数 getter 方法
|
||||
|
||||
msg.setter2.expected =\
|
||||
静态或委托设置方法 {0} 必须采用两个参数。
|
||||
|
||||
msg.setter.parms =\
|
||||
setter 方法需要一个或两个参数。
|
||||
|
||||
msg.setter.bad.type =\
|
||||
setter 方法 “{1}” 中的参数类型 “{0}” 不正确。
|
||||
|
||||
msg.add.sealed =\
|
||||
无法将属性添加到密封对象: {0}。
|
||||
|
||||
msg.remove.sealed =\
|
||||
无法从密封对象中删除属性: {0}。
|
||||
|
||||
msg.modify.sealed =\
|
||||
无法修改密封对象的属性: {0}。
|
||||
|
||||
msg.modify.readonly =\
|
||||
无法修改只读属性: {0}。
|
||||
|
||||
msg.both.data.and.accessor.desc =\
|
||||
描述符不能同时定义访问器和数据。
|
||||
|
||||
msg.change.configurable.false.to.true =\
|
||||
无法将 “{0}” 的可配置属性从 false 更改为 true。
|
||||
|
||||
msg.change.enumerable.with.configurable.false =\
|
||||
无法更改 “{0}” 的可枚举属性,因为 configurable 为 false。
|
||||
|
||||
msg.change.writable.false.to.true.with.configurable.false =\
|
||||
无法将 “{0}” 的可写属性从 false 更改为 true,因为 configurable 为 false。
|
||||
|
||||
msg.change.value.with.writable.false =\
|
||||
无法更改属性 “{0}” 的值,因为 writable 为 false。
|
||||
|
||||
msg.change.getter.with.configurable.false =\
|
||||
无法更改 “{0}” 的获取属性,因为 configurable 为 false。
|
||||
|
||||
msg.change.setter.with.configurable.false =\
|
||||
无法更改 “{0}” 的设置属性,因为 configurable 为 false。
|
||||
|
||||
msg.change.property.data.to.accessor.with.configurable.false =\
|
||||
无法将数据 “{0}” 的属性更改为访问者的属性,因为 configurable 为 false。
|
||||
|
||||
msg.change.property.accessor.to.data.with.configurable.false =\
|
||||
无法将访问器 “{0}” 的属性更改为数据的属性,因为 configurable 为 false。
|
||||
|
||||
msg.not.extensible =\
|
||||
无法向此对象添加属性,因为 extensible 为 false。
|
||||
|
||||
msg.delete.property.with.configurable.false =\
|
||||
无法删除 “{0}” 属性,因为可配置为 false。
|
||||
|
||||
# TokenStream
|
||||
msg.missing.exponent =\
|
||||
缺少一个指数
|
||||
|
||||
msg.caught.nfe =\
|
||||
数字格式错误 {0}
|
||||
|
||||
msg.unterminated.string.lit =\
|
||||
字符串文字没有限制
|
||||
|
||||
msg.unterminated.comment =\
|
||||
注释没有限制
|
||||
|
||||
msg.unterminated.re.lit =\
|
||||
正则表达式文字没有限制
|
||||
|
||||
msg.invalid.re.flag =\
|
||||
正则表达式后的标志 “{0}” 无效
|
||||
|
||||
msg.no.re.input.for =\
|
||||
{0} 没有输入
|
||||
|
||||
msg.illegal.character =\
|
||||
不允许的字符:“{0}”
|
||||
|
||||
msg.invalid.escape =\
|
||||
Unicode 转义序列不正确
|
||||
|
||||
msg.bad.namespace =\
|
||||
不是有效的默认命名空间语句。 \
|
||||
语法是:默认 xml 命名空间 = EXPRESSION;
|
||||
|
||||
# TokensStream warnings
|
||||
msg.bad.octal.literal =\
|
||||
字面量 {0} 的八进制数字是不允许的,将被解释为十进制数字
|
||||
|
||||
msg.reserved.keyword =\
|
||||
不允许使用将来的保留关键字 {0},这将被解释为普通标识符
|
||||
|
||||
# LiveConnect errors
|
||||
msg.java.internal.field.type =\
|
||||
内部错误:将 {1} 分配给 {2} 的 {0} 类型转换失败。
|
||||
|
||||
msg.java.conversion.implicit_method =\
|
||||
在类 {1} 中找不到转换方法 “{0}”。
|
||||
|
||||
msg.java.method.assign =\
|
||||
无法分配 Java 方法 “{0}”。
|
||||
|
||||
msg.java.internal.private =\
|
||||
内部错误:检测到尝试访问受保护的私有字段 “{0}”。
|
||||
|
||||
msg.java.no_such_method =\
|
||||
找不到方法 “{0}”。
|
||||
|
||||
msg.script.is.not.constructor =\
|
||||
脚本对象不是构造函数。
|
||||
|
||||
msg.nonjava.method =\
|
||||
Java 方法 “{0}” 被调用,{1} 作为“this”值,无法转换为 Java 类型 {2}。
|
||||
|
||||
msg.java.member.not.found =\
|
||||
Java 类 “{0}” 没有名为 “{1}” 的公共实例字段或方法。
|
||||
|
||||
msg.java.array.index.out.of.bounds =\
|
||||
数组索引 {0} 超出范围 [0..{1}]。
|
||||
|
||||
msg.java.array.member.not.found =\
|
||||
Java 数组没有名为 “{0}” 的公共实例字段或方法。
|
||||
|
||||
msg.pkg.int =\
|
||||
Java 中的包名不能以数字开头。
|
||||
|
||||
msg.access.prohibited =\
|
||||
禁止访问 Java 类 “{0}”。
|
||||
|
||||
# ImporterTopLevel
|
||||
msg.ambig.import =\
|
||||
不明确的导入:“{0}” 和 “{1}”。
|
||||
|
||||
msg.not.pkg =\
|
||||
调用 importPackage 函数必须使用包而不是 “{0}”。
|
||||
|
||||
msg.not.class =\
|
||||
调用 importClass 函数必须使用类而不是 “{0}”。
|
||||
|
||||
msg.not.class.not.pkg =\
|
||||
“{0}” 既不是类也不是包。
|
||||
|
||||
msg.prop.defined =\
|
||||
无法导入 “{0}”,因为该名称的属性已定义。
|
||||
|
||||
#JavaAdapter
|
||||
msg.adapter.zero.args =\
|
||||
JavaAdapter 至少需要一个参数。
|
||||
|
||||
msg.not.java.class.arg = \
|
||||
参数 {0} 不是 Java 类:{1}。
|
||||
|
||||
#JavaAdapter
|
||||
msg.only.one.super = \
|
||||
JavaAdapter 只能扩展一个类。已给出类 {0} 和 {1}。
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.bad =\
|
||||
数组长度不合适。
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.too.big =\
|
||||
数组 {0} 的长度超出了支持的容量限制。
|
||||
|
||||
msg.empty.array.reduce =\
|
||||
“reduce” 方法在空数组上没有初始值时不起作用
|
||||
|
||||
# URI
|
||||
msg.bad.uri =\
|
||||
URI 序列的格式不正确。
|
||||
|
||||
# Number
|
||||
msg.bad.precision =\
|
||||
精度 {0} 超出范围。
|
||||
|
||||
# NativeGenerator
|
||||
msg.send.newborn =\
|
||||
在第一次调用 next() 之前不能调用生成器的 send() 方法
|
||||
|
||||
msg.already.exec.gen =\
|
||||
生成器已经在运行
|
||||
|
||||
msg.StopIteration.invalid =\
|
||||
StopIteration 异常不能更改为任意对象。
|
||||
|
||||
msg.generator.executing =\
|
||||
生成器仍在执行先前的调用。
|
||||
@@ -1,2244 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema version="1.0" xml:lang="en"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:xml="http://www.w3.org/XML/1998/namespace"
|
||||
elementFormDefault="qualified">
|
||||
|
||||
<!--
|
||||
THIS IS A MODIFIED VERSION THAT DROPS ALL DEFAULT ATTRIBUTES! THEY ARE EVIL! (cb)
|
||||
See: http://www.xmlplease.com/shaperect
|
||||
-->
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
XHTML 1.0 (Second Edition) Strict in XML Schema
|
||||
|
||||
This is the same as HTML 4 Strict except for
|
||||
changes due to the differences between XML and SGML.
|
||||
|
||||
Namespace = http://www.w3.org/1999/xhtml
|
||||
|
||||
For further information, see: http://www.w3.org/TR/xhtml1
|
||||
|
||||
Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
|
||||
All Rights Reserved.
|
||||
|
||||
The DTD version is identified by the PUBLIC and SYSTEM identifiers:
|
||||
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
||||
|
||||
$Id: xhtml1-strict.xsd,v 1.2 2002/08/28 08:05:44 mimasa Exp $
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
|
||||
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================ Character mnemonic entities =========================
|
||||
|
||||
XHTML entity sets are identified by the PUBLIC and SYSTEM identifiers:
|
||||
|
||||
PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
|
||||
SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"
|
||||
|
||||
PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
|
||||
SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"
|
||||
|
||||
PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
|
||||
SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================== Imported Names ====================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:simpleType name="ContentType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
media type, as per [RFC2045]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="ContentTypes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
comma-separated list of media types, as per [RFC2045]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Charset">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a character encoding, as per [RFC2045]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Charsets">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a space separated list of character encodings, as per [RFC2045]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="LanguageCode">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a language code, as per [RFC3066]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:language"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Character">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a single character, as per section 2.2 of [XML]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:length value="1" fixed="true"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Number">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
one or more digits
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:nonNegativeInteger">
|
||||
<xs:pattern value="[0-9]+"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="tabindexNumber">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
tabindex attribute specifies the position of the current element
|
||||
in the tabbing order for the current document. This value must be
|
||||
a number between 0 and 32767. User agents should ignore leading zeros.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Number">
|
||||
<xs:minInclusive value="0"/>
|
||||
<xs:maxInclusive value="32767"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="LinkTypes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
space-separated list of link types
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:NMTOKENS"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="MediaDesc">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
single or comma-separated list of media descriptors
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[^,]+(,\s*[^,]+)*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="URI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a Uniform Resource Identifier, see [RFC2396]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="UriList">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a space separated list of Uniform Resource Identifiers
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Datetime">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
date and time information. ISO date format
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:dateTime"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Script">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
script expression
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="StyleSheet">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
style sheet data
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Text">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
used for titles etc.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Length">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
nn for pixels or nn% for percentage length
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="MultiLength">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
pixel, percentage, or relative
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)|[1-9]?(\d+)?\*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Pixels">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
integer representing length in pixels
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:nonNegativeInteger"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
these are used for image maps
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:simpleType name="Shape">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="rect"/>
|
||||
<xs:enumeration value="circle"/>
|
||||
<xs:enumeration value="poly"/>
|
||||
<xs:enumeration value="default"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Coords">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
comma separated list of lengths
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern
|
||||
value="[-+]?(\d+|\d+(\.\d+)?%)(,\s*[-+]?(\d+|\d+(\.\d+)?%))*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Generic Attributes ===============================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:attributeGroup name="coreattrs">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
core attributes common to most elements
|
||||
id document-wide unique id
|
||||
class space separated list of classes
|
||||
style associated style info
|
||||
title advisory title/amplification
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="class" type="xs:NMTOKENS"/>
|
||||
<xs:attribute name="style" type="StyleSheet"/>
|
||||
<xs:attribute name="title" type="Text"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:attributeGroup name="i18n">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
internationalization attributes
|
||||
lang language code (backwards compatible)
|
||||
xml:lang language code (as per XML 1.0 spec)
|
||||
dir direction for weak/neutral text
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="lang" type="LanguageCode"/>
|
||||
<xs:attribute ref="xml:lang"/>
|
||||
<xs:attribute name="dir">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="ltr"/>
|
||||
<xs:enumeration value="rtl"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:attributeGroup name="events">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
attributes for common UI events
|
||||
onclick a pointer button was clicked
|
||||
ondblclick a pointer button was double clicked
|
||||
onmousedown a pointer button was pressed down
|
||||
onmouseup a pointer button was released
|
||||
onmousemove a pointer was moved onto the element
|
||||
onmouseout a pointer was moved away from the element
|
||||
onkeypress a key was pressed and released
|
||||
onkeydown a key was pressed down
|
||||
onkeyup a key was released
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="onclick" type="Script"/>
|
||||
<xs:attribute name="ondblclick" type="Script"/>
|
||||
<xs:attribute name="onmousedown" type="Script"/>
|
||||
<xs:attribute name="onmouseup" type="Script"/>
|
||||
<xs:attribute name="onmouseover" type="Script"/>
|
||||
<xs:attribute name="onmousemove" type="Script"/>
|
||||
<xs:attribute name="onmouseout" type="Script"/>
|
||||
<xs:attribute name="onkeypress" type="Script"/>
|
||||
<xs:attribute name="onkeydown" type="Script"/>
|
||||
<xs:attribute name="onkeyup" type="Script"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:attributeGroup name="focus">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
attributes for elements that can get the focus
|
||||
accesskey accessibility key character
|
||||
tabindex position in tabbing order
|
||||
onfocus the element got the focus
|
||||
onblur the element lost the focus
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="accesskey" type="Character"/>
|
||||
<xs:attribute name="tabindex" type="tabindexNumber"/>
|
||||
<xs:attribute name="onfocus" type="Script"/>
|
||||
<xs:attribute name="onblur" type="Script"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:attributeGroup name="attrs">
|
||||
<xs:attributeGroup ref="coreattrs"/>
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attributeGroup ref="events"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Text Elements ====================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:group name="special.pre">
|
||||
<xs:choice>
|
||||
<xs:element ref="br"/>
|
||||
<xs:element ref="span"/>
|
||||
<xs:element ref="bdo"/>
|
||||
<xs:element ref="map"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="special">
|
||||
<xs:choice>
|
||||
<xs:group ref="special.pre"/>
|
||||
<xs:element ref="object"/>
|
||||
<xs:element ref="img"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="fontstyle">
|
||||
<xs:choice>
|
||||
<xs:element ref="tt"/>
|
||||
<xs:element ref="i"/>
|
||||
<xs:element ref="b"/>
|
||||
<xs:element ref="big"/>
|
||||
<xs:element ref="small"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="phrase">
|
||||
<xs:choice>
|
||||
<xs:element ref="em"/>
|
||||
<xs:element ref="strong"/>
|
||||
<xs:element ref="dfn"/>
|
||||
<xs:element ref="code"/>
|
||||
<xs:element ref="q"/>
|
||||
<xs:element ref="samp"/>
|
||||
<xs:element ref="kbd"/>
|
||||
<xs:element ref="var"/>
|
||||
<xs:element ref="cite"/>
|
||||
<xs:element ref="abbr"/>
|
||||
<xs:element ref="acronym"/>
|
||||
<xs:element ref="sub"/>
|
||||
<xs:element ref="sup"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="inline.forms">
|
||||
<xs:choice>
|
||||
<xs:element ref="input"/>
|
||||
<xs:element ref="select"/>
|
||||
<xs:element ref="textarea"/>
|
||||
<xs:element ref="label"/>
|
||||
<xs:element ref="button"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="misc.inline">
|
||||
<xs:choice>
|
||||
<xs:element ref="ins"/>
|
||||
<xs:element ref="del"/>
|
||||
<xs:element ref="script"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="misc">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
these can only occur at block level
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice>
|
||||
<xs:element ref="noscript"/>
|
||||
<xs:group ref="misc.inline"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="inline">
|
||||
<xs:choice>
|
||||
<xs:element ref="a"/>
|
||||
<xs:group ref="special"/>
|
||||
<xs:group ref="fontstyle"/>
|
||||
<xs:group ref="phrase"/>
|
||||
<xs:group ref="inline.forms"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:complexType name="Inline" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
"Inline" covers inline or "text-level" elements
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="inline"/>
|
||||
<xs:group ref="misc.inline"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================== Block level elements ==============================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:group name="heading">
|
||||
<xs:choice>
|
||||
<xs:element ref="h1"/>
|
||||
<xs:element ref="h2"/>
|
||||
<xs:element ref="h3"/>
|
||||
<xs:element ref="h4"/>
|
||||
<xs:element ref="h5"/>
|
||||
<xs:element ref="h6"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="lists">
|
||||
<xs:choice>
|
||||
<xs:element ref="ul"/>
|
||||
<xs:element ref="ol"/>
|
||||
<xs:element ref="dl"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="blocktext">
|
||||
<xs:choice>
|
||||
<xs:element ref="pre"/>
|
||||
<xs:element ref="hr"/>
|
||||
<xs:element ref="blockquote"/>
|
||||
<xs:element ref="address"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="block">
|
||||
<xs:choice>
|
||||
<xs:element ref="p"/>
|
||||
<xs:group ref="heading"/>
|
||||
<xs:element ref="div"/>
|
||||
<xs:group ref="lists"/>
|
||||
<xs:group ref="blocktext"/>
|
||||
<xs:element ref="fieldset"/>
|
||||
<xs:element ref="table"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:complexType name="Block">
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="block"/>
|
||||
<xs:element ref="form"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="Flow" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
"Flow" mixes block and inline and is used for list items etc.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="block"/>
|
||||
<xs:element ref="form"/>
|
||||
<xs:group ref="inline"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================== Content models for exclusions =====================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:complexType name="a.content" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a elements use "Inline" excluding a
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="special"/>
|
||||
<xs:group ref="fontstyle"/>
|
||||
<xs:group ref="phrase"/>
|
||||
<xs:group ref="inline.forms"/>
|
||||
<xs:group ref="misc.inline"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="pre.content" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
pre uses "Inline" excluding big, small, sup or sup
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="a"/>
|
||||
<xs:group ref="fontstyle"/>
|
||||
<xs:group ref="phrase"/>
|
||||
<xs:group ref="special.pre"/>
|
||||
<xs:group ref="misc.inline"/>
|
||||
<xs:group ref="inline.forms"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="form.content">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
form uses "Block" excluding form
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="block"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="button.content" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
button uses "Flow" but excludes a, form and form controls
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="p"/>
|
||||
<xs:group ref="heading"/>
|
||||
<xs:element ref="div"/>
|
||||
<xs:group ref="lists"/>
|
||||
<xs:group ref="blocktext"/>
|
||||
<xs:element ref="table"/>
|
||||
<xs:group ref="special"/>
|
||||
<xs:group ref="fontstyle"/>
|
||||
<xs:group ref="phrase"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================ Document Structure ==================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="html">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="head"/>
|
||||
<xs:element ref="body"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================ Document Head =======================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:group name="head.misc">
|
||||
<xs:sequence>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="script"/>
|
||||
<xs:element ref="style"/>
|
||||
<xs:element ref="meta"/>
|
||||
<xs:element ref="link"/>
|
||||
<xs:element ref="object"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
</xs:group>
|
||||
|
||||
<xs:element name="head">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
content model is "head.misc" combined with a single
|
||||
title and an optional base element in any order
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:group ref="head.misc"/>
|
||||
<xs:choice>
|
||||
<xs:sequence>
|
||||
<xs:element ref="title"/>
|
||||
<xs:group ref="head.misc"/>
|
||||
<xs:sequence minOccurs="0">
|
||||
<xs:element ref="base"/>
|
||||
<xs:group ref="head.misc"/>
|
||||
</xs:sequence>
|
||||
</xs:sequence>
|
||||
<xs:sequence>
|
||||
<xs:element ref="base"/>
|
||||
<xs:group ref="head.misc"/>
|
||||
<xs:element ref="title"/>
|
||||
<xs:group ref="head.misc"/>
|
||||
</xs:sequence>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="profile" type="URI"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="title">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The title element is not considered part of the flow of text.
|
||||
It should be displayed, for example as the page header or
|
||||
window title. Exactly one title is required per document.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="base">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
document base URI
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attribute name="href" use="required" type="URI"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="meta">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
generic metainformation
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="http-equiv"/>
|
||||
<xs:attribute name="name"/>
|
||||
<xs:attribute name="content" use="required"/>
|
||||
<xs:attribute name="scheme"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="link">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Relationship values can be used in principle:
|
||||
|
||||
a) for document specific toolbars/menus when used
|
||||
with the link element in document head e.g.
|
||||
start, contents, previous, next, index, end, help
|
||||
b) to link to a separate style sheet (rel="stylesheet")
|
||||
c) to make a link to a script (rel="script")
|
||||
d) by stylesheets to control how collections of
|
||||
html nodes are rendered into printed documents
|
||||
e) to make a link to a printable version of this document
|
||||
e.g. a PostScript or PDF version (rel="alternate" media="print")
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="charset" type="Charset"/>
|
||||
<xs:attribute name="href" type="URI"/>
|
||||
<xs:attribute name="hreflang" type="LanguageCode"/>
|
||||
<xs:attribute name="type" type="ContentType"/>
|
||||
<xs:attribute name="rel" type="LinkTypes"/>
|
||||
<xs:attribute name="rev" type="LinkTypes"/>
|
||||
<xs:attribute name="media" type="MediaDesc"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="style">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
style info, which may include CDATA sections
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="type" use="required" type="ContentType"/>
|
||||
<xs:attribute name="media" type="MediaDesc"/>
|
||||
<xs:attribute name="title" type="Text"/>
|
||||
<xs:attribute ref="xml:space" fixed="preserve"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="script">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
script statements, which may include CDATA sections
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="charset" type="Charset"/>
|
||||
<xs:attribute name="type" use="required" type="ContentType"/>
|
||||
<xs:attribute name="src" type="URI"/>
|
||||
<xs:attribute name="defer">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="defer"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute ref="xml:space" fixed="preserve"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="noscript">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
alternate content container for non script-based rendering
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Block">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Document Body ====================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="body">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Block">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="onload" type="Script"/>
|
||||
<xs:attribute name="onunload" type="Script"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="div">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
generic language/style container
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Paragraphs =======================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="p">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Headings =========================================
|
||||
|
||||
There are six levels of headings from h1 (the most important)
|
||||
to h6 (the least important).
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="h1">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="h2">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="h3">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="h4">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="h5">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="h6">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Lists ============================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="ul">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Unordered list
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="li"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="ol">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Ordered (numbered) list
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="li"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="li">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
list item
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
definition lists - dt for term, dd for its definition
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="dl">
|
||||
<xs:complexType>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element ref="dt"/>
|
||||
<xs:element ref="dd"/>
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="dt">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="dd">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Address ==========================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="address">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
information on author
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Horizontal Rule ==================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="hr">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Preformatted Text ================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="pre">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
content is "Inline" excluding "img|object|big|small|sub|sup"
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="pre.content">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute ref="xml:space" fixed="preserve"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Block-like Quotes ================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="blockquote">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Block">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="cite" type="URI"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Inserted/Deleted Text ============================
|
||||
|
||||
ins/del are allowed in block and inline content, but its
|
||||
inappropriate to include block content within an ins element
|
||||
occurring in inline content.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="ins">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="cite" type="URI"/>
|
||||
<xs:attribute name="datetime" type="Datetime"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="del">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="cite" type="URI"/>
|
||||
<xs:attribute name="datetime" type="Datetime"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================== The Anchor Element ================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="a">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
content is "Inline" except that anchors shouldn't be nested
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="a.content">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="focus"/>
|
||||
<xs:attribute name="charset" type="Charset"/>
|
||||
<xs:attribute name="type" type="ContentType"/>
|
||||
<xs:attribute name="name" type="xs:NMTOKEN"/>
|
||||
<xs:attribute name="href" type="URI"/>
|
||||
<xs:attribute name="hreflang" type="LanguageCode"/>
|
||||
<xs:attribute name="rel" type="LinkTypes"/>
|
||||
<xs:attribute name="rev" type="LinkTypes"/>
|
||||
<!--
|
||||
<xs:attribute name="shape" default="rect" type="Shape"/>
|
||||
-->
|
||||
<xs:attribute name="coords" type="Coords"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
===================== Inline Elements ================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="span">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
generic language/style container
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="bdo">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
I18N BiDi over-ride
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="coreattrs"/>
|
||||
<xs:attributeGroup ref="events"/>
|
||||
<xs:attribute name="lang" type="LanguageCode"/>
|
||||
<xs:attribute ref="xml:lang"/>
|
||||
<xs:attribute name="dir" use="required">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="ltr"/>
|
||||
<xs:enumeration value="rtl"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="br">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
forced line break
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="coreattrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="em">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
emphasis
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="strong">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
strong emphasis
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="dfn">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
definitional
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="code">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
program code
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="samp">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
sample
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="kbd">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
something user would type
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="var">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
variable
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="cite">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
citation
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="abbr">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
abbreviation
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="acronym">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
acronym
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="q">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
inlined quote
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="cite" type="URI"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="sub">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
subscript
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="sup">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
superscript
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="tt">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
fixed pitch font
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="i">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
italic font
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="b">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
bold font
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="big">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
bigger font
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="small">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
smaller font
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
==================== Object ======================================
|
||||
|
||||
object is used to embed objects as part of HTML pages.
|
||||
param elements should precede other content. Parameters
|
||||
can also be expressed as attribute/value pairs on the
|
||||
object element itself when brevity is desired.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="object">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="param"/>
|
||||
<xs:group ref="block"/>
|
||||
<xs:element ref="form"/>
|
||||
<xs:group ref="inline"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="declare">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="declare"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="classid" type="URI"/>
|
||||
<xs:attribute name="codebase" type="URI"/>
|
||||
<xs:attribute name="data" type="URI"/>
|
||||
<xs:attribute name="type" type="ContentType"/>
|
||||
<xs:attribute name="codetype" type="ContentType"/>
|
||||
<xs:attribute name="archive" type="UriList"/>
|
||||
<xs:attribute name="standby" type="Text"/>
|
||||
<xs:attribute name="height" type="Length"/>
|
||||
<xs:attribute name="width" type="Length"/>
|
||||
<xs:attribute name="usemap" type="URI"/>
|
||||
<xs:attribute name="name" type="xs:NMTOKEN"/>
|
||||
<xs:attribute name="tabindex" type="tabindexNumber"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="param">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
param is used to supply a named property value.
|
||||
In XML it would seem natural to follow RDF and support an
|
||||
abbreviated syntax where the param elements are replaced
|
||||
by attribute value pairs on the object start tag.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="name"/>
|
||||
<xs:attribute name="value"/>
|
||||
<xs:attribute name="valuetype" default="data">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="data"/>
|
||||
<xs:enumeration value="ref"/>
|
||||
<xs:enumeration value="object"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="type" type="ContentType"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Images ===========================================
|
||||
|
||||
To avoid accessibility problems for people who aren't
|
||||
able to see the image, you should provide a text
|
||||
description using the alt and longdesc attributes.
|
||||
In addition, avoid the use of server-side image maps.
|
||||
Note that in this DTD there is no name attribute. That
|
||||
is only available in the transitional and frameset DTD.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="img">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="src" use="required" type="URI"/>
|
||||
<xs:attribute name="alt" use="required" type="Text"/>
|
||||
<xs:attribute name="longdesc" type="URI"/>
|
||||
<xs:attribute name="height" type="Length"/>
|
||||
<xs:attribute name="width" type="Length"/>
|
||||
<xs:attribute name="usemap" type="URI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
usemap points to a map element which may be in this document
|
||||
or an external document, although the latter is not widely supported
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ismap">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="ismap"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================== Client-side image maps ============================
|
||||
|
||||
These can be placed in the same document or grouped in a
|
||||
separate document although this isn't yet widely supported
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="map">
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:group ref="block"/>
|
||||
<xs:element ref="form"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
<xs:element maxOccurs="unbounded" ref="area"/>
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attributeGroup ref="events"/>
|
||||
<xs:attribute name="id" use="required" type="xs:ID"/>
|
||||
<xs:attribute name="class"/>
|
||||
<xs:attribute name="style" type="StyleSheet"/>
|
||||
<xs:attribute name="title" type="Text"/>
|
||||
<xs:attribute name="name" type="xs:NMTOKEN"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="area">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="focus"/>
|
||||
<xs:attribute name="shape" type="Shape"/>
|
||||
<!--
|
||||
<xs:attribute name="shape" default="rect" type="Shape"/>
|
||||
-->
|
||||
<xs:attribute name="coords" type="Coords"/>
|
||||
<xs:attribute name="href" type="URI"/>
|
||||
<xs:attribute name="nohref">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="nohref"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="alt" use="required" type="Text"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================ Forms ===============================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="form">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="form.content">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="action" use="required" type="URI"/>
|
||||
<!--
|
||||
<xs:attribute name="method" default="get">
|
||||
-->
|
||||
<xs:attribute name="method">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="get"/>
|
||||
<xs:enumeration value="post"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<!--
|
||||
<xs:attribute name="enctype" type="ContentType"
|
||||
default="application/x-www-form-urlencoded"/>
|
||||
-->
|
||||
<xs:attribute name="enctype" type="ContentType"/>
|
||||
<xs:attribute name="onsubmit" type="Script"/>
|
||||
<xs:attribute name="onreset" type="Script"/>
|
||||
<xs:attribute name="accept" type="ContentTypes"/>
|
||||
<xs:attribute name="accept-charset" type="Charsets"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="label">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Each label must not contain more than ONE field
|
||||
Label elements shouldn't be nested.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="for" type="xs:IDREF"/>
|
||||
<xs:attribute name="accesskey" type="Character"/>
|
||||
<xs:attribute name="onfocus" type="Script"/>
|
||||
<xs:attribute name="onblur" type="Script"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:simpleType name="InputType">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="text"/>
|
||||
<xs:enumeration value="password"/>
|
||||
<xs:enumeration value="checkbox"/>
|
||||
<xs:enumeration value="radio"/>
|
||||
<xs:enumeration value="submit"/>
|
||||
<xs:enumeration value="reset"/>
|
||||
<xs:enumeration value="file"/>
|
||||
<xs:enumeration value="hidden"/>
|
||||
<xs:enumeration value="image"/>
|
||||
<xs:enumeration value="button"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:element name="input">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
form control
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="focus"/>
|
||||
<xs:attribute name="type" default="text" type="InputType"/>
|
||||
<xs:attribute name="name">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
the name attribute is required for all but submit & reset
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="value"/>
|
||||
<xs:attribute name="checked">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="checked"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="readonly">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="readonly"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="size"/>
|
||||
<xs:attribute name="maxlength" type="Number"/>
|
||||
<xs:attribute name="src" type="URI"/>
|
||||
<xs:attribute name="alt"/>
|
||||
<xs:attribute name="usemap" type="URI"/>
|
||||
<xs:attribute name="onselect" type="Script"/>
|
||||
<xs:attribute name="onchange" type="Script"/>
|
||||
<xs:attribute name="accept" type="ContentTypes"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="select">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
option selector
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element ref="optgroup"/>
|
||||
<xs:element ref="option"/>
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="name"/>
|
||||
<xs:attribute name="size" type="Number"/>
|
||||
<xs:attribute name="multiple">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="multiple"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="tabindex" type="tabindexNumber"/>
|
||||
<xs:attribute name="onfocus" type="Script"/>
|
||||
<xs:attribute name="onblur" type="Script"/>
|
||||
<xs:attribute name="onchange" type="Script"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="optgroup">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
option group
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="option"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="label" use="required" type="Text"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="option">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
selectable choice
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="selected">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="selected"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="label" type="Text"/>
|
||||
<xs:attribute name="value"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="textarea">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
multi-line text field
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="focus"/>
|
||||
<xs:attribute name="name"/>
|
||||
<xs:attribute name="rows" use="required" type="Number"/>
|
||||
<xs:attribute name="cols" use="required" type="Number"/>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="readonly">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="readonly"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="onselect" type="Script"/>
|
||||
<xs:attribute name="onchange" type="Script"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="fieldset">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The fieldset element is used to group form fields.
|
||||
Only one legend element should occur in the content
|
||||
and if present should only be preceded by whitespace.
|
||||
|
||||
NOTE: this content model is different from the XHTML 1.0 DTD,
|
||||
closer to the intended content model in HTML4 DTD
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:sequence>
|
||||
<xs:element ref="legend"/>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="block"/>
|
||||
<xs:element ref="form"/>
|
||||
<xs:group ref="inline"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="legend">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
fieldset label
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="accesskey" type="Character"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="button">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Content is "Flow" excluding a, form and form controls
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="button.content">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="focus"/>
|
||||
<xs:attribute name="name"/>
|
||||
<xs:attribute name="value"/>
|
||||
<!--
|
||||
<xs:attribute name="type" default="submit">
|
||||
-->
|
||||
<xs:attribute name="type">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="button"/>
|
||||
<xs:enumeration value="submit"/>
|
||||
<xs:enumeration value="reset"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
======================= Tables =======================================
|
||||
|
||||
Derived from IETF HTML table standard, see [RFC1942]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:simpleType name="TFrame">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The border attribute sets the thickness of the frame around the
|
||||
table. The default units are screen pixels.
|
||||
|
||||
The frame attribute specifies which parts of the frame around
|
||||
the table should be rendered. The values are not the same as
|
||||
CALS to avoid a name clash with the valign attribute.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="void"/>
|
||||
<xs:enumeration value="above"/>
|
||||
<xs:enumeration value="below"/>
|
||||
<xs:enumeration value="hsides"/>
|
||||
<xs:enumeration value="lhs"/>
|
||||
<xs:enumeration value="rhs"/>
|
||||
<xs:enumeration value="vsides"/>
|
||||
<xs:enumeration value="box"/>
|
||||
<xs:enumeration value="border"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="TRules">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The rules attribute defines which rules to draw between cells:
|
||||
|
||||
If rules is absent then assume:
|
||||
"none" if border is absent or border="0" otherwise "all"
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="none"/>
|
||||
<xs:enumeration value="groups"/>
|
||||
<xs:enumeration value="rows"/>
|
||||
<xs:enumeration value="cols"/>
|
||||
<xs:enumeration value="all"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:attributeGroup name="cellhalign">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
horizontal alignment attributes for cell contents
|
||||
|
||||
char alignment char, e.g. char=':'
|
||||
charoff offset for alignment char
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="align">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="left"/>
|
||||
<xs:enumeration value="center"/>
|
||||
<xs:enumeration value="right"/>
|
||||
<xs:enumeration value="justify"/>
|
||||
<xs:enumeration value="char"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="char" type="Character"/>
|
||||
<xs:attribute name="charoff" type="Length"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:attributeGroup name="cellvalign">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
vertical alignment attributes for cell contents
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="valign">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="top"/>
|
||||
<xs:enumeration value="middle"/>
|
||||
<xs:enumeration value="bottom"/>
|
||||
<xs:enumeration value="baseline"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:element name="table">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" ref="caption"/>
|
||||
<xs:choice>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup"/>
|
||||
</xs:choice>
|
||||
<xs:element minOccurs="0" ref="thead"/>
|
||||
<xs:element minOccurs="0" ref="tfoot"/>
|
||||
<xs:choice>
|
||||
<xs:element maxOccurs="unbounded" ref="tbody"/>
|
||||
<xs:element maxOccurs="unbounded" ref="tr"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="summary" type="Text"/>
|
||||
<xs:attribute name="width" type="Length"/>
|
||||
<xs:attribute name="border" type="Pixels"/>
|
||||
<xs:attribute name="frame" type="TFrame"/>
|
||||
<xs:attribute name="rules" type="TRules"/>
|
||||
<xs:attribute name="cellspacing" type="Length"/>
|
||||
<xs:attribute name="cellpadding" type="Length"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="caption">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Use thead to duplicate headers when breaking table
|
||||
across page boundaries, or for static headers when
|
||||
tbody sections are rendered in scrolling panel.
|
||||
|
||||
Use tfoot to duplicate footers when breaking table
|
||||
across page boundaries, or for static footers when
|
||||
tbody sections are rendered in scrolling panel.
|
||||
|
||||
Use multiple tbody sections when rules are needed
|
||||
between groups of table rows.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="thead">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="tr"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="tfoot">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="tr"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="tbody">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="tr"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="colgroup">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
colgroup groups a set of col elements. It allows you to group
|
||||
several semantically related columns together.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<!--
|
||||
<xs:attribute name="span" default="1" type="Number"/>
|
||||
-->
|
||||
<xs:attribute name="span" type="Number"/>
|
||||
<xs:attribute name="width" type="MultiLength"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="col">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
col elements define the alignment properties for cells in
|
||||
one or more columns.
|
||||
|
||||
The width attribute specifies the width of the columns, e.g.
|
||||
|
||||
width=64 width in screen pixels
|
||||
width=0.5* relative width of 0.5
|
||||
|
||||
The span attribute causes the attributes of one
|
||||
col element to apply to more than one column.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<!--
|
||||
<xs:attribute name="span" default="1" type="Number"/>
|
||||
-->
|
||||
<xs:attribute name="span" type="Number"/>
|
||||
<xs:attribute name="width" type="MultiLength"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="tr">
|
||||
<xs:complexType>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element ref="th"/>
|
||||
<xs:element ref="td"/>
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:simpleType name="Scope">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Scope is simpler than headers attribute for common tables
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="row"/>
|
||||
<xs:enumeration value="col"/>
|
||||
<xs:enumeration value="rowgroup"/>
|
||||
<xs:enumeration value="colgroup"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
th is for headers, td for data and for cells acting as both
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="th">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="abbr" type="Text"/>
|
||||
<xs:attribute name="axis"/>
|
||||
<xs:attribute name="headers" type="xs:IDREFS"/>
|
||||
<xs:attribute name="scope" type="Scope"/>
|
||||
<!--
|
||||
<xs:attribute name="rowspan" default="1" type="Number"/>
|
||||
<xs:attribute name="colspan" default="1" type="Number"/>
|
||||
-->
|
||||
<xs:attribute name="rowspan" type="Number"/>
|
||||
<xs:attribute name="colspan" type="Number"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="td">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="abbr" type="Text"/>
|
||||
<xs:attribute name="axis"/>
|
||||
<xs:attribute name="headers" type="xs:IDREFS"/>
|
||||
<xs:attribute name="scope" type="Scope"/>
|
||||
<!--
|
||||
<xs:attribute name="rowspan" default="1" type="Number"/>
|
||||
<xs:attribute name="colspan" default="1" type="Number"/>
|
||||
-->
|
||||
<xs:attribute name="rowspan" type="Number"/>
|
||||
<xs:attribute name="colspan" type="Number"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
</xs:schema>
|
||||
@@ -1,287 +0,0 @@
|
||||
<?xml version='1.0'?>
|
||||
<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
|
||||
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns ="http://www.w3.org/1999/xhtml"
|
||||
xml:lang="en">
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
<h1>About the XML namespace</h1>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
This schema document describes the XML namespace, in a form
|
||||
suitable for import by other schema documents.
|
||||
</p>
|
||||
<p>
|
||||
See <a href="http://www.w3.org/XML/1998/namespace.html">
|
||||
http://www.w3.org/XML/1998/namespace.html</a> and
|
||||
<a href="http://www.w3.org/TR/REC-xml">
|
||||
http://www.w3.org/TR/REC-xml</a> for information
|
||||
about this namespace.
|
||||
</p>
|
||||
<p>
|
||||
Note that local names in this namespace are intended to be
|
||||
defined only by the World Wide Web Consortium or its subgroups.
|
||||
The names currently defined in this namespace are listed below.
|
||||
They should not be used with conflicting semantics by any Working
|
||||
Group, specification, or document instance.
|
||||
</p>
|
||||
<p>
|
||||
See further below in this document for more information about <a
|
||||
href="#usage">how to refer to this schema document from your own
|
||||
XSD schema documents</a> and about <a href="#nsversioning">the
|
||||
namespace-versioning policy governing this schema document</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:attribute name="lang">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>lang (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
is a language code for the natural language of the content of
|
||||
any element; its value is inherited. This name is reserved
|
||||
by virtue of its definition in the XML specification.</p>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Notes</h4>
|
||||
<p>
|
||||
Attempting to install the relevant ISO 2- and 3-letter
|
||||
codes as the enumerated possible values is probably never
|
||||
going to be a realistic possibility.
|
||||
</p>
|
||||
<p>
|
||||
See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
|
||||
http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
|
||||
and the IANA language subtag registry at
|
||||
<a href="http://www.iana.org/assignments/language-subtag-registry">
|
||||
http://www.iana.org/assignments/language-subtag-registry</a>
|
||||
for further information.
|
||||
</p>
|
||||
<p>
|
||||
The union allows for the 'un-declaration' of xml:lang with
|
||||
the empty string.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:union memberTypes="xs:language">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value=""/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="space">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>space (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose
|
||||
value is a keyword indicating what whitespace processing
|
||||
discipline is intended for the content of the element; its
|
||||
value is inherited. This name is reserved by virtue of its
|
||||
definition in the XML specification.</p>
|
||||
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:NCName">
|
||||
<xs:enumeration value="default"/>
|
||||
<xs:enumeration value="preserve"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>base (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
provides a URI to be used as the base for interpreting any
|
||||
relative URIs in the scope of the element on which it
|
||||
appears; its value is inherited. This name is reserved
|
||||
by virtue of its definition in the XML Base specification.</p>
|
||||
|
||||
<p>
|
||||
See <a
|
||||
href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
|
||||
for information about this attribute.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="id" type="xs:ID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>id (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
should be interpreted as if declared to be of type ID.
|
||||
This name is reserved by virtue of its definition in the
|
||||
xml:id specification.</p>
|
||||
|
||||
<p>
|
||||
See <a
|
||||
href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
|
||||
for information about this attribute.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attributeGroup name="specialAttrs">
|
||||
<xs:attribute ref="xml:base"/>
|
||||
<xs:attribute ref="xml:lang"/>
|
||||
<xs:attribute ref="xml:space"/>
|
||||
<xs:attribute ref="xml:id"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>Father (in any context at all)</h3>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
denotes Jon Bosak, the chair of
|
||||
the original XML Working Group. This name is reserved by
|
||||
the following decision of the W3C XML Plenary and
|
||||
XML Coordination groups:
|
||||
</p>
|
||||
<blockquote>
|
||||
<p>
|
||||
In appreciation for his vision, leadership and
|
||||
dedication the W3C XML Plenary on this 10th day of
|
||||
February, 2000, reserves for Jon Bosak in perpetuity
|
||||
the XML name "xml:Father".
|
||||
</p>
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div xml:id="usage" id="usage">
|
||||
<h2><a name="usage">About this schema document</a></h2>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
This schema defines attributes and an attribute group suitable
|
||||
for use by schemas wishing to allow <code>xml:base</code>,
|
||||
<code>xml:lang</code>, <code>xml:space</code> or
|
||||
<code>xml:id</code> attributes on elements they define.
|
||||
</p>
|
||||
<p>
|
||||
To enable this, such a schema must import this schema for
|
||||
the XML namespace, e.g. as follows:
|
||||
</p>
|
||||
<pre>
|
||||
<schema . . .>
|
||||
. . .
|
||||
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||
</pre>
|
||||
<p>
|
||||
or
|
||||
</p>
|
||||
<pre>
|
||||
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||
schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
|
||||
</pre>
|
||||
<p>
|
||||
Subsequently, qualified reference to any of the attributes or the
|
||||
group defined below will have the desired effect, e.g.
|
||||
</p>
|
||||
<pre>
|
||||
<type . . .>
|
||||
. . .
|
||||
<attributeGroup ref="xml:specialAttrs"/>
|
||||
</pre>
|
||||
<p>
|
||||
will define a type which will schema-validate an instance element
|
||||
with any of those attributes.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div id="nsversioning" xml:id="nsversioning">
|
||||
<h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
In keeping with the XML Schema WG's standard versioning
|
||||
policy, this schema document will persist at
|
||||
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd</a>.
|
||||
</p>
|
||||
<p>
|
||||
At the date of issue it can also be found at
|
||||
<a href="http://www.w3.org/2001/xml.xsd">
|
||||
http://www.w3.org/2001/xml.xsd</a>.
|
||||
</p>
|
||||
<p>
|
||||
The schema document at that URI may however change in the future,
|
||||
in order to remain compatible with the latest version of XML
|
||||
Schema itself, or with the XML namespace itself. In other words,
|
||||
if the XML Schema or XML namespaces change, the version of this
|
||||
document at <a href="http://www.w3.org/2001/xml.xsd">
|
||||
http://www.w3.org/2001/xml.xsd
|
||||
</a>
|
||||
will change accordingly; the version at
|
||||
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd
|
||||
</a>
|
||||
will not change.
|
||||
</p>
|
||||
<p>
|
||||
Previous dated (and unchanging) versions of this schema
|
||||
document are at:
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2007/08/xml.xsd">
|
||||
http://www.w3.org/2007/08/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2004/10/xml.xsd">
|
||||
http://www.w3.org/2004/10/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2001/03/xml.xsd">
|
||||
http://www.w3.org/2001/03/xml.xsd</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
</xs:schema>
|
||||
|
||||
|
Before Width: | Height: | Size: 825 B |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 827 B |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 484 B |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 95 B |
|
Before Width: | Height: | Size: 281 B |
|
Before Width: | Height: | Size: 670 B |
|
Before Width: | Height: | Size: 318 B |
|
Before Width: | Height: | Size: 627 B |
|
Before Width: | Height: | Size: 224 B |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 110 B |
@@ -14,6 +14,11 @@ android {
|
||||
storePassword "xmbox123"
|
||||
keyAlias "xmbox"
|
||||
keyPassword "xmbox123"
|
||||
// 同时启用v1、v2、v3、v4签名以确保最佳兼容性
|
||||
enableV1Signing true
|
||||
enableV2Signing true
|
||||
enableV3Signing true
|
||||
enableV4Signing true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,8 +27,8 @@ android {
|
||||
minSdk 24
|
||||
//noinspection ExpiredTargetSdkVersion
|
||||
targetSdk 28
|
||||
versionCode 305
|
||||
versionName "3.0.5"
|
||||
versionCode 309
|
||||
versionName "3.0.9"
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments = ["room.schemaLocation": "$projectDir/schemas".toString(), "eventBusIndex": "com.fongmi.android.tv.event.EventIndex"]
|
||||
@@ -108,7 +113,7 @@ dependencies {
|
||||
implementation project(':catvod')
|
||||
// implementation project(':chaquo') // 移除Python支持减少8-10MB体积
|
||||
implementation project(':quickjs')
|
||||
implementation 'androidx.appcompat:appcompat:1.7.1'
|
||||
implementation 'androidx.appcompat:appcompat:1.7.0'
|
||||
implementation 'androidx.media:media:1.7.0'
|
||||
implementation 'androidx.media3:media3-common:' + media3Version
|
||||
implementation 'androidx.media3:media3-container:' + media3Version
|
||||
@@ -125,7 +130,7 @@ dependencies {
|
||||
implementation 'androidx.media3:media3-exoplayer-smoothstreaming:' + media3Version
|
||||
implementation 'androidx.media3:media3-extractor:' + media3Version
|
||||
implementation 'androidx.media3:media3-ui:' + media3Version
|
||||
implementation 'androidx.room:room-runtime:2.7.2'
|
||||
implementation 'androidx.room:room-runtime:2.6.1'
|
||||
implementation 'cat.ereza:customactivityoncrash:2.4.0'
|
||||
implementation 'io.github.anilbeesetti:nextlib-media3ext:1.8.0-0.9.0'
|
||||
implementation 'com.github.bassaer:materialdesigncolors:1.0.0'
|
||||
@@ -136,11 +141,11 @@ dependencies {
|
||||
implementation 'com.github.jahirfiquitiva:TextDrawable:1.0.3'
|
||||
implementation 'com.github.thegrizzlylabs:sardine-android:0.9'
|
||||
implementation 'com.github.teamnewpipe:NewPipeExtractor:v0.24.8'
|
||||
implementation 'com.google.android.material:material:1.12.0'
|
||||
implementation 'com.google.android.material:material:1.11.0'
|
||||
implementation 'com.google.zxing:core:3.5.3'
|
||||
implementation 'com.guolindev.permissionx:permissionx:1.8.1'
|
||||
implementation 'com.hierynomus:smbj:0.14.0'
|
||||
implementation 'io.antmedia:rtmp-client:3.2.0'
|
||||
implementation 'com.guolindev.permissionx:permissionx:1.7.1'
|
||||
implementation 'com.hierynomus:smbj:0.13.0'
|
||||
implementation 'io.antmedia:rtmp-client:3.1.0'
|
||||
implementation 'javax.servlet:javax.servlet-api:3.1.0'
|
||||
implementation 'org.aomedia.avif.android:avif:1.1.1.14d8e3c4'
|
||||
implementation 'org.eclipse.jetty:jetty-client:8.1.21.v20160908'
|
||||
@@ -157,9 +162,10 @@ dependencies {
|
||||
mobileImplementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
||||
mobileImplementation 'com.google.android.flexbox:flexbox:3.0.0'
|
||||
mobileImplementation('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false }
|
||||
annotationProcessor 'androidx.room:room-compiler:2.7.2'
|
||||
annotationProcessor 'androidx.room:room-compiler:2.6.1'
|
||||
// annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'
|
||||
annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.3.1'
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.5'
|
||||
implementation 'io.noties.markwon:core:4.6.2'
|
||||
implementation 'com.airbnb.android:lottie:5.2.0'
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.fongmi.android.tv;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
@@ -14,6 +16,7 @@ import com.fongmi.android.tv.utils.Notify;
|
||||
import com.fongmi.android.tv.utils.ResUtil;
|
||||
import com.github.catvod.net.OkHttp;
|
||||
import com.github.catvod.utils.Github;
|
||||
import com.github.catvod.utils.Logger;
|
||||
import com.github.catvod.utils.Path;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
|
||||
@@ -28,9 +31,10 @@ public class Updater implements Download.Callback {
|
||||
private final Download download;
|
||||
private AlertDialog dialog;
|
||||
private boolean dev;
|
||||
private boolean forceCheck; // 是否为手动检查
|
||||
|
||||
private File getFile() {
|
||||
return Path.cache("update.apk");
|
||||
return Path.root("Download", "XMBOX-update.apk");
|
||||
}
|
||||
|
||||
private String getJson() {
|
||||
@@ -38,6 +42,26 @@ public class Updater implements Download.Callback {
|
||||
}
|
||||
|
||||
private String getApk() {
|
||||
// 使用JSON中指定的具体下载路径
|
||||
try {
|
||||
String response = OkHttp.string(getJson());
|
||||
JSONObject object = new JSONObject(response);
|
||||
JSONObject downloads = object.optJSONObject("downloads");
|
||||
if (downloads != null) {
|
||||
String abi = BuildConfig.FLAVOR_abi;
|
||||
String downloadPath = downloads.optString(abi);
|
||||
if (!downloadPath.isEmpty()) {
|
||||
// 直接构建完整URL,不通过Github.getApk()避免重复添加路径
|
||||
String baseUrl = Github.useCnMirror() ?
|
||||
"https://gitee.com/ochenoktochen/XMBOX-Release/raw/main" :
|
||||
"https://raw.githubusercontent.com/Tosencen/XMBOX-Release/main";
|
||||
return baseUrl + "/apk/" + (dev ? "dev" : "release") + "/" + downloadPath;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.e("Failed to get download path from JSON: " + e.getMessage());
|
||||
}
|
||||
// 回退到原来的方式
|
||||
return Github.getApk(dev, BuildConfig.FLAVOR_mode + "-" + BuildConfig.FLAVOR_abi);
|
||||
}
|
||||
|
||||
@@ -47,11 +71,13 @@ public class Updater implements Download.Callback {
|
||||
|
||||
public Updater() {
|
||||
this.download = Download.create(getApk(), getFile(), this);
|
||||
this.forceCheck = false;
|
||||
}
|
||||
|
||||
public Updater force() {
|
||||
Notify.show(R.string.update_check);
|
||||
Setting.putUpdate(true);
|
||||
this.forceCheck = true; // 标记为手动检查
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -80,38 +106,82 @@ public class Updater implements Download.Callback {
|
||||
|
||||
private void doInBackground(Activity activity) {
|
||||
try {
|
||||
String response = OkHttp.string(getJson());
|
||||
// 直接使用GitHub Releases API检测最新版本
|
||||
String releasesUrl = "https://api.github.com/repos/Tosencen/XMBOX/releases/latest";
|
||||
String response = OkHttp.string(releasesUrl);
|
||||
|
||||
// 检查响应是否包含错误信息
|
||||
if (response.contains("rate limit exceeded")) {
|
||||
App.post(() -> Notify.show("检查更新失败:API请求过于频繁,请稍后重试"));
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("检查更新失败:API请求过于频繁,请稍后重试"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (response.contains("Not Found Project") || response.contains("Not Found")) {
|
||||
App.post(() -> Notify.show("检查更新失败:更新服务暂时不可用"));
|
||||
if (response.contains("Not Found") || response.contains("404")) {
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("检查更新失败:更新服务暂时不可用"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
JSONObject object = new JSONObject(response);
|
||||
String name = object.optString("name");
|
||||
String desc = object.optString("desc");
|
||||
int code = object.optInt("code");
|
||||
if (need(code, name)) App.post(() -> show(activity, name, desc));
|
||||
JSONObject release = new JSONObject(response);
|
||||
String tagName = release.optString("tag_name");
|
||||
String body = release.optString("body");
|
||||
|
||||
// 提取版本号(去掉v前缀)
|
||||
String version = tagName.startsWith("v") ? tagName.substring(1) : tagName;
|
||||
|
||||
if (needUpdate(version)) {
|
||||
App.post(() -> show(activity, version, body));
|
||||
} else {
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("已是最新版本 " + version));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
// 添加用户友好的错误提示
|
||||
App.post(() -> {
|
||||
String errorMsg = "检查更新失败";
|
||||
if (e.getMessage() != null && e.getMessage().contains("rate limit")) {
|
||||
errorMsg = "检查更新失败:请求过于频繁,请稍后重试";
|
||||
} else if (e.getMessage() != null && e.getMessage().contains("Not Found")) {
|
||||
errorMsg = "检查更新失败:更新服务暂时不可用";
|
||||
} else {
|
||||
errorMsg = "检查更新失败,请稍后重试";
|
||||
if (forceCheck) {
|
||||
App.post(() -> {
|
||||
String errorMsg = "检查更新失败";
|
||||
if (e.getMessage() != null && e.getMessage().contains("rate limit")) {
|
||||
errorMsg = "检查更新失败:请求过于频繁,请稍后重试";
|
||||
} else if (e.getMessage() != null && e.getMessage().contains("Not Found")) {
|
||||
errorMsg = "检查更新失败:更新服务暂时不可用";
|
||||
} else {
|
||||
errorMsg = "检查更新失败,请稍后重试";
|
||||
}
|
||||
Notify.show(errorMsg);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean needUpdate(String remoteVersion) {
|
||||
if (!Setting.getUpdate()) return false;
|
||||
|
||||
try {
|
||||
// 简单的版本号比较,假设版本格式为 x.y.z
|
||||
String[] remoteParts = remoteVersion.split("\\.");
|
||||
String[] localParts = BuildConfig.VERSION_NAME.split("\\.");
|
||||
|
||||
// 确保两个版本号都有足够的段
|
||||
int maxLength = Math.max(remoteParts.length, localParts.length);
|
||||
|
||||
for (int i = 0; i < maxLength; i++) {
|
||||
int remotePart = i < remoteParts.length ? Integer.parseInt(remoteParts[i]) : 0;
|
||||
int localPart = i < localParts.length ? Integer.parseInt(localParts[i]) : 0;
|
||||
|
||||
if (remotePart > localPart) {
|
||||
return true;
|
||||
} else if (remotePart < localPart) {
|
||||
return false;
|
||||
}
|
||||
Notify.show(errorMsg);
|
||||
});
|
||||
}
|
||||
return false; // 版本相同
|
||||
} catch (Exception e) {
|
||||
Logger.e("Updater: Version comparison error: " + e.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,8 +205,31 @@ public class Updater implements Download.Callback {
|
||||
}
|
||||
|
||||
private void confirm(View view) {
|
||||
binding.confirm.setEnabled(false);
|
||||
download.start();
|
||||
// 跳转到GitHub Releases页面而不是直接下载
|
||||
try {
|
||||
String url = "https://github.com/Tosencen/XMBOX/releases/tag/v3.0.8";
|
||||
Logger.d("Updater: Attempting to open URL: " + url);
|
||||
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(url));
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
||||
// 检查是否有应用可以处理这个Intent
|
||||
if (intent.resolveActivity(App.get().getPackageManager()) != null) {
|
||||
App.get().startActivity(intent);
|
||||
Logger.d("Updater: Successfully started browser intent");
|
||||
dismiss();
|
||||
} else {
|
||||
Logger.e("Updater: No app can handle the URL");
|
||||
Notify.show("没有找到可以打开链接的应用,请手动访问GitHub下载");
|
||||
dismiss();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.e("Updater: Failed to open GitHub releases page: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
Notify.show("无法打开更新页面,请手动访问GitHub下载");
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
private void dismiss() {
|
||||
|
||||
@@ -99,8 +99,17 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
|
||||
mBinding.dohText.setText(getDohList()[getDohIndex()]);
|
||||
mBinding.proxyText.setText(getProxy(Setting.getProxy()));
|
||||
mBinding.incognitoText.setText(getSwitch(Setting.isIncognito()));
|
||||
mBinding.liveTabVisibleText.setText(getSwitch(Setting.isLiveTabVisible()));
|
||||
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Setting.getSize()]);
|
||||
mBinding.qualityText.setText((quality = ResUtil.getStringArray(R.array.select_quality))[Setting.getQuality()]);
|
||||
setLiveSettingsVisibility();
|
||||
}
|
||||
|
||||
private void setLiveSettingsVisibility() {
|
||||
boolean isLiveTabVisible = !Setting.isLiveTabVisible(); // 注意:这里取反,因为开关是"隐藏直播"
|
||||
mBinding.live.setVisibility(isLiveTabVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.liveHome.setVisibility(isLiveTabVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.liveHistory.setVisibility(isLiveTabVisible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
private void setCacheText() {
|
||||
@@ -134,6 +143,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
|
||||
mBinding.wallDefault.setOnClickListener(this::setWallDefault);
|
||||
mBinding.wallRefresh.setOnClickListener(this::setWallRefresh);
|
||||
mBinding.incognito.setOnClickListener(this::setIncognito);
|
||||
mBinding.liveTabVisible.setOnClickListener(this::setLiveTabVisible);
|
||||
mBinding.quality.setOnClickListener(this::setQuality);
|
||||
mBinding.size.setOnClickListener(this::setSize);
|
||||
mBinding.doh.setOnClickListener(this::setDoh);
|
||||
@@ -304,6 +314,15 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
|
||||
mBinding.incognitoText.setText(getSwitch(Setting.isIncognito()));
|
||||
}
|
||||
|
||||
private void setLiveTabVisible(View view) {
|
||||
Setting.putLiveTabVisible(!Setting.isLiveTabVisible());
|
||||
mBinding.liveTabVisibleText.setText(getSwitch(Setting.isLiveTabVisible()));
|
||||
// 发送刷新事件,通知主界面更新导航栏
|
||||
RefreshEvent.config();
|
||||
// 更新直播设置项的可见性
|
||||
setLiveSettingsVisibility();
|
||||
}
|
||||
|
||||
private void setQuality(View view) {
|
||||
int index = Setting.getQuality();
|
||||
Setting.putQuality(index = index == quality.length - 1 ? 0 : ++index);
|
||||
|
||||
@@ -98,8 +98,8 @@ public class SiteDialog implements SiteAdapter.OnClickListener {
|
||||
if (!binding.mode.hasFocus()) {
|
||||
binding.recycler.post(() -> {
|
||||
binding.recycler.scrollToPosition(VodConfig.getHomeIndex());
|
||||
// 清除焦点,避免滚动后自动获得焦点显示黄色背景
|
||||
binding.recycler.post(() -> binding.recycler.clearFocus());
|
||||
// 请求焦点,确保选中项保持高亮状态
|
||||
binding.recycler.post(() -> binding.recycler.requestFocus());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/black" android:state_focused="true" />
|
||||
<item android:color="@color/black" android:state_activated="true" />
|
||||
<item android:color="@color/black" android:state_selected="true" />
|
||||
<item android:color="@color/black" android:state_pressed="true" />
|
||||
<item android:color="@color/white" />
|
||||
</selector>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/primary" android:state_activated="true" />
|
||||
<item android:color="@color/white" />
|
||||
</selector>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/white" android:state_focused="true" android:state_selected="true" />
|
||||
<item android:color="@color/green_400" android:state_selected="true" />
|
||||
<item android:color="@color/primary" android:state_selected="true" />
|
||||
<item android:color="@color/white" />
|
||||
</selector>
|
||||
@@ -2,6 +2,6 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="@color/green_400" />
|
||||
<solid android:color="@color/primary" />
|
||||
|
||||
</shape>
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<solid android:color="@color/black_20" />
|
||||
|
||||
<corners android:radius="4dp" />
|
||||
<corners android:radius="12dp" />
|
||||
|
||||
<padding
|
||||
android:bottom="8dp"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="@color/black_60" />
|
||||
<solid android:color="@color/primary" />
|
||||
|
||||
<corners android:radius="4dp" />
|
||||
|
||||
|
||||
@@ -265,6 +265,36 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/liveTabVisible"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:background="@drawable/selector_item"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:nextFocusDown="@id/quality"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:text="@string/setting_live_tab_visible"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="18sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/liveTabVisibleText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="end"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="18sp"
|
||||
tools:text="On" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -12,6 +12,6 @@
|
||||
android:nextFocusUp="@id/flag"
|
||||
android:nextFocusDown="@id/array"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/text"
|
||||
android:textColor="@color/episode_text"
|
||||
android:textSize="16sp"
|
||||
tools:text="20" />
|
||||
@@ -24,7 +24,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/green_a_400"
|
||||
android:textColor="@color/primary"
|
||||
android:textSize="14sp"
|
||||
tools:text="泥巴"
|
||||
tools:visibility="visible" />
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/button_text"
|
||||
android:textSize="18sp"
|
||||
android:duplicateParentState="true"
|
||||
tools:text="泥巴" />
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
|
||||
@@ -14,8 +14,11 @@
|
||||
android:valueFrom="1"
|
||||
android:valueTo="10"
|
||||
app:thumbColor="@color/primary"
|
||||
app:tickVisible="false"
|
||||
app:thumbRadius="10dp"
|
||||
app:tickVisible="true"
|
||||
app:tickColor="@color/black_50"
|
||||
app:trackColorActive="@color/primary"
|
||||
app:trackColorInactive="@color/white_30" />
|
||||
app:trackColorInactive="@color/white_20"
|
||||
app:trackHeight="4dp" />
|
||||
|
||||
</FrameLayout>
|
||||
@@ -14,8 +14,11 @@
|
||||
android:valueFrom="2"
|
||||
android:valueTo="5"
|
||||
app:thumbColor="@color/primary"
|
||||
app:tickVisible="false"
|
||||
app:thumbRadius="10dp"
|
||||
app:tickVisible="true"
|
||||
app:tickColor="@color/black_50"
|
||||
app:trackColorActive="@color/primary"
|
||||
app:trackColorInactive="@color/white_30" />
|
||||
app:trackColorInactive="@color/white_20"
|
||||
app:trackHeight="4dp" />
|
||||
|
||||
</FrameLayout>
|
||||
@@ -29,6 +29,8 @@
|
||||
android:nextFocusUp="@id/next"
|
||||
android:nextFocusDown="@id/timeBar"
|
||||
app:bar_height="2dp"
|
||||
app:scrubber_enabled_size="12dp"
|
||||
app:scrubber_disabled_size="12dp"
|
||||
app:played_color="#FFEB3B"
|
||||
app:scrubber_color="#FFEB3B"
|
||||
app:buffered_color="#80FFEB3B"
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<item name="colorPrimary">@color/primary</item>
|
||||
<item name="colorPrimaryDark">@color/primaryDark</item>
|
||||
<item name="colorAccent">@color/accent</item>
|
||||
<item name="colorControlHighlight">@color/primary</item>
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
<item name="android:windowBackground">@null</item>
|
||||
<item name="android:windowDisablePreview">true</item>
|
||||
|
||||
@@ -126,7 +126,6 @@ public class App extends Application {
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
Notify.createChannel();
|
||||
Logger.addLogAdapter(getLogAdapter());
|
||||
OkHttp.get().setProxy(Setting.getProxy());
|
||||
OkHttp.get().setDoh(Doh.objectFrom(Setting.getDoh()));
|
||||
|
||||
@@ -201,6 +201,14 @@ public class Setting {
|
||||
Prefers.put("update", update);
|
||||
}
|
||||
|
||||
public static boolean getAutoUpdateCheck() {
|
||||
return Prefers.getBoolean("auto_update_check", false);
|
||||
}
|
||||
|
||||
public static void putAutoUpdateCheck(boolean autoUpdateCheck) {
|
||||
Prefers.put("auto_update_check", autoUpdateCheck);
|
||||
}
|
||||
|
||||
public static boolean getUseCnMirror() {
|
||||
return Prefers.getBoolean("use_cn_mirror", false);
|
||||
}
|
||||
@@ -308,4 +316,20 @@ public class Setting {
|
||||
public static boolean hasCaption() {
|
||||
return new Intent(Settings.ACTION_CAPTIONING_SETTINGS).resolveActivity(App.get().getPackageManager()) != null;
|
||||
}
|
||||
|
||||
public static boolean isPrivacyAgreed() {
|
||||
return Prefers.getBoolean("privacy_agreed_v1", false);
|
||||
}
|
||||
|
||||
public static void setPrivacyAgreed(boolean agreed) {
|
||||
Prefers.put("privacy_agreed_v1", agreed);
|
||||
}
|
||||
|
||||
public static boolean isLiveTabVisible() {
|
||||
return Prefers.getBoolean("live_tab_visible", true);
|
||||
}
|
||||
|
||||
public static void putLiveTabVisible(boolean visible) {
|
||||
Prefers.put("live_tab_visible", visible);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,13 @@ public class LiveConfig {
|
||||
private boolean sync;
|
||||
private Live home;
|
||||
|
||||
private LiveConfig() {
|
||||
// 在构造函数中初始化列表,防止空指针异常
|
||||
this.ads = new ArrayList<>();
|
||||
this.rules = new ArrayList<>();
|
||||
this.lives = new ArrayList<>();
|
||||
}
|
||||
|
||||
private static class Loader {
|
||||
static volatile LiveConfig INSTANCE = new LiveConfig();
|
||||
}
|
||||
@@ -97,9 +104,9 @@ public class LiveConfig {
|
||||
|
||||
public LiveConfig clear() {
|
||||
this.home = null;
|
||||
this.ads.clear();
|
||||
this.rules.clear();
|
||||
this.lives.clear();
|
||||
if (this.ads != null) this.ads.clear();
|
||||
if (this.rules != null) this.rules.clear();
|
||||
if (this.lives != null) this.lives.clear();
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,16 @@ public class VodConfig {
|
||||
private Site home;
|
||||
private volatile boolean isLoading = false; // 添加加载状态标记
|
||||
|
||||
private VodConfig() {
|
||||
// 在构造函数中初始化列表,防止空指针异常
|
||||
this.ads = new ArrayList<>();
|
||||
this.doh = new ArrayList<>();
|
||||
this.rules = new ArrayList<>();
|
||||
this.sites = new ArrayList<>();
|
||||
this.flags = new ArrayList<>();
|
||||
this.parses = new ArrayList<>();
|
||||
}
|
||||
|
||||
private static class Loader {
|
||||
static volatile VodConfig INSTANCE = new VodConfig();
|
||||
}
|
||||
@@ -123,12 +133,12 @@ public class VodConfig {
|
||||
this.wall = null;
|
||||
this.home = null;
|
||||
this.parse = null;
|
||||
this.ads.clear();
|
||||
this.doh.clear();
|
||||
this.rules.clear();
|
||||
this.sites.clear();
|
||||
this.flags.clear();
|
||||
this.parses.clear();
|
||||
if (this.ads != null) this.ads.clear();
|
||||
if (this.doh != null) this.doh.clear();
|
||||
if (this.rules != null) this.rules.clear();
|
||||
if (this.sites != null) this.sites.clear();
|
||||
if (this.flags != null) this.flags.clear();
|
||||
if (this.parses != null) this.parses.clear();
|
||||
this.loadLive = true;
|
||||
BaseLoader.get().clear();
|
||||
return this;
|
||||
|
||||
@@ -17,7 +17,7 @@ public abstract class ConfigDao extends BaseDao<Config> {
|
||||
@Query("SELECT * FROM Config WHERE type = :type ORDER BY time DESC")
|
||||
public abstract List<Config> findByType(int type);
|
||||
|
||||
@SuppressWarnings(RoomWarnings.QUERY_MISMATCH)
|
||||
@SuppressWarnings(RoomWarnings.CURSOR_MISMATCH)
|
||||
@Query("SELECT id, name, url, type, time FROM Config WHERE type = :type ORDER BY time DESC")
|
||||
public abstract List<Config> findUrlByType(int type);
|
||||
|
||||
|
||||
@@ -2,7 +2,9 @@ package com.fongmi.android.tv.ui.custom;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.TypedValue;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
@@ -33,6 +35,7 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
|
||||
private long currentPosition;
|
||||
private long currentBuffered;
|
||||
private boolean scrubbing;
|
||||
private boolean isPressed;
|
||||
|
||||
public CustomSeekView(Context context) {
|
||||
this(context, null);
|
||||
@@ -55,11 +58,93 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
|
||||
timeBar = findViewById(R.id.timeBar);
|
||||
timeBar.addListener(this);
|
||||
refresh = this::refresh;
|
||||
|
||||
// 设置触摸事件监听器,实现动态尺寸调整
|
||||
timeBar.setOnTouchListener((v, event) -> {
|
||||
switch (event.getAction()) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
if (!isPressed) {
|
||||
isPressed = true;
|
||||
// 按下时:滑杆4dp,圆球16dp
|
||||
setTimeBarSize(4, 16);
|
||||
}
|
||||
break;
|
||||
case MotionEvent.ACTION_UP:
|
||||
case MotionEvent.ACTION_CANCEL:
|
||||
if (isPressed) {
|
||||
isPressed = false;
|
||||
// 松开时:滑杆2dp,圆球12dp
|
||||
setTimeBarSize(2, 12);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return false; // 不拦截事件,让DefaultTimeBar正常处理
|
||||
});
|
||||
}
|
||||
|
||||
public void setListener(Players player) {
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
public void setPosition(long position) {
|
||||
timeBar.setPosition(position);
|
||||
}
|
||||
|
||||
public void setDuration(long duration) {
|
||||
timeBar.setDuration(duration);
|
||||
}
|
||||
|
||||
/**
|
||||
* 动态设置进度条高度和拖拽手柄大小
|
||||
* @param barHeightDp 滑杆高度值(dp)
|
||||
* @param scrubberSizeDp 拖拽手柄大小(dp)
|
||||
*/
|
||||
private void setTimeBarSize(int barHeightDp, int scrubberSizeDp) {
|
||||
// 设置滑杆高度
|
||||
int barHeightPx = (int) TypedValue.applyDimension(
|
||||
TypedValue.COMPLEX_UNIT_DIP,
|
||||
barHeightDp,
|
||||
getContext().getResources().getDisplayMetrics()
|
||||
);
|
||||
|
||||
// 设置拖拽手柄大小
|
||||
int scrubberSizePx = (int) TypedValue.applyDimension(
|
||||
TypedValue.COMPLEX_UNIT_DIP,
|
||||
scrubberSizeDp,
|
||||
getContext().getResources().getDisplayMetrics()
|
||||
);
|
||||
|
||||
// 通过反射设置DefaultTimeBar的内部属性
|
||||
try {
|
||||
// 设置滑杆高度
|
||||
java.lang.reflect.Field barHeightField = timeBar.getClass().getDeclaredField("barHeight");
|
||||
barHeightField.setAccessible(true);
|
||||
barHeightField.setInt(timeBar, barHeightPx);
|
||||
|
||||
// 设置拖拽手柄大小 - 尝试多个可能的字段名
|
||||
String[] scrubberFields = {"scrubberSize", "scrubberEnabledSize", "scrubberDisabledSize"};
|
||||
for (String fieldName : scrubberFields) {
|
||||
try {
|
||||
java.lang.reflect.Field scrubberField = timeBar.getClass().getDeclaredField(fieldName);
|
||||
scrubberField.setAccessible(true);
|
||||
scrubberField.setInt(timeBar, scrubberSizePx);
|
||||
break; // 成功设置后退出循环
|
||||
} catch (NoSuchFieldException e) {
|
||||
// 继续尝试下一个字段名
|
||||
}
|
||||
}
|
||||
|
||||
// 刷新视图
|
||||
timeBar.requestLayout();
|
||||
timeBar.invalidate();
|
||||
} catch (Exception e) {
|
||||
// 如果反射失败,使用备用方案
|
||||
e.printStackTrace();
|
||||
// 备用方案:重新设置布局参数
|
||||
timeBar.getLayoutParams().height = barHeightPx;
|
||||
timeBar.requestLayout();
|
||||
}
|
||||
}
|
||||
|
||||
private void start() {
|
||||
removeCallbacks(refresh);
|
||||
@@ -102,7 +187,7 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
|
||||
}
|
||||
}
|
||||
|
||||
private void setKeyTimeIncrement(long duration) {
|
||||
public void setKeyTimeIncrement(long duration) {
|
||||
if (duration > TimeUnit.HOURS.toMillis(3)) {
|
||||
timeBar.setKeyTimeIncrement(TimeUnit.MINUTES.toMillis(5));
|
||||
} else if (duration > TimeUnit.MINUTES.toMillis(30)) {
|
||||
@@ -124,8 +209,22 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
|
||||
}
|
||||
|
||||
private void seekToTimeBarPosition(long positionMs) {
|
||||
// 先设置播放位置
|
||||
player.seekTo(positionMs);
|
||||
refresh();
|
||||
// 延迟刷新进度条,确保播放器已经处理了跳转操作
|
||||
removeCallbacks(refresh);
|
||||
postDelayed(() -> {
|
||||
// 只有在非拖动状态下才刷新进度条位置
|
||||
if (!scrubbing) {
|
||||
refresh();
|
||||
// 确保进度条位置与实际播放位置一致
|
||||
long actualPosition = player.getPosition();
|
||||
if (Math.abs(actualPosition - positionMs) > 100) { // 如果差异超过100ms,再次调整
|
||||
timeBar.setPosition(actualPosition);
|
||||
positionView.setText(player.stringToTime(actualPosition));
|
||||
}
|
||||
}
|
||||
}, 50); // 延迟50ms刷新
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -148,6 +247,17 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
|
||||
@Override
|
||||
public void onScrubStop(@NonNull TimeBar timeBar, long position, boolean canceled) {
|
||||
scrubbing = false;
|
||||
if (!canceled) seekToTimeBarPosition(position);
|
||||
if (!canceled) {
|
||||
// 立即设置进度条位置到目标位置,避免圆球跳回原始位置
|
||||
timeBar.setPosition(position);
|
||||
positionView.setText(player.stringToTime(position));
|
||||
|
||||
// 调整播放位置
|
||||
seekToTimeBarPosition(position);
|
||||
// 确保播放状态正确
|
||||
if (!player.isPlaying()) {
|
||||
player.play();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import android.widget.RelativeLayout;
|
||||
|
||||
import com.fongmi.android.tv.databinding.ViewEmptyBinding;
|
||||
import com.fongmi.android.tv.databinding.ViewProgressBinding;
|
||||
import com.airbnb.lottie.LottieAnimationView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -47,7 +48,8 @@ public class ProgressLayout extends RelativeLayout {
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
mEmptyView = ViewEmptyBinding.inflate(LayoutInflater.from(getContext())).getRoot();
|
||||
// 使用新的Lottie动画空状态布局
|
||||
mEmptyView = LayoutInflater.from(getContext()).inflate(com.fongmi.android.tv.R.layout.view_empty_lottie, null);
|
||||
mEmptyView.setTag(TAG_PROGRESS);
|
||||
mEmptyView.setVisibility(GONE);
|
||||
mProgressView = ViewProgressBinding.inflate(LayoutInflater.from(getContext())).getRoot();
|
||||
@@ -103,21 +105,46 @@ public class ProgressLayout extends RelativeLayout {
|
||||
case CONTENT:
|
||||
mEmptyView.setVisibility(GONE);
|
||||
mProgressView.setVisibility(GONE);
|
||||
pauseLottieAnimation();
|
||||
setContentVisibility(true);
|
||||
break;
|
||||
case PROGRESS:
|
||||
mEmptyView.setVisibility(GONE);
|
||||
mProgressView.setVisibility(VISIBLE);
|
||||
pauseLottieAnimation();
|
||||
setContentVisibility(false);
|
||||
break;
|
||||
case EMPTY:
|
||||
mEmptyView.setVisibility(VISIBLE);
|
||||
mProgressView.setVisibility(GONE);
|
||||
playLottieAnimation();
|
||||
setContentVisibility(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void playLottieAnimation() {
|
||||
try {
|
||||
LottieAnimationView lottieView = mEmptyView.findViewById(com.fongmi.android.tv.R.id.lottieAnimation);
|
||||
if (lottieView != null) {
|
||||
lottieView.playAnimation();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 忽略错误,保持兼容性
|
||||
}
|
||||
}
|
||||
|
||||
private void pauseLottieAnimation() {
|
||||
try {
|
||||
LottieAnimationView lottieView = mEmptyView.findViewById(com.fongmi.android.tv.R.id.lottieAnimation);
|
||||
if (lottieView != null) {
|
||||
lottieView.pauseAnimation();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 忽略错误,保持兼容性
|
||||
}
|
||||
}
|
||||
|
||||
private void setContentVisibility(boolean visible) {
|
||||
for (View view : mContentViews) {
|
||||
if (visible) showView(view);
|
||||
|
||||
@@ -2,11 +2,13 @@ package com.fongmi.android.tv.utils;
|
||||
|
||||
import com.fongmi.android.tv.App;
|
||||
import com.github.catvod.net.OkHttp;
|
||||
import com.github.catvod.utils.Logger;
|
||||
import com.github.catvod.utils.Path;
|
||||
import com.google.common.net.HttpHeaders;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
@@ -47,14 +49,22 @@ public class Download {
|
||||
private void doInBackground() {
|
||||
try (Response res = OkHttp.newCall(url, url).execute()) {
|
||||
Path.create(file);
|
||||
download(res.body().byteStream(), Double.parseDouble(res.header(HttpHeaders.CONTENT_LENGTH, "1")));
|
||||
long expectedLength = Long.parseLong(res.header(HttpHeaders.CONTENT_LENGTH, "0"));
|
||||
download(res.body().byteStream(), expectedLength);
|
||||
|
||||
// 验证下载的文件
|
||||
if (!verifyDownloadedFile(file, expectedLength)) {
|
||||
App.post(() -> {if (callback != null) callback.error("下载的文件可能已损坏,请重试");});
|
||||
return;
|
||||
}
|
||||
|
||||
App.post(() -> {if (callback != null) callback.success(file);});
|
||||
} catch (Exception e) {
|
||||
App.post(() -> {if (callback != null) callback.error(e.getMessage());});
|
||||
}
|
||||
}
|
||||
|
||||
private void download(InputStream is, double length) throws Exception {
|
||||
private void download(InputStream is, long length) throws Exception {
|
||||
try (BufferedInputStream input = new BufferedInputStream(is); FileOutputStream os = new FileOutputStream(file)) {
|
||||
byte[] buffer = new byte[4096];
|
||||
int readBytes;
|
||||
@@ -68,6 +78,45 @@ public class Download {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean verifyDownloadedFile(File file, long expectedLength) {
|
||||
try {
|
||||
// 检查文件大小
|
||||
if (file.length() != expectedLength) {
|
||||
Logger.e("File size mismatch: expected " + expectedLength + ", actual " + file.length());
|
||||
return false;
|
||||
}
|
||||
|
||||
// 检查APK文件头 (ZIP文件头)
|
||||
if (file.length() < 4) return false;
|
||||
|
||||
try (FileInputStream fis = new FileInputStream(file)) {
|
||||
byte[] header = new byte[4];
|
||||
fis.read(header);
|
||||
// ZIP文件头应该是 0x504B0304 (PK..)
|
||||
if (header[0] != 0x50 || header[1] != 0x4B || header[2] != 0x03 || header[3] != 0x04) {
|
||||
Logger.e("Invalid APK file header");
|
||||
return false;
|
||||
}
|
||||
|
||||
// 额外验证:检查APK文件是否完整
|
||||
// 尝试读取ZIP文件结构
|
||||
fis.getChannel().position(0);
|
||||
byte[] buffer = new byte[1024];
|
||||
int bytesRead = fis.read(buffer);
|
||||
if (bytesRead < 4) {
|
||||
Logger.e("APK file too small or corrupted");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Logger.d("APK file verification passed: " + file.getName() + " (" + file.length() + " bytes)");
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
Logger.e("File verification failed: " + e.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public interface Callback {
|
||||
|
||||
void progress(int progress);
|
||||
|
||||
@@ -11,6 +11,7 @@ import androidx.core.content.FileProvider;
|
||||
import com.fongmi.android.tv.App;
|
||||
import com.fongmi.android.tv.R;
|
||||
import com.fongmi.android.tv.impl.Callback;
|
||||
import com.github.catvod.utils.Logger;
|
||||
import com.github.catvod.utils.Path;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
@@ -34,11 +35,35 @@ public class FileUtil {
|
||||
}
|
||||
|
||||
public static void openFile(File file) {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
intent.setDataAndType(getShareUri(file), FileUtil.getMimeType(file.getName()));
|
||||
App.get().startActivity(intent);
|
||||
try {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
|
||||
// 对于APK文件,使用特定的MIME类型
|
||||
String mimeType = file.getName().toLowerCase().endsWith(".apk") ?
|
||||
"application/vnd.android.package-archive" : getMimeType(file.getName());
|
||||
|
||||
intent.setDataAndType(getShareUri(file), mimeType);
|
||||
|
||||
// 添加额外的安装权限检查
|
||||
if (file.getName().toLowerCase().endsWith(".apk")) {
|
||||
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
||||
}
|
||||
|
||||
App.get().startActivity(intent);
|
||||
} catch (Exception e) {
|
||||
Logger.e("Failed to open file: " + e.getMessage());
|
||||
// 如果失败,尝试使用通用方式
|
||||
try {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.setDataAndType(getShareUri(file), "*/*");
|
||||
App.get().startActivity(intent);
|
||||
} catch (Exception ex) {
|
||||
Logger.e("Fallback open file also failed: " + ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void gzipCompress(File target) {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="20dp"
|
||||
android:height="20dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M13,2L3,14h8l-1,8l10,-12h-8l1,-8z"/>
|
||||
</vector>
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM12,5c1.66,0 3,1.34 3,3s-1.34,3 -3,3S9,9.66 9,8S10.34,5 12,5zM12,19.2c-2.5,0 -4.71,-1.28 -6,-3.22c0.03,-1.99 4,-3.08 6,-3.08c1.99,0 5.97,1.09 6,3.08C16.71,17.92 14.5,19.2 12,19.2z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5 5,-2.24 5,-5 -2.24,-5 -5,-5zM15.19,14.85L13.2,12.86c.5,-1.19.25,-2.58 -0.73,-3.55 -1.17,-1.18 -3.01,-1.39 -4.39,-0.51l1.99,1.99c0.22,0.22 0.22,0.57 0,0.79l-0.79,0.79c-0.22,0.22 -0.57,0.22 -0.79,0L6.5,10.38c-0.88,1.37 -0.67,3.22 0.51,4.39 0.97,0.98 2.36,1.23 3.55,0.73l1.99,1.99c0.22,0.22 0.57,0.22 0.79,0l0.79,-0.79c0.22,-0.22 0.22,-0.57 0,-0.79z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,19c1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3s-3,1.34 -3,3S10.34,19 12,19zM12,17c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1s1,0.45 1,1S12.55,17 12,17zM17,9c0,-2.76 -2.24,-5 -5,-5S7,6.24 7,9c0,1.59 0.76,3 1.95,3.91C7.58,13.71 6.5,15.27 6.5,17c0,0.55 0.45,1 1,1s1,-0.45 1,-1c0,-1.65 1.35,-3 3,-3s3,1.35 3,3c0,0.55 0.45,1 1,1s1,-0.45 1,-1c0,-1.73 -1.08,-3.29 -2.45,-4.09C15.24,12 16,10.59 16,9zM12,12c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3s3,1.34 3,3S13.66,12 12,12z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M19,5v14L5,19L5,5h14m1.1,-2L3.9,3c-0.5,0 -0.9,0.4 -0.9,0.9v16.2c0,0.4 0.4,0.9 0.9,0.9h16.2c0.4,0 0.9,-0.5 0.9,-0.9L21,3.9c0,-0.5 -0.4,-0.9 -0.9,-0.9zM11,7h6v2h-6L11,7zM11,11h6v2h-6v-2zM11,15h6v2h-6zM7,7h2v2L7,9zM7,11h2v2L7,13zM7,15h2v2L7,17z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,3C8.69,3 6,5.69 6,9s2.69,6 6,6s6,-2.69 6,-6S15.31,3 12,3zM12,13c-2.21,0 -4,-1.79 -4,-4s1.79,-4 4,-4s4,1.79 4,4S14.21,13 12,13zM21,18h-2v2h-1.5v-2h-2v-1.5h2v-2h1.5v2h2V18zM11,18c0,-0.28 0.05,-0.54 0.12,-0.8c-0.87,-0.54 -1.89,-0.88 -3,-0.99C5.73,15.91 3,16.71 3,18.5V20h8.26C11.1,19.36 11,18.69 11,18z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M21,15h2v2h-2v-2zM21,11h2v2h-2v-2zM23,19h-2v2c1,0 2,-1 2,-2zM13,3h2v2h-2L13,3zM21,7h2v2h-2L21,7zM21,3v2h2c0,-1 -1,-2 -2,-2zM1,7h2v2L1,9L1,7zM17,3h2v2h-2L17,3zM17,19h2v2h-2v-2zM3,3C2,3 1,4 1,5h2L3,3zM9,3h2v2L9,5L9,3zM5,3h2v2L5,5L5,3zM1,11v8c0,1.1 0.9,2 2,2h12L15,11L1,11zM3,19l2.5,-3.21 1.79,2.15 2.5,-3.22L13,19L3,19z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M21,3H3C2,3 1,4 1,5v14c0,1.1 0.9,2 2,2h18c1,0 2,-1 2,-2V5c0,-1 -1,-2 -2,-2zM21,19H3V5h18v14zM14.5,11.5c0,0.83 -0.67,1.5 -1.5,1.5h-2v2h2v1h-3v-4c0,-0.83 0.67,-1.5 1.5,-1.5h2c0.83,0 1.5,0.67 1.5,1.5zM11.5,8.5H13v1h-2V7h2v1h-1.5zM16,13.5c0,0.83 -0.67,1.5 -1.5,1.5h-2v-2h2v-1h-2v-2h2c0.83,0 1.5,0.67 1.5,1.5v2z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M18.5,8C19.88,8 21,6.88 21,5.5C21,4.12 19.88,3 18.5,3C17.12,3 16,4.12 16,5.5C16,6.88 17.12,8 18.5,8zM5.5,8C6.88,8 8,6.88 8,5.5C8,4.12 6.88,3 5.5,3C4.12,3 3,4.12 3,5.5C3,6.88 4.12,8 5.5,8zM7.5,17H16.5C17.6,17 18.5,16.1 18.5,15V11.41C18.5,10.08 16.92,9.43 16,10.36C14.55,11.8 13.45,11.8 12,10.36C10.55,8.91 9.45,8.91 8,10.36C7.07,11.29 5.5,10.64 5.5,9.31V15C5.5,16.1 6.4,17 7.5,17z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M15,8v8H5V8h10m1,-2H4C3.45,6 3,6.45 3,7v10c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1v-3.5l4,4v-11l-4,4V7c0,-0.55 -0.45,-1 -1,-1z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,16c-1.79,0 -3.23,-1.43 -3.23,-3.23 0,-0.36 0.06,-0.7 0.17,-1.02l4.08,4.08c-0.32,0.11 -0.66,0.17 -1.02,0.17zM12,8c1.79,0 3.23,1.43 3.23,3.23 0,0.36 -0.06,0.7 -0.17,1.02L10.98,8.17C11.3,8.06 11.64,8 12,8zM19.94,19.5L17.77,17.33C16.68,18.15 15.39,18.75 14,19.08v-2.11c0.63,-0.23 1.21,-0.54 1.73,-0.92l-1.4,-1.4c-0.64,0.51 -1.44,0.81 -2.33,0.81 -2.09,0 -3.77,-1.68 -3.77,-3.77 0,-0.89 0.31,-1.69 0.81,-2.33L7.65,8.97c-0.92,0.74 -1.73,1.61 -2.38,2.57C5.09,11.83 5,12.15 5,12.5s0.09,0.67 0.27,0.96c1.87,2.95 5.07,4.77 8.73,4.77 1.35,0 2.63,-0.22 3.83,-0.61l-0.39,-0.39 2.5,2.5c0.39,0.39 1.02,0.39 1.41,0 0.4,-0.39 0.4,-1.02 0,-1.41l-1.41,-1.41zM5.06,4.5l2.18,2.18c1.09,-0.82 2.37,-1.42 3.76,-1.76L11,7.03c-0.63,0.23 -1.21,0.54 -1.73,0.92l1.4,1.4c0.64,-0.51 1.44,-0.81 2.33,-0.81 2.09,0 3.77,1.68 3.77,3.77 0,0.89 -0.31,1.69 -0.81,2.33l1.4,1.4c0.92,-0.74 1.73,-1.61 2.38,-2.57 0.18,-0.29 0.27,-0.61 0.27,-0.96s-0.09,-0.67 -0.27,-0.96C18.87,8.6 15.67,6.78 12,6.78c-1.35,0 -2.63,0.22 -3.83,0.61L5.06,4.27c-0.39,-0.39 -1.02,-0.39 -1.41,0s-0.39,1.02 0,1.41l1.41,1.41z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,99 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/black"
|
||||
android:fitsSystemWindows="true"
|
||||
android:orientation="vertical">
|
||||
|
||||
<!-- 标题栏 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:padding="24dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/privacy_agreement_title"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:text="@string/privacy_agreement_tip"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp"
|
||||
android:alpha="0.8" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 协议内容滚动区域 -->
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:paddingStart="24dp"
|
||||
android:paddingEnd="24dp"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/contentText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/privacy_agreement_content"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp"
|
||||
android:lineSpacingMultiplier="1.4"
|
||||
android:padding="16dp"
|
||||
android:background="@drawable/selector_item_round"
|
||||
android:alpha="0.9" />
|
||||
|
||||
</ScrollView>
|
||||
|
||||
<!-- 按钮区域 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="24dp"
|
||||
android:paddingStart="24dp"
|
||||
android:paddingEnd="24dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/disagreeButton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:text="@string/privacy_agreement_disagree"
|
||||
android:textColor="@color/white"
|
||||
android:backgroundTint="@color/black_60"
|
||||
android:textSize="13sp"
|
||||
android:maxLines="2"
|
||||
android:gravity="center" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/agreeButton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginStart="12dp"
|
||||
android:text="@string/privacy_agreement_agree"
|
||||
android:textColor="@color/black"
|
||||
android:backgroundTint="@color/primary"
|
||||
android:textSize="13sp"
|
||||
android:maxLines="2"
|
||||
android:gravity="center" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -19,6 +19,6 @@
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/error_empty"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
android:textSize="14sp" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.airbnb.lottie.LottieAnimationView
|
||||
android:id="@+id/lottieAnimation"
|
||||
android:layout_width="180dp"
|
||||
android:layout_height="180dp"
|
||||
app:lottie_fileName="lottie_empty_1.json"
|
||||
app:lottie_loop="true"
|
||||
app:lottie_autoPlay="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/error_keep_empty"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.airbnb.lottie.LottieAnimationView
|
||||
android:id="@+id/lottieAnimation"
|
||||
android:layout_width="180dp"
|
||||
android:layout_height="180dp"
|
||||
app:lottie_fileName="lottie_empty_1.json"
|
||||
app:lottie_loop="true"
|
||||
app:lottie_autoPlay="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/error_empty"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp"
|
||||
android:alpha="0.8" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.airbnb.lottie.LottieAnimationView
|
||||
android:id="@+id/lottieAnimation"
|
||||
android:layout_width="180dp"
|
||||
android:layout_height="180dp"
|
||||
app:lottie_fileName="lottie_empty_1.json"
|
||||
app:lottie_loop="true"
|
||||
app:lottie_autoPlay="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/error_search_empty"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -73,6 +73,7 @@
|
||||
<string name="setting_subscription">订阅管理</string>
|
||||
<string name="setting_player">播放设置</string>
|
||||
<string name="setting_incognito">无痕模式</string>
|
||||
<string name="setting_live_tab_visible">隐藏直播</string>
|
||||
<string name="setting_quality">图片品质</string>
|
||||
<string name="setting_size">图片尺寸</string>
|
||||
<string name="setting_doh">DoH</string>
|
||||
@@ -125,7 +126,7 @@
|
||||
<string name="dialog_edit">修改</string>
|
||||
<string name="dialog_positive">确定</string>
|
||||
<string name="dialog_negative">取消</string>
|
||||
<string name="dialog_paste">从剪贴板粘贴</string>
|
||||
<string name="dialog_paste">点我粘贴</string>
|
||||
<string name="dialog_config_hint">请输入接口…</string>
|
||||
<string name="dialog_config_name">请输入名称…</string>
|
||||
<string name="dialog_config_url">请输入地址…</string>
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
<string name="error_play_flag">暫無線路資料</string>
|
||||
<string name="error_play_timeout">連線逾時</string>
|
||||
<string name="error_detail">暫無播放資料</string>
|
||||
<string name="error_empty">找不到資料</string>
|
||||
<string name="error_empty">這裡撒子內容都沒得~</string>
|
||||
<string name="error_cast_file">不支持的檔案格式</string>
|
||||
<string name="error_device_limit">設備授權數已達上限</string>
|
||||
<string name="error_live_empty">該訂閱無直播內容</string>
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
<string name="setting_data">Data Management</string>
|
||||
<string name="setting_player">Player setting</string>
|
||||
<string name="setting_incognito">Incognito mode</string>
|
||||
<string name="setting_live_tab_visible">Hide Live Tab</string>
|
||||
<string name="setting_quality">Image quality</string>
|
||||
<string name="setting_size">Image size</string>
|
||||
<string name="setting_doh">DoH</string>
|
||||
@@ -91,7 +92,7 @@
|
||||
<string name="setting_choose">Choose</string>
|
||||
<string name="setting_off">Off</string>
|
||||
<string name="setting_on">On</string>
|
||||
<string name="app_version">v3.0.3</string>
|
||||
<string name="app_version">v3.0.6</string>
|
||||
<string name="about_github">View on GitHub</string>
|
||||
|
||||
<!-- Backup & Restore -->
|
||||
@@ -126,7 +127,7 @@
|
||||
<string name="dialog_edit">Edit</string>
|
||||
<string name="dialog_positive">OK</string>
|
||||
<string name="dialog_negative">Cancel</string>
|
||||
<string name="dialog_paste">Paste from clipboard</string>
|
||||
<string name="dialog_paste">Click to paste</string>
|
||||
<string name="dialog_config_hint">Please enter the config…</string>
|
||||
<string name="dialog_config_name">Please enter the name…</string>
|
||||
<string name="dialog_config_url">Please enter the url…</string>
|
||||
@@ -151,7 +152,9 @@
|
||||
<string name="error_device_limit">Device authorization limit reached</string>
|
||||
<string name="error_live_empty">This subscription has no live content</string>
|
||||
<string name="error_no_live">Current source has no live content</string>
|
||||
<string name="error_empty">Not found</string>
|
||||
<string name="error_empty">这里撒子内容都没得~</string>
|
||||
<string name="error_keep_empty">老表~没得收藏哈</string>
|
||||
<string name="error_search_empty">搜索无结果,换个关键词试试</string>
|
||||
<string name="error_detail">No play data</string>
|
||||
<string name="error_play_flag">No flag data</string>
|
||||
<string name="error_play_code">Error code: <xliff:g name="name">%s</xliff:g></string>
|
||||
@@ -237,6 +240,13 @@
|
||||
|
||||
<string name="source_hint">No video sources added yet\nClick the button below to add</string>
|
||||
<string name="add_source">Add Source</string>
|
||||
|
||||
<!-- 隐私协议相关 -->
|
||||
<string name="privacy_agreement_title">XMBOX软件许可协议</string>
|
||||
<string name="privacy_agreement_tip">请仔细阅读以下协议条款</string>
|
||||
<string name="privacy_agreement_agree">我已阅读并同意</string>
|
||||
<string name="privacy_agreement_disagree">不同意并退出</string>
|
||||
<string name="privacy_agreement_content">XMBOX软件许可协议:\n\n- 以下是对[GPL-3.0](LICENSE.md)开源协议的补充,如有冲突,以以下协议为准。\n- 词语约定: 本协议中的"本软件"指"XMBOX软件","用户"指签署本协议的使用者,"版权数据"指包括但不限于视频、图像、音频、名字等在内的他人拥有所属版权的数据。\n\n1. 本软件仅为技术性多媒体播放器外壳("空壳播放器"),核心功能限于基础媒体文件解析与播放。\n\n2. 本软件自身不包含、不预装、不内置、不集成、不主动推荐、不直接或间接提供任何音视频、直播、图文等媒体资源内容。软件播放的任何资源均非由本软件或其开发者提供。\n\n3. 用户通过本软件播放的任何内容均完全来源于用户自行配置、输入、添加、获取或选择的第三方来源(如网络地址、本地文件、用户安装的插件/扩展/配置源等)。本软件仅作为访问用户自行指定内容的技术工具。\n\n4. 本软件无法控制、筛选、审查或保证用户访问的任何第三方内容的合法性、版权状态、准确性、安全性或适宜性。用户对其播放的内容负全部责任。\n\n5. 关于用户责任与风险承担:\n • 用户必须确保其通过本软件配置、访问或播放的所有内容均已获相关权利人合法授权,或属于法律允许的自由使用范畴。\n • 用户理解并同意,使用本软件访问第三方资源可能涉及侵犯版权、传播非法信息、隐私泄露、网络安全等风险。因用户使用本软件访问、播放或传播内容产生的一切法律责任、纠纷、损失及后果(包括法律诉讼、行政处罚、民事赔偿等),均由用户自行承担,与本软件及其开发者无涉。\n • 开发者不认可、不支持任何利用本软件规避技术保护措施(如DRM)的行为,此类行为导致的侵权责任由用户全权承担。\n\n6. 用户承诺并保证不利用本软件从事任何侵犯他人知识产权或其他合法权益的活动,或进行任何违反法律法规的行为。严禁使用本软件播放、传播盗版、色情、暴力、赌博、诈骗、危害国家安全、危害社会稳定等非法或侵权内容。\n\n7. 在任何情况下,本软件开发者均不就因用户使用或无法使用本软件、用户配置或访问的第三方资源、用户违反本协议或法律法规的行为导致的任何直接、间接、偶然、特殊、惩罚性或结果性损害(包括利润损失、数据丢失、业务中断、声誉损害等)承担任何责任(无论基于合同、侵权、严格责任或其他法律理论)。\n\n8. 本软件运行可能依赖第三方库、服务或技术。开发者不对这些第三方组件的可用性、准确性、功能或合法性负责。\n\n9. 用户理解并同意,使用本软件(包括下载、安装、运行)存在固有技术风险(如软件缺陷、兼容性问题、系统不稳定等),用户应自行承担此风险。\n\n10. 本软件仅用于对技术可行性的探索及研究,不接受任何商业(包括但不限于广告等)合作及捐赠。\n\n11. 本软件内使用的部分包括但不限于字体、图片等资源来源于互联网。如果出现侵权可联系开发者移除。\n\n12. 使用本软件的过程中可能会产生版权数据。对于这些版权数据,本软件不拥有它们的所有权。为了避免侵权,用户务必在 24 小时内 清除使用本项目的过程中所产生的版权数据。\n\n13. 本协议受中华人民共和国法律管辖并据其解释。若用户所在地法律强制规定特定责任条款,应以当地法律要求为准,但其他条款仍保持有效。任何由本协议或使用本软件引起的争议,应首先通过友好协商解决。\n\n14. 若你使用了本软件,即代表你接受本协议。\n\n15. 本协议更新后,继续使用视为接受新协议。</string>
|
||||
<string name="source_hint_setting">Add Source</string>
|
||||
<string name="source_hint_live">Add Live Source</string>
|
||||
<string name="source_hint_wall">Add Wallpaper Source</string>
|
||||
|
||||
@@ -10,6 +10,13 @@
|
||||
|
||||
<application>
|
||||
|
||||
<activity
|
||||
android:name=".ui.activity.PrivacyAgreementActivity"
|
||||
android:configChanges="screenSize|smallestScreenSize|screenLayout|uiMode|orientation"
|
||||
android:exported="false"
|
||||
android:screenOrientation="fullUser"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name=".ui.activity.HomeActivity"
|
||||
android:configChanges="screenSize|smallestScreenSize|screenLayout|uiMode|orientation"
|
||||
|
||||
@@ -2,12 +2,13 @@ package com.fongmi.android.tv;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
|
||||
import com.fongmi.android.tv.App;
|
||||
import com.fongmi.android.tv.databinding.DialogUpdateBinding;
|
||||
import com.fongmi.android.tv.utils.Download;
|
||||
import com.fongmi.android.tv.utils.FileUtil;
|
||||
@@ -15,11 +16,10 @@ import com.fongmi.android.tv.utils.Notify;
|
||||
import com.fongmi.android.tv.utils.ResUtil;
|
||||
import com.github.catvod.net.OkHttp;
|
||||
import com.github.catvod.utils.Github;
|
||||
import com.github.catvod.utils.Logger;
|
||||
import com.github.catvod.utils.Path;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.orhanobut.logger.Logger;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
@@ -28,25 +28,45 @@ import java.util.Locale;
|
||||
public class Updater implements Download.Callback {
|
||||
|
||||
private DialogUpdateBinding binding;
|
||||
private Download download;
|
||||
private final Download download;
|
||||
private AlertDialog dialog;
|
||||
private boolean dev;
|
||||
private String downloadUrl;
|
||||
private boolean forceCheck; // 是否为手动检查
|
||||
|
||||
private File getFile() {
|
||||
return Path.cache("update.apk");
|
||||
}
|
||||
|
||||
private String getApkName() {
|
||||
return "mobile-" + BuildConfig.FLAVOR_abi + ".apk";
|
||||
return Path.root("Download", "XMBOX-update.apk");
|
||||
}
|
||||
|
||||
private String getJson() {
|
||||
String url = Github.getReleaseApi();
|
||||
boolean usingCnMirror = Github.useCnMirror();
|
||||
Logger.d("Using CN Mirror: " + usingCnMirror);
|
||||
Logger.d("Update check URL: " + url);
|
||||
return url;
|
||||
return Github.getJson(dev, BuildConfig.FLAVOR_mode);
|
||||
}
|
||||
|
||||
private String getApk() {
|
||||
// 使用JSON中指定的具体下载路径
|
||||
try {
|
||||
String response = OkHttp.string(getJson());
|
||||
JSONObject object = new JSONObject(response);
|
||||
JSONObject downloads = object.optJSONObject("downloads");
|
||||
if (downloads != null) {
|
||||
String abi = BuildConfig.FLAVOR_abi;
|
||||
String downloadPath = downloads.optString(abi);
|
||||
if (!downloadPath.isEmpty()) {
|
||||
// 直接构建完整URL,不通过Github.getApk()避免重复添加路径
|
||||
String baseUrl = Github.useCnMirror() ?
|
||||
"https://gitee.com/ochenoktochen/XMBOX-Release/raw/main" :
|
||||
"https://raw.githubusercontent.com/Tosencen/XMBOX-Release/main";
|
||||
String fullUrl = baseUrl + "/apk/" + (dev ? "dev" : "release") + "/" + downloadPath;
|
||||
Logger.d("APK download URL: " + fullUrl);
|
||||
return fullUrl;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.e("Failed to get download path from JSON: " + e.getMessage());
|
||||
}
|
||||
// 回退到原来的方式
|
||||
String fallbackUrl = Github.getApk(dev, BuildConfig.FLAVOR_mode + "-" + BuildConfig.FLAVOR_abi);
|
||||
Logger.d("APK fallback URL: " + fallbackUrl);
|
||||
return fallbackUrl;
|
||||
}
|
||||
|
||||
public static Updater create() {
|
||||
@@ -54,12 +74,14 @@ public class Updater implements Download.Callback {
|
||||
}
|
||||
|
||||
public Updater() {
|
||||
this.download = Download.create("", getFile(), this);
|
||||
this.download = Download.create(getApk(), getFile(), this);
|
||||
this.forceCheck = false;
|
||||
}
|
||||
|
||||
public Updater force() {
|
||||
Notify.show(R.string.update_check);
|
||||
Setting.putUpdate(true);
|
||||
this.forceCheck = true; // 标记为手动检查
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -82,96 +104,91 @@ public class Updater implements Download.Callback {
|
||||
App.execute(() -> doInBackground(activity));
|
||||
}
|
||||
|
||||
private boolean need(String tagName) {
|
||||
Logger.d("Current version: " + BuildConfig.VERSION_NAME);
|
||||
Logger.d("Latest version: " + tagName);
|
||||
if (tagName.startsWith("v")) tagName = tagName.substring(1);
|
||||
|
||||
// 版本比较逻辑
|
||||
try {
|
||||
String[] currentParts = BuildConfig.VERSION_NAME.split("\\.");
|
||||
String[] remoteParts = tagName.split("\\.");
|
||||
|
||||
// 比较主版本号
|
||||
for (int i = 0; i < Math.min(currentParts.length, remoteParts.length); i++) {
|
||||
int current = Integer.parseInt(currentParts[i]);
|
||||
int remote = Integer.parseInt(remoteParts[i]);
|
||||
|
||||
if (remote > current) {
|
||||
return Setting.getUpdate(); // 远程版本高于当前版本,需要更新
|
||||
} else if (remote < current) {
|
||||
return false; // 远程版本低于当前版本,不需要更新
|
||||
}
|
||||
// 如果相等,继续比较下一级版本号
|
||||
}
|
||||
|
||||
// 如果前面的版本号都相等,但远程版本有更多的版本号,视为更新
|
||||
if (remoteParts.length > currentParts.length) {
|
||||
return Setting.getUpdate();
|
||||
}
|
||||
|
||||
return false; // 版本相同或远程版本较低,不需要更新
|
||||
} catch (NumberFormatException e) {
|
||||
// 如果版本号解析失败,退回到简单字符串比较
|
||||
Logger.e("Version parsing failed", e);
|
||||
return Setting.getUpdate() && !tagName.equals(BuildConfig.VERSION_NAME);
|
||||
}
|
||||
private boolean need(int code, String name) {
|
||||
return Setting.getUpdate() && (dev ? !name.equals(BuildConfig.VERSION_NAME) && code >= BuildConfig.VERSION_CODE : code > BuildConfig.VERSION_CODE);
|
||||
}
|
||||
|
||||
private void doInBackground(Activity activity) {
|
||||
Logger.d("Updater: Starting update check...");
|
||||
try {
|
||||
String jsonUrl = getJson();
|
||||
Logger.d("Fetching update info from: " + jsonUrl);
|
||||
String response = OkHttp.string(jsonUrl);
|
||||
Logger.d("Update check response: " + response);
|
||||
// 直接使用GitHub Releases API检测最新版本
|
||||
String releasesUrl = "https://api.github.com/repos/Tosencen/XMBOX/releases/latest";
|
||||
Logger.d("Updater: GitHub Releases API URL: " + releasesUrl);
|
||||
|
||||
String response = OkHttp.string(releasesUrl);
|
||||
Logger.d("Updater: API response length: " + response.length());
|
||||
|
||||
// 检查响应是否包含错误信息
|
||||
if (response.contains("rate limit exceeded")) {
|
||||
App.post(() -> Notify.show("检查更新失败:API请求过于频繁,请稍后重试"));
|
||||
Logger.e("Updater: Rate limit exceeded");
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("检查更新失败:API请求过于频繁,请稍后重试"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (response.contains("Not Found Project") || response.contains("Not Found")) {
|
||||
App.post(() -> Notify.show("检查更新失败:更新服务暂时不可用"));
|
||||
if (response.contains("Not Found") || response.contains("404")) {
|
||||
Logger.e("Updater: Release not found");
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("检查更新失败:更新服务暂时不可用"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
JSONObject release = new JSONObject(response);
|
||||
String tagName = release.getString("tag_name");
|
||||
String body = release.getString("body");
|
||||
JSONArray assets = release.getJSONArray("assets");
|
||||
String tagName = release.optString("tag_name");
|
||||
String body = release.optString("body");
|
||||
|
||||
// Find the correct APK asset
|
||||
String apkName = getApkName();
|
||||
for (int i = 0; i < assets.length(); i++) {
|
||||
JSONObject asset = assets.getJSONObject(i);
|
||||
if (asset.getString("name").equals(apkName)) {
|
||||
downloadUrl = asset.getString("browser_download_url");
|
||||
break;
|
||||
}
|
||||
}
|
||||
// 提取版本号(去掉v前缀)
|
||||
String version = tagName.startsWith("v") ? tagName.substring(1) : tagName;
|
||||
|
||||
if (downloadUrl != null && need(tagName)) {
|
||||
download = Download.create(downloadUrl, getFile(), this);
|
||||
App.post(() -> show(activity, tagName, body));
|
||||
Logger.d("Updater: Remote version: " + version);
|
||||
Logger.d("Updater: Local version: " + BuildConfig.VERSION_NAME);
|
||||
|
||||
// 比较版本号
|
||||
if (needUpdate(version)) {
|
||||
Logger.d("Updater: Update needed, showing dialog");
|
||||
App.post(() -> show(activity, version, body));
|
||||
} else {
|
||||
Logger.d("No update needed or APK not found");
|
||||
Logger.d("Updater: No update needed");
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("已是最新版本 " + version));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.e("Update check failed", e);
|
||||
Logger.e("Updater: Exception during update check: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
// 添加用户友好的错误提示
|
||||
App.post(() -> {
|
||||
String errorMsg = "检查更新失败";
|
||||
if (e.getMessage() != null && e.getMessage().contains("rate limit")) {
|
||||
errorMsg = "检查更新失败:请求过于频繁,请稍后重试";
|
||||
} else if (e.getMessage() != null && e.getMessage().contains("Not Found")) {
|
||||
errorMsg = "检查更新失败:更新服务暂时不可用";
|
||||
} else {
|
||||
errorMsg = "检查更新失败,请稍后重试";
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("检查更新失败:网络连接异常"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean needUpdate(String remoteVersion) {
|
||||
if (!Setting.getUpdate()) return false;
|
||||
|
||||
try {
|
||||
// 简单的版本号比较,假设版本格式为 x.y.z
|
||||
String[] remoteParts = remoteVersion.split("\\.");
|
||||
String[] localParts = BuildConfig.VERSION_NAME.split("\\.");
|
||||
|
||||
// 确保两个版本号都有足够的段
|
||||
int maxLength = Math.max(remoteParts.length, localParts.length);
|
||||
|
||||
for (int i = 0; i < maxLength; i++) {
|
||||
int remotePart = i < remoteParts.length ? Integer.parseInt(remoteParts[i]) : 0;
|
||||
int localPart = i < localParts.length ? Integer.parseInt(localParts[i]) : 0;
|
||||
|
||||
if (remotePart > localPart) {
|
||||
return true;
|
||||
} else if (remotePart < localPart) {
|
||||
return false;
|
||||
}
|
||||
Notify.show(errorMsg);
|
||||
});
|
||||
}
|
||||
return false; // 版本相同
|
||||
} catch (Exception e) {
|
||||
Logger.e("Updater: Version comparison error: " + e.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,8 +211,31 @@ public class Updater implements Download.Callback {
|
||||
}
|
||||
|
||||
private void confirm(View view) {
|
||||
view.setEnabled(false);
|
||||
download.start();
|
||||
// 跳转到GitHub Releases页面而不是直接下载
|
||||
try {
|
||||
String url = "https://github.com/Tosencen/XMBOX/releases/tag/v3.0.8";
|
||||
Logger.d("Updater: Attempting to open URL: " + url);
|
||||
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(url));
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
||||
// 检查是否有应用可以处理这个Intent
|
||||
if (intent.resolveActivity(App.get().getPackageManager()) != null) {
|
||||
App.get().startActivity(intent);
|
||||
Logger.d("Updater: Successfully started browser intent");
|
||||
dismiss();
|
||||
} else {
|
||||
Logger.e("Updater: No app can handle the URL");
|
||||
Notify.show("没有找到可以打开链接的应用,请手动访问GitHub下载");
|
||||
dismiss();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.e("Updater: Failed to open GitHub releases page: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
Notify.show("无法打开更新页面,请手动访问GitHub下载");
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
private void dismiss() {
|
||||
@@ -212,7 +252,6 @@ public class Updater implements Download.Callback {
|
||||
|
||||
@Override
|
||||
public void error(String msg) {
|
||||
Logger.e("Download error: " + msg);
|
||||
Notify.show(msg);
|
||||
dismiss();
|
||||
}
|
||||
@@ -222,4 +261,4 @@ public class Updater implements Download.Callback {
|
||||
FileUtil.openFile(file);
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -44,6 +44,7 @@ import com.fongmi.android.tv.utils.Util;
|
||||
import com.github.catvod.net.OkHttp;
|
||||
import com.google.android.flexbox.FlexDirection;
|
||||
import com.google.android.flexbox.FlexboxLayoutManager;
|
||||
import com.airbnb.lottie.LottieAnimationView;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
@@ -151,12 +152,14 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call
|
||||
if (mCollectAdapter.getPosition() == 0) mSearchAdapter.addAll(result.getList());
|
||||
mCollectAdapter.add(Collect.create(result.getList()));
|
||||
mCollectAdapter.add(result.getList());
|
||||
updateEmptyState();
|
||||
});
|
||||
mViewModel.result.observe(this, result -> {
|
||||
boolean same = !result.getList().isEmpty() && mCollectAdapter.getActivated().getSite().equals(result.getList().get(0).getSite());
|
||||
if (same) mCollectAdapter.getActivated().getList().addAll(result.getList());
|
||||
if (same) mSearchAdapter.addAll(result.getList());
|
||||
mScroller.endLoading(result);
|
||||
updateEmptyState();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -187,6 +190,7 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call
|
||||
mBinding.agent.setVisibility(View.GONE);
|
||||
mBinding.view.setVisibility(View.VISIBLE);
|
||||
mBinding.result.setVisibility(View.VISIBLE);
|
||||
updateEmptyState(); // 搜索开始时显示空状态
|
||||
if (mExecutor != null) mExecutor.shutdownNow();
|
||||
mExecutor = new PauseExecutor(20);
|
||||
String keyword = mBinding.keyword.getText().toString().trim();
|
||||
@@ -194,6 +198,27 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call
|
||||
App.post(() -> mRecordAdapter.add(keyword), 250);
|
||||
}
|
||||
|
||||
private void updateEmptyState() {
|
||||
// 只有在结果页面可见且搜索结果为空时才显示空状态动画
|
||||
boolean isResultVisible = isVisible(mBinding.result);
|
||||
boolean isEmpty = mSearchAdapter.getItemCount() == 0;
|
||||
boolean shouldShowEmpty = isResultVisible && isEmpty;
|
||||
|
||||
mBinding.emptyLayout.getRoot().setVisibility(shouldShowEmpty ? View.VISIBLE : View.GONE);
|
||||
|
||||
// 控制Lottie动画播放
|
||||
if (shouldShowEmpty) {
|
||||
try {
|
||||
LottieAnimationView lottieView = mBinding.emptyLayout.getRoot().findViewById(R.id.lottieAnimation);
|
||||
if (lottieView != null) {
|
||||
lottieView.playAnimation();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 忽略错误
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void search(Site site, String keyword) {
|
||||
try {
|
||||
mViewModel.searchContent(site, keyword, false);
|
||||
@@ -235,6 +260,7 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call
|
||||
mBinding.result.setVisibility(View.GONE);
|
||||
mBinding.site.setVisibility(View.VISIBLE);
|
||||
mBinding.agent.setVisibility(View.VISIBLE);
|
||||
mBinding.emptyLayout.getRoot().setVisibility(View.GONE); // 隐藏空状态动画
|
||||
if (mExecutor != null) mExecutor.shutdownNow();
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.fongmi.android.tv.ui.adapter.HistoryAdapter;
|
||||
import com.fongmi.android.tv.ui.base.BaseActivity;
|
||||
import com.fongmi.android.tv.ui.dialog.SyncDialog;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.airbnb.lottie.LottieAnimationView;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
@@ -59,6 +60,25 @@ public class HistoryActivity extends BaseActivity implements HistoryAdapter.OnCl
|
||||
private void getHistory() {
|
||||
mAdapter.addAll(History.get());
|
||||
mBinding.delete.setVisibility(mAdapter.getItemCount() > 0 ? View.VISIBLE : View.GONE);
|
||||
updateEmptyState();
|
||||
}
|
||||
|
||||
private void updateEmptyState() {
|
||||
boolean isEmpty = mAdapter.getItemCount() == 0;
|
||||
mBinding.emptyLayout.getRoot().setVisibility(isEmpty ? View.VISIBLE : View.GONE);
|
||||
mBinding.recycler.setVisibility(isEmpty ? View.GONE : View.VISIBLE);
|
||||
|
||||
// 控制Lottie动画播放
|
||||
if (isEmpty) {
|
||||
try {
|
||||
LottieAnimationView lottieView = mBinding.emptyLayout.getRoot().findViewById(R.id.lottieAnimation);
|
||||
if (lottieView != null) {
|
||||
lottieView.playAnimation();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 忽略错误
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onSync(View view) {
|
||||
@@ -67,7 +87,10 @@ public class HistoryActivity extends BaseActivity implements HistoryAdapter.OnCl
|
||||
|
||||
private void onDelete(View view) {
|
||||
if (mAdapter.isDelete()) {
|
||||
new MaterialAlertDialogBuilder(this).setTitle(R.string.dialog_delete_record).setMessage(R.string.dialog_delete_history).setNegativeButton(R.string.dialog_negative, null).setPositiveButton(R.string.dialog_positive, (dialog, which) -> mAdapter.clear()).show();
|
||||
new MaterialAlertDialogBuilder(this).setTitle(R.string.dialog_delete_record).setMessage(R.string.dialog_delete_history).setNegativeButton(R.string.dialog_negative, null).setPositiveButton(R.string.dialog_positive, (dialog, which) -> {
|
||||
mAdapter.clear();
|
||||
updateEmptyState();
|
||||
}).show();
|
||||
} else if (mAdapter.getItemCount() > 0) {
|
||||
mAdapter.setDelete(true);
|
||||
} else {
|
||||
@@ -91,6 +114,7 @@ public class HistoryActivity extends BaseActivity implements HistoryAdapter.OnCl
|
||||
if (mAdapter.getItemCount() > 0) return;
|
||||
mBinding.delete.setVisibility(View.GONE);
|
||||
mAdapter.setDelete(false);
|
||||
updateEmptyState();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -16,6 +16,7 @@ import androidx.viewbinding.ViewBinding;
|
||||
|
||||
import com.fongmi.android.tv.App;
|
||||
import com.fongmi.android.tv.R;
|
||||
import com.fongmi.android.tv.Setting;
|
||||
import com.fongmi.android.tv.Updater;
|
||||
import com.fongmi.android.tv.api.config.LiveConfig;
|
||||
import com.fongmi.android.tv.api.config.VodConfig;
|
||||
@@ -62,6 +63,18 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt
|
||||
|
||||
@Override
|
||||
protected void initView(Bundle savedInstanceState) {
|
||||
// 检查隐私协议
|
||||
if (!Setting.isPrivacyAgreed()) {
|
||||
Intent intent = new Intent(this, PrivacyAgreementActivity.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
// 确保通知渠道已创建(用户已同意协议的情况)
|
||||
com.fongmi.android.tv.utils.Notify.createChannel();
|
||||
|
||||
orientation = getResources().getConfiguration().orientation;
|
||||
Updater.create().release().start(this);
|
||||
initFragment(savedInstanceState);
|
||||
@@ -141,7 +154,7 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt
|
||||
private void setNavigation() {
|
||||
mBinding.navigation.getMenu().findItem(R.id.vod).setVisible(true);
|
||||
mBinding.navigation.getMenu().findItem(R.id.setting).setVisible(true);
|
||||
mBinding.navigation.getMenu().findItem(R.id.live).setVisible(LiveConfig.hasUrl());
|
||||
mBinding.navigation.getMenu().findItem(R.id.live).setVisible(LiveConfig.hasUrl() && !Setting.isLiveTabVisible());
|
||||
}
|
||||
|
||||
private boolean openLive() {
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.fongmi.android.tv.ui.base.BaseActivity;
|
||||
import com.fongmi.android.tv.ui.dialog.SyncDialog;
|
||||
import com.fongmi.android.tv.utils.Notify;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.airbnb.lottie.LottieAnimationView;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
@@ -63,6 +64,25 @@ public class KeepActivity extends BaseActivity implements KeepAdapter.OnClickLis
|
||||
private void getKeep() {
|
||||
mAdapter.addAll(Keep.getVod());
|
||||
mBinding.delete.setVisibility(mAdapter.getItemCount() > 0 ? View.VISIBLE : View.GONE);
|
||||
updateEmptyState();
|
||||
}
|
||||
|
||||
private void updateEmptyState() {
|
||||
boolean isEmpty = mAdapter.getItemCount() == 0;
|
||||
mBinding.emptyLayout.getRoot().setVisibility(isEmpty ? View.VISIBLE : View.GONE);
|
||||
mBinding.recycler.setVisibility(isEmpty ? View.GONE : View.VISIBLE);
|
||||
|
||||
// 控制Lottie动画播放
|
||||
if (isEmpty) {
|
||||
try {
|
||||
LottieAnimationView lottieView = mBinding.emptyLayout.getRoot().findViewById(R.id.lottieAnimation);
|
||||
if (lottieView != null) {
|
||||
lottieView.playAnimation();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 忽略错误
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onSync(View view) {
|
||||
@@ -71,7 +91,10 @@ public class KeepActivity extends BaseActivity implements KeepAdapter.OnClickLis
|
||||
|
||||
private void onDelete(View view) {
|
||||
if (mAdapter.isDelete()) {
|
||||
new MaterialAlertDialogBuilder(this).setTitle(R.string.dialog_delete_record).setMessage(R.string.dialog_delete_keep).setNegativeButton(R.string.dialog_negative, null).setPositiveButton(R.string.dialog_positive, (dialog, which) -> mAdapter.clear()).show();
|
||||
new MaterialAlertDialogBuilder(this).setTitle(R.string.dialog_delete_record).setMessage(R.string.dialog_delete_keep).setNegativeButton(R.string.dialog_negative, null).setPositiveButton(R.string.dialog_positive, (dialog, which) -> {
|
||||
mAdapter.clear();
|
||||
updateEmptyState();
|
||||
}).show();
|
||||
} else if (mAdapter.getItemCount() > 0) {
|
||||
mAdapter.setDelete(true);
|
||||
} else {
|
||||
@@ -114,6 +137,7 @@ public class KeepActivity extends BaseActivity implements KeepAdapter.OnClickLis
|
||||
if (mAdapter.getItemCount() > 0) return;
|
||||
mBinding.delete.setVisibility(View.GONE);
|
||||
mAdapter.setDelete(false);
|
||||
updateEmptyState();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
package com.fongmi.android.tv.ui.activity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.viewbinding.ViewBinding;
|
||||
|
||||
import com.fongmi.android.tv.R;
|
||||
import com.fongmi.android.tv.Setting;
|
||||
import com.fongmi.android.tv.databinding.ActivityPrivacyAgreementBinding;
|
||||
import com.fongmi.android.tv.ui.base.BaseActivity;
|
||||
|
||||
public class PrivacyAgreementActivity extends BaseActivity {
|
||||
|
||||
private ActivityPrivacyAgreementBinding mBinding;
|
||||
|
||||
@Override
|
||||
protected ViewBinding getBinding() {
|
||||
return mBinding = ActivityPrivacyAgreementBinding.inflate(getLayoutInflater());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView(Bundle savedInstanceState) {
|
||||
// 隐私协议页面初始化完成
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initEvent() {
|
||||
if (mBinding != null) {
|
||||
if (mBinding.agreeButton != null) {
|
||||
mBinding.agreeButton.setOnClickListener(this::onAgree);
|
||||
}
|
||||
if (mBinding.disagreeButton != null) {
|
||||
mBinding.disagreeButton.setOnClickListener(this::onDisagree);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onAgree(View view) {
|
||||
// 用户同意协议
|
||||
Setting.setPrivacyAgreed(true);
|
||||
|
||||
// 创建通知渠道(此时才请求通知权限)
|
||||
com.fongmi.android.tv.utils.Notify.createChannel();
|
||||
|
||||
// 跳转到主界面,清除任务栈避免用户通过任务管理器回到协议页面
|
||||
Intent intent = new Intent(this, HomeActivity.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
|
||||
private void onDisagree(View view) {
|
||||
// 用户不同意协议,退出应用
|
||||
try {
|
||||
// 清除隐私协议状态(可选,确保下次启动重新询问)
|
||||
Setting.setPrivacyAgreed(false);
|
||||
|
||||
// 优雅地退出应用
|
||||
finishAffinity();
|
||||
|
||||
// 延迟退出,让 Activity 完成销毁
|
||||
new android.os.Handler(android.os.Looper.getMainLooper()).postDelayed(() -> {
|
||||
System.exit(0);
|
||||
}, 100);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
// 备选退出方案
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
// 禁用返回键,用户必须做出选择
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||
onDisagree(null);
|
||||
return true;
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
// 清理 binding 引用
|
||||
mBinding = null;
|
||||
super.onDestroy();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,45 +59,25 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
|
||||
mBinding.renderText.setText((render = ResUtil.getStringArray(R.array.select_render))[Setting.getRender()]);
|
||||
mBinding.captionText.setText((caption = ResUtil.getStringArray(R.array.select_caption))[Setting.isCaption() ? 1 : 0]);
|
||||
mBinding.backgroundText.setText((background = ResUtil.getStringArray(R.array.select_background))[Setting.getBackground()]);
|
||||
|
||||
// 设置开关的颜色为黄色
|
||||
int accentColor = getResources().getColor(R.color.accent);
|
||||
android.content.res.ColorStateList colorStateList = new android.content.res.ColorStateList(
|
||||
new int[][]{
|
||||
new int[]{-android.R.attr.state_checked},
|
||||
new int[]{android.R.attr.state_checked}
|
||||
},
|
||||
new int[]{
|
||||
0x66FFFFFF, // 未选中时的颜色
|
||||
accentColor // 选中时的颜色
|
||||
}
|
||||
);
|
||||
|
||||
mBinding.tunnelSwitch.setThumbTintList(android.content.res.ColorStateList.valueOf(android.graphics.Color.WHITE));
|
||||
mBinding.tunnelSwitch.setTrackTintList(colorStateList);
|
||||
mBinding.audioDecodeSwitch.setThumbTintList(android.content.res.ColorStateList.valueOf(android.graphics.Color.WHITE));
|
||||
mBinding.audioDecodeSwitch.setTrackTintList(colorStateList);
|
||||
mBinding.aacSwitch.setThumbTintList(android.content.res.ColorStateList.valueOf(android.graphics.Color.WHITE));
|
||||
mBinding.aacSwitch.setTrackTintList(colorStateList);
|
||||
mBinding.danmakuLoadSwitch.setThumbTintList(android.content.res.ColorStateList.valueOf(android.graphics.Color.WHITE));
|
||||
mBinding.danmakuLoadSwitch.setTrackTintList(colorStateList);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initEvent() {
|
||||
mBinding.back.setOnClickListener(v -> finish());
|
||||
mBinding.ua.setOnClickListener(this::onUa);
|
||||
mBinding.aac.setOnClickListener(this::setAAC);
|
||||
mBinding.scale.setOnClickListener(this::onScale);
|
||||
mBinding.speed.setOnClickListener(this::onSpeed);
|
||||
mBinding.buffer.setOnClickListener(this::onBuffer);
|
||||
mBinding.render.setOnClickListener(this::setRender);
|
||||
mBinding.tunnel.setOnClickListener(this::setTunnel);
|
||||
mBinding.caption.setOnClickListener(this::setCaption);
|
||||
mBinding.caption.setOnLongClickListener(this::onCaption);
|
||||
mBinding.background.setOnClickListener(this::onBackground);
|
||||
mBinding.audioDecode.setOnClickListener(this::setAudioDecode);
|
||||
mBinding.danmakuLoad.setOnClickListener(this::setDanmakuLoad);
|
||||
|
||||
// 直接给开关按钮设置点击监听器,避免双重点击冲突
|
||||
mBinding.tunnelSwitch.setOnClickListener(this::setTunnel);
|
||||
mBinding.audioDecodeSwitch.setOnClickListener(this::setAudioDecode);
|
||||
mBinding.aacSwitch.setOnClickListener(this::setAAC);
|
||||
mBinding.danmakuLoadSwitch.setOnClickListener(this::setDanmakuLoad);
|
||||
}
|
||||
|
||||
private void onUa(View view) {
|
||||
@@ -113,7 +93,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
|
||||
private void setAAC(View view) {
|
||||
boolean isChecked = !Setting.isPreferAAC();
|
||||
Setting.putPreferAAC(isChecked);
|
||||
mBinding.aacSwitch.setChecked(isChecked);
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
}
|
||||
|
||||
private void onScale(View view) {
|
||||
@@ -154,7 +134,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
|
||||
private void setTunnel(View view) {
|
||||
boolean isChecked = !Setting.isTunnel();
|
||||
Setting.putTunnel(isChecked);
|
||||
mBinding.tunnelSwitch.setChecked(isChecked);
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
if (isChecked && Setting.getRender() == 1) setRender(view);
|
||||
}
|
||||
|
||||
@@ -179,12 +159,12 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
|
||||
private void setAudioDecode(View view) {
|
||||
boolean isChecked = !Setting.isAudioPrefer();
|
||||
Setting.putAudioPrefer(isChecked);
|
||||
mBinding.audioDecodeSwitch.setChecked(isChecked);
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
}
|
||||
|
||||
private void setDanmakuLoad(View view) {
|
||||
boolean isChecked = !Setting.isDanmakuLoad();
|
||||
Setting.putDanmakuLoad(isChecked);
|
||||
mBinding.danmakuLoadSwitch.setChecked(isChecked);
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,7 @@ import android.view.WindowManager;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
@@ -162,6 +163,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
|
||||
private Runnable mTimeUpdateRunnable;
|
||||
private BroadcastReceiver mBatteryReceiver;
|
||||
private int mBatteryLevel = -1;
|
||||
private boolean mIsCharging = false;
|
||||
|
||||
public static void push(FragmentActivity activity, String text) {
|
||||
if (FileChooser.isValid(activity, Uri.parse(text))) file(activity, FileChooser.getPathFromUri(activity, Uri.parse(text)));
|
||||
@@ -327,8 +329,12 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
|
||||
if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
|
||||
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
|
||||
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
|
||||
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
|
||||
|
||||
if (level != -1 && scale != -1) {
|
||||
mBatteryLevel = (int) ((level / (float) scale) * 100);
|
||||
mIsCharging = (status == BatteryManager.BATTERY_STATUS_CHARGING ||
|
||||
status == BatteryManager.BATTERY_STATUS_FULL);
|
||||
updateTimeBattery();
|
||||
}
|
||||
}
|
||||
@@ -345,18 +351,41 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
|
||||
}
|
||||
|
||||
private void updateTimeBattery() {
|
||||
TextView timeBattery = mBinding.getRoot().findViewById(R.id.time_battery);
|
||||
if (timeBattery == null) return;
|
||||
TextView timeBattery = findViewById(R.id.time_battery);
|
||||
TextView batteryText = findViewById(R.id.battery_icon);
|
||||
android.widget.ImageView chargingIndicator = findViewById(R.id.charging_indicator);
|
||||
|
||||
// 只在横屏模式下显示
|
||||
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||
String time = DateFormat.getTimeFormat(this).format(System.currentTimeMillis());
|
||||
String battery = mBatteryLevel >= 0 ? mBatteryLevel + "%" : "";
|
||||
String text = time + (battery.isEmpty() ? "" : " | " + battery);
|
||||
timeBattery.setText(text);
|
||||
timeBattery.setVisibility(View.VISIBLE);
|
||||
// 只在全屏模式下显示
|
||||
if (isFullscreen()) {
|
||||
// 更新时间
|
||||
if (timeBattery != null) {
|
||||
String time = DateFormat.getTimeFormat(this).format(System.currentTimeMillis());
|
||||
timeBattery.setText(time);
|
||||
timeBattery.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
// 更新充电图标
|
||||
if (chargingIndicator != null) {
|
||||
chargingIndicator.setVisibility(mIsCharging && mBatteryLevel >= 0 ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
// 更新电池百分比文字
|
||||
if (batteryText != null && mBatteryLevel >= 0) {
|
||||
batteryText.setText(mBatteryLevel + "%");
|
||||
batteryText.setVisibility(View.VISIBLE);
|
||||
} else if (batteryText != null) {
|
||||
batteryText.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
timeBattery.setVisibility(View.GONE);
|
||||
if (timeBattery != null) {
|
||||
timeBattery.setVisibility(View.GONE);
|
||||
}
|
||||
if (batteryText != null) {
|
||||
batteryText.setVisibility(View.GONE);
|
||||
}
|
||||
if (chargingIndicator != null) {
|
||||
chargingIndicator.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1465,6 +1494,55 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
|
||||
this.rotate = rotate;
|
||||
if (fullscreen && rotate) noPadding(mBinding.control.getRoot());
|
||||
if (fullscreen && !rotate) setPadding(mBinding.control.getRoot());
|
||||
// 检测屏幕方向变化并处理
|
||||
onOrientationChanged();
|
||||
}
|
||||
|
||||
// 添加屏幕方向变化处理方法
|
||||
private void onOrientationChanged() {
|
||||
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||
// 切换到横屏模式
|
||||
onLandscapeMode();
|
||||
} else {
|
||||
// 切换到竖屏模式
|
||||
onPortraitMode();
|
||||
}
|
||||
}
|
||||
|
||||
private void onLandscapeMode() {
|
||||
// 横屏模式下的特殊处理
|
||||
// 调整进度条的敏感度
|
||||
if (mPlayers != null) {
|
||||
long duration = mPlayers.getDuration();
|
||||
if (duration > TimeUnit.MINUTES.toMillis(30)) {
|
||||
mBinding.control.seek.setKeyTimeIncrement(TimeUnit.MINUTES.toMillis(1));
|
||||
} else if (duration > TimeUnit.MINUTES.toMillis(10)) {
|
||||
mBinding.control.seek.setKeyTimeIncrement(TimeUnit.SECONDS.toMillis(30));
|
||||
} else if (duration > 0) {
|
||||
mBinding.control.seek.setKeyTimeIncrement(TimeUnit.SECONDS.toMillis(15));
|
||||
}
|
||||
}
|
||||
|
||||
// 确保进度条状态正确
|
||||
if (mPlayers != null) {
|
||||
long position = mPlayers.getPosition();
|
||||
long duration = mPlayers.getDuration();
|
||||
if (position > 0 && duration > 0) {
|
||||
mBinding.control.seek.setPosition(position);
|
||||
mBinding.control.seek.setDuration(duration);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onPortraitMode() {
|
||||
// 竖屏模式下的处理
|
||||
// 恢复进度条的默认敏感度
|
||||
if (mPlayers != null) {
|
||||
long duration = mPlayers.getDuration();
|
||||
if (duration > 0) {
|
||||
mBinding.control.seek.setKeyTimeIncrement(duration);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isStop() {
|
||||
@@ -1566,10 +1644,40 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
|
||||
|
||||
@Override
|
||||
public void onSeekEnd(long time) {
|
||||
mBinding.widget.seek.setVisibility(View.GONE);
|
||||
mPlayers.seek(time);
|
||||
showProgress();
|
||||
onPlay();
|
||||
handleLandscapeSeek(time);
|
||||
}
|
||||
|
||||
// 添加新的方法,处理横屏模式下的特殊逻辑
|
||||
private void handleLandscapeSeek(long time) {
|
||||
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||
// 横屏模式下的特殊处理
|
||||
mBinding.widget.seek.setVisibility(View.GONE);
|
||||
mPlayers.pause();
|
||||
mPlayers.seek(time);
|
||||
showProgress();
|
||||
App.post(() -> {
|
||||
long actualPosition = mPlayers.getPosition();
|
||||
if (Math.abs(actualPosition - time) > 500) {
|
||||
mPlayers.seek(time);
|
||||
}
|
||||
onPlay();
|
||||
hideProgress();
|
||||
}, 150); // 横屏模式下延迟更长,确保跳转完成
|
||||
} else {
|
||||
// 竖屏模式使用原有逻辑
|
||||
mBinding.widget.seek.setVisibility(View.GONE);
|
||||
mPlayers.pause();
|
||||
mPlayers.seek(time);
|
||||
showProgress();
|
||||
App.post(() -> {
|
||||
long actualPosition = mPlayers.getPosition();
|
||||
if (Math.abs(actualPosition - time) > 500) {
|
||||
mPlayers.seek(time);
|
||||
}
|
||||
onPlay();
|
||||
hideProgress();
|
||||
}, 100); // 竖屏模式下延迟较短
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.view.MotionEvent;
|
||||
import android.view.ScaleGestureDetector;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.content.res.Configuration;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
@@ -109,6 +110,17 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener im
|
||||
if (isEdge(e1) || changeScale || lock || e1.getPointerCount() > 1) return true;
|
||||
float deltaX = e2.getX() - e1.getX();
|
||||
float deltaY = e1.getY() - e2.getY();
|
||||
|
||||
// 在横屏模式下,调整触摸事件的处理逻辑
|
||||
if (activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||
// 横屏模式下,增加对水平滑动的敏感度
|
||||
if (Math.abs(deltaX) > Math.abs(deltaY) * 0.5f) {
|
||||
if (touch) checkFunc(distanceX, distanceY, e2);
|
||||
if (changeTime) listener.onSeek(time = (long) (deltaX * 50));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (touch) checkFunc(distanceX, distanceY, e2);
|
||||
if (changeTime) listener.onSeek(time = (long) (deltaX * 50));
|
||||
if (changeBright) setBright(deltaY);
|
||||
@@ -145,9 +157,32 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener im
|
||||
|
||||
private void checkFunc(float distanceX, float distanceY, MotionEvent e2) {
|
||||
int four = ResUtil.getScreenWidth(activity) / 4;
|
||||
if (e2.getX() > four && e2.getX() < four * 3) center = true;
|
||||
else if (Math.abs(distanceX) < Math.abs(distanceY)) checkSide(e2);
|
||||
if (Math.abs(distanceX) >= Math.abs(distanceY)) changeTime = true;
|
||||
|
||||
// 在横屏模式下,调整中心区域的判断
|
||||
if (activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||
// 横屏模式下,扩大中心区域,更容易触发进度条调整
|
||||
int centerStart = ResUtil.getScreenWidth(activity) / 3;
|
||||
int centerEnd = ResUtil.getScreenWidth(activity) * 2 / 3;
|
||||
if (e2.getX() > centerStart && e2.getX() < centerEnd) {
|
||||
center = true;
|
||||
} else if (Math.abs(distanceX) < Math.abs(distanceY)) {
|
||||
checkSide(e2);
|
||||
}
|
||||
// 横屏模式下,降低触发进度条调整的阈值
|
||||
if (Math.abs(distanceX) >= Math.abs(distanceY) * 0.7f) {
|
||||
changeTime = true;
|
||||
}
|
||||
} else {
|
||||
// 竖屏模式保持原有逻辑
|
||||
if (e2.getX() > four && e2.getX() < four * 3) {
|
||||
center = true;
|
||||
} else if (Math.abs(distanceX) < Math.abs(distanceY)) {
|
||||
checkSide(e2);
|
||||
}
|
||||
if (Math.abs(distanceX) >= Math.abs(distanceY)) {
|
||||
changeTime = true;
|
||||
}
|
||||
}
|
||||
touch = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
package com.fongmi.android.tv.ui.custom;
|
||||
|
||||
import android.animation.ArgbEvaluator;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.RectF;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatCheckBox;
|
||||
|
||||
public class CustomSwitch extends AppCompatCheckBox {
|
||||
|
||||
private Paint trackPaint;
|
||||
private Paint thumbPaint;
|
||||
private RectF trackRect;
|
||||
private RectF thumbRect;
|
||||
|
||||
private float thumbPosition = 0f; // 0 = 左边, 1 = 右边
|
||||
private int currentTrackColor;
|
||||
private int currentThumbColor;
|
||||
|
||||
private static final int TRACK_COLOR_OFF = 0xFF555555; // 灰色
|
||||
private static final int TRACK_COLOR_ON = 0xFFFFEB3B; // 黄色
|
||||
private static final int THUMB_COLOR_OFF = 0xFFFFFFFF; // 白色
|
||||
private static final int THUMB_COLOR_ON = 0xFF000000; // 黑色
|
||||
|
||||
private ValueAnimator animator;
|
||||
|
||||
public CustomSwitch(Context context) {
|
||||
super(context);
|
||||
init();
|
||||
}
|
||||
|
||||
public CustomSwitch(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
init();
|
||||
}
|
||||
|
||||
public CustomSwitch(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
init();
|
||||
}
|
||||
|
||||
private void init() {
|
||||
// 隐藏默认的checkbox样式
|
||||
setButtonDrawable(null);
|
||||
|
||||
trackPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
thumbPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
|
||||
trackRect = new RectF();
|
||||
thumbRect = new RectF();
|
||||
|
||||
currentTrackColor = TRACK_COLOR_OFF;
|
||||
currentThumbColor = THUMB_COLOR_OFF;
|
||||
|
||||
// 监听状态变化
|
||||
setOnCheckedChangeListener((buttonView, isChecked) -> animateSwitch(isChecked));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
// 固定尺寸:50dp × 30dp
|
||||
int width = (int) (50 * getResources().getDisplayMetrics().density);
|
||||
int height = (int) (30 * getResources().getDisplayMetrics().density);
|
||||
setMeasuredDimension(width, height);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas) {
|
||||
int width = getWidth();
|
||||
int height = getHeight();
|
||||
float radius = height / 2f;
|
||||
|
||||
// 绘制轨道
|
||||
trackRect.set(0, 0, width, height);
|
||||
trackPaint.setColor(currentTrackColor);
|
||||
canvas.drawRoundRect(trackRect, radius, radius, trackPaint);
|
||||
|
||||
// 计算小圆位置
|
||||
float thumbSize = height - 8 * getResources().getDisplayMetrics().density; // 22dp
|
||||
float padding = 4 * getResources().getDisplayMetrics().density;
|
||||
float thumbLeft = padding + thumbPosition * (width - thumbSize - 2 * padding);
|
||||
float thumbTop = padding;
|
||||
|
||||
// 绘制小圆
|
||||
thumbRect.set(thumbLeft, thumbTop, thumbLeft + thumbSize, thumbTop + thumbSize);
|
||||
thumbPaint.setColor(currentThumbColor);
|
||||
canvas.drawOval(thumbRect, thumbPaint);
|
||||
}
|
||||
|
||||
private void animateSwitch(boolean isChecked) {
|
||||
if (animator != null && animator.isRunning()) {
|
||||
animator.cancel();
|
||||
}
|
||||
|
||||
float targetPosition = isChecked ? 1f : 0f;
|
||||
int targetTrackColor = isChecked ? TRACK_COLOR_ON : TRACK_COLOR_OFF;
|
||||
int targetThumbColor = isChecked ? THUMB_COLOR_ON : THUMB_COLOR_OFF;
|
||||
|
||||
animator = ValueAnimator.ofFloat(thumbPosition, targetPosition);
|
||||
animator.setDuration(250); // 250ms动画时长
|
||||
|
||||
final ArgbEvaluator colorEvaluator = new ArgbEvaluator();
|
||||
|
||||
animator.addUpdateListener(animation -> {
|
||||
thumbPosition = (float) animation.getAnimatedValue();
|
||||
|
||||
// 颜色渐变
|
||||
currentTrackColor = (int) colorEvaluator.evaluate(
|
||||
thumbPosition, TRACK_COLOR_OFF, TRACK_COLOR_ON
|
||||
);
|
||||
currentThumbColor = (int) colorEvaluator.evaluate(
|
||||
thumbPosition, THUMB_COLOR_OFF, THUMB_COLOR_ON
|
||||
);
|
||||
|
||||
invalidate();
|
||||
});
|
||||
|
||||
animator.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setChecked(boolean checked) {
|
||||
super.setChecked(checked);
|
||||
// 初始化时不播放动画
|
||||
if (!isAttachedToWindow()) {
|
||||
thumbPosition = checked ? 1f : 0f;
|
||||
currentTrackColor = checked ? TRACK_COLOR_ON : TRACK_COLOR_OFF;
|
||||
currentThumbColor = checked ? THUMB_COLOR_ON : THUMB_COLOR_OFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.fongmi.android.tv.api.config.WallConfig;
|
||||
import com.fongmi.android.tv.bean.Config;
|
||||
import com.fongmi.android.tv.databinding.DialogConfigBinding;
|
||||
import com.fongmi.android.tv.impl.ConfigCallback;
|
||||
import com.fongmi.android.tv.impl.Callback;
|
||||
import com.fongmi.android.tv.ui.custom.CustomTextListener;
|
||||
import com.fongmi.android.tv.utils.FileChooser;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
@@ -156,7 +157,63 @@ public class ConfigDialog {
|
||||
}
|
||||
|
||||
// 只有URL不为空时,才设置配置
|
||||
// 保存原始URL,以便在添加失败时恢复
|
||||
String originalUrl = ori;
|
||||
callback.setConfig(Config.find(url, type));
|
||||
|
||||
// 添加一个延迟检查,如果配置没有成功加载,则恢复原始URL
|
||||
new android.os.Handler().postDelayed(() -> {
|
||||
// 检查配置是否成功加载
|
||||
Config currentConfig = getConfig();
|
||||
if (currentConfig == null || !currentConfig.getUrl().equals(url)) {
|
||||
// 配置加载失败,恢复原始URL
|
||||
if (!TextUtils.isEmpty(originalUrl)) {
|
||||
// 如果有原始URL,恢复原始URL
|
||||
callback.setConfig(Config.find(originalUrl, type));
|
||||
} else {
|
||||
// 如果没有原始URL,设置为空
|
||||
switch (type) {
|
||||
case 0:
|
||||
VodConfig.get().clear().config(Config.vod()).load(new Callback() {
|
||||
@Override
|
||||
public void success() {}
|
||||
|
||||
@Override
|
||||
public void success(String result) {}
|
||||
|
||||
@Override
|
||||
public void error(String msg) {}
|
||||
});
|
||||
break;
|
||||
case 1:
|
||||
LiveConfig.get().clear().config(Config.live()).load(new Callback() {
|
||||
@Override
|
||||
public void success() {}
|
||||
|
||||
@Override
|
||||
public void success(String result) {}
|
||||
|
||||
@Override
|
||||
public void error(String msg) {}
|
||||
});
|
||||
break;
|
||||
case 2:
|
||||
WallConfig.get().clear().config(Config.wall()).load(new Callback() {
|
||||
@Override
|
||||
public void success() {}
|
||||
|
||||
@Override
|
||||
public void success(String result) {}
|
||||
|
||||
@Override
|
||||
public void error(String msg) {}
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}, 2000); // 2秒后检查
|
||||
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
|
||||
@@ -126,6 +126,8 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
|
||||
private void setSpeed(@NonNull Slider slider, float value, boolean fromUser) {
|
||||
parent.control.action.speed.setText(player.setSpeed(value));
|
||||
if (history != null) history.setSpeed(player.getSpeed());
|
||||
// 实时更新倍速数值显示
|
||||
binding.speedValue.setText(String.format("%.1fx", value));
|
||||
}
|
||||
|
||||
private void setScaleText() {
|
||||
@@ -179,6 +181,8 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
|
||||
binding.player.setText(parent.control.action.player.getText());
|
||||
binding.decode.setVisibility(parent.control.action.decode.getVisibility());
|
||||
binding.danmaku.setVisibility(parent.control.action.danmaku.getVisibility());
|
||||
// 初始化倍速数值显示
|
||||
binding.speedValue.setText(String.format("%.1fx", Math.max(player.getSpeed(), 0.5f)));
|
||||
}
|
||||
|
||||
public void setParseVisible(boolean visible) {
|
||||
|
||||
@@ -60,6 +60,8 @@ public class TimerDialog extends BaseDialog implements Timer.Callback {
|
||||
binding.time2.setOnClickListener(this::setTimer);
|
||||
binding.time3.setOnClickListener(this::setTimer);
|
||||
binding.time4.setOnClickListener(this::setTimer);
|
||||
binding.time5.setOnClickListener(this::setTimer);
|
||||
binding.time6.setOnClickListener(this::setTimer);
|
||||
}
|
||||
|
||||
private void setTimer(View view) {
|
||||
|
||||
@@ -8,9 +8,11 @@ import android.text.SpannableString;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.style.RelativeSizeSpan;
|
||||
import android.util.TypedValue;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
@@ -101,24 +103,9 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
protected void initView() {
|
||||
setSourceHintText(mBinding.vodUrl, VodConfig.getDesc(), R.string.source_hint_setting);
|
||||
setSourceHintText(mBinding.liveUrl, LiveConfig.getDesc(), R.string.source_hint_live);
|
||||
setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall);
|
||||
// setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall); // 壁纸功能已移除
|
||||
mBinding.versionText.setText(getString(R.string.setting_version) + " " + BuildConfig.VERSION_NAME);
|
||||
|
||||
// 设置开关的颜色为黄色
|
||||
int accentColor = getResources().getColor(R.color.accent);
|
||||
android.content.res.ColorStateList colorStateList = new android.content.res.ColorStateList(
|
||||
new int[][]{
|
||||
new int[]{-android.R.attr.state_checked},
|
||||
new int[]{android.R.attr.state_checked}
|
||||
},
|
||||
new int[]{
|
||||
0x66FFFFFF, // 未选中时的颜色
|
||||
accentColor // 选中时的颜色
|
||||
}
|
||||
);
|
||||
mBinding.incognitoSwitch.setThumbTintList(android.content.res.ColorStateList.valueOf(android.graphics.Color.WHITE));
|
||||
mBinding.incognitoSwitch.setTrackTintList(colorStateList);
|
||||
|
||||
setOtherText();
|
||||
setCacheText();
|
||||
String[] quotes = getResources().getStringArray(R.array.motivational_quotes);
|
||||
@@ -130,7 +117,30 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
mBinding.dohText.setText(getDohList()[getDohIndex()]);
|
||||
mBinding.proxyText.setText(getProxy(Setting.getProxy()));
|
||||
mBinding.incognitoSwitch.setChecked(Setting.isIncognito());
|
||||
mBinding.liveTabVisibleSwitch.setChecked(Setting.isLiveTabVisible());
|
||||
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Setting.getSize()]);
|
||||
setLiveSettingsVisibility();
|
||||
}
|
||||
|
||||
private void setLiveSettingsVisibility() {
|
||||
boolean isLiveTabVisible = !Setting.isLiveTabVisible(); // 注意:这里取反,因为开关是"隐藏直播"
|
||||
|
||||
// 获取直播容器的布局参数
|
||||
LinearLayout.LayoutParams liveContainerParams = (LinearLayout.LayoutParams) mBinding.liveContainer.getLayoutParams();
|
||||
|
||||
if (isLiveTabVisible) {
|
||||
// 直播开关打开:显示直播模块,间距为12dp
|
||||
mBinding.liveContainer.setVisibility(View.VISIBLE);
|
||||
liveContainerParams.topMargin = (int) TypedValue.applyDimension(
|
||||
TypedValue.COMPLEX_UNIT_DIP, 12, getResources().getDisplayMetrics());
|
||||
} else {
|
||||
// 直播开关关闭:隐藏直播模块,间距为0dp(这样视频模块和下一个模块之间会有正常间距)
|
||||
mBinding.liveContainer.setVisibility(View.GONE);
|
||||
liveContainerParams.topMargin = 0;
|
||||
}
|
||||
|
||||
// 应用布局参数
|
||||
mBinding.liveContainer.setLayoutParams(liveContainerParams);
|
||||
}
|
||||
|
||||
private void setCacheText() {
|
||||
@@ -146,7 +156,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
protected void initEvent() {
|
||||
mBinding.vod.setOnClickListener(this::onVod);
|
||||
mBinding.live.setOnClickListener(this::onLive);
|
||||
mBinding.wall.setOnClickListener(this::onWall);
|
||||
// mBinding.wall.setOnClickListener(this::onWall); // 壁纸功能已移除
|
||||
mBinding.proxy.setOnClickListener(this::onProxy);
|
||||
mBinding.cache.setOnClickListener(this::onCache);
|
||||
mBinding.backup.setOnClickListener(this::onBackup);
|
||||
@@ -158,13 +168,14 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
mBinding.vodHome.setOnClickListener(this::onVodHome);
|
||||
mBinding.live.setOnLongClickListener(this::onLiveEdit);
|
||||
mBinding.liveHome.setOnClickListener(this::onLiveHome);
|
||||
mBinding.wall.setOnLongClickListener(this::onWallEdit);
|
||||
// mBinding.wall.setOnLongClickListener(this::onWallEdit); // 壁纸功能已移除
|
||||
mBinding.vodHistory.setOnClickListener(this::onVodHistory);
|
||||
mBinding.version.setOnLongClickListener(this::onVersionDev);
|
||||
mBinding.liveHistory.setOnClickListener(this::onLiveHistory);
|
||||
mBinding.wallDefault.setOnClickListener(this::setWallDefault);
|
||||
mBinding.wallRefresh.setOnClickListener(this::setWallRefresh);
|
||||
mBinding.incognito.setOnClickListener(this::setIncognito);
|
||||
// mBinding.wallDefault.setOnClickListener(this::setWallDefault); // 壁纸功能已移除
|
||||
// mBinding.wallRefresh.setOnClickListener(this::setWallRefresh); // 壁纸功能已移除
|
||||
mBinding.incognitoSwitch.setOnClickListener(this::setIncognito);
|
||||
mBinding.liveTabVisibleSwitch.setOnClickListener(this::setLiveTabVisible);
|
||||
mBinding.size.setOnClickListener(this::setSize);
|
||||
mBinding.doh.setOnClickListener(this::setDoh);
|
||||
}
|
||||
@@ -215,9 +226,9 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
case 2:
|
||||
Notify.progress(getActivity());
|
||||
WallConfig.load(config, getCallback(2));
|
||||
if (mBinding != null && mBinding.wallUrl != null) {
|
||||
mBinding.wallUrl.setText(config.getDesc());
|
||||
}
|
||||
// if (mBinding != null && mBinding.wallUrl != null) { // 壁纸功能已移除
|
||||
// mBinding.wallUrl.setText(config.getDesc());
|
||||
// }
|
||||
break;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@@ -256,7 +267,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
setSourceHintText(mBinding.liveUrl, LiveConfig.getDesc(), R.string.source_hint_live);
|
||||
break;
|
||||
case 2:
|
||||
setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall);
|
||||
// setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall); // 壁纸功能已移除
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -272,7 +283,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
RefreshEvent.config();
|
||||
setSourceHintText(mBinding.vodUrl, VodConfig.getDesc(), R.string.source_hint_setting);
|
||||
setSourceHintText(mBinding.liveUrl, LiveConfig.getDesc(), R.string.source_hint_live);
|
||||
setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall);
|
||||
// setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall); // 壁纸功能已移除
|
||||
break;
|
||||
case 1:
|
||||
setCacheText();
|
||||
@@ -283,7 +294,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
case 2:
|
||||
setCacheText();
|
||||
Notify.dismiss();
|
||||
setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall);
|
||||
// setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall); // 壁纸功能已移除
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -394,7 +405,17 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
private void setIncognito(View view) {
|
||||
boolean isChecked = !Setting.isIncognito();
|
||||
Setting.putIncognito(isChecked);
|
||||
mBinding.incognitoSwitch.setChecked(isChecked);
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
}
|
||||
|
||||
private void setLiveTabVisible(View view) {
|
||||
boolean isChecked = !Setting.isLiveTabVisible();
|
||||
Setting.putLiveTabVisible(isChecked);
|
||||
// 发送刷新事件,通知主界面更新导航栏
|
||||
RefreshEvent.config();
|
||||
// 更新直播设置项的可见性
|
||||
setLiveSettingsVisibility();
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
}
|
||||
|
||||
private void setSize(View view) {
|
||||
@@ -488,7 +509,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
if (hidden) return;
|
||||
setSourceHintText(mBinding.vodUrl, VodConfig.getDesc(), R.string.source_hint_setting);
|
||||
setSourceHintText(mBinding.liveUrl, LiveConfig.getDesc(), R.string.source_hint_live);
|
||||
setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall);
|
||||
// setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall); // 壁纸功能已移除
|
||||
setCacheText();
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ import com.fongmi.android.tv.ui.activity.CollectActivity;
|
||||
import com.fongmi.android.tv.ui.activity.HistoryActivity;
|
||||
import com.fongmi.android.tv.ui.activity.KeepActivity;
|
||||
import com.fongmi.android.tv.ui.activity.VideoActivity;
|
||||
import com.airbnb.lottie.LottieAnimationView;
|
||||
import com.fongmi.android.tv.ui.adapter.TypeAdapter;
|
||||
import com.fongmi.android.tv.ui.base.BaseFragment;
|
||||
import com.fongmi.android.tv.ui.dialog.ConfigDialog;
|
||||
@@ -265,6 +266,15 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
|
||||
}
|
||||
// 空源状态下隐藏所有悬浮按钮
|
||||
hideFabButtons();
|
||||
// 启动Lottie动画
|
||||
try {
|
||||
LottieAnimationView lottieView = mBinding.emptySourceHint.findViewById(R.id.lottieAnimation);
|
||||
if (lottieView != null) {
|
||||
lottieView.playAnimation();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 忽略错误
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public class Timer {
|
||||
|
||||
public void delay() {
|
||||
cancel();
|
||||
set(TimeUnit.MINUTES.toMillis(5) + tick);
|
||||
set(TimeUnit.MINUTES.toMillis(15) + tick);
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/white" android:state_focused="true" android:state_selected="true" />
|
||||
<item android:color="@color/green_400" android:state_selected="true" />
|
||||
<item android:color="@color/primary" android:state_selected="true" />
|
||||
<item android:color="@color/white" />
|
||||
</selector>
|
||||
|
Before Width: | Height: | Size: 703 KiB |
|
Before Width: | Height: | Size: 890 KiB |
|
Before Width: | Height: | Size: 869 KiB |
|
Before Width: | Height: | Size: 64 B After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- 开启状态:黄色底 + 黑色圆在右边 -->
|
||||
<item android:state_checked="true">
|
||||
<layer-list>
|
||||
<!-- 黄色轨道 -->
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#FFEB3B" />
|
||||
<corners android:radius="15dp" />
|
||||
</shape>
|
||||
</item>
|
||||
<!-- 黑色小圆(右边,精确定位 22dp) -->
|
||||
<item android:top="4dp" android:bottom="4dp" android:right="4dp" android:left="24dp">
|
||||
<shape android:shape="oval">
|
||||
<solid android:color="#000000" />
|
||||
</shape>
|
||||
</item>
|
||||
</layer-list>
|
||||
</item>
|
||||
|
||||
<!-- 关闭状态:灰色底 + 白色圆在左边 -->
|
||||
<item>
|
||||
<layer-list>
|
||||
<!-- 灰色轨道 -->
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#555555" />
|
||||
<corners android:radius="15dp" />
|
||||
</shape>
|
||||
</item>
|
||||
<!-- 白色小圆(左边,精确定位 22dp) -->
|
||||
<item android:top="4dp" android:bottom="4dp" android:left="4dp" android:right="24dp">
|
||||
<shape android:shape="oval">
|
||||
<solid android:color="#FFFFFF" />
|
||||
</shape>
|
||||
</item>
|
||||
</layer-list>
|
||||
</item>
|
||||
</selector>
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M480,595Q553,595 604.5,543.5Q656,492 656,419Q656,346 604.5,294.5Q553,243 480,243Q407,243 355.5,294.5Q304,346 304,419Q304,492 355.5,543.5Q407,595 480,595ZM480,420ZM480,760Q587,760 693,724.5Q799,689 896,619Q902,615 905,608.5Q908,602 908,595Q908,588 905,582Q902,576 896,572Q758,474 658,447.5Q558,421 480,421Q402,421 302,447.5Q202,474 64,572Q58,576 55,582Q52,588 52,595Q52,602 55,608.5Q58,615 64,619Q161,689 267,724.5Q373,760 480,760Z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M312,720Q261,720 214.5,702Q168,684 131,649Q83,604 61.5,542.5Q40,481 40,415Q40,337 78,288.5Q116,240 189,240Q203,240 215.5,242.5Q228,245 241,250L480,339L719,250Q732,245 744.5,242.5Q757,240 771,240Q844,240 882,288.5Q920,337 920,415Q920,481 898.5,542.5Q877,604 829,649Q792,684 745.5,702Q699,720 648,720Q582,720 536,690Q490,660 490,660L470,660Q470,660 424,690Q378,720 312,720ZM312,640Q349,640 381,622.5Q413,605 440,580L520,580Q547,605 579,622.5Q611,640 648,640Q684,640 717.5,627.5Q751,615 777,589Q811,555 825.5,509Q840,463 840,415Q840,374 823,346.5Q806,319 769,320Q766,320 747,324L480,424L213,324Q208,322 202.5,321Q197,320 191,320Q154,320 137,347Q120,374 120,415Q120,464 134.5,510Q149,556 184,590Q210,615 243,627.5Q276,640 312,640ZM361,580Q398,580 419,563.5Q440,547 440,518Q440,469 375.5,424.5Q311,380 239,380Q202,380 181,396.5Q160,413 160,442Q160,491 224.5,535.5Q289,580 361,580ZM355,520Q317,520 272.5,495Q228,470 220,444Q225,442 231.5,440.5Q238,439 245,439Q283,439 327.5,464.5Q372,490 380,516Q375,518 368.5,519Q362,520 355,520ZM599,581Q671,581 735.5,536Q800,491 800,442Q800,413 779.5,396Q759,379 721,379Q649,379 584.5,424Q520,469 520,518Q520,547 541,564Q562,581 599,581ZM605,520Q598,520 592,519Q586,518 581,516Q589,490 633.5,465Q678,440 716,440Q723,440 729,441Q735,442 740,444Q732,470 687.5,495Q643,520 605,520ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480L480,480L480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480L480,480Q480,480 480,480Q480,480 480,480Z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M480,840Q363,840 281.5,758.5Q200,677 200,560Q200,483 225.5,405Q251,327 291.5,263.5Q332,200 382,160Q432,120 480,120Q529,120 578.5,160Q628,200 668.5,263.5Q709,327 734.5,405Q760,483 760,560Q760,677 678.5,758.5Q597,840 480,840ZM480,760Q563,760 621.5,701.5Q680,643 680,560Q680,503 660.5,440Q641,377 611.5,323.5Q582,270 547,235Q512,200 480,200Q449,200 413.5,235Q378,270 348.5,323.5Q319,377 299.5,440Q280,503 280,560Q280,643 338.5,701.5Q397,760 480,760ZM520,720Q537,720 548.5,708.5Q560,697 560,680Q560,663 548.5,651.5Q537,640 520,640Q470,640 435,605Q400,570 400,520Q400,503 388.5,491.5Q377,480 360,480Q343,480 331.5,491.5Q320,503 320,520Q320,603 378.5,661.5Q437,720 520,720ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M123,520Q122,510 121.5,500Q121,490 121,480Q121,405 149,339.5Q177,274 226,225.5Q275,177 340,148.5Q405,120 480,120Q555,120 620.5,148.5Q686,177 734.5,225.5Q783,274 811.5,339.5Q840,405 840,480Q840,490 839.5,500Q839,510 838,520L757,520Q759,510 759.5,500Q760,490 760,480Q760,470 759.5,460Q759,450 757,440L639,440Q640,450 640,460Q640,470 640,480Q640,490 640,500Q640,510 639,520L560,520Q560,512 560,503.5Q560,495 560,487Q560,475 559.5,463Q559,451 558,440L403,440Q402,451 401.5,463Q401,475 401,487Q401,495 401,503.5Q401,512 401,520L322,520Q321,510 321,500Q321,490 321,480Q321,470 321,460Q321,450 322,440L204,440Q202,450 201.5,460Q201,470 201,480Q201,490 201.5,500Q202,510 204,520L123,520ZM228,360L331,360Q339,317 351,282.5Q363,248 377,220Q329,238 290,274.5Q251,311 228,360ZM414,360L546,360Q536,317 521,276Q506,235 480,200Q454,235 438.5,276Q423,317 414,360ZM630,360L733,360Q710,311 670.5,274.5Q631,238 583,220Q597,250 609.5,283.5Q622,317 630,360ZM440,840L440,800Q440,750 405,715Q370,680 320,680L80,680L80,600L320,600Q368,600 409.5,621Q451,642 480,680Q509,642 550.5,621Q592,600 640,600L880,600L880,680L640,680Q590,680 555,715Q520,750 520,800L520,840L440,840Z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M390,880L322,760L190,760L100,600L168,480L100,360L190,200L322,200L390,80L570,80L638,200L770,200L860,360L792,480L860,600L770,760L638,760L570,880L390,880ZM638,440L724,440L768,360L724,280L638,280L593,360L638,440ZM438,560L522,560L567,480L522,400L438,400L393,480L438,560ZM438,320L522,320L568,239L523,160L437,160L392,239L438,320ZM237,440L322,440L367,360L322,280L237,280L192,360L237,440ZM237,680L322,680L367,600L322,520L236,520L192,600L237,680ZM437,800L523,800L568,721L522,640L438,640L392,721L437,800ZM638,680L723,680L768,600L723,520L638,520L593,600L638,680Z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5s5,-2.24 5,-5S14.76,7 12,7L12,7zM17,15c0.75,-1.06 1.19,-2.36 1.19,-3.77c0,-3.61 -2.92,-6.54 -6.54,-6.54c-0.84,0 -1.65,0.16 -2.39,0.45L12,7.78L12,7.78c2.33,0 4.22,1.89 4.22,4.22c0,1.04 -0.38,1.99 -1,2.73V15zM2,4.27l2.28,2.28l0.46,0.46C3.08,8.3 1.78,10.02 1,12c1.73,4.39 6,7.5 11,7.5c1.55,0 3.03,-0.3 4.38,-0.84l0.42,0.42L19.73,22L21,20.73L3.27,3L2,4.27zM7.53,9.8l1.55,1.55c-0.05,0.21 -0.08,0.43 -0.08,0.65c0,1.66 1.34,3 3,3c0.22,0 0.44,-0.03 0.65,-0.08l1.55,1.55c-0.67,0.33 -1.41,0.53 -2.2,0.53c-2.76,0 -5,-2.24 -5,-5C7,11.21 7.2,10.47 7.53,9.8z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF0000"
|
||||
android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M480,880Q346,880 253,787Q160,694 160,560L160,360Q160,238 256,159Q352,80 480,80Q608,80 704,159Q800,238 800,360L800,880L480,880ZM480,800L560,800Q541,775 530.5,744.5Q520,714 520,680L520,638Q510,639 500,639.5Q490,640 480,640Q413,640 350.5,616.5Q288,593 240,545L240,560Q240,660 310,730Q380,800 480,800ZM600,680Q600,730 635,765Q670,800 720,800L720,545Q694,571 664,589.5Q634,608 600,620L600,680ZM440,400Q440,334 395,289Q350,244 286,241Q264,265 252,295Q240,325 240,360Q240,449 312.5,504.5Q385,560 480,560Q575,560 647.5,504.5Q720,449 720,360Q720,325 708,294.5Q696,264 674,240Q610,242 565,288Q520,334 520,400L440,400ZM340,400Q323,400 311.5,388.5Q300,377 300,360Q300,343 311.5,331.5Q323,320 340,320Q357,320 368.5,331.5Q380,343 380,360Q380,377 368.5,388.5Q357,400 340,400ZM620,400Q603,400 591.5,388.5Q580,377 580,360Q580,343 591.5,331.5Q603,320 620,320Q637,320 648.5,331.5Q660,343 660,360Q660,377 648.5,388.5Q637,400 620,400ZM370,182Q404,196 432,219Q460,242 480,271Q500,242 527.5,219Q555,196 589,182Q564,171 536.5,165.5Q509,160 480,160Q451,160 423.5,165.5Q396,171 370,182ZM800,800L800,800L720,800Q670,800 635,800Q600,800 600,800L600,800Q580,800 560,800Q540,800 520,800L520,800Q520,800 578.5,800Q637,800 720,800L800,800ZM480,800Q380,800 310,730Q240,660 240,560L240,560Q240,660 310,730Q380,800 480,800Q540,800 550,800Q560,800 560,800L560,800Q560,800 560,800Q560,800 560,800L480,800ZM600,680L600,680Q600,730 635,765Q670,800 720,800L720,800Q670,800 635,765Q600,730 600,680ZM480,271Q480,271 480,271Q480,271 480,271Q480,271 480,271Q480,271 480,271Q480,271 480,271Q480,271 480,271Q480,271 480,271Q480,271 480,271Z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M508,760L732,760Q725,786 708,802Q691,818 664,822L228,875Q195,880 168.5,859.5Q142,839 138,806L85,369Q81,336 101,310Q121,284 154,280L200,274L200,354L164,359Q164,359 164,359Q164,359 164,359L218,796Q218,796 218,796Q218,796 218,796L508,760ZM360,680Q327,680 303.5,656.5Q280,633 280,600L280,160Q280,127 303.5,103.5Q327,80 360,80L800,80Q833,80 856.5,103.5Q880,127 880,160L880,600Q880,633 856.5,656.5Q833,680 800,680L360,680ZM360,600L800,600Q800,600 800,600Q800,600 800,600L800,160Q800,160 800,160Q800,160 800,160L360,160Q360,160 360,160Q360,160 360,160L360,600Q360,600 360,600Q360,600 360,600ZM580,380Q580,380 580,380Q580,380 580,380L580,380Q580,380 580,380Q580,380 580,380L580,380Q580,380 580,380Q580,380 580,380L580,380Q580,380 580,380Q580,380 580,380ZM218,796L218,796L218,796L218,796L218,796Q218,796 218,796Q218,796 218,796ZM581,560Q649,560 696.5,513Q744,466 749,400Q681,400 632.5,447Q584,494 581,560ZM581,560Q578,494 529.5,447Q481,400 413,400Q418,466 465.5,513Q513,560 581,560ZM581,440Q598,440 609.5,428.5Q621,417 621,400L621,390L631,394Q646,400 661.5,397Q677,394 685,380Q694,365 691,348Q688,331 671,324L661,320L671,316Q688,309 690.5,291.5Q693,274 685,260Q676,245 661,242.5Q646,240 631,246L621,250L621,240Q621,223 609.5,211.5Q598,200 581,200Q564,200 552.5,211.5Q541,223 541,240L541,250L531,246Q516,240 501,242.5Q486,245 477,260Q469,274 471.5,291.5Q474,309 491,316L501,320L491,324Q474,331 471,348Q468,365 477,380Q485,394 500.5,397Q516,400 531,394L541,390L541,400Q541,417 552.5,428.5Q564,440 581,440ZM581,360Q564,360 552.5,348.5Q541,337 541,320Q541,303 552.5,291.5Q564,280 581,280Q598,280 609.5,291.5Q621,303 621,320Q621,337 609.5,348.5Q598,360 581,360Z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M342,800L618,800Q618,800 618,800Q618,800 618,800L658,640L302,640L342,800Q342,800 342,800Q342,800 342,800ZM342,880Q314,880 293,863Q272,846 265,819L220,640L740,640L695,819Q688,846 667,863Q646,880 618,880L342,880ZM200,560L760,560Q760,560 760,560Q760,560 760,560L760,480L200,480L200,560Q200,560 200,560Q200,560 200,560ZM480,320Q480,220 550,150Q620,80 720,80Q720,170 663,236Q606,302 520,316L520,400L840,400L840,560Q840,593 816.5,616.5Q793,640 760,640L200,640Q167,640 143.5,616.5Q120,593 120,560L120,400L440,400L440,316Q354,302 297,236Q240,170 240,80Q340,80 410,150Q480,220 480,320Z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M280,680L280,280L680,280L680,680L280,680ZM360,600L600,600L600,360L360,360L360,600ZM200,760L200,840Q167,840 143.5,816.5Q120,793 120,760L200,760ZM120,680L120,600L200,600L200,680L120,680ZM120,520L120,440L200,440L200,520L120,520ZM120,360L120,280L200,280L200,360L120,360ZM200,200L120,200Q120,167 143.5,143.5Q167,120 200,120L200,200ZM280,840L280,760L360,760L360,840L280,840ZM280,200L280,120L360,120L360,200L280,200ZM440,840L440,760L520,760L520,840L440,840ZM440,200L440,120L520,120L520,200L440,200ZM600,840L600,760L680,760L680,840L600,840ZM600,200L600,120L680,120L680,200L600,200ZM760,840L760,760L840,760Q840,793 816.5,816.5Q793,840 760,840ZM760,680L760,600L840,600L840,680L760,680ZM760,520L760,440L840,440L840,520L760,520ZM760,360L760,280L840,280L840,360L760,360ZM760,200L760,120Q793,120 816.5,143.5Q840,167 840,200L760,200Z"/>
|
||||
</vector>
|
||||
@@ -3,7 +3,7 @@
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/yellow_500" />
|
||||
<solid android:color="@color/primary" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="14dp"
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/mask">
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="8dp" />
|
||||
<solid android:color="#f5f5f5" />
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/black_20" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="8dp"
|
||||
android:left="12dp"
|
||||
android:right="12dp"
|
||||
android:top="8dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@android:color/transparent" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="#802196F3">
|
||||
android:color="#80FFEB3B">
|
||||
<item android:id="@android:id/mask">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#f5f5f5" />
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/yellow_500" />
|
||||
<solid android:color="@color/primary" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="10dp"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/yellow_500" />
|
||||
<solid android:color="@color/primary" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="18dp"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="#8066BB6A">
|
||||
android:color="#80FFEB3B">
|
||||
<item android:id="@android:id/mask">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#f5f5f5" />
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/black_20" />
|
||||
<corners android:radius="8dp" />
|
||||
<corners android:radius="12dp" />
|
||||
<padding
|
||||
android:bottom="14dp"
|
||||
android:left="16dp"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/yellow_500" />
|
||||
<solid android:color="@color/primary" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="18dp"
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/primary" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="12dp"
|
||||
android:left="16dp"
|
||||
android:right="16dp"
|
||||
android:top="12dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/black_20" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="12dp"
|
||||
android:left="16dp"
|
||||
android:right="16dp"
|
||||
android:top="12dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
@@ -56,7 +56,30 @@
|
||||
android:paddingEnd="8dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
tools:text="21:30 | 85%" />
|
||||
tools:text="21:30" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/charging_indicator"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:src="@drawable/ic_charging_bolt"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/battery_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:paddingEnd="8dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp"
|
||||
android:visibility="gone"
|
||||
tools:text="85%"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/cast"
|
||||
|
||||
@@ -154,5 +154,15 @@
|
||||
app:spanCount="2"
|
||||
tools:listitem="@layout/adapter_vod_rect" />
|
||||
|
||||
<!-- 搜索结果空状态Lottie动画 -->
|
||||
<include
|
||||
android:id="@+id/emptyLayout"
|
||||
layout="@layout/view_empty_search"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_marginTop="-40dp"
|
||||
android:visibility="gone" />
|
||||
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
@@ -18,7 +18,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_back" />
|
||||
|
||||
<TextView
|
||||
@@ -35,7 +35,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_sync" />
|
||||
|
||||
<ImageView
|
||||
@@ -43,7 +43,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_delete"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
@@ -65,5 +65,15 @@
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingBottom="8dp" />
|
||||
|
||||
<!-- 空状态Lottie动画 -->
|
||||
<include
|
||||
android:id="@+id/emptyLayout"
|
||||
layout="@layout/view_empty_lottie"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="-40dp"
|
||||
android:visibility="gone" />
|
||||
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
@@ -18,7 +18,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_back" />
|
||||
|
||||
<TextView
|
||||
@@ -35,7 +35,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_sync" />
|
||||
|
||||
<ImageView
|
||||
@@ -43,7 +43,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_delete"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
@@ -65,5 +65,14 @@
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingBottom="8dp" />
|
||||
|
||||
<include
|
||||
android:id="@+id/emptyLayout"
|
||||
layout="@layout/view_empty_keep"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="-40dp"
|
||||
android:visibility="gone" />
|
||||
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
@@ -19,7 +19,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_back" />
|
||||
|
||||
<TextView
|
||||
@@ -222,11 +222,10 @@
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
<com.fongmi.android.tv.ui.custom.CustomSwitch
|
||||
android:id="@+id/tunnelSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/M3SwitchStyle" />
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -249,11 +248,10 @@
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
<com.fongmi.android.tv.ui.custom.CustomSwitch
|
||||
android:id="@+id/audioDecodeSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/M3SwitchStyle" />
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -276,11 +274,10 @@
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
<com.fongmi.android.tv.ui.custom.CustomSwitch
|
||||
android:id="@+id/aacSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/M3SwitchStyle" />
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -303,11 +300,10 @@
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
<com.fongmi.android.tv.ui.custom.CustomSwitch
|
||||
android:id="@+id/danmakuLoadSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/M3SwitchStyle" />
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
@@ -4,11 +4,14 @@
|
||||
android:id="@+id/text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_item"
|
||||
android:gravity="center"
|
||||
android:padding="8dp"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/text"
|
||||
android:textSize="14sp"
|
||||
android:textSize="12sp"
|
||||
tools:text="泥巴" />
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
android:layout_marginTop="24dp"
|
||||
android:background="@drawable/shape_about_button"
|
||||
android:text="我的GitHub"
|
||||
android:textColor="#212121"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="14sp"
|
||||
android:padding="12dp"/>
|
||||
|
||||
|
||||
@@ -15,9 +15,12 @@
|
||||
android:stepSize="1"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="10"
|
||||
app:thumbColor="@color/yellow_500"
|
||||
app:tickVisible="false"
|
||||
app:trackColorActive="@color/yellow_500"
|
||||
app:trackColorInactive="@color/yellow_50" />
|
||||
app:thumbColor="@color/accent"
|
||||
app:thumbRadius="10dp"
|
||||
app:tickVisible="true"
|
||||
app:tickColor="@color/black_50"
|
||||
app:trackColorActive="@color/accent"
|
||||
app:trackColorInactive="@color/white_20"
|
||||
app:trackHeight="6dp" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -8,12 +8,30 @@
|
||||
android:padding="16dp"
|
||||
tools:background="@color/white">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/control_speed"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="16sp" />
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/control_speed"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/speedValue"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="1.0x"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<com.google.android.material.slider.Slider
|
||||
android:id="@+id/speed"
|
||||
@@ -24,10 +42,13 @@
|
||||
android:stepSize="0.25"
|
||||
android:valueFrom="0.5"
|
||||
android:valueTo="5"
|
||||
app:thumbColor="@color/yellow_500"
|
||||
app:tickVisible="false"
|
||||
app:trackColorActive="@color/yellow_500"
|
||||
app:trackColorInactive="@color/yellow_50" />
|
||||
app:thumbColor="@color/accent"
|
||||
app:thumbRadius="10dp"
|
||||
app:tickVisible="true"
|
||||
app:tickColor="@color/black_50"
|
||||
app:trackColorActive="@color/accent"
|
||||
app:trackColorInactive="@color/white_20"
|
||||
app:trackHeight="6dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/parseText"
|
||||
|
||||
@@ -15,8 +15,12 @@
|
||||
android:stepSize="0.5"
|
||||
android:valueFrom="2"
|
||||
android:valueTo="5"
|
||||
app:tickVisible="false"
|
||||
app:thumbColor="@color/accent"
|
||||
app:thumbRadius="10dp"
|
||||
app:tickVisible="true"
|
||||
app:tickColor="@color/black_50"
|
||||
app:trackColorActive="@color/accent"
|
||||
app:trackColorInactive="@color/yellow_50" />
|
||||
app:trackColorInactive="@color/white_20"
|
||||
app:trackHeight="6dp" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -29,50 +29,80 @@
|
||||
<TextView
|
||||
android:id="@+id/time1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="5"
|
||||
android:text="@string/timer_5"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp" />
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="15"
|
||||
android:text="@string/timer_15"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp" />
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="30"
|
||||
android:text="@string/timer_30"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp" />
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="60"
|
||||
android:text="@string/timer_60"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp" />
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="120"
|
||||
android:text="@string/timer_120"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time6"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="180"
|
||||
android:text="@string/timer_180"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -96,25 +126,41 @@
|
||||
android:textStyle="bold"
|
||||
tools:text="5:00" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
<TextView
|
||||
android:id="@+id/delay"
|
||||
style="?attr/materialButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_timer_delay_button"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:paddingStart="30dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="12dp"
|
||||
android:singleLine="true"
|
||||
android:text="@string/timer_delay"
|
||||
android:textColor="@color/white" />
|
||||
android:textColor="@color/black"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
<TextView
|
||||
android:id="@+id/reset"
|
||||
style="?attr/materialButtonOutlinedStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:background="@drawable/shape_timer_reset_button"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:paddingStart="30dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="12dp"
|
||||
android:singleLine="true"
|
||||
android:text="@string/timer_cancel"
|
||||
android:textColor="?android:attr/textColorPrimary" />
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp" />
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -44,6 +44,7 @@
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="10dp"
|
||||
android:fillViewport="true"
|
||||
android:overScrollMode="never"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
@@ -78,7 +79,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:text="(长按输入框可改源名)"
|
||||
android:text="(单击视频输入框可加源)"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp"
|
||||
android:alpha="0.5" />
|
||||
@@ -129,7 +130,8 @@
|
||||
android:background="@drawable/shape_item"
|
||||
android:padding="16dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_setting_home" />
|
||||
android:src="@drawable/potted_plant_24px"
|
||||
android:tint="@color/white" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/vodHistory"
|
||||
@@ -138,11 +140,13 @@
|
||||
android:background="@drawable/shape_item"
|
||||
android:padding="16dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_setting_history" />
|
||||
android:src="@drawable/ic_m3_list_alt"
|
||||
android:tint="@color/white" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/liveContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
@@ -188,7 +192,8 @@
|
||||
android:background="@drawable/shape_item"
|
||||
android:padding="16dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_setting_home" />
|
||||
android:src="@drawable/potted_plant_24px"
|
||||
android:tint="@color/white" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/liveHistory"
|
||||
@@ -197,68 +202,11 @@
|
||||
android:background="@drawable/shape_item"
|
||||
android:padding="16dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_setting_history" />
|
||||
android:src="@drawable/ic_m3_list_alt"
|
||||
android:tint="@color/white" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/wall"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/shape_item"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:text="@string/setting_wall"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/wallUrl"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="middle"
|
||||
android:gravity="end"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
tools:text="https://" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/wallDefault"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:background="@drawable/shape_item"
|
||||
android:padding="16dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_setting_switch" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/wallRefresh"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:background="@drawable/shape_item"
|
||||
android:padding="16dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_setting_refresh" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 应用设置分组 -->
|
||||
<TextView
|
||||
@@ -292,7 +240,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/ic_setting_player"
|
||||
android:src="@drawable/hive_24px"
|
||||
android:tint="@color/white" />
|
||||
|
||||
<TextView
|
||||
@@ -318,7 +266,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/ic_setting_incognito"
|
||||
android:src="@drawable/domino_mask_24px"
|
||||
android:tint="@color/white" />
|
||||
|
||||
<TextView
|
||||
@@ -329,11 +277,42 @@
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
<com.fongmi.android.tv.ui.custom.CustomSwitch
|
||||
android:id="@+id/incognitoSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 显示直播 -->
|
||||
<LinearLayout
|
||||
android:id="@+id/liveTabVisible"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/ic_nav_live"
|
||||
android:tint="@color/white" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/M3SwitchStyle" />
|
||||
android:layout_weight="1"
|
||||
android:text="@string/setting_live_tab_visible"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<com.fongmi.android.tv.ui.custom.CustomSwitch
|
||||
android:id="@+id/liveTabVisibleSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -350,7 +329,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/ic_setting_size"
|
||||
android:src="@drawable/select_all_24px"
|
||||
android:tint="@color/white" />
|
||||
|
||||
<TextView
|
||||
@@ -405,7 +384,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/ic_setting_doh"
|
||||
android:src="@drawable/globe_book_24px"
|
||||
android:tint="@color/white" />
|
||||
|
||||
<TextView
|
||||
@@ -475,7 +454,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/ic_folder"
|
||||
android:src="@drawable/owl_24px"
|
||||
android:tint="@color/white" />
|
||||
|
||||
<TextView
|
||||
@@ -529,7 +508,7 @@
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/ic_file"
|
||||
android:src="@drawable/photo_prints_24px"
|
||||
android:tint="@color/white" />
|
||||
|
||||
<TextView
|
||||
@@ -610,7 +589,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/ic_control_info"
|
||||
android:src="@drawable/egg_24px"
|
||||
android:tint="@color/white" />
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -354,11 +354,10 @@
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
<com.fongmi.android.tv.ui.custom.CustomSwitch
|
||||
android:id="@+id/tunnelSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/M3SwitchStyle" />
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -387,11 +386,10 @@
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
<com.fongmi.android.tv.ui.custom.CustomSwitch
|
||||
android:id="@+id/audioDecodeSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/M3SwitchStyle" />
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -420,11 +418,10 @@
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
<com.fongmi.android.tv.ui.custom.CustomSwitch
|
||||
android:id="@+id/aacSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/M3SwitchStyle" />
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -453,11 +450,10 @@
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
<com.fongmi.android.tv.ui.custom.CustomSwitch
|
||||
android:id="@+id/danmakuLoadSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/M3SwitchStyle" />
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
android:id="@+id/logo"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_logo" />
|
||||
|
||||
<LinearLayout
|
||||
@@ -66,14 +66,14 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_keep" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/history"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_history" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -112,11 +112,13 @@
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:src="@drawable/ic_logo" />
|
||||
<com.airbnb.lottie.LottieAnimationView
|
||||
android:id="@+id/lottieAnimation"
|
||||
android:layout_width="180dp"
|
||||
android:layout_height="180dp"
|
||||
app:lottie_fileName="lottie_empty_1.json"
|
||||
app:lottie_loop="true"
|
||||
app:lottie_autoPlay="true" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
@@ -124,16 +126,17 @@
|
||||
android:gravity="center"
|
||||
android:text="@string/source_hint"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
android:textSize="14sp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/add_source_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:backgroundTint="@color/primary"
|
||||
android:text="@string/add_source"
|
||||
android:textColor="@color/black" />
|
||||
android:textColor="@color/black"
|
||||
android:textSize="16sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
@@ -141,7 +144,7 @@
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_gravity="center"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_retry"
|
||||
android:visibility="gone" />
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_weight="1"
|
||||
app:bar_height="2dp"
|
||||
app:scrubber_enabled_size="12dp"
|
||||
app:scrubber_disabled_size="12dp"
|
||||
app:played_color="#FFEB3B"
|
||||
app:scrubber_color="#FFEB3B"
|
||||
app:buffered_color="#80FFEB3B" />
|
||||
|
||||
@@ -56,8 +56,30 @@
|
||||
android:paddingEnd="8dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
tools:text="21:30" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/charging_indicator"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:src="@drawable/ic_charging_bolt"
|
||||
android:visibility="gone"
|
||||
tools:text="21:30 | 85%" />
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/battery_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:paddingEnd="8dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:visibility="gone"
|
||||
tools:text="85%"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/cast"
|
||||
|
||||
@@ -43,7 +43,9 @@
|
||||
<string name="timer_15">15 分钟</string>
|
||||
<string name="timer_30">30 分钟</string>
|
||||
<string name="timer_60">1 小时</string>
|
||||
<string name="timer_delay">延长 5 分钟</string>
|
||||
<string name="timer_120">2 小时</string>
|
||||
<string name="timer_180">3 小时</string>
|
||||
<string name="timer_delay">延长 15 分钟</string>
|
||||
<string name="timer_cancel">取消定时器</string>
|
||||
|
||||
<!-- Hint -->
|
||||
|
||||
@@ -41,7 +41,9 @@
|
||||
<string name="timer_15">15 分鐘</string>
|
||||
<string name="timer_30">30 分鐘</string>
|
||||
<string name="timer_60">1 小時</string>
|
||||
<string name="timer_delay">延長 5 分鐘</string>
|
||||
<string name="timer_120">2 小時</string>
|
||||
<string name="timer_180">3 小時</string>
|
||||
<string name="timer_delay">延長 15 分鐘</string>
|
||||
<string name="timer_cancel">取消定時器</string>
|
||||
|
||||
<!-- Hint -->
|
||||
|
||||
@@ -5,5 +5,8 @@
|
||||
<color name="accent">#FFEB3B</color>
|
||||
<color name="indicator">@color/white_80</color>
|
||||
<color name="yellow_50">#4DFFEB3B</color>
|
||||
<color name="white_50">#80FFFFFF</color>
|
||||
<color name="black_50">#80000000</color>
|
||||
<color name="white_30">#4DFFFFFF</color>
|
||||
|
||||
</resources>
|
||||
@@ -43,7 +43,9 @@
|
||||
<string name="timer_15">15 minutes</string>
|
||||
<string name="timer_30">30 minutes</string>
|
||||
<string name="timer_60">1 hour</string>
|
||||
<string name="timer_delay">Add 5 minutes</string>
|
||||
<string name="timer_120">2 hours</string>
|
||||
<string name="timer_180">3 hours</string>
|
||||
<string name="timer_delay">Add 15 minutes</string>
|
||||
<string name="timer_cancel">Cancel timer</string>
|
||||
|
||||
<!-- Hint -->
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
<item name="colorPrimary">@color/primary</item>
|
||||
<item name="colorPrimaryDark">@color/primaryDark</item>
|
||||
<item name="colorAccent">@color/accent</item>
|
||||
<item name="colorControlHighlight">@color/white_20</item>
|
||||
<item name="android:windowBackground">@null</item>
|
||||
<item name="android:windowDisablePreview">true</item>
|
||||
<item name="android:navigationBarColor">@color/transparent</item>
|
||||
@@ -30,12 +31,8 @@
|
||||
<style name="Control.Action">
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:background">?attr/selectableItemBackgroundBorderless</item>
|
||||
<item name="android:background">@drawable/shape_action_background</item>
|
||||
<item name="android:padding">8dp</item>
|
||||
<item name="android:shadowColor">@color/grey_200</item>
|
||||
<item name="android:shadowDx">1</item>
|
||||
<item name="android:shadowDy">1</item>
|
||||
<item name="android:shadowRadius">0.5</item>
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
</style>
|
||||
@@ -78,14 +75,12 @@
|
||||
<item name="android:background">@null</item>
|
||||
</style>
|
||||
|
||||
<!-- M3 Switch Style -->
|
||||
<style name="M3SwitchStyle" parent="Widget.AppCompat.CompoundButton.Switch">
|
||||
<item name="android:thumb">@drawable/m3_switch_thumb</item>
|
||||
<item name="track">@drawable/m3_switch_track</item>
|
||||
<item name="android:switchMinWidth">52dp</item>
|
||||
<item name="android:switchPadding">8dp</item>
|
||||
<item name="android:colorControlActivated">#FFEB3B</item>
|
||||
<item name="android:colorControlHighlight">@android:color/transparent</item>
|
||||
<!-- M3 Switch Style (Material Design) - 使用CustomSwitch完全自定义 -->
|
||||
<style name="M3SwitchStyle" parent="Widget.AppCompat.CompoundButton.CheckBox">
|
||||
<item name="android:button">@null</item>
|
||||
<item name="android:background">@drawable/custom_switch_bg</item>
|
||||
<item name="android:minHeight">30dp</item>
|
||||
<item name="android:minWidth">50dp</item>
|
||||
</style>
|
||||
|
||||
<!-- 自定义数据源按钮样式 -->
|
||||
|
||||
@@ -9,7 +9,7 @@ tasks.register('clean', Delete) {
|
||||
}
|
||||
|
||||
project.ext {
|
||||
gsonVersion = '2.13.1'
|
||||
media3Version = '1.8.0'
|
||||
okhttpVersion = '5.1.0'
|
||||
gsonVersion = '2.11.0'
|
||||
media3Version = '1.4.1'
|
||||
okhttpVersion = '4.12.0'
|
||||
}
|
||||
|
||||
@@ -14,12 +14,10 @@ import okhttp3.Response;
|
||||
|
||||
public class Github {
|
||||
|
||||
public static final String URL = "https://raw.githubusercontent.com/Tosencen/XMBOX/main";
|
||||
public static final String API_URL = "https://api.github.com/repos/Tosencen/XMBOX/releases/latest";
|
||||
public static final String URL = "https://raw.githubusercontent.com/Tosencen/XMBOX-Release/main";
|
||||
|
||||
// 国内镜像地址 - 使用Gitee作为镜像
|
||||
public static final String CN_URL = "https://gitee.com/ochenoktochen/XMBOX/raw/main";
|
||||
public static final String CN_API_URL = "https://gitee.com/api/v5/repos/ochenoktochen/XMBOX/releases/latest";
|
||||
public static final String CN_URL = "https://gitee.com/ochenoktochen/XMBOX-Release/raw/main";
|
||||
|
||||
// 存储测速结果
|
||||
private static Boolean useCnMirror = null;
|
||||
@@ -34,9 +32,6 @@ public class Github {
|
||||
return CN_URL + "/" + path + "/" + name;
|
||||
}
|
||||
|
||||
public static String getReleaseApi() {
|
||||
return useCnMirror() ? CN_API_URL : API_URL;
|
||||
}
|
||||
|
||||
public static String getJson(boolean dev, String name) {
|
||||
if (useCnMirror()) {
|
||||
@@ -72,33 +67,44 @@ public class Github {
|
||||
private static boolean testMirrorSpeed() {
|
||||
try {
|
||||
OkHttpClient client = new OkHttpClient.Builder()
|
||||
.connectTimeout(3, TimeUnit.SECONDS)
|
||||
.readTimeout(3, TimeUnit.SECONDS)
|
||||
.connectTimeout(5, TimeUnit.SECONDS) // 增加超时时间
|
||||
.readTimeout(5, TimeUnit.SECONDS)
|
||||
.build();
|
||||
|
||||
// 测试国际源
|
||||
long startTime = System.currentTimeMillis();
|
||||
boolean intlSuccess = testUrl(client, URL + "/README.md");
|
||||
long intlTime = System.currentTimeMillis() - startTime;
|
||||
Logger.d("Github: International mirror test - success: " + intlSuccess + ", time: " + intlTime + "ms");
|
||||
|
||||
// 测试国内源
|
||||
startTime = System.currentTimeMillis();
|
||||
boolean cnSuccess = testUrl(client, CN_URL + "/README.md");
|
||||
long cnTime = System.currentTimeMillis() - startTime;
|
||||
Logger.d("Github: Chinese mirror test - success: " + cnSuccess + ", time: " + cnTime + "ms");
|
||||
|
||||
// 如果两个都成功,选择更快的
|
||||
if (intlSuccess && cnSuccess) {
|
||||
return cnTime < intlTime;
|
||||
boolean useCn = cnTime < intlTime;
|
||||
Logger.d("Github: Both mirrors work, choosing " + (useCn ? "Chinese" : "International") + " mirror");
|
||||
return useCn;
|
||||
}
|
||||
|
||||
// 如果只有一个成功,选择成功的那个
|
||||
if (intlSuccess) return false;
|
||||
if (cnSuccess) return true;
|
||||
if (intlSuccess) {
|
||||
Logger.d("Github: Only international mirror works, using it");
|
||||
return false;
|
||||
}
|
||||
if (cnSuccess) {
|
||||
Logger.d("Github: Only Chinese mirror works, using it");
|
||||
return true;
|
||||
}
|
||||
|
||||
// 如果都失败,默认国际源
|
||||
Logger.e("Github: Both mirrors failed, defaulting to international");
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Logger.e("Github: Mirror test exception: " + e.getMessage());
|
||||
return false; // 出错时默认使用国际源
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.github.catvod.utils;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
public class Logger {
|
||||
private static final String TAG = "XMBOX";
|
||||
|
||||
public static void d(String msg) {
|
||||
Log.d(TAG, msg);
|
||||
}
|
||||
|
||||
public static void e(String msg) {
|
||||
Log.e(TAG, msg);
|
||||
}
|
||||
|
||||
public static void e(String msg, Throwable tr) {
|
||||
Log.e(TAG, msg, tr);
|
||||
}
|
||||
|
||||
public static void i(String msg) {
|
||||
Log.i(TAG, msg);
|
||||
}
|
||||
|
||||
public static void v(String msg) {
|
||||
Log.v(TAG, msg);
|
||||
}
|
||||
|
||||
public static void w(String msg) {
|
||||
Log.w(TAG, msg);
|
||||
}
|
||||
|
||||
public static void w(String msg, Throwable tr) {
|
||||
Log.w(TAG, msg, tr);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
# GitHub CLI 创建 Release 脚本
|
||||
# 使用前请先运行: gh auth login
|
||||
|
||||
echo "创建 XMBOX v3.0.8 Release..."
|
||||
|
||||
gh release create v3.0.8 \
|
||||
--title "XMBOX v3.0.8 - UI交互体验全面优化" \
|
||||
--notes-file RELEASE_NOTES_v3.0.8.md \
|
||||
--draft \
|
||||
~/Desktop/mobile-arm64_v8a-v3.0.8.apk \
|
||||
~/Desktop/mobile-armeabi_v7a-v3.0.8.apk \
|
||||
~/Desktop/leanback-arm64_v8a-v3.0.8.apk \
|
||||
~/Desktop/leanback-armeabi_v7a-v3.0.8.apk
|
||||
|
||||
echo "Release 创建完成(草稿状态)"
|
||||
echo "请在 GitHub 上检查并发布"
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- 主题颜色 -->
|
||||
<color name="primary">#FFEB3B</color>
|
||||
<color name="primaryDark">#FDD835</color>
|
||||
<color name="accent">#FFEB3B</color>
|
||||
|
||||
<!-- 基本颜色 -->
|
||||
<color name="white">#FFFFFFFF</color>
|
||||
<color name="black">#FF000000</color>
|
||||
<color name="transparent">#00000000</color>
|
||||
|
||||
<!-- 带透明度的颜色 -->
|
||||
<color name="white_10">#1AFFFFFF</color>
|
||||
<color name="white_80">#CCFFFFFF</color>
|
||||
<color name="white_90">#E6FFFFFF</color>
|
||||
<color name="black_10">#1A000000</color>
|
||||
<color name="black_20">#33000000</color>
|
||||
<color name="black_50">#80000000</color>
|
||||
<color name="black_60">#99000000</color>
|
||||
<color name="black_80">#CC000000</color>
|
||||
<color name="black_90">#E6000000</color>
|
||||
|
||||
<!-- 文本颜色 -->
|
||||
<color name="text_primary">#FFFFFFFF</color>
|
||||
<color name="text_secondary">#B3FFFFFF</color>
|
||||
<color name="text_dark">#FF212121</color>
|
||||
|
||||
<!-- 背景颜色 -->
|
||||
<color name="bg_dark">#FF121212</color>
|
||||
<color name="bg_light">#FFFAFAFA</color>
|
||||
|
||||
<!-- 控件颜色 -->
|
||||
<color name="ripple">#33FFFFFF</color>
|
||||
<color name="divider">#1FFFFFFF</color>
|
||||
<color name="scrim">#52000000</color>
|
||||
|
||||
<!-- 状态颜色 -->
|
||||
<color name="success">#FF4CAF50</color>
|
||||
<color name="warning">#FFFFEB3B</color>
|
||||
<color name="error">#FFF44336</color>
|
||||
</resources>
|
||||
@@ -1,175 +0,0 @@
|
||||
plugins {
|
||||
id 'com.android.application'
|
||||
}
|
||||
|
||||
android {
|
||||
namespace 'com.fongmi.android.tv'
|
||||
|
||||
compileSdk 35
|
||||
flavorDimensions = ["mode", "abi"]
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
storeFile file("../keystore/release.jks")
|
||||
storePassword "xmbox123"
|
||||
keyAlias "xmbox"
|
||||
keyPassword "xmbox123"
|
||||
}
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.fongmi.android.tv"
|
||||
minSdk 21
|
||||
//noinspection ExpiredTargetSdkVersion
|
||||
targetSdk 28
|
||||
versionCode 303
|
||||
versionName "3.0.3"
|
||||
|
||||
// 禁用注解处理器,避免EventBus索引生成问题
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
productFlavors {
|
||||
leanback {
|
||||
dimension "mode"
|
||||
}
|
||||
mobile {
|
||||
dimension "mode"
|
||||
}
|
||||
arm64_v8a {
|
||||
dimension "abi"
|
||||
ndk { abiFilters "arm64-v8a" }
|
||||
}
|
||||
armeabi_v7a {
|
||||
dimension "abi"
|
||||
ndk { abiFilters "armeabi-v7a" }
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig true
|
||||
viewBinding true
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
// 开启调试
|
||||
debuggable true
|
||||
minifyEnabled false
|
||||
shrinkResources false
|
||||
}
|
||||
|
||||
release {
|
||||
minifyEnabled true
|
||||
shrinkResources true
|
||||
signingConfig signingConfigs.release
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
resources {
|
||||
exclude 'META-INF/beans.xml'
|
||||
exclude 'META-INF/versions/9/OSGI-INF/MANIFEST.MF'
|
||||
}
|
||||
}
|
||||
|
||||
android.applicationVariants.configureEach { variant ->
|
||||
variant.outputs.configureEach { output ->
|
||||
outputFileName = "${variant.productFlavors[0].name}-${variant.productFlavors[1].name}.apk"
|
||||
}
|
||||
}
|
||||
|
||||
configurations.configureEach {
|
||||
resolutionStrategy {
|
||||
force 'com.squareup.okhttp3:okhttp:' + okhttpVersion
|
||||
}
|
||||
}
|
||||
|
||||
lint {
|
||||
disable 'UnsafeOptInUsageError'
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
coreLibraryDesugaringEnabled true
|
||||
sourceCompatibility JavaVersion.VERSION_11
|
||||
targetCompatibility JavaVersion.VERSION_11
|
||||
}
|
||||
|
||||
// 添加额外的源文件目录,包含我们提取的EventIndex类
|
||||
sourceSets {
|
||||
main {
|
||||
java.srcDirs += ['../extracted_files/java']
|
||||
jniLibs.srcDirs += ['../extracted_files/libs']
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// 禁用EventBus注解处理器,避免生成EventIndex类的问题
|
||||
implementation 'org.greenrobot:eventbus:3.3.1'
|
||||
|
||||
implementation fileTree(dir: "libs", include: ["*.aar"])
|
||||
implementation project(':catvod')
|
||||
//implementation project(':chaquo')
|
||||
implementation project(':quickjs')
|
||||
implementation 'androidx.appcompat:appcompat:1.7.0'
|
||||
implementation 'androidx.media:media:1.7.0'
|
||||
implementation 'androidx.media3:media3-common:' + media3Version
|
||||
implementation 'androidx.media3:media3-container:' + media3Version
|
||||
implementation 'androidx.media3:media3-database:' + media3Version
|
||||
implementation 'androidx.media3:media3-datasource:' + media3Version
|
||||
implementation 'androidx.media3:media3-datasource-okhttp:' + media3Version
|
||||
implementation 'androidx.media3:media3-datasource-rtmp:' + media3Version
|
||||
implementation 'androidx.media3:media3-decoder:' + media3Version
|
||||
implementation 'androidx.media3:media3-effect:' + media3Version
|
||||
implementation 'androidx.media3:media3-exoplayer:' + media3Version
|
||||
implementation 'androidx.media3:media3-exoplayer-dash:' + media3Version
|
||||
implementation 'androidx.media3:media3-exoplayer-hls:' + media3Version
|
||||
implementation 'androidx.media3:media3-exoplayer-rtsp:' + media3Version
|
||||
implementation 'androidx.media3:media3-exoplayer-smoothstreaming:' + media3Version
|
||||
implementation 'androidx.media3:media3-extractor:' + media3Version
|
||||
implementation 'androidx.media3:media3-ui:' + media3Version
|
||||
implementation 'androidx.room:room-runtime:2.7.1'
|
||||
implementation 'cat.ereza:customactivityoncrash:2.4.0'
|
||||
implementation('com.github.anilbeesetti.nextlib:nextlib-media3ext:0.8.4') { exclude group: 'androidx.media3' }
|
||||
implementation 'com.github.bassaer:materialdesigncolors:1.0.0'
|
||||
implementation 'com.github.bumptech.glide:glide:4.16.0'
|
||||
implementation 'com.github.bumptech.glide:annotations:4.16.0'
|
||||
implementation('com.github.bumptech.glide:avif-integration:4.16.0') { exclude group: 'org.aomedia.avif.android', module: 'avif' }
|
||||
implementation 'com.github.bumptech.glide:okhttp3-integration:4.16.0'
|
||||
implementation 'com.github.jahirfiquitiva:TextDrawable:1.0.3'
|
||||
implementation 'com.github.thegrizzlylabs:sardine-android:0.9'
|
||||
implementation 'com.github.teamnewpipe:NewPipeExtractor:v0.24.6'
|
||||
implementation 'com.google.android.material:material:1.12.0'
|
||||
implementation 'com.google.zxing:core:3.5.3'
|
||||
implementation 'com.guolindev.permissionx:permissionx:1.8.0'
|
||||
implementation 'com.hierynomus:smbj:0.14.0'
|
||||
implementation 'io.antmedia:rtmp-client:3.2.0'
|
||||
implementation 'javax.servlet:javax.servlet-api:3.1.0'
|
||||
implementation 'org.aomedia.avif.android:avif:1.1.1.14d8e3c4'
|
||||
implementation 'org.eclipse.jetty:jetty-client:8.1.21.v20160908'
|
||||
implementation('org.eclipse.jetty:jetty-server:8.1.21.v20160908') { exclude group: 'org.eclipse.jetty.orbit', module: 'javax.servlet' }
|
||||
implementation('org.eclipse.jetty:jetty-servlet:8.1.21.v20160908') { exclude group: 'org.eclipse.jetty.orbit', module: 'javax.servlet' }
|
||||
implementation 'org.fourthline.cling:cling-core:2.1.1'
|
||||
implementation 'org.fourthline.cling:cling-support:2.1.1'
|
||||
implementation 'org.nanohttpd:nanohttpd:2.3.1'
|
||||
implementation('org.simpleframework:simple-xml:2.7.1') { exclude group: 'stax', module: 'stax-api' exclude group: 'xpp3', module: 'xpp3' }
|
||||
leanbackImplementation 'androidx.leanback:leanback:1.2.0'
|
||||
leanbackImplementation 'com.github.JessYanCoding:AndroidAutoSize:1.2.1'
|
||||
mobileImplementation 'androidx.biometric:biometric:1.1.0'
|
||||
mobileImplementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
||||
mobileImplementation 'com.google.android.flexbox:flexbox:3.0.0'
|
||||
mobileImplementation('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false }
|
||||
|
||||
// 注解处理器,去掉了EventBus的
|
||||
annotationProcessor 'androidx.room:room-compiler:2.7.1'
|
||||
annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'
|
||||
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.4'
|
||||
implementation 'io.noties.markwon:core:4.6.2'
|
||||
}
|
||||
|
Before Width: | Height: | Size: 95 B |
|
Before Width: | Height: | Size: 281 B |
|
Before Width: | Height: | Size: 670 B |
|
Before Width: | Height: | Size: 318 B |
|
Before Width: | Height: | Size: 627 B |
|
Before Width: | Height: | Size: 224 B |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 110 B |
@@ -1,82 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# XMBOX项目设置脚本
|
||||
# 这个脚本会自动复制提取的文件到正确的位置
|
||||
|
||||
echo "开始设置XMBOX项目..."
|
||||
|
||||
# 确保我们在正确的目录
|
||||
cd "$(dirname "$0")"
|
||||
EXTRACT_DIR=$(pwd)
|
||||
PROJECT_DIR=$(dirname "$EXTRACT_DIR")
|
||||
|
||||
echo "提取目录: $EXTRACT_DIR"
|
||||
echo "项目目录: $PROJECT_DIR"
|
||||
|
||||
# 创建必要的目录
|
||||
echo "创建必要的目录..."
|
||||
mkdir -p "$PROJECT_DIR/app/libs/arm64-v8a"
|
||||
mkdir -p "$PROJECT_DIR/app/src/main/java/com/fongmi/android/tv/event"
|
||||
mkdir -p "$PROJECT_DIR/app/src/main/res/values"
|
||||
|
||||
# 复制native库文件
|
||||
echo "复制native库文件..."
|
||||
if [ -d "$EXTRACT_DIR/libs/arm64-v8a" ]; then
|
||||
cp -R "$EXTRACT_DIR/libs/arm64-v8a/"* "$PROJECT_DIR/app/libs/arm64-v8a/" || echo "复制native库失败"
|
||||
echo "Native库复制完成"
|
||||
else
|
||||
echo "libs/arm64-v8a 目录不存在"
|
||||
fi
|
||||
|
||||
# 复制EventIndex类
|
||||
echo "复制EventIndex类..."
|
||||
if [ -f "$EXTRACT_DIR/java/com/fongmi/android/tv/event/EventIndex.java" ]; then
|
||||
cp "$EXTRACT_DIR/java/com/fongmi/android/tv/event/EventIndex.java" "$PROJECT_DIR/app/src/main/java/com/fongmi/android/tv/event/" || echo "复制EventIndex类失败"
|
||||
echo "EventIndex类复制完成"
|
||||
else
|
||||
echo "EventIndex.java 文件不存在"
|
||||
fi
|
||||
|
||||
# 复制颜色资源文件
|
||||
echo "复制颜色资源文件..."
|
||||
if [ -f "$EXTRACT_DIR/colors.xml" ]; then
|
||||
cp "$EXTRACT_DIR/colors.xml" "$PROJECT_DIR/app/src/main/res/values/" || echo "复制颜色资源文件失败"
|
||||
echo "颜色资源文件复制完成"
|
||||
else
|
||||
echo "colors.xml 文件不存在"
|
||||
fi
|
||||
|
||||
# 备份原有的build.gradle文件
|
||||
echo "备份原有的build.gradle文件..."
|
||||
if [ -f "$PROJECT_DIR/app/build.gradle" ]; then
|
||||
cp "$PROJECT_DIR/app/build.gradle" "$PROJECT_DIR/app/build.gradle.bak" || echo "备份build.gradle失败"
|
||||
echo "build.gradle备份完成"
|
||||
else
|
||||
echo "app/build.gradle 文件不存在"
|
||||
fi
|
||||
|
||||
# 将修改后的build.gradle复制到项目中
|
||||
echo "复制修改后的build.gradle文件..."
|
||||
if [ -f "$EXTRACT_DIR/modified_build.gradle" ]; then
|
||||
cp "$EXTRACT_DIR/modified_build.gradle" "$PROJECT_DIR/app/build.gradle" || echo "复制build.gradle失败"
|
||||
echo "build.gradle复制完成"
|
||||
else
|
||||
echo "modified_build.gradle 文件不存在"
|
||||
fi
|
||||
|
||||
# 修改gradle.properties文件
|
||||
echo "修改gradle.properties文件..."
|
||||
if [ -f "$PROJECT_DIR/gradle.properties" ]; then
|
||||
# 添加Java兼容性配置
|
||||
echo "" >> "$PROJECT_DIR/gradle.properties"
|
||||
echo "# 允许访问JDK内部API" >> "$PROJECT_DIR/gradle.properties"
|
||||
echo "android.injected.testOnly=false" >> "$PROJECT_DIR/gradle.properties"
|
||||
echo "android.enableR8.fullMode=false" >> "$PROJECT_DIR/gradle.properties"
|
||||
echo "org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED" >> "$PROJECT_DIR/gradle.properties"
|
||||
echo "gradle.properties修改完成"
|
||||
else
|
||||
echo "gradle.properties 文件不存在"
|
||||
fi
|
||||
|
||||
echo "设置完成!您现在可以尝试构建项目了。"
|
||||
echo "请运行: ./gradlew assembleMobileArm64_v8aDebug --info"
|
||||
@@ -499,6 +499,6 @@ public class Hook extends PackageManager {
|
||||
|
||||
@Override
|
||||
public boolean canRequestPackageInstalls() {
|
||||
return false;
|
||||
return true; // 允许请求安装包权限
|
||||
}
|
||||
}
|
||||
|
||||