Matter adjustments (#18036)

This commit is contained in:
s-hadinger 2023-02-23 21:48:11 +01:00 committed by GitHub
parent e80d053aa0
commit faa41ea230
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 1054 additions and 877 deletions

View File

@ -103,6 +103,7 @@ class Matter_Commisioning_Context
# record the initiator_session_id # record the initiator_session_id
self.future_initiator_session_id = pbkdfparamreq.initiator_session_id self.future_initiator_session_id = pbkdfparamreq.initiator_session_id
self.future_local_session_id = self.device.sessions.gen_local_session_id() self.future_local_session_id = self.device.sessions.gen_local_session_id()
tasmota.log("MTR: Loc_session=" + str(self.future_local_session_id))
# prepare response # prepare response
var pbkdfparamresp = matter.PBKDFParamResponse() var pbkdfparamresp = matter.PBKDFParamResponse()
@ -297,7 +298,7 @@ class Matter_Commisioning_Context
session._future_initiator_session_id = sigma1.initiator_session_id # update initiator_session_id session._future_initiator_session_id = sigma1.initiator_session_id # update initiator_session_id
session._future_local_session_id = self.device.sessions.gen_local_session_id() session._future_local_session_id = self.device.sessions.gen_local_session_id()
self.future_local_session_id = session._future_local_session_id self.future_local_session_id = session._future_local_session_id
tasmota.log("MTR: Loc_session=" + str(self.future_local_session_id))
# Check that it's a resumption # Check that it's a resumption
if is_resumption && session.shared_secret != nil if is_resumption && session.shared_secret != nil

View File

@ -89,7 +89,7 @@ class Matter_MessageHandler
var session = self.device.sessions.get_session_by_local_session_id(frame.local_session_id) var session = self.device.sessions.get_session_by_local_session_id(frame.local_session_id)
if session == nil if session == nil
tasmota.log("MTR: unknown local_session_id "+str(frame.local_session_id), 3) tasmota.log("MTR: unknown local_session_id="+str(frame.local_session_id), 2)
tasmota.log("MTR: frame="+matter.inspect(frame), 3) tasmota.log("MTR: frame="+matter.inspect(frame), 3)
return false return false
end end

View File

@ -31,7 +31,8 @@ class Matter_Plugin_OnOff : Matter_Plugin
0x0003: [0,1,0xFFFC,0xFFFD], # Identify 1.2 p.16 0x0003: [0,1,0xFFFC,0xFFFD], # Identify 1.2 p.16
0x0004: [0,0xFFFC,0xFFFD], # Groups 1.3 p.21 0x0004: [0,0xFFFC,0xFFFD], # Groups 1.3 p.21
0x0005: [0,1,2,3,4,5,0xFFFC,0xFFFD], # Scenes 1.4 p.30 - no writable 0x0005: [0,1,2,3,4,5,0xFFFC,0xFFFD], # Scenes 1.4 p.30 - no writable
0x0006: [0,0xFFFC,0xFFFD] # On/Off 1.5 p.48 0x0006: [0,0xFFFC,0xFFFD], # On/Off 1.5 p.48
0x0008: [0,15,17,0xFFFC,0xFFFD] # Level Control 1.6 p.57
} }
static var TYPES = { 0x010A: 2 } # On/Off Light static var TYPES = { 0x010A: 2 } # On/Off Light
@ -124,6 +125,20 @@ class Matter_Plugin_OnOff : Matter_Plugin
return TLV.create_TLV(TLV.U4, 4) # 0 = no Level Control for Lighting return TLV.create_TLV(TLV.U4, 4) # 0 = no Level Control for Lighting
end end
# ====================================================================================================
elif cluster == 0x0008 # ========== Level Control 1.6 p.57 ==========
if attribute == 0x0000 # ---------- CurrentLevel / u1 ----------
return TLV.create_TLV(TLV.U1, 0x88)
elif attribute == 0x000F # ---------- Options / map8 ----------
return TLV.create_TLV(TLV.U1, 0) # 0 = no Level Control for Lighting
elif attribute == 0x0010 # ---------- OnLevel / u1 ----------
return TLV.create_TLV(TLV.U1, 1) # 0 = no Level Control for Lighting
elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
return TLV.create_TLV(TLV.U4, 0) # 0 = no Level Control for Lighting
elif attribute == 0xFFFD # ---------- ClusterRevision / u2 ----------
return TLV.create_TLV(TLV.U4, 4) # 0 = no Level Control for Lighting
end
end end
# no match found, return that the attribute is unsupported end # no match found, return that the attribute is unsupported end
end end
@ -179,6 +194,25 @@ class Matter_Plugin_OnOff : Matter_Plugin
self.onoff = !self.onoff self.onoff = !self.onoff
return true return true
end end
# ====================================================================================================
elif cluster == 0x0008 # ========== Level Control 1.6 p.57 ==========
if command == 0x0000 # ---------- MoveToLevel ----------
return true
elif command == 0x0001 # ---------- Move ----------
return true
elif command == 0x0002 # ---------- Step ----------
return true
elif command == 0x0003 # ---------- Stop ----------
return true
elif command == 0x0004 # ---------- MoveToLevelWithOnOff ----------
return true
elif command == 0x0005 # ---------- MoveWithOnOff ----------
return true
elif command == 0x0006 # ---------- StepWithOnOff ----------
return true
elif command == 0x0007 # ---------- StopWithOnOff ----------
return true
end
end end
end end

View File

@ -29,7 +29,7 @@ class Matter_Plugin_Root : Matter_Plugin
static var CLUSTERS = { static var CLUSTERS = {
0x001D: [0,1,2,3], # Descriptor Cluster 9.5 p.453 0x001D: [0,1,2,3], # Descriptor Cluster 9.5 p.453
0x001F: [0,2,3,4], # Access Control Cluster, p.461 0x001F: [0,2,3,4], # Access Control Cluster, p.461
0x0028: [0,1,2,3,4,5,6,7,8,9,0x12],# Basic Information Cluster cluster 11.1 p.565 0x0028: [0,1,2,3,4,5,6,7,8,9,0x12,0x13],# Basic Information Cluster cluster 11.1 p.565
# 0x002A: [0,1,2,3], # OTA Software Update Requestor Cluster Definition 11.19.7 p.762 # 0x002A: [0,1,2,3], # OTA Software Update Requestor Cluster Definition 11.19.7 p.762
0x002B: [0,1], # Localization Configuration Cluster 11.3 p.580 0x002B: [0,1], # Localization Configuration Cluster 11.3 p.580
0x002C: [0,1,2], # Time Format Localization Cluster 11.4 p.581 0x002C: [0,1,2], # Time Format Localization Cluster 11.4 p.581
@ -43,7 +43,7 @@ class Matter_Plugin_Root : Matter_Plugin
0x003E: [0,1,2,3,4,5], # Node Operational Credentials Cluster 11.17 p.704 0x003E: [0,1,2,3,4,5], # Node Operational Credentials Cluster 11.17 p.704
0x003F: [] # Group Key Management Cluster 11.2 p.572 0x003F: [] # Group Key Management Cluster 11.2 p.572
} }
static var TYPES = { 0x0016: 1 } # On/Off Light static var TYPES = { 0x0016: 1 } # Root node
############################################################# #############################################################
# Constructor # Constructor
@ -216,6 +216,11 @@ class Matter_Plugin_Root : Matter_Plugin
return TLV.create_TLV(TLV.UTF1, tasmota.cmd("Status 2")['StatusFWR']['Version']) return TLV.create_TLV(TLV.UTF1, tasmota.cmd("Status 2")['StatusFWR']['Version'])
elif attribute == 0x0012 # ---------- UniqueID / string 32 max ---------- elif attribute == 0x0012 # ---------- UniqueID / string 32 max ----------
return TLV.create_TLV(TLV.UTF1, tasmota.wifi().find("mac", "")) return TLV.create_TLV(TLV.UTF1, tasmota.wifi().find("mac", ""))
elif attribute == 0x0013 # ---------- CapabilityMinima / CapabilityMinimaStruct ----------
var cps = TLV.Matter_TLV_struct()
cps.add_TLV(0, TLV.U2, 3) # CaseSessionsPerFabric = 3
cps.add_TLV(1, TLV.U2, 3) # SubscriptionsPerFabric = 5
return cps
end end
# ==================================================================================================== # ====================================================================================================

View File

@ -233,7 +233,7 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
/* K37 */ be_nested_str_weak(process_incoming), /* K37 */ be_nested_str_weak(process_incoming),
/* K38 */ be_nested_str_weak(MTR_X3A_X20decode_X20header_X3A_X20local_session_id_X3D_X25i_X20message_counter_X3D_X25i), /* K38 */ be_nested_str_weak(MTR_X3A_X20decode_X20header_X3A_X20local_session_id_X3D_X25i_X20message_counter_X3D_X25i),
/* K39 */ be_nested_str_weak(get_session_by_local_session_id), /* K39 */ be_nested_str_weak(get_session_by_local_session_id),
/* K40 */ be_nested_str_weak(MTR_X3A_X20unknown_X20local_session_id_X20), /* K40 */ be_nested_str_weak(MTR_X3A_X20unknown_X20local_session_id_X3D),
/* K41 */ be_nested_str_weak(MTR_X3A_X20frame_X3D), /* K41 */ be_nested_str_weak(MTR_X3A_X20frame_X3D),
/* K42 */ be_nested_str_weak(inspect), /* K42 */ be_nested_str_weak(inspect),
/* K43 */ be_nested_str_weak(MTR_X3A_X20rejected_X20duplicate_X20encrypted_X20message_X20_X3D_X20), /* K43 */ be_nested_str_weak(MTR_X3A_X20rejected_X20duplicate_X20encrypted_X20message_X20_X3D_X20),
@ -409,7 +409,7 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
0x88300D08, // 008A GETMBR R12 R6 K8 0x88300D08, // 008A GETMBR R12 R6 K8
0x7C2C0200, // 008B CALL R11 1 0x7C2C0200, // 008B CALL R11 1
0x002E500B, // 008C ADD R11 K40 R11 0x002E500B, // 008C ADD R11 K40 R11
0x58300011, // 008D LDCONST R12 K17 0x58300023, // 008D LDCONST R12 K35
0x7C240600, // 008E CALL R9 3 0x7C240600, // 008E CALL R9 3
0xB8260200, // 008F GETNGBL R9 K1 0xB8260200, // 008F GETNGBL R9 K1
0x8C241302, // 0090 GETMET R9 R9 K2 0x8C241302, // 0090 GETMET R9 R9 K2

View File

@ -69,7 +69,7 @@ be_local_closure(Matter_Plugin_OnOff_invoke_request, /* name */
}), }),
be_str_weak(invoke_request), be_str_weak(invoke_request),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[81]) { /* code */ ( &(const binstruction[128]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0 0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1 0x88100901, // 0001 GETMBR R4 R4 K1
0x88140702, // 0002 GETMBR R5 R3 K2 0x88140702, // 0002 GETMBR R5 R3 K2
@ -98,22 +98,22 @@ be_local_closure(Matter_Plugin_OnOff_invoke_request, /* name */
0x781E0001, // 0019 JMPF R7 #001C 0x781E0001, // 0019 JMPF R7 #001C
0x501C0200, // 001A LDBOOL R7 1 0 0x501C0200, // 001A LDBOOL R7 1 0
0x80040E00, // 001B RET 1 R7 0x80040E00, // 001B RET 1 R7
0x70020032, // 001C JMP #0050 0x70020061, // 001C JMP #007F
0x541E0003, // 001D LDINT R7 4 0x541E0003, // 001D LDINT R7 4
0x1C1C0A07, // 001E EQ R7 R5 R7 0x1C1C0A07, // 001E EQ R7 R5 R7
0x781E0002, // 001F JMPF R7 #0023 0x781E0002, // 001F JMPF R7 #0023
0x501C0200, // 0020 LDBOOL R7 1 0 0x501C0200, // 0020 LDBOOL R7 1 0
0x80040E00, // 0021 RET 1 R7 0x80040E00, // 0021 RET 1 R7
0x7002002C, // 0022 JMP #0050 0x7002005B, // 0022 JMP #007F
0x541E0004, // 0023 LDINT R7 5 0x541E0004, // 0023 LDINT R7 5
0x1C1C0A07, // 0024 EQ R7 R5 R7 0x1C1C0A07, // 0024 EQ R7 R5 R7
0x781E0002, // 0025 JMPF R7 #0029 0x781E0002, // 0025 JMPF R7 #0029
0x501C0200, // 0026 LDBOOL R7 1 0 0x501C0200, // 0026 LDBOOL R7 1 0
0x80040E00, // 0027 RET 1 R7 0x80040E00, // 0027 RET 1 R7
0x70020026, // 0028 JMP #0050 0x70020055, // 0028 JMP #007F
0x541E0005, // 0029 LDINT R7 6 0x541E0005, // 0029 LDINT R7 6
0x1C1C0A07, // 002A EQ R7 R5 R7 0x1C1C0A07, // 002A EQ R7 R5 R7
0x781E0023, // 002B JMPF R7 #0050 0x781E0024, // 002B JMPF R7 #0051
0x1C1C0D05, // 002C EQ R7 R6 K5 0x1C1C0D05, // 002C EQ R7 R6 K5
0x781E0009, // 002D JMPF R7 #0038 0x781E0009, // 002D JMPF R7 #0038
0x881C010A, // 002E GETMBR R7 R0 K10 0x881C010A, // 002E GETMBR R7 R0 K10
@ -150,7 +150,54 @@ be_local_closure(Matter_Plugin_OnOff_invoke_request, /* name */
0x90021407, // 004D SETMBR R0 K10 R7 0x90021407, // 004D SETMBR R0 K10 R7
0x501C0200, // 004E LDBOOL R7 1 0 0x501C0200, // 004E LDBOOL R7 1 0
0x80040E00, // 004F RET 1 R7 0x80040E00, // 004F RET 1 R7
0x80000000, // 0050 RET 0 0x7002002D, // 0050 JMP #007F
0x541E0007, // 0051 LDINT R7 8
0x1C1C0A07, // 0052 EQ R7 R5 R7
0x781E002A, // 0053 JMPF R7 #007F
0x1C1C0D05, // 0054 EQ R7 R6 K5
0x781E0002, // 0055 JMPF R7 #0059
0x501C0200, // 0056 LDBOOL R7 1 0
0x80040E00, // 0057 RET 1 R7
0x70020025, // 0058 JMP #007F
0x1C1C0D06, // 0059 EQ R7 R6 K6
0x781E0002, // 005A JMPF R7 #005E
0x501C0200, // 005B LDBOOL R7 1 0
0x80040E00, // 005C RET 1 R7
0x70020020, // 005D JMP #007F
0x1C1C0D0C, // 005E EQ R7 R6 K12
0x781E0002, // 005F JMPF R7 #0063
0x501C0200, // 0060 LDBOOL R7 1 0
0x80040E00, // 0061 RET 1 R7
0x7002001B, // 0062 JMP #007F
0x1C1C0D04, // 0063 EQ R7 R6 K4
0x781E0002, // 0064 JMPF R7 #0068
0x501C0200, // 0065 LDBOOL R7 1 0
0x80040E00, // 0066 RET 1 R7
0x70020016, // 0067 JMP #007F
0x541E0003, // 0068 LDINT R7 4
0x1C1C0C07, // 0069 EQ R7 R6 R7
0x781E0002, // 006A JMPF R7 #006E
0x501C0200, // 006B LDBOOL R7 1 0
0x80040E00, // 006C RET 1 R7
0x70020010, // 006D JMP #007F
0x541E0004, // 006E LDINT R7 5
0x1C1C0C07, // 006F EQ R7 R6 R7
0x781E0002, // 0070 JMPF R7 #0074
0x501C0200, // 0071 LDBOOL R7 1 0
0x80040E00, // 0072 RET 1 R7
0x7002000A, // 0073 JMP #007F
0x541E0005, // 0074 LDINT R7 6
0x1C1C0C07, // 0075 EQ R7 R6 R7
0x781E0002, // 0076 JMPF R7 #007A
0x501C0200, // 0077 LDBOOL R7 1 0
0x80040E00, // 0078 RET 1 R7
0x70020004, // 0079 JMP #007F
0x541E0006, // 007A LDINT R7 7
0x1C1C0C07, // 007B EQ R7 R6 R7
0x781E0001, // 007C JMPF R7 #007F
0x501C0200, // 007D LDBOOL R7 1 0
0x80040E00, // 007E RET 1 R7
0x80000000, // 007F RET 0
}) })
) )
); );
@ -239,7 +286,7 @@ be_local_closure(Matter_Plugin_OnOff_read_attribute, /* name */
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[208]) { /* code */ ( &(const binstruction[255]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0xB8120200, // 0001 GETNGBL R4 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100902, // 0002 GETMBR R4 R4 K2
@ -335,7 +382,7 @@ be_local_closure(Matter_Plugin_OnOff_read_attribute, /* name */
0x5828000C, // 005C LDCONST R10 K12 0x5828000C, // 005C LDCONST R10 K12
0x7C1C0600, // 005D CALL R7 3 0x7C1C0600, // 005D CALL R7 3
0x80040E00, // 005E RET 1 R7 0x80040E00, // 005E RET 1 R7
0x7002006E, // 005F JMP #00CF 0x7002009D, // 005F JMP #00FE
0x1C1C0B11, // 0060 EQ R7 R5 K17 0x1C1C0B11, // 0060 EQ R7 R5 K17
0x781E0021, // 0061 JMPF R7 #0084 0x781E0021, // 0061 JMPF R7 #0084
0x1C1C0D05, // 0062 EQ R7 R6 K5 0x1C1C0D05, // 0062 EQ R7 R6 K5
@ -371,7 +418,7 @@ be_local_closure(Matter_Plugin_OnOff_read_attribute, /* name */
0x542A0003, // 0080 LDINT R10 4 0x542A0003, // 0080 LDINT R10 4
0x7C1C0600, // 0081 CALL R7 3 0x7C1C0600, // 0081 CALL R7 3
0x80040E00, // 0082 RET 1 R7 0x80040E00, // 0082 RET 1 R7
0x7002004A, // 0083 JMP #00CF 0x70020079, // 0083 JMP #00FE
0x541E0003, // 0084 LDINT R7 4 0x541E0003, // 0084 LDINT R7 4
0x1C1C0A07, // 0085 EQ R7 R5 R7 0x1C1C0A07, // 0085 EQ R7 R5 R7
0x781E0016, // 0086 JMPF R7 #009E 0x781E0016, // 0086 JMPF R7 #009E
@ -397,7 +444,7 @@ be_local_closure(Matter_Plugin_OnOff_read_attribute, /* name */
0x542A0003, // 009A LDINT R10 4 0x542A0003, // 009A LDINT R10 4
0x7C1C0600, // 009B CALL R7 3 0x7C1C0600, // 009B CALL R7 3
0x80040E00, // 009C RET 1 R7 0x80040E00, // 009C RET 1 R7
0x70020030, // 009D JMP #00CF 0x7002005F, // 009D JMP #00FE
0x541E0004, // 009E LDINT R7 5 0x541E0004, // 009E LDINT R7 5
0x1C1C0A07, // 009F EQ R7 R5 R7 0x1C1C0A07, // 009F EQ R7 R5 R7
0x781E0011, // 00A0 JMPF R7 #00B3 0x781E0011, // 00A0 JMPF R7 #00B3
@ -418,10 +465,10 @@ be_local_closure(Matter_Plugin_OnOff_read_attribute, /* name */
0x542A0003, // 00AF LDINT R10 4 0x542A0003, // 00AF LDINT R10 4
0x7C1C0600, // 00B0 CALL R7 3 0x7C1C0600, // 00B0 CALL R7 3
0x80040E00, // 00B1 RET 1 R7 0x80040E00, // 00B1 RET 1 R7
0x7002001B, // 00B2 JMP #00CF 0x7002004A, // 00B2 JMP #00FE
0x541E0005, // 00B3 LDINT R7 6 0x541E0005, // 00B3 LDINT R7 6
0x1C1C0A07, // 00B4 EQ R7 R5 R7 0x1C1C0A07, // 00B4 EQ R7 R5 R7
0x781E0018, // 00B5 JMPF R7 #00CF 0x781E0019, // 00B5 JMPF R7 #00D0
0x1C1C0D05, // 00B6 EQ R7 R6 K5 0x1C1C0D05, // 00B6 EQ R7 R6 K5
0x781E0005, // 00B7 JMPF R7 #00BE 0x781E0005, // 00B7 JMPF R7 #00BE
0x8C1C0912, // 00B8 GETMET R7 R4 K18 0x8C1C0912, // 00B8 GETMET R7 R4 K18
@ -447,7 +494,54 @@ be_local_closure(Matter_Plugin_OnOff_read_attribute, /* name */
0x542A0003, // 00CC LDINT R10 4 0x542A0003, // 00CC LDINT R10 4
0x7C1C0600, // 00CD CALL R7 3 0x7C1C0600, // 00CD CALL R7 3
0x80040E00, // 00CE RET 1 R7 0x80040E00, // 00CE RET 1 R7
0x80000000, // 00CF RET 0 0x7002002D, // 00CF JMP #00FE
0x541E0007, // 00D0 LDINT R7 8
0x1C1C0A07, // 00D1 EQ R7 R5 R7
0x781E002A, // 00D2 JMPF R7 #00FE
0x1C1C0D05, // 00D3 EQ R7 R6 K5
0x781E0005, // 00D4 JMPF R7 #00DB
0x8C1C0912, // 00D5 GETMET R7 R4 K18
0x88240913, // 00D6 GETMBR R9 R4 K19
0x542A0087, // 00D7 LDINT R10 136
0x7C1C0600, // 00D8 CALL R7 3
0x80040E00, // 00D9 RET 1 R7
0x70020022, // 00DA JMP #00FE
0x541E000E, // 00DB LDINT R7 15
0x1C1C0C07, // 00DC EQ R7 R6 R7
0x781E0005, // 00DD JMPF R7 #00E4
0x8C1C0912, // 00DE GETMET R7 R4 K18
0x88240913, // 00DF GETMBR R9 R4 K19
0x58280005, // 00E0 LDCONST R10 K5
0x7C1C0600, // 00E1 CALL R7 3
0x80040E00, // 00E2 RET 1 R7
0x70020019, // 00E3 JMP #00FE
0x541E000F, // 00E4 LDINT R7 16
0x1C1C0C07, // 00E5 EQ R7 R6 R7
0x781E0005, // 00E6 JMPF R7 #00ED
0x8C1C0912, // 00E7 GETMET R7 R4 K18
0x88240913, // 00E8 GETMBR R9 R4 K19
0x5828000C, // 00E9 LDCONST R10 K12
0x7C1C0600, // 00EA CALL R7 3
0x80040E00, // 00EB RET 1 R7
0x70020010, // 00EC JMP #00FE
0x541EFFFB, // 00ED LDINT R7 65532
0x1C1C0C07, // 00EE EQ R7 R6 R7
0x781E0005, // 00EF JMPF R7 #00F6
0x8C1C0912, // 00F0 GETMET R7 R4 K18
0x8824090F, // 00F1 GETMBR R9 R4 K15
0x58280005, // 00F2 LDCONST R10 K5
0x7C1C0600, // 00F3 CALL R7 3
0x80040E00, // 00F4 RET 1 R7
0x70020007, // 00F5 JMP #00FE
0x541EFFFC, // 00F6 LDINT R7 65533
0x1C1C0C07, // 00F7 EQ R7 R6 R7
0x781E0004, // 00F8 JMPF R7 #00FE
0x8C1C0912, // 00F9 GETMET R7 R4 K18
0x8824090F, // 00FA GETMBR R9 R4 K15
0x542A0003, // 00FB LDINT R10 4
0x7C1C0600, // 00FC CALL R7 3
0x80040E00, // 00FD RET 1 R7
0x80000000, // 00FE RET 0
}) })
) )
); );
@ -479,20 +573,8 @@ be_local_class(Matter_Plugin_OnOff,
})) ) } )) }, })) ) } )) },
{ be_const_key_weak(onoff_changed, 7), be_const_closure(Matter_Plugin_OnOff_onoff_changed_closure) }, { be_const_key_weak(onoff_changed, 7), be_const_closure(Matter_Plugin_OnOff_onoff_changed_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(5, be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) { ( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { { be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(3, be_const_list( * be_nested_list(3,
( (struct bvalue*) &(const bvalue[]) { ( (struct bvalue*) &(const bvalue[]) {
@ -509,6 +591,15 @@ be_local_class(Matter_Plugin_OnOff,
be_const_int(3), be_const_int(3),
be_const_int(65532), be_const_int(65532),
be_const_int(65533), be_const_int(65533),
})) ) } )) },
{ be_const_key_int(8, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(15),
be_const_int(17),
be_const_int(65532),
be_const_int(65533),
})) ) } )) }, })) ) } )) },
{ be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(4, be_const_list( * be_nested_list(4,
@ -518,12 +609,24 @@ be_local_class(Matter_Plugin_OnOff,
be_const_int(65532), be_const_int(65532),
be_const_int(65533), be_const_int(65533),
})) ) } )) }, })) ) } )) },
{ be_const_key_int(4, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(3, be_const_list( * be_nested_list(3,
( (struct bvalue*) &(const bvalue[]) { ( (struct bvalue*) &(const bvalue[]) {
be_const_int(0), be_const_int(0),
be_const_int(65532), be_const_int(65532),
be_const_int(65533), be_const_int(65533),
})) ) } )) },
{ be_const_key_int(5, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) }, })) ) } )) },
})) ) } )) }, })) ) } )) },
})), })),

View File

@ -105,7 +105,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[811]) { /* code */ ( &(const binstruction[828]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0xB8120200, // 0001 GETNGBL R4 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100902, // 0002 GETMBR R4 R4 K2
@ -162,11 +162,11 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x50280000, // 0035 LDBOOL R10 0 0 0x50280000, // 0035 LDBOOL R10 0 0
0x7C1C0600, // 0036 CALL R7 3 0x7C1C0600, // 0036 CALL R7 3
0x80040E00, // 0037 RET 1 R7 0x80040E00, // 0037 RET 1 R7
0x700202F0, // 0038 JMP #032A 0x70020301, // 0038 JMP #033B
0x541E0031, // 0039 LDINT R7 50 0x541E0031, // 0039 LDINT R7 50
0x1C1C0A07, // 003A EQ R7 R5 R7 0x1C1C0A07, // 003A EQ R7 R5 R7
0x781E0000, // 003B JMPF R7 #003D 0x781E0000, // 003B JMPF R7 #003D
0x700202EC, // 003C JMP #032A 0x700202FD, // 003C JMP #033B
0x541E0032, // 003D LDINT R7 51 0x541E0032, // 003D LDINT R7 51
0x1C1C0A07, // 003E EQ R7 R5 R7 0x1C1C0A07, // 003E EQ R7 R5 R7
0x781E00DA, // 003F JMPF R7 #011B 0x781E00DA, // 003F JMPF R7 #011B
@ -388,11 +388,11 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x50280000, // 0117 LDBOOL R10 0 0 0x50280000, // 0117 LDBOOL R10 0 0
0x7C1C0600, // 0118 CALL R7 3 0x7C1C0600, // 0118 CALL R7 3
0x80040E00, // 0119 RET 1 R7 0x80040E00, // 0119 RET 1 R7
0x7002020E, // 011A JMP #032A 0x7002021F, // 011A JMP #033B
0x541E0033, // 011B LDINT R7 52 0x541E0033, // 011B LDINT R7 52
0x1C1C0A07, // 011C EQ R7 R5 R7 0x1C1C0A07, // 011C EQ R7 R5 R7
0x781E0000, // 011D JMPF R7 #011F 0x781E0000, // 011D JMPF R7 #011F
0x7002020A, // 011E JMP #032A 0x7002021B, // 011E JMP #033B
0x541E0037, // 011F LDINT R7 56 0x541E0037, // 011F LDINT R7 56
0x1C1C0A07, // 0120 EQ R7 R5 R7 0x1C1C0A07, // 0120 EQ R7 R5 R7
0x781E002C, // 0121 JMPF R7 #014F 0x781E002C, // 0121 JMPF R7 #014F
@ -440,7 +440,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x5C2C0E00, // 014B MOVE R11 R7 0x5C2C0E00, // 014B MOVE R11 R7
0x7C200600, // 014C CALL R8 3 0x7C200600, // 014C CALL R8 3
0x80041000, // 014D RET 1 R8 0x80041000, // 014D RET 1 R8
0x700201DA, // 014E JMP #032A 0x700201EB, // 014E JMP #033B
0x541E003D, // 014F LDINT R7 62 0x541E003D, // 014F LDINT R7 62
0x1C1C0A07, // 0150 EQ R7 R5 R7 0x1C1C0A07, // 0150 EQ R7 R5 R7
0x781E0082, // 0151 JMPF R7 #01D5 0x781E0082, // 0151 JMPF R7 #01D5
@ -574,14 +574,14 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x00301109, // 01D1 ADD R12 R8 K9 0x00301109, // 01D1 ADD R12 R8 K9
0x7C240600, // 01D2 CALL R9 3 0x7C240600, // 01D2 CALL R9 3
0x80041200, // 01D3 RET 1 R9 0x80041200, // 01D3 RET 1 R9
0x70020154, // 01D4 JMP #032A 0x70020165, // 01D4 JMP #033B
0x541E003B, // 01D5 LDINT R7 60 0x541E003B, // 01D5 LDINT R7 60
0x1C1C0A07, // 01D6 EQ R7 R5 R7 0x1C1C0A07, // 01D6 EQ R7 R5 R7
0x781E0000, // 01D7 JMPF R7 #01D9 0x781E0000, // 01D7 JMPF R7 #01D9
0x70020150, // 01D8 JMP #032A 0x70020161, // 01D8 JMP #033B
0x541E0027, // 01D9 LDINT R7 40 0x541E0027, // 01D9 LDINT R7 40
0x1C1C0A07, // 01DA EQ R7 R5 R7 0x1C1C0A07, // 01DA EQ R7 R5 R7
0x781E0080, // 01DB JMPF R7 #025D 0x781E0091, // 01DB JMPF R7 #026E
0x1C1C0D05, // 01DC EQ R7 R6 K5 0x1C1C0D05, // 01DC EQ R7 R6 K5
0x781E0005, // 01DD JMPF R7 #01E4 0x781E0005, // 01DD JMPF R7 #01E4
0x8C1C0906, // 01DE GETMET R7 R4 K6 0x8C1C0906, // 01DE GETMET R7 R4 K6
@ -589,7 +589,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x58280005, // 01E0 LDCONST R10 K5 0x58280005, // 01E0 LDCONST R10 K5
0x7C1C0600, // 01E1 CALL R7 3 0x7C1C0600, // 01E1 CALL R7 3
0x80040E00, // 01E2 RET 1 R7 0x80040E00, // 01E2 RET 1 R7
0x70020077, // 01E3 JMP #025C 0x70020088, // 01E3 JMP #026D
0x1C1C0D09, // 01E4 EQ R7 R6 K9 0x1C1C0D09, // 01E4 EQ R7 R6 K9
0x781E0005, // 01E5 JMPF R7 #01EC 0x781E0005, // 01E5 JMPF R7 #01EC
0x8C1C0906, // 01E6 GETMET R7 R4 K6 0x8C1C0906, // 01E6 GETMET R7 R4 K6
@ -597,7 +597,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x58280041, // 01E8 LDCONST R10 K65 0x58280041, // 01E8 LDCONST R10 K65
0x7C1C0600, // 01E9 CALL R7 3 0x7C1C0600, // 01E9 CALL R7 3
0x80040E00, // 01EA RET 1 R7 0x80040E00, // 01EA RET 1 R7
0x7002006F, // 01EB JMP #025C 0x70020080, // 01EB JMP #026D
0x1C1C0D0D, // 01EC EQ R7 R6 K13 0x1C1C0D0D, // 01EC EQ R7 R6 K13
0x781E0006, // 01ED JMPF R7 #01F5 0x781E0006, // 01ED JMPF R7 #01F5
0x8C1C0906, // 01EE GETMET R7 R4 K6 0x8C1C0906, // 01EE GETMET R7 R4 K6
@ -606,7 +606,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x88281542, // 01F1 GETMBR R10 R10 K66 0x88281542, // 01F1 GETMBR R10 R10 K66
0x7C1C0600, // 01F2 CALL R7 3 0x7C1C0600, // 01F2 CALL R7 3
0x80040E00, // 01F3 RET 1 R7 0x80040E00, // 01F3 RET 1 R7
0x70020066, // 01F4 JMP #025C 0x70020077, // 01F4 JMP #026D
0x1C1C0D0F, // 01F5 EQ R7 R6 K15 0x1C1C0D0F, // 01F5 EQ R7 R6 K15
0x781E0009, // 01F6 JMPF R7 #0201 0x781E0009, // 01F6 JMPF R7 #0201
0x8C1C0906, // 01F7 GETMET R7 R4 K6 0x8C1C0906, // 01F7 GETMET R7 R4 K6
@ -618,7 +618,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x94281543, // 01FD GETIDX R10 R10 K67 0x94281543, // 01FD GETIDX R10 R10 K67
0x7C1C0600, // 01FE CALL R7 3 0x7C1C0600, // 01FE CALL R7 3
0x80040E00, // 01FF RET 1 R7 0x80040E00, // 01FF RET 1 R7
0x7002005A, // 0200 JMP #025C 0x7002006B, // 0200 JMP #026D
0x541E0003, // 0201 LDINT R7 4 0x541E0003, // 0201 LDINT R7 4
0x1C1C0C07, // 0202 EQ R7 R6 R7 0x1C1C0C07, // 0202 EQ R7 R6 R7
0x781E0005, // 0203 JMPF R7 #020A 0x781E0005, // 0203 JMPF R7 #020A
@ -627,7 +627,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x542A7FFF, // 0206 LDINT R10 32768 0x542A7FFF, // 0206 LDINT R10 32768
0x7C1C0600, // 0207 CALL R7 3 0x7C1C0600, // 0207 CALL R7 3
0x80040E00, // 0208 RET 1 R7 0x80040E00, // 0208 RET 1 R7
0x70020051, // 0209 JMP #025C 0x70020062, // 0209 JMP #026D
0x541E0004, // 020A LDINT R7 5 0x541E0004, // 020A LDINT R7 5
0x1C1C0C07, // 020B EQ R7 R6 R7 0x1C1C0C07, // 020B EQ R7 R6 R7
0x781E0009, // 020C JMPF R7 #0217 0x781E0009, // 020C JMPF R7 #0217
@ -640,7 +640,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x94281545, // 0213 GETIDX R10 R10 K69 0x94281545, // 0213 GETIDX R10 R10 K69
0x7C1C0600, // 0214 CALL R7 3 0x7C1C0600, // 0214 CALL R7 3
0x80040E00, // 0215 RET 1 R7 0x80040E00, // 0215 RET 1 R7
0x70020044, // 0216 JMP #025C 0x70020055, // 0216 JMP #026D
0x541E0005, // 0217 LDINT R7 6 0x541E0005, // 0217 LDINT R7 6
0x1C1C0C07, // 0218 EQ R7 R6 R7 0x1C1C0C07, // 0218 EQ R7 R6 R7
0x781E0005, // 0219 JMPF R7 #0220 0x781E0005, // 0219 JMPF R7 #0220
@ -649,7 +649,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x58280046, // 021C LDCONST R10 K70 0x58280046, // 021C LDCONST R10 K70
0x7C1C0600, // 021D CALL R7 3 0x7C1C0600, // 021D CALL R7 3
0x80040E00, // 021E RET 1 R7 0x80040E00, // 021E RET 1 R7
0x7002003B, // 021F JMP #025C 0x7002004C, // 021F JMP #026D
0x541E0006, // 0220 LDINT R7 7 0x541E0006, // 0220 LDINT R7 7
0x1C1C0C07, // 0221 EQ R7 R6 R7 0x1C1C0C07, // 0221 EQ R7 R6 R7
0x781E0005, // 0222 JMPF R7 #0229 0x781E0005, // 0222 JMPF R7 #0229
@ -658,7 +658,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x58280005, // 0225 LDCONST R10 K5 0x58280005, // 0225 LDCONST R10 K5
0x7C1C0600, // 0226 CALL R7 3 0x7C1C0600, // 0226 CALL R7 3
0x80040E00, // 0227 RET 1 R7 0x80040E00, // 0227 RET 1 R7
0x70020032, // 0228 JMP #025C 0x70020043, // 0228 JMP #026D
0x541E0007, // 0229 LDINT R7 8 0x541E0007, // 0229 LDINT R7 8
0x1C1C0C07, // 022A EQ R7 R6 R7 0x1C1C0C07, // 022A EQ R7 R6 R7
0x781E000A, // 022B JMPF R7 #0237 0x781E000A, // 022B JMPF R7 #0237
@ -672,7 +672,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x94281549, // 0233 GETIDX R10 R10 K73 0x94281549, // 0233 GETIDX R10 R10 K73
0x7C1C0600, // 0234 CALL R7 3 0x7C1C0600, // 0234 CALL R7 3
0x80040E00, // 0235 RET 1 R7 0x80040E00, // 0235 RET 1 R7
0x70020024, // 0236 JMP #025C 0x70020035, // 0236 JMP #026D
0x541E0008, // 0237 LDINT R7 9 0x541E0008, // 0237 LDINT R7 9
0x1C1C0C07, // 0238 EQ R7 R6 R7 0x1C1C0C07, // 0238 EQ R7 R6 R7
0x781E0005, // 0239 JMPF R7 #0240 0x781E0005, // 0239 JMPF R7 #0240
@ -681,7 +681,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x58280009, // 023C LDCONST R10 K9 0x58280009, // 023C LDCONST R10 K9
0x7C1C0600, // 023D CALL R7 3 0x7C1C0600, // 023D CALL R7 3
0x80040E00, // 023E RET 1 R7 0x80040E00, // 023E RET 1 R7
0x7002001B, // 023F JMP #025C 0x7002002C, // 023F JMP #026D
0x541E0009, // 0240 LDINT R7 10 0x541E0009, // 0240 LDINT R7 10
0x1C1C0C07, // 0241 EQ R7 R6 R7 0x1C1C0C07, // 0241 EQ R7 R6 R7
0x781E000A, // 0242 JMPF R7 #024E 0x781E000A, // 0242 JMPF R7 #024E
@ -695,10 +695,10 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x9428154A, // 024A GETIDX R10 R10 K74 0x9428154A, // 024A GETIDX R10 R10 K74
0x7C1C0600, // 024B CALL R7 3 0x7C1C0600, // 024B CALL R7 3
0x80040E00, // 024C RET 1 R7 0x80040E00, // 024C RET 1 R7
0x7002000D, // 024D JMP #025C 0x7002001E, // 024D JMP #026D
0x541E0011, // 024E LDINT R7 18 0x541E0011, // 024E LDINT R7 18
0x1C1C0C07, // 024F EQ R7 R6 R7 0x1C1C0C07, // 024F EQ R7 R6 R7
0x781E000A, // 0250 JMPF R7 #025C 0x781E000B, // 0250 JMPF R7 #025D
0x8C1C0906, // 0251 GETMET R7 R4 K6 0x8C1C0906, // 0251 GETMET R7 R4 K6
0x88240916, // 0252 GETMBR R9 R4 K22 0x88240916, // 0252 GETMBR R9 R4 K22
0xB82A2400, // 0253 GETNGBL R10 K18 0xB82A2400, // 0253 GETNGBL R10 K18
@ -710,213 +710,230 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x7C280600, // 0259 CALL R10 3 0x7C280600, // 0259 CALL R10 3
0x7C1C0600, // 025A CALL R7 3 0x7C1C0600, // 025A CALL R7 3
0x80040E00, // 025B RET 1 R7 0x80040E00, // 025B RET 1 R7
0x700200CC, // 025C JMP #032A 0x7002000F, // 025C JMP #026D
0x541E003E, // 025D LDINT R7 63 0x541E0012, // 025D LDINT R7 19
0x1C1C0A07, // 025E EQ R7 R5 R7 0x1C1C0C07, // 025E EQ R7 R6 R7
0x781E0000, // 025F JMPF R7 #0261 0x781E000C, // 025F JMPF R7 #026D
0x700200C8, // 0260 JMP #032A 0x8C1C090A, // 0260 GETMET R7 R4 K10
0x541E0029, // 0261 LDINT R7 42 0x7C1C0200, // 0261 CALL R7 1
0x1C1C0A07, // 0262 EQ R7 R5 R7 0x8C200F0B, // 0262 GETMET R8 R7 K11
0x781E001D, // 0263 JMPF R7 #0282 0x58280005, // 0263 LDCONST R10 K5
0x1C1C0D05, // 0264 EQ R7 R6 K5 0x882C090C, // 0264 GETMBR R11 R4 K12
0x781E0003, // 0265 JMPF R7 #026A 0x5830000F, // 0265 LDCONST R12 K15
0x8C1C0911, // 0266 GETMET R7 R4 K17 0x7C200800, // 0266 CALL R8 4
0x7C1C0200, // 0267 CALL R7 1 0x8C200F0B, // 0267 GETMET R8 R7 K11
0x80040E00, // 0268 RET 1 R7 0x58280009, // 0268 LDCONST R10 K9
0x70020016, // 0269 JMP #0281 0x882C090C, // 0269 GETMBR R11 R4 K12
0x1C1C0D09, // 026A EQ R7 R6 K9 0x5830000F, // 026A LDCONST R12 K15
0x781E0005, // 026B JMPF R7 #0272 0x7C200800, // 026B CALL R8 4
0x8C1C0906, // 026C GETMET R7 R4 K6 0x80040E00, // 026C RET 1 R7
0x88240910, // 026D GETMBR R9 R4 K16 0x700200CC, // 026D JMP #033B
0x58280005, // 026E LDCONST R10 K5 0x541E003E, // 026E LDINT R7 63
0x7C1C0600, // 026F CALL R7 3 0x1C1C0A07, // 026F EQ R7 R5 R7
0x80040E00, // 0270 RET 1 R7 0x781E0000, // 0270 JMPF R7 #0272
0x7002000E, // 0271 JMP #0281 0x700200C8, // 0271 JMP #033B
0x1C1C0D0D, // 0272 EQ R7 R6 K13 0x541E0029, // 0272 LDINT R7 42
0x781E0005, // 0273 JMPF R7 #027A 0x1C1C0A07, // 0273 EQ R7 R5 R7
0x8C1C0906, // 0274 GETMET R7 R4 K6 0x781E001D, // 0274 JMPF R7 #0293
0x8824090E, // 0275 GETMBR R9 R4 K14 0x1C1C0D05, // 0275 EQ R7 R6 K5
0x58280009, // 0276 LDCONST R10 K9 0x781E0003, // 0276 JMPF R7 #027B
0x7C1C0600, // 0277 CALL R7 3 0x8C1C0911, // 0277 GETMET R7 R4 K17
0x80040E00, // 0278 RET 1 R7 0x7C1C0200, // 0278 CALL R7 1
0x70020006, // 0279 JMP #0281 0x80040E00, // 0279 RET 1 R7
0x1C1C0D0F, // 027A EQ R7 R6 K15 0x70020016, // 027A JMP #0292
0x781E0004, // 027B JMPF R7 #0281 0x1C1C0D09, // 027B EQ R7 R6 K9
0x8C1C0906, // 027C GETMET R7 R4 K6 0x781E0005, // 027C JMPF R7 #0283
0x88240918, // 027D GETMBR R9 R4 K24 0x8C1C0906, // 027D GETMET R7 R4 K6
0x4C280000, // 027E LDNIL R10 0x88240910, // 027E GETMBR R9 R4 K16
0x7C1C0600, // 027F CALL R7 3 0x58280005, // 027F LDCONST R10 K5
0x80040E00, // 0280 RET 1 R7 0x7C1C0600, // 0280 CALL R7 3
0x700200A7, // 0281 JMP #032A 0x80040E00, // 0281 RET 1 R7
0x541E002A, // 0282 LDINT R7 43 0x7002000E, // 0282 JMP #0292
0x1C1C0A07, // 0283 EQ R7 R5 R7 0x1C1C0D0D, // 0283 EQ R7 R6 K13
0x781E0016, // 0284 JMPF R7 #029C 0x781E0005, // 0284 JMPF R7 #028B
0x1C1C0D05, // 0285 EQ R7 R6 K5 0x8C1C0906, // 0285 GETMET R7 R4 K6
0x781E0007, // 0286 JMPF R7 #028F 0x8824090E, // 0286 GETMBR R9 R4 K14
0x8C1C0906, // 0287 GETMET R7 R4 K6 0x58280009, // 0287 LDCONST R10 K9
0x88240916, // 0288 GETMBR R9 R4 K22 0x7C1C0600, // 0288 CALL R7 3
0xB82A2400, // 0289 GETNGBL R10 K18 0x80040E00, // 0289 RET 1 R7
0x8C28154B, // 028A GETMET R10 R10 K75 0x70020006, // 028A JMP #0292
0x7C280200, // 028B CALL R10 1 0x1C1C0D0F, // 028B EQ R7 R6 K15
0x7C1C0600, // 028C CALL R7 3 0x781E0004, // 028C JMPF R7 #0292
0x80040E00, // 028D RET 1 R7 0x8C1C0906, // 028D GETMET R7 R4 K6
0x7002000B, // 028E JMP #029B 0x88240918, // 028E GETMBR R9 R4 K24
0x1C1C0D09, // 028F EQ R7 R6 K9 0x4C280000, // 028F LDNIL R10
0x781E0009, // 0290 JMPF R7 #029B 0x7C1C0600, // 0290 CALL R7 3
0x8C1C0911, // 0291 GETMET R7 R4 K17 0x80040E00, // 0291 RET 1 R7
0x7C1C0200, // 0292 CALL R7 1 0x700200A7, // 0292 JMP #033B
0x8C200F0B, // 0293 GETMET R8 R7 K11 0x541E002A, // 0293 LDINT R7 43
0x4C280000, // 0294 LDNIL R10 0x1C1C0A07, // 0294 EQ R7 R5 R7
0x882C0916, // 0295 GETMBR R11 R4 K22 0x781E0016, // 0295 JMPF R7 #02AD
0xB8322400, // 0296 GETNGBL R12 K18 0x1C1C0D05, // 0296 EQ R7 R6 K5
0x8C30194B, // 0297 GETMET R12 R12 K75 0x781E0007, // 0297 JMPF R7 #02A0
0x7C300200, // 0298 CALL R12 1 0x8C1C0906, // 0298 GETMET R7 R4 K6
0x7C200800, // 0299 CALL R8 4 0x88240916, // 0299 GETMBR R9 R4 K22
0x80040E00, // 029A RET 1 R7 0xB82A2400, // 029A GETNGBL R10 K18
0x7002008D, // 029B JMP #032A 0x8C28154B, // 029B GETMET R10 R10 K75
0x541E002B, // 029C LDINT R7 44 0x7C280200, // 029C CALL R10 1
0x1C1C0A07, // 029D EQ R7 R5 R7 0x7C1C0600, // 029D CALL R7 3
0x781E001C, // 029E JMPF R7 #02BC 0x80040E00, // 029E RET 1 R7
0x1C1C0D05, // 029F EQ R7 R6 K5 0x7002000B, // 029F JMP #02AC
0x781E0005, // 02A0 JMPF R7 #02A7 0x1C1C0D09, // 02A0 EQ R7 R6 K9
0x8C1C0906, // 02A1 GETMET R7 R4 K6 0x781E0009, // 02A1 JMPF R7 #02AC
0x8824090E, // 02A2 GETMBR R9 R4 K14 0x8C1C0911, // 02A2 GETMET R7 R4 K17
0x58280009, // 02A3 LDCONST R10 K9 0x7C1C0200, // 02A3 CALL R7 1
0x7C1C0600, // 02A4 CALL R7 3 0x8C200F0B, // 02A4 GETMET R8 R7 K11
0x80040E00, // 02A5 RET 1 R7 0x4C280000, // 02A5 LDNIL R10
0x70020013, // 02A6 JMP #02BB 0x882C0916, // 02A6 GETMBR R11 R4 K22
0x1C1C0D09, // 02A7 EQ R7 R6 K9 0xB8322400, // 02A7 GETNGBL R12 K18
0x781E0005, // 02A8 JMPF R7 #02AF 0x8C30194B, // 02A8 GETMET R12 R12 K75
0x8C1C0906, // 02A9 GETMET R7 R4 K6 0x7C300200, // 02A9 CALL R12 1
0x8824090E, // 02AA GETMBR R9 R4 K14 0x7C200800, // 02AA CALL R8 4
0x542A0003, // 02AB LDINT R10 4 0x80040E00, // 02AB RET 1 R7
0x7C1C0600, // 02AC CALL R7 3 0x7002008D, // 02AC JMP #033B
0x80040E00, // 02AD RET 1 R7 0x541E002B, // 02AD LDINT R7 44
0x7002000B, // 02AE JMP #02BB 0x1C1C0A07, // 02AE EQ R7 R5 R7
0x1C1C0D0D, // 02AF EQ R7 R6 K13 0x781E001C, // 02AF JMPF R7 #02CD
0x781E0009, // 02B0 JMPF R7 #02BB 0x1C1C0D05, // 02B0 EQ R7 R6 K5
0x8C1C0911, // 02B1 GETMET R7 R4 K17 0x781E0005, // 02B1 JMPF R7 #02B8
0x7C1C0200, // 02B2 CALL R7 1 0x8C1C0906, // 02B2 GETMET R7 R4 K6
0x8C200F0B, // 02B3 GETMET R8 R7 K11 0x8824090E, // 02B3 GETMBR R9 R4 K14
0x4C280000, // 02B4 LDNIL R10 0x58280009, // 02B4 LDCONST R10 K9
0x8C2C0906, // 02B5 GETMET R11 R4 K6 0x7C1C0600, // 02B5 CALL R7 3
0x8834090E, // 02B6 GETMBR R13 R4 K14 0x80040E00, // 02B6 RET 1 R7
0x543A0003, // 02B7 LDINT R14 4 0x70020013, // 02B7 JMP #02CC
0x7C2C0600, // 02B8 CALL R11 3 0x1C1C0D09, // 02B8 EQ R7 R6 K9
0x7C200600, // 02B9 CALL R8 3 0x781E0005, // 02B9 JMPF R7 #02C0
0x80040E00, // 02BA RET 1 R7 0x8C1C0906, // 02BA GETMET R7 R4 K6
0x7002006D, // 02BB JMP #032A 0x8824090E, // 02BB GETMBR R9 R4 K14
0x541E0030, // 02BC LDINT R7 49 0x542A0003, // 02BC LDINT R10 4
0x1C1C0A07, // 02BD EQ R7 R5 R7 0x7C1C0600, // 02BD CALL R7 3
0x781E0010, // 02BE JMPF R7 #02D0 0x80040E00, // 02BE RET 1 R7
0x1C1C0D0F, // 02BF EQ R7 R6 K15 0x7002000B, // 02BF JMP #02CC
0x781E0005, // 02C0 JMPF R7 #02C7 0x1C1C0D0D, // 02C0 EQ R7 R6 K13
0x8C1C0906, // 02C1 GETMET R7 R4 K6 0x781E0009, // 02C1 JMPF R7 #02CC
0x8824090E, // 02C2 GETMBR R9 R4 K14 0x8C1C0911, // 02C2 GETMET R7 R4 K17
0x542A001D, // 02C3 LDINT R10 30 0x7C1C0200, // 02C3 CALL R7 1
0x7C1C0600, // 02C4 CALL R7 3 0x8C200F0B, // 02C4 GETMET R8 R7 K11
0x80040E00, // 02C5 RET 1 R7 0x4C280000, // 02C5 LDNIL R10
0x70020007, // 02C6 JMP #02CF 0x8C2C0906, // 02C6 GETMET R11 R4 K6
0x541EFFFB, // 02C7 LDINT R7 65532 0x8834090E, // 02C7 GETMBR R13 R4 K14
0x1C1C0C07, // 02C8 EQ R7 R6 R7 0x543A0003, // 02C8 LDINT R14 4
0x781E0004, // 02C9 JMPF R7 #02CF 0x7C2C0600, // 02C9 CALL R11 3
0x8C1C0906, // 02CA GETMET R7 R4 K6 0x7C200600, // 02CA CALL R8 3
0x8824092A, // 02CB GETMBR R9 R4 K42 0x80040E00, // 02CB RET 1 R7
0x58280005, // 02CC LDCONST R10 K5 0x7002006D, // 02CC JMP #033B
0x7C1C0600, // 02CD CALL R7 3 0x541E0030, // 02CD LDINT R7 49
0x80040E00, // 02CE RET 1 R7 0x1C1C0A07, // 02CE EQ R7 R5 R7
0x70020059, // 02CF JMP #032A 0x781E0010, // 02CF JMPF R7 #02E1
0x541E001C, // 02D0 LDINT R7 29 0x1C1C0D0F, // 02D0 EQ R7 R6 K15
0x1C1C0A07, // 02D1 EQ R7 R5 R7 0x781E0005, // 02D1 JMPF R7 #02D8
0x781E0053, // 02D2 JMPF R7 #0327 0x8C1C0906, // 02D2 GETMET R7 R4 K6
0x1C1C0D05, // 02D3 EQ R7 R6 K5 0x8824090E, // 02D3 GETMBR R9 R4 K14
0x781E001C, // 02D4 JMPF R7 #02F2 0x542A001D, // 02D4 LDINT R10 30
0x8C1C0911, // 02D5 GETMET R7 R4 K17 0x7C1C0600, // 02D5 CALL R7 3
0x7C1C0200, // 02D6 CALL R7 1 0x80040E00, // 02D6 RET 1 R7
0x60200010, // 02D7 GETGBL R8 G16 0x70020007, // 02D7 JMP #02E0
0x8824014C, // 02D8 GETMBR R9 R0 K76 0x541EFFFB, // 02D8 LDINT R7 65532
0x8C24134D, // 02D9 GETMET R9 R9 K77 0x1C1C0C07, // 02D9 EQ R7 R6 R7
0x7C240200, // 02DA CALL R9 1 0x781E0004, // 02DA JMPF R7 #02E0
0x7C200200, // 02DB CALL R8 1 0x8C1C0906, // 02DB GETMET R7 R4 K6
0xA802000F, // 02DC EXBLK 0 #02ED 0x8824092A, // 02DC GETMBR R9 R4 K42
0x5C241000, // 02DD MOVE R9 R8 0x58280005, // 02DD LDCONST R10 K5
0x7C240000, // 02DE CALL R9 0 0x7C1C0600, // 02DE CALL R7 3
0x8C280F15, // 02DF GETMET R10 R7 K21 0x80040E00, // 02DF RET 1 R7
0x7C280200, // 02E0 CALL R10 1 0x70020059, // 02E0 JMP #033B
0x8C2C150B, // 02E1 GETMET R11 R10 K11 0x541E001C, // 02E1 LDINT R7 29
0x58340005, // 02E2 LDCONST R13 K5 0x1C1C0A07, // 02E2 EQ R7 R5 R7
0x8838090C, // 02E3 GETMBR R14 R4 K12 0x781E0053, // 02E3 JMPF R7 #0338
0x5C3C1200, // 02E4 MOVE R15 R9 0x1C1C0D05, // 02E4 EQ R7 R6 K5
0x7C2C0800, // 02E5 CALL R11 4 0x781E001C, // 02E5 JMPF R7 #0303
0x8C2C150B, // 02E6 GETMET R11 R10 K11 0x8C1C0911, // 02E6 GETMET R7 R4 K17
0x58340009, // 02E7 LDCONST R13 K9 0x7C1C0200, // 02E7 CALL R7 1
0x8838090C, // 02E8 GETMBR R14 R4 K12 0x60200010, // 02E8 GETGBL R8 G16
0x883C014C, // 02E9 GETMBR R15 R0 K76 0x8824014C, // 02E9 GETMBR R9 R0 K76
0x943C1E09, // 02EA GETIDX R15 R15 R9 0x8C24134D, // 02EA GETMET R9 R9 K77
0x7C2C0800, // 02EB CALL R11 4 0x7C240200, // 02EB CALL R9 1
0x7001FFEF, // 02EC JMP #02DD 0x7C200200, // 02EC CALL R8 1
0x58200039, // 02ED LDCONST R8 K57 0xA802000F, // 02ED EXBLK 0 #02FE
0xAC200200, // 02EE CATCH R8 1 0 0x5C241000, // 02EE MOVE R9 R8
0xB0080000, // 02EF RAISE 2 R0 R0 0x7C240000, // 02EF CALL R9 0
0x80040E00, // 02F0 RET 1 R7 0x8C280F15, // 02F0 GETMET R10 R7 K21
0x70020033, // 02F1 JMP #0326 0x7C280200, // 02F1 CALL R10 1
0x1C1C0D09, // 02F2 EQ R7 R6 K9 0x8C2C150B, // 02F2 GETMET R11 R10 K11
0x781E0013, // 02F3 JMPF R7 #0308 0x58340005, // 02F3 LDCONST R13 K5
0x8C1C0911, // 02F4 GETMET R7 R4 K17 0x8838090C, // 02F4 GETMBR R14 R4 K12
0x7C1C0200, // 02F5 CALL R7 1 0x5C3C1200, // 02F5 MOVE R15 R9
0x60200010, // 02F6 GETGBL R8 G16 0x7C2C0800, // 02F6 CALL R11 4
0x8C24014E, // 02F7 GETMET R9 R0 K78 0x8C2C150B, // 02F7 GETMET R11 R10 K11
0x7C240200, // 02F8 CALL R9 1 0x58340009, // 02F8 LDCONST R13 K9
0x7C200200, // 02F9 CALL R8 1 0x8838090C, // 02F9 GETMBR R14 R4 K12
0xA8020007, // 02FA EXBLK 0 #0303 0x883C014C, // 02FA GETMBR R15 R0 K76
0x5C241000, // 02FB MOVE R9 R8 0x943C1E09, // 02FB GETIDX R15 R15 R9
0x7C240000, // 02FC CALL R9 0 0x7C2C0800, // 02FC CALL R11 4
0x8C280F0B, // 02FD GETMET R10 R7 K11 0x7001FFEF, // 02FD JMP #02EE
0x4C300000, // 02FE LDNIL R12 0x58200039, // 02FE LDCONST R8 K57
0x8834092A, // 02FF GETMBR R13 R4 K42 0xAC200200, // 02FF CATCH R8 1 0
0x5C381200, // 0300 MOVE R14 R9 0xB0080000, // 0300 RAISE 2 R0 R0
0x7C280800, // 0301 CALL R10 4 0x80040E00, // 0301 RET 1 R7
0x7001FFF7, // 0302 JMP #02FB 0x70020033, // 0302 JMP #0337
0x58200039, // 0303 LDCONST R8 K57 0x1C1C0D09, // 0303 EQ R7 R6 K9
0xAC200200, // 0304 CATCH R8 1 0 0x781E0013, // 0304 JMPF R7 #0319
0xB0080000, // 0305 RAISE 2 R0 R0 0x8C1C0911, // 0305 GETMET R7 R4 K17
0x80040E00, // 0306 RET 1 R7 0x7C1C0200, // 0306 CALL R7 1
0x7002001D, // 0307 JMP #0326 0x60200010, // 0307 GETGBL R8 G16
0x1C1C0D0D, // 0308 EQ R7 R6 K13 0x8C24014E, // 0308 GETMET R9 R0 K78
0x781E0003, // 0309 JMPF R7 #030E 0x7C240200, // 0309 CALL R9 1
0x8C1C0911, // 030A GETMET R7 R4 K17 0x7C200200, // 030A CALL R8 1
0x7C1C0200, // 030B CALL R7 1 0xA8020007, // 030B EXBLK 0 #0314
0x80040E00, // 030C RET 1 R7 0x5C241000, // 030C MOVE R9 R8
0x70020017, // 030D JMP #0326 0x7C240000, // 030D CALL R9 0
0x1C1C0D0F, // 030E EQ R7 R6 K15 0x8C280F0B, // 030E GETMET R10 R7 K11
0x781E0015, // 030F JMPF R7 #0326 0x4C300000, // 030F LDNIL R12
0x881C0133, // 0310 GETMBR R7 R0 K51 0x8834092A, // 0310 GETMBR R13 R4 K42
0x8C1C0F4F, // 0311 GETMET R7 R7 K79 0x5C381200, // 0311 MOVE R14 R9
0x50240200, // 0312 LDBOOL R9 1 0 0x7C280800, // 0312 CALL R10 4
0x7C1C0400, // 0313 CALL R7 2 0x7001FFF7, // 0313 JMP #030C
0x8C200911, // 0314 GETMET R8 R4 K17 0x58200039, // 0314 LDCONST R8 K57
0x7C200200, // 0315 CALL R8 1 0xAC200200, // 0315 CATCH R8 1 0
0x60240010, // 0316 GETGBL R9 G16 0xB0080000, // 0316 RAISE 2 R0 R0
0x5C280E00, // 0317 MOVE R10 R7 0x80040E00, // 0317 RET 1 R7
0x7C240200, // 0318 CALL R9 1 0x7002001D, // 0318 JMP #0337
0xA8020007, // 0319 EXBLK 0 #0322 0x1C1C0D0D, // 0319 EQ R7 R6 K13
0x5C281200, // 031A MOVE R10 R9 0x781E0003, // 031A JMPF R7 #031F
0x7C280000, // 031B CALL R10 0 0x8C1C0911, // 031B GETMET R7 R4 K17
0x8C2C110B, // 031C GETMET R11 R8 K11 0x7C1C0200, // 031C CALL R7 1
0x4C340000, // 031D LDNIL R13 0x80040E00, // 031D RET 1 R7
0x8838090C, // 031E GETMBR R14 R4 K12 0x70020017, // 031E JMP #0337
0x5C3C1400, // 031F MOVE R15 R10 0x1C1C0D0F, // 031F EQ R7 R6 K15
0x7C2C0800, // 0320 CALL R11 4 0x781E0015, // 0320 JMPF R7 #0337
0x7001FFF7, // 0321 JMP #031A 0x881C0133, // 0321 GETMBR R7 R0 K51
0x58240039, // 0322 LDCONST R9 K57 0x8C1C0F4F, // 0322 GETMET R7 R7 K79
0xAC240200, // 0323 CATCH R9 1 0 0x50240200, // 0323 LDBOOL R9 1 0
0xB0080000, // 0324 RAISE 2 R0 R0 0x7C1C0400, // 0324 CALL R7 2
0x80041000, // 0325 RET 1 R8 0x8C200911, // 0325 GETMET R8 R4 K17
0x70020002, // 0326 JMP #032A 0x7C200200, // 0326 CALL R8 1
0xB81E0200, // 0327 GETNGBL R7 K1 0x60240010, // 0327 GETGBL R9 G16
0x881C0F51, // 0328 GETMBR R7 R7 K81 0x5C280E00, // 0328 MOVE R10 R7
0x900AA007, // 0329 SETMBR R2 K80 R7 0x7C240200, // 0329 CALL R9 1
0x80000000, // 032A RET 0 0xA8020007, // 032A EXBLK 0 #0333
0x5C281200, // 032B MOVE R10 R9
0x7C280000, // 032C CALL R10 0
0x8C2C110B, // 032D GETMET R11 R8 K11
0x4C340000, // 032E LDNIL R13
0x8838090C, // 032F GETMBR R14 R4 K12
0x5C3C1400, // 0330 MOVE R15 R10
0x7C2C0800, // 0331 CALL R11 4
0x7001FFF7, // 0332 JMP #032B
0x58240039, // 0333 LDCONST R9 K57
0xAC240200, // 0334 CATCH R9 1 0
0xB0080000, // 0335 RAISE 2 R0 R0
0x80041000, // 0336 RET 1 R8
0x70020002, // 0337 JMP #033B
0xB81E0200, // 0338 GETNGBL R7 K1
0x881C0F51, // 0339 GETMBR R7 R7 K81
0x900AA007, // 033A SETMBR R2 K80 R7
0x80000000, // 033B RET 0
}) })
) )
); );
@ -1796,7 +1813,7 @@ be_local_class(Matter_Plugin_Root,
be_const_int(5), be_const_int(5),
})) ) } )) }, })) ) } )) },
{ be_const_key_int(40, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { { be_const_key_int(40, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(11, be_const_list( * be_nested_list(12,
( (struct bvalue*) &(const bvalue[]) { ( (struct bvalue*) &(const bvalue[]) {
be_const_int(0), be_const_int(0),
be_const_int(1), be_const_int(1),
@ -1809,6 +1826,7 @@ be_local_class(Matter_Plugin_Root,
be_const_int(8), be_const_int(8),
be_const_int(9), be_const_int(9),
be_const_int(18), be_const_int(18),
be_const_int(19),
})) ) } )) }, })) ) } )) },
{ be_const_key_int(49, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { { be_const_key_int(49, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(3, be_const_list( * be_nested_list(3,