From f33ccac2dfe36c5814586e21483ace83b29fdea9 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Tue, 11 Apr 2023 22:56:05 +0200
Subject: [PATCH] Matter fix wrong unsupported messages (#18394)
---
.../berry_matter/src/be_matter_module.c | 2 +
.../src/embedded/Matter_Commissioning.be | 26 +-
.../src/embedded/Matter_Control_Message.be | 79 +
.../berry_matter/src/embedded/Matter_IM.be | 13 +-
.../src/embedded/Matter_IM_Message.be | 4 +-
.../src/embedded/Matter_MessageHandler.be | 71 +-
.../src/embedded/Matter_Plugin_Root.be | 4 +-
.../src/embedded/Matter_Session.be | 61 +-
.../solidified_Matter_Commissioning.h | 1455 ++++++++---------
.../solidified_Matter_Control_Message.h | 246 +++
.../src/solidify/solidified_Matter_IM.h | 70 +-
.../solidify/solidified_Matter_IM_Message.h | 2 +-
.../solidified_Matter_MessageHandler.h | 1327 ++++++++-------
.../solidify/solidified_Matter_Plugin_Root.h | 845 +++++-----
.../src/solidify/solidified_Matter_Session.h | 942 +++++++----
15 files changed, 2842 insertions(+), 2305 deletions(-)
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Control_Message.be
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Control_Message.h
diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c
index 4ae8c181e..a1a7097c5 100644
--- a/lib/libesp32/berry_matter/src/be_matter_module.c
+++ b/lib/libesp32/berry_matter/src/be_matter_module.c
@@ -141,6 +141,7 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_IM_Message.h"
#include "solidify/solidified_Matter_IM_Subscription.h"
#include "solidify/solidified_Matter_IM.h"
+#include "solidify/solidified_Matter_Control_Message.h"
#include "solidify/solidified_Matter_Plugin.h"
#include "solidify/solidified_Matter_Base38.h"
#include "solidify/solidified_Matter_UI.h"
@@ -299,6 +300,7 @@ module matter (scope: global, strings: weak) {
IM_Subscription, class(be_class_Matter_IM_Subscription)
IM_Subscription_Shop, class(be_class_Matter_IM_Subscription_Shop)
IM, class(be_class_Matter_IM)
+ Control_Message, class(be_class_Matter_Control_Message)
UI, class(be_class_Matter_UI)
// QR Code
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
index 9fee61fb3..366d5f11f 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
@@ -78,9 +78,7 @@ class Matter_Commisioning_Context
tasmota.log("MTR: received message " + matter.inspect(msg), 3)
if msg.opcode == 0x10
- return self.parse_MsgCounterSyncReq(msg)
- elif msg.opcode == 0x11
- return self.parse_MsgCounterSyncRsp(msg)
+ # don't need to do anything, the message is acked already before this call
elif msg.opcode == 0x20
return self.parse_PBKDFParamRequest(msg)
elif msg.opcode == 0x22
@@ -695,28 +693,6 @@ class Matter_Commisioning_Context
return false # we don't explicitly ack the message
end
- #############################################################
- # MsgCounterSyncReq
- #
- # Not yet implemented
- def parse_MsgCounterSyncReq(msg)
- import string
- var session = msg.session
- tasmota.log(string.format("MTR: >????????? MsgCounterSyncReq not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2)
- return false # we don't explicitly ack the message
- end
-
- #############################################################
- # MsgCounterSyncRsp
- #
- # Not yet implemented
- def parse_MsgCounterSyncRsp(msg)
- import string
- var session = msg.session
- tasmota.log(string.format("MTR: >????????? MsgCounterSyncRsp not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2)
- return false # we don't explicitly ack the message
- end
-
#############################################################
# placeholder, nothing to run for now
def every_second()
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Control_Message.be b/lib/libesp32/berry_matter/src/embedded/Matter_Control_Message.be
new file mode 100644
index 000000000..d2d3192ba
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Control_Message.be
@@ -0,0 +1,79 @@
+#
+# Matter_Control_Message.be - suppport for Matter Control Messages (flag C = 1)
+#
+# Copyright (C) 2023 Stephan Hadinger & Theo Arends
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+
+import matter
+
+#@ solidify:Matter_Control_Message,weak
+
+#################################################################################
+# Class Matter_Control_Message
+#
+# Control message have C flag = 1
+# Used primarily for Message Counter Synchronization Protocol (MCSP)
+#################################################################################
+class Matter_Control_Message
+ var responder # reference to the caller, sending packets
+ var device # root device object
+
+ def init(responder)
+ import crypto
+ self.responder = responder
+ self.device = responder.device
+ end
+
+ def process_incoming_control_message(msg)
+
+ tasmota.log("MTR: received control message " + matter.inspect(msg), 2)
+ if msg.opcode == 0x00
+ return self.parse_MsgCounterSyncReq(msg)
+ elif msg.opcode == 0x01
+ return self.parse_MsgCounterSyncRsp(msg)
+ else
+ import string
+ tasmota.log(string.format("MTR: >????????? Unknown OpCode (control message) %02X", msg.opcode), 2)
+ return false
+ end
+
+ return false
+ end
+
+ #############################################################
+ # MsgCounterSyncReq
+ #
+ # Not yet implemented
+ def parse_MsgCounterSyncReq(msg)
+ import string
+ var session = msg.session
+ tasmota.log(string.format("MTR: >MCSyncReq * Not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2)
+ return false # we don't explicitly ack the message
+ end
+
+ #############################################################
+ # MsgCounterSyncRsp
+ #
+ # Not yet implemented
+ def parse_MsgCounterSyncRsp(msg)
+ import string
+ var session = msg.session
+ tasmota.log(string.format("MTR: >MCSyncRsp * Not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2)
+ return false # we don't explicitly ack the message
+ end
+
+end
+matter.Control_Message = Matter_Control_Message
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
index 505f23547..d0fc142eb 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
@@ -96,18 +96,7 @@ class Matter_IM
#
# returns `true` if packet could be sent
def send_ack_now(msg)
- if msg.x_flag_r # send Ack only if requester asks for it
- var resp = msg.build_standalone_ack(false #-not reliable-#)
- resp.encode_frame()
- resp.encrypt()
- import string
- tasmota.log(string.format("MTR: >>> INIT", "counter_rcv=", self.counter_rcv, "counter_snd=", self.counter_snd)
+ #
self._counter_insecure_rcv = matter.Counter()
self._counter_insecure_snd = matter.Counter()
self._breadcrumb = 0
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
index 61d12fe9b..f00b8535a 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
@@ -6,165 +6,6 @@
extern const bclass be_class_Matter_Commisioning_Context;
-/********************************************************************
-** Solidified function: process_incoming
-********************************************************************/
-be_local_closure(Matter_Commisioning_Context_process_incoming, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[22]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(is_commissioning_open),
- /* K2 */ be_nested_str_weak(opcode),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(log),
- /* K5 */ be_nested_str_weak(MTR_X3A_X20commissioning_X20not_X20open),
- /* K6 */ be_const_int(2),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20received_X20message_X20),
- /* K8 */ be_nested_str_weak(matter),
- /* K9 */ be_nested_str_weak(inspect),
- /* K10 */ be_const_int(3),
- /* K11 */ be_nested_str_weak(parse_MsgCounterSyncReq),
- /* K12 */ be_nested_str_weak(parse_MsgCounterSyncRsp),
- /* K13 */ be_nested_str_weak(parse_PBKDFParamRequest),
- /* K14 */ be_nested_str_weak(parse_Pake1),
- /* K15 */ be_nested_str_weak(parse_Pake3),
- /* K16 */ be_nested_str_weak(parse_Sigma1),
- /* K17 */ be_nested_str_weak(parse_Sigma3),
- /* K18 */ be_nested_str_weak(parse_StatusReport),
- /* K19 */ be_nested_str_weak(string),
- /* K20 */ be_nested_str_weak(format),
- /* K21 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X20Unknown_X20OpCode_X20_X28secure_X20channel_X29_X20_X2502X),
- }),
- be_str_weak(process_incoming),
- &be_const_str_solidified,
- ( &(const binstruction[113]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x740A000E, // 0003 JMPT R2 #0013
- 0x88080302, // 0004 GETMBR R2 R1 K2
- 0x540E001F, // 0005 LDINT R3 32
- 0x28080403, // 0006 GE R2 R2 R3
- 0x780A000A, // 0007 JMPF R2 #0013
- 0x88080302, // 0008 GETMBR R2 R1 K2
- 0x540E0023, // 0009 LDINT R3 36
- 0x18080403, // 000A LE R2 R2 R3
- 0x780A0006, // 000B JMPF R2 #0013
- 0xB80A0600, // 000C GETNGBL R2 K3
- 0x8C080504, // 000D GETMET R2 R2 K4
- 0x58100005, // 000E LDCONST R4 K5
- 0x58140006, // 000F LDCONST R5 K6
- 0x7C080600, // 0010 CALL R2 3
- 0x50080000, // 0011 LDBOOL R2 0 0
- 0x80040400, // 0012 RET 1 R2
- 0xB80A0600, // 0013 GETNGBL R2 K3
- 0x8C080504, // 0014 GETMET R2 R2 K4
- 0xB8121000, // 0015 GETNGBL R4 K8
- 0x8C100909, // 0016 GETMET R4 R4 K9
- 0x5C180200, // 0017 MOVE R6 R1
- 0x7C100400, // 0018 CALL R4 2
- 0x00120E04, // 0019 ADD R4 K7 R4
- 0x5814000A, // 001A LDCONST R5 K10
- 0x7C080600, // 001B CALL R2 3
- 0x88080302, // 001C GETMBR R2 R1 K2
- 0x540E000F, // 001D LDINT R3 16
- 0x1C080403, // 001E EQ R2 R2 R3
- 0x780A0004, // 001F JMPF R2 #0025
- 0x8C08010B, // 0020 GETMET R2 R0 K11
- 0x5C100200, // 0021 MOVE R4 R1
- 0x7C080400, // 0022 CALL R2 2
- 0x80040400, // 0023 RET 1 R2
- 0x70020049, // 0024 JMP #006F
- 0x88080302, // 0025 GETMBR R2 R1 K2
- 0x540E0010, // 0026 LDINT R3 17
- 0x1C080403, // 0027 EQ R2 R2 R3
- 0x780A0004, // 0028 JMPF R2 #002E
- 0x8C08010C, // 0029 GETMET R2 R0 K12
- 0x5C100200, // 002A MOVE R4 R1
- 0x7C080400, // 002B CALL R2 2
- 0x80040400, // 002C RET 1 R2
- 0x70020040, // 002D JMP #006F
- 0x88080302, // 002E GETMBR R2 R1 K2
- 0x540E001F, // 002F LDINT R3 32
- 0x1C080403, // 0030 EQ R2 R2 R3
- 0x780A0004, // 0031 JMPF R2 #0037
- 0x8C08010D, // 0032 GETMET R2 R0 K13
- 0x5C100200, // 0033 MOVE R4 R1
- 0x7C080400, // 0034 CALL R2 2
- 0x80040400, // 0035 RET 1 R2
- 0x70020037, // 0036 JMP #006F
- 0x88080302, // 0037 GETMBR R2 R1 K2
- 0x540E0021, // 0038 LDINT R3 34
- 0x1C080403, // 0039 EQ R2 R2 R3
- 0x780A0004, // 003A JMPF R2 #0040
- 0x8C08010E, // 003B GETMET R2 R0 K14
- 0x5C100200, // 003C MOVE R4 R1
- 0x7C080400, // 003D CALL R2 2
- 0x80040400, // 003E RET 1 R2
- 0x7002002E, // 003F JMP #006F
- 0x88080302, // 0040 GETMBR R2 R1 K2
- 0x540E0023, // 0041 LDINT R3 36
- 0x1C080403, // 0042 EQ R2 R2 R3
- 0x780A0004, // 0043 JMPF R2 #0049
- 0x8C08010F, // 0044 GETMET R2 R0 K15
- 0x5C100200, // 0045 MOVE R4 R1
- 0x7C080400, // 0046 CALL R2 2
- 0x80040400, // 0047 RET 1 R2
- 0x70020025, // 0048 JMP #006F
- 0x88080302, // 0049 GETMBR R2 R1 K2
- 0x540E002F, // 004A LDINT R3 48
- 0x1C080403, // 004B EQ R2 R2 R3
- 0x780A0004, // 004C JMPF R2 #0052
- 0x8C080110, // 004D GETMET R2 R0 K16
- 0x5C100200, // 004E MOVE R4 R1
- 0x7C080400, // 004F CALL R2 2
- 0x80040400, // 0050 RET 1 R2
- 0x7002001C, // 0051 JMP #006F
- 0x88080302, // 0052 GETMBR R2 R1 K2
- 0x540E0031, // 0053 LDINT R3 50
- 0x1C080403, // 0054 EQ R2 R2 R3
- 0x780A0004, // 0055 JMPF R2 #005B
- 0x8C080111, // 0056 GETMET R2 R0 K17
- 0x5C100200, // 0057 MOVE R4 R1
- 0x7C080400, // 0058 CALL R2 2
- 0x80040400, // 0059 RET 1 R2
- 0x70020013, // 005A JMP #006F
- 0x88080302, // 005B GETMBR R2 R1 K2
- 0x540E003F, // 005C LDINT R3 64
- 0x1C080403, // 005D EQ R2 R2 R3
- 0x780A0004, // 005E JMPF R2 #0064
- 0x8C080112, // 005F GETMET R2 R0 K18
- 0x5C100200, // 0060 MOVE R4 R1
- 0x7C080400, // 0061 CALL R2 2
- 0x80040400, // 0062 RET 1 R2
- 0x7002000A, // 0063 JMP #006F
- 0xA40A2600, // 0064 IMPORT R2 K19
- 0xB80E0600, // 0065 GETNGBL R3 K3
- 0x8C0C0704, // 0066 GETMET R3 R3 K4
- 0x8C140514, // 0067 GETMET R5 R2 K20
- 0x581C0015, // 0068 LDCONST R7 K21
- 0x88200302, // 0069 GETMBR R8 R1 K2
- 0x7C140600, // 006A CALL R5 3
- 0x58180006, // 006B LDCONST R6 K6
- 0x7C0C0600, // 006C CALL R3 3
- 0x500C0000, // 006D LDBOOL R3 0 0
- 0x80040600, // 006E RET 1 R3
- 0x50080000, // 006F LDBOOL R2 0 0
- 0x80040400, // 0070 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: parse_PBKDFParamRequest
********************************************************************/
@@ -382,75 +223,6 @@ be_local_closure(Matter_Commisioning_Context_parse_PBKDFParamRequest, /* name
/*******************************************************************/
-/********************************************************************
-** Solidified function: send_status_report
-********************************************************************/
-be_local_closure(Matter_Commisioning_Context_send_status_report, /* name */
- be_nested_proto(
- 16, /* nstack */
- 6, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(build_response),
- /* K1 */ be_nested_str_weak(add),
- /* K2 */ be_const_int(2),
- /* K3 */ be_nested_str_weak(encode_frame),
- /* K4 */ be_nested_str_weak(responder),
- /* K5 */ be_nested_str_weak(send_response),
- /* K6 */ be_nested_str_weak(remote_ip),
- /* K7 */ be_nested_str_weak(remote_port),
- /* K8 */ be_nested_str_weak(message_counter),
- /* K9 */ be_nested_str_weak(session),
- /* K10 */ be_nested_str_weak(local_session_id),
- }),
- be_str_weak(send_status_report),
- &be_const_str_solidified,
- ( &(const binstruction[34]) { /* code */
- 0x8C180300, // 0000 GETMET R6 R1 K0
- 0x5422003F, // 0001 LDINT R8 64
- 0x5C240A00, // 0002 MOVE R9 R5
- 0x7C180600, // 0003 CALL R6 3
- 0x601C0015, // 0004 GETGBL R7 G21
- 0x7C1C0000, // 0005 CALL R7 0
- 0x8C200F01, // 0006 GETMET R8 R7 K1
- 0x5C280400, // 0007 MOVE R10 R2
- 0x582C0002, // 0008 LDCONST R11 K2
- 0x7C200600, // 0009 CALL R8 3
- 0x8C200F01, // 000A GETMET R8 R7 K1
- 0x5C280600, // 000B MOVE R10 R3
- 0x542E0003, // 000C LDINT R11 4
- 0x7C200600, // 000D CALL R8 3
- 0x8C200F01, // 000E GETMET R8 R7 K1
- 0x5C280800, // 000F MOVE R10 R4
- 0x542E0003, // 0010 LDINT R11 4
- 0x7C200600, // 0011 CALL R8 3
- 0x8C200D03, // 0012 GETMET R8 R6 K3
- 0x5C280E00, // 0013 MOVE R10 R7
- 0x7C200400, // 0014 CALL R8 2
- 0x88240104, // 0015 GETMBR R9 R0 K4
- 0x8C241305, // 0016 GETMET R9 R9 K5
- 0x5C2C1000, // 0017 MOVE R11 R8
- 0x88300306, // 0018 GETMBR R12 R1 K6
- 0x88340307, // 0019 GETMBR R13 R1 K7
- 0x78160001, // 001A JMPF R5 #001D
- 0x88380D08, // 001B GETMBR R14 R6 K8
- 0x70020000, // 001C JMP #001E
- 0x4C380000, // 001D LDNIL R14
- 0x883C0309, // 001E GETMBR R15 R1 K9
- 0x883C1F0A, // 001F GETMBR R15 R15 K10
- 0x7C240C00, // 0020 CALL R9 6
- 0x80000000, // 0021 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: parse_Pake1
********************************************************************/
@@ -643,11 +415,11 @@ be_local_closure(Matter_Commisioning_Context_parse_Pake1, /* name */
/********************************************************************
-** Solidified function: parse_Pake3
+** Solidified function: init
********************************************************************/
-be_local_closure(Matter_Commisioning_Context_parse_Pake3, /* name */
+be_local_closure(Matter_Commisioning_Context_init, /* name */
be_nested_proto(
- 14, /* nstack */
+ 6, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -655,157 +427,315 @@ be_local_closure(Matter_Commisioning_Context_parse_Pake3, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[34]) { /* constants */
+ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(opcode),
- /* K2 */ be_nested_str_weak(local_session_id),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(protocol_id),
- /* K5 */ be_nested_str_weak(tasmota),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20invalid_X20Pake3_X20message),
- /* K8 */ be_const_int(2),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
- /* K10 */ be_nested_str_weak(send_status_report),
- /* K11 */ be_const_int(1),
- /* K12 */ be_nested_str_weak(matter),
- /* K13 */ be_nested_str_weak(Pake3),
- /* K14 */ be_nested_str_weak(parse),
- /* K15 */ be_nested_str_weak(raw),
- /* K16 */ be_nested_str_weak(app_payload_idx),
- /* K17 */ be_nested_str_weak(cA),
- /* K18 */ be_nested_str_weak(spake),
- /* K19 */ be_nested_str_weak(MTR_X3A_X20invalid_X20cA_X20received),
- /* K20 */ be_nested_str_weak(created),
- /* K21 */ be_nested_str_weak(rtc),
- /* K22 */ be_nested_str_weak(utc),
- /* K23 */ be_nested_str_weak(HKDF_SHA256),
- /* K24 */ be_nested_str_weak(derive),
- /* K25 */ be_nested_str_weak(Ke),
- /* K26 */ be_nested_str_weak(fromstring),
- /* K27 */ be_nested_str_weak(SEKeys_Info),
- /* K28 */ be_nested_str_weak(I2RKey),
- /* K29 */ be_nested_str_weak(R2IKey),
- /* K30 */ be_nested_str_weak(AttestationChallenge),
- /* K31 */ be_nested_str_weak(add_session),
- /* K32 */ be_nested_str_weak(future_local_session_id),
- /* K33 */ be_nested_str_weak(future_initiator_session_id),
+ /* K1 */ be_nested_str_weak(responder),
+ /* K2 */ be_nested_str_weak(device),
+ /* K3 */ be_nested_str_weak(y),
+ /* K4 */ be_nested_str_weak(random),
}),
- be_str_weak(parse_Pake3),
+ be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[112]) { /* code */
+ ( &(const binstruction[ 9]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
- 0x880C0301, // 0001 GETMBR R3 R1 K1
- 0x54120023, // 0002 LDINT R4 36
- 0x200C0604, // 0003 NE R3 R3 R4
- 0x740E0005, // 0004 JMPT R3 #000B
- 0x880C0302, // 0005 GETMBR R3 R1 K2
- 0x200C0703, // 0006 NE R3 R3 K3
- 0x740E0002, // 0007 JMPT R3 #000B
- 0x880C0304, // 0008 GETMBR R3 R1 K4
- 0x200C0703, // 0009 NE R3 R3 K3
- 0x780E0012, // 000A JMPF R3 #001E
- 0xB80E0A00, // 000B GETNGBL R3 K5
- 0x8C0C0706, // 000C GETMET R3 R3 K6
- 0x58140007, // 000D LDCONST R5 K7
- 0x58180008, // 000E LDCONST R6 K8
- 0x7C0C0600, // 000F CALL R3 3
- 0xB80E0A00, // 0010 GETNGBL R3 K5
- 0x8C0C0706, // 0011 GETMET R3 R3 K6
- 0x58140009, // 0012 LDCONST R5 K9
- 0x58180008, // 0013 LDCONST R6 K8
- 0x7C0C0600, // 0014 CALL R3 3
- 0x8C0C010A, // 0015 GETMET R3 R0 K10
- 0x5C140200, // 0016 MOVE R5 R1
- 0x5818000B, // 0017 LDCONST R6 K11
- 0x581C0003, // 0018 LDCONST R7 K3
- 0x58200008, // 0019 LDCONST R8 K8
- 0x50240000, // 001A LDBOOL R9 0 0
- 0x7C0C0C00, // 001B CALL R3 6
- 0x50100000, // 001C LDBOOL R4 0 0
- 0x80040800, // 001D RET 1 R4
- 0xB80E1800, // 001E GETNGBL R3 K12
- 0x8C0C070D, // 001F GETMET R3 R3 K13
- 0x7C0C0200, // 0020 CALL R3 1
- 0x8C0C070E, // 0021 GETMET R3 R3 K14
- 0x8814030F, // 0022 GETMBR R5 R1 K15
- 0x88180310, // 0023 GETMBR R6 R1 K16
- 0x7C0C0600, // 0024 CALL R3 3
- 0x88100711, // 0025 GETMBR R4 R3 K17
- 0x90022204, // 0026 SETMBR R0 K17 R4
- 0x88100111, // 0027 GETMBR R4 R0 K17
- 0x88140112, // 0028 GETMBR R5 R0 K18
- 0x88140B11, // 0029 GETMBR R5 R5 K17
- 0x20100805, // 002A NE R4 R4 R5
- 0x78120012, // 002B JMPF R4 #003F
- 0xB8120A00, // 002C GETNGBL R4 K5
- 0x8C100906, // 002D GETMET R4 R4 K6
- 0x58180013, // 002E LDCONST R6 K19
- 0x581C0008, // 002F LDCONST R7 K8
- 0x7C100600, // 0030 CALL R4 3
- 0xB8120A00, // 0031 GETNGBL R4 K5
- 0x8C100906, // 0032 GETMET R4 R4 K6
- 0x58180009, // 0033 LDCONST R6 K9
- 0x581C0008, // 0034 LDCONST R7 K8
- 0x7C100600, // 0035 CALL R4 3
- 0x8C10010A, // 0036 GETMET R4 R0 K10
- 0x5C180200, // 0037 MOVE R6 R1
- 0x581C000B, // 0038 LDCONST R7 K11
- 0x58200003, // 0039 LDCONST R8 K3
- 0x58240008, // 003A LDCONST R9 K8
- 0x50280000, // 003B LDBOOL R10 0 0
- 0x7C100C00, // 003C CALL R4 6
- 0x50140000, // 003D LDBOOL R5 0 0
- 0x80040A00, // 003E RET 1 R5
- 0xB8120A00, // 003F GETNGBL R4 K5
- 0x8C100915, // 0040 GETMET R4 R4 K21
- 0x7C100200, // 0041 CALL R4 1
- 0x94100916, // 0042 GETIDX R4 R4 K22
- 0x90022804, // 0043 SETMBR R0 K20 R4
- 0x8C100517, // 0044 GETMET R4 R2 K23
- 0x7C100200, // 0045 CALL R4 1
- 0x8C100918, // 0046 GETMET R4 R4 K24
- 0x88180119, // 0047 GETMBR R6 R0 K25
- 0x601C0015, // 0048 GETGBL R7 G21
- 0x7C1C0000, // 0049 CALL R7 0
- 0x60200015, // 004A GETGBL R8 G21
- 0x7C200000, // 004B CALL R8 0
- 0x8C20111A, // 004C GETMET R8 R8 K26
- 0x8828011B, // 004D GETMBR R10 R0 K27
- 0x7C200400, // 004E CALL R8 2
- 0x5426002F, // 004F LDINT R9 48
- 0x7C100A00, // 0050 CALL R4 5
- 0x5416000E, // 0051 LDINT R5 15
- 0x40160605, // 0052 CONNECT R5 K3 R5
- 0x94140805, // 0053 GETIDX R5 R4 R5
- 0x90023805, // 0054 SETMBR R0 K28 R5
- 0x5416000F, // 0055 LDINT R5 16
- 0x541A001E, // 0056 LDINT R6 31
- 0x40140A06, // 0057 CONNECT R5 R5 R6
- 0x94140805, // 0058 GETIDX R5 R4 R5
- 0x90023A05, // 0059 SETMBR R0 K29 R5
- 0x5416001F, // 005A LDINT R5 32
- 0x541A002E, // 005B LDINT R6 47
- 0x40140A06, // 005C CONNECT R5 R5 R6
- 0x94140805, // 005D GETIDX R5 R4 R5
- 0x90023C05, // 005E SETMBR R0 K30 R5
- 0x8C14010A, // 005F GETMET R5 R0 K10
- 0x5C1C0200, // 0060 MOVE R7 R1
- 0x58200003, // 0061 LDCONST R8 K3
- 0x58240003, // 0062 LDCONST R9 K3
- 0x58280003, // 0063 LDCONST R10 K3
- 0x502C0000, // 0064 LDBOOL R11 0 0
- 0x7C140C00, // 0065 CALL R5 6
- 0x8C18011F, // 0066 GETMET R6 R0 K31
- 0x88200120, // 0067 GETMBR R8 R0 K32
- 0x88240121, // 0068 GETMBR R9 R0 K33
- 0x8828011C, // 0069 GETMBR R10 R0 K28
- 0x882C011D, // 006A GETMBR R11 R0 K29
- 0x8830011E, // 006B GETMBR R12 R0 K30
- 0x88340114, // 006C GETMBR R13 R0 K20
- 0x7C180E00, // 006D CALL R6 7
- 0x50180200, // 006E LDBOOL R6 1 0
- 0x80040C00, // 006F RET 1 R6
+ 0x90020201, // 0001 SETMBR R0 K1 R1
+ 0x880C0302, // 0002 GETMBR R3 R1 K2
+ 0x90020403, // 0003 SETMBR R0 K2 R3
+ 0x8C0C0504, // 0004 GETMET R3 R2 K4
+ 0x5416001F, // 0005 LDINT R5 32
+ 0x7C0C0400, // 0006 CALL R3 2
+ 0x90020603, // 0007 SETMBR R0 K3 R3
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: find_fabric_by_destination_id
+********************************************************************/
+be_local_closure(Matter_Commisioning_Context_find_fabric_by_destination_id, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[21]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20SEARCHING_X3A_X20destinationId_X3D),
+ /* K4 */ be_nested_str_weak(tohex),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(device),
+ /* K7 */ be_nested_str_weak(sessions),
+ /* K8 */ be_nested_str_weak(fabrics),
+ /* K9 */ be_nested_str_weak(noc),
+ /* K10 */ be_nested_str_weak(fabric_id),
+ /* K11 */ be_nested_str_weak(device_id),
+ /* K12 */ be_nested_str_weak(get_ca_pub),
+ /* K13 */ be_nested_str_weak(get_ipk_group_key),
+ /* K14 */ be_nested_str_weak(MTR_X3A_X20SIGMA1_X3A_X20destinationMessage_X3D),
+ /* K15 */ be_nested_str_weak(MTR_X3A_X20SIGMA1_X3A_X20key_ipk_X3D),
+ /* K16 */ be_nested_str_weak(HMAC_SHA256),
+ /* K17 */ be_nested_str_weak(update),
+ /* K18 */ be_nested_str_weak(out),
+ /* K19 */ be_nested_str_weak(MTR_X3A_X20SIGMA1_X3A_X20candidateDestinationId_X3D),
+ /* K20 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(find_fabric_by_destination_id),
+ &be_const_str_solidified,
+ ( &(const binstruction[77]) { /* code */
+ 0xA40E0000, // 0000 IMPORT R3 K0
+ 0xB8120200, // 0001 GETNGBL R4 K1
+ 0x8C100902, // 0002 GETMET R4 R4 K2
+ 0x8C180304, // 0003 GETMET R6 R1 K4
+ 0x7C180200, // 0004 CALL R6 1
+ 0x001A0606, // 0005 ADD R6 K3 R6
+ 0x581C0005, // 0006 LDCONST R7 K5
+ 0x7C100600, // 0007 CALL R4 3
+ 0x60100010, // 0008 GETGBL R4 G16
+ 0x88140106, // 0009 GETMBR R5 R0 K6
+ 0x88140B07, // 000A GETMBR R5 R5 K7
+ 0x88140B08, // 000B GETMBR R5 R5 K8
+ 0x7C100200, // 000C CALL R4 1
+ 0xA8020039, // 000D EXBLK 0 #0048
+ 0x5C140800, // 000E MOVE R5 R4
+ 0x7C140000, // 000F CALL R5 0
+ 0x88180B09, // 0010 GETMBR R6 R5 K9
+ 0x4C1C0000, // 0011 LDNIL R7
+ 0x1C180C07, // 0012 EQ R6 R6 R7
+ 0x741A0007, // 0013 JMPT R6 #001C
+ 0x88180B0A, // 0014 GETMBR R6 R5 K10
+ 0x4C1C0000, // 0015 LDNIL R7
+ 0x1C180C07, // 0016 EQ R6 R6 R7
+ 0x741A0003, // 0017 JMPT R6 #001C
+ 0x88180B0B, // 0018 GETMBR R6 R5 K11
+ 0x4C1C0000, // 0019 LDNIL R7
+ 0x1C180C07, // 001A EQ R6 R6 R7
+ 0x781A0000, // 001B JMPF R6 #001D
+ 0x7001FFF0, // 001C JMP #000E
+ 0x8C180B0C, // 001D GETMET R6 R5 K12
+ 0x7C180200, // 001E CALL R6 1
+ 0x00180406, // 001F ADD R6 R2 R6
+ 0x881C0B0A, // 0020 GETMBR R7 R5 K10
+ 0x00180C07, // 0021 ADD R6 R6 R7
+ 0x881C0B0B, // 0022 GETMBR R7 R5 K11
+ 0x00180C07, // 0023 ADD R6 R6 R7
+ 0x8C1C0B0D, // 0024 GETMET R7 R5 K13
+ 0x7C1C0200, // 0025 CALL R7 1
+ 0xB8220200, // 0026 GETNGBL R8 K1
+ 0x8C201102, // 0027 GETMET R8 R8 K2
+ 0x8C280D04, // 0028 GETMET R10 R6 K4
+ 0x7C280200, // 0029 CALL R10 1
+ 0x002A1C0A, // 002A ADD R10 K14 R10
+ 0x582C0005, // 002B LDCONST R11 K5
+ 0x7C200600, // 002C CALL R8 3
+ 0xB8220200, // 002D GETNGBL R8 K1
+ 0x8C201102, // 002E GETMET R8 R8 K2
+ 0x8C280F04, // 002F GETMET R10 R7 K4
+ 0x7C280200, // 0030 CALL R10 1
+ 0x002A1E0A, // 0031 ADD R10 K15 R10
+ 0x542E0003, // 0032 LDINT R11 4
+ 0x7C200600, // 0033 CALL R8 3
+ 0x8C200710, // 0034 GETMET R8 R3 K16
+ 0x5C280E00, // 0035 MOVE R10 R7
+ 0x7C200400, // 0036 CALL R8 2
+ 0x8C241111, // 0037 GETMET R9 R8 K17
+ 0x5C2C0C00, // 0038 MOVE R11 R6
+ 0x7C240400, // 0039 CALL R9 2
+ 0x8C241112, // 003A GETMET R9 R8 K18
+ 0x7C240200, // 003B CALL R9 1
+ 0xB82A0200, // 003C GETNGBL R10 K1
+ 0x8C281502, // 003D GETMET R10 R10 K2
+ 0x8C301304, // 003E GETMET R12 R9 K4
+ 0x7C300200, // 003F CALL R12 1
+ 0x0032260C, // 0040 ADD R12 K19 R12
+ 0x58340005, // 0041 LDCONST R13 K5
+ 0x7C280600, // 0042 CALL R10 3
+ 0x1C281201, // 0043 EQ R10 R9 R1
+ 0x782A0001, // 0044 JMPF R10 #0047
+ 0xA8040001, // 0045 EXBLK 1 1
+ 0x80040A00, // 0046 RET 1 R5
+ 0x7001FFC5, // 0047 JMP #000E
+ 0x58100014, // 0048 LDCONST R4 K20
+ 0xAC100200, // 0049 CATCH R4 1 0
+ 0xB0080000, // 004A RAISE 2 R0 R0
+ 0x4C100000, // 004B LDNIL R4
+ 0x80040800, // 004C RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: process_incoming
+********************************************************************/
+be_local_closure(Matter_Commisioning_Context_process_incoming, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[20]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(is_commissioning_open),
+ /* K2 */ be_nested_str_weak(opcode),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(log),
+ /* K5 */ be_nested_str_weak(MTR_X3A_X20commissioning_X20not_X20open),
+ /* K6 */ be_const_int(2),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20received_X20message_X20),
+ /* K8 */ be_nested_str_weak(matter),
+ /* K9 */ be_nested_str_weak(inspect),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(parse_PBKDFParamRequest),
+ /* K12 */ be_nested_str_weak(parse_Pake1),
+ /* K13 */ be_nested_str_weak(parse_Pake3),
+ /* K14 */ be_nested_str_weak(parse_Sigma1),
+ /* K15 */ be_nested_str_weak(parse_Sigma3),
+ /* K16 */ be_nested_str_weak(parse_StatusReport),
+ /* K17 */ be_nested_str_weak(string),
+ /* K18 */ be_nested_str_weak(format),
+ /* K19 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X20Unknown_X20OpCode_X20_X28secure_X20channel_X29_X20_X2502X),
+ }),
+ be_str_weak(process_incoming),
+ &be_const_str_solidified,
+ ( &(const binstruction[100]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x740A000E, // 0003 JMPT R2 #0013
+ 0x88080302, // 0004 GETMBR R2 R1 K2
+ 0x540E001F, // 0005 LDINT R3 32
+ 0x28080403, // 0006 GE R2 R2 R3
+ 0x780A000A, // 0007 JMPF R2 #0013
+ 0x88080302, // 0008 GETMBR R2 R1 K2
+ 0x540E0023, // 0009 LDINT R3 36
+ 0x18080403, // 000A LE R2 R2 R3
+ 0x780A0006, // 000B JMPF R2 #0013
+ 0xB80A0600, // 000C GETNGBL R2 K3
+ 0x8C080504, // 000D GETMET R2 R2 K4
+ 0x58100005, // 000E LDCONST R4 K5
+ 0x58140006, // 000F LDCONST R5 K6
+ 0x7C080600, // 0010 CALL R2 3
+ 0x50080000, // 0011 LDBOOL R2 0 0
+ 0x80040400, // 0012 RET 1 R2
+ 0xB80A0600, // 0013 GETNGBL R2 K3
+ 0x8C080504, // 0014 GETMET R2 R2 K4
+ 0xB8121000, // 0015 GETNGBL R4 K8
+ 0x8C100909, // 0016 GETMET R4 R4 K9
+ 0x5C180200, // 0017 MOVE R6 R1
+ 0x7C100400, // 0018 CALL R4 2
+ 0x00120E04, // 0019 ADD R4 K7 R4
+ 0x5814000A, // 001A LDCONST R5 K10
+ 0x7C080600, // 001B CALL R2 3
+ 0x88080302, // 001C GETMBR R2 R1 K2
+ 0x540E000F, // 001D LDINT R3 16
+ 0x1C080403, // 001E EQ R2 R2 R3
+ 0x780A0000, // 001F JMPF R2 #0021
+ 0x70020040, // 0020 JMP #0062
+ 0x88080302, // 0021 GETMBR R2 R1 K2
+ 0x540E001F, // 0022 LDINT R3 32
+ 0x1C080403, // 0023 EQ R2 R2 R3
+ 0x780A0004, // 0024 JMPF R2 #002A
+ 0x8C08010B, // 0025 GETMET R2 R0 K11
+ 0x5C100200, // 0026 MOVE R4 R1
+ 0x7C080400, // 0027 CALL R2 2
+ 0x80040400, // 0028 RET 1 R2
+ 0x70020037, // 0029 JMP #0062
+ 0x88080302, // 002A GETMBR R2 R1 K2
+ 0x540E0021, // 002B LDINT R3 34
+ 0x1C080403, // 002C EQ R2 R2 R3
+ 0x780A0004, // 002D JMPF R2 #0033
+ 0x8C08010C, // 002E GETMET R2 R0 K12
+ 0x5C100200, // 002F MOVE R4 R1
+ 0x7C080400, // 0030 CALL R2 2
+ 0x80040400, // 0031 RET 1 R2
+ 0x7002002E, // 0032 JMP #0062
+ 0x88080302, // 0033 GETMBR R2 R1 K2
+ 0x540E0023, // 0034 LDINT R3 36
+ 0x1C080403, // 0035 EQ R2 R2 R3
+ 0x780A0004, // 0036 JMPF R2 #003C
+ 0x8C08010D, // 0037 GETMET R2 R0 K13
+ 0x5C100200, // 0038 MOVE R4 R1
+ 0x7C080400, // 0039 CALL R2 2
+ 0x80040400, // 003A RET 1 R2
+ 0x70020025, // 003B JMP #0062
+ 0x88080302, // 003C GETMBR R2 R1 K2
+ 0x540E002F, // 003D LDINT R3 48
+ 0x1C080403, // 003E EQ R2 R2 R3
+ 0x780A0004, // 003F JMPF R2 #0045
+ 0x8C08010E, // 0040 GETMET R2 R0 K14
+ 0x5C100200, // 0041 MOVE R4 R1
+ 0x7C080400, // 0042 CALL R2 2
+ 0x80040400, // 0043 RET 1 R2
+ 0x7002001C, // 0044 JMP #0062
+ 0x88080302, // 0045 GETMBR R2 R1 K2
+ 0x540E0031, // 0046 LDINT R3 50
+ 0x1C080403, // 0047 EQ R2 R2 R3
+ 0x780A0004, // 0048 JMPF R2 #004E
+ 0x8C08010F, // 0049 GETMET R2 R0 K15
+ 0x5C100200, // 004A MOVE R4 R1
+ 0x7C080400, // 004B CALL R2 2
+ 0x80040400, // 004C RET 1 R2
+ 0x70020013, // 004D JMP #0062
+ 0x88080302, // 004E GETMBR R2 R1 K2
+ 0x540E003F, // 004F LDINT R3 64
+ 0x1C080403, // 0050 EQ R2 R2 R3
+ 0x780A0004, // 0051 JMPF R2 #0057
+ 0x8C080110, // 0052 GETMET R2 R0 K16
+ 0x5C100200, // 0053 MOVE R4 R1
+ 0x7C080400, // 0054 CALL R2 2
+ 0x80040400, // 0055 RET 1 R2
+ 0x7002000A, // 0056 JMP #0062
+ 0xA40A2200, // 0057 IMPORT R2 K17
+ 0xB80E0600, // 0058 GETNGBL R3 K3
+ 0x8C0C0704, // 0059 GETMET R3 R3 K4
+ 0x8C140512, // 005A GETMET R5 R2 K18
+ 0x581C0013, // 005B LDCONST R7 K19
+ 0x88200302, // 005C GETMBR R8 R1 K2
+ 0x7C140600, // 005D CALL R5 3
+ 0x58180006, // 005E LDCONST R6 K6
+ 0x7C0C0600, // 005F CALL R3 3
+ 0x500C0000, // 0060 LDBOOL R3 0 0
+ 0x80040600, // 0061 RET 1 R3
+ 0x50080000, // 0062 LDBOOL R2 0 0
+ 0x80040400, // 0063 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_second
+********************************************************************/
+be_local_closure(Matter_Commisioning_Context_every_second, /* name */
+ be_nested_proto(
+ 1, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(every_second),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
})
)
);
@@ -1493,6 +1423,280 @@ be_local_closure(Matter_Commisioning_Context_parse_Sigma3, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: add_session
+********************************************************************/
+be_local_closure(Matter_Commisioning_Context_add_session, /* name */
+ be_nested_proto(
+ 15, /* nstack */
+ 7, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(string),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(format),
+ /* K4 */ be_nested_str_weak(MTR_X3A_X20add_session_X20local_session_id_X3D_X25i_X20initiator_session_id_X3D_X25i),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(device),
+ /* K7 */ be_nested_str_weak(sessions),
+ /* K8 */ be_nested_str_weak(create_session),
+ /* K9 */ be_nested_str_weak(set_keys),
+ }),
+ be_str_weak(add_session),
+ &be_const_str_solidified,
+ ( &(const binstruction[23]) { /* code */
+ 0xA41E0000, // 0000 IMPORT R7 K0
+ 0xB8220200, // 0001 GETNGBL R8 K1
+ 0x8C201102, // 0002 GETMET R8 R8 K2
+ 0x8C280F03, // 0003 GETMET R10 R7 K3
+ 0x58300004, // 0004 LDCONST R12 K4
+ 0x5C340200, // 0005 MOVE R13 R1
+ 0x5C380400, // 0006 MOVE R14 R2
+ 0x7C280800, // 0007 CALL R10 4
+ 0x582C0005, // 0008 LDCONST R11 K5
+ 0x7C200600, // 0009 CALL R8 3
+ 0x88200106, // 000A GETMBR R8 R0 K6
+ 0x88201107, // 000B GETMBR R8 R8 K7
+ 0x8C201108, // 000C GETMET R8 R8 K8
+ 0x5C280200, // 000D MOVE R10 R1
+ 0x5C2C0400, // 000E MOVE R11 R2
+ 0x7C200600, // 000F CALL R8 3
+ 0x8C241109, // 0010 GETMET R9 R8 K9
+ 0x5C2C0600, // 0011 MOVE R11 R3
+ 0x5C300800, // 0012 MOVE R12 R4
+ 0x5C340A00, // 0013 MOVE R13 R5
+ 0x5C380C00, // 0014 MOVE R14 R6
+ 0x7C240A00, // 0015 CALL R9 5
+ 0x80000000, // 0016 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_Pake3
+********************************************************************/
+be_local_closure(Matter_Commisioning_Context_parse_Pake3, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[34]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(opcode),
+ /* K2 */ be_nested_str_weak(local_session_id),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(protocol_id),
+ /* K5 */ be_nested_str_weak(tasmota),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20invalid_X20Pake3_X20message),
+ /* K8 */ be_const_int(2),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
+ /* K10 */ be_nested_str_weak(send_status_report),
+ /* K11 */ be_const_int(1),
+ /* K12 */ be_nested_str_weak(matter),
+ /* K13 */ be_nested_str_weak(Pake3),
+ /* K14 */ be_nested_str_weak(parse),
+ /* K15 */ be_nested_str_weak(raw),
+ /* K16 */ be_nested_str_weak(app_payload_idx),
+ /* K17 */ be_nested_str_weak(cA),
+ /* K18 */ be_nested_str_weak(spake),
+ /* K19 */ be_nested_str_weak(MTR_X3A_X20invalid_X20cA_X20received),
+ /* K20 */ be_nested_str_weak(created),
+ /* K21 */ be_nested_str_weak(rtc),
+ /* K22 */ be_nested_str_weak(utc),
+ /* K23 */ be_nested_str_weak(HKDF_SHA256),
+ /* K24 */ be_nested_str_weak(derive),
+ /* K25 */ be_nested_str_weak(Ke),
+ /* K26 */ be_nested_str_weak(fromstring),
+ /* K27 */ be_nested_str_weak(SEKeys_Info),
+ /* K28 */ be_nested_str_weak(I2RKey),
+ /* K29 */ be_nested_str_weak(R2IKey),
+ /* K30 */ be_nested_str_weak(AttestationChallenge),
+ /* K31 */ be_nested_str_weak(add_session),
+ /* K32 */ be_nested_str_weak(future_local_session_id),
+ /* K33 */ be_nested_str_weak(future_initiator_session_id),
+ }),
+ be_str_weak(parse_Pake3),
+ &be_const_str_solidified,
+ ( &(const binstruction[112]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0x880C0301, // 0001 GETMBR R3 R1 K1
+ 0x54120023, // 0002 LDINT R4 36
+ 0x200C0604, // 0003 NE R3 R3 R4
+ 0x740E0005, // 0004 JMPT R3 #000B
+ 0x880C0302, // 0005 GETMBR R3 R1 K2
+ 0x200C0703, // 0006 NE R3 R3 K3
+ 0x740E0002, // 0007 JMPT R3 #000B
+ 0x880C0304, // 0008 GETMBR R3 R1 K4
+ 0x200C0703, // 0009 NE R3 R3 K3
+ 0x780E0012, // 000A JMPF R3 #001E
+ 0xB80E0A00, // 000B GETNGBL R3 K5
+ 0x8C0C0706, // 000C GETMET R3 R3 K6
+ 0x58140007, // 000D LDCONST R5 K7
+ 0x58180008, // 000E LDCONST R6 K8
+ 0x7C0C0600, // 000F CALL R3 3
+ 0xB80E0A00, // 0010 GETNGBL R3 K5
+ 0x8C0C0706, // 0011 GETMET R3 R3 K6
+ 0x58140009, // 0012 LDCONST R5 K9
+ 0x58180008, // 0013 LDCONST R6 K8
+ 0x7C0C0600, // 0014 CALL R3 3
+ 0x8C0C010A, // 0015 GETMET R3 R0 K10
+ 0x5C140200, // 0016 MOVE R5 R1
+ 0x5818000B, // 0017 LDCONST R6 K11
+ 0x581C0003, // 0018 LDCONST R7 K3
+ 0x58200008, // 0019 LDCONST R8 K8
+ 0x50240000, // 001A LDBOOL R9 0 0
+ 0x7C0C0C00, // 001B CALL R3 6
+ 0x50100000, // 001C LDBOOL R4 0 0
+ 0x80040800, // 001D RET 1 R4
+ 0xB80E1800, // 001E GETNGBL R3 K12
+ 0x8C0C070D, // 001F GETMET R3 R3 K13
+ 0x7C0C0200, // 0020 CALL R3 1
+ 0x8C0C070E, // 0021 GETMET R3 R3 K14
+ 0x8814030F, // 0022 GETMBR R5 R1 K15
+ 0x88180310, // 0023 GETMBR R6 R1 K16
+ 0x7C0C0600, // 0024 CALL R3 3
+ 0x88100711, // 0025 GETMBR R4 R3 K17
+ 0x90022204, // 0026 SETMBR R0 K17 R4
+ 0x88100111, // 0027 GETMBR R4 R0 K17
+ 0x88140112, // 0028 GETMBR R5 R0 K18
+ 0x88140B11, // 0029 GETMBR R5 R5 K17
+ 0x20100805, // 002A NE R4 R4 R5
+ 0x78120012, // 002B JMPF R4 #003F
+ 0xB8120A00, // 002C GETNGBL R4 K5
+ 0x8C100906, // 002D GETMET R4 R4 K6
+ 0x58180013, // 002E LDCONST R6 K19
+ 0x581C0008, // 002F LDCONST R7 K8
+ 0x7C100600, // 0030 CALL R4 3
+ 0xB8120A00, // 0031 GETNGBL R4 K5
+ 0x8C100906, // 0032 GETMET R4 R4 K6
+ 0x58180009, // 0033 LDCONST R6 K9
+ 0x581C0008, // 0034 LDCONST R7 K8
+ 0x7C100600, // 0035 CALL R4 3
+ 0x8C10010A, // 0036 GETMET R4 R0 K10
+ 0x5C180200, // 0037 MOVE R6 R1
+ 0x581C000B, // 0038 LDCONST R7 K11
+ 0x58200003, // 0039 LDCONST R8 K3
+ 0x58240008, // 003A LDCONST R9 K8
+ 0x50280000, // 003B LDBOOL R10 0 0
+ 0x7C100C00, // 003C CALL R4 6
+ 0x50140000, // 003D LDBOOL R5 0 0
+ 0x80040A00, // 003E RET 1 R5
+ 0xB8120A00, // 003F GETNGBL R4 K5
+ 0x8C100915, // 0040 GETMET R4 R4 K21
+ 0x7C100200, // 0041 CALL R4 1
+ 0x94100916, // 0042 GETIDX R4 R4 K22
+ 0x90022804, // 0043 SETMBR R0 K20 R4
+ 0x8C100517, // 0044 GETMET R4 R2 K23
+ 0x7C100200, // 0045 CALL R4 1
+ 0x8C100918, // 0046 GETMET R4 R4 K24
+ 0x88180119, // 0047 GETMBR R6 R0 K25
+ 0x601C0015, // 0048 GETGBL R7 G21
+ 0x7C1C0000, // 0049 CALL R7 0
+ 0x60200015, // 004A GETGBL R8 G21
+ 0x7C200000, // 004B CALL R8 0
+ 0x8C20111A, // 004C GETMET R8 R8 K26
+ 0x8828011B, // 004D GETMBR R10 R0 K27
+ 0x7C200400, // 004E CALL R8 2
+ 0x5426002F, // 004F LDINT R9 48
+ 0x7C100A00, // 0050 CALL R4 5
+ 0x5416000E, // 0051 LDINT R5 15
+ 0x40160605, // 0052 CONNECT R5 K3 R5
+ 0x94140805, // 0053 GETIDX R5 R4 R5
+ 0x90023805, // 0054 SETMBR R0 K28 R5
+ 0x5416000F, // 0055 LDINT R5 16
+ 0x541A001E, // 0056 LDINT R6 31
+ 0x40140A06, // 0057 CONNECT R5 R5 R6
+ 0x94140805, // 0058 GETIDX R5 R4 R5
+ 0x90023A05, // 0059 SETMBR R0 K29 R5
+ 0x5416001F, // 005A LDINT R5 32
+ 0x541A002E, // 005B LDINT R6 47
+ 0x40140A06, // 005C CONNECT R5 R5 R6
+ 0x94140805, // 005D GETIDX R5 R4 R5
+ 0x90023C05, // 005E SETMBR R0 K30 R5
+ 0x8C14010A, // 005F GETMET R5 R0 K10
+ 0x5C1C0200, // 0060 MOVE R7 R1
+ 0x58200003, // 0061 LDCONST R8 K3
+ 0x58240003, // 0062 LDCONST R9 K3
+ 0x58280003, // 0063 LDCONST R10 K3
+ 0x502C0000, // 0064 LDBOOL R11 0 0
+ 0x7C140C00, // 0065 CALL R5 6
+ 0x8C18011F, // 0066 GETMET R6 R0 K31
+ 0x88200120, // 0067 GETMBR R8 R0 K32
+ 0x88240121, // 0068 GETMBR R9 R0 K33
+ 0x8828011C, // 0069 GETMBR R10 R0 K28
+ 0x882C011D, // 006A GETMBR R11 R0 K29
+ 0x8830011E, // 006B GETMBR R12 R0 K30
+ 0x88340114, // 006C GETMBR R13 R0 K20
+ 0x7C180E00, // 006D CALL R6 7
+ 0x50180200, // 006E LDBOOL R6 1 0
+ 0x80040C00, // 006F RET 1 R6
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_StatusReport
+********************************************************************/
+be_local_closure(Matter_Commisioning_Context_parse_StatusReport, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(session),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20),
+ /* K4 */ be_nested_str_weak(raw),
+ /* K5 */ be_nested_str_weak(app_payload_idx),
+ /* K6 */ be_const_int(2147483647),
+ /* K7 */ be_nested_str_weak(tohex),
+ /* K8 */ be_const_int(2),
+ }),
+ be_str_weak(parse_StatusReport),
+ &be_const_str_solidified,
+ ( &(const binstruction[14]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0xB80E0200, // 0001 GETNGBL R3 K1
+ 0x8C0C0702, // 0002 GETMET R3 R3 K2
+ 0x88140305, // 0003 GETMBR R5 R1 K5
+ 0x40140B06, // 0004 CONNECT R5 R5 K6
+ 0x88180304, // 0005 GETMBR R6 R1 K4
+ 0x94140C05, // 0006 GETIDX R5 R6 R5
+ 0x8C140B07, // 0007 GETMET R5 R5 K7
+ 0x7C140200, // 0008 CALL R5 1
+ 0x00160605, // 0009 ADD R5 K3 R5
+ 0x58180008, // 000A LDCONST R6 K8
+ 0x7C0C0600, // 000B CALL R3 3
+ 0x500C0000, // 000C LDBOOL R3 0 0
+ 0x80040600, // 000D RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: parse_Sigma1
********************************************************************/
@@ -2469,391 +2673,68 @@ be_local_closure(Matter_Commisioning_Context_parse_Sigma1, /* name */
/********************************************************************
-** Solidified function: parse_StatusReport
+** Solidified function: send_status_report
********************************************************************/
-be_local_closure(Matter_Commisioning_Context_parse_StatusReport, /* name */
+be_local_closure(Matter_Commisioning_Context_send_status_report, /* name */
be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
+ 16, /* nstack */
+ 6, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20),
- /* K4 */ be_nested_str_weak(raw),
- /* K5 */ be_nested_str_weak(app_payload_idx),
- /* K6 */ be_const_int(2147483647),
- /* K7 */ be_nested_str_weak(tohex),
- /* K8 */ be_const_int(2),
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(build_response),
+ /* K1 */ be_nested_str_weak(add),
+ /* K2 */ be_const_int(2),
+ /* K3 */ be_nested_str_weak(encode_frame),
+ /* K4 */ be_nested_str_weak(responder),
+ /* K5 */ be_nested_str_weak(send_response),
+ /* K6 */ be_nested_str_weak(remote_ip),
+ /* K7 */ be_nested_str_weak(remote_port),
+ /* K8 */ be_nested_str_weak(message_counter),
+ /* K9 */ be_nested_str_weak(session),
+ /* K10 */ be_nested_str_weak(local_session_id),
}),
- be_str_weak(parse_StatusReport),
+ be_str_weak(send_status_report),
&be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x88080300, // 0000 GETMBR R2 R1 K0
- 0xB80E0200, // 0001 GETNGBL R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x88140305, // 0003 GETMBR R5 R1 K5
- 0x40140B06, // 0004 CONNECT R5 R5 K6
- 0x88180304, // 0005 GETMBR R6 R1 K4
- 0x94140C05, // 0006 GETIDX R5 R6 R5
- 0x8C140B07, // 0007 GETMET R5 R5 K7
- 0x7C140200, // 0008 CALL R5 1
- 0x00160605, // 0009 ADD R5 K3 R5
- 0x58180008, // 000A LDCONST R6 K8
- 0x7C0C0600, // 000B CALL R3 3
- 0x500C0000, // 000C LDBOOL R3 0 0
- 0x80040600, // 000D RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: find_fabric_by_destination_id
-********************************************************************/
-be_local_closure(Matter_Commisioning_Context_find_fabric_by_destination_id, /* name */
- be_nested_proto(
- 14, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[21]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20SEARCHING_X3A_X20destinationId_X3D),
- /* K4 */ be_nested_str_weak(tohex),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(device),
- /* K7 */ be_nested_str_weak(sessions),
- /* K8 */ be_nested_str_weak(fabrics),
- /* K9 */ be_nested_str_weak(noc),
- /* K10 */ be_nested_str_weak(fabric_id),
- /* K11 */ be_nested_str_weak(device_id),
- /* K12 */ be_nested_str_weak(get_ca_pub),
- /* K13 */ be_nested_str_weak(get_ipk_group_key),
- /* K14 */ be_nested_str_weak(MTR_X3A_X20SIGMA1_X3A_X20destinationMessage_X3D),
- /* K15 */ be_nested_str_weak(MTR_X3A_X20SIGMA1_X3A_X20key_ipk_X3D),
- /* K16 */ be_nested_str_weak(HMAC_SHA256),
- /* K17 */ be_nested_str_weak(update),
- /* K18 */ be_nested_str_weak(out),
- /* K19 */ be_nested_str_weak(MTR_X3A_X20SIGMA1_X3A_X20candidateDestinationId_X3D),
- /* K20 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(find_fabric_by_destination_id),
- &be_const_str_solidified,
- ( &(const binstruction[77]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0xB8120200, // 0001 GETNGBL R4 K1
- 0x8C100902, // 0002 GETMET R4 R4 K2
- 0x8C180304, // 0003 GETMET R6 R1 K4
- 0x7C180200, // 0004 CALL R6 1
- 0x001A0606, // 0005 ADD R6 K3 R6
- 0x581C0005, // 0006 LDCONST R7 K5
- 0x7C100600, // 0007 CALL R4 3
- 0x60100010, // 0008 GETGBL R4 G16
- 0x88140106, // 0009 GETMBR R5 R0 K6
- 0x88140B07, // 000A GETMBR R5 R5 K7
- 0x88140B08, // 000B GETMBR R5 R5 K8
- 0x7C100200, // 000C CALL R4 1
- 0xA8020039, // 000D EXBLK 0 #0048
- 0x5C140800, // 000E MOVE R5 R4
- 0x7C140000, // 000F CALL R5 0
- 0x88180B09, // 0010 GETMBR R6 R5 K9
- 0x4C1C0000, // 0011 LDNIL R7
- 0x1C180C07, // 0012 EQ R6 R6 R7
- 0x741A0007, // 0013 JMPT R6 #001C
- 0x88180B0A, // 0014 GETMBR R6 R5 K10
- 0x4C1C0000, // 0015 LDNIL R7
- 0x1C180C07, // 0016 EQ R6 R6 R7
- 0x741A0003, // 0017 JMPT R6 #001C
- 0x88180B0B, // 0018 GETMBR R6 R5 K11
- 0x4C1C0000, // 0019 LDNIL R7
- 0x1C180C07, // 001A EQ R6 R6 R7
- 0x781A0000, // 001B JMPF R6 #001D
- 0x7001FFF0, // 001C JMP #000E
- 0x8C180B0C, // 001D GETMET R6 R5 K12
- 0x7C180200, // 001E CALL R6 1
- 0x00180406, // 001F ADD R6 R2 R6
- 0x881C0B0A, // 0020 GETMBR R7 R5 K10
- 0x00180C07, // 0021 ADD R6 R6 R7
- 0x881C0B0B, // 0022 GETMBR R7 R5 K11
- 0x00180C07, // 0023 ADD R6 R6 R7
- 0x8C1C0B0D, // 0024 GETMET R7 R5 K13
- 0x7C1C0200, // 0025 CALL R7 1
- 0xB8220200, // 0026 GETNGBL R8 K1
- 0x8C201102, // 0027 GETMET R8 R8 K2
- 0x8C280D04, // 0028 GETMET R10 R6 K4
- 0x7C280200, // 0029 CALL R10 1
- 0x002A1C0A, // 002A ADD R10 K14 R10
- 0x582C0005, // 002B LDCONST R11 K5
- 0x7C200600, // 002C CALL R8 3
- 0xB8220200, // 002D GETNGBL R8 K1
- 0x8C201102, // 002E GETMET R8 R8 K2
- 0x8C280F04, // 002F GETMET R10 R7 K4
- 0x7C280200, // 0030 CALL R10 1
- 0x002A1E0A, // 0031 ADD R10 K15 R10
- 0x542E0003, // 0032 LDINT R11 4
- 0x7C200600, // 0033 CALL R8 3
- 0x8C200710, // 0034 GETMET R8 R3 K16
- 0x5C280E00, // 0035 MOVE R10 R7
- 0x7C200400, // 0036 CALL R8 2
- 0x8C241111, // 0037 GETMET R9 R8 K17
- 0x5C2C0C00, // 0038 MOVE R11 R6
- 0x7C240400, // 0039 CALL R9 2
- 0x8C241112, // 003A GETMET R9 R8 K18
- 0x7C240200, // 003B CALL R9 1
- 0xB82A0200, // 003C GETNGBL R10 K1
- 0x8C281502, // 003D GETMET R10 R10 K2
- 0x8C301304, // 003E GETMET R12 R9 K4
- 0x7C300200, // 003F CALL R12 1
- 0x0032260C, // 0040 ADD R12 K19 R12
- 0x58340005, // 0041 LDCONST R13 K5
- 0x7C280600, // 0042 CALL R10 3
- 0x1C281201, // 0043 EQ R10 R9 R1
- 0x782A0001, // 0044 JMPF R10 #0047
- 0xA8040001, // 0045 EXBLK 1 1
- 0x80040A00, // 0046 RET 1 R5
- 0x7001FFC5, // 0047 JMP #000E
- 0x58100014, // 0048 LDCONST R4 K20
- 0xAC100200, // 0049 CATCH R4 1 0
- 0xB0080000, // 004A RAISE 2 R0 R0
- 0x4C100000, // 004B LDNIL R4
- 0x80040800, // 004C RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_second
-********************************************************************/
-be_local_closure(Matter_Commisioning_Context_every_second, /* name */
- be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(every_second),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: add_session
-********************************************************************/
-be_local_closure(Matter_Commisioning_Context_add_session, /* name */
- be_nested_proto(
- 15, /* nstack */
- 7, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(string),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(format),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20add_session_X20local_session_id_X3D_X25i_X20initiator_session_id_X3D_X25i),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(device),
- /* K7 */ be_nested_str_weak(sessions),
- /* K8 */ be_nested_str_weak(create_session),
- /* K9 */ be_nested_str_weak(set_keys),
- }),
- be_str_weak(add_session),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0xA41E0000, // 0000 IMPORT R7 K0
- 0xB8220200, // 0001 GETNGBL R8 K1
- 0x8C201102, // 0002 GETMET R8 R8 K2
- 0x8C280F03, // 0003 GETMET R10 R7 K3
- 0x58300004, // 0004 LDCONST R12 K4
- 0x5C340200, // 0005 MOVE R13 R1
- 0x5C380400, // 0006 MOVE R14 R2
- 0x7C280800, // 0007 CALL R10 4
- 0x582C0005, // 0008 LDCONST R11 K5
+ ( &(const binstruction[34]) { /* code */
+ 0x8C180300, // 0000 GETMET R6 R1 K0
+ 0x5422003F, // 0001 LDINT R8 64
+ 0x5C240A00, // 0002 MOVE R9 R5
+ 0x7C180600, // 0003 CALL R6 3
+ 0x601C0015, // 0004 GETGBL R7 G21
+ 0x7C1C0000, // 0005 CALL R7 0
+ 0x8C200F01, // 0006 GETMET R8 R7 K1
+ 0x5C280400, // 0007 MOVE R10 R2
+ 0x582C0002, // 0008 LDCONST R11 K2
0x7C200600, // 0009 CALL R8 3
- 0x88200106, // 000A GETMBR R8 R0 K6
- 0x88201107, // 000B GETMBR R8 R8 K7
- 0x8C201108, // 000C GETMET R8 R8 K8
- 0x5C280200, // 000D MOVE R10 R1
- 0x5C2C0400, // 000E MOVE R11 R2
- 0x7C200600, // 000F CALL R8 3
- 0x8C241109, // 0010 GETMET R9 R8 K9
- 0x5C2C0600, // 0011 MOVE R11 R3
- 0x5C300800, // 0012 MOVE R12 R4
- 0x5C340A00, // 0013 MOVE R13 R5
- 0x5C380C00, // 0014 MOVE R14 R6
- 0x7C240A00, // 0015 CALL R9 5
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Matter_Commisioning_Context_init, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(responder),
- /* K2 */ be_nested_str_weak(device),
- /* K3 */ be_nested_str_weak(y),
- /* K4 */ be_nested_str_weak(random),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0x90020201, // 0001 SETMBR R0 K1 R1
- 0x880C0302, // 0002 GETMBR R3 R1 K2
- 0x90020403, // 0003 SETMBR R0 K2 R3
- 0x8C0C0504, // 0004 GETMET R3 R2 K4
- 0x5416001F, // 0005 LDINT R5 32
- 0x7C0C0400, // 0006 CALL R3 2
- 0x90020603, // 0007 SETMBR R0 K3 R3
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_MsgCounterSyncRsp
-********************************************************************/
-be_local_closure(Matter_Commisioning_Context_parse_MsgCounterSyncRsp, /* name */
- be_nested_proto(
- 11, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(string),
- /* K1 */ be_nested_str_weak(session),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(format),
- /* K5 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X20MsgCounterSyncRsp_X20not_X20implemented_X20_X25s),
- /* K6 */ be_nested_str_weak(raw),
- /* K7 */ be_nested_str_weak(app_payload_idx),
- /* K8 */ be_const_int(2147483647),
- /* K9 */ be_nested_str_weak(tohex),
- /* K10 */ be_const_int(2),
- }),
- be_str_weak(parse_MsgCounterSyncRsp),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0x880C0301, // 0001 GETMBR R3 R1 K1
- 0xB8120400, // 0002 GETNGBL R4 K2
- 0x8C100903, // 0003 GETMET R4 R4 K3
- 0x8C180504, // 0004 GETMET R6 R2 K4
- 0x58200005, // 0005 LDCONST R8 K5
- 0x88240307, // 0006 GETMBR R9 R1 K7
- 0x40241308, // 0007 CONNECT R9 R9 K8
- 0x88280306, // 0008 GETMBR R10 R1 K6
- 0x94241409, // 0009 GETIDX R9 R10 R9
- 0x8C241309, // 000A GETMET R9 R9 K9
- 0x7C240200, // 000B CALL R9 1
- 0x7C180600, // 000C CALL R6 3
- 0x581C000A, // 000D LDCONST R7 K10
- 0x7C100600, // 000E CALL R4 3
- 0x50100000, // 000F LDBOOL R4 0 0
- 0x80040800, // 0010 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_MsgCounterSyncReq
-********************************************************************/
-be_local_closure(Matter_Commisioning_Context_parse_MsgCounterSyncReq, /* name */
- be_nested_proto(
- 11, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(string),
- /* K1 */ be_nested_str_weak(session),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(format),
- /* K5 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X20MsgCounterSyncReq_X20not_X20implemented_X20_X25s),
- /* K6 */ be_nested_str_weak(raw),
- /* K7 */ be_nested_str_weak(app_payload_idx),
- /* K8 */ be_const_int(2147483647),
- /* K9 */ be_nested_str_weak(tohex),
- /* K10 */ be_const_int(2),
- }),
- be_str_weak(parse_MsgCounterSyncReq),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0x880C0301, // 0001 GETMBR R3 R1 K1
- 0xB8120400, // 0002 GETNGBL R4 K2
- 0x8C100903, // 0003 GETMET R4 R4 K3
- 0x8C180504, // 0004 GETMET R6 R2 K4
- 0x58200005, // 0005 LDCONST R8 K5
- 0x88240307, // 0006 GETMBR R9 R1 K7
- 0x40241308, // 0007 CONNECT R9 R9 K8
- 0x88280306, // 0008 GETMBR R10 R1 K6
- 0x94241409, // 0009 GETIDX R9 R10 R9
- 0x8C241309, // 000A GETMET R9 R9 K9
- 0x7C240200, // 000B CALL R9 1
- 0x7C180600, // 000C CALL R6 3
- 0x581C000A, // 000D LDCONST R7 K10
- 0x7C100600, // 000E CALL R4 3
- 0x50100000, // 000F LDBOOL R4 0 0
- 0x80040800, // 0010 RET 1 R4
+ 0x8C200F01, // 000A GETMET R8 R7 K1
+ 0x5C280600, // 000B MOVE R10 R3
+ 0x542E0003, // 000C LDINT R11 4
+ 0x7C200600, // 000D CALL R8 3
+ 0x8C200F01, // 000E GETMET R8 R7 K1
+ 0x5C280800, // 000F MOVE R10 R4
+ 0x542E0003, // 0010 LDINT R11 4
+ 0x7C200600, // 0011 CALL R8 3
+ 0x8C200D03, // 0012 GETMET R8 R6 K3
+ 0x5C280E00, // 0013 MOVE R10 R7
+ 0x7C200400, // 0014 CALL R8 2
+ 0x88240104, // 0015 GETMBR R9 R0 K4
+ 0x8C241305, // 0016 GETMET R9 R9 K5
+ 0x5C2C1000, // 0017 MOVE R11 R8
+ 0x88300306, // 0018 GETMBR R12 R1 K6
+ 0x88340307, // 0019 GETMBR R13 R1 K7
+ 0x78160001, // 001A JMPF R5 #001D
+ 0x88380D08, // 001B GETMBR R14 R6 K8
+ 0x70020000, // 001C JMP #001E
+ 0x4C380000, // 001D LDNIL R14
+ 0x883C0309, // 001E GETMBR R15 R1 K9
+ 0x883C1F0A, // 001F GETMBR R15 R15 K10
+ 0x7C240C00, // 0020 CALL R9 6
+ 0x80000000, // 0021 RET 0
})
)
);
@@ -2866,48 +2747,46 @@ be_local_closure(Matter_Commisioning_Context_parse_MsgCounterSyncReq, /* name
be_local_class(Matter_Commisioning_Context,
20,
NULL,
- be_nested_map(40,
+ be_nested_map(38,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(cB, 30), be_const_var(11) },
- { be_const_key_weak(parse_MsgCounterSyncReq, 26), be_const_closure(Matter_Commisioning_Context_parse_MsgCounterSyncReq_closure) },
- { be_const_key_weak(pA, 24), be_const_var(8) },
- { be_const_key_weak(R2IKey, -1), be_const_var(18) },
- { be_const_key_weak(ResponderEph_pub, -1), be_const_var(14) },
- { be_const_key_weak(spake, 20), be_const_var(2) },
- { be_const_key_weak(SEKeys_Info, -1), be_nested_str_weak(SessionKeys) },
- { be_const_key_weak(process_incoming, 16), be_const_closure(Matter_Commisioning_Context_process_incoming_closure) },
- { be_const_key_weak(parse_PBKDFParamRequest, 29), be_const_closure(Matter_Commisioning_Context_parse_PBKDFParamRequest_closure) },
{ be_const_key_weak(send_status_report, -1), be_const_closure(Matter_Commisioning_Context_send_status_report_closure) },
- { be_const_key_weak(future_initiator_session_id, -1), be_const_var(3) },
- { be_const_key_weak(device, -1), be_const_var(1) },
- { be_const_key_weak(initiatorEph_pub, -1), be_const_var(15) },
- { be_const_key_weak(parse_Pake1, 34), be_const_closure(Matter_Commisioning_Context_parse_Pake1_closure) },
- { be_const_key_weak(parse_Sigma3, -1), be_const_closure(Matter_Commisioning_Context_parse_Sigma3_closure) },
- { be_const_key_weak(parse_Pake3, -1), be_const_closure(Matter_Commisioning_Context_parse_Pake3_closure) },
- { be_const_key_weak(I2RKey, -1), be_const_var(17) },
- { be_const_key_weak(cA, 14), be_const_var(10) },
- { be_const_key_weak(parse_Sigma1, -1), be_const_closure(Matter_Commisioning_Context_parse_Sigma1_closure) },
- { be_const_key_weak(created, 18), be_const_var(16) },
- { be_const_key_weak(Matter_Context_Prefix, -1), be_nested_str_weak(CHIP_X20PAKE_X20V1_X20Commissioning) },
- { be_const_key_weak(parse_StatusReport, -1), be_const_closure(Matter_Commisioning_Context_parse_StatusReport_closure) },
+ { be_const_key_weak(cB, -1), be_const_var(11) },
+ { be_const_key_weak(TBEData3_Nonce, 37), be_nested_str_weak(NCASE_Sigma3N) },
{ be_const_key_weak(find_fabric_by_destination_id, -1), be_const_closure(Matter_Commisioning_Context_find_fabric_by_destination_id_closure) },
- { be_const_key_weak(pB, 22), be_const_var(9) },
- { be_const_key_weak(AttestationChallenge, 39), be_const_var(19) },
- { be_const_key_weak(every_second, -1), be_const_closure(Matter_Commisioning_Context_every_second_closure) },
- { be_const_key_weak(add_session, -1), be_const_closure(Matter_Commisioning_Context_add_session_closure) },
- { be_const_key_weak(TBEData3_Nonce, 1), be_nested_str_weak(NCASE_Sigma3N) },
- { be_const_key_weak(PBKDFParamRequest, -1), be_const_var(5) },
- { be_const_key_weak(ResponderEph_priv, -1), be_const_var(13) },
- { be_const_key_weak(PBKDFParamResponse, 4), be_const_var(6) },
- { be_const_key_weak(future_local_session_id, -1), be_const_var(4) },
- { be_const_key_weak(TBEData2_Nonce, -1), be_nested_str_weak(NCASE_Sigma2N) },
+ { be_const_key_weak(parse_Sigma1, 3), be_const_closure(Matter_Commisioning_Context_parse_Sigma1_closure) },
{ be_const_key_weak(responder, -1), be_const_var(0) },
- { be_const_key_weak(Ke, 12), be_const_var(12) },
+ { be_const_key_weak(parse_PBKDFParamRequest, -1), be_const_closure(Matter_Commisioning_Context_parse_PBKDFParamRequest_closure) },
+ { be_const_key_weak(parse_Pake1, -1), be_const_closure(Matter_Commisioning_Context_parse_Pake1_closure) },
+ { be_const_key_weak(process_incoming, -1), be_const_closure(Matter_Commisioning_Context_process_incoming_closure) },
+ { be_const_key_weak(future_initiator_session_id, 2), be_const_var(3) },
+ { be_const_key_weak(cA, -1), be_const_var(10) },
+ { be_const_key_weak(parse_Sigma3, -1), be_const_closure(Matter_Commisioning_Context_parse_Sigma3_closure) },
+ { be_const_key_weak(ResponderEph_priv, -1), be_const_var(13) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_Commisioning_Context_init_closure) },
- { be_const_key_weak(y, -1), be_const_var(7) },
- { be_const_key_weak(S3K_Info, 10), be_nested_str_weak(Sigma3) },
- { be_const_key_weak(parse_MsgCounterSyncRsp, -1), be_const_closure(Matter_Commisioning_Context_parse_MsgCounterSyncRsp_closure) },
+ { be_const_key_weak(parse_StatusReport, -1), be_const_closure(Matter_Commisioning_Context_parse_StatusReport_closure) },
+ { be_const_key_weak(device, 8), be_const_var(1) },
+ { be_const_key_weak(PBKDFParamResponse, -1), be_const_var(6) },
+ { be_const_key_weak(future_local_session_id, 18), be_const_var(4) },
+ { be_const_key_weak(pB, 11), be_const_var(9) },
+ { be_const_key_weak(add_session, -1), be_const_closure(Matter_Commisioning_Context_add_session_closure) },
+ { be_const_key_weak(Ke, -1), be_const_var(12) },
+ { be_const_key_weak(SEKeys_Info, -1), be_nested_str_weak(SessionKeys) },
{ be_const_key_weak(S2K_Info, -1), be_nested_str_weak(Sigma2) },
+ { be_const_key_weak(created, 26), be_const_var(16) },
+ { be_const_key_weak(AttestationChallenge, 21), be_const_var(19) },
+ { be_const_key_weak(R2IKey, 20), be_const_var(18) },
+ { be_const_key_weak(parse_Pake3, -1), be_const_closure(Matter_Commisioning_Context_parse_Pake3_closure) },
+ { be_const_key_weak(S3K_Info, -1), be_nested_str_weak(Sigma3) },
+ { be_const_key_weak(pA, 16), be_const_var(8) },
+ { be_const_key_weak(Matter_Context_Prefix, 14), be_nested_str_weak(CHIP_X20PAKE_X20V1_X20Commissioning) },
+ { be_const_key_weak(PBKDFParamRequest, -1), be_const_var(5) },
+ { be_const_key_weak(every_second, 10), be_const_closure(Matter_Commisioning_Context_every_second_closure) },
+ { be_const_key_weak(TBEData2_Nonce, -1), be_nested_str_weak(NCASE_Sigma2N) },
+ { be_const_key_weak(initiatorEph_pub, 4), be_const_var(15) },
+ { be_const_key_weak(y, -1), be_const_var(7) },
+ { be_const_key_weak(spake, 0), be_const_var(2) },
+ { be_const_key_weak(ResponderEph_pub, 1), be_const_var(14) },
+ { be_const_key_weak(I2RKey, -1), be_const_var(17) },
})),
be_str_weak(Matter_Commisioning_Context)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Control_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Control_Message.h
new file mode 100644
index 000000000..967c09a27
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Control_Message.h
@@ -0,0 +1,246 @@
+/* Solidification of Matter_Control_Message.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Control_Message;
+
+/********************************************************************
+** Solidified function: parse_MsgCounterSyncRsp
+********************************************************************/
+be_local_closure(Matter_Control_Message_parse_MsgCounterSyncRsp, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(string),
+ /* K1 */ be_nested_str_weak(session),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(log),
+ /* K4 */ be_nested_str_weak(format),
+ /* K5 */ be_nested_str_weak(MTR_X3A_X20_X3EMCSyncRsp_X20_X2A_X20Not_X20implemented_X20_X25s),
+ /* K6 */ be_nested_str_weak(raw),
+ /* K7 */ be_nested_str_weak(app_payload_idx),
+ /* K8 */ be_const_int(2147483647),
+ /* K9 */ be_nested_str_weak(tohex),
+ /* K10 */ be_const_int(2),
+ }),
+ be_str_weak(parse_MsgCounterSyncRsp),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0x880C0301, // 0001 GETMBR R3 R1 K1
+ 0xB8120400, // 0002 GETNGBL R4 K2
+ 0x8C100903, // 0003 GETMET R4 R4 K3
+ 0x8C180504, // 0004 GETMET R6 R2 K4
+ 0x58200005, // 0005 LDCONST R8 K5
+ 0x88240307, // 0006 GETMBR R9 R1 K7
+ 0x40241308, // 0007 CONNECT R9 R9 K8
+ 0x88280306, // 0008 GETMBR R10 R1 K6
+ 0x94241409, // 0009 GETIDX R9 R10 R9
+ 0x8C241309, // 000A GETMET R9 R9 K9
+ 0x7C240200, // 000B CALL R9 1
+ 0x7C180600, // 000C CALL R6 3
+ 0x581C000A, // 000D LDCONST R7 K10
+ 0x7C100600, // 000E CALL R4 3
+ 0x50100000, // 000F LDBOOL R4 0 0
+ 0x80040800, // 0010 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_MsgCounterSyncReq
+********************************************************************/
+be_local_closure(Matter_Control_Message_parse_MsgCounterSyncReq, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(string),
+ /* K1 */ be_nested_str_weak(session),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(log),
+ /* K4 */ be_nested_str_weak(format),
+ /* K5 */ be_nested_str_weak(MTR_X3A_X20_X3EMCSyncReq_X20_X2A_X20Not_X20implemented_X20_X25s),
+ /* K6 */ be_nested_str_weak(raw),
+ /* K7 */ be_nested_str_weak(app_payload_idx),
+ /* K8 */ be_const_int(2147483647),
+ /* K9 */ be_nested_str_weak(tohex),
+ /* K10 */ be_const_int(2),
+ }),
+ be_str_weak(parse_MsgCounterSyncReq),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0x880C0301, // 0001 GETMBR R3 R1 K1
+ 0xB8120400, // 0002 GETNGBL R4 K2
+ 0x8C100903, // 0003 GETMET R4 R4 K3
+ 0x8C180504, // 0004 GETMET R6 R2 K4
+ 0x58200005, // 0005 LDCONST R8 K5
+ 0x88240307, // 0006 GETMBR R9 R1 K7
+ 0x40241308, // 0007 CONNECT R9 R9 K8
+ 0x88280306, // 0008 GETMBR R10 R1 K6
+ 0x94241409, // 0009 GETIDX R9 R10 R9
+ 0x8C241309, // 000A GETMET R9 R9 K9
+ 0x7C240200, // 000B CALL R9 1
+ 0x7C180600, // 000C CALL R6 3
+ 0x581C000A, // 000D LDCONST R7 K10
+ 0x7C100600, // 000E CALL R4 3
+ 0x50100000, // 000F LDBOOL R4 0 0
+ 0x80040800, // 0010 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(Matter_Control_Message_init, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(responder),
+ /* K2 */ be_nested_str_weak(device),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0x90020201, // 0001 SETMBR R0 K1 R1
+ 0x880C0302, // 0002 GETMBR R3 R1 K2
+ 0x90020403, // 0003 SETMBR R0 K2 R3
+ 0x80000000, // 0004 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: process_incoming_control_message
+********************************************************************/
+be_local_closure(Matter_Control_Message_process_incoming_control_message, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[14]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20received_X20control_X20message_X20),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(inspect),
+ /* K5 */ be_const_int(2),
+ /* K6 */ be_nested_str_weak(opcode),
+ /* K7 */ be_const_int(0),
+ /* K8 */ be_nested_str_weak(parse_MsgCounterSyncReq),
+ /* K9 */ be_const_int(1),
+ /* K10 */ be_nested_str_weak(parse_MsgCounterSyncRsp),
+ /* K11 */ be_nested_str_weak(string),
+ /* K12 */ be_nested_str_weak(format),
+ /* K13 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X20Unknown_X20OpCode_X20_X28control_X20message_X29_X20_X2502X),
+ }),
+ be_str_weak(process_incoming_control_message),
+ &be_const_str_solidified,
+ ( &(const binstruction[38]) { /* code */
+ 0xB80A0000, // 0000 GETNGBL R2 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0xB8120600, // 0002 GETNGBL R4 K3
+ 0x8C100904, // 0003 GETMET R4 R4 K4
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x7C100400, // 0005 CALL R4 2
+ 0x00120404, // 0006 ADD R4 K2 R4
+ 0x58140005, // 0007 LDCONST R5 K5
+ 0x7C080600, // 0008 CALL R2 3
+ 0x88080306, // 0009 GETMBR R2 R1 K6
+ 0x1C080507, // 000A EQ R2 R2 K7
+ 0x780A0004, // 000B JMPF R2 #0011
+ 0x8C080108, // 000C GETMET R2 R0 K8
+ 0x5C100200, // 000D MOVE R4 R1
+ 0x7C080400, // 000E CALL R2 2
+ 0x80040400, // 000F RET 1 R2
+ 0x70020012, // 0010 JMP #0024
+ 0x88080306, // 0011 GETMBR R2 R1 K6
+ 0x1C080509, // 0012 EQ R2 R2 K9
+ 0x780A0004, // 0013 JMPF R2 #0019
+ 0x8C08010A, // 0014 GETMET R2 R0 K10
+ 0x5C100200, // 0015 MOVE R4 R1
+ 0x7C080400, // 0016 CALL R2 2
+ 0x80040400, // 0017 RET 1 R2
+ 0x7002000A, // 0018 JMP #0024
+ 0xA40A1600, // 0019 IMPORT R2 K11
+ 0xB80E0000, // 001A GETNGBL R3 K0
+ 0x8C0C0701, // 001B GETMET R3 R3 K1
+ 0x8C14050C, // 001C GETMET R5 R2 K12
+ 0x581C000D, // 001D LDCONST R7 K13
+ 0x88200306, // 001E GETMBR R8 R1 K6
+ 0x7C140600, // 001F CALL R5 3
+ 0x58180005, // 0020 LDCONST R6 K5
+ 0x7C0C0600, // 0021 CALL R3 3
+ 0x500C0000, // 0022 LDBOOL R3 0 0
+ 0x80040600, // 0023 RET 1 R3
+ 0x50080000, // 0024 LDBOOL R2 0 0
+ 0x80040400, // 0025 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Control_Message
+********************************************************************/
+be_local_class(Matter_Control_Message,
+ 2,
+ NULL,
+ be_nested_map(6,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(parse_MsgCounterSyncRsp, -1), be_const_closure(Matter_Control_Message_parse_MsgCounterSyncRsp_closure) },
+ { be_const_key_weak(responder, 2), be_const_var(0) },
+ { be_const_key_weak(parse_MsgCounterSyncReq, -1), be_const_closure(Matter_Control_Message_parse_MsgCounterSyncReq_closure) },
+ { be_const_key_weak(init, 4), be_const_closure(Matter_Control_Message_init_closure) },
+ { be_const_key_weak(device, -1), be_const_var(1) },
+ { be_const_key_weak(process_incoming_control_message, -1), be_const_closure(Matter_Control_Message_process_incoming_control_message_closure) },
+ })),
+ be_str_weak(Matter_Control_Message)
+);
+/*******************************************************************/
+
+void be_load_Matter_Control_Message_class(bvm *vm) {
+ be_pushntvclass(vm, &be_class_Matter_Control_Message);
+ be_setglobal(vm, "Matter_Control_Message");
+ be_pop(vm, 1);
+}
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
index 96b829de9..615fccd4d 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
@@ -2058,7 +2058,7 @@ be_local_closure(Matter_IM_send_subscribe_update, /* name */
********************************************************************/
be_local_closure(Matter_IM_send_ack_now, /* name */
be_nested_proto(
- 14, /* nstack */
+ 6, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2066,67 +2066,21 @@ be_local_closure(Matter_IM_send_ack_now, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[19]) { /* constants */
- /* K0 */ be_nested_str_weak(x_flag_r),
- /* K1 */ be_nested_str_weak(build_standalone_ack),
- /* K2 */ be_nested_str_weak(encode_frame),
- /* K3 */ be_nested_str_weak(encrypt),
- /* K4 */ be_nested_str_weak(string),
- /* K5 */ be_nested_str_weak(tasmota),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(format),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_now_X20_X20_X20_X28_X256i_X29_X20rack_X3D_X25i_X20id_X3D_X25i_X20_X5B_X25s_X5D_X3A_X25i),
- /* K9 */ be_nested_str_weak(session),
- /* K10 */ be_nested_str_weak(local_session_id),
- /* K11 */ be_nested_str_weak(ack_message_counter),
- /* K12 */ be_nested_str_weak(message_counter),
- /* K13 */ be_nested_str_weak(remote_ip),
- /* K14 */ be_nested_str_weak(remote_port),
- /* K15 */ be_const_int(3),
- /* K16 */ be_nested_str_weak(_message_handler),
- /* K17 */ be_nested_str_weak(send_response),
- /* K18 */ be_nested_str_weak(raw),
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(session),
+ /* K1 */ be_nested_str_weak(_message_handler),
+ /* K2 */ be_nested_str_weak(send_encrypted_ack),
}),
be_str_weak(send_ack_now),
&be_const_str_solidified,
- ( &(const binstruction[37]) { /* code */
+ ( &(const binstruction[ 7]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
- 0x780A001F, // 0001 JMPF R2 #0022
- 0x8C080301, // 0002 GETMET R2 R1 K1
- 0x50100000, // 0003 LDBOOL R4 0 0
- 0x7C080400, // 0004 CALL R2 2
- 0x8C0C0502, // 0005 GETMET R3 R2 K2
- 0x7C0C0200, // 0006 CALL R3 1
- 0x8C0C0503, // 0007 GETMET R3 R2 K3
- 0x7C0C0200, // 0008 CALL R3 1
- 0xA40E0800, // 0009 IMPORT R3 K4
- 0xB8120A00, // 000A GETNGBL R4 K5
- 0x8C100906, // 000B GETMET R4 R4 K6
- 0x8C180707, // 000C GETMET R6 R3 K7
- 0x58200008, // 000D LDCONST R8 K8
- 0x88240509, // 000E GETMBR R9 R2 K9
- 0x8824130A, // 000F GETMBR R9 R9 K10
- 0x8828050B, // 0010 GETMBR R10 R2 K11
- 0x882C050C, // 0011 GETMBR R11 R2 K12
- 0x8830050D, // 0012 GETMBR R12 R2 K13
- 0x8834050E, // 0013 GETMBR R13 R2 K14
- 0x7C180E00, // 0014 CALL R6 7
- 0x581C000F, // 0015 LDCONST R7 K15
- 0x7C100600, // 0016 CALL R4 3
- 0x88100309, // 0017 GETMBR R4 R1 K9
- 0x88100910, // 0018 GETMBR R4 R4 K16
- 0x8C100911, // 0019 GETMET R4 R4 K17
- 0x88180512, // 001A GETMBR R6 R2 K18
- 0x881C050D, // 001B GETMBR R7 R2 K13
- 0x8820050E, // 001C GETMBR R8 R2 K14
- 0x4C240000, // 001D LDNIL R9
- 0x88280509, // 001E GETMBR R10 R2 K9
- 0x8828150A, // 001F GETMBR R10 R10 K10
- 0x7C100C00, // 0020 CALL R4 6
- 0x70020001, // 0021 JMP #0024
- 0x50080200, // 0022 LDBOOL R2 1 0
- 0x80040400, // 0023 RET 1 R2
- 0x80000000, // 0024 RET 0
+ 0x88080501, // 0001 GETMBR R2 R2 K1
+ 0x8C080502, // 0002 GETMET R2 R2 K2
+ 0x5C100200, // 0003 MOVE R4 R1
+ 0x50140000, // 0004 LDBOOL R5 0 0
+ 0x7C080600, // 0005 CALL R2 3
+ 0x80000000, // 0006 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
index 9aedef268..0b32129cd 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
@@ -976,7 +976,7 @@ be_local_class(Matter_IM_ReportData,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(send_im, 1), be_const_closure(Matter_IM_ReportData_send_im_closure) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_IM_ReportData_init_closure) },
- { be_const_key_weak(MAX_MESSAGE, -1), be_const_int(1000) },
+ { be_const_key_weak(MAX_MESSAGE, -1), be_const_int(1200) },
})),
be_str_weak(Matter_IM_ReportData)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
index 7db26fd10..4646fd645 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
@@ -6,6 +6,122 @@
extern const bclass be_class_Matter_MessageHandler;
+/********************************************************************
+** Solidified function: send_response
+********************************************************************/
+be_local_closure(Matter_MessageHandler_send_response, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 6, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(msg_send),
+ }),
+ be_str_weak(send_response),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x88180100, // 0000 GETMBR R6 R0 K0
+ 0x8C180D01, // 0001 GETMET R6 R6 K1
+ 0x5C200200, // 0002 MOVE R8 R1
+ 0x5C240400, // 0003 MOVE R9 R2
+ 0x5C280600, // 0004 MOVE R10 R3
+ 0x5C2C0800, // 0005 MOVE R11 R4
+ 0x5C300A00, // 0006 MOVE R12 R5
+ 0x7C180C00, // 0007 CALL R6 6
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: send_encrypted_ack
+********************************************************************/
+be_local_closure(Matter_MessageHandler_send_encrypted_ack, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[20]) { /* constants */
+ /* K0 */ be_nested_str_weak(string),
+ /* K1 */ be_nested_str_weak(x_flag_r),
+ /* K2 */ be_nested_str_weak(build_standalone_ack),
+ /* K3 */ be_nested_str_weak(encode_frame),
+ /* K4 */ be_nested_str_weak(encrypt),
+ /* K5 */ be_nested_str_weak(tasmota),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(format),
+ /* K8 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X2A_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i_X20_X25s),
+ /* K9 */ be_nested_str_weak(session),
+ /* K10 */ be_nested_str_weak(local_session_id),
+ /* K11 */ be_nested_str_weak(ack_message_counter),
+ /* K12 */ be_nested_str_weak(message_counter),
+ /* K13 */ be_nested_str_weak(_X7Breliable_X7D),
+ /* K14 */ be_nested_str_weak(),
+ /* K15 */ be_const_int(3),
+ /* K16 */ be_nested_str_weak(send_response),
+ /* K17 */ be_nested_str_weak(raw),
+ /* K18 */ be_nested_str_weak(remote_ip),
+ /* K19 */ be_nested_str_weak(remote_port),
+ }),
+ be_str_weak(send_encrypted_ack),
+ &be_const_str_solidified,
+ ( &(const binstruction[37]) { /* code */
+ 0xA40E0000, // 0000 IMPORT R3 K0
+ 0x88100301, // 0001 GETMBR R4 R1 K1
+ 0x78120020, // 0002 JMPF R4 #0024
+ 0x8C100302, // 0003 GETMET R4 R1 K2
+ 0x5C180400, // 0004 MOVE R6 R2
+ 0x7C100400, // 0005 CALL R4 2
+ 0x8C140903, // 0006 GETMET R5 R4 K3
+ 0x7C140200, // 0007 CALL R5 1
+ 0x8C140904, // 0008 GETMET R5 R4 K4
+ 0x7C140200, // 0009 CALL R5 1
+ 0xB8160A00, // 000A GETNGBL R5 K5
+ 0x8C140B06, // 000B GETMET R5 R5 K6
+ 0x8C1C0707, // 000C GETMET R7 R3 K7
+ 0x58240008, // 000D LDCONST R9 K8
+ 0x88280909, // 000E GETMBR R10 R4 K9
+ 0x8828150A, // 000F GETMBR R10 R10 K10
+ 0x882C090B, // 0010 GETMBR R11 R4 K11
+ 0x8830090C, // 0011 GETMBR R12 R4 K12
+ 0x780A0001, // 0012 JMPF R2 #0015
+ 0x5834000D, // 0013 LDCONST R13 K13
+ 0x70020000, // 0014 JMP #0016
+ 0x5834000E, // 0015 LDCONST R13 K14
+ 0x7C1C0C00, // 0016 CALL R7 6
+ 0x5820000F, // 0017 LDCONST R8 K15
+ 0x7C140600, // 0018 CALL R5 3
+ 0x8C140110, // 0019 GETMET R5 R0 K16
+ 0x881C0911, // 001A GETMBR R7 R4 K17
+ 0x88200912, // 001B GETMBR R8 R4 K18
+ 0x88240913, // 001C GETMBR R9 R4 K19
+ 0x780A0001, // 001D JMPF R2 #0020
+ 0x8828090C, // 001E GETMBR R10 R4 K12
+ 0x70020000, // 001F JMP #0021
+ 0x4C280000, // 0020 LDNIL R10
+ 0x882C0909, // 0021 GETMBR R11 R4 K9
+ 0x882C170A, // 0022 GETMBR R11 R11 K10
+ 0x7C140C00, // 0023 CALL R5 6
+ 0x80000000, // 0024 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: every_second
********************************************************************/
@@ -40,6 +156,587 @@ be_local_closure(Matter_MessageHandler_every_second, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: send_simple_ack
+********************************************************************/
+be_local_closure(Matter_MessageHandler_send_simple_ack, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[19]) { /* constants */
+ /* K0 */ be_nested_str_weak(string),
+ /* K1 */ be_nested_str_weak(x_flag_r),
+ /* K2 */ be_nested_str_weak(build_standalone_ack),
+ /* K3 */ be_nested_str_weak(encode_frame),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(format),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i_X20_X25s),
+ /* K8 */ be_nested_str_weak(session),
+ /* K9 */ be_nested_str_weak(local_session_id),
+ /* K10 */ be_nested_str_weak(ack_message_counter),
+ /* K11 */ be_nested_str_weak(message_counter),
+ /* K12 */ be_nested_str_weak(_X7Breliable_X7D),
+ /* K13 */ be_nested_str_weak(),
+ /* K14 */ be_const_int(3),
+ /* K15 */ be_nested_str_weak(send_response),
+ /* K16 */ be_nested_str_weak(raw),
+ /* K17 */ be_nested_str_weak(remote_ip),
+ /* K18 */ be_nested_str_weak(remote_port),
+ }),
+ be_str_weak(send_simple_ack),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0xA40E0000, // 0000 IMPORT R3 K0
+ 0x88100301, // 0001 GETMBR R4 R1 K1
+ 0x7812001E, // 0002 JMPF R4 #0022
+ 0x8C100302, // 0003 GETMET R4 R1 K2
+ 0x5C180400, // 0004 MOVE R6 R2
+ 0x7C100400, // 0005 CALL R4 2
+ 0x8C140903, // 0006 GETMET R5 R4 K3
+ 0x7C140200, // 0007 CALL R5 1
+ 0xB8160800, // 0008 GETNGBL R5 K4
+ 0x8C140B05, // 0009 GETMET R5 R5 K5
+ 0x8C1C0706, // 000A GETMET R7 R3 K6
+ 0x58240007, // 000B LDCONST R9 K7
+ 0x88280908, // 000C GETMBR R10 R4 K8
+ 0x88281509, // 000D GETMBR R10 R10 K9
+ 0x882C090A, // 000E GETMBR R11 R4 K10
+ 0x8830090B, // 000F GETMBR R12 R4 K11
+ 0x780A0001, // 0010 JMPF R2 #0013
+ 0x5834000C, // 0011 LDCONST R13 K12
+ 0x70020000, // 0012 JMP #0014
+ 0x5834000D, // 0013 LDCONST R13 K13
+ 0x7C1C0C00, // 0014 CALL R7 6
+ 0x5820000E, // 0015 LDCONST R8 K14
+ 0x7C140600, // 0016 CALL R5 3
+ 0x8C14010F, // 0017 GETMET R5 R0 K15
+ 0x881C0910, // 0018 GETMBR R7 R4 K16
+ 0x88200911, // 0019 GETMBR R8 R4 K17
+ 0x88240912, // 001A GETMBR R9 R4 K18
+ 0x780A0001, // 001B JMPF R2 #001E
+ 0x8828090B, // 001C GETMBR R10 R4 K11
+ 0x70020000, // 001D JMP #001F
+ 0x4C280000, // 001E LDNIL R10
+ 0x882C0908, // 001F GETMBR R11 R4 K8
+ 0x882C1709, // 0020 GETMBR R11 R11 K9
+ 0x7C140C00, // 0021 CALL R5 6
+ 0x80000000, // 0022 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: msg_received
+********************************************************************/
+be_local_closure(Matter_MessageHandler_msg_received, /* name */
+ be_nested_proto(
+ 24, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[76]) { /* constants */
+ /* K0 */ be_nested_str_weak(string),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20MessageHandler_X3A_X3Amsg_received_X20raw_X3D),
+ /* K4 */ be_nested_str_weak(tohex),
+ /* K5 */ be_nested_str_weak(matter),
+ /* K6 */ be_nested_str_weak(Frame),
+ /* K7 */ be_nested_str_weak(decode_header),
+ /* K8 */ be_nested_str_weak(sec_p),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20CONTROL_X20MESSAGE_X3D),
+ /* K10 */ be_nested_str_weak(inspect),
+ /* K11 */ be_nested_str_weak(device),
+ /* K12 */ be_nested_str_weak(sessions),
+ /* K13 */ be_nested_str_weak(find_session_source_id_unsecure),
+ /* K14 */ be_nested_str_weak(source_node_id),
+ /* K15 */ be_nested_str_weak(MTR_X3A_X20find_X20session_X20by_X20source_node_id_X20_X3D_X20),
+ /* K16 */ be_nested_str_weak(_X20session_id_X20_X3D_X20),
+ /* K17 */ be_nested_str_weak(local_session_id),
+ /* K18 */ be_const_int(2),
+ /* K19 */ be_nested_str_weak(control_message),
+ /* K20 */ be_nested_str_weak(process_incoming_control_message),
+ /* K21 */ be_const_int(0),
+ /* K22 */ be_nested_str_weak(sec_sesstype),
+ /* K23 */ be_const_int(3),
+ /* K24 */ be_nested_str_weak(_ip),
+ /* K25 */ be_nested_str_weak(_port),
+ /* K26 */ be_nested_str_weak(_message_handler),
+ /* K27 */ be_nested_str_weak(session),
+ /* K28 */ be_nested_str_weak(_counter_insecure_rcv),
+ /* K29 */ be_nested_str_weak(validate),
+ /* K30 */ be_nested_str_weak(message_counter),
+ /* K31 */ be_nested_str_weak(format),
+ /* K32 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Duplicate_X20unencrypted_X20message_X20_X3D_X20_X25i_X20ref_X20_X3D_X20_X25i),
+ /* K33 */ be_nested_str_weak(val),
+ /* K34 */ be_nested_str_weak(send_simple_ack),
+ /* K35 */ be_nested_str_weak(decode_payload),
+ /* K36 */ be_nested_str_weak(received_ack),
+ /* K37 */ be_nested_str_weak(ack_message_counter),
+ /* K38 */ be_nested_str_weak(opcode),
+ /* K39 */ be_nested_str_weak(get_opcode_name),
+ /* K40 */ be_nested_str_weak(0x_X2502X),
+ /* K41 */ be_nested_str_weak(MTR_X3A_X20_X3EReceived_X20_X20_X28_X256i_X29_X20_X25s_X20rid_X3D_X25i_X20exch_X3D_X25i_X20from_X20_X5B_X25s_X5D_X3A_X25i),
+ /* K42 */ be_nested_str_weak(exchange_id),
+ /* K43 */ be_nested_str_weak(MTR_X3A_X20_X3Ercv_X20Ack_X20_X20_X20_X28_X256i_X29_X20rid_X3D_X25i_X20exch_X3D_X25i_X20ack_X3D_X25s_X20_X25sfrom_X20_X5B_X25s_X5D_X3A_X25i),
+ /* K44 */ be_nested_str_weak(x_flag_r),
+ /* K45 */ be_nested_str_weak(_X7Breliable_X7D_X20),
+ /* K46 */ be_nested_str_weak(),
+ /* K47 */ be_nested_str_weak(commissioning),
+ /* K48 */ be_nested_str_weak(process_incoming),
+ /* K49 */ be_nested_str_weak(MTR_X3A_X20decode_X20header_X3A_X20local_session_id_X3D_X25i_X20message_counter_X3D_X25i),
+ /* K50 */ be_nested_str_weak(get_session_by_local_session_id),
+ /* K51 */ be_nested_str_weak(MTR_X3A_X20unknown_X20local_session_id_X3D),
+ /* K52 */ be_nested_str_weak(counter_rcv_validate),
+ /* K53 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Duplicate_X20encrypted_X20message_X20_X3D_X20),
+ /* K54 */ be_nested_str_weak(_X20counter_X3D),
+ /* K55 */ be_nested_str_weak(counter_rcv),
+ /* K56 */ be_nested_str_weak(send_encrypted_ack),
+ /* K57 */ be_nested_str_weak(decrypt),
+ /* K58 */ be_nested_str_weak(raw),
+ /* K59 */ be_nested_str_weak(payload_idx),
+ /* K60 */ be_const_int(1),
+ /* K61 */ be_nested_str_weak(MTR_X3A_X20idx_X3D_X25i_X20clear_X3D_X25s),
+ /* K62 */ be_nested_str_weak(MTR_X3A_X20_X3E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Decrypted_X20message_X3A_X20protocol_id_X3A),
+ /* K63 */ be_nested_str_weak(protocol_id),
+ /* K64 */ be_nested_str_weak(_X20opcode_X3D),
+ /* K65 */ be_nested_str_weak(_X20exchange_id_X3D),
+ /* K66 */ be_nested_str_weak(MTR_X3A_X20_X3Ercv_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20_X5B_X2502X_X2F_X2502X_X5D_X20rid_X3D_X25i_X20exch_X3D_X25i_X20ack_X3D_X25s_X20_X25sfrom_X20_X5B_X25s_X5D_X3A_X25i),
+ /* K67 */ be_nested_str_weak(MTR_X3A_X20PROTOCOL_ID_SECURE_CHANNEL_X20),
+ /* K68 */ be_nested_str_weak(im),
+ /* K69 */ be_nested_str_weak(process_incoming_ack),
+ /* K70 */ be_nested_str_weak(send_enqueued),
+ /* K71 */ be_nested_str_weak(MTR_X3A_X20ignoring_X20unhandled_X20protocol_id_X3A),
+ /* K72 */ be_nested_str_weak(MTR_X3A_X20MessageHandler_X3A_X3Amsg_received_X20exception_X3A_X20),
+ /* K73 */ be_nested_str_weak(_X3B),
+ /* K74 */ be_nested_str_weak(debug),
+ /* K75 */ be_nested_str_weak(traceback),
+ }),
+ be_str_weak(msg_received),
+ &be_const_str_solidified,
+ ( &(const binstruction[403]) { /* code */
+ 0xA4120000, // 0000 IMPORT R4 K0
+ 0x50140000, // 0001 LDBOOL R5 0 0
+ 0xA8020179, // 0002 EXBLK 0 #017D
+ 0xB81A0200, // 0003 GETNGBL R6 K1
+ 0x8C180D02, // 0004 GETMET R6 R6 K2
+ 0x8C200304, // 0005 GETMET R8 R1 K4
+ 0x7C200200, // 0006 CALL R8 1
+ 0x00220608, // 0007 ADD R8 K3 R8
+ 0x54260003, // 0008 LDINT R9 4
+ 0x7C180600, // 0009 CALL R6 3
+ 0xB81A0A00, // 000A GETNGBL R6 K5
+ 0x8C180D06, // 000B GETMET R6 R6 K6
+ 0x5C200000, // 000C MOVE R8 R0
+ 0x5C240200, // 000D MOVE R9 R1
+ 0x5C280400, // 000E MOVE R10 R2
+ 0x5C2C0600, // 000F MOVE R11 R3
+ 0x7C180A00, // 0010 CALL R6 5
+ 0x8C1C0D07, // 0011 GETMET R7 R6 K7
+ 0x7C1C0200, // 0012 CALL R7 1
+ 0x5C200E00, // 0013 MOVE R8 R7
+ 0x74220002, // 0014 JMPT R8 #0018
+ 0x50200000, // 0015 LDBOOL R8 0 0
+ 0xA8040001, // 0016 EXBLK 1 1
+ 0x80041000, // 0017 RET 1 R8
+ 0x88200D08, // 0018 GETMBR R8 R6 K8
+ 0x78220021, // 0019 JMPF R8 #003C
+ 0xB8220200, // 001A GETNGBL R8 K1
+ 0x8C201102, // 001B GETMET R8 R8 K2
+ 0xB82A0A00, // 001C GETNGBL R10 K5
+ 0x8C28150A, // 001D GETMET R10 R10 K10
+ 0x5C300C00, // 001E MOVE R12 R6
+ 0x7C280400, // 001F CALL R10 2
+ 0x002A120A, // 0020 ADD R10 K9 R10
+ 0x7C200400, // 0021 CALL R8 2
+ 0x8820010B, // 0022 GETMBR R8 R0 K11
+ 0x8820110C, // 0023 GETMBR R8 R8 K12
+ 0x8C20110D, // 0024 GETMET R8 R8 K13
+ 0x88280D0E, // 0025 GETMBR R10 R6 K14
+ 0x542E0059, // 0026 LDINT R11 90
+ 0x7C200600, // 0027 CALL R8 3
+ 0xB8260200, // 0028 GETNGBL R9 K1
+ 0x8C241302, // 0029 GETMET R9 R9 K2
+ 0x602C0008, // 002A GETGBL R11 G8
+ 0x88300D0E, // 002B GETMBR R12 R6 K14
+ 0x7C2C0200, // 002C CALL R11 1
+ 0x002E1E0B, // 002D ADD R11 K15 R11
+ 0x002C1710, // 002E ADD R11 R11 K16
+ 0x60300008, // 002F GETGBL R12 G8
+ 0x88341111, // 0030 GETMBR R13 R8 K17
+ 0x7C300200, // 0031 CALL R12 1
+ 0x002C160C, // 0032 ADD R11 R11 R12
+ 0x58300012, // 0033 LDCONST R12 K18
+ 0x7C240600, // 0034 CALL R9 3
+ 0x88240113, // 0035 GETMBR R9 R0 K19
+ 0x8C241314, // 0036 GETMET R9 R9 K20
+ 0x5C2C0C00, // 0037 MOVE R11 R6
+ 0x7C240400, // 0038 CALL R9 2
+ 0xA8040001, // 0039 EXBLK 1 1
+ 0x80041200, // 003A RET 1 R9
+ 0x7002013C, // 003B JMP #0179
+ 0x88200D11, // 003C GETMBR R8 R6 K17
+ 0x1C201115, // 003D EQ R8 R8 K21
+ 0x7822007D, // 003E JMPF R8 #00BD
+ 0x88200D16, // 003F GETMBR R8 R6 K22
+ 0x1C201115, // 0040 EQ R8 R8 K21
+ 0x7822007A, // 0041 JMPF R8 #00BD
+ 0x8820010B, // 0042 GETMBR R8 R0 K11
+ 0x8820110C, // 0043 GETMBR R8 R8 K12
+ 0x8C20110D, // 0044 GETMET R8 R8 K13
+ 0x88280D0E, // 0045 GETMBR R10 R6 K14
+ 0x542E0059, // 0046 LDINT R11 90
+ 0x7C200600, // 0047 CALL R8 3
+ 0xB8260200, // 0048 GETNGBL R9 K1
+ 0x8C241302, // 0049 GETMET R9 R9 K2
+ 0x602C0008, // 004A GETGBL R11 G8
+ 0x88300D0E, // 004B GETMBR R12 R6 K14
+ 0x7C2C0200, // 004C CALL R11 1
+ 0x002E1E0B, // 004D ADD R11 K15 R11
+ 0x002C1710, // 004E ADD R11 R11 K16
+ 0x60300008, // 004F GETGBL R12 G8
+ 0x88341111, // 0050 GETMBR R13 R8 K17
+ 0x7C300200, // 0051 CALL R12 1
+ 0x002C160C, // 0052 ADD R11 R11 R12
+ 0x58300017, // 0053 LDCONST R12 K23
+ 0x7C240600, // 0054 CALL R9 3
+ 0x780A0000, // 0055 JMPF R2 #0057
+ 0x90223002, // 0056 SETMBR R8 K24 R2
+ 0x780E0000, // 0057 JMPF R3 #0059
+ 0x90223203, // 0058 SETMBR R8 K25 R3
+ 0x90223400, // 0059 SETMBR R8 K26 R0
+ 0x901A3608, // 005A SETMBR R6 K27 R8
+ 0x8824111C, // 005B GETMBR R9 R8 K28
+ 0x8C24131D, // 005C GETMET R9 R9 K29
+ 0x882C0D1E, // 005D GETMBR R11 R6 K30
+ 0x50300000, // 005E LDBOOL R12 0 0
+ 0x7C240600, // 005F CALL R9 3
+ 0x74260011, // 0060 JMPT R9 #0073
+ 0xB8260200, // 0061 GETNGBL R9 K1
+ 0x8C241302, // 0062 GETMET R9 R9 K2
+ 0x8C2C091F, // 0063 GETMET R11 R4 K31
+ 0x58340020, // 0064 LDCONST R13 K32
+ 0x88380D1E, // 0065 GETMBR R14 R6 K30
+ 0x883C111C, // 0066 GETMBR R15 R8 K28
+ 0x8C3C1F21, // 0067 GETMET R15 R15 K33
+ 0x7C3C0200, // 0068 CALL R15 1
+ 0x7C2C0800, // 0069 CALL R11 4
+ 0x58300017, // 006A LDCONST R12 K23
+ 0x7C240600, // 006B CALL R9 3
+ 0x8C240122, // 006C GETMET R9 R0 K34
+ 0x5C2C0C00, // 006D MOVE R11 R6
+ 0x50300000, // 006E LDBOOL R12 0 0
+ 0x7C240600, // 006F CALL R9 3
+ 0x50240000, // 0070 LDBOOL R9 0 0
+ 0xA8040001, // 0071 EXBLK 1 1
+ 0x80041200, // 0072 RET 1 R9
+ 0x8C240D23, // 0073 GETMET R9 R6 K35
+ 0x7C240200, // 0074 CALL R9 1
+ 0x74260002, // 0075 JMPT R9 #0079
+ 0x50240000, // 0076 LDBOOL R9 0 0
+ 0xA8040001, // 0077 EXBLK 1 1
+ 0x80041200, // 0078 RET 1 R9
+ 0x8824010B, // 0079 GETMBR R9 R0 K11
+ 0x8C241324, // 007A GETMET R9 R9 K36
+ 0x882C0D25, // 007B GETMBR R11 R6 K37
+ 0x7C240400, // 007C CALL R9 2
+ 0x88240D26, // 007D GETMBR R9 R6 K38
+ 0x542A000F, // 007E LDINT R10 16
+ 0x2024120A, // 007F NE R9 R9 R10
+ 0x78260018, // 0080 JMPF R9 #009A
+ 0xB8260A00, // 0081 GETNGBL R9 K5
+ 0x8C241327, // 0082 GETMET R9 R9 K39
+ 0x882C0D26, // 0083 GETMBR R11 R6 K38
+ 0x7C240400, // 0084 CALL R9 2
+ 0x5C281200, // 0085 MOVE R10 R9
+ 0x742A0004, // 0086 JMPT R10 #008C
+ 0x8C28091F, // 0087 GETMET R10 R4 K31
+ 0x58300028, // 0088 LDCONST R12 K40
+ 0x88340D26, // 0089 GETMBR R13 R6 K38
+ 0x7C280600, // 008A CALL R10 3
+ 0x5C241400, // 008B MOVE R9 R10
+ 0xB82A0200, // 008C GETNGBL R10 K1
+ 0x8C281502, // 008D GETMET R10 R10 K2
+ 0x8C30091F, // 008E GETMET R12 R4 K31
+ 0x58380029, // 008F LDCONST R14 K41
+ 0x883C1111, // 0090 GETMBR R15 R8 K17
+ 0x5C401200, // 0091 MOVE R16 R9
+ 0x88440D1E, // 0092 GETMBR R17 R6 K30
+ 0x88480D2A, // 0093 GETMBR R18 R6 K42
+ 0x5C4C0400, // 0094 MOVE R19 R2
+ 0x5C500600, // 0095 MOVE R20 R3
+ 0x7C301000, // 0096 CALL R12 8
+ 0x58340012, // 0097 LDCONST R13 K18
+ 0x7C280600, // 0098 CALL R10 3
+ 0x70020013, // 0099 JMP #00AE
+ 0xB8260200, // 009A GETNGBL R9 K1
+ 0x8C241302, // 009B GETMET R9 R9 K2
+ 0x8C2C091F, // 009C GETMET R11 R4 K31
+ 0x5834002B, // 009D LDCONST R13 K43
+ 0x88381111, // 009E GETMBR R14 R8 K17
+ 0x883C0D1E, // 009F GETMBR R15 R6 K30
+ 0x88400D2C, // 00A0 GETMBR R16 R6 K44
+ 0x78420001, // 00A1 JMPF R16 #00A4
+ 0x5840002D, // 00A2 LDCONST R16 K45
+ 0x70020000, // 00A3 JMP #00A5
+ 0x5840002E, // 00A4 LDCONST R16 K46
+ 0x88440D2A, // 00A5 GETMBR R17 R6 K42
+ 0x60480008, // 00A6 GETGBL R18 G8
+ 0x884C0D25, // 00A7 GETMBR R19 R6 K37
+ 0x7C480200, // 00A8 CALL R18 1
+ 0x5C4C0400, // 00A9 MOVE R19 R2
+ 0x5C500600, // 00AA MOVE R20 R3
+ 0x7C2C1200, // 00AB CALL R11 9
+ 0x58300017, // 00AC LDCONST R12 K23
+ 0x7C240600, // 00AD CALL R9 3
+ 0x8824012F, // 00AE GETMBR R9 R0 K47
+ 0x8C241330, // 00AF GETMET R9 R9 K48
+ 0x5C2C0C00, // 00B0 MOVE R11 R6
+ 0x7C240400, // 00B1 CALL R9 2
+ 0x5C141200, // 00B2 MOVE R5 R9
+ 0x5C240A00, // 00B3 MOVE R9 R5
+ 0x74260003, // 00B4 JMPT R9 #00B9
+ 0x8C240122, // 00B5 GETMET R9 R0 K34
+ 0x5C2C0C00, // 00B6 MOVE R11 R6
+ 0x50300000, // 00B7 LDBOOL R12 0 0
+ 0x7C240600, // 00B8 CALL R9 3
+ 0x50240200, // 00B9 LDBOOL R9 1 0
+ 0xA8040001, // 00BA EXBLK 1 1
+ 0x80041200, // 00BB RET 1 R9
+ 0x700200BB, // 00BC JMP #0179
+ 0xB8220200, // 00BD GETNGBL R8 K1
+ 0x8C201102, // 00BE GETMET R8 R8 K2
+ 0x8C28091F, // 00BF GETMET R10 R4 K31
+ 0x58300031, // 00C0 LDCONST R12 K49
+ 0x88340D11, // 00C1 GETMBR R13 R6 K17
+ 0x88380D1E, // 00C2 GETMBR R14 R6 K30
+ 0x7C280800, // 00C3 CALL R10 4
+ 0x582C0017, // 00C4 LDCONST R11 K23
+ 0x7C200600, // 00C5 CALL R8 3
+ 0x8820010B, // 00C6 GETMBR R8 R0 K11
+ 0x8820110C, // 00C7 GETMBR R8 R8 K12
+ 0x8C201132, // 00C8 GETMET R8 R8 K50
+ 0x88280D11, // 00C9 GETMBR R10 R6 K17
+ 0x7C200400, // 00CA CALL R8 2
+ 0x4C240000, // 00CB LDNIL R9
+ 0x1C241009, // 00CC EQ R9 R8 R9
+ 0x7826000A, // 00CD JMPF R9 #00D9
+ 0xB8260200, // 00CE GETNGBL R9 K1
+ 0x8C241302, // 00CF GETMET R9 R9 K2
+ 0x602C0008, // 00D0 GETGBL R11 G8
+ 0x88300D11, // 00D1 GETMBR R12 R6 K17
+ 0x7C2C0200, // 00D2 CALL R11 1
+ 0x002E660B, // 00D3 ADD R11 K51 R11
+ 0x58300012, // 00D4 LDCONST R12 K18
+ 0x7C240600, // 00D5 CALL R9 3
+ 0x50240000, // 00D6 LDBOOL R9 0 0
+ 0xA8040001, // 00D7 EXBLK 1 1
+ 0x80041200, // 00D8 RET 1 R9
+ 0x780A0000, // 00D9 JMPF R2 #00DB
+ 0x90223002, // 00DA SETMBR R8 K24 R2
+ 0x780E0000, // 00DB JMPF R3 #00DD
+ 0x90223203, // 00DC SETMBR R8 K25 R3
+ 0x90223400, // 00DD SETMBR R8 K26 R0
+ 0x901A3608, // 00DE SETMBR R6 K27 R8
+ 0x8C241134, // 00DF GETMET R9 R8 K52
+ 0x882C0D1E, // 00E0 GETMBR R11 R6 K30
+ 0x50300200, // 00E1 LDBOOL R12 1 0
+ 0x7C240600, // 00E2 CALL R9 3
+ 0x74260013, // 00E3 JMPT R9 #00F8
+ 0xB8260200, // 00E4 GETNGBL R9 K1
+ 0x8C241302, // 00E5 GETMET R9 R9 K2
+ 0x602C0008, // 00E6 GETGBL R11 G8
+ 0x88300D1E, // 00E7 GETMBR R12 R6 K30
+ 0x7C2C0200, // 00E8 CALL R11 1
+ 0x002E6A0B, // 00E9 ADD R11 K53 R11
+ 0x002C1736, // 00EA ADD R11 R11 K54
+ 0x60300008, // 00EB GETGBL R12 G8
+ 0x88341137, // 00EC GETMBR R13 R8 K55
+ 0x7C300200, // 00ED CALL R12 1
+ 0x002C160C, // 00EE ADD R11 R11 R12
+ 0x58300017, // 00EF LDCONST R12 K23
+ 0x7C240600, // 00F0 CALL R9 3
+ 0x8C240138, // 00F1 GETMET R9 R0 K56
+ 0x5C2C0C00, // 00F2 MOVE R11 R6
+ 0x50300000, // 00F3 LDBOOL R12 0 0
+ 0x7C240600, // 00F4 CALL R9 3
+ 0x50240000, // 00F5 LDBOOL R9 0 0
+ 0xA8040001, // 00F6 EXBLK 1 1
+ 0x80041200, // 00F7 RET 1 R9
+ 0x8C240D39, // 00F8 GETMET R9 R6 K57
+ 0x7C240200, // 00F9 CALL R9 1
+ 0x5C281200, // 00FA MOVE R10 R9
+ 0x742A0002, // 00FB JMPT R10 #00FF
+ 0x50280000, // 00FC LDBOOL R10 0 0
+ 0xA8040001, // 00FD EXBLK 1 1
+ 0x80041400, // 00FE RET 1 R10
+ 0x88280D3B, // 00FF GETMBR R10 R6 K59
+ 0x0428153C, // 0100 SUB R10 R10 K60
+ 0x402A2A0A, // 0101 CONNECT R10 K21 R10
+ 0x882C0D3A, // 0102 GETMBR R11 R6 K58
+ 0x9428160A, // 0103 GETIDX R10 R11 R10
+ 0x901A740A, // 0104 SETMBR R6 K58 R10
+ 0x88280D3A, // 0105 GETMBR R10 R6 K58
+ 0x40281409, // 0106 CONNECT R10 R10 R9
+ 0xB82A0200, // 0107 GETNGBL R10 K1
+ 0x8C281502, // 0108 GETMET R10 R10 K2
+ 0x8C30091F, // 0109 GETMET R12 R4 K31
+ 0x5838003D, // 010A LDCONST R14 K61
+ 0x883C0D3B, // 010B GETMBR R15 R6 K59
+ 0x88400D3A, // 010C GETMBR R16 R6 K58
+ 0x8C402104, // 010D GETMET R16 R16 K4
+ 0x7C400200, // 010E CALL R16 1
+ 0x7C300800, // 010F CALL R12 4
+ 0x54360003, // 0110 LDINT R13 4
+ 0x7C280600, // 0111 CALL R10 3
+ 0x8C280D23, // 0112 GETMET R10 R6 K35
+ 0x7C280200, // 0113 CALL R10 1
+ 0xB82A0200, // 0114 GETNGBL R10 K1
+ 0x8C281502, // 0115 GETMET R10 R10 K2
+ 0x60300008, // 0116 GETGBL R12 G8
+ 0x88340D3F, // 0117 GETMBR R13 R6 K63
+ 0x7C300200, // 0118 CALL R12 1
+ 0x00327C0C, // 0119 ADD R12 K62 R12
+ 0x00301940, // 011A ADD R12 R12 K64
+ 0x60340008, // 011B GETGBL R13 G8
+ 0x88380D26, // 011C GETMBR R14 R6 K38
+ 0x7C340200, // 011D CALL R13 1
+ 0x0030180D, // 011E ADD R12 R12 R13
+ 0x00301941, // 011F ADD R12 R12 K65
+ 0x60340008, // 0120 GETGBL R13 G8
+ 0x88380D2A, // 0121 GETMBR R14 R6 K42
+ 0x543EFFFE, // 0122 LDINT R15 65535
+ 0x2C381C0F, // 0123 AND R14 R14 R15
+ 0x7C340200, // 0124 CALL R13 1
+ 0x0030180D, // 0125 ADD R12 R12 R13
+ 0x58340017, // 0126 LDCONST R13 K23
+ 0x7C280600, // 0127 CALL R10 3
+ 0xB82A0200, // 0128 GETNGBL R10 K1
+ 0x8C281502, // 0129 GETMET R10 R10 K2
+ 0x8C30091F, // 012A GETMET R12 R4 K31
+ 0x58380042, // 012B LDCONST R14 K66
+ 0x883C1111, // 012C GETMBR R15 R8 K17
+ 0x88400D3F, // 012D GETMBR R16 R6 K63
+ 0x88440D26, // 012E GETMBR R17 R6 K38
+ 0x88480D1E, // 012F GETMBR R18 R6 K30
+ 0x884C0D2A, // 0130 GETMBR R19 R6 K42
+ 0x60500008, // 0131 GETGBL R20 G8
+ 0x88540D25, // 0132 GETMBR R21 R6 K37
+ 0x7C500200, // 0133 CALL R20 1
+ 0x88540D2C, // 0134 GETMBR R21 R6 K44
+ 0x78560001, // 0135 JMPF R21 #0138
+ 0x5854002D, // 0136 LDCONST R21 K45
+ 0x70020000, // 0137 JMP #0139
+ 0x5854002E, // 0138 LDCONST R21 K46
+ 0x5C580400, // 0139 MOVE R22 R2
+ 0x5C5C0600, // 013A MOVE R23 R3
+ 0x7C301600, // 013B CALL R12 11
+ 0x58340017, // 013C LDCONST R13 K23
+ 0x7C280600, // 013D CALL R10 3
+ 0x8828010B, // 013E GETMBR R10 R0 K11
+ 0x8C281524, // 013F GETMET R10 R10 K36
+ 0x88300D25, // 0140 GETMBR R12 R6 K37
+ 0x7C280400, // 0141 CALL R10 2
+ 0x88280D3F, // 0142 GETMBR R10 R6 K63
+ 0x1C2C1515, // 0143 EQ R11 R10 K21
+ 0x782E0018, // 0144 JMPF R11 #015E
+ 0xB82E0200, // 0145 GETNGBL R11 K1
+ 0x8C2C1702, // 0146 GETMET R11 R11 K2
+ 0xB8360A00, // 0147 GETNGBL R13 K5
+ 0x8C341B0A, // 0148 GETMET R13 R13 K10
+ 0x5C3C0C00, // 0149 MOVE R15 R6
+ 0x7C340400, // 014A CALL R13 2
+ 0x0036860D, // 014B ADD R13 K67 R13
+ 0x58380017, // 014C LDCONST R14 K23
+ 0x7C2C0600, // 014D CALL R11 3
+ 0x882C0D26, // 014E GETMBR R11 R6 K38
+ 0x5432000F, // 014F LDINT R12 16
+ 0x1C2C160C, // 0150 EQ R11 R11 R12
+ 0x782E0009, // 0151 JMPF R11 #015C
+ 0x882C0144, // 0152 GETMBR R11 R0 K68
+ 0x8C2C1745, // 0153 GETMET R11 R11 K69
+ 0x5C340C00, // 0154 MOVE R13 R6
+ 0x7C2C0400, // 0155 CALL R11 2
+ 0x5C141600, // 0156 MOVE R5 R11
+ 0x78160003, // 0157 JMPF R5 #015C
+ 0x882C0144, // 0158 GETMBR R11 R0 K68
+ 0x8C2C1746, // 0159 GETMET R11 R11 K70
+ 0x5C340000, // 015A MOVE R13 R0
+ 0x7C2C0400, // 015B CALL R11 2
+ 0x50140200, // 015C LDBOOL R5 1 0
+ 0x7002001A, // 015D JMP #0179
+ 0x1C2C153C, // 015E EQ R11 R10 K60
+ 0x782E0010, // 015F JMPF R11 #0171
+ 0x882C0144, // 0160 GETMBR R11 R0 K68
+ 0x8C2C1730, // 0161 GETMET R11 R11 K48
+ 0x5C340C00, // 0162 MOVE R13 R6
+ 0x7C2C0400, // 0163 CALL R11 2
+ 0x5C141600, // 0164 MOVE R5 R11
+ 0x78160004, // 0165 JMPF R5 #016B
+ 0x882C0144, // 0166 GETMBR R11 R0 K68
+ 0x8C2C1746, // 0167 GETMET R11 R11 K70
+ 0x5C340000, // 0168 MOVE R13 R0
+ 0x7C2C0400, // 0169 CALL R11 2
+ 0x70020003, // 016A JMP #016F
+ 0x8C2C0138, // 016B GETMET R11 R0 K56
+ 0x5C340C00, // 016C MOVE R13 R6
+ 0x50380200, // 016D LDBOOL R14 1 0
+ 0x7C2C0600, // 016E CALL R11 3
+ 0x50140200, // 016F LDBOOL R5 1 0
+ 0x70020007, // 0170 JMP #0179
+ 0xB82E0200, // 0171 GETNGBL R11 K1
+ 0x8C2C1702, // 0172 GETMET R11 R11 K2
+ 0x60340008, // 0173 GETGBL R13 G8
+ 0x5C381400, // 0174 MOVE R14 R10
+ 0x7C340200, // 0175 CALL R13 1
+ 0x00368E0D, // 0176 ADD R13 K71 R13
+ 0x58380017, // 0177 LDCONST R14 K23
+ 0x7C2C0600, // 0178 CALL R11 3
+ 0xA8040001, // 0179 EXBLK 1 1
+ 0x80040A00, // 017A RET 1 R5
+ 0xA8040001, // 017B EXBLK 1 1
+ 0x70020014, // 017C JMP #0192
+ 0xAC180002, // 017D CATCH R6 0 2
+ 0x70020011, // 017E JMP #0191
+ 0xB8220200, // 017F GETNGBL R8 K1
+ 0x8C201102, // 0180 GETMET R8 R8 K2
+ 0x60280008, // 0181 GETGBL R10 G8
+ 0x5C2C0C00, // 0182 MOVE R11 R6
+ 0x7C280200, // 0183 CALL R10 1
+ 0x002A900A, // 0184 ADD R10 K72 R10
+ 0x00281549, // 0185 ADD R10 R10 K73
+ 0x602C0008, // 0186 GETGBL R11 G8
+ 0x5C300E00, // 0187 MOVE R12 R7
+ 0x7C2C0200, // 0188 CALL R11 1
+ 0x0028140B, // 0189 ADD R10 R10 R11
+ 0x7C200400, // 018A CALL R8 2
+ 0xA4229400, // 018B IMPORT R8 K74
+ 0x8C24114B, // 018C GETMET R9 R8 K75
+ 0x7C240200, // 018D CALL R9 1
+ 0x50240000, // 018E LDBOOL R9 0 0
+ 0x80041200, // 018F RET 1 R9
+ 0x70020000, // 0190 JMP #0192
+ 0xB0080000, // 0191 RAISE 2 R0 R0
+ 0x80000000, // 0192 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: every_250ms
********************************************************************/
@@ -83,17 +780,19 @@ be_local_closure(Matter_MessageHandler_init, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
+ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(device),
/* K1 */ be_nested_str_weak(commissioning),
/* K2 */ be_nested_str_weak(matter),
/* K3 */ be_nested_str_weak(Commisioning_Context),
/* K4 */ be_nested_str_weak(im),
/* K5 */ be_nested_str_weak(IM),
+ /* K6 */ be_nested_str_weak(control_message),
+ /* K7 */ be_nested_str_weak(Control_Message),
}),
be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
+ ( &(const binstruction[17]) { /* code */
0x90020001, // 0000 SETMBR R0 K0 R1
0xB80A0400, // 0001 GETNGBL R2 K2
0x8C080503, // 0002 GETMET R2 R2 K3
@@ -105,603 +804,12 @@ be_local_closure(Matter_MessageHandler_init, /* name */
0x5C100200, // 0008 MOVE R4 R1
0x7C080400, // 0009 CALL R2 2
0x90020802, // 000A SETMBR R0 K4 R2
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: msg_received
-********************************************************************/
-be_local_closure(Matter_MessageHandler_msg_received, /* name */
- be_nested_proto(
- 24, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[78]) { /* constants */
- /* K0 */ be_nested_str_weak(string),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20MessageHandler_X3A_X3Amsg_received_X20raw_X3D),
- /* K4 */ be_nested_str_weak(tohex),
- /* K5 */ be_nested_str_weak(matter),
- /* K6 */ be_nested_str_weak(Frame),
- /* K7 */ be_nested_str_weak(decode_header),
- /* K8 */ be_nested_str_weak(local_session_id),
- /* K9 */ be_const_int(0),
- /* K10 */ be_nested_str_weak(sec_sesstype),
- /* K11 */ be_nested_str_weak(device),
- /* K12 */ be_nested_str_weak(sessions),
- /* K13 */ be_nested_str_weak(find_session_source_id_unsecure),
- /* K14 */ be_nested_str_weak(source_node_id),
- /* K15 */ be_nested_str_weak(MTR_X3A_X20find_X20session_X20by_X20source_node_id_X20_X3D_X20),
- /* K16 */ be_nested_str_weak(_X20session_id_X20_X3D_X20),
- /* K17 */ be_const_int(3),
- /* K18 */ be_nested_str_weak(_ip),
- /* K19 */ be_nested_str_weak(_port),
- /* K20 */ be_nested_str_weak(_message_handler),
- /* K21 */ be_nested_str_weak(session),
- /* K22 */ be_nested_str_weak(_counter_insecure_rcv),
- /* K23 */ be_nested_str_weak(validate),
- /* K24 */ be_nested_str_weak(message_counter),
- /* K25 */ be_nested_str_weak(format),
- /* K26 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Duplicate_X20unencrypted_X20message_X20_X3D_X20_X25i_X20ref_X20_X3D_X20_X25i),
- /* K27 */ be_nested_str_weak(val),
- /* K28 */ be_nested_str_weak(x_flag_r),
- /* K29 */ be_nested_str_weak(build_standalone_ack),
- /* K30 */ be_nested_str_weak(encode_frame),
- /* K31 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i_X20_X7Breliable_X7D),
- /* K32 */ be_nested_str_weak(ack_message_counter),
- /* K33 */ be_nested_str_weak(send_response),
- /* K34 */ be_nested_str_weak(raw),
- /* K35 */ be_nested_str_weak(remote_ip),
- /* K36 */ be_nested_str_weak(remote_port),
- /* K37 */ be_nested_str_weak(decode_payload),
- /* K38 */ be_nested_str_weak(received_ack),
- /* K39 */ be_nested_str_weak(opcode),
- /* K40 */ be_nested_str_weak(get_opcode_name),
- /* K41 */ be_nested_str_weak(0x_X2502X),
- /* K42 */ be_nested_str_weak(MTR_X3A_X20_X3EReceived_X20_X20_X28_X256i_X29_X20_X25s_X20rid_X3D_X25i_X20exch_X3D_X25i_X20from_X20_X5B_X25s_X5D_X3A_X25i),
- /* K43 */ be_nested_str_weak(exchange_id),
- /* K44 */ be_const_int(2),
- /* K45 */ be_nested_str_weak(MTR_X3A_X20_X3Ercv_X20Ack_X20_X20_X20_X28_X256i_X29_X20rid_X3D_X25i_X20exch_X3D_X25i_X20ack_X3D_X25s_X20_X25sfrom_X20_X5B_X25s_X5D_X3A_X25i),
- /* K46 */ be_nested_str_weak(_X7Breliable_X7D_X20),
- /* K47 */ be_nested_str_weak(),
- /* K48 */ be_nested_str_weak(commissioning),
- /* K49 */ be_nested_str_weak(process_incoming),
- /* K50 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i),
- /* K51 */ be_nested_str_weak(MTR_X3A_X20decode_X20header_X3A_X20local_session_id_X3D_X25i_X20message_counter_X3D_X25i),
- /* K52 */ be_nested_str_weak(get_session_by_local_session_id),
- /* K53 */ be_nested_str_weak(MTR_X3A_X20unknown_X20local_session_id_X3D),
- /* K54 */ be_nested_str_weak(counter_rcv_validate),
- /* K55 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Duplicate_X20encrypted_X20message_X20_X3D_X20),
- /* K56 */ be_nested_str_weak(_X20counter_X3D),
- /* K57 */ be_nested_str_weak(counter_rcv),
- /* K58 */ be_nested_str_weak(encrypt),
- /* K59 */ be_nested_str_weak(decrypt),
- /* K60 */ be_nested_str_weak(payload_idx),
- /* K61 */ be_const_int(1),
- /* K62 */ be_nested_str_weak(MTR_X3A_X20idx_X3D_X25i_X20clear_X3D_X25s),
- /* K63 */ be_nested_str_weak(MTR_X3A_X20_X3E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Decrypted_X20message_X3A_X20protocol_id_X3A),
- /* K64 */ be_nested_str_weak(protocol_id),
- /* K65 */ be_nested_str_weak(_X20opcode_X3D),
- /* K66 */ be_nested_str_weak(_X20exchange_id_X3D),
- /* K67 */ be_nested_str_weak(MTR_X3A_X20_X3Ercv_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20_X5B_X2502X_X2F_X2502X_X5D_X20rid_X3D_X25i_X20exch_X3D_X25i_X20ack_X3D_X25s_X20_X25sfrom_X20_X5B_X25s_X5D_X3A_X25i),
- /* K68 */ be_nested_str_weak(MTR_X3A_X20PROTOCOL_ID_SECURE_CHANNEL_X20),
- /* K69 */ be_nested_str_weak(inspect),
- /* K70 */ be_nested_str_weak(im),
- /* K71 */ be_nested_str_weak(process_incoming_ack),
- /* K72 */ be_nested_str_weak(send_enqueued),
- /* K73 */ be_nested_str_weak(MTR_X3A_X20ignoring_X20unhandled_X20protocol_id_X3A),
- /* K74 */ be_nested_str_weak(MTR_X3A_X20MessageHandler_X3A_X3Amsg_received_X20exception_X3A_X20),
- /* K75 */ be_nested_str_weak(_X3B),
- /* K76 */ be_nested_str_weak(debug),
- /* K77 */ be_nested_str_weak(traceback),
- }),
- be_str_weak(msg_received),
- &be_const_str_solidified,
- ( &(const binstruction[459]) { /* code */
- 0xA4120000, // 0000 IMPORT R4 K0
- 0x50140000, // 0001 LDBOOL R5 0 0
- 0xA80201B1, // 0002 EXBLK 0 #01B5
- 0xB81A0200, // 0003 GETNGBL R6 K1
- 0x8C180D02, // 0004 GETMET R6 R6 K2
- 0x8C200304, // 0005 GETMET R8 R1 K4
- 0x7C200200, // 0006 CALL R8 1
- 0x00220608, // 0007 ADD R8 K3 R8
- 0x54260003, // 0008 LDINT R9 4
- 0x7C180600, // 0009 CALL R6 3
- 0xB81A0A00, // 000A GETNGBL R6 K5
- 0x8C180D06, // 000B GETMET R6 R6 K6
- 0x5C200000, // 000C MOVE R8 R0
- 0x5C240200, // 000D MOVE R9 R1
- 0x5C280400, // 000E MOVE R10 R2
- 0x5C2C0600, // 000F MOVE R11 R3
- 0x7C180A00, // 0010 CALL R6 5
- 0x8C1C0D07, // 0011 GETMET R7 R6 K7
- 0x7C1C0200, // 0012 CALL R7 1
- 0x5C200E00, // 0013 MOVE R8 R7
- 0x74220002, // 0014 JMPT R8 #0018
- 0x50200000, // 0015 LDBOOL R8 0 0
- 0xA8040001, // 0016 EXBLK 1 1
- 0x80041000, // 0017 RET 1 R8
- 0x88200D08, // 0018 GETMBR R8 R6 K8
- 0x1C201109, // 0019 EQ R8 R8 K9
- 0x782200A9, // 001A JMPF R8 #00C5
- 0x88200D0A, // 001B GETMBR R8 R6 K10
- 0x1C201109, // 001C EQ R8 R8 K9
- 0x782200A6, // 001D JMPF R8 #00C5
- 0x8820010B, // 001E GETMBR R8 R0 K11
- 0x8820110C, // 001F GETMBR R8 R8 K12
- 0x8C20110D, // 0020 GETMET R8 R8 K13
- 0x88280D0E, // 0021 GETMBR R10 R6 K14
- 0x542E0059, // 0022 LDINT R11 90
- 0x7C200600, // 0023 CALL R8 3
- 0xB8260200, // 0024 GETNGBL R9 K1
- 0x8C241302, // 0025 GETMET R9 R9 K2
- 0x602C0008, // 0026 GETGBL R11 G8
- 0x88300D0E, // 0027 GETMBR R12 R6 K14
- 0x7C2C0200, // 0028 CALL R11 1
- 0x002E1E0B, // 0029 ADD R11 K15 R11
- 0x002C1710, // 002A ADD R11 R11 K16
- 0x60300008, // 002B GETGBL R12 G8
- 0x88341108, // 002C GETMBR R13 R8 K8
- 0x7C300200, // 002D CALL R12 1
- 0x002C160C, // 002E ADD R11 R11 R12
- 0x58300011, // 002F LDCONST R12 K17
- 0x7C240600, // 0030 CALL R9 3
- 0x780A0000, // 0031 JMPF R2 #0033
- 0x90222402, // 0032 SETMBR R8 K18 R2
- 0x780E0000, // 0033 JMPF R3 #0035
- 0x90222603, // 0034 SETMBR R8 K19 R3
- 0x90222800, // 0035 SETMBR R8 K20 R0
- 0x901A2A08, // 0036 SETMBR R6 K21 R8
- 0x88241116, // 0037 GETMBR R9 R8 K22
- 0x8C241317, // 0038 GETMET R9 R9 K23
- 0x882C0D18, // 0039 GETMBR R11 R6 K24
- 0x50300000, // 003A LDBOOL R12 0 0
- 0x7C240600, // 003B CALL R9 3
- 0x74260027, // 003C JMPT R9 #0065
- 0xB8260200, // 003D GETNGBL R9 K1
- 0x8C241302, // 003E GETMET R9 R9 K2
- 0x8C2C0919, // 003F GETMET R11 R4 K25
- 0x5834001A, // 0040 LDCONST R13 K26
- 0x88380D18, // 0041 GETMBR R14 R6 K24
- 0x883C1116, // 0042 GETMBR R15 R8 K22
- 0x8C3C1F1B, // 0043 GETMET R15 R15 K27
- 0x7C3C0200, // 0044 CALL R15 1
- 0x7C2C0800, // 0045 CALL R11 4
- 0x58300011, // 0046 LDCONST R12 K17
- 0x7C240600, // 0047 CALL R9 3
- 0x88240D1C, // 0048 GETMBR R9 R6 K28
- 0x78260017, // 0049 JMPF R9 #0062
- 0x8C240D1D, // 004A GETMET R9 R6 K29
- 0x502C0000, // 004B LDBOOL R11 0 0
- 0x7C240400, // 004C CALL R9 2
- 0x8C28131E, // 004D GETMET R10 R9 K30
- 0x7C280200, // 004E CALL R10 1
- 0xB82A0200, // 004F GETNGBL R10 K1
- 0x8C281502, // 0050 GETMET R10 R10 K2
- 0x8C300919, // 0051 GETMET R12 R4 K25
- 0x5838001F, // 0052 LDCONST R14 K31
- 0x883C1315, // 0053 GETMBR R15 R9 K21
- 0x883C1F08, // 0054 GETMBR R15 R15 K8
- 0x88401320, // 0055 GETMBR R16 R9 K32
- 0x88441318, // 0056 GETMBR R17 R9 K24
- 0x7C300A00, // 0057 CALL R12 5
- 0x54360003, // 0058 LDINT R13 4
- 0x7C280600, // 0059 CALL R10 3
- 0x8C280121, // 005A GETMET R10 R0 K33
- 0x88301322, // 005B GETMBR R12 R9 K34
- 0x88341323, // 005C GETMBR R13 R9 K35
- 0x88381324, // 005D GETMBR R14 R9 K36
- 0x4C3C0000, // 005E LDNIL R15
- 0x88401315, // 005F GETMBR R16 R9 K21
- 0x88402108, // 0060 GETMBR R16 R16 K8
- 0x7C280C00, // 0061 CALL R10 6
- 0x50240000, // 0062 LDBOOL R9 0 0
- 0xA8040001, // 0063 EXBLK 1 1
- 0x80041200, // 0064 RET 1 R9
- 0x8C240D25, // 0065 GETMET R9 R6 K37
- 0x7C240200, // 0066 CALL R9 1
- 0x74260002, // 0067 JMPT R9 #006B
- 0x50240000, // 0068 LDBOOL R9 0 0
- 0xA8040001, // 0069 EXBLK 1 1
- 0x80041200, // 006A RET 1 R9
- 0x8824010B, // 006B GETMBR R9 R0 K11
- 0x8C241326, // 006C GETMET R9 R9 K38
- 0x882C0D20, // 006D GETMBR R11 R6 K32
- 0x7C240400, // 006E CALL R9 2
- 0x88240D27, // 006F GETMBR R9 R6 K39
- 0x542A000F, // 0070 LDINT R10 16
- 0x2024120A, // 0071 NE R9 R9 R10
- 0x78260018, // 0072 JMPF R9 #008C
- 0xB8260A00, // 0073 GETNGBL R9 K5
- 0x8C241328, // 0074 GETMET R9 R9 K40
- 0x882C0D27, // 0075 GETMBR R11 R6 K39
- 0x7C240400, // 0076 CALL R9 2
- 0x5C281200, // 0077 MOVE R10 R9
- 0x742A0004, // 0078 JMPT R10 #007E
- 0x8C280919, // 0079 GETMET R10 R4 K25
- 0x58300029, // 007A LDCONST R12 K41
- 0x88340D27, // 007B GETMBR R13 R6 K39
- 0x7C280600, // 007C CALL R10 3
- 0x5C241400, // 007D MOVE R9 R10
- 0xB82A0200, // 007E GETNGBL R10 K1
- 0x8C281502, // 007F GETMET R10 R10 K2
- 0x8C300919, // 0080 GETMET R12 R4 K25
- 0x5838002A, // 0081 LDCONST R14 K42
- 0x883C1108, // 0082 GETMBR R15 R8 K8
- 0x5C401200, // 0083 MOVE R16 R9
- 0x88440D18, // 0084 GETMBR R17 R6 K24
- 0x88480D2B, // 0085 GETMBR R18 R6 K43
- 0x5C4C0400, // 0086 MOVE R19 R2
- 0x5C500600, // 0087 MOVE R20 R3
- 0x7C301000, // 0088 CALL R12 8
- 0x5834002C, // 0089 LDCONST R13 K44
- 0x7C280600, // 008A CALL R10 3
- 0x70020013, // 008B JMP #00A0
- 0xB8260200, // 008C GETNGBL R9 K1
- 0x8C241302, // 008D GETMET R9 R9 K2
- 0x8C2C0919, // 008E GETMET R11 R4 K25
- 0x5834002D, // 008F LDCONST R13 K45
- 0x88381108, // 0090 GETMBR R14 R8 K8
- 0x883C0D18, // 0091 GETMBR R15 R6 K24
- 0x88400D1C, // 0092 GETMBR R16 R6 K28
- 0x78420001, // 0093 JMPF R16 #0096
- 0x5840002E, // 0094 LDCONST R16 K46
- 0x70020000, // 0095 JMP #0097
- 0x5840002F, // 0096 LDCONST R16 K47
- 0x88440D2B, // 0097 GETMBR R17 R6 K43
- 0x60480008, // 0098 GETGBL R18 G8
- 0x884C0D20, // 0099 GETMBR R19 R6 K32
- 0x7C480200, // 009A CALL R18 1
- 0x5C4C0400, // 009B MOVE R19 R2
- 0x5C500600, // 009C MOVE R20 R3
- 0x7C2C1200, // 009D CALL R11 9
- 0x58300011, // 009E LDCONST R12 K17
- 0x7C240600, // 009F CALL R9 3
- 0x88240130, // 00A0 GETMBR R9 R0 K48
- 0x8C241331, // 00A1 GETMET R9 R9 K49
- 0x5C2C0C00, // 00A2 MOVE R11 R6
- 0x7C240400, // 00A3 CALL R9 2
- 0x5C141200, // 00A4 MOVE R5 R9
- 0x5C240A00, // 00A5 MOVE R9 R5
- 0x74260019, // 00A6 JMPT R9 #00C1
- 0x88240D1C, // 00A7 GETMBR R9 R6 K28
- 0x78260017, // 00A8 JMPF R9 #00C1
- 0x8C240D1D, // 00A9 GETMET R9 R6 K29
- 0x502C0000, // 00AA LDBOOL R11 0 0
- 0x7C240400, // 00AB CALL R9 2
- 0x8C28131E, // 00AC GETMET R10 R9 K30
- 0x7C280200, // 00AD CALL R10 1
- 0xB82A0200, // 00AE GETNGBL R10 K1
- 0x8C281502, // 00AF GETMET R10 R10 K2
- 0x8C300919, // 00B0 GETMET R12 R4 K25
- 0x58380032, // 00B1 LDCONST R14 K50
- 0x883C1315, // 00B2 GETMBR R15 R9 K21
- 0x883C1F08, // 00B3 GETMBR R15 R15 K8
- 0x88401320, // 00B4 GETMBR R16 R9 K32
- 0x88441318, // 00B5 GETMBR R17 R9 K24
- 0x7C300A00, // 00B6 CALL R12 5
- 0x58340011, // 00B7 LDCONST R13 K17
- 0x7C280600, // 00B8 CALL R10 3
- 0x8C280121, // 00B9 GETMET R10 R0 K33
- 0x88301322, // 00BA GETMBR R12 R9 K34
- 0x88341323, // 00BB GETMBR R13 R9 K35
- 0x88381324, // 00BC GETMBR R14 R9 K36
- 0x4C3C0000, // 00BD LDNIL R15
- 0x88401315, // 00BE GETMBR R16 R9 K21
- 0x88402108, // 00BF GETMBR R16 R16 K8
- 0x7C280C00, // 00C0 CALL R10 6
- 0x50240200, // 00C1 LDBOOL R9 1 0
- 0xA8040001, // 00C2 EXBLK 1 1
- 0x80041200, // 00C3 RET 1 R9
- 0x700200EB, // 00C4 JMP #01B1
- 0xB8220200, // 00C5 GETNGBL R8 K1
- 0x8C201102, // 00C6 GETMET R8 R8 K2
- 0x8C280919, // 00C7 GETMET R10 R4 K25
- 0x58300033, // 00C8 LDCONST R12 K51
- 0x88340D08, // 00C9 GETMBR R13 R6 K8
- 0x88380D18, // 00CA GETMBR R14 R6 K24
- 0x7C280800, // 00CB CALL R10 4
- 0x582C0011, // 00CC LDCONST R11 K17
- 0x7C200600, // 00CD CALL R8 3
- 0x8820010B, // 00CE GETMBR R8 R0 K11
- 0x8820110C, // 00CF GETMBR R8 R8 K12
- 0x8C201134, // 00D0 GETMET R8 R8 K52
- 0x88280D08, // 00D1 GETMBR R10 R6 K8
- 0x7C200400, // 00D2 CALL R8 2
- 0x4C240000, // 00D3 LDNIL R9
- 0x1C241009, // 00D4 EQ R9 R8 R9
- 0x7826000A, // 00D5 JMPF R9 #00E1
- 0xB8260200, // 00D6 GETNGBL R9 K1
- 0x8C241302, // 00D7 GETMET R9 R9 K2
- 0x602C0008, // 00D8 GETGBL R11 G8
- 0x88300D08, // 00D9 GETMBR R12 R6 K8
- 0x7C2C0200, // 00DA CALL R11 1
- 0x002E6A0B, // 00DB ADD R11 K53 R11
- 0x5830002C, // 00DC LDCONST R12 K44
- 0x7C240600, // 00DD CALL R9 3
- 0x50240000, // 00DE LDBOOL R9 0 0
- 0xA8040001, // 00DF EXBLK 1 1
- 0x80041200, // 00E0 RET 1 R9
- 0x780A0000, // 00E1 JMPF R2 #00E3
- 0x90222402, // 00E2 SETMBR R8 K18 R2
- 0x780E0000, // 00E3 JMPF R3 #00E5
- 0x90222603, // 00E4 SETMBR R8 K19 R3
- 0x90222800, // 00E5 SETMBR R8 K20 R0
- 0x901A2A08, // 00E6 SETMBR R6 K21 R8
- 0x8C241136, // 00E7 GETMET R9 R8 K54
- 0x882C0D18, // 00E8 GETMBR R11 R6 K24
- 0x50300200, // 00E9 LDBOOL R12 1 0
- 0x7C240600, // 00EA CALL R9 3
- 0x7426002B, // 00EB JMPT R9 #0118
- 0xB8260200, // 00EC GETNGBL R9 K1
- 0x8C241302, // 00ED GETMET R9 R9 K2
- 0x602C0008, // 00EE GETGBL R11 G8
- 0x88300D18, // 00EF GETMBR R12 R6 K24
- 0x7C2C0200, // 00F0 CALL R11 1
- 0x002E6E0B, // 00F1 ADD R11 K55 R11
- 0x002C1738, // 00F2 ADD R11 R11 K56
- 0x60300008, // 00F3 GETGBL R12 G8
- 0x88341139, // 00F4 GETMBR R13 R8 K57
- 0x7C300200, // 00F5 CALL R12 1
- 0x002C160C, // 00F6 ADD R11 R11 R12
- 0x58300011, // 00F7 LDCONST R12 K17
- 0x7C240600, // 00F8 CALL R9 3
- 0x88240D1C, // 00F9 GETMBR R9 R6 K28
- 0x78260019, // 00FA JMPF R9 #0115
- 0x8C240D1D, // 00FB GETMET R9 R6 K29
- 0x502C0000, // 00FC LDBOOL R11 0 0
- 0x7C240400, // 00FD CALL R9 2
- 0x8C28131E, // 00FE GETMET R10 R9 K30
- 0x7C280200, // 00FF CALL R10 1
- 0x8C28133A, // 0100 GETMET R10 R9 K58
- 0x7C280200, // 0101 CALL R10 1
- 0xB82A0200, // 0102 GETNGBL R10 K1
- 0x8C281502, // 0103 GETMET R10 R10 K2
- 0x8C300919, // 0104 GETMET R12 R4 K25
- 0x5838001F, // 0105 LDCONST R14 K31
- 0x883C1315, // 0106 GETMBR R15 R9 K21
- 0x883C1F08, // 0107 GETMBR R15 R15 K8
- 0x88401320, // 0108 GETMBR R16 R9 K32
- 0x88441318, // 0109 GETMBR R17 R9 K24
- 0x7C300A00, // 010A CALL R12 5
- 0x54360003, // 010B LDINT R13 4
- 0x7C280600, // 010C CALL R10 3
- 0x8C280121, // 010D GETMET R10 R0 K33
- 0x88301322, // 010E GETMBR R12 R9 K34
- 0x88341323, // 010F GETMBR R13 R9 K35
- 0x88381324, // 0110 GETMBR R14 R9 K36
- 0x4C3C0000, // 0111 LDNIL R15
- 0x88401315, // 0112 GETMBR R16 R9 K21
- 0x88402108, // 0113 GETMBR R16 R16 K8
- 0x7C280C00, // 0114 CALL R10 6
- 0x50240000, // 0115 LDBOOL R9 0 0
- 0xA8040001, // 0116 EXBLK 1 1
- 0x80041200, // 0117 RET 1 R9
- 0x8C240D3B, // 0118 GETMET R9 R6 K59
- 0x7C240200, // 0119 CALL R9 1
- 0x5C281200, // 011A MOVE R10 R9
- 0x742A0002, // 011B JMPT R10 #011F
- 0x50280000, // 011C LDBOOL R10 0 0
- 0xA8040001, // 011D EXBLK 1 1
- 0x80041400, // 011E RET 1 R10
- 0x88280D3C, // 011F GETMBR R10 R6 K60
- 0x0428153D, // 0120 SUB R10 R10 K61
- 0x402A120A, // 0121 CONNECT R10 K9 R10
- 0x882C0D22, // 0122 GETMBR R11 R6 K34
- 0x9428160A, // 0123 GETIDX R10 R11 R10
- 0x901A440A, // 0124 SETMBR R6 K34 R10
- 0x88280D22, // 0125 GETMBR R10 R6 K34
- 0x40281409, // 0126 CONNECT R10 R10 R9
- 0xB82A0200, // 0127 GETNGBL R10 K1
- 0x8C281502, // 0128 GETMET R10 R10 K2
- 0x8C300919, // 0129 GETMET R12 R4 K25
- 0x5838003E, // 012A LDCONST R14 K62
- 0x883C0D3C, // 012B GETMBR R15 R6 K60
- 0x88400D22, // 012C GETMBR R16 R6 K34
- 0x8C402104, // 012D GETMET R16 R16 K4
- 0x7C400200, // 012E CALL R16 1
- 0x7C300800, // 012F CALL R12 4
- 0x54360003, // 0130 LDINT R13 4
- 0x7C280600, // 0131 CALL R10 3
- 0x8C280D25, // 0132 GETMET R10 R6 K37
- 0x7C280200, // 0133 CALL R10 1
- 0xB82A0200, // 0134 GETNGBL R10 K1
- 0x8C281502, // 0135 GETMET R10 R10 K2
- 0x60300008, // 0136 GETGBL R12 G8
- 0x88340D40, // 0137 GETMBR R13 R6 K64
- 0x7C300200, // 0138 CALL R12 1
- 0x00327E0C, // 0139 ADD R12 K63 R12
- 0x00301941, // 013A ADD R12 R12 K65
- 0x60340008, // 013B GETGBL R13 G8
- 0x88380D27, // 013C GETMBR R14 R6 K39
- 0x7C340200, // 013D CALL R13 1
- 0x0030180D, // 013E ADD R12 R12 R13
- 0x00301942, // 013F ADD R12 R12 K66
- 0x60340008, // 0140 GETGBL R13 G8
- 0x88380D2B, // 0141 GETMBR R14 R6 K43
- 0x543EFFFE, // 0142 LDINT R15 65535
- 0x2C381C0F, // 0143 AND R14 R14 R15
- 0x7C340200, // 0144 CALL R13 1
- 0x0030180D, // 0145 ADD R12 R12 R13
- 0x58340011, // 0146 LDCONST R13 K17
- 0x7C280600, // 0147 CALL R10 3
- 0xB82A0200, // 0148 GETNGBL R10 K1
- 0x8C281502, // 0149 GETMET R10 R10 K2
- 0x8C300919, // 014A GETMET R12 R4 K25
- 0x58380043, // 014B LDCONST R14 K67
- 0x883C1108, // 014C GETMBR R15 R8 K8
- 0x88400D40, // 014D GETMBR R16 R6 K64
- 0x88440D27, // 014E GETMBR R17 R6 K39
- 0x88480D18, // 014F GETMBR R18 R6 K24
- 0x884C0D2B, // 0150 GETMBR R19 R6 K43
- 0x60500008, // 0151 GETGBL R20 G8
- 0x88540D20, // 0152 GETMBR R21 R6 K32
- 0x7C500200, // 0153 CALL R20 1
- 0x88540D1C, // 0154 GETMBR R21 R6 K28
- 0x78560001, // 0155 JMPF R21 #0158
- 0x5854002E, // 0156 LDCONST R21 K46
- 0x70020000, // 0157 JMP #0159
- 0x5854002F, // 0158 LDCONST R21 K47
- 0x5C580400, // 0159 MOVE R22 R2
- 0x5C5C0600, // 015A MOVE R23 R3
- 0x7C301600, // 015B CALL R12 11
- 0x58340011, // 015C LDCONST R13 K17
- 0x7C280600, // 015D CALL R10 3
- 0x8828010B, // 015E GETMBR R10 R0 K11
- 0x8C281526, // 015F GETMET R10 R10 K38
- 0x88300D20, // 0160 GETMBR R12 R6 K32
- 0x7C280400, // 0161 CALL R10 2
- 0x88280D40, // 0162 GETMBR R10 R6 K64
- 0x1C2C1509, // 0163 EQ R11 R10 K9
- 0x782E0018, // 0164 JMPF R11 #017E
- 0xB82E0200, // 0165 GETNGBL R11 K1
- 0x8C2C1702, // 0166 GETMET R11 R11 K2
- 0xB8360A00, // 0167 GETNGBL R13 K5
- 0x8C341B45, // 0168 GETMET R13 R13 K69
- 0x5C3C0C00, // 0169 MOVE R15 R6
- 0x7C340400, // 016A CALL R13 2
- 0x0036880D, // 016B ADD R13 K68 R13
- 0x58380011, // 016C LDCONST R14 K17
- 0x7C2C0600, // 016D CALL R11 3
- 0x882C0D27, // 016E GETMBR R11 R6 K39
- 0x5432000F, // 016F LDINT R12 16
- 0x1C2C160C, // 0170 EQ R11 R11 R12
- 0x782E0009, // 0171 JMPF R11 #017C
- 0x882C0146, // 0172 GETMBR R11 R0 K70
- 0x8C2C1747, // 0173 GETMET R11 R11 K71
- 0x5C340C00, // 0174 MOVE R13 R6
- 0x7C2C0400, // 0175 CALL R11 2
- 0x5C141600, // 0176 MOVE R5 R11
- 0x78160003, // 0177 JMPF R5 #017C
- 0x882C0146, // 0178 GETMBR R11 R0 K70
- 0x8C2C1748, // 0179 GETMET R11 R11 K72
- 0x5C340000, // 017A MOVE R13 R0
- 0x7C2C0400, // 017B CALL R11 2
- 0x50140200, // 017C LDBOOL R5 1 0
- 0x70020032, // 017D JMP #01B1
- 0x1C2C153D, // 017E EQ R11 R10 K61
- 0x782E0028, // 017F JMPF R11 #01A9
- 0x882C0146, // 0180 GETMBR R11 R0 K70
- 0x8C2C1731, // 0181 GETMET R11 R11 K49
- 0x5C340C00, // 0182 MOVE R13 R6
- 0x7C2C0400, // 0183 CALL R11 2
- 0x5C141600, // 0184 MOVE R5 R11
- 0x78160004, // 0185 JMPF R5 #018B
- 0x882C0146, // 0186 GETMBR R11 R0 K70
- 0x8C2C1748, // 0187 GETMET R11 R11 K72
- 0x5C340000, // 0188 MOVE R13 R0
- 0x7C2C0400, // 0189 CALL R11 2
- 0x7002001B, // 018A JMP #01A7
- 0x882C0D1C, // 018B GETMBR R11 R6 K28
- 0x782E0019, // 018C JMPF R11 #01A7
- 0x8C2C0D1D, // 018D GETMET R11 R6 K29
- 0x50340200, // 018E LDBOOL R13 1 0
- 0x7C2C0400, // 018F CALL R11 2
- 0x8C30171E, // 0190 GETMET R12 R11 K30
- 0x7C300200, // 0191 CALL R12 1
- 0x8C30173A, // 0192 GETMET R12 R11 K58
- 0x7C300200, // 0193 CALL R12 1
- 0xB8320200, // 0194 GETNGBL R12 K1
- 0x8C301902, // 0195 GETMET R12 R12 K2
- 0x8C380919, // 0196 GETMET R14 R4 K25
- 0x5840001F, // 0197 LDCONST R16 K31
- 0x88441715, // 0198 GETMBR R17 R11 K21
- 0x88442308, // 0199 GETMBR R17 R17 K8
- 0x88481720, // 019A GETMBR R18 R11 K32
- 0x884C1718, // 019B GETMBR R19 R11 K24
- 0x7C380A00, // 019C CALL R14 5
- 0x583C0011, // 019D LDCONST R15 K17
- 0x7C300600, // 019E CALL R12 3
- 0x8C300121, // 019F GETMET R12 R0 K33
- 0x88381722, // 01A0 GETMBR R14 R11 K34
- 0x883C1723, // 01A1 GETMBR R15 R11 K35
- 0x88401724, // 01A2 GETMBR R16 R11 K36
- 0x88441718, // 01A3 GETMBR R17 R11 K24
- 0x88481715, // 01A4 GETMBR R18 R11 K21
- 0x88482508, // 01A5 GETMBR R18 R18 K8
- 0x7C300C00, // 01A6 CALL R12 6
- 0x50140200, // 01A7 LDBOOL R5 1 0
- 0x70020007, // 01A8 JMP #01B1
- 0xB82E0200, // 01A9 GETNGBL R11 K1
- 0x8C2C1702, // 01AA GETMET R11 R11 K2
- 0x60340008, // 01AB GETGBL R13 G8
- 0x5C381400, // 01AC MOVE R14 R10
- 0x7C340200, // 01AD CALL R13 1
- 0x0036920D, // 01AE ADD R13 K73 R13
- 0x58380011, // 01AF LDCONST R14 K17
- 0x7C2C0600, // 01B0 CALL R11 3
- 0xA8040001, // 01B1 EXBLK 1 1
- 0x80040A00, // 01B2 RET 1 R5
- 0xA8040001, // 01B3 EXBLK 1 1
- 0x70020014, // 01B4 JMP #01CA
- 0xAC180002, // 01B5 CATCH R6 0 2
- 0x70020011, // 01B6 JMP #01C9
- 0xB8220200, // 01B7 GETNGBL R8 K1
- 0x8C201102, // 01B8 GETMET R8 R8 K2
- 0x60280008, // 01B9 GETGBL R10 G8
- 0x5C2C0C00, // 01BA MOVE R11 R6
- 0x7C280200, // 01BB CALL R10 1
- 0x002A940A, // 01BC ADD R10 K74 R10
- 0x0028154B, // 01BD ADD R10 R10 K75
- 0x602C0008, // 01BE GETGBL R11 G8
- 0x5C300E00, // 01BF MOVE R12 R7
- 0x7C2C0200, // 01C0 CALL R11 1
- 0x0028140B, // 01C1 ADD R10 R10 R11
- 0x7C200400, // 01C2 CALL R8 2
- 0xA4229800, // 01C3 IMPORT R8 K76
- 0x8C24114D, // 01C4 GETMET R9 R8 K77
- 0x7C240200, // 01C5 CALL R9 1
- 0x50240000, // 01C6 LDBOOL R9 0 0
- 0x80041200, // 01C7 RET 1 R9
- 0x70020000, // 01C8 JMP #01CA
- 0xB0080000, // 01C9 RAISE 2 R0 R0
- 0x80000000, // 01CA RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: send_response
-********************************************************************/
-be_local_closure(Matter_MessageHandler_send_response, /* name */
- be_nested_proto(
- 13, /* nstack */
- 6, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(msg_send),
- }),
- be_str_weak(send_response),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88180100, // 0000 GETMBR R6 R0 K0
- 0x8C180D01, // 0001 GETMET R6 R6 K1
- 0x5C200200, // 0002 MOVE R8 R1
- 0x5C240400, // 0003 MOVE R9 R2
- 0x5C280600, // 0004 MOVE R10 R3
- 0x5C2C0800, // 0005 MOVE R11 R4
- 0x5C300A00, // 0006 MOVE R12 R5
- 0x7C180C00, // 0007 CALL R6 6
- 0x80000000, // 0008 RET 0
+ 0xB80A0400, // 000B GETNGBL R2 K2
+ 0x8C080507, // 000C GETMET R2 R2 K7
+ 0x5C100000, // 000D MOVE R4 R0
+ 0x7C080400, // 000E CALL R2 2
+ 0x90020C02, // 000F SETMBR R0 K6 R2
+ 0x80000000, // 0010 RET 0
})
)
);
@@ -712,18 +820,21 @@ be_local_closure(Matter_MessageHandler_send_response, /* name */
** Solidified class: Matter_MessageHandler
********************************************************************/
be_local_class(Matter_MessageHandler,
- 3,
+ 4,
NULL,
- be_nested_map(8,
+ be_nested_map(11,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(commissioning, 5), be_const_var(1) },
- { be_const_key_weak(every_second, -1), be_const_closure(Matter_MessageHandler_every_second_closure) },
- { be_const_key_weak(every_250ms, -1), be_const_closure(Matter_MessageHandler_every_250ms_closure) },
- { be_const_key_weak(device, 4), be_const_var(0) },
- { be_const_key_weak(im, 6), be_const_var(2) },
- { be_const_key_weak(msg_received, 2), be_const_closure(Matter_MessageHandler_msg_received_closure) },
+ { be_const_key_weak(im, -1), be_const_var(2) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_MessageHandler_init_closure) },
- { be_const_key_weak(send_response, -1), be_const_closure(Matter_MessageHandler_send_response_closure) },
+ { be_const_key_weak(send_encrypted_ack, -1), be_const_closure(Matter_MessageHandler_send_encrypted_ack_closure) },
+ { be_const_key_weak(control_message, -1), be_const_var(3) },
+ { be_const_key_weak(every_250ms, 3), be_const_closure(Matter_MessageHandler_every_250ms_closure) },
+ { be_const_key_weak(device, -1), be_const_var(0) },
+ { be_const_key_weak(msg_received, -1), be_const_closure(Matter_MessageHandler_msg_received_closure) },
+ { be_const_key_weak(send_response, 4), be_const_closure(Matter_MessageHandler_send_response_closure) },
+ { be_const_key_weak(commissioning, -1), be_const_var(1) },
+ { be_const_key_weak(send_simple_ack, 1), be_const_closure(Matter_MessageHandler_send_simple_ack_closure) },
+ { be_const_key_weak(every_second, 0), be_const_closure(Matter_MessageHandler_every_second_closure) },
})),
be_str_weak(Matter_MessageHandler)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Root.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Root.h
index c64ebc2d1..b8eed6db6 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Root.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Root.h
@@ -110,7 +110,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[883]) { /* code */
+ ( &(const binstruction[888]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
0x88100902, // 0002 GETMBR R4 R4 K2
@@ -167,11 +167,11 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x50280000, // 0035 LDBOOL R10 0 0
0x7C1C0600, // 0036 CALL R7 3
0x80040E00, // 0037 RET 1 R7
- 0x70020338, // 0038 JMP #0372
+ 0x7002033D, // 0038 JMP #0377
0x541E0031, // 0039 LDINT R7 50
0x1C1C0A07, // 003A EQ R7 R5 R7
0x781E0000, // 003B JMPF R7 #003D
- 0x70020334, // 003C JMP #0372
+ 0x70020339, // 003C JMP #0377
0x541E0032, // 003D LDINT R7 51
0x1C1C0A07, // 003E EQ R7 R5 R7
0x781E00DC, // 003F JMPF R7 #011D
@@ -395,11 +395,11 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x50280000, // 0119 LDBOOL R10 0 0
0x7C1C0600, // 011A CALL R7 3
0x80040E00, // 011B RET 1 R7
- 0x70020254, // 011C JMP #0372
+ 0x70020259, // 011C JMP #0377
0x541E0033, // 011D LDINT R7 52
0x1C1C0A07, // 011E EQ R7 R5 R7
0x781E0000, // 011F JMPF R7 #0121
- 0x70020250, // 0120 JMP #0372
+ 0x70020255, // 0120 JMP #0377
0x541E0037, // 0121 LDINT R7 56
0x1C1C0A07, // 0122 EQ R7 R5 R7
0x781E002C, // 0123 JMPF R7 #0151
@@ -447,10 +447,10 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x5C2C0E00, // 014D MOVE R11 R7
0x7C200600, // 014E CALL R8 3
0x80041000, // 014F RET 1 R8
- 0x70020220, // 0150 JMP #0372
+ 0x70020225, // 0150 JMP #0377
0x541E003D, // 0151 LDINT R7 62
0x1C1C0A07, // 0152 EQ R7 R5 R7
- 0x781E008B, // 0153 JMPF R7 #01E0
+ 0x781E0090, // 0153 JMPF R7 #01E5
0x1C1C0D05, // 0154 EQ R7 R6 K5
0x781E0025, // 0155 JMPF R7 #017C
0x8C1C0911, // 0156 GETMET R7 R4 K17
@@ -490,7 +490,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0xAC200200, // 0178 CATCH R8 1 0
0xB0080000, // 0179 RAISE 2 R0 R0
0x80040E00, // 017A RET 1 R7
- 0x70020062, // 017B JMP #01DF
+ 0x70020067, // 017B JMP #01E4
0x1C1C0D09, // 017C EQ R7 R6 K9
0x781E003C, // 017D JMPF R7 #01BB
0x8C1C0911, // 017E GETMET R7 R4 K17
@@ -553,7 +553,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0xAC200200, // 01B7 CATCH R8 1 0
0xB0080000, // 01B8 RAISE 2 R0 R0
0x80040E00, // 01B9 RET 1 R7
- 0x70020023, // 01BA JMP #01DF
+ 0x70020028, // 01BA JMP #01E4
0x1C1C0D0D, // 01BB EQ R7 R6 K13
0x781E0007, // 01BC JMPF R7 #01C5
0x8C1C0906, // 01BD GETMET R7 R4 K6
@@ -563,7 +563,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x88281543, // 01C1 GETMBR R10 R10 K67
0x7C1C0600, // 01C2 CALL R7 3
0x80040E00, // 01C3 RET 1 R7
- 0x70020019, // 01C4 JMP #01DF
+ 0x7002001E, // 01C4 JMP #01E4
0x1C1C0D0F, // 01C5 EQ R7 R6 K15
0x781E0009, // 01C6 JMPF R7 #01D1
0x881C0133, // 01C7 GETMBR R7 R0 K51
@@ -575,425 +575,430 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
0x5C2C0E00, // 01CD MOVE R11 R7
0x7C200600, // 01CE CALL R8 3
0x80041000, // 01CF RET 1 R8
- 0x7002000D, // 01D0 JMP #01DF
+ 0x70020012, // 01D0 JMP #01E4
0x541E0003, // 01D1 LDINT R7 4
0x1C1C0C07, // 01D2 EQ R7 R6 R7
0x781E0000, // 01D3 JMPF R7 #01D5
- 0x70020009, // 01D4 JMP #01DF
+ 0x7002000E, // 01D4 JMP #01E4
0x541E0004, // 01D5 LDINT R7 5
0x1C1C0C07, // 01D6 EQ R7 R6 R7
- 0x781E0006, // 01D7 JMPF R7 #01DF
- 0x8C1C0906, // 01D8 GETMET R7 R4 K6
- 0x8824090E, // 01D9 GETMBR R9 R4 K14
- 0x88280345, // 01DA GETMBR R10 R1 K69
- 0x8C281539, // 01DB GETMET R10 R10 K57
- 0x7C280200, // 01DC CALL R10 1
- 0x7C1C0600, // 01DD CALL R7 3
- 0x80040E00, // 01DE RET 1 R7
- 0x70020191, // 01DF JMP #0372
- 0x541E003B, // 01E0 LDINT R7 60
- 0x1C1C0A07, // 01E1 EQ R7 R5 R7
- 0x781E003C, // 01E2 JMPF R7 #0220
- 0x1C1C0D05, // 01E3 EQ R7 R6 K5
- 0x781E0012, // 01E4 JMPF R7 #01F8
- 0x881C0133, // 01E5 GETMBR R7 R0 K51
- 0x8C1C0F46, // 01E6 GETMET R7 R7 K70
- 0x7C1C0200, // 01E7 CALL R7 1
- 0x88200133, // 01E8 GETMBR R8 R0 K51
- 0x8C201147, // 01E9 GETMET R8 R8 K71
- 0x7C200200, // 01EA CALL R8 1
- 0x781E0004, // 01EB JMPF R7 #01F1
- 0x78220001, // 01EC JMPF R8 #01EF
- 0x5824000D, // 01ED LDCONST R9 K13
- 0x70020000, // 01EE JMP #01F0
- 0x58240009, // 01EF LDCONST R9 K9
- 0x70020000, // 01F0 JMP #01F2
- 0x58240005, // 01F1 LDCONST R9 K5
- 0x8C280906, // 01F2 GETMET R10 R4 K6
- 0x8830090E, // 01F3 GETMBR R12 R4 K14
- 0x5C341200, // 01F4 MOVE R13 R9
- 0x7C280600, // 01F5 CALL R10 3
- 0x80041400, // 01F6 RET 1 R10
- 0x70020026, // 01F7 JMP #021F
- 0x1C1C0D09, // 01F8 EQ R7 R6 K9
- 0x781E0011, // 01F9 JMPF R7 #020C
- 0x881C0133, // 01FA GETMBR R7 R0 K51
- 0x881C0F48, // 01FB GETMBR R7 R7 K72
- 0x4C200000, // 01FC LDNIL R8
- 0x20200E08, // 01FD NE R8 R7 R8
- 0x78220006, // 01FE JMPF R8 #0206
- 0x8C200906, // 01FF GETMET R8 R4 K6
- 0x8828090C, // 0200 GETMBR R10 R4 K12
- 0x8C2C0F39, // 0201 GETMET R11 R7 K57
- 0x7C2C0200, // 0202 CALL R11 1
- 0x7C200600, // 0203 CALL R8 3
- 0x80041000, // 0204 RET 1 R8
- 0x70020004, // 0205 JMP #020B
- 0x8C200906, // 0206 GETMET R8 R4 K6
- 0x88280918, // 0207 GETMBR R10 R4 K24
- 0x4C2C0000, // 0208 LDNIL R11
- 0x7C200600, // 0209 CALL R8 3
- 0x80041000, // 020A RET 1 R8
- 0x70020012, // 020B JMP #021F
- 0x1C1C0D0D, // 020C EQ R7 R6 K13
- 0x781E0010, // 020D JMPF R7 #021F
- 0x881C0133, // 020E GETMBR R7 R0 K51
- 0x881C0F48, // 020F GETMBR R7 R7 K72
- 0x4C200000, // 0210 LDNIL R8
- 0x20200E08, // 0211 NE R8 R7 R8
- 0x78220006, // 0212 JMPF R8 #021A
- 0x8C200906, // 0213 GETMET R8 R4 K6
- 0x8828090C, // 0214 GETMBR R10 R4 K12
- 0x8C2C0F3E, // 0215 GETMET R11 R7 K62
- 0x7C2C0200, // 0216 CALL R11 1
- 0x7C200600, // 0217 CALL R8 3
- 0x80041000, // 0218 RET 1 R8
- 0x70020004, // 0219 JMP #021F
- 0x8C200906, // 021A GETMET R8 R4 K6
- 0x88280918, // 021B GETMBR R10 R4 K24
- 0x4C2C0000, // 021C LDNIL R11
- 0x7C200600, // 021D CALL R8 3
- 0x80041000, // 021E RET 1 R8
- 0x70020151, // 021F JMP #0372
- 0x541E0027, // 0220 LDINT R7 40
- 0x1C1C0A07, // 0221 EQ R7 R5 R7
- 0x781E00AE, // 0222 JMPF R7 #02D2
- 0x1C1C0D05, // 0223 EQ R7 R6 K5
- 0x781E0005, // 0224 JMPF R7 #022B
- 0x8C1C0906, // 0225 GETMET R7 R4 K6
- 0x8824090C, // 0226 GETMBR R9 R4 K12
- 0x58280009, // 0227 LDCONST R10 K9
- 0x7C1C0600, // 0228 CALL R7 3
- 0x80040E00, // 0229 RET 1 R7
- 0x700200A5, // 022A JMP #02D1
- 0x1C1C0D09, // 022B EQ R7 R6 K9
- 0x781E0005, // 022C JMPF R7 #0233
- 0x8C1C0906, // 022D GETMET R7 R4 K6
- 0x88240916, // 022E GETMBR R9 R4 K22
- 0x58280049, // 022F LDCONST R10 K73
- 0x7C1C0600, // 0230 CALL R7 3
- 0x80040E00, // 0231 RET 1 R7
- 0x7002009D, // 0232 JMP #02D1
- 0x1C1C0D0D, // 0233 EQ R7 R6 K13
- 0x781E0006, // 0234 JMPF R7 #023C
- 0x8C1C0906, // 0235 GETMET R7 R4 K6
- 0x8824090C, // 0236 GETMBR R9 R4 K12
- 0x88280133, // 0237 GETMBR R10 R0 K51
- 0x8828154A, // 0238 GETMBR R10 R10 K74
- 0x7C1C0600, // 0239 CALL R7 3
- 0x80040E00, // 023A RET 1 R7
- 0x70020094, // 023B JMP #02D1
- 0x1C1C0D0F, // 023C EQ R7 R6 K15
- 0x781E000A, // 023D JMPF R7 #0249
- 0x8C1C0906, // 023E GETMET R7 R4 K6
- 0x88240916, // 023F GETMBR R9 R4 K22
- 0xB82A2400, // 0240 GETNGBL R10 K18
- 0x8C281526, // 0241 GETMET R10 R10 K38
- 0x5830004B, // 0242 LDCONST R12 K75
- 0x50340200, // 0243 LDBOOL R13 1 0
- 0x7C280600, // 0244 CALL R10 3
- 0x9428154B, // 0245 GETIDX R10 R10 K75
- 0x7C1C0600, // 0246 CALL R7 3
- 0x80040E00, // 0247 RET 1 R7
- 0x70020087, // 0248 JMP #02D1
- 0x541E0003, // 0249 LDINT R7 4
- 0x1C1C0C07, // 024A EQ R7 R6 R7
- 0x781E0005, // 024B JMPF R7 #0252
- 0x8C1C0906, // 024C GETMET R7 R4 K6
- 0x8824090C, // 024D GETMBR R9 R4 K12
- 0x542A7FFF, // 024E LDINT R10 32768
- 0x7C1C0600, // 024F CALL R7 3
- 0x80040E00, // 0250 RET 1 R7
- 0x7002007E, // 0251 JMP #02D1
- 0x541E0004, // 0252 LDINT R7 5
- 0x1C1C0C07, // 0253 EQ R7 R6 R7
- 0x781E000A, // 0254 JMPF R7 #0260
- 0x8C1C0906, // 0255 GETMET R7 R4 K6
- 0x88240916, // 0256 GETMBR R9 R4 K22
- 0xB82A2400, // 0257 GETNGBL R10 K18
- 0x8C281526, // 0258 GETMET R10 R10 K38
- 0x5830004C, // 0259 LDCONST R12 K76
- 0x50340200, // 025A LDBOOL R13 1 0
- 0x7C280600, // 025B CALL R10 3
- 0x9428154D, // 025C GETIDX R10 R10 K77
- 0x7C1C0600, // 025D CALL R7 3
- 0x80040E00, // 025E RET 1 R7
- 0x70020070, // 025F JMP #02D1
- 0x541E0005, // 0260 LDINT R7 6
- 0x1C1C0C07, // 0261 EQ R7 R6 R7
- 0x781E0005, // 0262 JMPF R7 #0269
- 0x8C1C0906, // 0263 GETMET R7 R4 K6
- 0x88240916, // 0264 GETMBR R9 R4 K22
- 0x5828004E, // 0265 LDCONST R10 K78
- 0x7C1C0600, // 0266 CALL R7 3
- 0x80040E00, // 0267 RET 1 R7
- 0x70020067, // 0268 JMP #02D1
- 0x541E0006, // 0269 LDINT R7 7
- 0x1C1C0C07, // 026A EQ R7 R6 R7
- 0x781E0005, // 026B JMPF R7 #0272
- 0x8C1C0906, // 026C GETMET R7 R4 K6
- 0x8824090C, // 026D GETMBR R9 R4 K12
- 0x58280005, // 026E LDCONST R10 K5
- 0x7C1C0600, // 026F CALL R7 3
- 0x80040E00, // 0270 RET 1 R7
- 0x7002005E, // 0271 JMP #02D1
- 0x541E0007, // 0272 LDINT R7 8
- 0x1C1C0C07, // 0273 EQ R7 R6 R7
- 0x781E000B, // 0274 JMPF R7 #0281
- 0x8C1C0906, // 0275 GETMET R7 R4 K6
- 0x88240916, // 0276 GETMBR R9 R4 K22
- 0xB82A2400, // 0277 GETNGBL R10 K18
- 0x8C281526, // 0278 GETMET R10 R10 K38
- 0x5830004F, // 0279 LDCONST R12 K79
- 0x50340200, // 027A LDBOOL R13 1 0
- 0x7C280600, // 027B CALL R10 3
- 0x94281550, // 027C GETIDX R10 R10 K80
- 0x94281551, // 027D GETIDX R10 R10 K81
- 0x7C1C0600, // 027E CALL R7 3
- 0x80040E00, // 027F RET 1 R7
- 0x7002004F, // 0280 JMP #02D1
- 0x541E0008, // 0281 LDINT R7 9
- 0x1C1C0C07, // 0282 EQ R7 R6 R7
- 0x781E0005, // 0283 JMPF R7 #028A
- 0x8C1C0906, // 0284 GETMET R7 R4 K6
- 0x8824090C, // 0285 GETMBR R9 R4 K12
- 0x58280009, // 0286 LDCONST R10 K9
- 0x7C1C0600, // 0287 CALL R7 3
- 0x80040E00, // 0288 RET 1 R7
- 0x70020046, // 0289 JMP #02D1
- 0x541E0009, // 028A LDINT R7 10
- 0x1C1C0C07, // 028B EQ R7 R6 R7
- 0x781E0015, // 028C JMPF R7 #02A3
- 0xB81E2400, // 028D GETNGBL R7 K18
- 0x8C1C0F26, // 028E GETMET R7 R7 K38
- 0x5824004F, // 028F LDCONST R9 K79
- 0x50280200, // 0290 LDBOOL R10 1 0
- 0x7C1C0600, // 0291 CALL R7 3
- 0x941C0F50, // 0292 GETIDX R7 R7 K80
- 0x941C0F52, // 0293 GETIDX R7 R7 K82
- 0x8C20071B, // 0294 GETMET R8 R3 K27
- 0x5C280E00, // 0295 MOVE R10 R7
- 0x582C0053, // 0296 LDCONST R11 K83
- 0x7C200600, // 0297 CALL R8 3
- 0x24241105, // 0298 GT R9 R8 K5
- 0x78260002, // 0299 JMPF R9 #029D
- 0x04241109, // 029A SUB R9 R8 K9
- 0x40260A09, // 029B CONNECT R9 K5 R9
- 0x941C0E09, // 029C GETIDX R7 R7 R9
- 0x8C240906, // 029D GETMET R9 R4 K6
- 0x882C0916, // 029E GETMBR R11 R4 K22
- 0x5C300E00, // 029F MOVE R12 R7
- 0x7C240600, // 02A0 CALL R9 3
- 0x80041200, // 02A1 RET 1 R9
- 0x7002002D, // 02A2 JMP #02D1
- 0x541E000E, // 02A3 LDINT R7 15
- 0x1C1C0C07, // 02A4 EQ R7 R6 R7
- 0x781E000B, // 02A5 JMPF R7 #02B2
- 0x8C1C0906, // 02A6 GETMET R7 R4 K6
- 0x88240916, // 02A7 GETMBR R9 R4 K22
- 0xB82A2400, // 02A8 GETNGBL R10 K18
- 0x8C281525, // 02A9 GETMET R10 R10 K37
- 0x7C280200, // 02AA CALL R10 1
- 0x8C28151B, // 02AB GETMET R10 R10 K27
- 0x5830001C, // 02AC LDCONST R12 K28
- 0x5834001D, // 02AD LDCONST R13 K29
- 0x7C280600, // 02AE CALL R10 3
- 0x7C1C0600, // 02AF CALL R7 3
- 0x80040E00, // 02B0 RET 1 R7
- 0x7002001E, // 02B1 JMP #02D1
- 0x541E0011, // 02B2 LDINT R7 18
- 0x1C1C0C07, // 02B3 EQ R7 R6 R7
- 0x781E000B, // 02B4 JMPF R7 #02C1
- 0x8C1C0906, // 02B5 GETMET R7 R4 K6
- 0x88240916, // 02B6 GETMBR R9 R4 K22
- 0xB82A2400, // 02B7 GETNGBL R10 K18
- 0x8C281525, // 02B8 GETMET R10 R10 K37
- 0x7C280200, // 02B9 CALL R10 1
- 0x8C28151B, // 02BA GETMET R10 R10 K27
- 0x5830001C, // 02BB LDCONST R12 K28
- 0x5834001D, // 02BC LDCONST R13 K29
- 0x7C280600, // 02BD CALL R10 3
- 0x7C1C0600, // 02BE CALL R7 3
- 0x80040E00, // 02BF RET 1 R7
- 0x7002000F, // 02C0 JMP #02D1
- 0x541E0012, // 02C1 LDINT R7 19
- 0x1C1C0C07, // 02C2 EQ R7 R6 R7
- 0x781E000C, // 02C3 JMPF R7 #02D1
- 0x8C1C090A, // 02C4 GETMET R7 R4 K10
- 0x7C1C0200, // 02C5 CALL R7 1
- 0x8C200F0B, // 02C6 GETMET R8 R7 K11
- 0x58280005, // 02C7 LDCONST R10 K5
- 0x882C090C, // 02C8 GETMBR R11 R4 K12
- 0x5830000F, // 02C9 LDCONST R12 K15
- 0x7C200800, // 02CA CALL R8 4
+ 0x781E000B, // 01D7 JMPF R7 #01E4
+ 0x881C0345, // 01D8 GETMBR R7 R1 K69
+ 0x8C1C0F39, // 01D9 GETMET R7 R7 K57
+ 0x7C1C0200, // 01DA CALL R7 1
+ 0x4C200000, // 01DB LDNIL R8
+ 0x1C200E08, // 01DC EQ R8 R7 R8
+ 0x78220000, // 01DD JMPF R8 #01DF
+ 0x581C0005, // 01DE LDCONST R7 K5
+ 0x8C200906, // 01DF GETMET R8 R4 K6
+ 0x8828090E, // 01E0 GETMBR R10 R4 K14
+ 0x5C2C0E00, // 01E1 MOVE R11 R7
+ 0x7C200600, // 01E2 CALL R8 3
+ 0x80041000, // 01E3 RET 1 R8
+ 0x70020191, // 01E4 JMP #0377
+ 0x541E003B, // 01E5 LDINT R7 60
+ 0x1C1C0A07, // 01E6 EQ R7 R5 R7
+ 0x781E003C, // 01E7 JMPF R7 #0225
+ 0x1C1C0D05, // 01E8 EQ R7 R6 K5
+ 0x781E0012, // 01E9 JMPF R7 #01FD
+ 0x881C0133, // 01EA GETMBR R7 R0 K51
+ 0x8C1C0F46, // 01EB GETMET R7 R7 K70
+ 0x7C1C0200, // 01EC CALL R7 1
+ 0x88200133, // 01ED GETMBR R8 R0 K51
+ 0x8C201147, // 01EE GETMET R8 R8 K71
+ 0x7C200200, // 01EF CALL R8 1
+ 0x781E0004, // 01F0 JMPF R7 #01F6
+ 0x78220001, // 01F1 JMPF R8 #01F4
+ 0x5824000D, // 01F2 LDCONST R9 K13
+ 0x70020000, // 01F3 JMP #01F5
+ 0x58240009, // 01F4 LDCONST R9 K9
+ 0x70020000, // 01F5 JMP #01F7
+ 0x58240005, // 01F6 LDCONST R9 K5
+ 0x8C280906, // 01F7 GETMET R10 R4 K6
+ 0x8830090E, // 01F8 GETMBR R12 R4 K14
+ 0x5C341200, // 01F9 MOVE R13 R9
+ 0x7C280600, // 01FA CALL R10 3
+ 0x80041400, // 01FB RET 1 R10
+ 0x70020026, // 01FC JMP #0224
+ 0x1C1C0D09, // 01FD EQ R7 R6 K9
+ 0x781E0011, // 01FE JMPF R7 #0211
+ 0x881C0133, // 01FF GETMBR R7 R0 K51
+ 0x881C0F48, // 0200 GETMBR R7 R7 K72
+ 0x4C200000, // 0201 LDNIL R8
+ 0x20200E08, // 0202 NE R8 R7 R8
+ 0x78220006, // 0203 JMPF R8 #020B
+ 0x8C200906, // 0204 GETMET R8 R4 K6
+ 0x8828090C, // 0205 GETMBR R10 R4 K12
+ 0x8C2C0F39, // 0206 GETMET R11 R7 K57
+ 0x7C2C0200, // 0207 CALL R11 1
+ 0x7C200600, // 0208 CALL R8 3
+ 0x80041000, // 0209 RET 1 R8
+ 0x70020004, // 020A JMP #0210
+ 0x8C200906, // 020B GETMET R8 R4 K6
+ 0x88280918, // 020C GETMBR R10 R4 K24
+ 0x4C2C0000, // 020D LDNIL R11
+ 0x7C200600, // 020E CALL R8 3
+ 0x80041000, // 020F RET 1 R8
+ 0x70020012, // 0210 JMP #0224
+ 0x1C1C0D0D, // 0211 EQ R7 R6 K13
+ 0x781E0010, // 0212 JMPF R7 #0224
+ 0x881C0133, // 0213 GETMBR R7 R0 K51
+ 0x881C0F48, // 0214 GETMBR R7 R7 K72
+ 0x4C200000, // 0215 LDNIL R8
+ 0x20200E08, // 0216 NE R8 R7 R8
+ 0x78220006, // 0217 JMPF R8 #021F
+ 0x8C200906, // 0218 GETMET R8 R4 K6
+ 0x8828090C, // 0219 GETMBR R10 R4 K12
+ 0x8C2C0F3E, // 021A GETMET R11 R7 K62
+ 0x7C2C0200, // 021B CALL R11 1
+ 0x7C200600, // 021C CALL R8 3
+ 0x80041000, // 021D RET 1 R8
+ 0x70020004, // 021E JMP #0224
+ 0x8C200906, // 021F GETMET R8 R4 K6
+ 0x88280918, // 0220 GETMBR R10 R4 K24
+ 0x4C2C0000, // 0221 LDNIL R11
+ 0x7C200600, // 0222 CALL R8 3
+ 0x80041000, // 0223 RET 1 R8
+ 0x70020151, // 0224 JMP #0377
+ 0x541E0027, // 0225 LDINT R7 40
+ 0x1C1C0A07, // 0226 EQ R7 R5 R7
+ 0x781E00AE, // 0227 JMPF R7 #02D7
+ 0x1C1C0D05, // 0228 EQ R7 R6 K5
+ 0x781E0005, // 0229 JMPF R7 #0230
+ 0x8C1C0906, // 022A GETMET R7 R4 K6
+ 0x8824090C, // 022B GETMBR R9 R4 K12
+ 0x58280009, // 022C LDCONST R10 K9
+ 0x7C1C0600, // 022D CALL R7 3
+ 0x80040E00, // 022E RET 1 R7
+ 0x700200A5, // 022F JMP #02D6
+ 0x1C1C0D09, // 0230 EQ R7 R6 K9
+ 0x781E0005, // 0231 JMPF R7 #0238
+ 0x8C1C0906, // 0232 GETMET R7 R4 K6
+ 0x88240916, // 0233 GETMBR R9 R4 K22
+ 0x58280049, // 0234 LDCONST R10 K73
+ 0x7C1C0600, // 0235 CALL R7 3
+ 0x80040E00, // 0236 RET 1 R7
+ 0x7002009D, // 0237 JMP #02D6
+ 0x1C1C0D0D, // 0238 EQ R7 R6 K13
+ 0x781E0006, // 0239 JMPF R7 #0241
+ 0x8C1C0906, // 023A GETMET R7 R4 K6
+ 0x8824090C, // 023B GETMBR R9 R4 K12
+ 0x88280133, // 023C GETMBR R10 R0 K51
+ 0x8828154A, // 023D GETMBR R10 R10 K74
+ 0x7C1C0600, // 023E CALL R7 3
+ 0x80040E00, // 023F RET 1 R7
+ 0x70020094, // 0240 JMP #02D6
+ 0x1C1C0D0F, // 0241 EQ R7 R6 K15
+ 0x781E000A, // 0242 JMPF R7 #024E
+ 0x8C1C0906, // 0243 GETMET R7 R4 K6
+ 0x88240916, // 0244 GETMBR R9 R4 K22
+ 0xB82A2400, // 0245 GETNGBL R10 K18
+ 0x8C281526, // 0246 GETMET R10 R10 K38
+ 0x5830004B, // 0247 LDCONST R12 K75
+ 0x50340200, // 0248 LDBOOL R13 1 0
+ 0x7C280600, // 0249 CALL R10 3
+ 0x9428154B, // 024A GETIDX R10 R10 K75
+ 0x7C1C0600, // 024B CALL R7 3
+ 0x80040E00, // 024C RET 1 R7
+ 0x70020087, // 024D JMP #02D6
+ 0x541E0003, // 024E LDINT R7 4
+ 0x1C1C0C07, // 024F EQ R7 R6 R7
+ 0x781E0005, // 0250 JMPF R7 #0257
+ 0x8C1C0906, // 0251 GETMET R7 R4 K6
+ 0x8824090C, // 0252 GETMBR R9 R4 K12
+ 0x542A7FFF, // 0253 LDINT R10 32768
+ 0x7C1C0600, // 0254 CALL R7 3
+ 0x80040E00, // 0255 RET 1 R7
+ 0x7002007E, // 0256 JMP #02D6
+ 0x541E0004, // 0257 LDINT R7 5
+ 0x1C1C0C07, // 0258 EQ R7 R6 R7
+ 0x781E000A, // 0259 JMPF R7 #0265
+ 0x8C1C0906, // 025A GETMET R7 R4 K6
+ 0x88240916, // 025B GETMBR R9 R4 K22
+ 0xB82A2400, // 025C GETNGBL R10 K18
+ 0x8C281526, // 025D GETMET R10 R10 K38
+ 0x5830004C, // 025E LDCONST R12 K76
+ 0x50340200, // 025F LDBOOL R13 1 0
+ 0x7C280600, // 0260 CALL R10 3
+ 0x9428154D, // 0261 GETIDX R10 R10 K77
+ 0x7C1C0600, // 0262 CALL R7 3
+ 0x80040E00, // 0263 RET 1 R7
+ 0x70020070, // 0264 JMP #02D6
+ 0x541E0005, // 0265 LDINT R7 6
+ 0x1C1C0C07, // 0266 EQ R7 R6 R7
+ 0x781E0005, // 0267 JMPF R7 #026E
+ 0x8C1C0906, // 0268 GETMET R7 R4 K6
+ 0x88240916, // 0269 GETMBR R9 R4 K22
+ 0x5828004E, // 026A LDCONST R10 K78
+ 0x7C1C0600, // 026B CALL R7 3
+ 0x80040E00, // 026C RET 1 R7
+ 0x70020067, // 026D JMP #02D6
+ 0x541E0006, // 026E LDINT R7 7
+ 0x1C1C0C07, // 026F EQ R7 R6 R7
+ 0x781E0005, // 0270 JMPF R7 #0277
+ 0x8C1C0906, // 0271 GETMET R7 R4 K6
+ 0x8824090C, // 0272 GETMBR R9 R4 K12
+ 0x58280005, // 0273 LDCONST R10 K5
+ 0x7C1C0600, // 0274 CALL R7 3
+ 0x80040E00, // 0275 RET 1 R7
+ 0x7002005E, // 0276 JMP #02D6
+ 0x541E0007, // 0277 LDINT R7 8
+ 0x1C1C0C07, // 0278 EQ R7 R6 R7
+ 0x781E000B, // 0279 JMPF R7 #0286
+ 0x8C1C0906, // 027A GETMET R7 R4 K6
+ 0x88240916, // 027B GETMBR R9 R4 K22
+ 0xB82A2400, // 027C GETNGBL R10 K18
+ 0x8C281526, // 027D GETMET R10 R10 K38
+ 0x5830004F, // 027E LDCONST R12 K79
+ 0x50340200, // 027F LDBOOL R13 1 0
+ 0x7C280600, // 0280 CALL R10 3
+ 0x94281550, // 0281 GETIDX R10 R10 K80
+ 0x94281551, // 0282 GETIDX R10 R10 K81
+ 0x7C1C0600, // 0283 CALL R7 3
+ 0x80040E00, // 0284 RET 1 R7
+ 0x7002004F, // 0285 JMP #02D6
+ 0x541E0008, // 0286 LDINT R7 9
+ 0x1C1C0C07, // 0287 EQ R7 R6 R7
+ 0x781E0005, // 0288 JMPF R7 #028F
+ 0x8C1C0906, // 0289 GETMET R7 R4 K6
+ 0x8824090C, // 028A GETMBR R9 R4 K12
+ 0x58280009, // 028B LDCONST R10 K9
+ 0x7C1C0600, // 028C CALL R7 3
+ 0x80040E00, // 028D RET 1 R7
+ 0x70020046, // 028E JMP #02D6
+ 0x541E0009, // 028F LDINT R7 10
+ 0x1C1C0C07, // 0290 EQ R7 R6 R7
+ 0x781E0015, // 0291 JMPF R7 #02A8
+ 0xB81E2400, // 0292 GETNGBL R7 K18
+ 0x8C1C0F26, // 0293 GETMET R7 R7 K38
+ 0x5824004F, // 0294 LDCONST R9 K79
+ 0x50280200, // 0295 LDBOOL R10 1 0
+ 0x7C1C0600, // 0296 CALL R7 3
+ 0x941C0F50, // 0297 GETIDX R7 R7 K80
+ 0x941C0F52, // 0298 GETIDX R7 R7 K82
+ 0x8C20071B, // 0299 GETMET R8 R3 K27
+ 0x5C280E00, // 029A MOVE R10 R7
+ 0x582C0053, // 029B LDCONST R11 K83
+ 0x7C200600, // 029C CALL R8 3
+ 0x24241105, // 029D GT R9 R8 K5
+ 0x78260002, // 029E JMPF R9 #02A2
+ 0x04241109, // 029F SUB R9 R8 K9
+ 0x40260A09, // 02A0 CONNECT R9 K5 R9
+ 0x941C0E09, // 02A1 GETIDX R7 R7 R9
+ 0x8C240906, // 02A2 GETMET R9 R4 K6
+ 0x882C0916, // 02A3 GETMBR R11 R4 K22
+ 0x5C300E00, // 02A4 MOVE R12 R7
+ 0x7C240600, // 02A5 CALL R9 3
+ 0x80041200, // 02A6 RET 1 R9
+ 0x7002002D, // 02A7 JMP #02D6
+ 0x541E000E, // 02A8 LDINT R7 15
+ 0x1C1C0C07, // 02A9 EQ R7 R6 R7
+ 0x781E000B, // 02AA JMPF R7 #02B7
+ 0x8C1C0906, // 02AB GETMET R7 R4 K6
+ 0x88240916, // 02AC GETMBR R9 R4 K22
+ 0xB82A2400, // 02AD GETNGBL R10 K18
+ 0x8C281525, // 02AE GETMET R10 R10 K37
+ 0x7C280200, // 02AF CALL R10 1
+ 0x8C28151B, // 02B0 GETMET R10 R10 K27
+ 0x5830001C, // 02B1 LDCONST R12 K28
+ 0x5834001D, // 02B2 LDCONST R13 K29
+ 0x7C280600, // 02B3 CALL R10 3
+ 0x7C1C0600, // 02B4 CALL R7 3
+ 0x80040E00, // 02B5 RET 1 R7
+ 0x7002001E, // 02B6 JMP #02D6
+ 0x541E0011, // 02B7 LDINT R7 18
+ 0x1C1C0C07, // 02B8 EQ R7 R6 R7
+ 0x781E000B, // 02B9 JMPF R7 #02C6
+ 0x8C1C0906, // 02BA GETMET R7 R4 K6
+ 0x88240916, // 02BB GETMBR R9 R4 K22
+ 0xB82A2400, // 02BC GETNGBL R10 K18
+ 0x8C281525, // 02BD GETMET R10 R10 K37
+ 0x7C280200, // 02BE CALL R10 1
+ 0x8C28151B, // 02BF GETMET R10 R10 K27
+ 0x5830001C, // 02C0 LDCONST R12 K28
+ 0x5834001D, // 02C1 LDCONST R13 K29
+ 0x7C280600, // 02C2 CALL R10 3
+ 0x7C1C0600, // 02C3 CALL R7 3
+ 0x80040E00, // 02C4 RET 1 R7
+ 0x7002000F, // 02C5 JMP #02D6
+ 0x541E0012, // 02C6 LDINT R7 19
+ 0x1C1C0C07, // 02C7 EQ R7 R6 R7
+ 0x781E000C, // 02C8 JMPF R7 #02D6
+ 0x8C1C090A, // 02C9 GETMET R7 R4 K10
+ 0x7C1C0200, // 02CA CALL R7 1
0x8C200F0B, // 02CB GETMET R8 R7 K11
- 0x58280009, // 02CC LDCONST R10 K9
+ 0x58280005, // 02CC LDCONST R10 K5
0x882C090C, // 02CD GETMBR R11 R4 K12
0x5830000F, // 02CE LDCONST R12 K15
0x7C200800, // 02CF CALL R8 4
- 0x80040E00, // 02D0 RET 1 R7
- 0x7002009F, // 02D1 JMP #0372
- 0x541E003E, // 02D2 LDINT R7 63
- 0x1C1C0A07, // 02D3 EQ R7 R5 R7
- 0x781E0000, // 02D4 JMPF R7 #02D6
- 0x7002009B, // 02D5 JMP #0372
- 0x541E0029, // 02D6 LDINT R7 42
- 0x1C1C0A07, // 02D7 EQ R7 R5 R7
- 0x781E001D, // 02D8 JMPF R7 #02F7
- 0x1C1C0D05, // 02D9 EQ R7 R6 K5
- 0x781E0003, // 02DA JMPF R7 #02DF
- 0x8C1C0911, // 02DB GETMET R7 R4 K17
- 0x7C1C0200, // 02DC CALL R7 1
- 0x80040E00, // 02DD RET 1 R7
- 0x70020016, // 02DE JMP #02F6
- 0x1C1C0D09, // 02DF EQ R7 R6 K9
- 0x781E0005, // 02E0 JMPF R7 #02E7
- 0x8C1C0906, // 02E1 GETMET R7 R4 K6
- 0x88240910, // 02E2 GETMBR R9 R4 K16
- 0x58280005, // 02E3 LDCONST R10 K5
- 0x7C1C0600, // 02E4 CALL R7 3
- 0x80040E00, // 02E5 RET 1 R7
- 0x7002000E, // 02E6 JMP #02F6
- 0x1C1C0D0D, // 02E7 EQ R7 R6 K13
- 0x781E0005, // 02E8 JMPF R7 #02EF
- 0x8C1C0906, // 02E9 GETMET R7 R4 K6
- 0x8824090E, // 02EA GETMBR R9 R4 K14
- 0x58280009, // 02EB LDCONST R10 K9
- 0x7C1C0600, // 02EC CALL R7 3
- 0x80040E00, // 02ED RET 1 R7
- 0x70020006, // 02EE JMP #02F6
- 0x1C1C0D0F, // 02EF EQ R7 R6 K15
- 0x781E0004, // 02F0 JMPF R7 #02F6
- 0x8C1C0906, // 02F1 GETMET R7 R4 K6
- 0x88240918, // 02F2 GETMBR R9 R4 K24
- 0x4C280000, // 02F3 LDNIL R10
- 0x7C1C0600, // 02F4 CALL R7 3
- 0x80040E00, // 02F5 RET 1 R7
- 0x7002007A, // 02F6 JMP #0372
- 0x541E002A, // 02F7 LDINT R7 43
- 0x1C1C0A07, // 02F8 EQ R7 R5 R7
- 0x781E0016, // 02F9 JMPF R7 #0311
- 0x1C1C0D05, // 02FA EQ R7 R6 K5
- 0x781E0007, // 02FB JMPF R7 #0304
- 0x8C1C0906, // 02FC GETMET R7 R4 K6
- 0x88240916, // 02FD GETMBR R9 R4 K22
- 0xB82A2400, // 02FE GETNGBL R10 K18
- 0x8C281554, // 02FF GETMET R10 R10 K84
- 0x7C280200, // 0300 CALL R10 1
- 0x7C1C0600, // 0301 CALL R7 3
- 0x80040E00, // 0302 RET 1 R7
- 0x7002000B, // 0303 JMP #0310
- 0x1C1C0D09, // 0304 EQ R7 R6 K9
- 0x781E0009, // 0305 JMPF R7 #0310
- 0x8C1C0911, // 0306 GETMET R7 R4 K17
- 0x7C1C0200, // 0307 CALL R7 1
- 0x8C200F0B, // 0308 GETMET R8 R7 K11
- 0x4C280000, // 0309 LDNIL R10
- 0x882C0916, // 030A GETMBR R11 R4 K22
- 0xB8322400, // 030B GETNGBL R12 K18
- 0x8C301954, // 030C GETMET R12 R12 K84
- 0x7C300200, // 030D CALL R12 1
- 0x7C200800, // 030E CALL R8 4
- 0x80040E00, // 030F RET 1 R7
- 0x70020060, // 0310 JMP #0372
- 0x541E002B, // 0311 LDINT R7 44
- 0x1C1C0A07, // 0312 EQ R7 R5 R7
- 0x781E001C, // 0313 JMPF R7 #0331
- 0x1C1C0D05, // 0314 EQ R7 R6 K5
- 0x781E0005, // 0315 JMPF R7 #031C
- 0x8C1C0906, // 0316 GETMET R7 R4 K6
- 0x8824090E, // 0317 GETMBR R9 R4 K14
- 0x58280009, // 0318 LDCONST R10 K9
- 0x7C1C0600, // 0319 CALL R7 3
- 0x80040E00, // 031A RET 1 R7
- 0x70020013, // 031B JMP #0330
- 0x1C1C0D09, // 031C EQ R7 R6 K9
- 0x781E0005, // 031D JMPF R7 #0324
- 0x8C1C0906, // 031E GETMET R7 R4 K6
- 0x8824090E, // 031F GETMBR R9 R4 K14
- 0x542A0003, // 0320 LDINT R10 4
- 0x7C1C0600, // 0321 CALL R7 3
- 0x80040E00, // 0322 RET 1 R7
- 0x7002000B, // 0323 JMP #0330
- 0x1C1C0D0D, // 0324 EQ R7 R6 K13
- 0x781E0009, // 0325 JMPF R7 #0330
- 0x8C1C0911, // 0326 GETMET R7 R4 K17
- 0x7C1C0200, // 0327 CALL R7 1
- 0x8C200F0B, // 0328 GETMET R8 R7 K11
- 0x4C280000, // 0329 LDNIL R10
- 0x8C2C0906, // 032A GETMET R11 R4 K6
- 0x8834090E, // 032B GETMBR R13 R4 K14
- 0x543A0003, // 032C LDINT R14 4
- 0x7C2C0600, // 032D CALL R11 3
- 0x7C200600, // 032E CALL R8 3
- 0x80040E00, // 032F RET 1 R7
- 0x70020040, // 0330 JMP #0372
- 0x541E0030, // 0331 LDINT R7 49
- 0x1C1C0A07, // 0332 EQ R7 R5 R7
- 0x781E0010, // 0333 JMPF R7 #0345
- 0x1C1C0D0F, // 0334 EQ R7 R6 K15
- 0x781E0005, // 0335 JMPF R7 #033C
- 0x8C1C0906, // 0336 GETMET R7 R4 K6
- 0x8824090E, // 0337 GETMBR R9 R4 K14
- 0x542A001D, // 0338 LDINT R10 30
- 0x7C1C0600, // 0339 CALL R7 3
- 0x80040E00, // 033A RET 1 R7
- 0x70020007, // 033B JMP #0344
- 0x541EFFFB, // 033C LDINT R7 65532
- 0x1C1C0C07, // 033D EQ R7 R6 R7
- 0x781E0004, // 033E JMPF R7 #0344
- 0x8C1C0906, // 033F GETMET R7 R4 K6
- 0x8824092A, // 0340 GETMBR R9 R4 K42
- 0x542A0003, // 0341 LDINT R10 4
- 0x7C1C0600, // 0342 CALL R7 3
- 0x80040E00, // 0343 RET 1 R7
- 0x7002002C, // 0344 JMP #0372
- 0x541E001C, // 0345 LDINT R7 29
- 0x1C1C0A07, // 0346 EQ R7 R5 R7
- 0x781E0021, // 0347 JMPF R7 #036A
- 0x1C1C0D0F, // 0348 EQ R7 R6 K15
- 0x781E0016, // 0349 JMPF R7 #0361
- 0x8C1C0911, // 034A GETMET R7 R4 K17
- 0x7C1C0200, // 034B CALL R7 1
- 0x88200133, // 034C GETMBR R8 R0 K51
- 0x8C201155, // 034D GETMET R8 R8 K85
- 0x50280200, // 034E LDBOOL R10 1 0
- 0x7C200400, // 034F CALL R8 2
- 0x60240010, // 0350 GETGBL R9 G16
- 0x5C281000, // 0351 MOVE R10 R8
- 0x7C240200, // 0352 CALL R9 1
- 0xA8020007, // 0353 EXBLK 0 #035C
- 0x5C281200, // 0354 MOVE R10 R9
- 0x7C280000, // 0355 CALL R10 0
- 0x8C2C0F0B, // 0356 GETMET R11 R7 K11
- 0x4C340000, // 0357 LDNIL R13
- 0x8838090C, // 0358 GETMBR R14 R4 K12
- 0x5C3C1400, // 0359 MOVE R15 R10
- 0x7C2C0800, // 035A CALL R11 4
- 0x7001FFF7, // 035B JMP #0354
- 0x5824003A, // 035C LDCONST R9 K58
- 0xAC240200, // 035D CATCH R9 1 0
- 0xB0080000, // 035E RAISE 2 R0 R0
- 0x80040E00, // 035F RET 1 R7
- 0x70020007, // 0360 JMP #0369
- 0x601C0003, // 0361 GETGBL R7 G3
- 0x5C200000, // 0362 MOVE R8 R0
- 0x7C1C0200, // 0363 CALL R7 1
- 0x8C1C0F56, // 0364 GETMET R7 R7 K86
- 0x5C240200, // 0365 MOVE R9 R1
- 0x5C280400, // 0366 MOVE R10 R2
- 0x7C1C0600, // 0367 CALL R7 3
- 0x80040E00, // 0368 RET 1 R7
- 0x70020007, // 0369 JMP #0372
- 0x601C0003, // 036A GETGBL R7 G3
- 0x5C200000, // 036B MOVE R8 R0
- 0x7C1C0200, // 036C CALL R7 1
- 0x8C1C0F56, // 036D GETMET R7 R7 K86
- 0x5C240200, // 036E MOVE R9 R1
- 0x5C280400, // 036F MOVE R10 R2
- 0x7C1C0600, // 0370 CALL R7 3
- 0x80040E00, // 0371 RET 1 R7
- 0x80000000, // 0372 RET 0
+ 0x8C200F0B, // 02D0 GETMET R8 R7 K11
+ 0x58280009, // 02D1 LDCONST R10 K9
+ 0x882C090C, // 02D2 GETMBR R11 R4 K12
+ 0x5830000F, // 02D3 LDCONST R12 K15
+ 0x7C200800, // 02D4 CALL R8 4
+ 0x80040E00, // 02D5 RET 1 R7
+ 0x7002009F, // 02D6 JMP #0377
+ 0x541E003E, // 02D7 LDINT R7 63
+ 0x1C1C0A07, // 02D8 EQ R7 R5 R7
+ 0x781E0000, // 02D9 JMPF R7 #02DB
+ 0x7002009B, // 02DA JMP #0377
+ 0x541E0029, // 02DB LDINT R7 42
+ 0x1C1C0A07, // 02DC EQ R7 R5 R7
+ 0x781E001D, // 02DD JMPF R7 #02FC
+ 0x1C1C0D05, // 02DE EQ R7 R6 K5
+ 0x781E0003, // 02DF JMPF R7 #02E4
+ 0x8C1C0911, // 02E0 GETMET R7 R4 K17
+ 0x7C1C0200, // 02E1 CALL R7 1
+ 0x80040E00, // 02E2 RET 1 R7
+ 0x70020016, // 02E3 JMP #02FB
+ 0x1C1C0D09, // 02E4 EQ R7 R6 K9
+ 0x781E0005, // 02E5 JMPF R7 #02EC
+ 0x8C1C0906, // 02E6 GETMET R7 R4 K6
+ 0x88240910, // 02E7 GETMBR R9 R4 K16
+ 0x58280005, // 02E8 LDCONST R10 K5
+ 0x7C1C0600, // 02E9 CALL R7 3
+ 0x80040E00, // 02EA RET 1 R7
+ 0x7002000E, // 02EB JMP #02FB
+ 0x1C1C0D0D, // 02EC EQ R7 R6 K13
+ 0x781E0005, // 02ED JMPF R7 #02F4
+ 0x8C1C0906, // 02EE GETMET R7 R4 K6
+ 0x8824090E, // 02EF GETMBR R9 R4 K14
+ 0x58280009, // 02F0 LDCONST R10 K9
+ 0x7C1C0600, // 02F1 CALL R7 3
+ 0x80040E00, // 02F2 RET 1 R7
+ 0x70020006, // 02F3 JMP #02FB
+ 0x1C1C0D0F, // 02F4 EQ R7 R6 K15
+ 0x781E0004, // 02F5 JMPF R7 #02FB
+ 0x8C1C0906, // 02F6 GETMET R7 R4 K6
+ 0x88240918, // 02F7 GETMBR R9 R4 K24
+ 0x4C280000, // 02F8 LDNIL R10
+ 0x7C1C0600, // 02F9 CALL R7 3
+ 0x80040E00, // 02FA RET 1 R7
+ 0x7002007A, // 02FB JMP #0377
+ 0x541E002A, // 02FC LDINT R7 43
+ 0x1C1C0A07, // 02FD EQ R7 R5 R7
+ 0x781E0016, // 02FE JMPF R7 #0316
+ 0x1C1C0D05, // 02FF EQ R7 R6 K5
+ 0x781E0007, // 0300 JMPF R7 #0309
+ 0x8C1C0906, // 0301 GETMET R7 R4 K6
+ 0x88240916, // 0302 GETMBR R9 R4 K22
+ 0xB82A2400, // 0303 GETNGBL R10 K18
+ 0x8C281554, // 0304 GETMET R10 R10 K84
+ 0x7C280200, // 0305 CALL R10 1
+ 0x7C1C0600, // 0306 CALL R7 3
+ 0x80040E00, // 0307 RET 1 R7
+ 0x7002000B, // 0308 JMP #0315
+ 0x1C1C0D09, // 0309 EQ R7 R6 K9
+ 0x781E0009, // 030A JMPF R7 #0315
+ 0x8C1C0911, // 030B GETMET R7 R4 K17
+ 0x7C1C0200, // 030C CALL R7 1
+ 0x8C200F0B, // 030D GETMET R8 R7 K11
+ 0x4C280000, // 030E LDNIL R10
+ 0x882C0916, // 030F GETMBR R11 R4 K22
+ 0xB8322400, // 0310 GETNGBL R12 K18
+ 0x8C301954, // 0311 GETMET R12 R12 K84
+ 0x7C300200, // 0312 CALL R12 1
+ 0x7C200800, // 0313 CALL R8 4
+ 0x80040E00, // 0314 RET 1 R7
+ 0x70020060, // 0315 JMP #0377
+ 0x541E002B, // 0316 LDINT R7 44
+ 0x1C1C0A07, // 0317 EQ R7 R5 R7
+ 0x781E001C, // 0318 JMPF R7 #0336
+ 0x1C1C0D05, // 0319 EQ R7 R6 K5
+ 0x781E0005, // 031A JMPF R7 #0321
+ 0x8C1C0906, // 031B GETMET R7 R4 K6
+ 0x8824090E, // 031C GETMBR R9 R4 K14
+ 0x58280009, // 031D LDCONST R10 K9
+ 0x7C1C0600, // 031E CALL R7 3
+ 0x80040E00, // 031F RET 1 R7
+ 0x70020013, // 0320 JMP #0335
+ 0x1C1C0D09, // 0321 EQ R7 R6 K9
+ 0x781E0005, // 0322 JMPF R7 #0329
+ 0x8C1C0906, // 0323 GETMET R7 R4 K6
+ 0x8824090E, // 0324 GETMBR R9 R4 K14
+ 0x542A0003, // 0325 LDINT R10 4
+ 0x7C1C0600, // 0326 CALL R7 3
+ 0x80040E00, // 0327 RET 1 R7
+ 0x7002000B, // 0328 JMP #0335
+ 0x1C1C0D0D, // 0329 EQ R7 R6 K13
+ 0x781E0009, // 032A JMPF R7 #0335
+ 0x8C1C0911, // 032B GETMET R7 R4 K17
+ 0x7C1C0200, // 032C CALL R7 1
+ 0x8C200F0B, // 032D GETMET R8 R7 K11
+ 0x4C280000, // 032E LDNIL R10
+ 0x8C2C0906, // 032F GETMET R11 R4 K6
+ 0x8834090E, // 0330 GETMBR R13 R4 K14
+ 0x543A0003, // 0331 LDINT R14 4
+ 0x7C2C0600, // 0332 CALL R11 3
+ 0x7C200600, // 0333 CALL R8 3
+ 0x80040E00, // 0334 RET 1 R7
+ 0x70020040, // 0335 JMP #0377
+ 0x541E0030, // 0336 LDINT R7 49
+ 0x1C1C0A07, // 0337 EQ R7 R5 R7
+ 0x781E0010, // 0338 JMPF R7 #034A
+ 0x1C1C0D0F, // 0339 EQ R7 R6 K15
+ 0x781E0005, // 033A JMPF R7 #0341
+ 0x8C1C0906, // 033B GETMET R7 R4 K6
+ 0x8824090E, // 033C GETMBR R9 R4 K14
+ 0x542A001D, // 033D LDINT R10 30
+ 0x7C1C0600, // 033E CALL R7 3
+ 0x80040E00, // 033F RET 1 R7
+ 0x70020007, // 0340 JMP #0349
+ 0x541EFFFB, // 0341 LDINT R7 65532
+ 0x1C1C0C07, // 0342 EQ R7 R6 R7
+ 0x781E0004, // 0343 JMPF R7 #0349
+ 0x8C1C0906, // 0344 GETMET R7 R4 K6
+ 0x8824092A, // 0345 GETMBR R9 R4 K42
+ 0x542A0003, // 0346 LDINT R10 4
+ 0x7C1C0600, // 0347 CALL R7 3
+ 0x80040E00, // 0348 RET 1 R7
+ 0x7002002C, // 0349 JMP #0377
+ 0x541E001C, // 034A LDINT R7 29
+ 0x1C1C0A07, // 034B EQ R7 R5 R7
+ 0x781E0021, // 034C JMPF R7 #036F
+ 0x1C1C0D0F, // 034D EQ R7 R6 K15
+ 0x781E0016, // 034E JMPF R7 #0366
+ 0x8C1C0911, // 034F GETMET R7 R4 K17
+ 0x7C1C0200, // 0350 CALL R7 1
+ 0x88200133, // 0351 GETMBR R8 R0 K51
+ 0x8C201155, // 0352 GETMET R8 R8 K85
+ 0x50280200, // 0353 LDBOOL R10 1 0
+ 0x7C200400, // 0354 CALL R8 2
+ 0x60240010, // 0355 GETGBL R9 G16
+ 0x5C281000, // 0356 MOVE R10 R8
+ 0x7C240200, // 0357 CALL R9 1
+ 0xA8020007, // 0358 EXBLK 0 #0361
+ 0x5C281200, // 0359 MOVE R10 R9
+ 0x7C280000, // 035A CALL R10 0
+ 0x8C2C0F0B, // 035B GETMET R11 R7 K11
+ 0x4C340000, // 035C LDNIL R13
+ 0x8838090C, // 035D GETMBR R14 R4 K12
+ 0x5C3C1400, // 035E MOVE R15 R10
+ 0x7C2C0800, // 035F CALL R11 4
+ 0x7001FFF7, // 0360 JMP #0359
+ 0x5824003A, // 0361 LDCONST R9 K58
+ 0xAC240200, // 0362 CATCH R9 1 0
+ 0xB0080000, // 0363 RAISE 2 R0 R0
+ 0x80040E00, // 0364 RET 1 R7
+ 0x70020007, // 0365 JMP #036E
+ 0x601C0003, // 0366 GETGBL R7 G3
+ 0x5C200000, // 0367 MOVE R8 R0
+ 0x7C1C0200, // 0368 CALL R7 1
+ 0x8C1C0F56, // 0369 GETMET R7 R7 K86
+ 0x5C240200, // 036A MOVE R9 R1
+ 0x5C280400, // 036B MOVE R10 R2
+ 0x7C1C0600, // 036C CALL R7 3
+ 0x80040E00, // 036D RET 1 R7
+ 0x70020007, // 036E JMP #0377
+ 0x601C0003, // 036F GETGBL R7 G3
+ 0x5C200000, // 0370 MOVE R8 R0
+ 0x7C1C0200, // 0371 CALL R7 1
+ 0x8C1C0F56, // 0372 GETMET R7 R7 K86
+ 0x5C240200, // 0373 MOVE R9 R1
+ 0x5C280400, // 0374 MOVE R10 R2
+ 0x7C1C0600, // 0375 CALL R7 3
+ 0x80040E00, // 0376 RET 1 R7
+ 0x80000000, // 0377 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h
index f02e3045d..5ce3adfc0 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h
@@ -180,11 +180,11 @@ be_local_closure(Matter_Fabric_tojson, /* name */
/********************************************************************
-** Solidified function: before_remove
+** Solidified function: get_fabric_index
********************************************************************/
-be_local_closure(Matter_Fabric_before_remove, /* name */
+be_local_closure(Matter_Fabric_get_fabric_index, /* name */
be_nested_proto(
- 9, /* nstack */
+ 2, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -192,38 +192,41 @@ be_local_closure(Matter_Fabric_before_remove, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(string),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(format),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20_X2DFabric_X20_X20_X20_X20fab_X3D_X27_X25s_X27_X20_X28removed_X29),
- /* K5 */ be_nested_str_weak(get_fabric_id),
- /* K6 */ be_nested_str_weak(copy),
- /* K7 */ be_nested_str_weak(reverse),
- /* K8 */ be_nested_str_weak(tohex),
- /* K9 */ be_const_int(2),
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(fabric_index),
}),
- be_str_weak(before_remove),
+ be_str_weak(get_fabric_index),
&be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xB80A0200, // 0001 GETNGBL R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0x8C100303, // 0003 GETMET R4 R1 K3
- 0x58180004, // 0004 LDCONST R6 K4
- 0x8C1C0105, // 0005 GETMET R7 R0 K5
- 0x7C1C0200, // 0006 CALL R7 1
- 0x8C1C0F06, // 0007 GETMET R7 R7 K6
- 0x7C1C0200, // 0008 CALL R7 1
- 0x8C1C0F07, // 0009 GETMET R7 R7 K7
- 0x7C1C0200, // 000A CALL R7 1
- 0x8C1C0F08, // 000B GETMET R7 R7 K8
- 0x7C1C0200, // 000C CALL R7 1
- 0x7C100600, // 000D CALL R4 3
- 0x58140009, // 000E LDCONST R5 K9
- 0x7C080600, // 000F CALL R2 3
- 0x80000000, // 0010 RET 0
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_admin_subject
+********************************************************************/
+be_local_closure(Matter_Fabric_get_admin_subject, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(admin_subject),
+ }),
+ be_str_weak(get_admin_subject),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
})
)
);
@@ -289,65 +292,9 @@ be_local_closure(Matter_Fabric_get_old_recent_session, /* name */
/********************************************************************
-** Solidified function: get_ipk_group_key
+** Solidified function: get_device_id
********************************************************************/
-be_local_closure(Matter_Fabric_get_ipk_group_key, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(ipk_epoch_key),
- /* K1 */ be_nested_str_weak(fabric_compressed),
- /* K2 */ be_nested_str_weak(crypto),
- /* K3 */ be_nested_str_weak(HKDF_SHA256),
- /* K4 */ be_nested_str_weak(fromstring),
- /* K5 */ be_nested_str_weak(_GROUP_KEY),
- /* K6 */ be_nested_str_weak(derive),
- }),
- be_str_weak(get_ipk_group_key),
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x74060003, // 0003 JMPT R1 #0008
- 0x88040101, // 0004 GETMBR R1 R0 K1
- 0x4C080000, // 0005 LDNIL R2
- 0x1C040202, // 0006 EQ R1 R1 R2
- 0x78060001, // 0007 JMPF R1 #000A
- 0x4C040000, // 0008 LDNIL R1
- 0x80040200, // 0009 RET 1 R1
- 0xA4060400, // 000A IMPORT R1 K2
- 0x8C080303, // 000B GETMET R2 R1 K3
- 0x7C080200, // 000C CALL R2 1
- 0x600C0015, // 000D GETGBL R3 G21
- 0x7C0C0000, // 000E CALL R3 0
- 0x8C0C0704, // 000F GETMET R3 R3 K4
- 0x88140105, // 0010 GETMBR R5 R0 K5
- 0x7C0C0400, // 0011 CALL R3 2
- 0x8C100506, // 0012 GETMET R4 R2 K6
- 0x88180100, // 0013 GETMBR R6 R0 K0
- 0x881C0101, // 0014 GETMBR R7 R0 K1
- 0x5C200600, // 0015 MOVE R8 R3
- 0x5426000F, // 0016 LDINT R9 16
- 0x7C100A00, // 0017 CALL R4 5
- 0x80040800, // 0018 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_ipk_epoch_key
-********************************************************************/
-be_local_closure(Matter_Fabric_get_ipk_epoch_key, /* name */
+be_local_closure(Matter_Fabric_get_device_id, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@@ -358,9 +305,9 @@ be_local_closure(Matter_Fabric_get_ipk_epoch_key, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(ipk_epoch_key),
+ /* K0 */ be_nested_str_weak(device_id),
}),
- be_str_weak(get_ipk_epoch_key),
+ be_str_weak(get_device_id),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
@@ -372,11 +319,11 @@ be_local_closure(Matter_Fabric_get_ipk_epoch_key, /* name */
/********************************************************************
-** Solidified function: get_icac
+** Solidified function: counter_group_ctrl_snd_next
********************************************************************/
-be_local_closure(Matter_Fabric_get_icac, /* name */
+be_local_closure(Matter_Fabric_counter_group_ctrl_snd_next, /* name */
be_nested_proto(
- 2, /* nstack */
+ 9, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -384,14 +331,54 @@ be_local_closure(Matter_Fabric_get_icac, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(icac),
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(string),
+ /* K1 */ be_nested_str_weak(_counter_group_ctrl_snd_impl),
+ /* K2 */ be_nested_str_weak(next),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(log),
+ /* K5 */ be_nested_str_weak(format),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Counter_group_ctrl_snd_X3D_X25i),
+ /* K7 */ be_const_int(3),
+ /* K8 */ be_nested_str_weak(matter),
+ /* K9 */ be_nested_str_weak(Counter),
+ /* K10 */ be_nested_str_weak(is_greater),
+ /* K11 */ be_nested_str_weak(counter_group_ctrl_snd),
+ /* K12 */ be_nested_str_weak(_GROUP_SND_INCR),
+ /* K13 */ be_nested_str_weak(does_persist),
+ /* K14 */ be_nested_str_weak(save),
}),
- be_str_weak(get_icac),
+ be_str_weak(counter_group_ctrl_snd_next),
&be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
+ ( &(const binstruction[28]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x8C080502, // 0002 GETMET R2 R2 K2
+ 0x7C080200, // 0003 CALL R2 1
+ 0xB80E0600, // 0004 GETNGBL R3 K3
+ 0x8C0C0704, // 0005 GETMET R3 R3 K4
+ 0x8C140305, // 0006 GETMET R5 R1 K5
+ 0x581C0006, // 0007 LDCONST R7 K6
+ 0x5C200400, // 0008 MOVE R8 R2
+ 0x7C140600, // 0009 CALL R5 3
+ 0x58180007, // 000A LDCONST R6 K7
+ 0x7C0C0600, // 000B CALL R3 3
+ 0xB80E1000, // 000C GETNGBL R3 K8
+ 0x880C0709, // 000D GETMBR R3 R3 K9
+ 0x8C0C070A, // 000E GETMET R3 R3 K10
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x8818010B, // 0010 GETMBR R6 R0 K11
+ 0x7C0C0600, // 0011 CALL R3 3
+ 0x780E0007, // 0012 JMPF R3 #001B
+ 0x880C010C, // 0013 GETMBR R3 R0 K12
+ 0x000C0403, // 0014 ADD R3 R2 R3
+ 0x90021603, // 0015 SETMBR R0 K11 R3
+ 0x8C0C010D, // 0016 GETMET R3 R0 K13
+ 0x7C0C0200, // 0017 CALL R3 1
+ 0x780E0001, // 0018 JMPF R3 #001B
+ 0x8C0C010E, // 0019 GETMET R3 R0 K14
+ 0x7C0C0200, // 001A CALL R3 1
+ 0x80040400, // 001B RET 1 R2
})
)
);
@@ -452,6 +439,63 @@ be_local_closure(Matter_Fabric_get_fabric_compressed, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: add_session
+********************************************************************/
+be_local_closure(Matter_Fabric_add_session, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(_sessions),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(_MAX_CASE),
+ /* K3 */ be_nested_str_weak(remove),
+ /* K4 */ be_nested_str_weak(get_oldest_session),
+ /* K5 */ be_nested_str_weak(push),
+ }),
+ be_str_weak(add_session),
+ &be_const_str_solidified,
+ ( &(const binstruction[27]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x1C080403, // 0005 EQ R2 R2 R3
+ 0x780A0012, // 0006 JMPF R2 #001A
+ 0x6008000C, // 0007 GETGBL R2 G12
+ 0x880C0100, // 0008 GETMBR R3 R0 K0
+ 0x7C080200, // 0009 CALL R2 1
+ 0x880C0102, // 000A GETMBR R3 R0 K2
+ 0x28080403, // 000B GE R2 R2 R3
+ 0x780A0008, // 000C JMPF R2 #0016
+ 0x88080100, // 000D GETMBR R2 R0 K0
+ 0x8C080503, // 000E GETMET R2 R2 K3
+ 0x88100100, // 000F GETMBR R4 R0 K0
+ 0x8C100901, // 0010 GETMET R4 R4 K1
+ 0x8C180104, // 0011 GETMET R6 R0 K4
+ 0x7C180200, // 0012 CALL R6 1
+ 0x7C100400, // 0013 CALL R4 2
+ 0x7C080400, // 0014 CALL R2 2
+ 0x7001FFF0, // 0015 JMP #0007
+ 0x88080100, // 0016 GETMBR R2 R0 K0
+ 0x8C080505, // 0017 GETMET R2 R2 K5
+ 0x5C100200, // 0018 MOVE R4 R1
+ 0x7C080400, // 0019 CALL R2 2
+ 0x80000000, // 001A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: log_new_fabric
********************************************************************/
@@ -504,11 +548,11 @@ be_local_closure(Matter_Fabric_log_new_fabric, /* name */
/********************************************************************
-** Solidified function: get_device_id
+** Solidified function: before_remove
********************************************************************/
-be_local_closure(Matter_Fabric_get_device_id, /* name */
+be_local_closure(Matter_Fabric_before_remove, /* name */
be_nested_proto(
- 2, /* nstack */
+ 9, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -516,41 +560,38 @@ be_local_closure(Matter_Fabric_get_device_id, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(device_id),
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(string),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(format),
+ /* K4 */ be_nested_str_weak(MTR_X3A_X20_X2DFabric_X20_X20_X20_X20fab_X3D_X27_X25s_X27_X20_X28removed_X29),
+ /* K5 */ be_nested_str_weak(get_fabric_id),
+ /* K6 */ be_nested_str_weak(copy),
+ /* K7 */ be_nested_str_weak(reverse),
+ /* K8 */ be_nested_str_weak(tohex),
+ /* K9 */ be_const_int(2),
}),
- be_str_weak(get_device_id),
+ be_str_weak(before_remove),
&be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_admin_subject
-********************************************************************/
-be_local_closure(Matter_Fabric_get_admin_subject, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(admin_subject),
- }),
- be_str_weak(get_admin_subject),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
+ ( &(const binstruction[17]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xB80A0200, // 0001 GETNGBL R2 K1
+ 0x8C080502, // 0002 GETMET R2 R2 K2
+ 0x8C100303, // 0003 GETMET R4 R1 K3
+ 0x58180004, // 0004 LDCONST R6 K4
+ 0x8C1C0105, // 0005 GETMET R7 R0 K5
+ 0x7C1C0200, // 0006 CALL R7 1
+ 0x8C1C0F06, // 0007 GETMET R7 R7 K6
+ 0x7C1C0200, // 0008 CALL R7 1
+ 0x8C1C0F07, // 0009 GETMET R7 R7 K7
+ 0x7C1C0200, // 000A CALL R7 1
+ 0x8C1C0F08, // 000B GETMET R7 R7 K8
+ 0x7C1C0200, // 000C CALL R7 1
+ 0x7C100600, // 000D CALL R4 3
+ 0x58140009, // 000E LDCONST R5 K9
+ 0x7C080600, // 000F CALL R2 3
+ 0x80000000, // 0010 RET 0
})
)
);
@@ -675,6 +716,193 @@ be_local_closure(Matter_Fabric_fromjson, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(Matter_Fabric_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[18]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(_store),
+ /* K2 */ be_nested_str_weak(_sessions),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(Expirable_list),
+ /* K5 */ be_nested_str_weak(fabric_label),
+ /* K6 */ be_nested_str_weak(),
+ /* K7 */ be_nested_str_weak(created),
+ /* K8 */ be_nested_str_weak(tasmota),
+ /* K9 */ be_nested_str_weak(rtc),
+ /* K10 */ be_nested_str_weak(utc),
+ /* K11 */ be_nested_str_weak(_counter_group_data_snd_impl),
+ /* K12 */ be_nested_str_weak(Counter),
+ /* K13 */ be_nested_str_weak(_counter_group_ctrl_snd_impl),
+ /* K14 */ be_nested_str_weak(counter_group_data_snd),
+ /* K15 */ be_nested_str_weak(next),
+ /* K16 */ be_nested_str_weak(_GROUP_SND_INCR),
+ /* K17 */ be_nested_str_weak(counter_group_ctrl_snd),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[33]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0x90020201, // 0001 SETMBR R0 K1 R1
+ 0xB80E0600, // 0002 GETNGBL R3 K3
+ 0x8C0C0704, // 0003 GETMET R3 R3 K4
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0x90020403, // 0005 SETMBR R0 K2 R3
+ 0x90020B06, // 0006 SETMBR R0 K5 K6
+ 0xB80E1000, // 0007 GETNGBL R3 K8
+ 0x8C0C0709, // 0008 GETMET R3 R3 K9
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x940C070A, // 000A GETIDX R3 R3 K10
+ 0x90020E03, // 000B SETMBR R0 K7 R3
+ 0xB80E0600, // 000C GETNGBL R3 K3
+ 0x8C0C070C, // 000D GETMET R3 R3 K12
+ 0x7C0C0200, // 000E CALL R3 1
+ 0x90021603, // 000F SETMBR R0 K11 R3
+ 0xB80E0600, // 0010 GETNGBL R3 K3
+ 0x8C0C070C, // 0011 GETMET R3 R3 K12
+ 0x7C0C0200, // 0012 CALL R3 1
+ 0x90021A03, // 0013 SETMBR R0 K13 R3
+ 0x880C010B, // 0014 GETMBR R3 R0 K11
+ 0x8C0C070F, // 0015 GETMET R3 R3 K15
+ 0x7C0C0200, // 0016 CALL R3 1
+ 0x88100110, // 0017 GETMBR R4 R0 K16
+ 0x000C0604, // 0018 ADD R3 R3 R4
+ 0x90021C03, // 0019 SETMBR R0 K14 R3
+ 0x880C010B, // 001A GETMBR R3 R0 K11
+ 0x8C0C070F, // 001B GETMET R3 R3 K15
+ 0x7C0C0200, // 001C CALL R3 1
+ 0x88100110, // 001D GETMBR R4 R0 K16
+ 0x000C0604, // 001E ADD R3 R3 R4
+ 0x90022203, // 001F SETMBR R0 K17 R3
+ 0x80000000, // 0020 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_ipk_group_key
+********************************************************************/
+be_local_closure(Matter_Fabric_get_ipk_group_key, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(ipk_epoch_key),
+ /* K1 */ be_nested_str_weak(fabric_compressed),
+ /* K2 */ be_nested_str_weak(crypto),
+ /* K3 */ be_nested_str_weak(HKDF_SHA256),
+ /* K4 */ be_nested_str_weak(fromstring),
+ /* K5 */ be_nested_str_weak(_GROUP_KEY),
+ /* K6 */ be_nested_str_weak(derive),
+ }),
+ be_str_weak(get_ipk_group_key),
+ &be_const_str_solidified,
+ ( &(const binstruction[25]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x74060003, // 0003 JMPT R1 #0008
+ 0x88040101, // 0004 GETMBR R1 R0 K1
+ 0x4C080000, // 0005 LDNIL R2
+ 0x1C040202, // 0006 EQ R1 R1 R2
+ 0x78060001, // 0007 JMPF R1 #000A
+ 0x4C040000, // 0008 LDNIL R1
+ 0x80040200, // 0009 RET 1 R1
+ 0xA4060400, // 000A IMPORT R1 K2
+ 0x8C080303, // 000B GETMET R2 R1 K3
+ 0x7C080200, // 000C CALL R2 1
+ 0x600C0015, // 000D GETGBL R3 G21
+ 0x7C0C0000, // 000E CALL R3 0
+ 0x8C0C0704, // 000F GETMET R3 R3 K4
+ 0x88140105, // 0010 GETMBR R5 R0 K5
+ 0x7C0C0400, // 0011 CALL R3 2
+ 0x8C100506, // 0012 GETMET R4 R2 K6
+ 0x88180100, // 0013 GETMBR R6 R0 K0
+ 0x881C0101, // 0014 GETMBR R7 R0 K1
+ 0x5C200600, // 0015 MOVE R8 R3
+ 0x5426000F, // 0016 LDINT R9 16
+ 0x7C100A00, // 0017 CALL R4 5
+ 0x80040800, // 0018 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_ipk_epoch_key
+********************************************************************/
+be_local_closure(Matter_Fabric_get_ipk_epoch_key, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(ipk_epoch_key),
+ }),
+ be_str_weak(get_ipk_epoch_key),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_oldest_session
+********************************************************************/
+be_local_closure(Matter_Fabric_get_oldest_session, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(get_old_recent_session),
+ }),
+ be_str_weak(get_oldest_session),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x500C0200, // 0001 LDBOOL R3 1 0
+ 0x7C040400, // 0002 CALL R1 2
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: get_fabric_label
********************************************************************/
@@ -703,47 +931,28 @@ be_local_closure(Matter_Fabric_get_fabric_label, /* name */
/********************************************************************
-** Solidified function: init
+** Solidified function: get_newest_session
********************************************************************/
-be_local_closure(Matter_Fabric_init, /* name */
+be_local_closure(Matter_Fabric_get_newest_session, /* name */
be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
+ 4, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(_store),
- /* K2 */ be_nested_str_weak(_sessions),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(Expirable_list),
- /* K5 */ be_nested_str_weak(fabric_label),
- /* K6 */ be_nested_str_weak(),
- /* K7 */ be_nested_str_weak(created),
- /* K8 */ be_nested_str_weak(tasmota),
- /* K9 */ be_nested_str_weak(rtc),
- /* K10 */ be_nested_str_weak(utc),
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(get_old_recent_session),
}),
- be_str_weak(init),
+ be_str_weak(get_newest_session),
&be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0x90020201, // 0001 SETMBR R0 K1 R1
- 0xB80E0600, // 0002 GETNGBL R3 K3
- 0x8C0C0704, // 0003 GETMET R3 R3 K4
- 0x7C0C0200, // 0004 CALL R3 1
- 0x90020403, // 0005 SETMBR R0 K2 R3
- 0x90020B06, // 0006 SETMBR R0 K5 K6
- 0xB80E1000, // 0007 GETNGBL R3 K8
- 0x8C0C0709, // 0008 GETMET R3 R3 K9
- 0x7C0C0200, // 0009 CALL R3 1
- 0x940C070A, // 000A GETIDX R3 R3 K10
- 0x90020E03, // 000B SETMBR R0 K7 R3
- 0x80000000, // 000C RET 0
+ ( &(const binstruction[ 4]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x500C0000, // 0001 LDBOOL R3 0 0
+ 0x7C040400, // 0002 CALL R1 2
+ 0x80040200, // 0003 RET 1 R1
})
)
);
@@ -751,9 +960,9 @@ be_local_closure(Matter_Fabric_init, /* name */
/********************************************************************
-** Solidified function: get_fabric_index
+** Solidified function: get_ca
********************************************************************/
-be_local_closure(Matter_Fabric_get_fabric_index, /* name */
+be_local_closure(Matter_Fabric_get_ca, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@@ -764,9 +973,63 @@ be_local_closure(Matter_Fabric_get_fabric_index, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(fabric_index),
+ /* K0 */ be_nested_str_weak(root_ca_certificate),
}),
- be_str_weak(get_fabric_index),
+ be_str_weak(get_ca),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_icac
+********************************************************************/
+be_local_closure(Matter_Fabric_get_icac, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(icac),
+ }),
+ be_str_weak(get_icac),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_noc
+********************************************************************/
+be_local_closure(Matter_Fabric_get_noc, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(noc),
+ }),
+ be_str_weak(get_noc),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
@@ -832,63 +1095,9 @@ be_local_closure(Matter_Fabric_get_admin_vendor, /* name */
/********************************************************************
-** Solidified function: get_noc
+** Solidified function: hydrate_post
********************************************************************/
-be_local_closure(Matter_Fabric_get_noc, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(noc),
- }),
- be_str_weak(get_noc),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_ca
-********************************************************************/
-be_local_closure(Matter_Fabric_get_ca, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(root_ca_certificate),
- }),
- be_str_weak(get_ca),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_oldest_session
-********************************************************************/
-be_local_closure(Matter_Fabric_get_oldest_session, /* name */
+be_local_closure(Matter_Fabric_hydrate_post, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@@ -898,16 +1107,101 @@ be_local_closure(Matter_Fabric_get_oldest_session, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(get_old_recent_session),
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(_counter_group_data_snd_impl),
+ /* K1 */ be_nested_str_weak(reset),
+ /* K2 */ be_nested_str_weak(counter_group_data_snd),
+ /* K3 */ be_nested_str_weak(_counter_group_ctrl_snd_impl),
+ /* K4 */ be_nested_str_weak(counter_group_ctrl_snd),
+ /* K5 */ be_nested_str_weak(val),
}),
- be_str_weak(get_oldest_session),
+ be_str_weak(hydrate_post),
&be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x500C0200, // 0001 LDBOOL R3 1 0
- 0x7C040400, // 0002 CALL R1 2
- 0x80040200, // 0003 RET 1 R1
+ ( &(const binstruction[17]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x880C0102, // 0002 GETMBR R3 R0 K2
+ 0x7C040400, // 0003 CALL R1 2
+ 0x88040103, // 0004 GETMBR R1 R0 K3
+ 0x8C040301, // 0005 GETMET R1 R1 K1
+ 0x880C0104, // 0006 GETMBR R3 R0 K4
+ 0x7C040400, // 0007 CALL R1 2
+ 0x88040100, // 0008 GETMBR R1 R0 K0
+ 0x8C040305, // 0009 GETMET R1 R1 K5
+ 0x7C040200, // 000A CALL R1 1
+ 0x90020401, // 000B SETMBR R0 K2 R1
+ 0x88040103, // 000C GETMBR R1 R0 K3
+ 0x8C040305, // 000D GETMET R1 R1 K5
+ 0x7C040200, // 000E CALL R1 1
+ 0x90020801, // 000F SETMBR R0 K4 R1
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: counter_group_data_snd_next
+********************************************************************/
+be_local_closure(Matter_Fabric_counter_group_data_snd_next, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(string),
+ /* K1 */ be_nested_str_weak(_counter_group_data_snd_impl),
+ /* K2 */ be_nested_str_weak(next),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(log),
+ /* K5 */ be_nested_str_weak(format),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Counter_group_data_snd_X3D_X25i),
+ /* K7 */ be_const_int(3),
+ /* K8 */ be_nested_str_weak(matter),
+ /* K9 */ be_nested_str_weak(Counter),
+ /* K10 */ be_nested_str_weak(is_greater),
+ /* K11 */ be_nested_str_weak(counter_group_data_snd),
+ /* K12 */ be_nested_str_weak(_GROUP_SND_INCR),
+ /* K13 */ be_nested_str_weak(does_persist),
+ /* K14 */ be_nested_str_weak(save),
+ }),
+ be_str_weak(counter_group_data_snd_next),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x8C080502, // 0002 GETMET R2 R2 K2
+ 0x7C080200, // 0003 CALL R2 1
+ 0xB80E0600, // 0004 GETNGBL R3 K3
+ 0x8C0C0704, // 0005 GETMET R3 R3 K4
+ 0x8C140305, // 0006 GETMET R5 R1 K5
+ 0x581C0006, // 0007 LDCONST R7 K6
+ 0x5C200400, // 0008 MOVE R8 R2
+ 0x7C140600, // 0009 CALL R5 3
+ 0x58180007, // 000A LDCONST R6 K7
+ 0x7C0C0600, // 000B CALL R3 3
+ 0xB80E1000, // 000C GETNGBL R3 K8
+ 0x880C0709, // 000D GETMBR R3 R3 K9
+ 0x8C0C070A, // 000E GETMET R3 R3 K10
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x8818010B, // 0010 GETMBR R6 R0 K11
+ 0x7C0C0600, // 0011 CALL R3 3
+ 0x780E0007, // 0012 JMPF R3 #001B
+ 0x880C010C, // 0013 GETMBR R3 R0 K12
+ 0x000C0403, // 0014 ADD R3 R2 R3
+ 0x90021603, // 0015 SETMBR R0 K11 R3
+ 0x8C0C010D, // 0016 GETMET R3 R0 K13
+ 0x7C0C0200, // 0017 CALL R3 1
+ 0x780E0001, // 0018 JMPF R3 #001B
+ 0x8C0C010E, // 0019 GETMET R3 R0 K14
+ 0x7C0C0200, // 001A CALL R3 1
+ 0x80040400, // 001B RET 1 R2
})
)
);
@@ -955,142 +1249,64 @@ be_local_closure(Matter_Fabric_get_ca_pub, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: get_newest_session
-********************************************************************/
-be_local_closure(Matter_Fabric_get_newest_session, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(get_old_recent_session),
- }),
- be_str_weak(get_newest_session),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x500C0000, // 0001 LDBOOL R3 0 0
- 0x7C040400, // 0002 CALL R1 2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: add_session
-********************************************************************/
-be_local_closure(Matter_Fabric_add_session, /* name */
- be_nested_proto(
- 8, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(_sessions),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(_MAX_CASE),
- /* K3 */ be_nested_str_weak(remove),
- /* K4 */ be_nested_str_weak(get_oldest_session),
- /* K5 */ be_nested_str_weak(push),
- }),
- be_str_weak(add_session),
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x4C0C0000, // 0004 LDNIL R3
- 0x1C080403, // 0005 EQ R2 R2 R3
- 0x780A0012, // 0006 JMPF R2 #001A
- 0x6008000C, // 0007 GETGBL R2 G12
- 0x880C0100, // 0008 GETMBR R3 R0 K0
- 0x7C080200, // 0009 CALL R2 1
- 0x880C0102, // 000A GETMBR R3 R0 K2
- 0x28080403, // 000B GE R2 R2 R3
- 0x780A0008, // 000C JMPF R2 #0016
- 0x88080100, // 000D GETMBR R2 R0 K0
- 0x8C080503, // 000E GETMET R2 R2 K3
- 0x88100100, // 000F GETMBR R4 R0 K0
- 0x8C100901, // 0010 GETMET R4 R4 K1
- 0x8C180104, // 0011 GETMET R6 R0 K4
- 0x7C180200, // 0012 CALL R6 1
- 0x7C100400, // 0013 CALL R4 2
- 0x7C080400, // 0014 CALL R2 2
- 0x7001FFF0, // 0015 JMP #0007
- 0x88080100, // 0016 GETMBR R2 R0 K0
- 0x8C080505, // 0017 GETMET R2 R2 K5
- 0x5C100200, // 0018 MOVE R4 R1
- 0x7C080400, // 0019 CALL R2 2
- 0x80000000, // 001A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified class: Matter_Fabric
********************************************************************/
extern const bclass be_class_Matter_Expirable;
be_local_class(Matter_Fabric,
- 16,
+ 20,
&be_class_Matter_Expirable,
- be_nested_map(41,
+ be_nested_map(49,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(tojson, -1), be_const_closure(Matter_Fabric_tojson_closure) },
- { be_const_key_weak(created, 16), be_const_var(1) },
- { be_const_key_weak(device_id, -1), be_const_var(12) },
- { be_const_key_weak(get_old_recent_session, -1), be_const_closure(Matter_Fabric_get_old_recent_session_closure) },
- { be_const_key_weak(get_ipk_group_key, -1), be_const_closure(Matter_Fabric_get_ipk_group_key_closure) },
- { be_const_key_weak(admin_subject, -1), be_const_var(14) },
- { be_const_key_weak(ipk_epoch_key, -1), be_const_var(9) },
- { be_const_key_weak(set_fabric_index, -1), be_const_closure(Matter_Fabric_set_fabric_index_closure) },
- { be_const_key_weak(get_fabric_compressed, 7), be_const_closure(Matter_Fabric_get_fabric_compressed_closure) },
- { be_const_key_weak(_sessions, -1), be_const_var(4) },
- { be_const_key_weak(get_icac, -1), be_const_closure(Matter_Fabric_get_icac_closure) },
- { be_const_key_weak(icac, 29), be_const_var(8) },
- { be_const_key_weak(fabric_id, -1), be_const_var(10) },
- { be_const_key_weak(get_admin_subject, -1), be_const_closure(Matter_Fabric_get_admin_subject_closure) },
{ be_const_key_weak(no_private_key, -1), be_const_var(5) },
- { be_const_key_weak(log_new_fabric, 34), be_const_closure(Matter_Fabric_log_new_fabric_closure) },
- { be_const_key_weak(get_device_id, -1), be_const_closure(Matter_Fabric_get_device_id_closure) },
- { be_const_key_weak(get_ipk_epoch_key, 13), be_const_closure(Matter_Fabric_get_ipk_epoch_key_closure) },
- { be_const_key_weak(fromjson, -1), be_const_static_closure(Matter_Fabric_fromjson_closure) },
- { be_const_key_weak(admin_vendor, -1), be_const_var(15) },
- { be_const_key_weak(init, 2), be_const_closure(Matter_Fabric_init_closure) },
- { be_const_key_weak(get_fabric_label, -1), be_const_closure(Matter_Fabric_get_fabric_label_closure) },
- { be_const_key_weak(noc, -1), be_const_var(7) },
- { be_const_key_weak(before_remove, 20), be_const_closure(Matter_Fabric_before_remove_closure) },
- { be_const_key_weak(get_fabric_index, -1), be_const_closure(Matter_Fabric_get_fabric_index_closure) },
- { be_const_key_weak(_GROUP_KEY, -1), be_nested_str_weak(GroupKey_X20v1_X2E0) },
- { be_const_key_weak(get_fabric_id, 8), be_const_closure(Matter_Fabric_get_fabric_id_closure) },
- { be_const_key_weak(fabric_index, 19), be_const_var(2) },
- { be_const_key_weak(_store, -1), be_const_var(0) },
- { be_const_key_weak(fabric_label, 31), be_const_var(13) },
- { be_const_key_weak(get_admin_vendor, -1), be_const_closure(Matter_Fabric_get_admin_vendor_closure) },
- { be_const_key_weak(fabric_compressed, 26), be_const_var(11) },
- { be_const_key_weak(get_noc, -1), be_const_closure(Matter_Fabric_get_noc_closure) },
- { be_const_key_weak(get_ca, -1), be_const_closure(Matter_Fabric_get_ca_closure) },
- { be_const_key_weak(root_ca_certificate, -1), be_const_var(6) },
- { be_const_key_weak(get_oldest_session, -1), be_const_closure(Matter_Fabric_get_oldest_session_closure) },
- { be_const_key_weak(get_ca_pub, -1), be_const_closure(Matter_Fabric_get_ca_pub_closure) },
- { be_const_key_weak(_MAX_CASE, 9), be_const_int(5) },
- { be_const_key_weak(get_newest_session, -1), be_const_closure(Matter_Fabric_get_newest_session_closure) },
+ { be_const_key_weak(tojson, 8), be_const_closure(Matter_Fabric_tojson_closure) },
+ { be_const_key_weak(counter_group_data_snd, -1), be_const_var(14) },
+ { be_const_key_weak(fabric_label, -1), be_const_var(13) },
+ { be_const_key_weak(_sessions, 34), be_const_var(4) },
+ { be_const_key_weak(created, -1), be_const_var(1) },
+ { be_const_key_weak(_GROUP_SND_INCR, -1), be_const_int(32) },
+ { be_const_key_weak(get_admin_subject, -1), be_const_closure(Matter_Fabric_get_admin_subject_closure) },
{ be_const_key_weak(add_session, -1), be_const_closure(Matter_Fabric_add_session_closure) },
+ { be_const_key_weak(get_old_recent_session, -1), be_const_closure(Matter_Fabric_get_old_recent_session_closure) },
+ { be_const_key_weak(counter_group_data_snd_next, -1), be_const_closure(Matter_Fabric_counter_group_data_snd_next_closure) },
+ { be_const_key_weak(ipk_epoch_key, -1), be_const_var(9) },
+ { be_const_key_weak(get_device_id, -1), be_const_closure(Matter_Fabric_get_device_id_closure) },
+ { be_const_key_weak(counter_group_ctrl_snd_next, -1), be_const_closure(Matter_Fabric_counter_group_ctrl_snd_next_closure) },
+ { be_const_key_weak(_counter_group_ctrl_snd_impl, -1), be_const_var(17) },
+ { be_const_key_weak(admin_subject, 3), be_const_var(18) },
+ { be_const_key_weak(set_fabric_index, -1), be_const_closure(Matter_Fabric_set_fabric_index_closure) },
+ { be_const_key_weak(get_fabric_compressed, 32), be_const_closure(Matter_Fabric_get_fabric_compressed_closure) },
+ { be_const_key_weak(fabric_index, -1), be_const_var(2) },
+ { be_const_key_weak(counter_group_ctrl_snd, 21), be_const_var(15) },
+ { be_const_key_weak(log_new_fabric, -1), be_const_closure(Matter_Fabric_log_new_fabric_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(Matter_Fabric_init_closure) },
+ { be_const_key_weak(get_fabric_id, -1), be_const_closure(Matter_Fabric_get_fabric_id_closure) },
+ { be_const_key_weak(_store, 15), be_const_var(0) },
+ { be_const_key_weak(admin_vendor, 20), be_const_var(19) },
+ { be_const_key_weak(device_id, 40), be_const_var(12) },
+ { be_const_key_weak(before_remove, 28), be_const_closure(Matter_Fabric_before_remove_closure) },
+ { be_const_key_weak(fromjson, -1), be_const_static_closure(Matter_Fabric_fromjson_closure) },
+ { be_const_key_weak(get_noc, 39), be_const_closure(Matter_Fabric_get_noc_closure) },
+ { be_const_key_weak(get_fabric_index, 38), be_const_closure(Matter_Fabric_get_fabric_index_closure) },
+ { be_const_key_weak(_MAX_CASE, -1), be_const_int(5) },
+ { be_const_key_weak(get_ipk_epoch_key, -1), be_const_closure(Matter_Fabric_get_ipk_epoch_key_closure) },
+ { be_const_key_weak(_GROUP_KEY, -1), be_nested_str_weak(GroupKey_X20v1_X2E0) },
+ { be_const_key_weak(_counter_group_data_snd_impl, -1), be_const_var(16) },
{ be_const_key_weak(fabric_parent, -1), be_const_var(3) },
+ { be_const_key_weak(fabric_id, -1), be_const_var(10) },
+ { be_const_key_weak(icac, 35), be_const_var(8) },
+ { be_const_key_weak(get_ca, -1), be_const_closure(Matter_Fabric_get_ca_closure) },
+ { be_const_key_weak(get_ipk_group_key, 6), be_const_closure(Matter_Fabric_get_ipk_group_key_closure) },
+ { be_const_key_weak(get_fabric_label, -1), be_const_closure(Matter_Fabric_get_fabric_label_closure) },
+ { be_const_key_weak(get_oldest_session, -1), be_const_closure(Matter_Fabric_get_oldest_session_closure) },
+ { be_const_key_weak(get_newest_session, 22), be_const_closure(Matter_Fabric_get_newest_session_closure) },
+ { be_const_key_weak(get_admin_vendor, -1), be_const_closure(Matter_Fabric_get_admin_vendor_closure) },
+ { be_const_key_weak(noc, -1), be_const_var(7) },
+ { be_const_key_weak(hydrate_post, -1), be_const_closure(Matter_Fabric_hydrate_post_closure) },
+ { be_const_key_weak(get_icac, 10), be_const_closure(Matter_Fabric_get_icac_closure) },
+ { be_const_key_weak(fabric_compressed, -1), be_const_var(11) },
+ { be_const_key_weak(get_ca_pub, -1), be_const_closure(Matter_Fabric_get_ca_pub_closure) },
+ { be_const_key_weak(root_ca_certificate, -1), be_const_var(6) },
})),
be_str_weak(Matter_Fabric)
);