@onekeyfe/hd-core 1.2.0-alpha.46 → 1.2.0-alpha.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/check-all-firmware-release-protocol-v2.test.ts +107 -12
- package/__tests__/protocol-v2-resources.test.ts +125 -45
- package/__tests__/protocol-v2.test.ts +168 -34
- package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV4.d.ts +2 -0
- package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
- package/dist/data-manager/DataManager.d.ts +1 -0
- package/dist/data-manager/DataManager.d.ts.map +1 -1
- package/dist/index.d.ts +21 -3
- package/dist/index.js +228 -111
- package/dist/protocols/protocol-v2/resources.d.ts +4 -4
- package/dist/protocols/protocol-v2/resources.d.ts.map +1 -1
- package/dist/types/api/firmwareUpdate.d.ts +2 -1
- package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
- package/dist/types/settings.d.ts +10 -0
- package/dist/types/settings.d.ts.map +1 -1
- package/dist/utils/patch.d.ts +1 -1
- package/dist/utils/patch.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/api/CheckAllFirmwareRelease.ts +9 -10
- package/src/api/FirmwareUpdateV4.ts +77 -6
- package/src/data/messages/messages-protocol-v2.json +0 -43
- package/src/data-manager/DataManager.ts +4 -0
- package/src/protocols/protocol-v2/resources.ts +183 -57
- package/src/types/api/firmwareUpdate.ts +3 -0
- package/src/types/settings.ts +16 -0
package/dist/index.js
CHANGED
|
@@ -26252,8 +26252,6 @@ var nested = {
|
|
|
26252
26252
|
MessageType_DeviceInfo: 60601,
|
|
26253
26253
|
MessageType_DeviceStatusGet: 60602,
|
|
26254
26254
|
MessageType_DeviceStatus: 60603,
|
|
26255
|
-
MessageType_ResourceInventoryGet: 60604,
|
|
26256
|
-
MessageType_ResourceInventory: 60605,
|
|
26257
26255
|
MessageType_FilesystemPermissionFix: 60800,
|
|
26258
26256
|
MessageType_FilesystemPathInfo: 60801,
|
|
26259
26257
|
MessageType_FilesystemPathInfoQuery: 60802,
|
|
@@ -37846,16 +37844,6 @@ var nested = {
|
|
|
37846
37844
|
APP: 85
|
|
37847
37845
|
}
|
|
37848
37846
|
},
|
|
37849
|
-
ResourceBundleType: {
|
|
37850
|
-
values: {
|
|
37851
|
-
IMAGES: 0,
|
|
37852
|
-
ANIMATION: 1,
|
|
37853
|
-
WALLPAPER: 2,
|
|
37854
|
-
TRANSLATIONS: 3,
|
|
37855
|
-
ROOBERT: 4,
|
|
37856
|
-
NOTO: 5
|
|
37857
|
-
}
|
|
37858
|
-
},
|
|
37859
37847
|
DeviceFirmwareImageInfo: {
|
|
37860
37848
|
fields: {
|
|
37861
37849
|
version: {
|
|
@@ -38053,38 +38041,6 @@ var nested = {
|
|
|
38053
38041
|
}
|
|
38054
38042
|
}
|
|
38055
38043
|
},
|
|
38056
|
-
ResourceInventoryGet: {
|
|
38057
|
-
fields: {
|
|
38058
|
-
}
|
|
38059
|
-
},
|
|
38060
|
-
ResourceInventoryItem: {
|
|
38061
|
-
fields: {
|
|
38062
|
-
type: {
|
|
38063
|
-
rule: "required",
|
|
38064
|
-
type: "ResourceBundleType",
|
|
38065
|
-
id: 1
|
|
38066
|
-
},
|
|
38067
|
-
size: {
|
|
38068
|
-
rule: "required",
|
|
38069
|
-
type: "uint32",
|
|
38070
|
-
id: 2
|
|
38071
|
-
},
|
|
38072
|
-
header_hash: {
|
|
38073
|
-
rule: "required",
|
|
38074
|
-
type: "bytes",
|
|
38075
|
-
id: 3
|
|
38076
|
-
}
|
|
38077
|
-
}
|
|
38078
|
-
},
|
|
38079
|
-
ResourceInventory: {
|
|
38080
|
-
fields: {
|
|
38081
|
-
items: {
|
|
38082
|
-
rule: "repeated",
|
|
38083
|
-
type: "ResourceInventoryItem",
|
|
38084
|
-
id: 1
|
|
38085
|
-
}
|
|
38086
|
-
}
|
|
38087
|
-
},
|
|
38088
38044
|
DeviceSessionErrorCode: {
|
|
38089
38045
|
values: {
|
|
38090
38046
|
DeviceSessionError_None: 0,
|
|
@@ -39485,56 +39441,120 @@ const PROTOCOL_V2_RESOURCE_DEVICE_PATHS = {
|
|
|
39485
39441
|
const RESOURCE_TYPE_SET = new Set(PROTOCOL_V2_RESOURCE_TYPES);
|
|
39486
39442
|
const SHA256_HEX_LENGTH = 64;
|
|
39487
39443
|
const SHA3_512_HEX_LENGTH = 128;
|
|
39444
|
+
const PROTOCOL_V2_OKPP_HEADER_SIZE$1 = 0x52a0;
|
|
39445
|
+
const PROTOCOL_V2_OKPP_TYPE_OFFSET = 0x08;
|
|
39446
|
+
const PROTOCOL_V2_OKPP_HEADER_LENGTH_OFFSET = 0x0c;
|
|
39447
|
+
const PROTOCOL_V2_OKPP_HEADER_HASH_OFFSET$1 = 0x240;
|
|
39448
|
+
const PROTOCOL_V2_OKPP_HASH_SIZE$1 = 64;
|
|
39449
|
+
const PROTOCOL_V2_RESOURCE_IDENTITY_READ_SIZE = PROTOCOL_V2_OKPP_HEADER_HASH_OFFSET$1 + PROTOCOL_V2_OKPP_HASH_SIZE$1;
|
|
39450
|
+
const PROTOCOL_V2_MIN_FILE_READ_CHUNK_SIZE = 64;
|
|
39488
39451
|
const PROTOCOL_V2_RESOURCE_INVENTORY_TIMEOUT_MS = 5 * 1000;
|
|
39489
|
-
|
|
39490
|
-
'
|
|
39491
|
-
|
|
39492
|
-
'
|
|
39493
|
-
|
|
39494
|
-
|
|
39495
|
-
|
|
39496
|
-
'
|
|
39497
|
-
|
|
39498
|
-
|
|
39499
|
-
|
|
39500
|
-
|
|
39501
|
-
NOTO: 'noto',
|
|
39502
|
-
};
|
|
39503
|
-
function parseProtocolV2ResourceInventory(value) {
|
|
39504
|
-
const items = value === null || value === void 0 ? void 0 : value.items;
|
|
39505
|
-
if (!Array.isArray(items)) {
|
|
39506
|
-
throw new Error('Invalid Pro2 resource inventory: items must be an array');
|
|
39507
|
-
}
|
|
39508
|
-
const inventory = items.map((item, index) => {
|
|
39509
|
-
if (!item || typeof item !== 'object') {
|
|
39510
|
-
throw new Error(`Invalid Pro2 resource inventory item at ${index}`);
|
|
39511
|
-
}
|
|
39512
|
-
const raw = item;
|
|
39513
|
-
const type = RESOURCE_TYPE_BY_DEVICE_VALUE[String(raw.type).toUpperCase()];
|
|
39514
|
-
if (!type) {
|
|
39515
|
-
throw new Error(`Invalid Pro2 resource inventory type at ${index}`);
|
|
39516
|
-
}
|
|
39517
|
-
if (!Number.isSafeInteger(raw.size) || Number(raw.size) <= 0) {
|
|
39518
|
-
throw new Error(`Invalid Pro2 resource inventory size at ${index}`);
|
|
39452
|
+
function toFiniteNumber(value) {
|
|
39453
|
+
if (typeof value === 'number' && Number.isFinite(value))
|
|
39454
|
+
return value;
|
|
39455
|
+
if (typeof value === 'string') {
|
|
39456
|
+
const numeric = Number(value);
|
|
39457
|
+
return Number.isFinite(numeric) ? numeric : undefined;
|
|
39458
|
+
}
|
|
39459
|
+
if (value && typeof value === 'object') {
|
|
39460
|
+
const longLike = value;
|
|
39461
|
+
if (typeof longLike.toNumber === 'function') {
|
|
39462
|
+
const numeric = longLike.toNumber();
|
|
39463
|
+
return Number.isFinite(numeric) ? numeric : undefined;
|
|
39519
39464
|
}
|
|
39520
|
-
return {
|
|
39521
|
-
type,
|
|
39522
|
-
size: Number(raw.size),
|
|
39523
|
-
headerHash: normalizeHex$1(raw.header_hash, SHA3_512_HEX_LENGTH, 'inventory headerHash'),
|
|
39524
|
-
};
|
|
39525
|
-
});
|
|
39526
|
-
if (new Set(inventory.map(item => item.type)).size !== inventory.length) {
|
|
39527
|
-
throw new Error('Invalid Pro2 resource inventory: duplicate resource type');
|
|
39528
39465
|
}
|
|
39529
|
-
return
|
|
39530
|
-
|
|
39531
|
-
|
|
39466
|
+
return undefined;
|
|
39467
|
+
}
|
|
39468
|
+
function toUint8Array(value) {
|
|
39469
|
+
if (value instanceof Uint8Array)
|
|
39470
|
+
return value;
|
|
39471
|
+
if (value instanceof ArrayBuffer)
|
|
39472
|
+
return new Uint8Array(value);
|
|
39473
|
+
if (ArrayBuffer.isView(value)) {
|
|
39474
|
+
return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
|
|
39475
|
+
}
|
|
39476
|
+
if (typeof value === 'string') {
|
|
39477
|
+
const hex = value.replace(/^0x/i, '');
|
|
39478
|
+
if (!hex || hex.length % 2 !== 0 || /[^0-9a-f]/i.test(hex)) {
|
|
39479
|
+
return new Uint8Array(0);
|
|
39480
|
+
}
|
|
39481
|
+
const bytes = new Uint8Array(hex.length / 2);
|
|
39482
|
+
for (let index = 0; index < bytes.length; index += 1) {
|
|
39483
|
+
bytes[index] = Number.parseInt(hex.slice(index * 2, index * 2 + 2), 16);
|
|
39484
|
+
}
|
|
39485
|
+
return bytes;
|
|
39486
|
+
}
|
|
39487
|
+
return new Uint8Array(0);
|
|
39488
|
+
}
|
|
39489
|
+
function readAscii(bytes, offset, length) {
|
|
39490
|
+
return Array.from(bytes.slice(offset, offset + length), byte => String.fromCharCode(byte)).join('');
|
|
39491
|
+
}
|
|
39492
|
+
function parseProtocolV2ResourceHeaderHash(bytes) {
|
|
39493
|
+
if (bytes.byteLength < PROTOCOL_V2_RESOURCE_IDENTITY_READ_SIZE)
|
|
39494
|
+
return undefined;
|
|
39495
|
+
if (readAscii(bytes, 0, 4) !== 'OKPP')
|
|
39496
|
+
return undefined;
|
|
39497
|
+
if (readAscii(bytes, PROTOCOL_V2_OKPP_TYPE_OFFSET, 4) !== 'RESC')
|
|
39498
|
+
return undefined;
|
|
39499
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
39500
|
+
if (view.getUint32(PROTOCOL_V2_OKPP_HEADER_LENGTH_OFFSET, true) !== PROTOCOL_V2_OKPP_HEADER_SIZE$1) {
|
|
39501
|
+
return undefined;
|
|
39502
|
+
}
|
|
39503
|
+
return bytesToHex$3(bytes.slice(PROTOCOL_V2_OKPP_HEADER_HASH_OFFSET$1, PROTOCOL_V2_OKPP_HEADER_HASH_OFFSET$1 + PROTOCOL_V2_OKPP_HASH_SIZE$1));
|
|
39504
|
+
}
|
|
39505
|
+
function readProtocolV2ResourceIdentity({ commands, resource, chunkSize, timeoutMs = PROTOCOL_V2_RESOURCE_INVENTORY_TIMEOUT_MS, }) {
|
|
39506
|
+
var _a, _b, _c, _d;
|
|
39507
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39508
|
+
const path = PROTOCOL_V2_RESOURCE_DEVICE_PATHS[resource.type];
|
|
39509
|
+
const pathInfo = yield commands.typedCall('FilesystemPathInfoQuery', 'FilesystemPathInfo', { path }, { timeoutMs });
|
|
39510
|
+
const size = toFiniteNumber((_a = pathInfo.message) === null || _a === void 0 ? void 0 : _a.size);
|
|
39511
|
+
if (!((_b = pathInfo.message) === null || _b === void 0 ? void 0 : _b.exist) ||
|
|
39512
|
+
((_c = pathInfo.message) === null || _c === void 0 ? void 0 : _c.directory) ||
|
|
39513
|
+
!Number.isSafeInteger(size) ||
|
|
39514
|
+
size !== resource.size ||
|
|
39515
|
+
size < PROTOCOL_V2_OKPP_HEADER_SIZE$1) {
|
|
39516
|
+
return undefined;
|
|
39517
|
+
}
|
|
39518
|
+
const header = new Uint8Array(PROTOCOL_V2_RESOURCE_IDENTITY_READ_SIZE);
|
|
39519
|
+
let offset = 0;
|
|
39520
|
+
while (offset < header.byteLength) {
|
|
39521
|
+
const readLength = Math.min(chunkSize, header.byteLength - offset);
|
|
39522
|
+
const response = yield commands.typedCall('FilesystemFileRead', 'FilesystemFile', {
|
|
39523
|
+
file: { path, offset, total_size: 0 },
|
|
39524
|
+
chunk_len: readLength,
|
|
39525
|
+
}, { timeoutMs });
|
|
39526
|
+
const data = toUint8Array((_d = response.message) === null || _d === void 0 ? void 0 : _d.data);
|
|
39527
|
+
if (data.byteLength === 0)
|
|
39528
|
+
return undefined;
|
|
39529
|
+
const copied = Math.min(data.byteLength, header.byteLength - offset);
|
|
39530
|
+
header.set(data.subarray(0, copied), offset);
|
|
39531
|
+
offset += copied;
|
|
39532
|
+
}
|
|
39533
|
+
const headerHash = parseProtocolV2ResourceHeaderHash(header);
|
|
39534
|
+
return headerHash ? { type: resource.type, size, headerHash } : undefined;
|
|
39532
39535
|
});
|
|
39533
39536
|
}
|
|
39534
|
-
function
|
|
39537
|
+
function readProtocolV2ResourceInventory({ commands, resources, chunkSize = hdTransport.PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE, timeoutMs = PROTOCOL_V2_RESOURCE_INVENTORY_TIMEOUT_MS, }) {
|
|
39535
39538
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39536
|
-
const
|
|
39537
|
-
|
|
39539
|
+
const normalizedChunkSize = Number.isFinite(chunkSize)
|
|
39540
|
+
? Math.max(Math.floor(chunkSize), PROTOCOL_V2_MIN_FILE_READ_CHUNK_SIZE)
|
|
39541
|
+
: hdTransport.PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE;
|
|
39542
|
+
const inventory = [];
|
|
39543
|
+
for (const resource of resources) {
|
|
39544
|
+
try {
|
|
39545
|
+
const item = yield readProtocolV2ResourceIdentity({
|
|
39546
|
+
commands,
|
|
39547
|
+
resource,
|
|
39548
|
+
chunkSize: normalizedChunkSize,
|
|
39549
|
+
timeoutMs,
|
|
39550
|
+
});
|
|
39551
|
+
if (item)
|
|
39552
|
+
inventory.push(item);
|
|
39553
|
+
}
|
|
39554
|
+
catch (_a) {
|
|
39555
|
+
}
|
|
39556
|
+
}
|
|
39557
|
+
return inventory;
|
|
39538
39558
|
});
|
|
39539
39559
|
}
|
|
39540
39560
|
function normalizeHex$1(value, expectedLength, field) {
|
|
@@ -39569,6 +39589,33 @@ function validateResource(value, index) {
|
|
|
39569
39589
|
headerHash: normalizeHex$1(resource.headerHash, SHA3_512_HEX_LENGTH, 'headerHash'),
|
|
39570
39590
|
};
|
|
39571
39591
|
}
|
|
39592
|
+
function validateBootResources(value) {
|
|
39593
|
+
if (!value || typeof value !== 'object') {
|
|
39594
|
+
throw new Error('Invalid Pro2 boot resources config');
|
|
39595
|
+
}
|
|
39596
|
+
const resource = value;
|
|
39597
|
+
if (resource.required !== false) {
|
|
39598
|
+
throw new Error('Invalid Pro2 boot resources required flag: expected false');
|
|
39599
|
+
}
|
|
39600
|
+
if (resource.target !== 'CRATE') {
|
|
39601
|
+
throw new Error('Invalid Pro2 boot resources target: expected CRATE');
|
|
39602
|
+
}
|
|
39603
|
+
if (typeof resource.url !== 'string' || !resource.url.startsWith('https://')) {
|
|
39604
|
+
throw new Error('Invalid Pro2 boot resources url');
|
|
39605
|
+
}
|
|
39606
|
+
if (!Number.isSafeInteger(resource.size) || Number(resource.size) <= 0) {
|
|
39607
|
+
throw new Error('Invalid Pro2 boot resources size');
|
|
39608
|
+
}
|
|
39609
|
+
return {
|
|
39610
|
+
required: false,
|
|
39611
|
+
target: 'CRATE',
|
|
39612
|
+
url: resource.url,
|
|
39613
|
+
size: Number(resource.size),
|
|
39614
|
+
fileHash: normalizeHex$1(resource.fileHash, SHA256_HEX_LENGTH, 'boot fileHash'),
|
|
39615
|
+
payloadHash: normalizeHex$1(resource.payloadHash, SHA3_512_HEX_LENGTH, 'boot payloadHash'),
|
|
39616
|
+
headerHash: normalizeHex$1(resource.headerHash, SHA3_512_HEX_LENGTH, 'boot headerHash'),
|
|
39617
|
+
};
|
|
39618
|
+
}
|
|
39572
39619
|
function parseProtocolV2Resources(value) {
|
|
39573
39620
|
if (value === undefined)
|
|
39574
39621
|
return undefined;
|
|
@@ -39577,7 +39624,8 @@ function parseProtocolV2Resources(value) {
|
|
|
39577
39624
|
!Array.isArray(value.stable)) {
|
|
39578
39625
|
throw new Error('Invalid Pro2 resources config: stable must be an array');
|
|
39579
39626
|
}
|
|
39580
|
-
const
|
|
39627
|
+
const config = value;
|
|
39628
|
+
const stable = config.stable.map(validateResource);
|
|
39581
39629
|
const types = new Set(stable.map(resource => resource.type));
|
|
39582
39630
|
if (stable.length !== PROTOCOL_V2_RESOURCE_TYPES.length || types.size !== stable.length) {
|
|
39583
39631
|
throw new Error('Invalid Pro2 resources config: stable must contain six unique resource types');
|
|
@@ -39587,25 +39635,29 @@ function parseProtocolV2Resources(value) {
|
|
|
39587
39635
|
throw new Error(`Invalid Pro2 resources config: stable is missing ${type}`);
|
|
39588
39636
|
}
|
|
39589
39637
|
}
|
|
39590
|
-
|
|
39591
|
-
|
|
39638
|
+
const boot = config.boot === undefined ? undefined : validateBootResources(config.boot);
|
|
39639
|
+
return Object.assign({ stable: PROTOCOL_V2_RESOURCE_TYPES.map(type => {
|
|
39592
39640
|
const resource = stable.find(item => item.type === type);
|
|
39593
39641
|
if (!resource) {
|
|
39594
39642
|
throw new Error(`Invalid Pro2 resources config: stable is missing ${type}`);
|
|
39595
39643
|
}
|
|
39596
39644
|
return resource;
|
|
39597
|
-
}),
|
|
39598
|
-
};
|
|
39645
|
+
}) }, (boot ? { boot } : undefined));
|
|
39599
39646
|
}
|
|
39600
39647
|
function buildProtocolV2ResourceUpdatePlan({ resources, inventory, mode, forced = false, }) {
|
|
39601
|
-
if (
|
|
39648
|
+
if (forced) {
|
|
39602
39649
|
return {
|
|
39603
39650
|
status: resources.length > 0 ? 'outdated' : 'valid',
|
|
39604
39651
|
resources: [...resources],
|
|
39605
39652
|
};
|
|
39606
39653
|
}
|
|
39607
39654
|
if (!inventory) {
|
|
39608
|
-
return
|
|
39655
|
+
return mode === 'bootloader-recovery'
|
|
39656
|
+
? {
|
|
39657
|
+
status: resources.length > 0 ? 'outdated' : 'valid',
|
|
39658
|
+
resources: [...resources],
|
|
39659
|
+
}
|
|
39660
|
+
: { status: 'unknown', resources: [] };
|
|
39609
39661
|
}
|
|
39610
39662
|
const inventoryByType = new Map(inventory.map(item => [item.type, item]));
|
|
39611
39663
|
const changedResources = resources.filter(resource => {
|
|
@@ -39777,6 +39829,10 @@ class DataManager {
|
|
|
39777
39829
|
var _b, _c;
|
|
39778
39830
|
return (_c = (_b = this.deviceMap[hdShared.EDeviceType.Pro2]) === null || _b === void 0 ? void 0 : _b.resources) === null || _c === void 0 ? void 0 : _c.stable;
|
|
39779
39831
|
}
|
|
39832
|
+
static getProtocolV2BootResources() {
|
|
39833
|
+
var _b, _c;
|
|
39834
|
+
return (_c = (_b = this.deviceMap[hdShared.EDeviceType.Pro2]) === null || _b === void 0 ? void 0 : _b.resources) === null || _c === void 0 ? void 0 : _c.boot;
|
|
39835
|
+
}
|
|
39780
39836
|
static getProtobufMessages(schema = 'v1CurrentSchema') {
|
|
39781
39837
|
return this.messages[schema];
|
|
39782
39838
|
}
|
|
@@ -46293,25 +46349,23 @@ class CheckAllFirmwareRelease extends BaseMethod {
|
|
|
46293
46349
|
let resourceStatus = 'unknown';
|
|
46294
46350
|
if (resources === null || resources === void 0 ? void 0 : resources.length) {
|
|
46295
46351
|
const loaderMode = state.status.mode === 'bootloader' || state.status.mode === 'romloader';
|
|
46296
|
-
if (loaderMode) {
|
|
46297
|
-
resourceStatus = buildProtocolV2ResourceUpdatePlan({
|
|
46298
|
-
resources,
|
|
46299
|
-
mode: 'bootloader-recovery',
|
|
46300
|
-
}).status;
|
|
46301
|
-
}
|
|
46302
|
-
else if (state.status.mode === 'normal') {
|
|
46352
|
+
if (loaderMode || state.status.mode === 'normal') {
|
|
46303
46353
|
try {
|
|
46304
|
-
const inventory = yield
|
|
46354
|
+
const inventory = yield readProtocolV2ResourceInventory({
|
|
46305
46355
|
commands: this.device.getCommands(),
|
|
46356
|
+
resources,
|
|
46306
46357
|
});
|
|
46307
46358
|
resourceStatus = buildProtocolV2ResourceUpdatePlan({
|
|
46308
46359
|
resources,
|
|
46309
46360
|
inventory,
|
|
46310
|
-
mode: 'application',
|
|
46361
|
+
mode: loaderMode ? 'bootloader-recovery' : 'application',
|
|
46311
46362
|
}).status;
|
|
46312
46363
|
}
|
|
46313
46364
|
catch (_b) {
|
|
46314
|
-
resourceStatus =
|
|
46365
|
+
resourceStatus = buildProtocolV2ResourceUpdatePlan({
|
|
46366
|
+
resources,
|
|
46367
|
+
mode: loaderMode ? 'bootloader-recovery' : 'application',
|
|
46368
|
+
}).status;
|
|
46315
46369
|
}
|
|
46316
46370
|
}
|
|
46317
46371
|
}
|
|
@@ -49076,6 +49130,7 @@ const PROTOCOL_V2_OKPP_HEADER_SIZE = 0x52a0;
|
|
|
49076
49130
|
const PROTOCOL_V2_OKPP_PAYLOAD_HASH_OFFSET = 0x200;
|
|
49077
49131
|
const PROTOCOL_V2_OKPP_HEADER_HASH_OFFSET = 0x240;
|
|
49078
49132
|
const PROTOCOL_V2_OKPP_HASH_SIZE = 64;
|
|
49133
|
+
const PROTOCOL_V2_BOOT_RESOURCES_FILE_NAME = 'boot_resources.crate.okpkg';
|
|
49079
49134
|
const getProtocolV2DeviceTransferProgress = (bytesBeforeChunk, bytesAfterChunk, totalBytes) => {
|
|
49080
49135
|
if (!Number.isFinite(totalBytes) || totalBytes <= 0) {
|
|
49081
49136
|
return 100;
|
|
@@ -49300,6 +49355,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
49300
49355
|
{ name: 'chunkSize', type: 'number' },
|
|
49301
49356
|
{ name: 'forcedUpdateRes', type: 'boolean' },
|
|
49302
49357
|
{ name: 'bootloaderBinary', type: 'buffer' },
|
|
49358
|
+
{ name: 'bootResourcesBinary', type: 'buffer' },
|
|
49303
49359
|
{ name: 'romloaderBinary', type: 'buffer' },
|
|
49304
49360
|
{ name: 'applicationP1Binary', type: 'buffer' },
|
|
49305
49361
|
{ name: 'applicationP2Binary', type: 'buffer' },
|
|
@@ -49317,6 +49373,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
49317
49373
|
chunkSize: payload.chunkSize,
|
|
49318
49374
|
forcedUpdateRes: payload.forcedUpdateRes,
|
|
49319
49375
|
bootloaderBinary: payload.bootloaderBinary,
|
|
49376
|
+
bootResourcesBinary: payload.bootResourcesBinary,
|
|
49320
49377
|
romloaderBinary: payload.romloaderBinary,
|
|
49321
49378
|
applicationP1Binary: payload.applicationP1Binary,
|
|
49322
49379
|
applicationP2Binary: payload.applicationP2Binary,
|
|
@@ -49352,7 +49409,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
49352
49409
|
});
|
|
49353
49410
|
}
|
|
49354
49411
|
runProtocolV2() {
|
|
49355
|
-
var _a, _b, _c, _d;
|
|
49412
|
+
var _a, _b, _c, _d, _e;
|
|
49356
49413
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49357
49414
|
yield this.captureProtocolV2PhysicalIdentity();
|
|
49358
49415
|
const deviceFeatures = yield this.getProtocolV2DeviceFeatures();
|
|
@@ -49361,6 +49418,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
49361
49418
|
const resourceRecoveryMode = Boolean(this.isProtocolV2BootloaderMode() || this.isProtocolV2RomloaderMode());
|
|
49362
49419
|
let fwBinaryMap = [];
|
|
49363
49420
|
let bootloaderBinary = null;
|
|
49421
|
+
let bootResourcesInstallItem;
|
|
49364
49422
|
let installItems;
|
|
49365
49423
|
let resourceBundles;
|
|
49366
49424
|
try {
|
|
@@ -49370,7 +49428,9 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
49370
49428
|
const needsRemoteFirmware = !this.hasExplicitProtocolV2Payload(fwBinaryMap);
|
|
49371
49429
|
const needsRemoteResources = !((_b = this.params.resourceBundleFiles) === null || _b === void 0 ? void 0 : _b.length) &&
|
|
49372
49430
|
!!((_c = this.params.targetsToUpdate) === null || _c === void 0 ? void 0 : _c.includes('resource'));
|
|
49373
|
-
|
|
49431
|
+
const needsRemoteBootResources = !this.params.bootResourcesBinary &&
|
|
49432
|
+
!!((_d = this.params.targetsToUpdate) === null || _d === void 0 ? void 0 : _d.includes('boot_resources'));
|
|
49433
|
+
if (needsRemoteFirmware || needsRemoteResources || needsRemoteBootResources) {
|
|
49374
49434
|
yield DataManager.forceReloadData();
|
|
49375
49435
|
}
|
|
49376
49436
|
if (needsRemoteFirmware) {
|
|
@@ -49379,13 +49439,23 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
49379
49439
|
fwBinaryMap = remoteBinaries.fwBinaryMap;
|
|
49380
49440
|
installItems = remoteBinaries.installItems;
|
|
49381
49441
|
}
|
|
49442
|
+
bootResourcesInstallItem = yield this.prepareProtocolV2BootResources();
|
|
49443
|
+
if (bootResourcesInstallItem) {
|
|
49444
|
+
installItems = [
|
|
49445
|
+
bootResourcesInstallItem,
|
|
49446
|
+
...(installItems !== null && installItems !== void 0 ? installItems : this.buildProtocolV2InstallItems({ bootloaderBinary, fwBinaryMap })),
|
|
49447
|
+
];
|
|
49448
|
+
}
|
|
49382
49449
|
resourceBundles = yield this.prepareProtocolV2ResourceBundles(resourceRecoveryMode);
|
|
49383
49450
|
this.postTipMessage(exports.FirmwareUpdateTipMessage.FinishDownloadFirmware);
|
|
49384
49451
|
}
|
|
49385
49452
|
catch (err) {
|
|
49386
|
-
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, (
|
|
49453
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, (_e = err.message) !== null && _e !== void 0 ? _e : err);
|
|
49387
49454
|
}
|
|
49388
|
-
if (!bootloaderBinary &&
|
|
49455
|
+
if (!bootloaderBinary &&
|
|
49456
|
+
fwBinaryMap.length === 0 &&
|
|
49457
|
+
!(installItems === null || installItems === void 0 ? void 0 : installItems.length) &&
|
|
49458
|
+
!(resourceBundles === null || resourceBundles === void 0 ? void 0 : resourceBundles.length)) {
|
|
49389
49459
|
if (resourceBundles !== undefined) {
|
|
49390
49460
|
this.postTipMessage(exports.FirmwareUpdateTipMessage.FirmwareUpdateCompleted);
|
|
49391
49461
|
return this.getProtocolV2VersionResult(deviceFeatures);
|
|
@@ -49454,6 +49524,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
49454
49524
|
var _a;
|
|
49455
49525
|
return (!!((_a = this.params.resourceBundleFiles) === null || _a === void 0 ? void 0 : _a.length) ||
|
|
49456
49526
|
!!this.params.bootloaderBinary ||
|
|
49527
|
+
!!this.params.bootResourcesBinary ||
|
|
49457
49528
|
fwBinaryMap.length > 0);
|
|
49458
49529
|
}
|
|
49459
49530
|
buildProtocolV2InstallItems({ bootloaderBinary, fwBinaryMap, }) {
|
|
@@ -49568,6 +49639,50 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
49568
49639
|
};
|
|
49569
49640
|
});
|
|
49570
49641
|
}
|
|
49642
|
+
validateProtocolV2BootResourcesBinary(binary, resource) {
|
|
49643
|
+
if (resource && !isProtocolV2ResourceFileValid(binary, resource)) {
|
|
49644
|
+
throw new Error('Pro2 boot resources file verification failed');
|
|
49645
|
+
}
|
|
49646
|
+
const header = parseProtocolV2OkppHeader(toProtocolV2Bytes(binary));
|
|
49647
|
+
if (!header || header.type !== 'CRAT') {
|
|
49648
|
+
throw new Error('Invalid Pro2 boot resources CRATE header');
|
|
49649
|
+
}
|
|
49650
|
+
if (resource) {
|
|
49651
|
+
const expectedPayloadHash = normalizeProtocolV2Hex(resource.payloadHash);
|
|
49652
|
+
const expectedHeaderHash = normalizeProtocolV2Hex(resource.headerHash);
|
|
49653
|
+
if (header.payloadHash !== expectedPayloadHash) {
|
|
49654
|
+
throw new Error('Pro2 boot resources payload hash mismatch');
|
|
49655
|
+
}
|
|
49656
|
+
if (header.headerHash !== expectedHeaderHash) {
|
|
49657
|
+
throw new Error('Pro2 boot resources header hash mismatch');
|
|
49658
|
+
}
|
|
49659
|
+
}
|
|
49660
|
+
}
|
|
49661
|
+
prepareProtocolV2BootResources() {
|
|
49662
|
+
var _a;
|
|
49663
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49664
|
+
let binary = this.params.bootResourcesBinary;
|
|
49665
|
+
let resource;
|
|
49666
|
+
if (!binary) {
|
|
49667
|
+
if (!((_a = this.params.targetsToUpdate) === null || _a === void 0 ? void 0 : _a.includes('boot_resources'))) {
|
|
49668
|
+
return undefined;
|
|
49669
|
+
}
|
|
49670
|
+
resource = DataManager.getProtocolV2BootResources();
|
|
49671
|
+
if (!resource) {
|
|
49672
|
+
throw new Error('Missing Pro2 boot resources configuration');
|
|
49673
|
+
}
|
|
49674
|
+
Log$5.log('[FirmwareUpdateV4] downloading Pro2 boot resources CRATE');
|
|
49675
|
+
({ binary } = yield getSysResourceBinary(resource.url));
|
|
49676
|
+
}
|
|
49677
|
+
this.validateProtocolV2BootResourcesBinary(binary, resource);
|
|
49678
|
+
return {
|
|
49679
|
+
fileName: PROTOCOL_V2_BOOT_RESOURCES_FILE_NAME,
|
|
49680
|
+
binary,
|
|
49681
|
+
targetId: ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_CRATE,
|
|
49682
|
+
kind: 'boot_resources',
|
|
49683
|
+
};
|
|
49684
|
+
});
|
|
49685
|
+
}
|
|
49571
49686
|
prepareProtocolV2ResourceBundles(recoveryMode) {
|
|
49572
49687
|
var _a, _b;
|
|
49573
49688
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -49589,10 +49704,12 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
49589
49704
|
if (!(resources === null || resources === void 0 ? void 0 : resources.length)) {
|
|
49590
49705
|
throw new Error('Missing Pro2 stable resource configuration');
|
|
49591
49706
|
}
|
|
49592
|
-
const inventory =
|
|
49707
|
+
const inventory = this.params.forcedUpdateRes
|
|
49593
49708
|
? undefined
|
|
49594
|
-
: yield
|
|
49709
|
+
: yield readProtocolV2ResourceInventory({
|
|
49595
49710
|
commands: this.device.getCommands(),
|
|
49711
|
+
resources,
|
|
49712
|
+
chunkSize: this.getProtocolV2FirmwareChunkSize(),
|
|
49596
49713
|
timeoutMs: PROTOCOL_V2_SHORT_RESPONSE_TIMEOUT,
|
|
49597
49714
|
});
|
|
49598
49715
|
const plan = buildProtocolV2ResourceUpdatePlan({
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { IProtocolV2Resource, IProtocolV2ResourceType, IProtocolV2Resources } from '../../types';
|
|
2
2
|
import type { DeviceCommands } from '../../device/DeviceCommands';
|
|
3
|
-
import type { ResourceInventory } from '@onekeyfe/hd-transport';
|
|
4
3
|
export declare const PROTOCOL_V2_RESOURCE_TYPES: readonly ["images", "animation", "wallpaper", "translations", "roobert", "noto"];
|
|
5
4
|
export declare const PROTOCOL_V2_RESOURCE_DEVICE_PATHS: Readonly<Record<IProtocolV2ResourceType, string>>;
|
|
6
5
|
export declare const PROTOCOL_V2_RESOURCE_INVENTORY_TIMEOUT_MS: number;
|
|
@@ -14,9 +13,10 @@ export type ProtocolV2ResourceUpdatePlan = {
|
|
|
14
13
|
status: 'valid' | 'outdated' | 'unknown';
|
|
15
14
|
resources: IProtocolV2Resource[];
|
|
16
15
|
};
|
|
17
|
-
export declare function
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
export declare function readProtocolV2ResourceInventory({ commands, resources, chunkSize, timeoutMs, }: {
|
|
17
|
+
commands: Pick<DeviceCommands, 'typedCall'>;
|
|
18
|
+
resources: readonly IProtocolV2Resource[];
|
|
19
|
+
chunkSize?: number;
|
|
20
20
|
timeoutMs?: number;
|
|
21
21
|
}): Promise<ProtocolV2ResourceInventoryItem[]>;
|
|
22
22
|
export declare function parseProtocolV2Resources(value: unknown): IProtocolV2Resources | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/protocols/protocol-v2/resources.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/protocols/protocol-v2/resources.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,eAAO,MAAM,0BAA0B,kFAOgB,CAAC;AAExD,eAAO,MAAM,iCAAiC,EAAE,QAAQ,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAQ7F,CAAC;AAaJ,eAAO,MAAM,yCAAyC,QAAW,CAAC;AAElE,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,uBAAuB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,aAAa,GAAG,qBAAqB,CAAC;AAEjF,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC,CAAC;AAwHF,wBAAsB,+BAA+B,CAAC,EACpD,QAAQ,EACR,SAAS,EACT,SAAgD,EAChD,SAAqD,GACtD,EAAE;IACD,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAC5C,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,+BAA+B,EAAE,CAAC,CAmB7C;AAmED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS,CAgCzF;AAGD,wBAAgB,iCAAiC,CAAC,EAChD,SAAS,EACT,SAAS,EACT,IAAI,EACJ,MAAc,GACf,EAAE;IACD,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,SAAS,+BAA+B,EAAE,CAAC;IACvD,IAAI,EAAE,4BAA4B,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,4BAA4B,CA8B/B;AAOD,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,UAAU,CAAC,GACvD,OAAO,CAGT"}
|
|
@@ -38,7 +38,7 @@ export interface FirmwareUpdateV3Params {
|
|
|
38
38
|
firmwareType?: EFirmwareType;
|
|
39
39
|
platform: IPlatform;
|
|
40
40
|
}
|
|
41
|
-
export type FirmwareUpdateV4Target = 'boot' | 'app_v1' | 'app_v2' | 'coprocessor' | 'resource' | 'se01' | 'se02' | 'se03' | 'se04';
|
|
41
|
+
export type FirmwareUpdateV4Target = 'boot' | 'boot_resources' | 'app_v1' | 'app_v2' | 'coprocessor' | 'resource' | 'se01' | 'se02' | 'se03' | 'se04';
|
|
42
42
|
export interface FirmwareUpdateV4Params {
|
|
43
43
|
platform: IPlatform;
|
|
44
44
|
chunkSize?: number;
|
|
@@ -46,6 +46,7 @@ export interface FirmwareUpdateV4Params {
|
|
|
46
46
|
targetsToUpdate?: FirmwareUpdateV4Target[];
|
|
47
47
|
romloaderBinary?: ArrayBuffer;
|
|
48
48
|
bootloaderBinary?: ArrayBuffer;
|
|
49
|
+
bootResourcesBinary?: ArrayBuffer;
|
|
49
50
|
applicationP1Binary?: ArrayBuffer;
|
|
50
51
|
applicationP2Binary?: ArrayBuffer;
|
|
51
52
|
coprocessorBinary?: ArrayBuffer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firmwareUpdate.d.ts","sourceRoot":"","sources":["../../../src/types/api/firmwareUpdate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"firmwareUpdate.d.ts","sourceRoot":"","sources":["../../../src/types/api/firmwareUpdate.ts"],"names":[],"mappings":"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"}
|
package/dist/types/settings.d.ts
CHANGED
|
@@ -40,8 +40,18 @@ export type IProtocolV2Resource = {
|
|
|
40
40
|
fileHash: string;
|
|
41
41
|
headerHash: string;
|
|
42
42
|
};
|
|
43
|
+
export type IProtocolV2BootResources = {
|
|
44
|
+
required: false;
|
|
45
|
+
target: 'CRATE';
|
|
46
|
+
url: string;
|
|
47
|
+
size: number;
|
|
48
|
+
fileHash: string;
|
|
49
|
+
payloadHash: string;
|
|
50
|
+
headerHash: string;
|
|
51
|
+
};
|
|
43
52
|
export type IProtocolV2Resources = {
|
|
44
53
|
stable: IProtocolV2Resource[];
|
|
54
|
+
boot?: IProtocolV2BootResources;
|
|
45
55
|
};
|
|
46
56
|
export type IProtocolV2ResourceBundle = {
|
|
47
57
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,KAAK,GACL,cAAc,GACd,UAAU,GACV,cAAc,GACd,QAAQ,GACR,gBAAgB,GAChB,iBAAiB,GACjB,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AACf,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,GAAG,EAAE,YAAY,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAExC,MAAM,MAAM,kCAAkC,GAC1C,WAAW,GACX,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,kCAAkC,CAAC;IAC3C,GAAG,EAAE,MAAM,CAAC;IAEZ,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B,QAAQ,GACR,WAAW,GACX,WAAW,GACX,cAAc,GACd,SAAS,GACT,MAAM,CAAC;AAGX,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IAEZ,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,mBAAmB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"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"}
|