node-switchbot 2.5.0-beta.4 → 2.5.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,20 +1,8 @@
1
1
  import type * as Noble from '@stoprocent/noble';
2
- import { Buffer } from 'node:buffer';
3
- interface ServiceData {
4
- model: string;
5
- [key: string]: unknown;
6
- }
7
- export interface Ad {
8
- id: string;
9
- address: string;
10
- rssi: number;
11
- serviceData: ServiceData;
12
- [key: string]: unknown;
13
- }
14
- export interface AdvertisementData {
15
- serviceData: Buffer | null;
16
- manufacturerData: Buffer | null;
17
- }
2
+ import type { Ad } from './types/types.js';
3
+ /**
4
+ * Represents the advertising data parser for SwitchBot devices.
5
+ */
18
6
  export declare class Advertising {
19
7
  constructor();
20
8
  /**
@@ -23,11 +11,34 @@ export declare class Advertising {
23
11
  * This function processes advertising packets received from SwitchBot devices
24
12
  * and extracts relevant information based on the device type.
25
13
  *
26
- * @param peripheral - The peripheral device object from noble.
27
- * @param onlog - A logging function for debugging purposes.
28
- * @returns An object containing parsed data specific to the SwitchBot device type, or `null` if the device is not recognized.
14
+ * @param {Noble.Peripheral} peripheral - The peripheral device object from noble.
15
+ * @param {(message: string) => void} [onlog] - A logging function for debugging purposes.
16
+ * @returns {Promise<Ad | null>} - An object containing parsed data specific to the SwitchBot device type, or `null` if the device is not recognized.
29
17
  */
30
18
  static parse(peripheral: Noble.Peripheral, onlog?: (message: string) => void): Promise<Ad | null>;
19
+ /**
20
+ * Validates if the buffer is a valid Buffer object with a minimum length.
21
+ *
22
+ * @param {any} buffer - The buffer to validate.
23
+ * @returns {boolean} - True if the buffer is valid, false otherwise.
24
+ */
25
+ private static validateBuffer;
26
+ /**
27
+ * Parses the service data based on the device model.
28
+ *
29
+ * @param {string} model - The device model.
30
+ * @param {Buffer} serviceData - The service data buffer.
31
+ * @param {Buffer} manufacturerData - The manufacturer data buffer.
32
+ * @param {(message: string) => void} [onlog] - A logging function for debugging purposes.
33
+ * @returns {Promise<any>} - The parsed service data.
34
+ */
35
+ private static parseServiceData;
36
+ /**
37
+ * Formats the address of the peripheral.
38
+ *
39
+ * @param {Noble.Peripheral} peripheral - The peripheral device object from noble.
40
+ * @returns {string} - The formatted address.
41
+ */
42
+ private static formatAddress;
31
43
  }
32
- export {};
33
44
  //# sourceMappingURL=advertising.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"advertising.d.ts","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAmBpC,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AACD,MAAM,WAAW,EAAE;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,WAAW,CAAA;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,qBAAa,WAAW;;IAGtB;;;;;;;;;OASG;WACU,KAAK,CAChB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;CAoHtB"}
1
+ {"version":3,"file":"advertising.d.ts","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EAAE,EAAE,EAAe,MAAM,kBAAkB,CAAA;AAqBvD;;GAEG;AACH,qBAAa,WAAW;;IAGtB;;;;;;;;;OASG;WACU,KAAK,CAChB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;IAgCrB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B;;;;;;;;OAQG;mBACkB,gBAAgB;IAkDrC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;CAY7B"}
@@ -15,6 +15,9 @@ import { WoSmartLock } from './device/wosmartlock.js';
15
15
  import { WoSmartLockPro } from './device/wosmartlockpro.js';
16
16
  import { WoStrip } from './device/wostrip.js';
17
17
  import { SwitchBotBLEModel } from './types/types.js';
18
+ /**
19
+ * Represents the advertising data parser for SwitchBot devices.
20
+ */
18
21
  export class Advertising {
19
22
  constructor() { }
20
23
  /**
@@ -23,122 +26,116 @@ export class Advertising {
23
26
  * This function processes advertising packets received from SwitchBot devices
24
27
  * and extracts relevant information based on the device type.
25
28
  *
26
- * @param peripheral - The peripheral device object from noble.
27
- * @param onlog - A logging function for debugging purposes.
28
- * @returns An object containing parsed data specific to the SwitchBot device type, or `null` if the device is not recognized.
29
+ * @param {Noble.Peripheral} peripheral - The peripheral device object from noble.
30
+ * @param {(message: string) => void} [onlog] - A logging function for debugging purposes.
31
+ * @returns {Promise<Ad | null>} - An object containing parsed data specific to the SwitchBot device type, or `null` if the device is not recognized.
29
32
  */
30
33
  static async parse(peripheral, onlog) {
31
34
  const ad = peripheral.advertisement;
32
35
  if (!ad || !ad.serviceData) {
33
36
  return null;
34
37
  }
35
- const adServiceData = ad.serviceData[0] || ad.serviceData;
38
+ const serviceData = ad.serviceData[0]?.data;
36
39
  const manufacturerData = ad.manufacturerData;
37
- const serviceData = adServiceData.data;
38
- function validateBuffer(buffer) {
39
- return buffer && Buffer.isBuffer(buffer) && buffer.length >= 3;
40
- }
41
- if (!validateBuffer(serviceData) || !validateBuffer(manufacturerData)) {
40
+ if (!Advertising.validateBuffer(serviceData) || !Advertising.validateBuffer(manufacturerData)) {
42
41
  return null;
43
42
  }
44
43
  const model = serviceData.subarray(0, 1).toString('utf8');
45
- let sd;
44
+ const sd = await Advertising.parseServiceData(model, serviceData, manufacturerData, onlog);
45
+ if (!sd) {
46
+ onlog?.(`[parseAdvertising.${peripheral.id}.${model}] return null, parsed serviceData empty!`);
47
+ return null;
48
+ }
49
+ const address = Advertising.formatAddress(peripheral);
50
+ const data = {
51
+ id: peripheral.id,
52
+ address,
53
+ rssi: peripheral.rssi,
54
+ serviceData: { model, ...sd },
55
+ };
56
+ onlog?.(`[parseAdvertising.${peripheral.id}.${model}] return ${JSON.stringify(data)}`);
57
+ return data;
58
+ }
59
+ /**
60
+ * Validates if the buffer is a valid Buffer object with a minimum length.
61
+ *
62
+ * @param {any} buffer - The buffer to validate.
63
+ * @returns {boolean} - True if the buffer is valid, false otherwise.
64
+ */
65
+ static validateBuffer(buffer) {
66
+ return buffer && Buffer.isBuffer(buffer) && buffer.length >= 3;
67
+ }
68
+ /**
69
+ * Parses the service data based on the device model.
70
+ *
71
+ * @param {string} model - The device model.
72
+ * @param {Buffer} serviceData - The service data buffer.
73
+ * @param {Buffer} manufacturerData - The manufacturer data buffer.
74
+ * @param {(message: string) => void} [onlog] - A logging function for debugging purposes.
75
+ * @returns {Promise<any>} - The parsed service data.
76
+ */
77
+ static async parseServiceData(model, serviceData, manufacturerData, onlog) {
46
78
  switch (model) {
47
79
  case SwitchBotBLEModel.Bot:
48
- sd = await WoHand.parseServiceData(serviceData, onlog);
49
- break;
80
+ return WoHand.parseServiceData(serviceData, onlog);
50
81
  case SwitchBotBLEModel.Curtain:
51
82
  case SwitchBotBLEModel.Curtain3:
52
- sd = await WoCurtain.parseServiceData(serviceData, manufacturerData, onlog);
53
- break;
83
+ return WoCurtain.parseServiceData(serviceData, manufacturerData, onlog);
54
84
  case SwitchBotBLEModel.Humidifier:
55
- sd = await WoHumi.parseServiceData(serviceData, onlog);
56
- break;
85
+ return WoHumi.parseServiceData(serviceData, onlog);
57
86
  case SwitchBotBLEModel.Meter:
58
- sd = await WoSensorTH.parseServiceData(serviceData, onlog);
59
- break;
87
+ return WoSensorTH.parseServiceData(serviceData, onlog);
60
88
  case SwitchBotBLEModel.MeterPlus:
61
- sd = await WoSensorTH.parseServiceData_Plus(serviceData, onlog);
62
- break;
89
+ return WoSensorTH.parseServiceData_Plus(serviceData, onlog);
63
90
  case SwitchBotBLEModel.Hub2:
64
- sd = await WoHub2.parseServiceData(manufacturerData, onlog);
65
- break;
91
+ return WoHub2.parseServiceData(manufacturerData, onlog);
66
92
  case SwitchBotBLEModel.OutdoorMeter:
67
- sd = await WoIOSensorTH.parseServiceData(serviceData, manufacturerData, onlog);
68
- break;
93
+ return WoIOSensorTH.parseServiceData(serviceData, manufacturerData, onlog);
69
94
  case SwitchBotBLEModel.MotionSensor:
70
- sd = await WoPresence.parseServiceData(serviceData, onlog);
71
- break;
95
+ return WoPresence.parseServiceData(serviceData, onlog);
72
96
  case SwitchBotBLEModel.ContactSensor:
73
- sd = await WoContact.parseServiceData(serviceData, onlog);
74
- break;
97
+ return WoContact.parseServiceData(serviceData, onlog);
75
98
  case SwitchBotBLEModel.ColorBulb:
76
- sd = await WoBulb.parseServiceData(serviceData, manufacturerData, onlog);
77
- break;
99
+ return WoBulb.parseServiceData(serviceData, manufacturerData, onlog);
78
100
  case SwitchBotBLEModel.CeilingLight:
79
- sd = await WoCeilingLight.parseServiceData(manufacturerData, onlog);
80
- break;
101
+ return WoCeilingLight.parseServiceData(manufacturerData, onlog);
81
102
  case SwitchBotBLEModel.CeilingLightPro:
82
- sd = await WoCeilingLight.parseServiceData_Pro(manufacturerData, onlog);
83
- break;
103
+ return WoCeilingLight.parseServiceData_Pro(manufacturerData, onlog);
84
104
  case SwitchBotBLEModel.StripLight:
85
- sd = await WoStrip.parseServiceData(serviceData, onlog);
86
- break;
105
+ return WoStrip.parseServiceData(serviceData, onlog);
87
106
  case SwitchBotBLEModel.PlugMiniUS:
88
- sd = await WoPlugMini.parseServiceData_US(manufacturerData, onlog);
89
- break;
107
+ return WoPlugMini.parseServiceData_US(manufacturerData, onlog);
90
108
  case SwitchBotBLEModel.PlugMiniJP:
91
- sd = await WoPlugMini.parseServiceData_JP(manufacturerData, onlog);
92
- break;
109
+ return WoPlugMini.parseServiceData_JP(manufacturerData, onlog);
93
110
  case SwitchBotBLEModel.Lock:
94
- sd = await WoSmartLock.parseServiceData(serviceData, manufacturerData, onlog);
95
- break;
111
+ return WoSmartLock.parseServiceData(serviceData, manufacturerData, onlog);
96
112
  case SwitchBotBLEModel.LockPro:
97
- sd = await WoSmartLockPro.parseServiceData(serviceData, manufacturerData, onlog);
98
- break;
113
+ return WoSmartLockPro.parseServiceData(serviceData, manufacturerData, onlog);
99
114
  case SwitchBotBLEModel.BlindTilt:
100
- sd = await WoBlindTilt.parseServiceData(serviceData, manufacturerData, onlog);
101
- break;
115
+ return WoBlindTilt.parseServiceData(serviceData, manufacturerData, onlog);
102
116
  default:
103
- if (onlog && typeof onlog === 'function') {
104
- onlog(`[parseAdvertising.${peripheral.id}] return null, model "${model}" not available!`);
105
- }
117
+ onlog?.(`[parseAdvertising.${model}] return null, model "${model}" not available!`);
106
118
  return null;
107
119
  }
108
- if (!sd) {
109
- if (onlog && typeof onlog === 'function') {
110
- onlog(`[parseAdvertising.${peripheral.id}.${model}] return null, parsed serviceData empty!`);
111
- }
112
- return null;
113
- }
120
+ }
121
+ /**
122
+ * Formats the address of the peripheral.
123
+ *
124
+ * @param {Noble.Peripheral} peripheral - The peripheral device object from noble.
125
+ * @returns {string} - The formatted address.
126
+ */
127
+ static formatAddress(peripheral) {
114
128
  let address = peripheral.address || '';
115
129
  if (address === '') {
116
- const str = peripheral.advertisement.manufacturerData
117
- .toString('hex')
118
- .slice(4, 16);
130
+ const str = peripheral.advertisement.manufacturerData?.toString('hex').slice(4, 16) || '';
119
131
  if (str !== '') {
120
- address = str.substring(0, 2);
121
- for (let i = 2; i < str.length; i += 2) {
122
- address = `${address}:${str.substring(i, i + 2)}`;
123
- }
132
+ address = str.match(/.{1,2}/g)?.join(':') || '';
124
133
  }
125
134
  }
126
135
  else {
127
136
  address = address.replace(/-/g, ':');
128
137
  }
129
- const data = {
130
- id: peripheral.id,
131
- address,
132
- rssi: peripheral.rssi,
133
- serviceData: {
134
- model,
135
- ...sd,
136
- },
137
- };
138
- if (onlog && typeof onlog === 'function') {
139
- onlog(`[parseAdvertising.${peripheral.id}.${model}] return ${JSON.stringify(data)}`);
140
- }
141
- return data;
138
+ return address;
142
139
  }
143
140
  }
144
141
  //# sourceMappingURL=advertising.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"advertising.js","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advertising.js","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD;;GAEG;AACH,MAAM,OAAO,WAAW;IACtB,gBAAe,CAAC;IAEhB;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,UAA4B,EAC5B,KAAiC;QAEjC,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAA;QACnC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAA;QAC3C,MAAM,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAA;QAE5C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9F,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACzD,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;QAC1F,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,KAAK,EAAE,CAAC,qBAAqB,UAAU,CAAC,EAAE,IAAI,KAAK,0CAA0C,CAAC,CAAA;YAC9F,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG;YACX,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,OAAO;YACP,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAiB;SAC7C,CAAA;QAED,KAAK,EAAE,CAAC,qBAAqB,UAAU,CAAC,EAAE,IAAI,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,cAAc,CAAC,MAAW;QACvC,OAAO,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;IAChE,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,KAAK,CAAC,gBAAgB,CACnC,KAAa,EACb,WAAmB,EACnB,gBAAwB,EACxB,KAAiC;QAEjC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,iBAAiB,CAAC,GAAG;gBACxB,OAAO,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YACpD,KAAK,iBAAiB,CAAC,OAAO,CAAC;YAC/B,KAAK,iBAAiB,CAAC,QAAQ;gBAC7B,OAAO,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;YACzE,KAAK,iBAAiB,CAAC,UAAU;gBAC/B,OAAO,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YACpD,KAAK,iBAAiB,CAAC,KAAK;gBAC1B,OAAO,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YACxD,KAAK,iBAAiB,CAAC,SAAS;gBAC9B,OAAO,UAAU,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YAC7D,KAAK,iBAAiB,CAAC,IAAI;gBACzB,OAAO,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;YACzD,KAAK,iBAAiB,CAAC,YAAY;gBACjC,OAAO,YAAY,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;YAC5E,KAAK,iBAAiB,CAAC,YAAY;gBACjC,OAAO,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YACxD,KAAK,iBAAiB,CAAC,aAAa;gBAClC,OAAO,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YACvD,KAAK,iBAAiB,CAAC,SAAS;gBAC9B,OAAO,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;YACtE,KAAK,iBAAiB,CAAC,YAAY;gBACjC,OAAO,cAAc,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;YACjE,KAAK,iBAAiB,CAAC,eAAe;gBACpC,OAAO,cAAc,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;YACrE,KAAK,iBAAiB,CAAC,UAAU;gBAC/B,OAAO,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YACrD,KAAK,iBAAiB,CAAC,UAAU;gBAC/B,OAAO,UAAU,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;YAChE,KAAK,iBAAiB,CAAC,UAAU;gBAC/B,OAAO,UAAU,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;YAChE,KAAK,iBAAiB,CAAC,IAAI;gBACzB,OAAO,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;YAC3E,KAAK,iBAAiB,CAAC,OAAO;gBAC5B,OAAO,cAAc,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;YAC9E,KAAK,iBAAiB,CAAC,SAAS;gBAC9B,OAAO,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;YAC3E;gBACE,KAAK,EAAE,CAAC,qBAAqB,KAAK,yBAAyB,KAAK,kBAAkB,CAAC,CAAA;gBACnF,OAAO,IAAI,CAAA;QACf,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,aAAa,CAAC,UAA4B;QACvD,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,CAAA;QACtC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,UAAU,CAAC,aAAa,CAAC,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;YACzF,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;gBACf,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YACjD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}