@dan-uni/dan-any 0.9.1 → 0.9.3
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/README.md +1 -1
- package/dist/index.js +107 -254
- package/dist/index.min.js +13817 -0
- package/dist/index.min.js.LICENSE.txt +17 -0
- package/dist/index.umd.min.js +110 -256
- package/dist/src/index.d.ts +10 -40
- package/package.json +8 -7
- package/rslib.config.ts +9 -0
- package/src/ass-gen/ass/create.ts +2 -2
- package/src/ass-gen/ass/raw.ts +19 -19
- package/src/index.test.ts +19 -12
- package/src/index.ts +57 -104
- package/src/proto/gen/bili/dm_pb.ts +1 -1
- package/src/proto/gen/danuni_pb.ts +1 -1
- package/src/utils/dm-gen.test.ts +3 -3
- package/src/utils/dm-gen.ts +30 -31
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* The buffer module from node.js, for the browser.
|
|
3
|
+
*
|
|
4
|
+
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
|
|
5
|
+
* @license MIT
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/*!
|
|
9
|
+
* The buffer module from node.js, for the browser.
|
|
10
|
+
*
|
|
11
|
+
* @author Feross Aboukhadijeh <https://feross.org>
|
|
12
|
+
* @license MIT
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
16
|
+
|
|
17
|
+
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
package/dist/index.umd.min.js
CHANGED
|
@@ -17407,12 +17407,13 @@ and limitations under the License.
|
|
|
17407
17407
|
const ok = field.enum.values.some((v)=>v.number === val);
|
|
17408
17408
|
if (ok) message.set(field, val);
|
|
17409
17409
|
else if (options.readUnknownFields) {
|
|
17410
|
-
const
|
|
17410
|
+
const bytes = [];
|
|
17411
|
+
varint32write(val, bytes);
|
|
17411
17412
|
const unknownFields = null != (_a = message.getUnknown()) ? _a : [];
|
|
17412
17413
|
unknownFields.push({
|
|
17413
17414
|
no: field.number,
|
|
17414
17415
|
wireType,
|
|
17415
|
-
data
|
|
17416
|
+
data: new Uint8Array(bytes)
|
|
17416
17417
|
});
|
|
17417
17418
|
message.setUnknown(unknownFields);
|
|
17418
17419
|
}
|
|
@@ -20889,7 +20890,7 @@ and limitations under the License.
|
|
|
20889
20890
|
function timestamp_timestampMs(timestamp) {
|
|
20890
20891
|
return 1000 * Number(timestamp.seconds) + Math.round(timestamp.nanos / 1000000);
|
|
20891
20892
|
}
|
|
20892
|
-
var package_namespaceObject = JSON.parse('{"u2":"@dan-uni/dan-any","i8":"0.9.
|
|
20893
|
+
var package_namespaceObject = JSON.parse('{"u2":"@dan-uni/dan-any","i8":"0.9.3","e8":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
|
|
20893
20894
|
const file_bili_dm = /*@__PURE__*/ fileDesc("Cg1iaWxpL2RtLnByb3RvEiBiaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MSJkCgZBdmF0YXISCgoCaWQYASABKAkSCwoDdXJsGAIgASgJEkEKC2F2YXRhcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyVHlwZSIjCgZCdWJibGUSDAoEdGV4dBgBIAEoCRILCgN1cmwYAiABKAkixgEKCEJ1YmJsZVYyEgwKBHRleHQYASABKAkSCwoDdXJsGAIgASgJEkEKC2J1YmJsZV90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnViYmxlVHlwZRIVCg1leHBvc3VyZV9vbmNlGAQgASgIEkUKDWV4cG9zdXJlX3R5cGUYBSABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiWwoGQnV0dG9uEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUiWAoOQnV6endvcmRDb25maWcSRgoIa2V5d29yZHMYASADKAsyNC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdXp6d29yZFNob3dDb25maWcieAoSQnV6endvcmRTaG93Q29uZmlnEgwKBG5hbWUYASABKAkSDgoGc2NoZW1hGAIgASgJEg4KBnNvdXJjZRgDIAEoBRIKCgJpZBgEIAEoAxITCgtidXp6d29yZF9pZBgFIAEoAxITCgtzY2hlbWFfdHlwZRgGIAEoBSJ7CghDaGVja0JveBIMCgR0ZXh0GAEgASgJEjwKBHR5cGUYAiABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja2JveFR5cGUSFQoNZGVmYXVsdF92YWx1ZRgDIAEoCBIMCgRzaG93GAQgASgIIm8KCkNoZWNrQm94VjISDAoEdGV4dBgBIAEoCRI8CgR0eXBlGAIgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2hlY2tib3hUeXBlEhUKDWRlZmF1bHRfdmFsdWUYAyABKAgiggIKC0NsaWNrQnV0dG9uEhUKDXBvcnRyYWl0X3RleHQYASADKAkSFgoObGFuZHNjYXBlX3RleHQYAiADKAkSGwoTcG9ydHJhaXRfdGV4dF9mb2N1cxgDIAMoCRIcChRsYW5kc2NhcGVfdGV4dF9mb2N1cxgEIAMoCRJBCgtyZW5kZXJfdHlwZRgFIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlbmRlclR5cGUSDAoEc2hvdxgGIAEoCBI4CgZidWJibGUYByABKAsyKC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdWJibGUiswIKDUNsaWNrQnV0dG9uVjISFQoNcG9ydHJhaXRfdGV4dBgBIAMoCRIWCg5sYW5kc2NhcGVfdGV4dBgCIAMoCRIbChNwb3J0cmFpdF90ZXh0X2ZvY3VzGAMgAygJEhwKFGxhbmRzY2FwZV90ZXh0X2ZvY3VzGAQgAygJEkEKC3JlbmRlcl90eXBlGAUgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIXCg90ZXh0X2lucHV0X3Bvc3QYBiABKAgSFQoNZXhwb3N1cmVfb25jZRgHIAEoCBJFCg1leHBvc3VyZV90eXBlGAggASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb3N1cmVUeXBlIksKB0NvbW1hbmQSQAoLY29tbWFuZF9kbXMYASADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Db21tYW5kRG0i5gEKCUNvbW1hbmREbRIKCgJpZBgBIAEoAxILCgNvaWQYAiABKAMSCwoDbWlkGAMgASgDEg8KB2NvbW1hbmQYBCABKAkSDwoHY29udGVudBgFIAEoCRIQCghwcm9ncmVzcxgGIAEoBRINCgVjdGltZRgHIAEoCRINCgVtdGltZRgIIAEoCRINCgVleHRyYRgJIAEoCRINCgVpZFN0chgKIAEoCRIMCgR0eXBlGAsgASgFEhMKC2F1dG9fY3JlYXRlGAwgASgIEhIKCmNvdW50X2Rvd24YDSABKAUSDAoEYXR0chgOIAEoBSJQCg1EYW5tYWt1QUlGbGFnEj8KCGRtX2ZsYWdzGAEgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUZsYWciiwMKC0Rhbm1ha3VFbGVtEgoKAmlkGAEgASgDEhAKCHByb2dyZXNzGAIgASgFEgwKBG1vZGUYAyABKAUSEAoIZm9udHNpemUYBCABKAUSPwoFY29sb3IYBSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIQCghtaWRfaGFzaBgGIAEoCRIPCgdjb250ZW50GAcgASgJEg0KBWN0aW1lGAggASgDEg4KBndlaWdodBgJIAEoBRIOCgZhY3Rpb24YCiABKAkSDAoEcG9vbBgLIAEoBRIOCgZpZF9zdHIYDCABKAkSDAoEYXR0chgNIAEoBRIRCglhbmltYXRpb24YFiABKAkSDQoFZXh0cmEYFyABKAkSQgoIY29sb3JmdWwYGCABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIMCgR0eXBlGBkgASgFEgsKA29pZBgaIAEoAyIpCgtEYW5tYWt1RmxhZxIMCgRkbWlkGAEgASgDEgwKBGZsYWcYAiABKAUiSwoRRGFubWFrdUZsYWdDb25maWcSEAoIcmVjX2ZsYWcYASABKAUSEAoIcmVjX3RleHQYAiABKAkSEgoKcmVjX3N3aXRjaBgDIAEoBSKLBwoYRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnEikKIXBsYXllcl9kYW5tYWt1X3VzZV9kZWZhdWx0X2NvbmZpZxgBIAEoCBIsCiRwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9zd2l0Y2gYBCABKAgSKwojcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWwYBSABKAUSHwoXcGxheWVyX2Rhbm1ha3VfYmxvY2t0b3AYBiABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tzY3JvbGwYByABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tib3R0b20YCCABKAgSJAoccGxheWVyX2Rhbm1ha3VfYmxvY2tjb2xvcmZ1bBgJIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja3JlcGVhdBgKIAEoCBIjChtwbGF5ZXJfZGFubWFrdV9ibG9ja3NwZWNpYWwYCyABKAgSHgoWcGxheWVyX2Rhbm1ha3Vfb3BhY2l0eRgMIAEoAhIkChxwbGF5ZXJfZGFubWFrdV9zY2FsaW5nZmFjdG9yGA0gASgCEh0KFXBsYXllcl9kYW5tYWt1X2RvbWFpbhgOIAEoAhIcChRwbGF5ZXJfZGFubWFrdV9zcGVlZBgPIAEoBRIkChxpbmxpbmVfcGxheWVyX2Rhbm1ha3Vfc3dpdGNoGBAgASgIEikKIXBsYXllcl9kYW5tYWt1X3Nlbmlvcl9tb2RlX3N3aXRjaBgRIAEoBRIuCiZwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92MhgSIAEoBRKYAQoqcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjJfbWFwGBMgAygLMmQuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnLlBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EiUKHXBsYXllcl9kYW5tYWt1X2VuYWJsZV9oZXJkX2RtGBQgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEi7AkKEURhbm11UGxheWVyQ29uZmlnEh0KFXBsYXllcl9kYW5tYWt1X3N3aXRjaBgBIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9zd2l0Y2hfc2F2ZRgCIAEoCBIpCiFwbGF5ZXJfZGFubWFrdV91c2VfZGVmYXVsdF9jb25maWcYAyABKAgSLAokcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfc3dpdGNoGAQgASgIEisKI3BsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsGAUgASgFEh8KF3BsYXllcl9kYW5tYWt1X2Jsb2NrdG9wGAYgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2Nrc2Nyb2xsGAcgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrYm90dG9tGAggASgIEiQKHHBsYXllcl9kYW5tYWt1X2Jsb2NrY29sb3JmdWwYCSABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tyZXBlYXQYCiABKAgSIwobcGxheWVyX2Rhbm1ha3VfYmxvY2tzcGVjaWFsGAsgASgIEh4KFnBsYXllcl9kYW5tYWt1X29wYWNpdHkYDCABKAISJAoccGxheWVyX2Rhbm1ha3Vfc2NhbGluZ2ZhY3RvchgNIAEoAhIdChVwbGF5ZXJfZGFubWFrdV9kb21haW4YDiABKAISHAoUcGxheWVyX2Rhbm1ha3Vfc3BlZWQYDyABKAUSJgoecGxheWVyX2Rhbm1ha3VfZW5hYmxlYmxvY2tsaXN0GBAgASgIEiQKHGlubGluZV9wbGF5ZXJfZGFubWFrdV9zd2l0Y2gYESABKAgSJAocaW5saW5lX3BsYXllcl9kYW5tYWt1X2NvbmZpZxgSIAEoBRImCh5wbGF5ZXJfZGFubWFrdV9pb3Nfc3dpdGNoX3NhdmUYEyABKAUSKQohcGxheWVyX2Rhbm1ha3Vfc2VuaW9yX21vZGVfc3dpdGNoGBQgASgFEi4KJnBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBUgASgFEpEBCipwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92Ml9tYXAYFiADKAsyXS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckNvbmZpZy5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRIlCh1wbGF5ZXJfZGFubWFrdV9lbmFibGVfaGVyZF9kbRgXIAEoCBImCh5wbGF5ZXJfZGFubWFrdV9ibG9ja3RvcF9ib3R0b20YGCABKAgSIAoYcGxheWVyX2Rhbm1ha3VfZG9tYWluX3YyGBkgASgFEh4KFnBsYXllcl9kYW5tYWt1X2RlbnNpdHkYGiABKAUSJQodcGxheWVyX2Rhbm1ha3Vfc3VidGl0bGVfcHJvb2YYGyABKAgSIwobcGxheWVyX2Rhbm1ha3VfcGVvcGxlX3Byb29mGBwgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEiMAoWRGFubXVQbGF5ZXJDb25maWdQYW5lbBIWCg5zZWxlY3Rpb25fdGV4dBgBIAEoCSJLChhEYW5tdVBsYXllckR5bmFtaWNDb25maWcSEAoIcHJvZ3Jlc3MYASABKAUSHQoVcGxheWVyX2Rhbm1ha3VfZG9tYWluGA4gASgCIpADChVEYW5tdVBsYXllclZpZXdDb25maWcSYQodZGFubXVrdV9kZWZhdWx0X3BsYXllcl9jb25maWcYASABKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdURlZmF1bHRQbGF5ZXJDb25maWcSUgoVZGFubXVrdV9wbGF5ZXJfY29uZmlnGAIgASgLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWcSYQodZGFubXVrdV9wbGF5ZXJfZHluYW1pY19jb25maWcYAyADKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckR5bmFtaWNDb25maWcSXQobZGFubXVrdV9wbGF5ZXJfY29uZmlnX3BhbmVsGAQgASgLMjguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWdQYW5lbCKZBQoURGFubXVXZWJQbGF5ZXJDb25maWcSEQoJZG1fc3dpdGNoGAEgASgIEhEKCWFpX3N3aXRjaBgCIAEoCBIQCghhaV9sZXZlbBgDIAEoBRIQCghibG9ja3RvcBgEIAEoCBITCgtibG9ja3Njcm9sbBgFIAEoCBITCgtibG9ja2JvdHRvbRgGIAEoCBISCgpibG9ja2NvbG9yGAcgASgIEhQKDGJsb2Nrc3BlY2lhbBgIIAEoCBIUCgxwcmV2ZW50c2hhZGUYCSABKAgSDQoFZG1hc2sYCiABKAgSDwoHb3BhY2l0eRgLIAEoAhIOCgZkbWFyZWEYDCABKAUSEQoJc3BlZWRwbHVzGA0gASgCEhAKCGZvbnRzaXplGA4gASgCEhIKCnNjcmVlbnN5bmMYDyABKAgSEQoJc3BlZWRzeW5jGBAgASgIEhIKCmZvbnRmYW1pbHkYESABKAkSDAoEYm9sZBgSIAEoCBISCgpmb250Ym9yZGVyGBMgASgFEhEKCWRyYXdfdHlwZRgUIAEoCRIaChJzZW5pb3JfbW9kZV9zd2l0Y2gYFSABKAUSEwoLYWlfbGV2ZWxfdjIYFiABKAUSYQoPYWlfbGV2ZWxfdjJfbWFwGBcgAygLMkguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcuQWlMZXZlbFYyTWFwRW50cnkSFwoPYmxvY2t0b3BfYm90dG9tGBggASgIEhIKCmRtX2FyZWFfdjIYGSABKAUSEgoKZG1fZGVuc2l0eRgaIAEoBRozChFBaUxldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIlkKCkRtQ29sb3JmdWwSPgoEdHlwZRgBIAEoDjIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWxUeXBlEgsKA3NyYxgCIAEoCSJQCg9EbUV4cG9SZXBvcnRSZXESEgoKc2Vzc2lvbl9pZBgBIAEoCRILCgNvaWQYAiABKAMSDQoFZG1pZHMYAyABKAwSDQoFc3BtaWQYBCABKAkiEQoPRG1FeHBvUmVwb3J0UmVzIm0KCkRtSGVyZFZpZXcSGwoTZGlzcGxheV9oZXJkX2RtX251bRgBIAEoBRJCCghoZXJkX2RtcxgCIAMoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlZpZXdIZXJkRG1FbGVtIpYCCgpEbU1hc2tXYWxsEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEk0KDGNvbnRlbnRfdHlwZRgEIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRJFCghiaXpfdHlwZRgFIAEoDjIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxCaXpUeXBlEkUKCGNvbnRlbnRzGAYgAygLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbENvbnRlbnQiawoRRG1NYXNrV2FsbENvbnRlbnQSRQoEdHlwZRgBIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRIPCgdjb250ZW50GAIgASgJIs0QChFEbVBsYXllckNvbmZpZ1JlcRIKCgJ0cxgBIAEoAxJFCgZzd2l0Y2gYAiABKAsyNS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U3dpdGNoEk4KC3N3aXRjaF9zYXZlGAMgASgLMjkuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVN3aXRjaFNhdmUSWwoSdXNlX2RlZmF1bHRfY29uZmlnGAQgASgLMj8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVVzZURlZmF1bHRDb25maWcSYQoVYWlfcmVjb21tZW5kZWRfc3dpdGNoGAUgASgLMkIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRTd2l0Y2gSXwoUYWlfcmVjb21tZW5kZWRfbGV2ZWwYBiABKAsyQS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEkkKCGJsb2NrdG9wGAcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrdG9wEk8KC2Jsb2Nrc2Nyb2xsGAggASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2Nrc2Nyb2xsEk8KC2Jsb2NrYm90dG9tGAkgASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrYm90dG9tElMKDWJsb2NrY29sb3JmdWwYCiABKAsyPC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tjb2xvcmZ1bBJPCgtibG9ja3JlcGVhdBgLIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja3JlcGVhdBJRCgxibG9ja3NwZWNpYWwYDCABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEkcKB29wYWNpdHkYDSABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1T3BhY2l0eRJTCg1zY2FsaW5nZmFjdG9yGA4gASgLMjwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVNjYWxpbmdmYWN0b3ISRQoGZG9tYWluGA8gASgLMjUuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpbhJDCgVzcGVlZBgQIAEoCzI0LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTcGVlZBJXCg9lbmFibGVibG9ja2xpc3QYESABKAsyPi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0El4KGWlubGluZVBsYXllckRhbm1ha3VTd2l0Y2gYEiABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5JbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoElsKEnNlbmlvcl9tb2RlX3N3aXRjaBgTIAEoCzI/LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTZW5pb3JNb2RlU3dpdGNoEmQKF2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBQgASgLMkMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyElMKDmVuYWJsZV9oZXJkX2RtGBUgASgLMjsuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRJWCg9ibG9ja3RvcF9ib3R0b20YFiABKAsyPS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SSgoJZG9tYWluX3YyGBcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpblYyEkcKB2RlbnNpdHkYGCABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RGVuc2l0eRJUCg5zdWJ0aXRsZV9wcm9vZhgZIAEoCzI8LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTdWJ0aXRsZVByb29mElAKDHBlb3BsZV9wcm9vZhgaIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VQZW9wbGVQcm9vZiIvCgtEbVNlZ0NvbmZpZxIRCglwYWdlX3NpemUYASABKAMSDQoFdG90YWwYAiABKAMikQIKEERtU2VnTW9iaWxlUmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBRJACgdhaV9mbGFnGAMgASgLMi8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUFJRmxhZxIVCg1zZWdtZW50X3J1bGVzGAQgAygDEkIKDGNvbG9yZnVsX3NyYxgFIAMoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWwSEwoLY29udGV4dF9zcmMYBiABKAkiygEKDkRtU2VnTW9iaWxlUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDEhYKDnRlZW5hZ2Vyc19tb2RlGAUgASgFEgoKAnBzGAYgASgDEgoKAnBlGAcgASgDEhEKCXB1bGxfbW9kZRgIIAEoBRISCgpmcm9tX3NjZW5lGAkgASgFEg0KBXNwbWlkGAogASgJEhMKC2NvbnRleHRfZXh0GAsgASgJIlwKDURtU2VnT3R0UmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBSJMCgtEbVNlZ090dFJlcRILCgNwaWQYASABKAMSCwoDb2lkGAIgASgDEgwKBHR5cGUYAyABKAUSFQoNc2VnbWVudF9pbmRleBgEIAEoAyJdCg1EbVNlZ1NES1JlcGx5Eg4KBmNsb3NlZBgBIAEoCBI8CgVlbGVtcxgCIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VFbGVtIkwKC0RtU2VnU0RLUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDIncKCURtU3ViVmlldxIMCgR0eXBlGAEgASgFEgsKA29pZBgCIAEoAxILCgNwaWQYAyABKAMSQgoLcG9zdF9wYW5lbDIYBCADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxWMiKhCQoLRG1WaWV3UmVwbHkSDgoGY2xvc2VkGAEgASgIEjkKBG1hc2sYAiABKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb01hc2sSQQoIc3VidGl0bGUYAyABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb1N1YnRpdGxlEhMKC3NwZWNpYWxfZG1zGAQgAygJEkQKB2FpX2ZsYWcYBSABKAsyMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RmxhZ0NvbmZpZxJOCg1wbGF5ZXJfY29uZmlnGAYgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJWaWV3Q29uZmlnEhYKDnNlbmRfYm94X3N0eWxlGAcgASgFEg0KBWFsbG93GAggASgIEhEKCWNoZWNrX2JveBgJIAEoCBIaChJjaGVja19ib3hfc2hvd19tc2cYCiABKAkSGAoQdGV4dF9wbGFjZWhvbGRlchgLIAEoCRIZChFpbnB1dF9wbGFjZWhvbGRlchgMIAEoCRIdChVyZXBvcnRfZmlsdGVyX2NvbnRlbnQYDSADKAkSQQoLZXhwb19yZXBvcnQYDiABKAsyLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvUmVwb3J0EkkKD2J1enp3b3JkX2NvbmZpZxgPIAEoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1enp3b3JkQ29uZmlnEkIKC2V4cHJlc3Npb25zGBAgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgRIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGBIgAygJEkIKC3Bvc3RfcGFuZWwyGBMgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISQgoMZG1fbWFza193YWxsGBQgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbBI9CgdkbV9oZXJkGBUgASgLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1IZXJkVmlldxI6Cgdjb21tYW5kGBYgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ29tbWFuZBIKCgJrdhgXIAEoCRI+CglzdWJfdmlld3MYGCADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVN1YlZpZXcSNgoDcW9lGBkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUW9lSW5mbyJtCglEbVZpZXdSZXESCwoDcGlkGAEgASgDEgsKA29pZBgCIAEoAxIMCgR0eXBlGAMgASgFEg0KBXNwbWlkGAQgASgJEhQKDGlzX2hhcmRfYm9vdBgFIAEoBRITCgtjb250ZXh0X2V4dBgGIAEoCSKBBgoORG1XZWJWaWV3UmVwbHkSDQoFc3RhdGUYASABKAUSDAoEdGV4dBgCIAEoCRIRCgl0ZXh0X3NpZGUYAyABKAkSPQoGZG1fc2dlGAQgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdDb25maWcSQQoEZmxhZxgFIAEoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VGbGFnQ29uZmlnEhMKC3NwZWNpYWxfZG1zGAYgAygJEhEKCWNoZWNrX2JveBgHIAEoCBINCgVjb3VudBgIIAEoAxJACgtjb21tYW5kX2RtcxgJIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNvbW1hbmREbRJNCg1wbGF5ZXJfY29uZmlnGAogASgLMjYuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcSHQoVcmVwb3J0X2ZpbHRlcl9jb250ZW50GAsgAygJEkIKC2V4cHJlc3Npb25zGAwgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgNIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGA4gAygJEkIKC3Bvc3RfcGFuZWwyGA8gAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISPgoJc3ViX3ZpZXdzGBAgAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TdWJWaWV3EjYKA3FvZRgRIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlFvZUluZm8iKgoKRXhwb1JlcG9ydBIcChRzaG91bGRfcmVwb3J0X2F0X2VuZBgBIAEoCCJkCgpFeHByZXNzaW9uEg8KB2tleXdvcmQYASADKAkSCwoDdXJsGAIgASgJEjgKBnBlcmlvZBgDIAMoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBlcmlvZCJJCgtFeHByZXNzaW9ucxI6CgRkYXRhGAEgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbiIqChlJbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoEg0KBXZhbHVlGAEgASgIIicKBUxhYmVsEg0KBXRpdGxlGAEgASgJEg8KB2NvbnRlbnQYAiADKAkihwEKB0xhYmVsVjISDQoFdGl0bGUYASABKAkSDwoHY29udGVudBgCIAMoCRIVCg1leHBvc3VyZV9vbmNlGAMgASgIEkUKDWV4cG9zdXJlX3R5cGUYBCABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiJAoGUGVyaW9kEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAyIwCh9QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEg0KBXZhbHVlGAEgASgFIjIKIVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMhINCgV2YWx1ZRgBIAEoBSIxCiBQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZFN3aXRjaBINCgV2YWx1ZRgBIAEoCCIpChhQbGF5ZXJEYW5tYWt1QmxvY2tib3R0b20SDQoFdmFsdWUYASABKAgiKwoaUGxheWVyRGFubWFrdUJsb2NrY29sb3JmdWwSDQoFdmFsdWUYASABKAgiKQoYUGxheWVyRGFubWFrdUJsb2NrcmVwZWF0Eg0KBXZhbHVlGAEgASgIIikKGFBsYXllckRhbm1ha3VCbG9ja3Njcm9sbBINCgV2YWx1ZRgBIAEoCCIqChlQbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEg0KBXZhbHVlGAEgASgIIiYKFVBsYXllckRhbm1ha3VCbG9ja3RvcBINCgV2YWx1ZRgBIAEoCCIsChtQbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SDQoFdmFsdWUYASABKAgiJQoUUGxheWVyRGFubWFrdURlbnNpdHkSDQoFdmFsdWUYASABKAUiJAoTUGxheWVyRGFubWFrdURvbWFpbhINCgV2YWx1ZRgBIAEoAiImChVQbGF5ZXJEYW5tYWt1RG9tYWluVjISDQoFdmFsdWUYASABKAUiKgoZUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRINCgV2YWx1ZRgBIAEoCCItChxQbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0Eg0KBXZhbHVlGAEgASgIIiUKFFBsYXllckRhbm1ha3VPcGFjaXR5Eg0KBXZhbHVlGAEgASgCIikKGFBsYXllckRhbm1ha3VQZW9wbGVQcm9vZhINCgV2YWx1ZRgBIAEoCCIrChpQbGF5ZXJEYW5tYWt1U2NhbGluZ2ZhY3RvchINCgV2YWx1ZRgBIAEoAiIuCh1QbGF5ZXJEYW5tYWt1U2VuaW9yTW9kZVN3aXRjaBINCgV2YWx1ZRgBIAEoBSIjChJQbGF5ZXJEYW5tYWt1U3BlZWQSDQoFdmFsdWUYASABKAUiKwoaUGxheWVyRGFubWFrdVN1YnRpdGxlUHJvb2YSDQoFdmFsdWUYASABKAgiOAoTUGxheWVyRGFubWFrdVN3aXRjaBINCgV2YWx1ZRgBIAEoCBISCgpjYW5faWdub3JlGAIgASgIIigKF1BsYXllckRhbm1ha3VTd2l0Y2hTYXZlEg0KBXZhbHVlGAEgASgIIi4KHVBsYXllckRhbm1ha3VVc2VEZWZhdWx0Q29uZmlnEg0KBXZhbHVlGAEgASgIIowDCglQb3N0UGFuZWwSDQoFc3RhcnQYASABKAMSCwoDZW5kGAIgASgDEhAKCHByaW9yaXR5GAMgASgDEg4KBmJpel9pZBgEIAEoAxJECghiaXpfdHlwZRgFIAEoDjIyLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbEJpelR5cGUSQwoMY2xpY2tfYnV0dG9uGAYgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2xpY2tCdXR0b24SPwoKdGV4dF9pbnB1dBgHIAEoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dBI9CgljaGVja19ib3gYCCABKAsyKi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja0JveBI2CgV0b2FzdBgJIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0Iq0ECgtQb3N0UGFuZWxWMhINCgVzdGFydBgBIAEoAxILCgNlbmQYAiABKAMSRAoIYml6X3R5cGUYAyABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxCaXpUeXBlEkUKDGNsaWNrX2J1dHRvbhgEIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNsaWNrQnV0dG9uVjISQQoKdGV4dF9pbnB1dBgFIAEoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dFYyEj8KCWNoZWNrX2JveBgGIAEoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNoZWNrQm94VjISOAoFdG9hc3QYByABKAsyKS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Ub2FzdFYyEjoKBmJ1YmJsZRgIIAEoCzIqLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1YmJsZVYyEjgKBWxhYmVsGAkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuTGFiZWxWMhJBCgtwb3N0X3N0YXR1cxgKIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RTdGF0dXMiFwoHUW9lSW5mbxIMCgRpbmZvGAEgASgJIikKCFJlc3BvbnNlEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCSL5AgoMU3VidGl0bGVJdGVtEgoKAmlkGAEgASgDEg4KBmlkX3N0chgCIAEoCRILCgNsYW4YAyABKAkSDwoHbGFuX2RvYxgEIAEoCRIUCgxzdWJ0aXRsZV91cmwYBSABKAkSOgoGYXV0aG9yGAYgASgLMiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVXNlckluZm8SPAoEdHlwZRgHIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlVHlwZRIVCg1sYW5fZG9jX2JyaWVmGAggASgJEkEKB2FpX3R5cGUYCSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpVHlwZRJFCglhaV9zdGF0dXMYCiABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpU3RhdHVzIugCCglUZXh0SW5wdXQSHAoUcG9ydHJhaXRfcGxhY2Vob2xkZXIYASADKAkSHQoVbGFuZHNjYXBlX3BsYWNlaG9sZGVyGAIgAygJEkEKC3JlbmRlcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIYChBwbGFjZWhvbGRlcl9wb3N0GAQgASgIEgwKBHNob3cYBSABKAgSOAoGYXZhdGFyGAYgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEkEKC3Bvc3Rfc3RhdHVzGAcgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFN0YXR1cxI2CgVsYWJlbBgIIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkxhYmVsIvsBCgtUZXh0SW5wdXRWMhIcChRwb3J0cmFpdF9wbGFjZWhvbGRlchgBIAMoCRIdChVsYW5kc2NhcGVfcGxhY2Vob2xkZXIYAiADKAkSQQoLcmVuZGVyX3R5cGUYAyABKA4yLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5SZW5kZXJUeXBlEhgKEHBsYWNlaG9sZGVyX3Bvc3QYBCABKAgSOAoGYXZhdGFyGAUgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEhgKEHRleHRfaW5wdXRfbGltaXQYBiABKAUibwoFVG9hc3QSDAoEdGV4dBgBIAEoCRIQCghkdXJhdGlvbhgCIAEoBRIMCgRzaG93GAMgASgIEjgKBmJ1dHRvbhgEIAEoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1dHRvbiJiCg1Ub2FzdEJ1dHRvblYyEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUicwoHVG9hc3RWMhIMCgR0ZXh0GAEgASgJEhAKCGR1cmF0aW9uGAIgASgFEkgKD3RvYXN0X2J1dHRvbl92MhgDIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0QnV0dG9uVjIiXAoIVXNlckluZm8SCwoDbWlkGAEgASgDEgwKBG5hbWUYAiABKAkSCwoDc2V4GAMgASgJEgwKBGZhY2UYBCABKAkSDAoEc2lnbhgFIAEoCRIMCgRyYW5rGAYgASgFIlMKCVZpZGVvTWFzaxILCgNjaWQYASABKAMSDAoEcGxhdBgCIAEoBRILCgNmcHMYAyABKAUSDAoEdGltZRgEIAEoAxIQCghtYXNrX3VybBgFIAEoCSJwCg1WaWRlb1N1YnRpdGxlEgsKA2xhbhgBIAEoCRIPCgdsYW5fZG9jGAIgASgJEkEKCXN1YnRpdGxlcxgDIAMoCzIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlSXRlbSKSAQoOVmlld0hlcmREbUVsZW0SEAoIaGVyZF9tc2cYASABKAkSFgoOaGVyZF9zdGFydF9jbnQYAiABKAUSFAoMaGVyZF9lbmRfY250GAMgASgFEhIKCnJlZ2V4X3J1bGUYBCABKAkSFgoOc3RhcnRfcHJvZ3Jlc3MYBSABKAUSFAoMZW5kX3Byb2dyZXNzGAYgASgFKjMKCkF2YXRhclR5cGUSEgoOQXZhdGFyVHlwZU5vbmUQABIRCg1BdmF0YXJUeXBlTkZUEAEqWQoKQnViYmxlVHlwZRISCg5CdWJibGVUeXBlTm9uZRAAEhkKFUJ1YmJsZVR5cGVDbGlja0J1dHRvbhABEhwKGEJ1YmJsZVR5cGVEbVNldHRpbmdQYW5lbBACKlgKDENoZWNrYm94VHlwZRIUChBDaGVja2JveFR5cGVOb25lEAASGQoVQ2hlY2tib3hUeXBlRW5jb3VyYWdlEAESFwoTQ2hlY2tib3hUeXBlQ29sb3JETRACKjUKDkRtQ29sb3JmdWxUeXBlEgwKCE5vbmVUeXBlEAASFQoPVmlwR3JhZHVhbENvbG9yEOHUAypgChFEbU1hc2tXYWxsQml6VHlwZRILCgdVbmtub3duEAASBwoDT0dWEAESCgoGQml6UGljEAISCAoETXV0ZRADEgoKBlJlY29yZBAEEgkKBUNsb3VkEAUSCAoEQUlHQxAGKnYKFURtTWFza1dhbGxDb250ZW50VHlwZRIgChxEbU1hc2tXYWxsQ29udGVudFR5cGVVbmtub3duEAASHQoZRG1NYXNrV2FsbENvbnRlbnRUeXBlVGV4dBABEhwKGERtTWFza1dhbGxDb250ZW50VHlwZVBpYxACKjwKDEV4cG9zdXJlVHlwZRIUChBFeHBvc3VyZVR5cGVOb25lEAASFgoSRXhwb3N1cmVUeXBlRE1TZW5kEAEqgwIKEFBvc3RQYW5lbEJpelR5cGUSGAoUUG9zdFBhbmVsQml6VHlwZU5vbmUQABIdChlQb3N0UGFuZWxCaXpUeXBlRW5jb3VyYWdlEAESGwoXUG9zdFBhbmVsQml6VHlwZUNvbG9yRE0QAhIZChVQb3N0UGFuZWxCaXpUeXBlTkZURE0QAxIdChlQb3N0UGFuZWxCaXpUeXBlRnJhZ0Nsb3NlEAQSHQoZUG9zdFBhbmVsQml6VHlwZVJlY29tbWVuZBAFEhwKGFBvc3RQYW5lbEJpelR5cGVQbG90TGVhaxAGEiIKHlBvc3RQYW5lbEJpelR5cGVBbnRpSGFyYXNzbWVudBAHKjgKClBvc3RTdGF0dXMSFAoQUG9zdFN0YXR1c05vcm1hbBAAEhQKEFBvc3RTdGF0dXNDbG9zZWQQASpOCgpSZW5kZXJUeXBlEhIKDlJlbmRlclR5cGVOb25lEAASFAoQUmVuZGVyVHlwZVNpbmdsZRABEhYKElJlbmRlclR5cGVSb3RhdGlvbhACKjYKEFN1YnRpdGxlQWlTdGF0dXMSCAoETm9uZRAAEgwKCEV4cG9zdXJlEAESCgoGQXNzaXN0EAIqKwoOU3VidGl0bGVBaVR5cGUSCgoGTm9ybWFsEAASDQoJVHJhbnNsYXRlEAEqHgoMU3VidGl0bGVUeXBlEgYKAkNDEAASBgoCQUkQASpOChFUb2FzdEZ1bmN0aW9uVHlwZRIZChVUb2FzdEZ1bmN0aW9uVHlwZU5vbmUQABIeChpUb2FzdEZ1bmN0aW9uVHlwZVBvc3RQYW5lbBABMqAFCgJETRJzCgtEbVNlZ01vYmlsZRIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnTW9iaWxlUmVxGjIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdNb2JpbGVSZXBseRJkCgZEbVZpZXcSKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXEaLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXBseRJxCg5EbVBsYXllckNvbmZpZxIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtUGxheWVyQ29uZmlnUmVxGiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVzcG9uc2USagoIRG1TZWdPdHQSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ090dFJlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnT3R0UmVwbHkSagoIRG1TZWdTREsSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ1NES1JlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnU0RLUmVwbHkSdAoMRG1FeHBvUmVwb3J0EjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVxGjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVzYgZwcm90bzM");
|
|
20894
20895
|
const DmSegMobileReplySchema = /*@__PURE__*/ message_messageDesc(file_bili_dm, 30);
|
|
20895
20896
|
const DmWebViewReplySchema = /*@__PURE__*/ message_messageDesc(file_bili_dm, 39);
|
|
@@ -23212,7 +23213,8 @@ and limitations under the License.
|
|
|
23212
23213
|
}({});
|
|
23213
23214
|
const DMAttrUtils = {
|
|
23214
23215
|
fromBin (bin = 0, format) {
|
|
23215
|
-
const array = toBits(bin)
|
|
23216
|
+
const array = toBits(bin);
|
|
23217
|
+
const attr = [];
|
|
23216
23218
|
if ('bili' === format) {
|
|
23217
23219
|
if (array[0]) attr.push("Protect");
|
|
23218
23220
|
if (array[1]) attr.push("FromLive");
|
|
@@ -23340,7 +23342,8 @@ and limitations under the License.
|
|
|
23340
23342
|
isSameAs(dan, options) {
|
|
23341
23343
|
if (4 === this.mode || 4 === dan.mode) return false;
|
|
23342
23344
|
if (!options?.skipDanuniMerge && (this.extra.danuni?.merge || dan.extra.danuni?.merge)) return false;
|
|
23343
|
-
const isSame = (k)=>this[k] === dan[k]
|
|
23345
|
+
const isSame = (k)=>this[k] === dan[k];
|
|
23346
|
+
const checks = [
|
|
23344
23347
|
'SOID',
|
|
23345
23348
|
'content',
|
|
23346
23349
|
'mode',
|
|
@@ -23350,9 +23353,11 @@ and limitations under the License.
|
|
|
23350
23353
|
return checks;
|
|
23351
23354
|
}
|
|
23352
23355
|
minify() {
|
|
23353
|
-
const def = UniDM.create()
|
|
23356
|
+
const def = UniDM.create();
|
|
23357
|
+
const dan = UniDM.create(this);
|
|
23354
23358
|
for(const key in dan){
|
|
23355
|
-
const k = key
|
|
23359
|
+
const k = key;
|
|
23360
|
+
const v = dan[k];
|
|
23356
23361
|
if ('SOID' !== key) if (v) if (v === def[k]) delete dan[k];
|
|
23357
23362
|
else {
|
|
23358
23363
|
if ('attr' === k && Array.isArray(v) && 0 === v.length) delete dan[k];
|
|
@@ -23457,13 +23462,15 @@ and limitations under the License.
|
|
|
23457
23462
|
if (args.oid && !cid) cid = args.oid;
|
|
23458
23463
|
const SOID = recSOID || `def_${platform_PlatformVideoSource.Bilibili}+${id_gen_UniID.fromBili({
|
|
23459
23464
|
cid
|
|
23460
|
-
})}
|
|
23465
|
+
})}`;
|
|
23466
|
+
const senderID = IsEmail_isEmail(args.midHash, {
|
|
23461
23467
|
require_tld: false
|
|
23462
23468
|
}) ? args.midHash : id_gen_UniID.fromBili({
|
|
23463
23469
|
midHash: args.midHash
|
|
23464
23470
|
});
|
|
23465
23471
|
let mode = 0;
|
|
23466
|
-
const pool = args.pool
|
|
23472
|
+
const pool = args.pool;
|
|
23473
|
+
const extra = {
|
|
23467
23474
|
bili: {
|
|
23468
23475
|
mode: args.mode,
|
|
23469
23476
|
pool: args.pool,
|
|
@@ -23566,7 +23573,8 @@ and limitations under the License.
|
|
|
23566
23573
|
if (args.oid && !cid) cid = args.oid;
|
|
23567
23574
|
const SOID = `def_${platform_PlatformVideoSource.Bilibili}+${id_gen_UniID.fromBili({
|
|
23568
23575
|
cid
|
|
23569
|
-
})}
|
|
23576
|
+
})}`;
|
|
23577
|
+
const senderID = id_gen_UniID.fromBili({
|
|
23570
23578
|
mid: args.mid
|
|
23571
23579
|
});
|
|
23572
23580
|
return this.create({
|
|
@@ -23589,7 +23597,8 @@ and limitations under the License.
|
|
|
23589
23597
|
}, options);
|
|
23590
23598
|
}
|
|
23591
23599
|
static fromDplayer(args, playerID, domain, options) {
|
|
23592
|
-
const SOID = id_gen_UniID.fromUnknown(playerID, domain)
|
|
23600
|
+
const SOID = id_gen_UniID.fromUnknown(playerID, domain);
|
|
23601
|
+
const senderID = id_gen_UniID.fromUnknown(args.midHash, domain);
|
|
23593
23602
|
return this.create({
|
|
23594
23603
|
...args,
|
|
23595
23604
|
SOID: SOID.toString(),
|
|
@@ -23611,7 +23620,8 @@ and limitations under the License.
|
|
|
23611
23620
|
};
|
|
23612
23621
|
}
|
|
23613
23622
|
static fromArtplayer(args, playerID, domain, options) {
|
|
23614
|
-
const SOID = id_gen_UniID.fromUnknown(playerID, domain)
|
|
23623
|
+
const SOID = id_gen_UniID.fromUnknown(playerID, domain);
|
|
23624
|
+
const senderID = id_gen_UniID.fromUnknown('', domain);
|
|
23615
23625
|
let extra = args.border ? {
|
|
23616
23626
|
artplayer: {
|
|
23617
23627
|
border: args.border,
|
|
@@ -23902,126 +23912,36 @@ and limitations under the License.
|
|
|
23902
23912
|
color: isShared('color') ? this.dans[0].color : void 0
|
|
23903
23913
|
};
|
|
23904
23914
|
}
|
|
23905
|
-
|
|
23906
|
-
const
|
|
23907
|
-
|
|
23908
|
-
|
|
23909
|
-
|
|
23910
|
-
|
|
23911
|
-
|
|
23912
|
-
|
|
23913
|
-
|
|
23914
|
-
|
|
23915
|
-
|
|
23916
|
-
},
|
|
23917
|
-
{
|
|
23918
|
-
val: dm_gen_Modes.Top,
|
|
23919
|
-
count: 0
|
|
23920
|
-
},
|
|
23921
|
-
{
|
|
23922
|
-
val: dm_gen_Modes.Reverse,
|
|
23923
|
-
count: 0
|
|
23924
|
-
},
|
|
23925
|
-
{
|
|
23926
|
-
val: dm_gen_Modes.Ext,
|
|
23927
|
-
count: 0
|
|
23928
|
-
}
|
|
23929
|
-
],
|
|
23930
|
-
fontsize: [],
|
|
23931
|
-
color: [],
|
|
23932
|
-
senderID: [],
|
|
23933
|
-
content: [],
|
|
23934
|
-
weight: [],
|
|
23935
|
-
pool: [
|
|
23936
|
-
{
|
|
23937
|
-
val: dm_gen_Pools.Def,
|
|
23938
|
-
count: 0
|
|
23939
|
-
},
|
|
23940
|
-
{
|
|
23941
|
-
val: dm_gen_Pools.Sub,
|
|
23942
|
-
count: 0
|
|
23943
|
-
},
|
|
23944
|
-
{
|
|
23945
|
-
val: dm_gen_Pools.Adv,
|
|
23946
|
-
count: 0
|
|
23947
|
-
},
|
|
23948
|
-
{
|
|
23949
|
-
val: dm_gen_Pools.Ix,
|
|
23950
|
-
count: 0
|
|
23951
|
-
}
|
|
23952
|
-
],
|
|
23953
|
-
platform: []
|
|
23954
|
-
};
|
|
23955
|
-
const stat = this.dans.reduce((s, d)=>{
|
|
23956
|
-
const SOID = s.SOID.find((i)=>i.val === d.SOID);
|
|
23957
|
-
if (SOID) SOID.count++;
|
|
23958
|
-
else s.SOID.push({
|
|
23959
|
-
val: d.SOID,
|
|
23960
|
-
count: 1
|
|
23961
|
-
});
|
|
23962
|
-
const mode = s.mode.find((i)=>i.val === d.mode);
|
|
23963
|
-
if (mode) mode.count++;
|
|
23964
|
-
else s.mode.push({
|
|
23965
|
-
val: d.mode,
|
|
23966
|
-
count: 1
|
|
23967
|
-
});
|
|
23968
|
-
const fontsize = s.fontsize.find((i)=>i.val === d.fontsize);
|
|
23969
|
-
if (fontsize) fontsize.count++;
|
|
23970
|
-
else s.fontsize.push({
|
|
23971
|
-
val: d.fontsize,
|
|
23972
|
-
count: 1
|
|
23973
|
-
});
|
|
23974
|
-
const color = s.color.find((i)=>i.val === d.color);
|
|
23975
|
-
if (color) color.count++;
|
|
23976
|
-
else s.color.push({
|
|
23977
|
-
val: d.color,
|
|
23978
|
-
count: 1
|
|
23979
|
-
});
|
|
23980
|
-
const senderID = s.senderID.find((i)=>i.val === d.senderID);
|
|
23981
|
-
if (senderID) senderID.count++;
|
|
23982
|
-
else s.senderID.push({
|
|
23983
|
-
val: d.senderID,
|
|
23984
|
-
count: 1
|
|
23985
|
-
});
|
|
23986
|
-
const content = s.content.find((i)=>i.val === d.content);
|
|
23987
|
-
if (content) content.count++;
|
|
23988
|
-
else s.content.push({
|
|
23989
|
-
val: d.content,
|
|
23990
|
-
count: 1
|
|
23991
|
-
});
|
|
23992
|
-
const weight = s.weight.find((i)=>i.val === d.weight);
|
|
23993
|
-
if (weight) weight.count++;
|
|
23994
|
-
else s.weight.push({
|
|
23995
|
-
val: d.weight,
|
|
23996
|
-
count: 1
|
|
23997
|
-
});
|
|
23998
|
-
const pool = s.pool.find((i)=>i.val === d.pool);
|
|
23999
|
-
if (pool) pool.count++;
|
|
24000
|
-
else s.pool.push({
|
|
24001
|
-
val: d.pool,
|
|
24002
|
-
count: 1
|
|
24003
|
-
});
|
|
24004
|
-
const platform = s.platform.find((i)=>i.val === d.platform);
|
|
24005
|
-
if (platform) platform.count++;
|
|
24006
|
-
else s.platform.push({
|
|
24007
|
-
val: d.platform,
|
|
23915
|
+
getShared(key) {
|
|
23916
|
+
const isShared = (key)=>this.dans.every((d)=>d[key]);
|
|
23917
|
+
return isShared(key) ? this.dans[0][key] : void 0;
|
|
23918
|
+
}
|
|
23919
|
+
getStat(key) {
|
|
23920
|
+
const default_stat = [];
|
|
23921
|
+
const stats = this.dans.reduce((stat, dan)=>{
|
|
23922
|
+
const valWithCount = stat.find((i)=>i.val === dan[key]);
|
|
23923
|
+
if (valWithCount) valWithCount.count++;
|
|
23924
|
+
else stat.push({
|
|
23925
|
+
val: dan[key],
|
|
24008
23926
|
count: 1
|
|
24009
23927
|
});
|
|
24010
|
-
return
|
|
23928
|
+
return stat;
|
|
24011
23929
|
}, default_stat);
|
|
24012
|
-
return
|
|
23930
|
+
return stats;
|
|
23931
|
+
}
|
|
23932
|
+
getMost(key) {
|
|
23933
|
+
return this.getStat(key).sort((a, b)=>b.count - a.count)[0];
|
|
24013
23934
|
}
|
|
24014
23935
|
get most() {
|
|
24015
|
-
const s = this.stat;
|
|
24016
23936
|
return {
|
|
24017
|
-
mode:
|
|
24018
|
-
fontsize:
|
|
24019
|
-
color:
|
|
24020
|
-
senderID:
|
|
24021
|
-
content:
|
|
24022
|
-
weight:
|
|
24023
|
-
pool:
|
|
24024
|
-
platform:
|
|
23937
|
+
mode: this.getMost('mode').val,
|
|
23938
|
+
fontsize: this.getMost('fontsize').val,
|
|
23939
|
+
color: this.getMost('color').val,
|
|
23940
|
+
senderID: this.getMost('senderID').val,
|
|
23941
|
+
content: this.getMost('content').val,
|
|
23942
|
+
weight: this.getMost('weight').val,
|
|
23943
|
+
pool: this.getMost('pool').val,
|
|
23944
|
+
platform: this.getMost('platform').val
|
|
24025
23945
|
};
|
|
24026
23946
|
}
|
|
24027
23947
|
static create(options) {
|
|
@@ -24145,7 +24065,8 @@ and limitations under the License.
|
|
|
24145
24065
|
'platform',
|
|
24146
24066
|
'pool'
|
|
24147
24067
|
].map((k)=>danmaku[k]).join('|');
|
|
24148
|
-
const extra = result[i].extra
|
|
24068
|
+
const extra = result[i].extra;
|
|
24069
|
+
const mergeData = mergeObj[key];
|
|
24149
24070
|
result[i].extraStr = src_JSON.stringify({
|
|
24150
24071
|
...extra,
|
|
24151
24072
|
danuni: {
|
|
@@ -24316,9 +24237,14 @@ and limitations under the License.
|
|
|
24316
24237
|
static fromBiliXML(xml, options) {
|
|
24317
24238
|
const parser = new XMLParser({
|
|
24318
24239
|
ignoreAttributes: false
|
|
24319
|
-
})
|
|
24240
|
+
});
|
|
24241
|
+
const oriData = parser.parse(xml);
|
|
24242
|
+
const dans = oriData.i.d;
|
|
24243
|
+
const fromConverted = !!oriData.danuni;
|
|
24244
|
+
const cid = BigInt(oriData.i.chatid);
|
|
24320
24245
|
return new UniPool(dans.map((d)=>{
|
|
24321
|
-
const p_str = d['@_p']
|
|
24246
|
+
const p_str = d['@_p'];
|
|
24247
|
+
const p_arr = p_str.split(',');
|
|
24322
24248
|
return UniDM.fromBili({
|
|
24323
24249
|
content: d['#text'],
|
|
24324
24250
|
progress: Number.parseFloat(p_arr[0]),
|
|
@@ -24373,14 +24299,16 @@ and limitations under the License.
|
|
|
24373
24299
|
});
|
|
24374
24300
|
}
|
|
24375
24301
|
static fromBiliGrpc(bin, options) {
|
|
24376
|
-
const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin))
|
|
24302
|
+
const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin));
|
|
24303
|
+
const json = data.elems;
|
|
24377
24304
|
return new UniPool(json.map((d)=>UniDM.fromBili({
|
|
24378
24305
|
...d,
|
|
24379
24306
|
progress: d.progress / 1000
|
|
24380
24307
|
}, d.oid, options)), options);
|
|
24381
24308
|
}
|
|
24382
24309
|
static fromBiliCommandGrpc(bin, options) {
|
|
24383
|
-
const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin))
|
|
24310
|
+
const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin));
|
|
24311
|
+
const json = data.commandDms;
|
|
24384
24312
|
return new UniPool(json.map((d)=>UniDM.fromBiliCommand(d, d.oid, options)), options);
|
|
24385
24313
|
}
|
|
24386
24314
|
static fromDplayer(json, playerID, domain = 'other', options) {
|
|
@@ -24789,7 +24717,8 @@ and limitations under the License.
|
|
|
24789
24717
|
const compressTypes = [
|
|
24790
24718
|
'brotli',
|
|
24791
24719
|
'gzip'
|
|
24792
|
-
]
|
|
24720
|
+
];
|
|
24721
|
+
const baseTypes = [
|
|
24793
24722
|
'base64',
|
|
24794
24723
|
'base18384'
|
|
24795
24724
|
];
|
|
@@ -24803,19 +24732,25 @@ and limitations under the License.
|
|
|
24803
24732
|
list,
|
|
24804
24733
|
config,
|
|
24805
24734
|
context
|
|
24806
|
-
}
|
|
24735
|
+
};
|
|
24736
|
+
const rawText = JSON.stringify(raw1);
|
|
24807
24737
|
let compress;
|
|
24808
24738
|
compress = 'brotli' === compressType ? (0, lib.brotliCompressSync)(rawText) : (0, lib.gzipSync)(rawText);
|
|
24809
24739
|
return `;RawCompressType: ${compressType}\n;RawBaseType: ${baseType}\n;Raw: ${'base64' === baseType ? compress.toString('base64') : fromUint16Array(base16384_lib.encode(compress))}`;
|
|
24810
24740
|
}
|
|
24811
24741
|
function deRaw(ass) {
|
|
24812
|
-
const arr = ass.split('\n')
|
|
24742
|
+
const arr = ass.split('\n');
|
|
24743
|
+
const lineCompressType = arr.find((line)=>line.startsWith(';RawCompressType:'));
|
|
24744
|
+
const lineBaseType = arr.find((line)=>line.startsWith(';RawBaseType:'));
|
|
24745
|
+
const lineRaw = arr.find((line)=>line.startsWith(';Raw:'));
|
|
24813
24746
|
if (!lineCompressType || !lineBaseType || !lineRaw) return;
|
|
24814
24747
|
{
|
|
24815
|
-
let compressType = lineCompressType.replace(';RawCompressType: ', '').trim()
|
|
24748
|
+
let compressType = lineCompressType.replace(';RawCompressType: ', '').trim();
|
|
24749
|
+
let baseType = lineBaseType.replace(';RawBaseType: ', '').trim();
|
|
24816
24750
|
if (!compressTypes.includes(compressType)) compressType = 'gzip';
|
|
24817
24751
|
if (!baseTypes.includes(baseType)) baseType = 'base64';
|
|
24818
|
-
const text = lineRaw.replace(';Raw: ', '').trim()
|
|
24752
|
+
const text = lineRaw.replace(';Raw: ', '').trim();
|
|
24753
|
+
const buffer = 'base64' === baseType ? raw_Buffer.from(text, 'base64') : raw_Buffer.from(base16384_lib.decode(raw_Buffer.from(text, 'utf-8').toString('utf-8')));
|
|
24819
24754
|
let decompress;
|
|
24820
24755
|
decompress = 'brotli' === compressType ? (0, lib.brotliDecompressSync)(buffer) : (0, lib.gunzipSync)(buffer);
|
|
24821
24756
|
try {
|
|
@@ -24870,7 +24805,8 @@ and limitations under the License.
|
|
|
24870
24805
|
filename: 'unknown',
|
|
24871
24806
|
title: 'unknown'
|
|
24872
24807
|
}, rawConfig)=>{
|
|
24873
|
-
const Elist = UniPool2DanmakuLists(list)
|
|
24808
|
+
const Elist = UniPool2DanmakuLists(list);
|
|
24809
|
+
const ErawList = UniPool2DanmakuLists(rawList);
|
|
24874
24810
|
const content = [
|
|
24875
24811
|
ass_info(config, context),
|
|
24876
24812
|
style(config),
|
|
@@ -24963,126 +24899,36 @@ and limitations under the License.
|
|
|
24963
24899
|
color: isShared('color') ? this.dans[0].color : void 0
|
|
24964
24900
|
};
|
|
24965
24901
|
}
|
|
24966
|
-
|
|
24967
|
-
const
|
|
24968
|
-
|
|
24969
|
-
|
|
24970
|
-
|
|
24971
|
-
|
|
24972
|
-
|
|
24973
|
-
|
|
24974
|
-
|
|
24975
|
-
|
|
24976
|
-
|
|
24977
|
-
},
|
|
24978
|
-
{
|
|
24979
|
-
val: dm_gen_Modes.Top,
|
|
24980
|
-
count: 0
|
|
24981
|
-
},
|
|
24982
|
-
{
|
|
24983
|
-
val: dm_gen_Modes.Reverse,
|
|
24984
|
-
count: 0
|
|
24985
|
-
},
|
|
24986
|
-
{
|
|
24987
|
-
val: dm_gen_Modes.Ext,
|
|
24988
|
-
count: 0
|
|
24989
|
-
}
|
|
24990
|
-
],
|
|
24991
|
-
fontsize: [],
|
|
24992
|
-
color: [],
|
|
24993
|
-
senderID: [],
|
|
24994
|
-
content: [],
|
|
24995
|
-
weight: [],
|
|
24996
|
-
pool: [
|
|
24997
|
-
{
|
|
24998
|
-
val: dm_gen_Pools.Def,
|
|
24999
|
-
count: 0
|
|
25000
|
-
},
|
|
25001
|
-
{
|
|
25002
|
-
val: dm_gen_Pools.Sub,
|
|
25003
|
-
count: 0
|
|
25004
|
-
},
|
|
25005
|
-
{
|
|
25006
|
-
val: dm_gen_Pools.Adv,
|
|
25007
|
-
count: 0
|
|
25008
|
-
},
|
|
25009
|
-
{
|
|
25010
|
-
val: dm_gen_Pools.Ix,
|
|
25011
|
-
count: 0
|
|
25012
|
-
}
|
|
25013
|
-
],
|
|
25014
|
-
platform: []
|
|
25015
|
-
};
|
|
25016
|
-
const stat = this.dans.reduce((s, d)=>{
|
|
25017
|
-
const SOID = s.SOID.find((i)=>i.val === d.SOID);
|
|
25018
|
-
if (SOID) SOID.count++;
|
|
25019
|
-
else s.SOID.push({
|
|
25020
|
-
val: d.SOID,
|
|
25021
|
-
count: 1
|
|
25022
|
-
});
|
|
25023
|
-
const mode = s.mode.find((i)=>i.val === d.mode);
|
|
25024
|
-
if (mode) mode.count++;
|
|
25025
|
-
else s.mode.push({
|
|
25026
|
-
val: d.mode,
|
|
25027
|
-
count: 1
|
|
25028
|
-
});
|
|
25029
|
-
const fontsize = s.fontsize.find((i)=>i.val === d.fontsize);
|
|
25030
|
-
if (fontsize) fontsize.count++;
|
|
25031
|
-
else s.fontsize.push({
|
|
25032
|
-
val: d.fontsize,
|
|
25033
|
-
count: 1
|
|
25034
|
-
});
|
|
25035
|
-
const color = s.color.find((i)=>i.val === d.color);
|
|
25036
|
-
if (color) color.count++;
|
|
25037
|
-
else s.color.push({
|
|
25038
|
-
val: d.color,
|
|
25039
|
-
count: 1
|
|
25040
|
-
});
|
|
25041
|
-
const senderID = s.senderID.find((i)=>i.val === d.senderID);
|
|
25042
|
-
if (senderID) senderID.count++;
|
|
25043
|
-
else s.senderID.push({
|
|
25044
|
-
val: d.senderID,
|
|
25045
|
-
count: 1
|
|
25046
|
-
});
|
|
25047
|
-
const content = s.content.find((i)=>i.val === d.content);
|
|
25048
|
-
if (content) content.count++;
|
|
25049
|
-
else s.content.push({
|
|
25050
|
-
val: d.content,
|
|
25051
|
-
count: 1
|
|
25052
|
-
});
|
|
25053
|
-
const weight = s.weight.find((i)=>i.val === d.weight);
|
|
25054
|
-
if (weight) weight.count++;
|
|
25055
|
-
else s.weight.push({
|
|
25056
|
-
val: d.weight,
|
|
25057
|
-
count: 1
|
|
25058
|
-
});
|
|
25059
|
-
const pool = s.pool.find((i)=>i.val === d.pool);
|
|
25060
|
-
if (pool) pool.count++;
|
|
25061
|
-
else s.pool.push({
|
|
25062
|
-
val: d.pool,
|
|
25063
|
-
count: 1
|
|
25064
|
-
});
|
|
25065
|
-
const platform = s.platform.find((i)=>i.val === d.platform);
|
|
25066
|
-
if (platform) platform.count++;
|
|
25067
|
-
else s.platform.push({
|
|
25068
|
-
val: d.platform,
|
|
24902
|
+
getShared(key) {
|
|
24903
|
+
const isShared = (key)=>this.dans.every((d)=>d[key]);
|
|
24904
|
+
return isShared(key) ? this.dans[0][key] : void 0;
|
|
24905
|
+
}
|
|
24906
|
+
getStat(key) {
|
|
24907
|
+
const default_stat = [];
|
|
24908
|
+
const stats = this.dans.reduce((stat, dan)=>{
|
|
24909
|
+
const valWithCount = stat.find((i)=>i.val === dan[key]);
|
|
24910
|
+
if (valWithCount) valWithCount.count++;
|
|
24911
|
+
else stat.push({
|
|
24912
|
+
val: dan[key],
|
|
25069
24913
|
count: 1
|
|
25070
24914
|
});
|
|
25071
|
-
return
|
|
24915
|
+
return stat;
|
|
25072
24916
|
}, default_stat);
|
|
25073
|
-
return
|
|
24917
|
+
return stats;
|
|
24918
|
+
}
|
|
24919
|
+
getMost(key) {
|
|
24920
|
+
return this.getStat(key).sort((a, b)=>b.count - a.count)[0];
|
|
25074
24921
|
}
|
|
25075
24922
|
get most() {
|
|
25076
|
-
const s = this.stat;
|
|
25077
24923
|
return {
|
|
25078
|
-
mode:
|
|
25079
|
-
fontsize:
|
|
25080
|
-
color:
|
|
25081
|
-
senderID:
|
|
25082
|
-
content:
|
|
25083
|
-
weight:
|
|
25084
|
-
pool:
|
|
25085
|
-
platform:
|
|
24924
|
+
mode: this.getMost('mode').val,
|
|
24925
|
+
fontsize: this.getMost('fontsize').val,
|
|
24926
|
+
color: this.getMost('color').val,
|
|
24927
|
+
senderID: this.getMost('senderID').val,
|
|
24928
|
+
content: this.getMost('content').val,
|
|
24929
|
+
weight: this.getMost('weight').val,
|
|
24930
|
+
pool: this.getMost('pool').val,
|
|
24931
|
+
platform: this.getMost('platform').val
|
|
25086
24932
|
};
|
|
25087
24933
|
}
|
|
25088
24934
|
static create(options) {
|
|
@@ -25206,7 +25052,8 @@ and limitations under the License.
|
|
|
25206
25052
|
'platform',
|
|
25207
25053
|
'pool'
|
|
25208
25054
|
].map((k)=>danmaku[k]).join('|');
|
|
25209
|
-
const extra = result[i].extra
|
|
25055
|
+
const extra = result[i].extra;
|
|
25056
|
+
const mergeData = mergeObj[key];
|
|
25210
25057
|
result[i].extraStr = src_JSON_0.stringify({
|
|
25211
25058
|
...extra,
|
|
25212
25059
|
danuni: {
|
|
@@ -25377,9 +25224,14 @@ and limitations under the License.
|
|
|
25377
25224
|
static fromBiliXML(xml, options) {
|
|
25378
25225
|
const parser = new XMLParser({
|
|
25379
25226
|
ignoreAttributes: false
|
|
25380
|
-
})
|
|
25227
|
+
});
|
|
25228
|
+
const oriData = parser.parse(xml);
|
|
25229
|
+
const dans = oriData.i.d;
|
|
25230
|
+
const fromConverted = !!oriData.danuni;
|
|
25231
|
+
const cid = BigInt(oriData.i.chatid);
|
|
25381
25232
|
return new src_UniPool(dans.map((d)=>{
|
|
25382
|
-
const p_str = d['@_p']
|
|
25233
|
+
const p_str = d['@_p'];
|
|
25234
|
+
const p_arr = p_str.split(',');
|
|
25383
25235
|
return UniDM.fromBili({
|
|
25384
25236
|
content: d['#text'],
|
|
25385
25237
|
progress: Number.parseFloat(p_arr[0]),
|
|
@@ -25434,14 +25286,16 @@ and limitations under the License.
|
|
|
25434
25286
|
});
|
|
25435
25287
|
}
|
|
25436
25288
|
static fromBiliGrpc(bin, options) {
|
|
25437
|
-
const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin))
|
|
25289
|
+
const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin));
|
|
25290
|
+
const json = data.elems;
|
|
25438
25291
|
return new src_UniPool(json.map((d)=>UniDM.fromBili({
|
|
25439
25292
|
...d,
|
|
25440
25293
|
progress: d.progress / 1000
|
|
25441
25294
|
}, d.oid, options)), options);
|
|
25442
25295
|
}
|
|
25443
25296
|
static fromBiliCommandGrpc(bin, options) {
|
|
25444
|
-
const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin))
|
|
25297
|
+
const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin));
|
|
25298
|
+
const json = data.commandDms;
|
|
25445
25299
|
return new src_UniPool(json.map((d)=>UniDM.fromBiliCommand(d, d.oid, options)), options);
|
|
25446
25300
|
}
|
|
25447
25301
|
static fromDplayer(json, playerID, domain = 'other', options) {
|