VOL-4877: Tx power of transceivers available on the DMI interface

Change-Id: If48d7ac4970459c520ac43463d2ec3bda95b46fe
diff --git a/VERSION b/VERSION
index f8e233b..81c871d 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.9.0
+1.10.0
diff --git a/cpp/dmi/hw.pb.cc b/cpp/dmi/hw.pb.cc
index c63704b..ddf179b 100644
--- a/cpp/dmi/hw.pb.cc
+++ b/cpp/dmi/hw.pb.cc
@@ -448,6 +448,8 @@
   PROTOBUF_FIELD_OFFSET(::dmi::TransceiverComponentsAttributes, rx_wavelength_),
   PROTOBUF_FIELD_OFFSET(::dmi::TransceiverComponentsAttributes, tx_wavelength_),
   PROTOBUF_FIELD_OFFSET(::dmi::TransceiverComponentsAttributes, wavelength_scale_),
+  PROTOBUF_FIELD_OFFSET(::dmi::TransceiverComponentsAttributes, tx_power_),
+  PROTOBUF_FIELD_OFFSET(::dmi::TransceiverComponentsAttributes, tx_power_scale_),
   ~0u,  // no _has_bits_
   PROTOBUF_FIELD_OFFSET(::dmi::Component, _internal_metadata_),
   ~0u,  // no _extensions_
@@ -516,9 +518,9 @@
   { 74, -1, sizeof(::dmi::ContainerComponentAttributes)},
   { 80, -1, sizeof(::dmi::PsuComponentAttributes)},
   { 86, -1, sizeof(::dmi::TransceiverComponentsAttributes)},
-  { 98, -1, sizeof(::dmi::Component)},
-  { 128, -1, sizeof(::dmi::Hardware)},
-  { 136, -1, sizeof(::dmi::ModifiableComponent)},
+  { 100, -1, sizeof(::dmi::Component)},
+  { 130, -1, sizeof(::dmi::Hardware)},
+  { 138, -1, sizeof(::dmi::ModifiableComponent)},
 };
 
 static ::google::protobuf::Message const * const file_default_instances[] = {
@@ -594,121 +596,123 @@
   ".PsuComponentAttributes.SupportedVoltage"
   "\"P\n\020SupportedVoltage\022\037\n\033SUPPORTED_VOLTAG"
   "E_UNDEFINED\020\000\022\007\n\003V48\020\001\022\010\n\004V230\020\002\022\010\n\004V115"
-  "\020\003\"\360\003\n\037TransceiverComponentsAttributes\022D"
+  "\020\003\"\253\004\n\037TransceiverComponentsAttributes\022D"
   "\n\013form_factor\030\001 \001(\0162/.dmi.TransceiverCom"
   "ponentsAttributes.FormFactor\022(\n\ntrans_ty"
   "pe\030\002 \001(\0162\024.dmi.TransceiverType\022\024\n\014max_di"
   "stance\030\003 \001(\r\022+\n\022max_distance_scale\030\004 \001(\016"
   "2\017.dmi.ValueScale\022\025\n\rrx_wavelength\030\005 \003(\r"
   "\022\025\n\rtx_wavelength\030\006 \003(\r\022)\n\020wavelength_sc"
-  "ale\030\007 \001(\0162\017.dmi.ValueScale\"\300\001\n\nFormFacto"
-  "r\022\027\n\023FORM_FACTOR_UNKNOWN\020\000\022\010\n\004QSFP\020\001\022\r\n\t"
-  "QSFP_PLUS\020\002\022\n\n\006QSFP28\020\003\022\007\n\003SFP\020\004\022\014\n\010SFP_"
-  "PLUS\020\005\022\007\n\003XFP\020\006\022\010\n\004CFP4\020\007\022\010\n\004CFP2\020\010\022\010\n\004C"
-  "PAK\020\t\022\006\n\002X2\020\n\022\t\n\005OTHER\020\013\022\007\n\003CFP\020\014\022\014\n\010CFP"
-  "2_ACO\020\r\022\014\n\010CFP2_DCO\020\016\"\350\005\n\tComponent\022\014\n\004n"
-  "ame\030\001 \001(\t\022!\n\005class\030\002 \001(\0162\022.dmi.Component"
-  "Type\022\023\n\013description\030\003 \001(\t\022\016\n\006parent\030\004 \001("
-  "\t\022\026\n\016parent_rel_pos\030\005 \001(\005\022 \n\010children\030\006 "
-  "\003(\0132\016.dmi.Component\022\024\n\014hardware_rev\030\007 \001("
-  "\t\022\024\n\014firmware_rev\030\010 \001(\t\022\024\n\014software_rev\030"
-  "\t \001(\t\022\022\n\nserial_num\030\n \001(\t\022\020\n\010mfg_name\030\013 "
-  "\001(\t\022\022\n\nmodel_name\030\014 \001(\t\022\r\n\005alias\030\r \001(\t\022\020"
-  "\n\010asset_id\030\016 \001(\t\022\016\n\006is_fru\030\017 \001(\010\022,\n\010mfg_"
-  "date\030\020 \001(\0132\032.google.protobuf.Timestamp\022\025"
-  "\n\003uri\030\021 \001(\0132\010.dmi.Uri\022\027\n\004uuid\030\022 \001(\0132\t.dm"
-  "i.Uuid\022\"\n\005state\030\023 \001(\0132\023.dmi.ComponentSta"
-  "te\022-\n\013sensor_data\030\024 \003(\0132\030.dmi.ComponentS"
-  "ensorData\0221\n\tport_attr\0302 \001(\0132\034.dmi.PortC"
-  "omponentAttributesH\000\022;\n\016container_attr\0303"
-  " \001(\0132!.dmi.ContainerComponentAttributesH"
-  "\000\022/\n\010psu_attr\0304 \001(\0132\033.dmi.PsuComponentAt"
-  "tributesH\000\022@\n\020transceiver_attr\0305 \001(\0132$.d"
-  "mi.TransceiverComponentsAttributesH\000B\n\n\010"
-  "specific\"\212\001\n\010Hardware\022/\n\013last_change\030\001 \001"
-  "(\0132\032.google.protobuf.Timestamp\022\034\n\004root\030\002"
-  " \001(\0132\016.dmi.Component\022/\n\013last_booted\030\003 \001("
-  "\0132\032.google.protobuf.Timestamp\"\351\002\n\023Modifi"
-  "ableComponent\022\014\n\004name\030\001 \001(\t\022!\n\005class\030\002 \001"
-  "(\0162\022.dmi.ComponentType\022\036\n\006parent\030\003 \001(\0132\016"
-  ".dmi.Component\022\026\n\016parent_rel_pos\030\004 \001(\005\022\r"
-  "\n\005alias\030\005 \001(\t\022\020\n\010asset_id\030\006 \001(\t\022\025\n\003uri\030\007"
-  " \001(\0132\010.dmi.Uri\022-\n\013admin_state\030\010 \001(\0162\030.dm"
-  "i.ComponentAdminState\0227\n\tport_attr\0302 \001(\013"
-  "2\".dmi.PortComponentChangeAttributesH\000\022="
-  "\n\010trx_attr\0303 \001(\0132).dmi.TransceiverCompon"
-  "entChangeAttributesH\000B\n\n\010specific*\264\003\n\rCo"
-  "mponentType\022\034\n\030COMPONENT_TYPE_UNDEFINED\020"
-  "\000\022\032\n\026COMPONENT_TYPE_UNKNOWN\020\001\022\032\n\026COMPONE"
-  "NT_TYPE_CHASSIS\020\002\022\034\n\030COMPONENT_TYPE_BACK"
-  "PLANE\020\003\022\034\n\030COMPONENT_TYPE_CONTAINER\020\004\022\037\n"
-  "\033COMPONENT_TYPE_POWER_SUPPLY\020\005\022\026\n\022COMPON"
-  "ENT_TYPE_FAN\020\006\022\031\n\025COMPONENT_TYPE_SENSOR\020"
-  "\007\022\031\n\025COMPONENT_TYPE_MODULE\020\010\022\027\n\023COMPONEN"
-  "T_TYPE_PORT\020\t\022\026\n\022COMPONENT_TYPE_CPU\020\n\022\032\n"
-  "\026COMPONENT_TYPE_BATTERY\020\013\022\032\n\026COMPONENT_T"
-  "YPE_STORAGE\020\014\022\031\n\025COMPONENT_TYPE_MEMORY\020\r"
-  "\022\036\n\032COMPONENT_TYPE_TRANSCEIVER\020\016*\263\001\n\023Com"
-  "ponentAdminState\022\036\n\032COMP_ADMIN_STATE_UND"
-  "EFINED\020\000\022\034\n\030COMP_ADMIN_STATE_UNKNOWN\020\001\022\033"
-  "\n\027COMP_ADMIN_STATE_LOCKED\020\002\022\"\n\036COMP_ADMI"
-  "N_STATE_SHUTTING_DOWN\020\003\022\035\n\031COMP_ADMIN_ST"
-  "ATE_UNLOCKED\020\004*\250\001\n\022ComponentOperState\022\035\n"
-  "\031COMP_OPER_STATE_UNDEFINED\020\000\022\033\n\027COMP_OPE"
-  "R_STATE_UNKNOWN\020\001\022\034\n\030COMP_OPER_STATE_DIS"
-  "ABLED\020\002\022\033\n\027COMP_OPER_STATE_ENABLED\020\003\022\033\n\027"
-  "COMP_OPER_STATE_TESTING\020\004*\246\001\n\023ComponentU"
-  "sageState\022\036\n\032COMP_USAGE_STATE_UNDEFINED\020"
-  "\000\022\034\n\030COMP_USAGE_STATE_UNKNOWN\020\001\022\031\n\025COMP_"
-  "USAGE_STATE_IDLE\020\002\022\033\n\027COMP_USAGE_STATE_A"
-  "CTIVE\020\003\022\031\n\025COMP_USAGE_STATE_BUSY\020\004*\217\002\n\023C"
-  "omponentAlarmState\022\036\n\032COMP_ALARM_STATE_U"
-  "NDEFINED\020\000\022\034\n\030COMP_ALARM_STATE_UNKNOWN\020\001"
-  "\022!\n\035COMP_ALARM_STATE_UNDER_REPAIR\020\002\022\035\n\031C"
-  "OMP_ALARM_STATE_CRITICAL\020\003\022\032\n\026COMP_ALARM"
-  "_STATE_MAJOR\020\004\022\032\n\026COMP_ALARM_STATE_MINOR"
-  "\020\005\022\034\n\030COMP_ALARM_STATE_WARNING\020\006\022\"\n\036COMP"
-  "_ALARM_STATE_INDETERMINATE\020\007*\274\001\n\025Compone"
-  "ntStandbyState\022 \n\034COMP_STANDBY_STATE_UND"
-  "EFINED\020\000\022\036\n\032COMP_STANDBY_STATE_UNKNOWN\020\001"
-  "\022\032\n\026COMP_STANDBY_STATE_HOT\020\002\022\033\n\027COMP_STA"
-  "NDBY_STATE_COLD\020\003\022(\n$COMP_STANDBY_STATE_"
-  "PROVIDING_SERVICE\020\004*\235\003\n\rDataValueType\022\030\n"
-  "\024VALUE_TYPE_UNDEFINED\020\000\022\024\n\020VALUE_TYPE_OT"
-  "HER\020\001\022\026\n\022VALUE_TYPE_UNKNOWN\020\002\022\027\n\023VALUE_T"
-  "YPE_VOLTS_AC\020\003\022\027\n\023VALUE_TYPE_VOLTS_DC\020\004\022"
-  "\026\n\022VALUE_TYPE_AMPERES\020\005\022\024\n\020VALUE_TYPE_WA"
-  "TTS\020\006\022\024\n\020VALUE_TYPE_HERTZ\020\007\022\026\n\022VALUE_TYP"
-  "E_CELSIUS\020\010\022\031\n\025VALUE_TYPE_PERCENT_RH\020\t\022\022"
-  "\n\016VALUE_TYPE_RPM\020\n\022\022\n\016VALUE_TYPE_CMM\020\013\022\032"
-  "\n\026VALUE_TYPE_TRUTH_VALUE\020\014\022\026\n\022VALUE_TYPE"
-  "_PERCENT\020\r\022\025\n\021VALUE_TYPE_METERS\020\016\022\024\n\020VAL"
-  "UE_TYPE_BYTES\020\017\022\022\n\016VALUE_TYPE_DBM\020\020*\244\003\n\n"
-  "ValueScale\022\031\n\025VALUE_SCALE_UNDEFINED\020\000\022\025\n"
-  "\021VALUE_SCALE_YOCTO\020\001\022\025\n\021VALUE_SCALE_ZEPT"
-  "O\020\002\022\024\n\020VALUE_SCALE_ATTO\020\003\022\025\n\021VALUE_SCALE"
-  "_FEMTO\020\004\022\024\n\020VALUE_SCALE_PICO\020\005\022\024\n\020VALUE_"
-  "SCALE_NANO\020\006\022\025\n\021VALUE_SCALE_MICRO\020\007\022\025\n\021V"
-  "ALUE_SCALE_MILLI\020\010\022\025\n\021VALUE_SCALE_UNITS\020"
-  "\t\022\024\n\020VALUE_SCALE_KILO\020\n\022\024\n\020VALUE_SCALE_M"
-  "EGA\020\013\022\024\n\020VALUE_SCALE_GIGA\020\014\022\024\n\020VALUE_SCA"
-  "LE_TERA\020\r\022\024\n\020VALUE_SCALE_PETA\020\016\022\023\n\017VALUE"
-  "_SCALE_EXA\020\017\022\025\n\021VALUE_SCALE_ZETTA\020\020\022\025\n\021V"
-  "ALUE_SCALE_YOTTA\020\021*\202\001\n\014SensorStatus\022\033\n\027S"
-  "ENSOR_STATUS_UNDEFINED\020\000\022\024\n\020SENSOR_STATU"
-  "S_OK\020\001\022\035\n\031SENSOR_STATUS_UNAVAILABLE\020\002\022 \n"
-  "\034SENSOR_STATUS_NONOPERATIONAL\020\003*\244\001\n\017Tran"
-  "sceiverType\022\022\n\016TYPE_UNDEFINED\020\000\022\014\n\010ETHER"
-  "NET\020\001\022\010\n\004GPON\020\002\022\t\n\005XGPON\020\003\022\n\n\006XGSPON\020\004\022\010"
-  "\n\004CPON\020\005\022\013\n\007NG_PON2\020\006\022\010\n\004EPON\020\007\022\025\n\021COMBO"
-  "_GPON_XGSPON\020\010\022\026\n\021TYPE_NOT_DETECTED\020\377\001B;"
-  "Z9github.com/opencord/device-management-"
-  "interface/v3/go/dmib\006proto3"
+  "ale\030\007 \001(\0162\017.dmi.ValueScale\022\020\n\010tx_power\030\010"
+  " \003(\005\022\'\n\016tx_power_scale\030\t \001(\0162\017.dmi.Value"
+  "Scale\"\300\001\n\nFormFactor\022\027\n\023FORM_FACTOR_UNKN"
+  "OWN\020\000\022\010\n\004QSFP\020\001\022\r\n\tQSFP_PLUS\020\002\022\n\n\006QSFP28"
+  "\020\003\022\007\n\003SFP\020\004\022\014\n\010SFP_PLUS\020\005\022\007\n\003XFP\020\006\022\010\n\004CF"
+  "P4\020\007\022\010\n\004CFP2\020\010\022\010\n\004CPAK\020\t\022\006\n\002X2\020\n\022\t\n\005OTHE"
+  "R\020\013\022\007\n\003CFP\020\014\022\014\n\010CFP2_ACO\020\r\022\014\n\010CFP2_DCO\020\016"
+  "\"\350\005\n\tComponent\022\014\n\004name\030\001 \001(\t\022!\n\005class\030\002 "
+  "\001(\0162\022.dmi.ComponentType\022\023\n\013description\030\003"
+  " \001(\t\022\016\n\006parent\030\004 \001(\t\022\026\n\016parent_rel_pos\030\005"
+  " \001(\005\022 \n\010children\030\006 \003(\0132\016.dmi.Component\022\024"
+  "\n\014hardware_rev\030\007 \001(\t\022\024\n\014firmware_rev\030\010 \001"
+  "(\t\022\024\n\014software_rev\030\t \001(\t\022\022\n\nserial_num\030\n"
+  " \001(\t\022\020\n\010mfg_name\030\013 \001(\t\022\022\n\nmodel_name\030\014 \001"
+  "(\t\022\r\n\005alias\030\r \001(\t\022\020\n\010asset_id\030\016 \001(\t\022\016\n\006i"
+  "s_fru\030\017 \001(\010\022,\n\010mfg_date\030\020 \001(\0132\032.google.p"
+  "rotobuf.Timestamp\022\025\n\003uri\030\021 \001(\0132\010.dmi.Uri"
+  "\022\027\n\004uuid\030\022 \001(\0132\t.dmi.Uuid\022\"\n\005state\030\023 \001(\013"
+  "2\023.dmi.ComponentState\022-\n\013sensor_data\030\024 \003"
+  "(\0132\030.dmi.ComponentSensorData\0221\n\tport_att"
+  "r\0302 \001(\0132\034.dmi.PortComponentAttributesH\000\022"
+  ";\n\016container_attr\0303 \001(\0132!.dmi.ContainerC"
+  "omponentAttributesH\000\022/\n\010psu_attr\0304 \001(\0132\033"
+  ".dmi.PsuComponentAttributesH\000\022@\n\020transce"
+  "iver_attr\0305 \001(\0132$.dmi.TransceiverCompone"
+  "ntsAttributesH\000B\n\n\010specific\"\212\001\n\010Hardware"
+  "\022/\n\013last_change\030\001 \001(\0132\032.google.protobuf."
+  "Timestamp\022\034\n\004root\030\002 \001(\0132\016.dmi.Component\022"
+  "/\n\013last_booted\030\003 \001(\0132\032.google.protobuf.T"
+  "imestamp\"\351\002\n\023ModifiableComponent\022\014\n\004name"
+  "\030\001 \001(\t\022!\n\005class\030\002 \001(\0162\022.dmi.ComponentTyp"
+  "e\022\036\n\006parent\030\003 \001(\0132\016.dmi.Component\022\026\n\016par"
+  "ent_rel_pos\030\004 \001(\005\022\r\n\005alias\030\005 \001(\t\022\020\n\010asse"
+  "t_id\030\006 \001(\t\022\025\n\003uri\030\007 \001(\0132\010.dmi.Uri\022-\n\013adm"
+  "in_state\030\010 \001(\0162\030.dmi.ComponentAdminState"
+  "\0227\n\tport_attr\0302 \001(\0132\".dmi.PortComponentC"
+  "hangeAttributesH\000\022=\n\010trx_attr\0303 \001(\0132).dm"
+  "i.TransceiverComponentChangeAttributesH\000"
+  "B\n\n\010specific*\264\003\n\rComponentType\022\034\n\030COMPON"
+  "ENT_TYPE_UNDEFINED\020\000\022\032\n\026COMPONENT_TYPE_U"
+  "NKNOWN\020\001\022\032\n\026COMPONENT_TYPE_CHASSIS\020\002\022\034\n\030"
+  "COMPONENT_TYPE_BACKPLANE\020\003\022\034\n\030COMPONENT_"
+  "TYPE_CONTAINER\020\004\022\037\n\033COMPONENT_TYPE_POWER"
+  "_SUPPLY\020\005\022\026\n\022COMPONENT_TYPE_FAN\020\006\022\031\n\025COM"
+  "PONENT_TYPE_SENSOR\020\007\022\031\n\025COMPONENT_TYPE_M"
+  "ODULE\020\010\022\027\n\023COMPONENT_TYPE_PORT\020\t\022\026\n\022COMP"
+  "ONENT_TYPE_CPU\020\n\022\032\n\026COMPONENT_TYPE_BATTE"
+  "RY\020\013\022\032\n\026COMPONENT_TYPE_STORAGE\020\014\022\031\n\025COMP"
+  "ONENT_TYPE_MEMORY\020\r\022\036\n\032COMPONENT_TYPE_TR"
+  "ANSCEIVER\020\016*\263\001\n\023ComponentAdminState\022\036\n\032C"
+  "OMP_ADMIN_STATE_UNDEFINED\020\000\022\034\n\030COMP_ADMI"
+  "N_STATE_UNKNOWN\020\001\022\033\n\027COMP_ADMIN_STATE_LO"
+  "CKED\020\002\022\"\n\036COMP_ADMIN_STATE_SHUTTING_DOWN"
+  "\020\003\022\035\n\031COMP_ADMIN_STATE_UNLOCKED\020\004*\250\001\n\022Co"
+  "mponentOperState\022\035\n\031COMP_OPER_STATE_UNDE"
+  "FINED\020\000\022\033\n\027COMP_OPER_STATE_UNKNOWN\020\001\022\034\n\030"
+  "COMP_OPER_STATE_DISABLED\020\002\022\033\n\027COMP_OPER_"
+  "STATE_ENABLED\020\003\022\033\n\027COMP_OPER_STATE_TESTI"
+  "NG\020\004*\246\001\n\023ComponentUsageState\022\036\n\032COMP_USA"
+  "GE_STATE_UNDEFINED\020\000\022\034\n\030COMP_USAGE_STATE"
+  "_UNKNOWN\020\001\022\031\n\025COMP_USAGE_STATE_IDLE\020\002\022\033\n"
+  "\027COMP_USAGE_STATE_ACTIVE\020\003\022\031\n\025COMP_USAGE"
+  "_STATE_BUSY\020\004*\217\002\n\023ComponentAlarmState\022\036\n"
+  "\032COMP_ALARM_STATE_UNDEFINED\020\000\022\034\n\030COMP_AL"
+  "ARM_STATE_UNKNOWN\020\001\022!\n\035COMP_ALARM_STATE_"
+  "UNDER_REPAIR\020\002\022\035\n\031COMP_ALARM_STATE_CRITI"
+  "CAL\020\003\022\032\n\026COMP_ALARM_STATE_MAJOR\020\004\022\032\n\026COM"
+  "P_ALARM_STATE_MINOR\020\005\022\034\n\030COMP_ALARM_STAT"
+  "E_WARNING\020\006\022\"\n\036COMP_ALARM_STATE_INDETERM"
+  "INATE\020\007*\274\001\n\025ComponentStandbyState\022 \n\034COM"
+  "P_STANDBY_STATE_UNDEFINED\020\000\022\036\n\032COMP_STAN"
+  "DBY_STATE_UNKNOWN\020\001\022\032\n\026COMP_STANDBY_STAT"
+  "E_HOT\020\002\022\033\n\027COMP_STANDBY_STATE_COLD\020\003\022(\n$"
+  "COMP_STANDBY_STATE_PROVIDING_SERVICE\020\004*\235"
+  "\003\n\rDataValueType\022\030\n\024VALUE_TYPE_UNDEFINED"
+  "\020\000\022\024\n\020VALUE_TYPE_OTHER\020\001\022\026\n\022VALUE_TYPE_U"
+  "NKNOWN\020\002\022\027\n\023VALUE_TYPE_VOLTS_AC\020\003\022\027\n\023VAL"
+  "UE_TYPE_VOLTS_DC\020\004\022\026\n\022VALUE_TYPE_AMPERES"
+  "\020\005\022\024\n\020VALUE_TYPE_WATTS\020\006\022\024\n\020VALUE_TYPE_H"
+  "ERTZ\020\007\022\026\n\022VALUE_TYPE_CELSIUS\020\010\022\031\n\025VALUE_"
+  "TYPE_PERCENT_RH\020\t\022\022\n\016VALUE_TYPE_RPM\020\n\022\022\n"
+  "\016VALUE_TYPE_CMM\020\013\022\032\n\026VALUE_TYPE_TRUTH_VA"
+  "LUE\020\014\022\026\n\022VALUE_TYPE_PERCENT\020\r\022\025\n\021VALUE_T"
+  "YPE_METERS\020\016\022\024\n\020VALUE_TYPE_BYTES\020\017\022\022\n\016VA"
+  "LUE_TYPE_DBM\020\020*\244\003\n\nValueScale\022\031\n\025VALUE_S"
+  "CALE_UNDEFINED\020\000\022\025\n\021VALUE_SCALE_YOCTO\020\001\022"
+  "\025\n\021VALUE_SCALE_ZEPTO\020\002\022\024\n\020VALUE_SCALE_AT"
+  "TO\020\003\022\025\n\021VALUE_SCALE_FEMTO\020\004\022\024\n\020VALUE_SCA"
+  "LE_PICO\020\005\022\024\n\020VALUE_SCALE_NANO\020\006\022\025\n\021VALUE"
+  "_SCALE_MICRO\020\007\022\025\n\021VALUE_SCALE_MILLI\020\010\022\025\n"
+  "\021VALUE_SCALE_UNITS\020\t\022\024\n\020VALUE_SCALE_KILO"
+  "\020\n\022\024\n\020VALUE_SCALE_MEGA\020\013\022\024\n\020VALUE_SCALE_"
+  "GIGA\020\014\022\024\n\020VALUE_SCALE_TERA\020\r\022\024\n\020VALUE_SC"
+  "ALE_PETA\020\016\022\023\n\017VALUE_SCALE_EXA\020\017\022\025\n\021VALUE"
+  "_SCALE_ZETTA\020\020\022\025\n\021VALUE_SCALE_YOTTA\020\021*\202\001"
+  "\n\014SensorStatus\022\033\n\027SENSOR_STATUS_UNDEFINE"
+  "D\020\000\022\024\n\020SENSOR_STATUS_OK\020\001\022\035\n\031SENSOR_STAT"
+  "US_UNAVAILABLE\020\002\022 \n\034SENSOR_STATUS_NONOPE"
+  "RATIONAL\020\003*\244\001\n\017TransceiverType\022\022\n\016TYPE_U"
+  "NDEFINED\020\000\022\014\n\010ETHERNET\020\001\022\010\n\004GPON\020\002\022\t\n\005XG"
+  "PON\020\003\022\n\n\006XGSPON\020\004\022\010\n\004CPON\020\005\022\013\n\007NG_PON2\020\006"
+  "\022\010\n\004EPON\020\007\022\025\n\021COMBO_GPON_XGSPON\020\010\022\026\n\021TYP"
+  "E_NOT_DETECTED\020\377\001B;Z9github.com/opencord"
+  "/device-management-interface/v3/go/dmib\006"
+  "proto3"
   ;
 ::google::protobuf::internal::DescriptorTable descriptor_table_dmi_2fhw_2eproto = {
   false, InitDefaults_dmi_2fhw_2eproto, 
   descriptor_table_protodef_dmi_2fhw_2eproto,
-  "dmi/hw.proto", &assign_descriptors_table_dmi_2fhw_2eproto, 6307,
+  "dmi/hw.proto", &assign_descriptors_table_dmi_2fhw_2eproto, 6366,
 };
 
 void AddDescriptors_dmi_2fhw_2eproto() {
@@ -5302,6 +5306,8 @@
 const int TransceiverComponentsAttributes::kRxWavelengthFieldNumber;
 const int TransceiverComponentsAttributes::kTxWavelengthFieldNumber;
 const int TransceiverComponentsAttributes::kWavelengthScaleFieldNumber;
+const int TransceiverComponentsAttributes::kTxPowerFieldNumber;
+const int TransceiverComponentsAttributes::kTxPowerScaleFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 TransceiverComponentsAttributes::TransceiverComponentsAttributes()
@@ -5313,18 +5319,19 @@
   : ::google::protobuf::Message(),
       _internal_metadata_(nullptr),
       rx_wavelength_(from.rx_wavelength_),
-      tx_wavelength_(from.tx_wavelength_) {
+      tx_wavelength_(from.tx_wavelength_),
+      tx_power_(from.tx_power_) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::memcpy(&form_factor_, &from.form_factor_,
-    static_cast<size_t>(reinterpret_cast<char*>(&wavelength_scale_) -
-    reinterpret_cast<char*>(&form_factor_)) + sizeof(wavelength_scale_));
+    static_cast<size_t>(reinterpret_cast<char*>(&tx_power_scale_) -
+    reinterpret_cast<char*>(&form_factor_)) + sizeof(tx_power_scale_));
   // @@protoc_insertion_point(copy_constructor:dmi.TransceiverComponentsAttributes)
 }
 
 void TransceiverComponentsAttributes::SharedCtor() {
   ::memset(&form_factor_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&wavelength_scale_) -
-      reinterpret_cast<char*>(&form_factor_)) + sizeof(wavelength_scale_));
+      reinterpret_cast<char*>(&tx_power_scale_) -
+      reinterpret_cast<char*>(&form_factor_)) + sizeof(tx_power_scale_));
 }
 
 TransceiverComponentsAttributes::~TransceiverComponentsAttributes() {
@@ -5352,9 +5359,10 @@
 
   rx_wavelength_.Clear();
   tx_wavelength_.Clear();
+  tx_power_.Clear();
   ::memset(&form_factor_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&wavelength_scale_) -
-      reinterpret_cast<char*>(&form_factor_)) + sizeof(wavelength_scale_));
+      reinterpret_cast<char*>(&tx_power_scale_) -
+      reinterpret_cast<char*>(&form_factor_)) + sizeof(tx_power_scale_));
   _internal_metadata_.Clear();
 }
 
@@ -5450,6 +5458,34 @@
         GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
         break;
       }
+      // repeated int32 tx_power = 8;
+      case 8: {
+        if (static_cast<::google::protobuf::uint8>(tag) == 66) {
+          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
+          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
+          parser_till_end = ::google::protobuf::internal::PackedInt32Parser;
+          object = msg->mutable_tx_power();
+          if (size > end - ptr) goto len_delim_till_end;
+          auto newend = ptr + size;
+          if (size) ptr = parser_till_end(ptr, newend, object, ctx);
+          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr == newend);
+          break;
+        } else if (static_cast<::google::protobuf::uint8>(tag) != 64) goto handle_unusual;
+        do {
+          msg->add_tx_power(::google::protobuf::internal::ReadVarint(&ptr));
+          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
+          if (ptr >= end) break;
+        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 64 && (ptr += 1));
+        break;
+      }
+      // .dmi.ValueScale tx_power_scale = 9;
+      case 9: {
+        if (static_cast<::google::protobuf::uint8>(tag) != 72) goto handle_unusual;
+        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
+        msg->set_tx_power_scale(static_cast<::dmi::ValueScale>(val));
+        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
+        break;
+      }
       default: {
       handle_unusual:
         if ((tag & 7) == 4 || tag == 0) {
@@ -5581,6 +5617,36 @@
         break;
       }
 
+      // repeated int32 tx_power = 8;
+      case 8: {
+        if (static_cast< ::google::protobuf::uint8>(tag) == (66 & 0xFF)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, this->mutable_tx_power())));
+        } else if (static_cast< ::google::protobuf::uint8>(tag) == (64 & 0xFF)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 1, 66u, input, this->mutable_tx_power())));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // .dmi.ValueScale tx_power_scale = 9;
+      case 9: {
+        if (static_cast< ::google::protobuf::uint8>(tag) == (72 & 0xFF)) {
+          int value = 0;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          set_tx_power_scale(static_cast< ::dmi::ValueScale >(value));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
       default: {
       handle_unusual:
         if (tag == 0) {
@@ -5659,6 +5725,23 @@
       7, this->wavelength_scale(), output);
   }
 
+  // repeated int32 tx_power = 8;
+  if (this->tx_power_size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteTag(8, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
+    output->WriteVarint32(_tx_power_cached_byte_size_.load(
+        std::memory_order_relaxed));
+  }
+  for (int i = 0, n = this->tx_power_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32NoTag(
+      this->tx_power(i), output);
+  }
+
+  // .dmi.ValueScale tx_power_scale = 9;
+  if (this->tx_power_scale() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      9, this->tx_power_scale(), output);
+  }
+
   if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
         _internal_metadata_.unknown_fields(), output);
@@ -5727,6 +5810,25 @@
       7, this->wavelength_scale(), target);
   }
 
+  // repeated int32 tx_power = 8;
+  if (this->tx_power_size() > 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
+      8,
+      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
+      target);
+    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
+        _tx_power_cached_byte_size_.load(std::memory_order_relaxed),
+         target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteInt32NoTagToArray(this->tx_power_, target);
+  }
+
+  // .dmi.ValueScale tx_power_scale = 9;
+  if (this->tx_power_scale() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      9, this->tx_power_scale(), target);
+  }
+
   if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields(), target);
@@ -5778,6 +5880,21 @@
     total_size += data_size;
   }
 
+  // repeated int32 tx_power = 8;
+  {
+    size_t data_size = ::google::protobuf::internal::WireFormatLite::
+      Int32Size(this->tx_power_);
+    if (data_size > 0) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+            static_cast<::google::protobuf::int32>(data_size));
+    }
+    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
+    _tx_power_cached_byte_size_.store(cached_size,
+                                    std::memory_order_relaxed);
+    total_size += data_size;
+  }
+
   // .dmi.TransceiverComponentsAttributes.FormFactor form_factor = 1;
   if (this->form_factor() != 0) {
     total_size += 1 +
@@ -5809,6 +5926,12 @@
       ::google::protobuf::internal::WireFormatLite::EnumSize(this->wavelength_scale());
   }
 
+  // .dmi.ValueScale tx_power_scale = 9;
+  if (this->tx_power_scale() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->tx_power_scale());
+  }
+
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
   SetCachedSize(cached_size);
   return total_size;
@@ -5838,6 +5961,7 @@
 
   rx_wavelength_.MergeFrom(from.rx_wavelength_);
   tx_wavelength_.MergeFrom(from.tx_wavelength_);
+  tx_power_.MergeFrom(from.tx_power_);
   if (from.form_factor() != 0) {
     set_form_factor(from.form_factor());
   }
@@ -5853,6 +5977,9 @@
   if (from.wavelength_scale() != 0) {
     set_wavelength_scale(from.wavelength_scale());
   }
+  if (from.tx_power_scale() != 0) {
+    set_tx_power_scale(from.tx_power_scale());
+  }
 }
 
 void TransceiverComponentsAttributes::CopyFrom(const ::google::protobuf::Message& from) {
@@ -5882,11 +6009,13 @@
   _internal_metadata_.Swap(&other->_internal_metadata_);
   rx_wavelength_.InternalSwap(&other->rx_wavelength_);
   tx_wavelength_.InternalSwap(&other->tx_wavelength_);
+  tx_power_.InternalSwap(&other->tx_power_);
   swap(form_factor_, other->form_factor_);
   swap(trans_type_, other->trans_type_);
   swap(max_distance_, other->max_distance_);
   swap(max_distance_scale_, other->max_distance_scale_);
   swap(wavelength_scale_, other->wavelength_scale_);
+  swap(tx_power_scale_, other->tx_power_scale_);
 }
 
 ::google::protobuf::Metadata TransceiverComponentsAttributes::GetMetadata() const {
diff --git a/cpp/dmi/hw.pb.h b/cpp/dmi/hw.pb.h
index c2fd5fa..cff4653 100644
--- a/cpp/dmi/hw.pb.h
+++ b/cpp/dmi/hw.pb.h
@@ -2309,6 +2309,18 @@
   ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
       mutable_tx_wavelength();
 
+  // repeated int32 tx_power = 8;
+  int tx_power_size() const;
+  void clear_tx_power();
+  static const int kTxPowerFieldNumber = 8;
+  ::google::protobuf::int32 tx_power(int index) const;
+  void set_tx_power(int index, ::google::protobuf::int32 value);
+  void add_tx_power(::google::protobuf::int32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+      tx_power() const;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+      mutable_tx_power();
+
   // .dmi.TransceiverComponentsAttributes.FormFactor form_factor = 1;
   void clear_form_factor();
   static const int kFormFactorFieldNumber = 1;
@@ -2339,6 +2351,12 @@
   ::dmi::ValueScale wavelength_scale() const;
   void set_wavelength_scale(::dmi::ValueScale value);
 
+  // .dmi.ValueScale tx_power_scale = 9;
+  void clear_tx_power_scale();
+  static const int kTxPowerScaleFieldNumber = 9;
+  ::dmi::ValueScale tx_power_scale() const;
+  void set_tx_power_scale(::dmi::ValueScale value);
+
   // @@protoc_insertion_point(class_scope:dmi.TransceiverComponentsAttributes)
  private:
   class HasBitSetters;
@@ -2348,11 +2366,14 @@
   mutable std::atomic<int> _rx_wavelength_cached_byte_size_;
   ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > tx_wavelength_;
   mutable std::atomic<int> _tx_wavelength_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > tx_power_;
+  mutable std::atomic<int> _tx_power_cached_byte_size_;
   int form_factor_;
   int trans_type_;
   ::google::protobuf::uint32 max_distance_;
   int max_distance_scale_;
   int wavelength_scale_;
+  int tx_power_scale_;
   mutable ::google::protobuf::internal::CachedSize _cached_size_;
   friend struct ::TableStruct_dmi_2fhw_2eproto;
 };
@@ -4245,6 +4266,50 @@
   // @@protoc_insertion_point(field_set:dmi.TransceiverComponentsAttributes.wavelength_scale)
 }
 
+// repeated int32 tx_power = 8;
+inline int TransceiverComponentsAttributes::tx_power_size() const {
+  return tx_power_.size();
+}
+inline void TransceiverComponentsAttributes::clear_tx_power() {
+  tx_power_.Clear();
+}
+inline ::google::protobuf::int32 TransceiverComponentsAttributes::tx_power(int index) const {
+  // @@protoc_insertion_point(field_get:dmi.TransceiverComponentsAttributes.tx_power)
+  return tx_power_.Get(index);
+}
+inline void TransceiverComponentsAttributes::set_tx_power(int index, ::google::protobuf::int32 value) {
+  tx_power_.Set(index, value);
+  // @@protoc_insertion_point(field_set:dmi.TransceiverComponentsAttributes.tx_power)
+}
+inline void TransceiverComponentsAttributes::add_tx_power(::google::protobuf::int32 value) {
+  tx_power_.Add(value);
+  // @@protoc_insertion_point(field_add:dmi.TransceiverComponentsAttributes.tx_power)
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+TransceiverComponentsAttributes::tx_power() const {
+  // @@protoc_insertion_point(field_list:dmi.TransceiverComponentsAttributes.tx_power)
+  return tx_power_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+TransceiverComponentsAttributes::mutable_tx_power() {
+  // @@protoc_insertion_point(field_mutable_list:dmi.TransceiverComponentsAttributes.tx_power)
+  return &tx_power_;
+}
+
+// .dmi.ValueScale tx_power_scale = 9;
+inline void TransceiverComponentsAttributes::clear_tx_power_scale() {
+  tx_power_scale_ = 0;
+}
+inline ::dmi::ValueScale TransceiverComponentsAttributes::tx_power_scale() const {
+  // @@protoc_insertion_point(field_get:dmi.TransceiverComponentsAttributes.tx_power_scale)
+  return static_cast< ::dmi::ValueScale >(tx_power_scale_);
+}
+inline void TransceiverComponentsAttributes::set_tx_power_scale(::dmi::ValueScale value) {
+  
+  tx_power_scale_ = value;
+  // @@protoc_insertion_point(field_set:dmi.TransceiverComponentsAttributes.tx_power_scale)
+}
+
 // -------------------------------------------------------------------
 
 // Component
diff --git a/dmi.pb b/dmi.pb
index 6f1f575..0da2781 100644
--- a/dmi.pb
+++ b/dmi.pb
Binary files differ
diff --git a/go/dmi/hw.pb.go b/go/dmi/hw.pb.go
index 8916174..c41bac2 100644
--- a/go/dmi/hw.pb.go
+++ b/go/dmi/hw.pb.go
@@ -1318,9 +1318,14 @@
 	MaxDistance      uint32     `protobuf:"varint,3,opt,name=max_distance,json=maxDistance,proto3" json:"max_distance,omitempty"`
 	MaxDistanceScale ValueScale `protobuf:"varint,4,opt,name=max_distance_scale,json=maxDistanceScale,proto3,enum=dmi.ValueScale" json:"max_distance_scale,omitempty"`
 	// The receive and transmit wavelengths that the transeiver operates on
-	RxWavelength         []uint32   `protobuf:"varint,5,rep,packed,name=rx_wavelength,json=rxWavelength,proto3" json:"rx_wavelength,omitempty"`
-	TxWavelength         []uint32   `protobuf:"varint,6,rep,packed,name=tx_wavelength,json=txWavelength,proto3" json:"tx_wavelength,omitempty"`
-	WavelengthScale      ValueScale `protobuf:"varint,7,opt,name=wavelength_scale,json=wavelengthScale,proto3,enum=dmi.ValueScale" json:"wavelength_scale,omitempty"`
+	RxWavelength    []uint32   `protobuf:"varint,5,rep,packed,name=rx_wavelength,json=rxWavelength,proto3" json:"rx_wavelength,omitempty"`
+	TxWavelength    []uint32   `protobuf:"varint,6,rep,packed,name=tx_wavelength,json=txWavelength,proto3" json:"tx_wavelength,omitempty"`
+	WavelengthScale ValueScale `protobuf:"varint,7,opt,name=wavelength_scale,json=wavelengthScale,proto3,enum=dmi.ValueScale" json:"wavelength_scale,omitempty"`
+	// The tx powers on the transceiver; the value type of tx_power should be dBm.
+	// Note: When there are multiple rx/tx wavelengths and powers
+	// each of the corresponding ones should be aligned on the same index of the array
+	TxPower              []int32    `protobuf:"varint,8,rep,packed,name=tx_power,json=txPower,proto3" json:"tx_power,omitempty"`
+	TxPowerScale         ValueScale `protobuf:"varint,9,opt,name=tx_power_scale,json=txPowerScale,proto3,enum=dmi.ValueScale" json:"tx_power_scale,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1400,6 +1405,20 @@
 	return ValueScale_VALUE_SCALE_UNDEFINED
 }
 
+func (m *TransceiverComponentsAttributes) GetTxPower() []int32 {
+	if m != nil {
+		return m.TxPower
+	}
+	return nil
+}
+
+func (m *TransceiverComponentsAttributes) GetTxPowerScale() ValueScale {
+	if m != nil {
+		return m.TxPowerScale
+	}
+	return ValueScale_VALUE_SCALE_UNDEFINED
+}
+
 type Component struct {
 	// The name of a component uniquely identifies a component within the hardware
 	Name        string        `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
@@ -1921,182 +1940,184 @@
 func init() { proto.RegisterFile("dmi/hw.proto", fileDescriptor_d7c33d745c4ab367) }
 
 var fileDescriptor_d7c33d745c4ab367 = []byte{
-	// 2830 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xcd, 0x92, 0xdb, 0xc6,
-	0xf1, 0x17, 0xbf, 0xc9, 0x26, 0xb9, 0x3b, 0x3b, 0xfa, 0xa2, 0xf5, 0x61, 0xcb, 0xfc, 0xcb, 0x2e,
-	0x79, 0xff, 0xf1, 0xee, 0x8a, 0x92, 0x52, 0x72, 0x5c, 0xae, 0x14, 0x08, 0x82, 0xbb, 0xb0, 0x48,
-	0x00, 0x1e, 0x80, 0x2b, 0xad, 0x73, 0x40, 0x61, 0x49, 0x2c, 0x85, 0x2a, 0x12, 0x60, 0x01, 0xe0,
-	0x5a, 0xaa, 0xca, 0x29, 0x95, 0x7b, 0x9e, 0x20, 0x37, 0x57, 0xca, 0xa7, 0x5c, 0x92, 0x63, 0x0e,
-	0xce, 0x21, 0x4f, 0x90, 0x53, 0x9e, 0x21, 0x0f, 0x91, 0xd4, 0xcc, 0x00, 0x24, 0x08, 0x62, 0x65,
-	0xb9, 0x2a, 0xb7, 0x99, 0xee, 0x5f, 0xf7, 0xf4, 0x74, 0xf7, 0xf4, 0x4c, 0x0f, 0x34, 0x26, 0x73,
-	0xe7, 0xf0, 0xf5, 0x77, 0x07, 0x0b, 0xdf, 0x0b, 0x3d, 0x5c, 0x98, 0xcc, 0x9d, 0x3b, 0x1f, 0x4d,
-	0x3d, 0x6f, 0x3a, 0xb3, 0x0f, 0x19, 0xe9, 0x7c, 0x79, 0x71, 0x18, 0x3a, 0x73, 0x3b, 0x08, 0xad,
-	0xf9, 0x82, 0xa3, 0xda, 0x77, 0xa0, 0x38, 0x5a, 0x3a, 0x13, 0x8c, 0xa1, 0xb8, 0x5c, 0x3a, 0x93,
-	0x56, 0xee, 0x41, 0xee, 0x51, 0x8d, 0xb0, 0x71, 0xfb, 0xff, 0x01, 0x4e, 0x2c, 0x7f, 0xf2, 0x9d,
-	0xe5, 0xdb, 0x72, 0x0f, 0xdf, 0x4f, 0x20, 0xea, 0x9d, 0xda, 0xc1, 0x64, 0xee, 0x1c, 0x50, 0xd1,
-	0x08, 0x7c, 0x1b, 0x0a, 0x23, 0xdf, 0xc1, 0x08, 0x0a, 0x4b, 0xdf, 0x89, 0xd4, 0xd0, 0x61, 0xfb,
-	0xf7, 0x05, 0xd8, 0x11, 0xbd, 0xf9, 0xc2, 0x73, 0x6d, 0x37, 0xd4, 0x43, 0x2b, 0xb4, 0xf1, 0x09,
-	0xe0, 0x80, 0x0e, 0xcc, 0x99, 0x15, 0x84, 0xe6, 0xf8, 0xb5, 0xe5, 0x4e, 0xed, 0x58, 0xf1, 0x9d,
-	0x03, 0x6e, 0xf2, 0x41, 0x6c, 0xf2, 0x81, 0x11, 0x9b, 0x4c, 0x10, 0x93, 0x1a, 0x58, 0x41, 0x28,
-	0x72, 0x19, 0xfc, 0x05, 0xd4, 0xad, 0xc9, 0xdc, 0x71, 0x4d, 0xc6, 0x69, 0xe5, 0x1f, 0xe4, 0x1e,
-	0xed, 0x74, 0x5a, 0xcc, 0xb6, 0xd5, 0x9a, 0x02, 0x05, 0xb0, 0x85, 0x09, 0x58, 0xab, 0x31, 0xfe,
-	0x25, 0x80, 0xb7, 0xb0, 0xfd, 0x48, 0xb2, 0xc0, 0x24, 0x6f, 0x6f, 0x4a, 0xaa, 0x0b, 0xdb, 0xe7,
-	0x82, 0x35, 0x2f, 0x1e, 0xd2, 0x25, 0x97, 0x81, 0x35, 0xb5, 0x23, 0xc1, 0x62, 0xd6, 0x92, 0x23,
-	0x0a, 0x88, 0x96, 0x5c, 0xae, 0xc6, 0xcc, 0xda, 0x99, 0xe5, 0xcf, 0x23, 0xd1, 0x52, 0xa6, 0xb5,
-	0x14, 0x10, 0x5b, 0xbb, 0x1a, 0xe3, 0x5f, 0x43, 0x33, 0x08, 0x2d, 0x77, 0x72, 0xfe, 0x36, 0x12,
-	0x2e, 0x33, 0xe1, 0x3b, 0x9b, 0xc2, 0x3a, 0x87, 0x70, 0xf1, 0x46, 0x90, 0x98, 0xb5, 0xff, 0x9d,
-	0x87, 0xeb, 0x6b, 0x9c, 0xed, 0x06, 0x9e, 0xdf, 0xb3, 0x42, 0x0b, 0xdf, 0x80, 0xd2, 0xa5, 0x35,
-	0x5b, 0xda, 0xcc, 0xfd, 0x25, 0xc2, 0x27, 0xf8, 0x53, 0x28, 0x86, 0x6f, 0x17, 0xb1, 0x43, 0x31,
-	0x5b, 0x85, 0xc2, 0x4f, 0x29, 0xd7, 0x78, 0xbb, 0xb0, 0x09, 0xe3, 0xe3, 0x4f, 0xa0, 0x14, 0x8c,
-	0xad, 0x59, 0xec, 0xbf, 0x5d, 0x06, 0x64, 0x20, 0x9d, 0x92, 0x09, 0xe7, 0xe2, 0x7b, 0x50, 0x5b,
-	0xf8, 0xf6, 0xd8, 0x09, 0x1c, 0xcf, 0x65, 0x1e, 0x2b, 0x91, 0x35, 0x01, 0x7f, 0x06, 0x65, 0xba,
-	0xa7, 0x65, 0x10, 0x79, 0x64, 0x8f, 0x69, 0xe1, 0x36, 0xea, 0x8c, 0x41, 0x22, 0x00, 0xfe, 0x3f,
-	0x68, 0x2e, 0x5d, 0x27, 0x0c, 0xcc, 0x89, 0x13, 0x2c, 0x66, 0xd6, 0x5b, 0xe6, 0x86, 0x1a, 0x69,
-	0x30, 0x62, 0x8f, 0xd3, 0xf0, 0x73, 0xa8, 0xad, 0xd2, 0xbc, 0x55, 0xf9, 0xc9, 0xac, 0x5a, 0x83,
-	0xf1, 0x3e, 0xec, 0xb1, 0xfd, 0x9b, 0xcb, 0xc5, 0x84, 0xe6, 0xa7, 0x4f, 0x3d, 0x5d, 0x7d, 0x90,
-	0x7b, 0xd4, 0x24, 0xbb, 0x8c, 0x31, 0x62, 0x74, 0x42, 0x23, 0x72, 0x17, 0x6a, 0x13, 0x2b, 0xb4,
-	0x4c, 0xe6, 0xa7, 0x1a, 0x33, 0xa3, 0x4a, 0x09, 0xd4, 0x3b, 0xed, 0xbf, 0x97, 0xe1, 0xb6, 0xe6,
-	0xf9, 0xe1, 0x3a, 0xac, 0x61, 0xe8, 0x3b, 0xe7, 0xcb, 0xd0, 0x0e, 0xf0, 0x37, 0xb0, 0x33, 0xf6,
-	0x5c, 0xd7, 0x1e, 0x87, 0x9e, 0xcf, 0xa5, 0x73, 0x6c, 0xdb, 0xfb, 0x6c, 0xdb, 0x57, 0x48, 0x1d,
-	0x88, 0xb1, 0x08, 0xf3, 0x7e, 0x73, 0x9c, 0x9c, 0xe2, 0xe7, 0x50, 0x0a, 0x16, 0xb6, 0x3d, 0x89,
-	0xe2, 0xd5, 0x7e, 0xa7, 0x26, 0x9d, 0x22, 0x09, 0x17, 0xc0, 0x02, 0x54, 0x99, 0x4b, 0xc6, 0xde,
-	0x2c, 0x8a, 0xe1, 0x27, 0xef, 0x14, 0xd6, 0x22, 0x30, 0x59, 0x89, 0xe1, 0x4f, 0x60, 0x67, 0xf1,
-	0xfa, 0x6d, 0xe0, 0x8c, 0xad, 0x99, 0x39, 0xb3, 0xce, 0xed, 0x19, 0x8b, 0x70, 0x8d, 0x34, 0x63,
-	0xea, 0x80, 0x12, 0x69, 0xe8, 0xe6, 0xd6, 0x62, 0xe1, 0xb8, 0xd3, 0x08, 0x55, 0xe2, 0xa1, 0x8b,
-	0x88, 0x1c, 0xf4, 0x14, 0x9a, 0x0b, 0xcf, 0x35, 0x9d, 0x89, 0x39, 0xf6, 0xdc, 0x0b, 0x67, 0xca,
-	0xe2, 0x5b, 0xef, 0xa0, 0xc8, 0x26, 0x57, 0x9e, 0x88, 0x8c, 0x4e, 0xea, 0x8b, 0xf5, 0x04, 0x3f,
-	0x81, 0x9b, 0x6c, 0x37, 0xa6, 0xb5, 0x0c, 0x3d, 0xd7, 0x9e, 0x7a, 0xa1, 0x63, 0x85, 0x34, 0xd5,
-	0x68, 0xf0, 0xab, 0xe4, 0x06, 0x63, 0x0a, 0x9b, 0xbc, 0xf6, 0x02, 0x9a, 0x1b, 0x3e, 0xc5, 0xf7,
-	0xa0, 0x25, 0xaa, 0x8a, 0x22, 0x89, 0x86, 0x4a, 0x4c, 0xe3, 0x4c, 0x93, 0xcc, 0x91, 0xd2, 0x93,
-	0xfa, 0xb2, 0x22, 0xf5, 0xd0, 0x35, 0x5c, 0x85, 0x22, 0xf9, 0xfa, 0xe9, 0x33, 0x94, 0xc3, 0x0d,
-	0xa8, 0xf6, 0xe5, 0xae, 0x44, 0xcc, 0x81, 0x88, 0xf2, 0x78, 0x17, 0xea, 0x7c, 0xa6, 0x8b, 0xa6,
-	0x26, 0xa2, 0x02, 0x6e, 0x42, 0x8d, 0x13, 0x86, 0x9a, 0x8a, 0x8a, 0xb8, 0x06, 0x25, 0xa2, 0x77,
-	0x9e, 0x74, 0x50, 0xa9, 0xfd, 0xe7, 0x1c, 0x94, 0x98, 0xf3, 0xf1, 0x75, 0xd8, 0xd5, 0x35, 0x49,
-	0xea, 0x6d, 0xac, 0x50, 0x87, 0x4a, 0xef, 0x4c, 0x11, 0x86, 0xb2, 0x88, 0x72, 0x54, 0xcb, 0xb1,
-	0x7c, 0x2c, 0x74, 0x65, 0xc3, 0x7c, 0x8c, 0xf2, 0x78, 0x07, 0x60, 0x35, 0x3d, 0x42, 0x85, 0xe4,
-	0xbc, 0xf3, 0x0c, 0x15, 0x93, 0xf3, 0xa7, 0x47, 0xa8, 0x44, 0xad, 0x5a, 0xe3, 0x8f, 0x50, 0x39,
-	0x49, 0x78, 0x7a, 0x74, 0x84, 0x2a, 0x18, 0x41, 0x63, 0x28, 0xc5, 0x1a, 0x8e, 0x8e, 0x50, 0x35,
-	0x49, 0x79, 0xdc, 0x79, 0x76, 0x84, 0x6a, 0xed, 0xdf, 0x42, 0x35, 0x8e, 0x37, 0xbe, 0x05, 0x58,
-	0x23, 0xaa, 0xa1, 0x8a, 0xea, 0x60, 0xc3, 0xea, 0x06, 0x54, 0x25, 0xe3, 0x44, 0x22, 0x8a, 0x64,
-	0xa0, 0x1c, 0xf5, 0xd2, 0xb1, 0xa6, 0x2a, 0x28, 0x4f, 0xf7, 0xfd, 0x8a, 0x0d, 0x0b, 0x18, 0xa0,
-	0xfc, 0xea, 0x58, 0xa7, 0x63, 0xe6, 0x8e, 0xe3, 0xbe, 0xa0, 0x1b, 0xa8, 0x44, 0xc9, 0xba, 0x44,
-	0x64, 0x61, 0x80, 0xca, 0x54, 0x4e, 0xa2, 0x80, 0x0a, 0x1d, 0x75, 0x65, 0x43, 0x47, 0xd5, 0xf6,
-	0x08, 0xee, 0x6f, 0x64, 0x21, 0xaf, 0xf9, 0x89, 0x83, 0xb4, 0x95, 0x2c, 0xb9, 0xf7, 0x48, 0x96,
-	0xf6, 0x6f, 0xe0, 0xa1, 0xe1, 0x5b, 0x6e, 0x30, 0xb6, 0x9d, 0x4b, 0xdb, 0xbf, 0x5a, 0xfb, 0x13,
-	0x80, 0x90, 0xe2, 0x92, 0x47, 0xf4, 0x06, 0x53, 0x9d, 0x10, 0x67, 0x87, 0xb1, 0xc6, 0x70, 0xec,
-	0xdc, 0x8f, 0xa1, 0x9e, 0x58, 0x18, 0xdf, 0x84, 0x32, 0xb7, 0x90, 0xc9, 0x37, 0x48, 0x89, 0x19,
-	0x82, 0xbf, 0x82, 0xbb, 0x91, 0xe1, 0x4c, 0x72, 0xee, 0x84, 0xe6, 0xc2, 0xf6, 0x1d, 0x6f, 0xe2,
-	0x8c, 0x9d, 0xf0, 0x2d, 0x3b, 0xc4, 0x4d, 0xd2, 0x62, 0x58, 0x23, 0x02, 0x68, 0x6b, 0x7e, 0x5b,
-	0x82, 0x7b, 0xa2, 0xe7, 0x86, 0x96, 0xe3, 0x26, 0xec, 0x4f, 0x58, 0xbe, 0x7d, 0x20, 0x73, 0x19,
-	0x07, 0xb2, 0xfd, 0x8f, 0x1c, 0xdc, 0xd2, 0x82, 0x65, 0x96, 0x86, 0x33, 0xd8, 0x0b, 0x96, 0x8b,
-	0x85, 0xe7, 0x87, 0xf6, 0xc4, 0xbc, 0xf4, 0x66, 0xa1, 0x35, 0x8d, 0x5d, 0xf0, 0x0b, 0xee, 0xdd,
-	0x4c, 0xb9, 0x03, 0x3d, 0x16, 0x3a, 0xe5, 0x32, 0x04, 0x05, 0x29, 0x4a, 0x5b, 0x03, 0x94, 0x46,
-	0xe1, 0x8f, 0xe0, 0xae, 0x3e, 0xd2, 0x34, 0x95, 0x18, 0x52, 0xcf, 0x3c, 0x55, 0x07, 0x86, 0x70,
-	0xbc, 0x79, 0xf8, 0x2a, 0x50, 0x38, 0x7d, 0xfa, 0x9c, 0xe7, 0xd7, 0x69, 0xe7, 0xc9, 0x11, 0xca,
-	0xb3, 0xd1, 0xe3, 0xc7, 0xcf, 0x50, 0xa1, 0xfd, 0xcf, 0x22, 0x7c, 0x94, 0x15, 0xd1, 0x20, 0xb1,
-	0x21, 0x0d, 0xea, 0x17, 0x9e, 0x3f, 0x37, 0x2f, 0x2c, 0x7a, 0xdc, 0xa3, 0xad, 0x1c, 0xa6, 0xa3,
-	0x99, 0x25, 0x7a, 0xd0, 0xf7, 0xfc, 0x79, 0x9f, 0x89, 0x11, 0xb8, 0x58, 0x8d, 0x53, 0xe9, 0x91,
-	0x7f, 0xaf, 0xf4, 0xc0, 0x1f, 0x43, 0x63, 0x6e, 0xbd, 0xa1, 0x97, 0x57, 0x68, 0xb9, 0x63, 0x7e,
-	0x6b, 0x36, 0x49, 0x7d, 0x6e, 0xbd, 0xe9, 0x45, 0x24, 0xfc, 0x15, 0xe0, 0x24, 0xc4, 0xe4, 0xd7,
-	0x6b, 0x31, 0xfb, 0x7a, 0x45, 0x09, 0x49, 0x46, 0xa1, 0x55, 0xd6, 0x7f, 0x63, 0x7e, 0x67, 0x5d,
-	0xda, 0x33, 0xdb, 0x9d, 0x86, 0xaf, 0x5b, 0xa5, 0x07, 0x85, 0x47, 0x4d, 0xd2, 0xf0, 0xdf, 0xbc,
-	0x5c, 0xd1, 0x28, 0x28, 0xdc, 0x00, 0x95, 0x39, 0x28, 0x4c, 0x82, 0x7e, 0x05, 0x68, 0x8d, 0x88,
-	0xcc, 0xa8, 0x64, 0x9b, 0xb1, 0xbb, 0x06, 0x32, 0x42, 0xfb, 0xc7, 0x1c, 0xc0, 0xda, 0x6f, 0xf8,
-	0x36, 0x5c, 0xef, 0xab, 0x64, 0x68, 0xf6, 0x05, 0x56, 0x5b, 0x47, 0xca, 0x0b, 0x45, 0x7d, 0xa9,
-	0xf0, 0xa2, 0xfa, 0x8d, 0xde, 0xd7, 0x78, 0xbd, 0xa3, 0x23, 0x53, 0x1b, 0x8c, 0x74, 0x94, 0xa7,
-	0xb5, 0x81, 0x4e, 0x3b, 0xcf, 0x51, 0x81, 0x06, 0x9f, 0x62, 0x8a, 0xb4, 0xd4, 0xac, 0x20, 0x25,
-	0x4a, 0x7e, 0xd5, 0xd7, 0x78, 0xed, 0x10, 0xfb, 0xda, 0x53, 0x5e, 0x3b, 0xc4, 0xbe, 0xd6, 0x41,
-	0x55, 0x36, 0xd2, 0x84, 0x17, 0xa8, 0x86, 0xcb, 0x90, 0x7f, 0xd5, 0x41, 0x40, 0x0b, 0x8f, 0x4a,
-	0xeb, 0x14, 0xaa, 0x53, 0x49, 0xb1, 0xaf, 0xa1, 0x06, 0x55, 0x48, 0xf1, 0xa6, 0x20, 0xaa, 0xa8,
-	0xb9, 0x9a, 0xf5, 0x44, 0x15, 0xed, 0xb4, 0xff, 0x55, 0x81, 0xda, 0x2a, 0x1f, 0xe8, 0xf3, 0xd8,
-	0xb5, 0xe6, 0x76, 0xfc, 0x3c, 0xa6, 0x63, 0xfc, 0x08, 0x4a, 0xe3, 0x99, 0x15, 0x04, 0x1b, 0x8f,
-	0xa4, 0x95, 0x08, 0x0b, 0x3d, 0x07, 0xe0, 0x07, 0x50, 0x9f, 0xd8, 0xc1, 0xd8, 0x77, 0x16, 0xec,
-	0x56, 0x2a, 0x30, 0x25, 0x49, 0x12, 0xbe, 0x05, 0xe5, 0x85, 0xe5, 0xdb, 0x6e, 0x18, 0xdd, 0x9d,
-	0xd1, 0x0c, 0x3f, 0x84, 0x1d, 0x3e, 0x32, 0x7d, 0x7b, 0x66, 0x2e, 0x3c, 0xfe, 0x44, 0x2a, 0x91,
-	0x06, 0xa7, 0x12, 0x7b, 0xa6, 0x79, 0x01, 0xde, 0x87, 0xea, 0xf8, 0xb5, 0x33, 0x9b, 0xf8, 0xb6,
-	0xcb, 0x42, 0x59, 0xef, 0xec, 0x6c, 0x1a, 0x43, 0x56, 0x7c, 0x9a, 0x82, 0xaf, 0xa3, 0x47, 0xbd,
-	0xe9, 0xdb, 0x97, 0x2c, 0xa4, 0x35, 0x52, 0x8f, 0x69, 0xc4, 0xbe, 0xa4, 0x90, 0x0b, 0xc7, 0x9f,
-	0xaf, 0x20, 0x55, 0x0e, 0x89, 0x69, 0x11, 0x24, 0xf0, 0x2e, 0xc2, 0x15, 0x84, 0xbf, 0x7f, 0xea,
-	0x31, 0x8d, 0x42, 0xee, 0x03, 0x04, 0xb6, 0xef, 0x58, 0x33, 0xd3, 0x5d, 0xce, 0x5b, 0xc0, 0x00,
-	0x35, 0x4e, 0x51, 0x96, 0x73, 0xfc, 0x01, 0x54, 0xe7, 0x17, 0x53, 0x93, 0x79, 0xb5, 0xce, 0x98,
-	0x95, 0xf9, 0xc5, 0x54, 0xa1, 0x8e, 0xbd, 0x0f, 0x30, 0xf7, 0x26, 0xf6, 0x8c, 0x33, 0x1b, 0x5c,
-	0x92, 0x51, 0x18, 0xfb, 0x06, 0x94, 0xac, 0x99, 0x63, 0x05, 0xad, 0x26, 0xe3, 0xf0, 0x09, 0xd5,
-	0x67, 0x05, 0x81, 0x1d, 0xd2, 0x62, 0xbb, 0xc3, 0xf5, 0xb1, 0xb9, 0x3c, 0xa1, 0x55, 0xd8, 0x09,
-	0xcc, 0x0b, 0x7f, 0xd9, 0xda, 0x65, 0xef, 0x81, 0x92, 0x13, 0xf4, 0xfd, 0x25, 0x7e, 0xc6, 0x2d,
-	0xa0, 0x0f, 0xba, 0x16, 0xfa, 0xc9, 0x57, 0x22, 0xb5, 0xae, 0x47, 0xdf, 0x7d, 0x77, 0x78, 0x87,
-	0xb3, 0xc7, 0x24, 0xaa, 0xbc, 0x0d, 0xf2, 0x1d, 0xd6, 0xeb, 0xac, 0x7a, 0x24, 0x9c, 0xd9, 0x23,
-	0xe1, 0xcf, 0xa0, 0xc4, 0x1f, 0xef, 0xd7, 0x19, 0xff, 0xfa, 0xd6, 0xe3, 0x3d, 0xa4, 0x2f, 0xe6,
-	0xb8, 0x55, 0x08, 0xd8, 0x03, 0x98, 0xda, 0x67, 0xb5, 0x6e, 0xb0, 0xa8, 0xa6, 0x5a, 0x85, 0xf5,
-	0x2b, 0x9e, 0x40, 0xb0, 0x7e, 0xd1, 0x7f, 0x09, 0x35, 0x5a, 0x5e, 0x4d, 0x2b, 0x0c, 0xfd, 0x56,
-	0x87, 0xad, 0x74, 0xef, 0x5d, 0x6f, 0xba, 0x93, 0x6b, 0xa4, 0x4a, 0x05, 0x28, 0x05, 0x7f, 0xcd,
-	0x1e, 0xa7, 0xfc, 0x6e, 0xe1, 0x1a, 0x9e, 0x30, 0x0d, 0x1f, 0x47, 0x4b, 0x5f, 0x7d, 0xed, 0x9c,
-	0x5c, 0x63, 0xaf, 0x52, 0xce, 0x67, 0xba, 0x9e, 0x43, 0x75, 0x11, 0x2c, 0xb9, 0x96, 0xa7, 0x4c,
-	0xcb, 0xdd, 0x77, 0x5c, 0x1e, 0x27, 0xd7, 0x48, 0x65, 0x11, 0x2c, 0x99, 0xe4, 0x37, 0x80, 0xc2,
-	0x75, 0x15, 0xe5, 0x1a, 0x9e, 0x31, 0x0d, 0x0f, 0xdf, 0xa7, 0x66, 0x9f, 0x5c, 0x23, 0xbb, 0x09,
-	0x79, 0xca, 0xe8, 0x02, 0x54, 0x83, 0x85, 0x3d, 0x76, 0x2e, 0x9c, 0x71, 0xfb, 0x87, 0x1c, 0x54,
-	0xe3, 0xce, 0x16, 0x7f, 0x09, 0xf5, 0x44, 0x1b, 0xfa, 0x1e, 0x5d, 0x28, 0xcc, 0x56, 0x0d, 0x28,
-	0x6e, 0x43, 0xd1, 0xf7, 0xbc, 0x90, 0x95, 0x80, 0xed, 0x53, 0xc7, 0x78, 0xab, 0x05, 0xce, 0x3d,
-	0x2f, 0xb4, 0x27, 0xec, 0xf4, 0xbf, 0xc7, 0x02, 0x5d, 0x86, 0x6e, 0xff, 0x58, 0x80, 0xeb, 0x43,
-	0x6f, 0xe2, 0x5c, 0x38, 0xd6, 0xf9, 0xcc, 0xfe, 0x5f, 0x15, 0xa4, 0x4f, 0x57, 0xe5, 0xa6, 0x90,
-	0x69, 0xf8, 0xd5, 0xe5, 0xa7, 0x98, 0x51, 0x7e, 0x56, 0x07, 0xb2, 0x74, 0xd5, 0x81, 0x2c, 0x6f,
-	0x1e, 0xc8, 0xe8, 0x08, 0x55, 0xb2, 0x8e, 0x50, 0xaa, 0xa3, 0xaf, 0xfe, 0x8c, 0x8e, 0x5e, 0xd8,
-	0x4e, 0xfc, 0x8c, 0x4e, 0x28, 0xfd, 0xd0, 0xdb, 0x48, 0xff, 0x3e, 0x54, 0x43, 0xff, 0x4d, 0x32,
-	0xf1, 0x3f, 0xbb, 0x32, 0xe1, 0x32, 0x14, 0x55, 0x42, 0xff, 0x4d, 0x3a, 0xdb, 0xf6, 0xff, 0x5a,
-	0xa0, 0x9d, 0x46, 0x22, 0x0a, 0xbc, 0xd3, 0x18, 0x6a, 0xaa, 0x22, 0x29, 0xc6, 0x76, 0xa7, 0x71,
-	0x07, 0x6e, 0x6d, 0x71, 0xf9, 0x85, 0x99, 0xcb, 0xe0, 0x89, 0x27, 0x82, 0xae, 0xcb, 0xf4, 0xce,
-	0xdc, 0xd6, 0xda, 0x15, 0xc4, 0x17, 0xda, 0x40, 0x50, 0x24, 0x54, 0xc8, 0xe0, 0x8a, 0xaa, 0x62,
-	0x08, 0xb2, 0x22, 0x11, 0x54, 0xa4, 0x2f, 0xb0, 0x14, 0x57, 0x53, 0x5f, 0xd2, 0xa6, 0x66, 0xa4,
-	0x69, 0x83, 0x33, 0x54, 0xa2, 0xcf, 0xff, 0x14, 0xa0, 0x2f, 0x28, 0xa8, 0x8c, 0x3f, 0x80, 0x9b,
-	0x29, 0xba, 0x2e, 0x29, 0xba, 0x4a, 0x50, 0x25, 0x83, 0x35, 0x54, 0x7b, 0xa3, 0x81, 0x84, 0xaa,
-	0xf4, 0x41, 0xb0, 0xb5, 0x1c, 0x31, 0x50, 0x2d, 0x63, 0x19, 0x51, 0x1b, 0x21, 0xc8, 0xd8, 0x77,
-	0x57, 0x30, 0x0c, 0x89, 0x9c, 0xa1, 0x7a, 0x06, 0x4f, 0x37, 0x54, 0x22, 0x1c, 0x4b, 0xa8, 0x91,
-	0x65, 0x83, 0x34, 0x54, 0xc9, 0x19, 0x6a, 0xe2, 0x0f, 0xe1, 0x4e, 0x8a, 0x65, 0x10, 0x41, 0xd1,
-	0x45, 0x49, 0x3e, 0x95, 0x08, 0xda, 0xd9, 0xff, 0x4b, 0x2e, 0xf1, 0x61, 0xb2, 0xce, 0xb8, 0x58,
-	0xce, 0x14, 0x7a, 0x43, 0x59, 0x31, 0x75, 0x43, 0x30, 0x36, 0xc3, 0x17, 0x39, 0x3a, 0xc5, 0x8f,
-	0x03, 0x78, 0x17, 0x6e, 0x6f, 0x71, 0x07, 0xaa, 0xf8, 0x42, 0xea, 0xa1, 0x3c, 0x6e, 0xc3, 0x87,
-	0x5b, 0x4c, 0xfd, 0x64, 0x64, 0x18, 0xb2, 0x72, 0x6c, 0xf6, 0xa8, 0x82, 0x02, 0xbe, 0x0f, 0x1f,
-	0x64, 0xa8, 0x8f, 0x54, 0x14, 0xf7, 0x7f, 0xc8, 0x01, 0xde, 0xfe, 0xbf, 0x5a, 0x49, 0xa9, 0x1a,
-	0x0d, 0xea, 0x96, 0xcd, 0xb1, 0x55, 0x1b, 0xec, 0xd8, 0xe4, 0x78, 0x43, 0x09, 0x66, 0x4f, 0xd6,
-	0x85, 0xee, 0x80, 0xd9, 0x9c, 0x21, 0x2a, 0x29, 0x9c, 0x59, 0xc8, 0x62, 0x1a, 0x92, 0x4e, 0xb7,
-	0x83, 0x8a, 0xfb, 0x7f, 0x4a, 0x3a, 0x78, 0xfd, 0x63, 0xb6, 0x72, 0xf0, 0x48, 0xa7, 0x6d, 0xc0,
-	0xd5, 0x0e, 0xde, 0xe4, 0xc7, 0xd6, 0x46, 0x11, 0xdf, 0xe0, 0xca, 0xbd, 0x81, 0x94, 0x30, 0x35,
-	0xc9, 0x12, 0x44, 0x43, 0x3e, 0xa5, 0xe7, 0x23, 0x4b, 0xae, 0x3b, 0xd2, 0xcf, 0x50, 0x71, 0xff,
-	0x0f, 0xc9, 0xaf, 0xb3, 0xf5, 0xff, 0xdc, 0x3a, 0x13, 0x06, 0x02, 0x19, 0xbe, 0x2b, 0x13, 0x36,
-	0xf8, 0xb1, 0xa1, 0x1f, 0xc3, 0xfd, 0x4c, 0x69, 0x62, 0x12, 0x49, 0x13, 0x64, 0x82, 0xf2, 0xeb,
-	0x58, 0x27, 0x20, 0x22, 0x91, 0x0d, 0x59, 0x14, 0x06, 0xa8, 0x10, 0x27, 0xfe, 0x06, 0x7b, 0x28,
-	0x7c, 0xad, 0xd2, 0x03, 0x9d, 0xc9, 0x93, 0x15, 0x95, 0xa0, 0x52, 0xa6, 0x5d, 0x2f, 0x05, 0xa2,
-	0xd0, 0xb0, 0x94, 0xd7, 0x49, 0x98, 0xe0, 0xca, 0x4a, 0x4f, 0x32, 0x24, 0x32, 0x94, 0x15, 0xc1,
-	0x90, 0x50, 0x65, 0xff, 0x6f, 0x39, 0xb8, 0x99, 0xf9, 0xe9, 0x88, 0x1f, 0xc0, 0x3d, 0x26, 0xad,
-	0x1b, 0x82, 0xd2, 0xeb, 0x9e, 0x65, 0x78, 0x25, 0xf6, 0x5a, 0x1a, 0x91, 0x2a, 0x71, 0x29, 0xfe,
-	0x89, 0x6a, 0x24, 0x22, 0xb8, 0xc9, 0x13, 0xd5, 0x01, 0x4d, 0xb6, 0x47, 0xf0, 0x30, 0x83, 0xa9,
-	0x11, 0xf5, 0x54, 0xee, 0xd1, 0x03, 0xa4, 0x4b, 0xe4, 0x54, 0x16, 0x25, 0x54, 0xdc, 0xff, 0x63,
-	0x01, 0x9a, 0x1b, 0xbf, 0x99, 0xb8, 0x05, 0x37, 0x4e, 0x85, 0xc1, 0x48, 0xda, 0xae, 0xc6, 0x37,
-	0x00, 0x25, 0x38, 0xbc, 0x85, 0xc8, 0xd1, 0x3a, 0xb5, 0x81, 0xe7, 0xc6, 0xe7, 0x69, 0x61, 0x4b,
-	0xd0, 0x69, 0x2b, 0xab, 0x9b, 0x82, 0x88, 0x0a, 0x99, 0x8c, 0x9e, 0x88, 0x8a, 0x29, 0x4d, 0xc2,
-	0x50, 0x93, 0x88, 0x44, 0xdb, 0x9b, 0xcd, 0x75, 0x5f, 0x0a, 0x86, 0xa1, 0xa3, 0x72, 0x8a, 0x7a,
-	0x22, 0x11, 0xe3, 0x5b, 0x54, 0x49, 0xe9, 0x10, 0xa5, 0x81, 0x2e, 0x8f, 0x74, 0x54, 0xa5, 0x39,
-	0x9d, 0xa0, 0x6b, 0x12, 0x11, 0x69, 0xad, 0x23, 0x27, 0xa8, 0x86, 0x31, 0xec, 0x24, 0x58, 0x44,
-	0x1b, 0x22, 0x48, 0xd1, 0xc4, 0xe1, 0x90, 0x17, 0xd7, 0x04, 0xcd, 0x20, 0x23, 0xe3, 0xc4, 0x64,
-	0x04, 0xd4, 0x48, 0x2d, 0x1b, 0xa9, 0x47, 0x4d, 0x7c, 0x13, 0xf6, 0x12, 0xf4, 0x21, 0xcd, 0x1c,
-	0x1d, 0xed, 0xa4, 0x6c, 0xef, 0x9e, 0x19, 0x92, 0x8e, 0x76, 0x53, 0x8b, 0xf6, 0xba, 0x43, 0x84,
-	0xf6, 0xbf, 0x2f, 0x00, 0xac, 0xdb, 0xcb, 0xf5, 0x36, 0x74, 0x51, 0x18, 0x6c, 0x46, 0x67, 0xb5,
-	0x14, 0x67, 0x9d, 0xa9, 0xa2, 0xa1, 0xa2, 0x5c, 0x9a, 0xfc, 0xad, 0xa4, 0x19, 0x2a, 0xca, 0xaf,
-	0x2d, 0xe0, 0x64, 0xc1, 0x30, 0x54, 0x54, 0x48, 0x83, 0xfb, 0xd2, 0xd0, 0x50, 0x51, 0x31, 0x0d,
-	0xd6, 0x64, 0x51, 0x4d, 0x86, 0x85, 0x53, 0x15, 0x41, 0x51, 0x51, 0x39, 0xad, 0x62, 0x28, 0x8b,
-	0x44, 0x45, 0x95, 0x6d, 0xf2, 0x60, 0x20, 0xa3, 0x6a, 0x9a, 0x3c, 0x52, 0x64, 0x43, 0x47, 0xb5,
-	0xb4, 0xea, 0x17, 0xf2, 0x40, 0x45, 0x90, 0xa6, 0x0e, 0xa5, 0x63, 0x01, 0xd5, 0xd3, 0xd4, 0x63,
-	0xf9, 0x58, 0x40, 0x8d, 0x34, 0xd5, 0x90, 0x88, 0x80, 0x9a, 0x5b, 0x1b, 0x91, 0x0c, 0x01, 0xed,
-	0xe0, 0xeb, 0xb0, 0x9b, 0xa4, 0x4a, 0xaf, 0x04, 0xb4, 0xbb, 0xed, 0x37, 0xc3, 0x10, 0x10, 0xda,
-	0xf6, 0x32, 0x25, 0xef, 0xed, 0xff, 0x2e, 0x07, 0x8d, 0xe4, 0x2f, 0x3d, 0x3d, 0x9e, 0xfc, 0xf6,
-	0x67, 0x67, 0x6f, 0xa4, 0xa7, 0x0f, 0xd2, 0x26, 0x53, 0x7d, 0x81, 0x72, 0xb4, 0xc4, 0xa5, 0x45,
-	0x84, 0x53, 0x41, 0x1e, 0xd0, 0x1b, 0x04, 0xe5, 0x69, 0x39, 0xd9, 0x64, 0x2b, 0xaa, 0x42, 0x2f,
-	0x13, 0xc1, 0x90, 0x55, 0x85, 0x16, 0xc1, 0xfd, 0xef, 0x73, 0xb0, 0x9b, 0xfa, 0x71, 0xa1, 0x39,
-	0xb5, 0x75, 0x8e, 0x7f, 0xe6, 0x3f, 0x25, 0xfb, 0x40, 0x50, 0x15, 0x54, 0xc2, 0x75, 0xa8, 0x28,
-	0xc7, 0xa6, 0xa6, 0x2a, 0x9d, 0x8d, 0x7f, 0xca, 0x9b, 0xb0, 0x27, 0xaa, 0xc3, 0xae, 0x6a, 0x52,
-	0x61, 0x33, 0x92, 0xab, 0xe2, 0x5b, 0xb0, 0xc7, 0x96, 0x56, 0x54, 0xc3, 0xa4, 0x35, 0x53, 0x34,
-	0xa4, 0x1e, 0xfa, 0x4f, 0xae, 0xfb, 0xe5, 0xb7, 0x5f, 0x4c, 0x9d, 0xf0, 0xf5, 0xf2, 0xfc, 0x60,
-	0xec, 0xcd, 0x0f, 0xbd, 0x85, 0xed, 0x8e, 0x3d, 0x7f, 0x72, 0x38, 0xb1, 0x2f, 0x9d, 0xb1, 0xfd,
-	0xf9, 0xdc, 0x72, 0xad, 0xa9, 0x3d, 0xb7, 0xdd, 0xf0, 0x73, 0xc7, 0x0d, 0x6d, 0xff, 0xc2, 0x1a,
-	0xdb, 0x87, 0x97, 0x4f, 0x0e, 0xa7, 0xde, 0xe1, 0x64, 0xee, 0x9c, 0x97, 0x59, 0x93, 0xf0, 0xe4,
-	0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc1, 0x38, 0x6f, 0xd5, 0xe1, 0x1b, 0x00, 0x00,
+	// 2864 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4f, 0x93, 0xdb, 0xc6,
+	0xb1, 0x17, 0x97, 0xff, 0x9b, 0xe4, 0xee, 0xec, 0xe8, 0x1f, 0xad, 0x3f, 0xb6, 0xcc, 0x27, 0xbb,
+	0xe4, 0x7d, 0xcf, 0xbb, 0xab, 0x95, 0xf4, 0x4a, 0x7e, 0x2e, 0xd7, 0x2b, 0x10, 0x04, 0x77, 0x61,
+	0x91, 0x00, 0x3c, 0x00, 0x57, 0x5a, 0xe7, 0x80, 0xc2, 0x92, 0x58, 0x0a, 0x55, 0x24, 0x80, 0x02,
+	0xc0, 0xd5, 0xaa, 0x2a, 0xa7, 0x54, 0xee, 0xf9, 0x04, 0xb9, 0x39, 0x29, 0x9f, 0x72, 0x49, 0x8e,
+	0x39, 0x38, 0x87, 0x7c, 0x88, 0x7c, 0x86, 0x7c, 0x88, 0xa4, 0x66, 0x06, 0x20, 0x41, 0x10, 0x92,
+	0xe5, 0xaa, 0xdc, 0x66, 0xba, 0x7f, 0xdd, 0xd3, 0xd3, 0xdd, 0xd3, 0x33, 0x3d, 0xd0, 0x9c, 0xcc,
+	0x9d, 0x83, 0xd7, 0x6f, 0xf6, 0xfd, 0xc0, 0x8b, 0x3c, 0x5c, 0x9c, 0xcc, 0x9d, 0x3b, 0x9f, 0x4c,
+	0x3d, 0x6f, 0x3a, 0xb3, 0x0f, 0x18, 0xe9, 0x7c, 0x71, 0x71, 0x10, 0x39, 0x73, 0x3b, 0x8c, 0xac,
+	0xb9, 0xcf, 0x51, 0x9d, 0x3b, 0x50, 0x1a, 0x2d, 0x9c, 0x09, 0xc6, 0x50, 0x5a, 0x2c, 0x9c, 0x49,
+	0xbb, 0xf0, 0xa0, 0xf0, 0xa8, 0x4e, 0xd8, 0xb8, 0xf3, 0xdf, 0x00, 0x27, 0x56, 0x30, 0x79, 0x63,
+	0x05, 0xb6, 0xdc, 0xc3, 0xf7, 0x53, 0x88, 0xc6, 0x51, 0x7d, 0x7f, 0x32, 0x77, 0xf6, 0xa9, 0x68,
+	0x0c, 0xbe, 0x0d, 0xc5, 0x51, 0xe0, 0x60, 0x04, 0xc5, 0x45, 0xe0, 0xc4, 0x6a, 0xe8, 0xb0, 0xf3,
+	0xdb, 0x22, 0x6c, 0x8b, 0xde, 0xdc, 0xf7, 0x5c, 0xdb, 0x8d, 0xf4, 0xc8, 0x8a, 0x6c, 0x7c, 0x02,
+	0x38, 0xa4, 0x03, 0x73, 0x66, 0x85, 0x91, 0x39, 0x7e, 0x6d, 0xb9, 0x53, 0x3b, 0x51, 0x7c, 0x67,
+	0x9f, 0x9b, 0xbc, 0x9f, 0x98, 0xbc, 0x6f, 0x24, 0x26, 0x13, 0xc4, 0xa4, 0x06, 0x56, 0x18, 0x89,
+	0x5c, 0x06, 0x7f, 0x05, 0x0d, 0x6b, 0x32, 0x77, 0x5c, 0x93, 0x71, 0xda, 0x5b, 0x0f, 0x0a, 0x8f,
+	0xb6, 0x8f, 0xda, 0xcc, 0xb6, 0xe5, 0x9a, 0x02, 0x05, 0xb0, 0x85, 0x09, 0x58, 0xcb, 0x31, 0xfe,
+	0x5f, 0x00, 0xcf, 0xb7, 0x83, 0x58, 0xb2, 0xc8, 0x24, 0x6f, 0xaf, 0x4b, 0xaa, 0xbe, 0x1d, 0x70,
+	0xc1, 0xba, 0x97, 0x0c, 0xe9, 0x92, 0x8b, 0xd0, 0x9a, 0xda, 0xb1, 0x60, 0x29, 0x6f, 0xc9, 0x11,
+	0x05, 0xc4, 0x4b, 0x2e, 0x96, 0x63, 0x66, 0xed, 0xcc, 0x0a, 0xe6, 0xb1, 0x68, 0x39, 0xd7, 0x5a,
+	0x0a, 0x48, 0xac, 0x5d, 0x8e, 0xf1, 0xff, 0x43, 0x2b, 0x8c, 0x2c, 0x77, 0x72, 0xfe, 0x36, 0x16,
+	0xae, 0x30, 0xe1, 0x3b, 0xeb, 0xc2, 0x3a, 0x87, 0x70, 0xf1, 0x66, 0x98, 0x9a, 0x75, 0xfe, 0xb9,
+	0x05, 0xd7, 0x57, 0x38, 0xdb, 0x0d, 0xbd, 0xa0, 0x67, 0x45, 0x16, 0xbe, 0x01, 0xe5, 0x4b, 0x6b,
+	0xb6, 0xb0, 0x99, 0xfb, 0xcb, 0x84, 0x4f, 0xf0, 0xe7, 0x50, 0x8a, 0xde, 0xfa, 0x89, 0x43, 0x31,
+	0x5b, 0x85, 0xc2, 0x4f, 0x29, 0xd7, 0x78, 0xeb, 0xdb, 0x84, 0xf1, 0xf1, 0x67, 0x50, 0x0e, 0xc7,
+	0xd6, 0x2c, 0xf1, 0xdf, 0x0e, 0x03, 0x32, 0x90, 0x4e, 0xc9, 0x84, 0x73, 0xf1, 0x3d, 0xa8, 0xfb,
+	0x81, 0x3d, 0x76, 0x42, 0xc7, 0x73, 0x99, 0xc7, 0xca, 0x64, 0x45, 0xc0, 0x5f, 0x40, 0x85, 0xee,
+	0x69, 0x11, 0xc6, 0x1e, 0xd9, 0x65, 0x5a, 0xb8, 0x8d, 0x3a, 0x63, 0x90, 0x18, 0x80, 0xff, 0x0b,
+	0x5a, 0x0b, 0xd7, 0x89, 0x42, 0x73, 0xe2, 0x84, 0xfe, 0xcc, 0x7a, 0xcb, 0xdc, 0x50, 0x27, 0x4d,
+	0x46, 0xec, 0x71, 0x1a, 0x7e, 0x0e, 0xf5, 0x65, 0x9a, 0xb7, 0xab, 0x3f, 0x9b, 0x55, 0x2b, 0x30,
+	0xde, 0x83, 0x5d, 0xb6, 0x7f, 0x73, 0xe1, 0x4f, 0x68, 0x7e, 0x06, 0xd4, 0xd3, 0xb5, 0x07, 0x85,
+	0x47, 0x2d, 0xb2, 0xc3, 0x18, 0x23, 0x46, 0x27, 0x34, 0x22, 0x77, 0xa1, 0x3e, 0xb1, 0x22, 0xcb,
+	0x64, 0x7e, 0xaa, 0x33, 0x33, 0x6a, 0x94, 0x40, 0xbd, 0xd3, 0xf9, 0x5b, 0x05, 0x6e, 0x6b, 0x5e,
+	0x10, 0xad, 0xc2, 0x1a, 0x45, 0x81, 0x73, 0xbe, 0x88, 0xec, 0x10, 0x7f, 0x07, 0xdb, 0x63, 0xcf,
+	0x75, 0xed, 0x71, 0xe4, 0x05, 0x5c, 0xba, 0xc0, 0xb6, 0xbd, 0xc7, 0xb6, 0xfd, 0x0e, 0xa9, 0x7d,
+	0x31, 0x11, 0x61, 0xde, 0x6f, 0x8d, 0xd3, 0x53, 0xfc, 0x1c, 0xca, 0xa1, 0x6f, 0xdb, 0x93, 0x38,
+	0x5e, 0x9d, 0xf7, 0x6a, 0xd2, 0x29, 0x92, 0x70, 0x01, 0x2c, 0x40, 0x8d, 0xb9, 0x64, 0xec, 0xcd,
+	0xe2, 0x18, 0x7e, 0xf6, 0x5e, 0x61, 0x2d, 0x06, 0x93, 0xa5, 0x18, 0xfe, 0x0c, 0xb6, 0xfd, 0xd7,
+	0x6f, 0x43, 0x67, 0x6c, 0xcd, 0xcc, 0x99, 0x75, 0x6e, 0xcf, 0x58, 0x84, 0xeb, 0xa4, 0x95, 0x50,
+	0x07, 0x94, 0x48, 0x43, 0x37, 0xb7, 0x7c, 0xdf, 0x71, 0xa7, 0x31, 0xaa, 0xcc, 0x43, 0x17, 0x13,
+	0x39, 0xe8, 0x29, 0xb4, 0x7c, 0xcf, 0x35, 0x9d, 0x89, 0x39, 0xf6, 0xdc, 0x0b, 0x67, 0xca, 0xe2,
+	0xdb, 0x38, 0x42, 0xb1, 0x4d, 0xae, 0x3c, 0x11, 0x19, 0x9d, 0x34, 0xfc, 0xd5, 0x04, 0x3f, 0x81,
+	0x9b, 0x6c, 0x37, 0xa6, 0xb5, 0x88, 0x3c, 0xd7, 0x9e, 0x7a, 0x91, 0x63, 0x45, 0x34, 0xd5, 0x68,
+	0xf0, 0x6b, 0xe4, 0x06, 0x63, 0x0a, 0xeb, 0xbc, 0x8e, 0x0f, 0xad, 0x35, 0x9f, 0xe2, 0x7b, 0xd0,
+	0x16, 0x55, 0x45, 0x91, 0x44, 0x43, 0x25, 0xa6, 0x71, 0xa6, 0x49, 0xe6, 0x48, 0xe9, 0x49, 0x7d,
+	0x59, 0x91, 0x7a, 0xe8, 0x1a, 0xae, 0x41, 0x89, 0x7c, 0xfb, 0xf4, 0x19, 0x2a, 0xe0, 0x26, 0xd4,
+	0xfa, 0x72, 0x57, 0x22, 0xe6, 0x40, 0x44, 0x5b, 0x78, 0x07, 0x1a, 0x7c, 0xa6, 0x8b, 0xa6, 0x26,
+	0xa2, 0x22, 0x6e, 0x41, 0x9d, 0x13, 0x86, 0x9a, 0x8a, 0x4a, 0xb8, 0x0e, 0x65, 0xa2, 0x1f, 0x3d,
+	0x39, 0x42, 0xe5, 0xce, 0x9f, 0x0a, 0x50, 0x66, 0xce, 0xc7, 0xd7, 0x61, 0x47, 0xd7, 0x24, 0xa9,
+	0xb7, 0xb6, 0x42, 0x03, 0xaa, 0xbd, 0x33, 0x45, 0x18, 0xca, 0x22, 0x2a, 0x50, 0x2d, 0xc7, 0xf2,
+	0xb1, 0xd0, 0x95, 0x0d, 0xf3, 0x31, 0xda, 0xc2, 0xdb, 0x00, 0xcb, 0xe9, 0x21, 0x2a, 0xa6, 0xe7,
+	0x47, 0xcf, 0x50, 0x29, 0x3d, 0x7f, 0x7a, 0x88, 0xca, 0xd4, 0xaa, 0x15, 0xfe, 0x10, 0x55, 0xd2,
+	0x84, 0xa7, 0x87, 0x87, 0xa8, 0x8a, 0x11, 0x34, 0x87, 0x52, 0xa2, 0xe1, 0xf0, 0x10, 0xd5, 0xd2,
+	0x94, 0xc7, 0x47, 0xcf, 0x0e, 0x51, 0xbd, 0xf3, 0x6b, 0xa8, 0x25, 0xf1, 0xc6, 0xb7, 0x00, 0x6b,
+	0x44, 0x35, 0x54, 0x51, 0x1d, 0xac, 0x59, 0xdd, 0x84, 0x9a, 0x64, 0x9c, 0x48, 0x44, 0x91, 0x0c,
+	0x54, 0xa0, 0x5e, 0x3a, 0xd6, 0x54, 0x05, 0x6d, 0xd1, 0x7d, 0xbf, 0x62, 0xc3, 0x22, 0x06, 0xa8,
+	0xbc, 0x3a, 0xd6, 0xe9, 0x98, 0xb9, 0xe3, 0xb8, 0x2f, 0xe8, 0x06, 0x2a, 0x53, 0xb2, 0x2e, 0x11,
+	0x59, 0x18, 0xa0, 0x0a, 0x95, 0x93, 0x28, 0xa0, 0x4a, 0x47, 0x5d, 0xd9, 0xd0, 0x51, 0xad, 0x33,
+	0x82, 0xfb, 0x6b, 0x59, 0xc8, 0x6b, 0x7e, 0xea, 0x20, 0x6d, 0x24, 0x4b, 0xe1, 0x03, 0x92, 0xa5,
+	0xf3, 0x2b, 0x78, 0x68, 0x04, 0x96, 0x1b, 0x8e, 0x6d, 0xe7, 0xd2, 0x0e, 0xde, 0xad, 0xfd, 0x09,
+	0x40, 0x44, 0x71, 0xe9, 0x23, 0x7a, 0x83, 0xa9, 0x4e, 0x89, 0xb3, 0xc3, 0x58, 0x67, 0x38, 0x76,
+	0xee, 0xc7, 0xd0, 0x48, 0x2d, 0x8c, 0x6f, 0x42, 0x85, 0x5b, 0xc8, 0xe4, 0x9b, 0xa4, 0xcc, 0x0c,
+	0xc1, 0xdf, 0xc0, 0xdd, 0xd8, 0x70, 0x26, 0x39, 0x77, 0x22, 0xd3, 0xb7, 0x03, 0xc7, 0x9b, 0x38,
+	0x63, 0x27, 0x7a, 0xcb, 0x0e, 0x71, 0x8b, 0xb4, 0x19, 0xd6, 0x88, 0x01, 0xda, 0x8a, 0xdf, 0x91,
+	0xe0, 0x9e, 0xe8, 0xb9, 0x91, 0xe5, 0xb8, 0x29, 0xfb, 0x53, 0x96, 0x6f, 0x1e, 0xc8, 0x42, 0xce,
+	0x81, 0xec, 0xfc, 0xbd, 0x00, 0xb7, 0xb4, 0x70, 0x91, 0xa7, 0xe1, 0x0c, 0x76, 0xc3, 0x85, 0xef,
+	0x7b, 0x41, 0x64, 0x4f, 0xcc, 0x4b, 0x6f, 0x16, 0x59, 0xd3, 0xc4, 0x05, 0xff, 0xc3, 0xbd, 0x9b,
+	0x2b, 0xb7, 0xaf, 0x27, 0x42, 0xa7, 0x5c, 0x86, 0xa0, 0x30, 0x43, 0xe9, 0x68, 0x80, 0xb2, 0x28,
+	0xfc, 0x09, 0xdc, 0xd5, 0x47, 0x9a, 0xa6, 0x12, 0x43, 0xea, 0x99, 0xa7, 0xea, 0xc0, 0x10, 0x8e,
+	0xd7, 0x0f, 0x5f, 0x15, 0x8a, 0xa7, 0x4f, 0x9f, 0xf3, 0xfc, 0x3a, 0x3d, 0x7a, 0x72, 0x88, 0xb6,
+	0xd8, 0xe8, 0xf1, 0xe3, 0x67, 0xa8, 0xd8, 0xf9, 0x43, 0x19, 0x3e, 0xc9, 0x8b, 0x68, 0x98, 0xda,
+	0x90, 0x06, 0x8d, 0x0b, 0x2f, 0x98, 0x9b, 0x17, 0x16, 0x3d, 0xee, 0xf1, 0x56, 0x0e, 0xb2, 0xd1,
+	0xcc, 0x13, 0xdd, 0xef, 0x7b, 0xc1, 0xbc, 0xcf, 0xc4, 0x08, 0x5c, 0x2c, 0xc7, 0x99, 0xf4, 0xd8,
+	0xfa, 0xa0, 0xf4, 0xc0, 0x9f, 0x42, 0x73, 0x6e, 0x5d, 0xd1, 0xcb, 0x2b, 0xb2, 0xdc, 0x31, 0xbf,
+	0x35, 0x5b, 0xa4, 0x31, 0xb7, 0xae, 0x7a, 0x31, 0x09, 0x7f, 0x03, 0x38, 0x0d, 0x31, 0xf9, 0xf5,
+	0x5a, 0xca, 0xbf, 0x5e, 0x51, 0x4a, 0x92, 0x51, 0x68, 0x95, 0x0d, 0xae, 0xcc, 0x37, 0xd6, 0xa5,
+	0x3d, 0xb3, 0xdd, 0x69, 0xf4, 0xba, 0x5d, 0x7e, 0x50, 0x7c, 0xd4, 0x22, 0xcd, 0xe0, 0xea, 0xe5,
+	0x92, 0x46, 0x41, 0xd1, 0x1a, 0xa8, 0xc2, 0x41, 0x51, 0x1a, 0xf4, 0x7f, 0x80, 0x56, 0x88, 0xd8,
+	0x8c, 0x6a, 0xbe, 0x19, 0x3b, 0x2b, 0x20, 0xb7, 0xe2, 0x23, 0xa8, 0x45, 0x57, 0xa6, 0xef, 0xbd,
+	0xb1, 0x83, 0x76, 0xed, 0x41, 0xf1, 0x51, 0x99, 0x54, 0xa3, 0x2b, 0x8d, 0x4e, 0xf1, 0x33, 0xd8,
+	0x4e, 0x58, 0xb1, 0xd2, 0x7a, 0xbe, 0xd2, 0x66, 0x2c, 0xc1, 0x66, 0x9d, 0x9f, 0x0a, 0x00, 0xab,
+	0x48, 0xe0, 0xdb, 0x70, 0xbd, 0xaf, 0x92, 0xa1, 0xd9, 0x17, 0x58, 0xb5, 0x1e, 0x29, 0x2f, 0x14,
+	0xf5, 0xa5, 0xc2, 0xcb, 0xf4, 0x77, 0x7a, 0x5f, 0xe3, 0x15, 0x94, 0x8e, 0x4c, 0x6d, 0x30, 0xd2,
+	0xd1, 0x16, 0xad, 0x36, 0x74, 0x7a, 0xf4, 0x1c, 0x15, 0x69, 0x3a, 0x51, 0x4c, 0x89, 0x16, 0xaf,
+	0x25, 0xa4, 0x4c, 0xc9, 0xaf, 0xfa, 0x1a, 0xaf, 0x46, 0x62, 0x5f, 0x7b, 0xca, 0xab, 0x91, 0xd8,
+	0xd7, 0x8e, 0x50, 0x8d, 0x8d, 0x34, 0xe1, 0x05, 0xaa, 0xe3, 0x0a, 0x6c, 0xbd, 0x3a, 0x42, 0x40,
+	0x4b, 0x99, 0x4a, 0x2b, 0x1f, 0x6a, 0x50, 0x49, 0xb1, 0xaf, 0xa1, 0x26, 0x55, 0x48, 0xf1, 0xa6,
+	0x20, 0xaa, 0xa8, 0xb5, 0x9c, 0xf5, 0x44, 0x15, 0x6d, 0x77, 0xfe, 0x51, 0x85, 0xfa, 0x32, 0xc3,
+	0xe8, 0x83, 0xdb, 0xb5, 0xe6, 0x76, 0xf2, 0xe0, 0xa6, 0x63, 0xfc, 0x08, 0xca, 0xe3, 0x99, 0x15,
+	0x86, 0x6b, 0xcf, 0xae, 0xa5, 0x08, 0x4b, 0x26, 0x0e, 0xc0, 0x0f, 0xa0, 0x31, 0xb1, 0xc3, 0x71,
+	0xe0, 0xf8, 0xec, 0x9e, 0x2b, 0x32, 0x25, 0x69, 0x12, 0xbe, 0x05, 0x15, 0xdf, 0x0a, 0x6c, 0x37,
+	0x8a, 0x6f, 0xe3, 0x78, 0x86, 0x1f, 0xc2, 0x36, 0x1f, 0x99, 0x81, 0x3d, 0x33, 0x7d, 0x8f, 0x3f,
+	0xba, 0xca, 0xa4, 0xc9, 0xa9, 0xc4, 0x9e, 0x69, 0x5e, 0x88, 0xf7, 0xa0, 0x36, 0x7e, 0xed, 0xcc,
+	0x26, 0x81, 0xed, 0xb2, 0xe4, 0x68, 0x1c, 0x6d, 0xaf, 0x1b, 0x43, 0x96, 0x7c, 0x9a, 0xd4, 0xaf,
+	0xe3, 0x36, 0xc1, 0x0c, 0xec, 0x4b, 0x96, 0x24, 0x75, 0xd2, 0x48, 0x68, 0xc4, 0xbe, 0xa4, 0x90,
+	0x0b, 0x27, 0x98, 0x2f, 0x21, 0x35, 0x0e, 0x49, 0x68, 0x31, 0x24, 0xf4, 0x2e, 0xa2, 0x25, 0x84,
+	0xbf, 0xa8, 0x1a, 0x09, 0x8d, 0x42, 0xee, 0x03, 0x84, 0x76, 0xe0, 0x58, 0x33, 0xd3, 0x5d, 0xcc,
+	0xdb, 0xc0, 0x00, 0x75, 0x4e, 0x51, 0x16, 0x73, 0x9a, 0x74, 0xf3, 0x8b, 0xa9, 0xc9, 0xbc, 0xda,
+	0x60, 0xcc, 0xea, 0xfc, 0x62, 0xaa, 0x50, 0xc7, 0xde, 0x07, 0x98, 0x7b, 0x13, 0x7b, 0xc6, 0x99,
+	0x4d, 0x2e, 0xc9, 0x28, 0x8c, 0x7d, 0x03, 0xca, 0xd6, 0xcc, 0xb1, 0xc2, 0x76, 0x8b, 0x71, 0xf8,
+	0x84, 0xea, 0xb3, 0xc2, 0xd0, 0x8e, 0x68, 0xf9, 0xde, 0xe6, 0xfa, 0xd8, 0x5c, 0x9e, 0xd0, 0xba,
+	0xee, 0x84, 0xe6, 0x45, 0xb0, 0x68, 0xef, 0xb0, 0x17, 0x46, 0xd9, 0x09, 0xfb, 0xc1, 0x02, 0x3f,
+	0xe3, 0x16, 0xd0, 0x27, 0x62, 0x1b, 0xfd, 0xec, 0xbb, 0x93, 0x5a, 0xd7, 0xa3, 0x2f, 0xc9, 0x3b,
+	0xbc, 0x67, 0xda, 0x65, 0x12, 0x35, 0xde, 0x58, 0x05, 0x0e, 0xeb, 0x9e, 0x96, 0x5d, 0x17, 0xce,
+	0xed, 0xba, 0xf0, 0x17, 0x50, 0xe6, 0xed, 0xc0, 0x75, 0xc6, 0xbf, 0xbe, 0xd1, 0x0e, 0x44, 0xf4,
+	0x0d, 0x9e, 0x34, 0x1f, 0x21, 0x7b, 0x52, 0x53, 0xfb, 0xac, 0xf6, 0x0d, 0x16, 0xd5, 0x4c, 0xf3,
+	0xb1, 0xea, 0x0b, 0x08, 0x84, 0xab, 0x1e, 0xe1, 0x6b, 0xa8, 0xd3, 0x82, 0x6d, 0x5a, 0x51, 0x14,
+	0xb4, 0x8f, 0xd8, 0x4a, 0xf7, 0xde, 0xf7, 0x4a, 0x3c, 0xb9, 0x46, 0x6a, 0x54, 0x80, 0x52, 0xf0,
+	0xb7, 0xec, 0xb9, 0xcb, 0x6f, 0x2b, 0xae, 0xe1, 0x09, 0xd3, 0xf0, 0x69, 0xbc, 0xf4, 0xbb, 0x2f,
+	0xb2, 0x93, 0x6b, 0xec, 0x9d, 0xcb, 0xf9, 0x4c, 0xd7, 0x73, 0xa8, 0xf9, 0xe1, 0x82, 0x6b, 0x79,
+	0xca, 0xb4, 0xdc, 0x7d, 0xcf, 0x75, 0x74, 0x72, 0x8d, 0x54, 0xfd, 0x70, 0xc1, 0x24, 0xbf, 0x03,
+	0x14, 0xad, 0xea, 0x32, 0xd7, 0xf0, 0x8c, 0x69, 0x78, 0xf8, 0x21, 0xb7, 0xc0, 0xc9, 0x35, 0xb2,
+	0x93, 0x92, 0xa7, 0x8c, 0x2e, 0x40, 0x2d, 0xf4, 0xed, 0xb1, 0x73, 0xe1, 0x8c, 0x3b, 0x3f, 0x16,
+	0xa0, 0x96, 0xf4, 0xca, 0xf8, 0x6b, 0x68, 0xa4, 0x1a, 0xdb, 0x0f, 0xe8, 0x6b, 0x61, 0xb6, 0x6c,
+	0x69, 0x71, 0x07, 0x4a, 0x81, 0xe7, 0x45, 0xac, 0x04, 0x6c, 0x9e, 0x3a, 0xc6, 0x5b, 0x2e, 0x70,
+	0xee, 0x79, 0x91, 0x3d, 0x61, 0xa7, 0xff, 0x03, 0x16, 0xe8, 0x32, 0x74, 0xe7, 0xa7, 0x22, 0x5c,
+	0x1f, 0x7a, 0x13, 0xe7, 0xc2, 0xb1, 0xce, 0x67, 0xf6, 0x7f, 0xaa, 0x20, 0x7d, 0xbe, 0x2c, 0x37,
+	0xc5, 0x5c, 0xc3, 0xdf, 0x5d, 0x7e, 0x4a, 0x39, 0xe5, 0x67, 0x79, 0x20, 0xcb, 0xef, 0x3a, 0x90,
+	0x95, 0xf5, 0x03, 0x19, 0x1f, 0xa1, 0x6a, 0xde, 0x11, 0xca, 0xfc, 0x11, 0xd4, 0x7e, 0xc1, 0x1f,
+	0x81, 0xb0, 0x99, 0xf8, 0x39, 0xbd, 0x55, 0xf6, 0xe9, 0xb8, 0x96, 0xfe, 0x7d, 0xa8, 0x45, 0xc1,
+	0x55, 0x3a, 0xf1, 0xbf, 0x78, 0x67, 0xc2, 0xe5, 0x28, 0xaa, 0x46, 0xc1, 0x55, 0x36, 0xdb, 0xf6,
+	0xfe, 0x52, 0xa4, 0xbd, 0x4b, 0x2a, 0x0a, 0xbc, 0x77, 0x19, 0x6a, 0xaa, 0x22, 0x29, 0xc6, 0x66,
+	0xef, 0x72, 0x07, 0x6e, 0x6d, 0x70, 0xf9, 0x85, 0x59, 0xc8, 0xe1, 0x89, 0x27, 0x82, 0xae, 0xcb,
+	0xf4, 0xce, 0xdc, 0xd4, 0xda, 0x15, 0xc4, 0x17, 0xda, 0x40, 0x50, 0x24, 0x54, 0xcc, 0xe1, 0x8a,
+	0xaa, 0x62, 0x08, 0xb2, 0x22, 0x11, 0x54, 0xa2, 0x6f, 0xba, 0x0c, 0x57, 0x53, 0x5f, 0xd2, 0x36,
+	0x69, 0xa4, 0x69, 0x83, 0x33, 0x54, 0xa6, 0x0d, 0x45, 0x06, 0xd0, 0x17, 0x14, 0x54, 0xc1, 0x1f,
+	0xc1, 0xcd, 0x0c, 0x5d, 0x97, 0x14, 0x5d, 0x25, 0xa8, 0x9a, 0xc3, 0x1a, 0xaa, 0xbd, 0xd1, 0x40,
+	0x42, 0x35, 0xfa, 0x20, 0xd8, 0x58, 0x8e, 0x18, 0xa8, 0x9e, 0xb3, 0x8c, 0xa8, 0x8d, 0x10, 0xe4,
+	0xec, 0xbb, 0x2b, 0x18, 0x86, 0x44, 0xce, 0x50, 0x23, 0x87, 0xa7, 0x1b, 0x2a, 0x11, 0x8e, 0x25,
+	0xd4, 0xcc, 0xb3, 0x41, 0x1a, 0xaa, 0xe4, 0x0c, 0xb5, 0xf0, 0xc7, 0x70, 0x27, 0xc3, 0x32, 0x88,
+	0xa0, 0xe8, 0xa2, 0x24, 0x9f, 0x4a, 0x04, 0x6d, 0xef, 0xfd, 0xb9, 0x90, 0xfa, 0x82, 0x59, 0x65,
+	0x5c, 0x22, 0x67, 0x0a, 0xbd, 0xa1, 0xac, 0x98, 0xba, 0x21, 0x18, 0xeb, 0xe1, 0x8b, 0x1d, 0x9d,
+	0xe1, 0x27, 0x01, 0xbc, 0x0b, 0xb7, 0x37, 0xb8, 0x03, 0x55, 0x7c, 0x21, 0xf5, 0xd0, 0x16, 0xee,
+	0xc0, 0xc7, 0x1b, 0x4c, 0xfd, 0x64, 0x64, 0x18, 0xb2, 0x72, 0x6c, 0xf6, 0xa8, 0x82, 0x22, 0xbe,
+	0x0f, 0x1f, 0xe5, 0xa8, 0x8f, 0x55, 0x94, 0xf6, 0x7e, 0x2c, 0x00, 0xde, 0xfc, 0x11, 0x5b, 0x4a,
+	0xa9, 0x1a, 0x0d, 0xea, 0x86, 0xcd, 0x89, 0x55, 0x6b, 0xec, 0xc4, 0xe4, 0x64, 0x43, 0x29, 0x66,
+	0x4f, 0xd6, 0x85, 0xee, 0x80, 0xd9, 0x9c, 0x23, 0x2a, 0x29, 0x9c, 0x59, 0xcc, 0x63, 0x1a, 0x92,
+	0x4e, 0xb7, 0x83, 0x4a, 0x7b, 0x7f, 0x4c, 0x3b, 0x78, 0xf5, 0x07, 0xb7, 0x74, 0xf0, 0x48, 0xa7,
+	0x8d, 0xc5, 0xbb, 0x1d, 0xbc, 0xce, 0x4f, 0xac, 0x8d, 0x23, 0xbe, 0xc6, 0x95, 0x7b, 0x03, 0x29,
+	0x65, 0x6a, 0x9a, 0x25, 0x88, 0x86, 0x7c, 0x4a, 0xcf, 0x47, 0x9e, 0x5c, 0x77, 0xa4, 0x9f, 0xa1,
+	0xd2, 0xde, 0xef, 0xd2, 0x9f, 0x71, 0xab, 0x1f, 0xbf, 0x55, 0x26, 0x0c, 0x04, 0x32, 0x7c, 0x5f,
+	0x26, 0xac, 0xf1, 0x13, 0x43, 0x3f, 0x85, 0xfb, 0xb9, 0xd2, 0xc4, 0x24, 0x92, 0x26, 0xc8, 0x04,
+	0x6d, 0xad, 0x62, 0x9d, 0x82, 0x88, 0x44, 0x36, 0x64, 0x51, 0x18, 0xa0, 0x62, 0x92, 0xf8, 0x6b,
+	0xec, 0xa1, 0xf0, 0xad, 0x4a, 0x0f, 0x74, 0x2e, 0x4f, 0x56, 0x54, 0x82, 0xca, 0xb9, 0x76, 0xbd,
+	0x14, 0x88, 0x42, 0xc3, 0x52, 0x59, 0x25, 0x61, 0x8a, 0x2b, 0x2b, 0x3d, 0xc9, 0x90, 0xc8, 0x50,
+	0x56, 0x04, 0x43, 0x42, 0xd5, 0xbd, 0xbf, 0x16, 0xe0, 0x66, 0xee, 0x37, 0x26, 0x7e, 0x00, 0xf7,
+	0x98, 0xb4, 0x6e, 0x08, 0x4a, 0xaf, 0x7b, 0x96, 0xe3, 0x95, 0xc4, 0x6b, 0x59, 0x44, 0xa6, 0xc4,
+	0x65, 0xf8, 0x27, 0xaa, 0x91, 0x8a, 0xe0, 0x3a, 0x4f, 0x54, 0x07, 0x34, 0xd9, 0x1e, 0xc1, 0xc3,
+	0x1c, 0xa6, 0x46, 0xd4, 0x53, 0xb9, 0x47, 0x0f, 0x90, 0x2e, 0x91, 0x53, 0x59, 0x94, 0x50, 0x69,
+	0xef, 0xf7, 0x45, 0x68, 0xad, 0xfd, 0x8f, 0xe2, 0x36, 0xdc, 0x38, 0x15, 0x06, 0x23, 0x69, 0xb3,
+	0x1a, 0xdf, 0x00, 0x94, 0xe2, 0xf0, 0x16, 0xa2, 0x40, 0xeb, 0xd4, 0x1a, 0x9e, 0x1b, 0xbf, 0x45,
+	0x0b, 0x5b, 0x8a, 0x4e, 0x9b, 0x63, 0xdd, 0x14, 0x44, 0x54, 0xcc, 0x65, 0xf4, 0x44, 0x54, 0xca,
+	0x68, 0x12, 0x86, 0x9a, 0x44, 0x24, 0xda, 0xde, 0xac, 0xaf, 0xfb, 0x52, 0x30, 0x0c, 0x1d, 0x55,
+	0x32, 0xd4, 0x13, 0x89, 0x18, 0xdf, 0xa3, 0x6a, 0x46, 0x87, 0x28, 0x0d, 0x74, 0x79, 0xa4, 0xa3,
+	0x1a, 0xcd, 0xe9, 0x14, 0x5d, 0x93, 0x88, 0x48, 0x6b, 0x1d, 0x39, 0x41, 0x75, 0x8c, 0x61, 0x3b,
+	0xc5, 0x22, 0xda, 0x10, 0x41, 0x86, 0x26, 0x0e, 0x87, 0xbc, 0xb8, 0xa6, 0x68, 0x06, 0x19, 0x19,
+	0x27, 0x26, 0x23, 0xa0, 0x66, 0x66, 0xd9, 0x58, 0x3d, 0x6a, 0xe1, 0x9b, 0xb0, 0x9b, 0xa2, 0x0f,
+	0x69, 0xe6, 0xe8, 0x68, 0x3b, 0x63, 0x7b, 0xf7, 0xcc, 0x90, 0x74, 0xb4, 0x93, 0x59, 0xb4, 0xd7,
+	0x1d, 0x22, 0xb4, 0xf7, 0x43, 0x11, 0x60, 0xd5, 0x5b, 0xae, 0xb6, 0xa1, 0x8b, 0xc2, 0x60, 0x3d,
+	0x3a, 0xcb, 0xa5, 0x38, 0xeb, 0x4c, 0x15, 0x0d, 0x15, 0x15, 0xb2, 0xe4, 0xef, 0x25, 0xcd, 0x50,
+	0xd1, 0xd6, 0xca, 0x02, 0x4e, 0x16, 0x0c, 0x43, 0x45, 0xc5, 0x2c, 0xb8, 0x2f, 0x0d, 0x0d, 0x15,
+	0x95, 0xb2, 0x60, 0x4d, 0x16, 0xd5, 0x74, 0x58, 0x38, 0x55, 0x11, 0x14, 0x15, 0x55, 0xb2, 0x2a,
+	0x86, 0xb2, 0x48, 0x54, 0x54, 0xdd, 0x24, 0x0f, 0x06, 0x32, 0xaa, 0x65, 0xc9, 0x23, 0x45, 0x36,
+	0x74, 0x54, 0xcf, 0xaa, 0x7e, 0x21, 0x0f, 0x54, 0x04, 0x59, 0xea, 0x50, 0x3a, 0x16, 0x50, 0x23,
+	0x4b, 0x3d, 0x96, 0x8f, 0x05, 0xd4, 0xcc, 0x52, 0x0d, 0x89, 0x08, 0xa8, 0xb5, 0xb1, 0x11, 0xc9,
+	0x10, 0xd0, 0x36, 0xbe, 0x0e, 0x3b, 0x69, 0xaa, 0xf4, 0x4a, 0x40, 0x3b, 0x9b, 0x7e, 0x33, 0x0c,
+	0x01, 0xa1, 0x4d, 0x2f, 0x53, 0xf2, 0xee, 0xde, 0x6f, 0x0a, 0xd0, 0x4c, 0xff, 0xfb, 0xd3, 0xe3,
+	0xc9, 0x6f, 0x7f, 0x76, 0xf6, 0x46, 0x7a, 0xf6, 0x20, 0xad, 0x33, 0xd5, 0x17, 0xa8, 0x40, 0x4b,
+	0x5c, 0x56, 0x44, 0x38, 0x15, 0xe4, 0x01, 0xbd, 0x41, 0xd0, 0x16, 0x2d, 0x27, 0xeb, 0x6c, 0x45,
+	0x55, 0xe8, 0x65, 0x22, 0x18, 0xb2, 0xaa, 0xd0, 0x22, 0xb8, 0xf7, 0x43, 0x01, 0x76, 0x32, 0x7f,
+	0x38, 0x34, 0xa7, 0x36, 0xce, 0xf1, 0x2f, 0xfc, 0xf9, 0x64, 0x1f, 0x08, 0xaa, 0x82, 0xca, 0xb8,
+	0x01, 0x55, 0xe5, 0xd8, 0xd4, 0x54, 0xe5, 0x68, 0xed, 0xe7, 0xf3, 0x26, 0xec, 0x8a, 0xea, 0xb0,
+	0xab, 0x9a, 0x54, 0xd8, 0x8c, 0xe5, 0x6a, 0xf8, 0x16, 0xec, 0xb2, 0xa5, 0x15, 0xd5, 0x30, 0x69,
+	0xcd, 0x14, 0x0d, 0xa9, 0x87, 0xfe, 0x55, 0xe8, 0x7e, 0xfd, 0xfd, 0x57, 0x53, 0x27, 0x7a, 0xbd,
+	0x38, 0xdf, 0x1f, 0x7b, 0xf3, 0x03, 0xcf, 0xb7, 0xdd, 0xb1, 0x17, 0x4c, 0x0e, 0x26, 0xf6, 0xa5,
+	0x33, 0xb6, 0xbf, 0x9c, 0x5b, 0xae, 0x35, 0xb5, 0xe7, 0xb6, 0x1b, 0x7d, 0xe9, 0xb8, 0x91, 0x1d,
+	0x5c, 0x58, 0x63, 0xfb, 0xe0, 0xf2, 0xc9, 0xc1, 0xd4, 0x3b, 0x98, 0xcc, 0x9d, 0xf3, 0x0a, 0x6b,
+	0x12, 0x9e, 0xfc, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xd9, 0xff, 0x19, 0x03, 0x33, 0x1c, 0x00, 0x00,
 }
diff --git a/protos/dmi/hw.proto b/protos/dmi/hw.proto
index d8a70dc..c41d8a2 100644
--- a/protos/dmi/hw.proto
+++ b/protos/dmi/hw.proto
@@ -268,6 +268,12 @@
     repeated uint32 rx_wavelength = 5;

     repeated uint32 tx_wavelength = 6;

     ValueScale wavelength_scale = 7;

+    // The tx powers on the transceiver; the value type of tx_power should be dBm.

+    // Note: When there are multiple rx/tx wavelengths and powers

+    // each of the corresponding ones should be aligned on the same index of the array

+    repeated int32 tx_power = 8;

+    ValueScale tx_power_scale = 9;

+

 }

 

 message Component {

diff --git a/python/dmi/hw_pb2.py b/python/dmi/hw_pb2.py
index c44e035..d838136 100644
--- a/python/dmi/hw_pb2.py
+++ b/python/dmi/hw_pb2.py
@@ -16,7 +16,7 @@
 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
 
 
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x64mi/hw.proto\x12\x03\x64mi\x1a\x1fgoogle/protobuf/timestamp.proto\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"%\n\nHardwareID\x12\x17\n\x04uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\x12\n\x03Uri\x12\x0b\n\x03uri\x18\x01 \x01(\t\"\xb5\x02\n\x0e\x43omponentState\x12\x36\n\x12state_last_changed\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\x0b\x61\x64min_state\x18\x02 \x01(\x0e\x32\x18.dmi.ComponentAdminState\x12+\n\noper_state\x18\x03 \x01(\x0e\x32\x17.dmi.ComponentOperState\x12-\n\x0busage_state\x18\x04 \x01(\x0e\x32\x18.dmi.ComponentUsageState\x12-\n\x0b\x61larm_state\x18\x05 \x01(\x0e\x32\x18.dmi.ComponentAlarmState\x12\x31\n\rstandby_state\x18\x06 \x01(\x0e\x32\x1a.dmi.ComponentStandbyState\"\x90\x02\n\x13\x43omponentSensorData\x12\r\n\x05value\x18\x01 \x01(\x05\x12 \n\x04type\x18\x02 \x01(\x0e\x32\x12.dmi.DataValueType\x12\x1e\n\x05scale\x18\x03 \x01(\x0e\x32\x0f.dmi.ValueScale\x12\x11\n\tprecision\x18\x04 \x01(\x05\x12!\n\x06status\x18\x05 \x01(\x0e\x32\x11.dmi.SensorStatus\x12\x15\n\runits_display\x18\x06 \x01(\t\x12-\n\ttimestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11value_update_rate\x18\x08 \x01(\r\x12\x11\n\tdata_type\x18\t \x01(\t\"\xe1\x05\n\x17PortComponentAttributes\x12\x42\n\x0e\x63onnector_type\x18\x01 \x01(\x0e\x32*.dmi.PortComponentAttributes.ConnectorType\x12\x31\n\x05speed\x18\x02 \x01(\x0e\x32\".dmi.PortComponentAttributes.Speed\x12\x37\n\x08protocol\x18\x03 \x01(\x0e\x32%.dmi.PortComponentAttributes.Protocol\x12\x16\n\x0ephysical_label\x18\x04 \x01(\t\x12\x15\n\rmapping_label\x18\x05 \x01(\t\x12\'\n\rpon_id_config\x18\x06 \x01(\x0b\x32\x10.dmi.PonIdConfig\x12\x1d\n\x15speed_autonegotiation\x18\x07 \x01(\x08\"p\n\rConnectorType\x12\x1c\n\x18\x43ONNECTOR_TYPE_UNDEFINED\x10\x00\x12\x08\n\x04RJ45\x10\x01\x12\x0c\n\x08\x46IBER_LC\x10\x02\x12\x0f\n\x0b\x46IBER_SC_PC\x10\x03\x12\r\n\tFIBER_MPO\x10\x04\x12\t\n\x05RS232\x10\x05\"\xae\x01\n\x05Speed\x12\x13\n\x0fSPEED_UNDEFINED\x10\x00\x12\x0b\n\x07\x44YNAMIC\x10\x01\x12\r\n\tGIGABIT_1\x10\x02\x12\x0e\n\nGIGABIT_10\x10\x03\x12\x0e\n\nGIGABIT_25\x10\x04\x12\x0e\n\nGIGABIT_40\x10\x05\x12\x0f\n\x0bGIGABIT_100\x10\x06\x12\x0f\n\x0bGIGABIT_400\x10\x07\x12\x10\n\x0cMEGABIT_2500\x10\x08\x12\x10\n\x0cMEGABIT_1250\x10\t\"|\n\x08Protocol\x12\x16\n\x12PROTOCOL_UNDEFINED\x10\x00\x12\x0c\n\x08\x45THERNET\x10\x01\x12\x08\n\x04GPON\x10\x02\x12\t\n\x05XGPON\x10\x03\x12\n\n\x06XGSPON\x10\x04\x12\t\n\x05GFAST\x10\x05\x12\n\n\x06SERIAL\x10\x06\x12\x08\n\x04\x45PON\x10\x07\x12\x08\n\x04\x42ITS\x10\x08\"H\n\x1dPortComponentChangeAttributes\x12\'\n\rpon_id_config\x18\x01 \x01(\x0b\x32\x10.dmi.PonIdConfig\"P\n$TransceiverComponentChangeAttributes\x12(\n\ntrans_type\x18\x01 \x01(\x0e\x32\x14.dmi.TransceiverType\"B\n\x0bPonIdConfig\x12\x0e\n\x06pon_id\x18\x01 \x01(\x0c\x12#\n\x1bpon_id_transmit_periodicity\x18\x02 \x01(\r\"6\n\x1c\x43ontainerComponentAttributes\x12\x16\n\x0ephysical_label\x18\x01 \x01(\t\"\xb3\x01\n\x16PsuComponentAttributes\x12G\n\x11supported_voltage\x18\x01 \x01(\x0e\x32,.dmi.PsuComponentAttributes.SupportedVoltage\"P\n\x10SupportedVoltage\x12\x1f\n\x1bSUPPORTED_VOLTAGE_UNDEFINED\x10\x00\x12\x07\n\x03V48\x10\x01\x12\x08\n\x04V230\x10\x02\x12\x08\n\x04V115\x10\x03\"\xf0\x03\n\x1fTransceiverComponentsAttributes\x12\x44\n\x0b\x66orm_factor\x18\x01 \x01(\x0e\x32/.dmi.TransceiverComponentsAttributes.FormFactor\x12(\n\ntrans_type\x18\x02 \x01(\x0e\x32\x14.dmi.TransceiverType\x12\x14\n\x0cmax_distance\x18\x03 \x01(\r\x12+\n\x12max_distance_scale\x18\x04 \x01(\x0e\x32\x0f.dmi.ValueScale\x12\x15\n\rrx_wavelength\x18\x05 \x03(\r\x12\x15\n\rtx_wavelength\x18\x06 \x03(\r\x12)\n\x10wavelength_scale\x18\x07 \x01(\x0e\x32\x0f.dmi.ValueScale\"\xc0\x01\n\nFormFactor\x12\x17\n\x13\x46ORM_FACTOR_UNKNOWN\x10\x00\x12\x08\n\x04QSFP\x10\x01\x12\r\n\tQSFP_PLUS\x10\x02\x12\n\n\x06QSFP28\x10\x03\x12\x07\n\x03SFP\x10\x04\x12\x0c\n\x08SFP_PLUS\x10\x05\x12\x07\n\x03XFP\x10\x06\x12\x08\n\x04\x43\x46P4\x10\x07\x12\x08\n\x04\x43\x46P2\x10\x08\x12\x08\n\x04\x43PAK\x10\t\x12\x06\n\x02X2\x10\n\x12\t\n\x05OTHER\x10\x0b\x12\x07\n\x03\x43\x46P\x10\x0c\x12\x0c\n\x08\x43\x46P2_ACO\x10\r\x12\x0c\n\x08\x43\x46P2_DCO\x10\x0e\"\xe8\x05\n\tComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0e\n\x06parent\x18\x04 \x01(\t\x12\x16\n\x0eparent_rel_pos\x18\x05 \x01(\x05\x12 \n\x08\x63hildren\x18\x06 \x03(\x0b\x32\x0e.dmi.Component\x12\x14\n\x0chardware_rev\x18\x07 \x01(\t\x12\x14\n\x0c\x66irmware_rev\x18\x08 \x01(\t\x12\x14\n\x0csoftware_rev\x18\t \x01(\t\x12\x12\n\nserial_num\x18\n \x01(\t\x12\x10\n\x08mfg_name\x18\x0b \x01(\t\x12\x12\n\nmodel_name\x18\x0c \x01(\t\x12\r\n\x05\x61lias\x18\r \x01(\t\x12\x10\n\x08\x61sset_id\x18\x0e \x01(\t\x12\x0e\n\x06is_fru\x18\x0f \x01(\x08\x12,\n\x08mfg_date\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\x03uri\x18\x11 \x01(\x0b\x32\x08.dmi.Uri\x12\x17\n\x04uuid\x18\x12 \x01(\x0b\x32\t.dmi.Uuid\x12\"\n\x05state\x18\x13 \x01(\x0b\x32\x13.dmi.ComponentState\x12-\n\x0bsensor_data\x18\x14 \x03(\x0b\x32\x18.dmi.ComponentSensorData\x12\x31\n\tport_attr\x18\x32 \x01(\x0b\x32\x1c.dmi.PortComponentAttributesH\x00\x12;\n\x0e\x63ontainer_attr\x18\x33 \x01(\x0b\x32!.dmi.ContainerComponentAttributesH\x00\x12/\n\x08psu_attr\x18\x34 \x01(\x0b\x32\x1b.dmi.PsuComponentAttributesH\x00\x12@\n\x10transceiver_attr\x18\x35 \x01(\x0b\x32$.dmi.TransceiverComponentsAttributesH\x00\x42\n\n\x08specific\"\x8a\x01\n\x08Hardware\x12/\n\x0blast_change\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x04root\x18\x02 \x01(\x0b\x32\x0e.dmi.Component\x12/\n\x0blast_booted\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xe9\x02\n\x13ModifiableComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x1e\n\x06parent\x18\x03 \x01(\x0b\x32\x0e.dmi.Component\x12\x16\n\x0eparent_rel_pos\x18\x04 \x01(\x05\x12\r\n\x05\x61lias\x18\x05 \x01(\t\x12\x10\n\x08\x61sset_id\x18\x06 \x01(\t\x12\x15\n\x03uri\x18\x07 \x01(\x0b\x32\x08.dmi.Uri\x12-\n\x0b\x61\x64min_state\x18\x08 \x01(\x0e\x32\x18.dmi.ComponentAdminState\x12\x37\n\tport_attr\x18\x32 \x01(\x0b\x32\".dmi.PortComponentChangeAttributesH\x00\x12=\n\x08trx_attr\x18\x33 \x01(\x0b\x32).dmi.TransceiverComponentChangeAttributesH\x00\x42\n\n\x08specific*\xb4\x03\n\rComponentType\x12\x1c\n\x18\x43OMPONENT_TYPE_UNDEFINED\x10\x00\x12\x1a\n\x16\x43OMPONENT_TYPE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMPONENT_TYPE_CHASSIS\x10\x02\x12\x1c\n\x18\x43OMPONENT_TYPE_BACKPLANE\x10\x03\x12\x1c\n\x18\x43OMPONENT_TYPE_CONTAINER\x10\x04\x12\x1f\n\x1b\x43OMPONENT_TYPE_POWER_SUPPLY\x10\x05\x12\x16\n\x12\x43OMPONENT_TYPE_FAN\x10\x06\x12\x19\n\x15\x43OMPONENT_TYPE_SENSOR\x10\x07\x12\x19\n\x15\x43OMPONENT_TYPE_MODULE\x10\x08\x12\x17\n\x13\x43OMPONENT_TYPE_PORT\x10\t\x12\x16\n\x12\x43OMPONENT_TYPE_CPU\x10\n\x12\x1a\n\x16\x43OMPONENT_TYPE_BATTERY\x10\x0b\x12\x1a\n\x16\x43OMPONENT_TYPE_STORAGE\x10\x0c\x12\x19\n\x15\x43OMPONENT_TYPE_MEMORY\x10\r\x12\x1e\n\x1a\x43OMPONENT_TYPE_TRANSCEIVER\x10\x0e*\xb3\x01\n\x13\x43omponentAdminState\x12\x1e\n\x1a\x43OMP_ADMIN_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ADMIN_STATE_UNKNOWN\x10\x01\x12\x1b\n\x17\x43OMP_ADMIN_STATE_LOCKED\x10\x02\x12\"\n\x1e\x43OMP_ADMIN_STATE_SHUTTING_DOWN\x10\x03\x12\x1d\n\x19\x43OMP_ADMIN_STATE_UNLOCKED\x10\x04*\xa8\x01\n\x12\x43omponentOperState\x12\x1d\n\x19\x43OMP_OPER_STATE_UNDEFINED\x10\x00\x12\x1b\n\x17\x43OMP_OPER_STATE_UNKNOWN\x10\x01\x12\x1c\n\x18\x43OMP_OPER_STATE_DISABLED\x10\x02\x12\x1b\n\x17\x43OMP_OPER_STATE_ENABLED\x10\x03\x12\x1b\n\x17\x43OMP_OPER_STATE_TESTING\x10\x04*\xa6\x01\n\x13\x43omponentUsageState\x12\x1e\n\x1a\x43OMP_USAGE_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_USAGE_STATE_UNKNOWN\x10\x01\x12\x19\n\x15\x43OMP_USAGE_STATE_IDLE\x10\x02\x12\x1b\n\x17\x43OMP_USAGE_STATE_ACTIVE\x10\x03\x12\x19\n\x15\x43OMP_USAGE_STATE_BUSY\x10\x04*\x8f\x02\n\x13\x43omponentAlarmState\x12\x1e\n\x1a\x43OMP_ALARM_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ALARM_STATE_UNKNOWN\x10\x01\x12!\n\x1d\x43OMP_ALARM_STATE_UNDER_REPAIR\x10\x02\x12\x1d\n\x19\x43OMP_ALARM_STATE_CRITICAL\x10\x03\x12\x1a\n\x16\x43OMP_ALARM_STATE_MAJOR\x10\x04\x12\x1a\n\x16\x43OMP_ALARM_STATE_MINOR\x10\x05\x12\x1c\n\x18\x43OMP_ALARM_STATE_WARNING\x10\x06\x12\"\n\x1e\x43OMP_ALARM_STATE_INDETERMINATE\x10\x07*\xbc\x01\n\x15\x43omponentStandbyState\x12 \n\x1c\x43OMP_STANDBY_STATE_UNDEFINED\x10\x00\x12\x1e\n\x1a\x43OMP_STANDBY_STATE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMP_STANDBY_STATE_HOT\x10\x02\x12\x1b\n\x17\x43OMP_STANDBY_STATE_COLD\x10\x03\x12(\n$COMP_STANDBY_STATE_PROVIDING_SERVICE\x10\x04*\x9d\x03\n\rDataValueType\x12\x18\n\x14VALUE_TYPE_UNDEFINED\x10\x00\x12\x14\n\x10VALUE_TYPE_OTHER\x10\x01\x12\x16\n\x12VALUE_TYPE_UNKNOWN\x10\x02\x12\x17\n\x13VALUE_TYPE_VOLTS_AC\x10\x03\x12\x17\n\x13VALUE_TYPE_VOLTS_DC\x10\x04\x12\x16\n\x12VALUE_TYPE_AMPERES\x10\x05\x12\x14\n\x10VALUE_TYPE_WATTS\x10\x06\x12\x14\n\x10VALUE_TYPE_HERTZ\x10\x07\x12\x16\n\x12VALUE_TYPE_CELSIUS\x10\x08\x12\x19\n\x15VALUE_TYPE_PERCENT_RH\x10\t\x12\x12\n\x0eVALUE_TYPE_RPM\x10\n\x12\x12\n\x0eVALUE_TYPE_CMM\x10\x0b\x12\x1a\n\x16VALUE_TYPE_TRUTH_VALUE\x10\x0c\x12\x16\n\x12VALUE_TYPE_PERCENT\x10\r\x12\x15\n\x11VALUE_TYPE_METERS\x10\x0e\x12\x14\n\x10VALUE_TYPE_BYTES\x10\x0f\x12\x12\n\x0eVALUE_TYPE_DBM\x10\x10*\xa4\x03\n\nValueScale\x12\x19\n\x15VALUE_SCALE_UNDEFINED\x10\x00\x12\x15\n\x11VALUE_SCALE_YOCTO\x10\x01\x12\x15\n\x11VALUE_SCALE_ZEPTO\x10\x02\x12\x14\n\x10VALUE_SCALE_ATTO\x10\x03\x12\x15\n\x11VALUE_SCALE_FEMTO\x10\x04\x12\x14\n\x10VALUE_SCALE_PICO\x10\x05\x12\x14\n\x10VALUE_SCALE_NANO\x10\x06\x12\x15\n\x11VALUE_SCALE_MICRO\x10\x07\x12\x15\n\x11VALUE_SCALE_MILLI\x10\x08\x12\x15\n\x11VALUE_SCALE_UNITS\x10\t\x12\x14\n\x10VALUE_SCALE_KILO\x10\n\x12\x14\n\x10VALUE_SCALE_MEGA\x10\x0b\x12\x14\n\x10VALUE_SCALE_GIGA\x10\x0c\x12\x14\n\x10VALUE_SCALE_TERA\x10\r\x12\x14\n\x10VALUE_SCALE_PETA\x10\x0e\x12\x13\n\x0fVALUE_SCALE_EXA\x10\x0f\x12\x15\n\x11VALUE_SCALE_ZETTA\x10\x10\x12\x15\n\x11VALUE_SCALE_YOTTA\x10\x11*\x82\x01\n\x0cSensorStatus\x12\x1b\n\x17SENSOR_STATUS_UNDEFINED\x10\x00\x12\x14\n\x10SENSOR_STATUS_OK\x10\x01\x12\x1d\n\x19SENSOR_STATUS_UNAVAILABLE\x10\x02\x12 \n\x1cSENSOR_STATUS_NONOPERATIONAL\x10\x03*\xa4\x01\n\x0fTransceiverType\x12\x12\n\x0eTYPE_UNDEFINED\x10\x00\x12\x0c\n\x08\x45THERNET\x10\x01\x12\x08\n\x04GPON\x10\x02\x12\t\n\x05XGPON\x10\x03\x12\n\n\x06XGSPON\x10\x04\x12\x08\n\x04\x43PON\x10\x05\x12\x0b\n\x07NG_PON2\x10\x06\x12\x08\n\x04\x45PON\x10\x07\x12\x15\n\x11\x43OMBO_GPON_XGSPON\x10\x08\x12\x16\n\x11TYPE_NOT_DETECTED\x10\xff\x01\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x64mi/hw.proto\x12\x03\x64mi\x1a\x1fgoogle/protobuf/timestamp.proto\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"%\n\nHardwareID\x12\x17\n\x04uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\x12\n\x03Uri\x12\x0b\n\x03uri\x18\x01 \x01(\t\"\xb5\x02\n\x0e\x43omponentState\x12\x36\n\x12state_last_changed\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\x0b\x61\x64min_state\x18\x02 \x01(\x0e\x32\x18.dmi.ComponentAdminState\x12+\n\noper_state\x18\x03 \x01(\x0e\x32\x17.dmi.ComponentOperState\x12-\n\x0busage_state\x18\x04 \x01(\x0e\x32\x18.dmi.ComponentUsageState\x12-\n\x0b\x61larm_state\x18\x05 \x01(\x0e\x32\x18.dmi.ComponentAlarmState\x12\x31\n\rstandby_state\x18\x06 \x01(\x0e\x32\x1a.dmi.ComponentStandbyState\"\x90\x02\n\x13\x43omponentSensorData\x12\r\n\x05value\x18\x01 \x01(\x05\x12 \n\x04type\x18\x02 \x01(\x0e\x32\x12.dmi.DataValueType\x12\x1e\n\x05scale\x18\x03 \x01(\x0e\x32\x0f.dmi.ValueScale\x12\x11\n\tprecision\x18\x04 \x01(\x05\x12!\n\x06status\x18\x05 \x01(\x0e\x32\x11.dmi.SensorStatus\x12\x15\n\runits_display\x18\x06 \x01(\t\x12-\n\ttimestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11value_update_rate\x18\x08 \x01(\r\x12\x11\n\tdata_type\x18\t \x01(\t\"\xe1\x05\n\x17PortComponentAttributes\x12\x42\n\x0e\x63onnector_type\x18\x01 \x01(\x0e\x32*.dmi.PortComponentAttributes.ConnectorType\x12\x31\n\x05speed\x18\x02 \x01(\x0e\x32\".dmi.PortComponentAttributes.Speed\x12\x37\n\x08protocol\x18\x03 \x01(\x0e\x32%.dmi.PortComponentAttributes.Protocol\x12\x16\n\x0ephysical_label\x18\x04 \x01(\t\x12\x15\n\rmapping_label\x18\x05 \x01(\t\x12\'\n\rpon_id_config\x18\x06 \x01(\x0b\x32\x10.dmi.PonIdConfig\x12\x1d\n\x15speed_autonegotiation\x18\x07 \x01(\x08\"p\n\rConnectorType\x12\x1c\n\x18\x43ONNECTOR_TYPE_UNDEFINED\x10\x00\x12\x08\n\x04RJ45\x10\x01\x12\x0c\n\x08\x46IBER_LC\x10\x02\x12\x0f\n\x0b\x46IBER_SC_PC\x10\x03\x12\r\n\tFIBER_MPO\x10\x04\x12\t\n\x05RS232\x10\x05\"\xae\x01\n\x05Speed\x12\x13\n\x0fSPEED_UNDEFINED\x10\x00\x12\x0b\n\x07\x44YNAMIC\x10\x01\x12\r\n\tGIGABIT_1\x10\x02\x12\x0e\n\nGIGABIT_10\x10\x03\x12\x0e\n\nGIGABIT_25\x10\x04\x12\x0e\n\nGIGABIT_40\x10\x05\x12\x0f\n\x0bGIGABIT_100\x10\x06\x12\x0f\n\x0bGIGABIT_400\x10\x07\x12\x10\n\x0cMEGABIT_2500\x10\x08\x12\x10\n\x0cMEGABIT_1250\x10\t\"|\n\x08Protocol\x12\x16\n\x12PROTOCOL_UNDEFINED\x10\x00\x12\x0c\n\x08\x45THERNET\x10\x01\x12\x08\n\x04GPON\x10\x02\x12\t\n\x05XGPON\x10\x03\x12\n\n\x06XGSPON\x10\x04\x12\t\n\x05GFAST\x10\x05\x12\n\n\x06SERIAL\x10\x06\x12\x08\n\x04\x45PON\x10\x07\x12\x08\n\x04\x42ITS\x10\x08\"H\n\x1dPortComponentChangeAttributes\x12\'\n\rpon_id_config\x18\x01 \x01(\x0b\x32\x10.dmi.PonIdConfig\"P\n$TransceiverComponentChangeAttributes\x12(\n\ntrans_type\x18\x01 \x01(\x0e\x32\x14.dmi.TransceiverType\"B\n\x0bPonIdConfig\x12\x0e\n\x06pon_id\x18\x01 \x01(\x0c\x12#\n\x1bpon_id_transmit_periodicity\x18\x02 \x01(\r\"6\n\x1c\x43ontainerComponentAttributes\x12\x16\n\x0ephysical_label\x18\x01 \x01(\t\"\xb3\x01\n\x16PsuComponentAttributes\x12G\n\x11supported_voltage\x18\x01 \x01(\x0e\x32,.dmi.PsuComponentAttributes.SupportedVoltage\"P\n\x10SupportedVoltage\x12\x1f\n\x1bSUPPORTED_VOLTAGE_UNDEFINED\x10\x00\x12\x07\n\x03V48\x10\x01\x12\x08\n\x04V230\x10\x02\x12\x08\n\x04V115\x10\x03\"\xab\x04\n\x1fTransceiverComponentsAttributes\x12\x44\n\x0b\x66orm_factor\x18\x01 \x01(\x0e\x32/.dmi.TransceiverComponentsAttributes.FormFactor\x12(\n\ntrans_type\x18\x02 \x01(\x0e\x32\x14.dmi.TransceiverType\x12\x14\n\x0cmax_distance\x18\x03 \x01(\r\x12+\n\x12max_distance_scale\x18\x04 \x01(\x0e\x32\x0f.dmi.ValueScale\x12\x15\n\rrx_wavelength\x18\x05 \x03(\r\x12\x15\n\rtx_wavelength\x18\x06 \x03(\r\x12)\n\x10wavelength_scale\x18\x07 \x01(\x0e\x32\x0f.dmi.ValueScale\x12\x10\n\x08tx_power\x18\x08 \x03(\x05\x12\'\n\x0etx_power_scale\x18\t \x01(\x0e\x32\x0f.dmi.ValueScale\"\xc0\x01\n\nFormFactor\x12\x17\n\x13\x46ORM_FACTOR_UNKNOWN\x10\x00\x12\x08\n\x04QSFP\x10\x01\x12\r\n\tQSFP_PLUS\x10\x02\x12\n\n\x06QSFP28\x10\x03\x12\x07\n\x03SFP\x10\x04\x12\x0c\n\x08SFP_PLUS\x10\x05\x12\x07\n\x03XFP\x10\x06\x12\x08\n\x04\x43\x46P4\x10\x07\x12\x08\n\x04\x43\x46P2\x10\x08\x12\x08\n\x04\x43PAK\x10\t\x12\x06\n\x02X2\x10\n\x12\t\n\x05OTHER\x10\x0b\x12\x07\n\x03\x43\x46P\x10\x0c\x12\x0c\n\x08\x43\x46P2_ACO\x10\r\x12\x0c\n\x08\x43\x46P2_DCO\x10\x0e\"\xe8\x05\n\tComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0e\n\x06parent\x18\x04 \x01(\t\x12\x16\n\x0eparent_rel_pos\x18\x05 \x01(\x05\x12 \n\x08\x63hildren\x18\x06 \x03(\x0b\x32\x0e.dmi.Component\x12\x14\n\x0chardware_rev\x18\x07 \x01(\t\x12\x14\n\x0c\x66irmware_rev\x18\x08 \x01(\t\x12\x14\n\x0csoftware_rev\x18\t \x01(\t\x12\x12\n\nserial_num\x18\n \x01(\t\x12\x10\n\x08mfg_name\x18\x0b \x01(\t\x12\x12\n\nmodel_name\x18\x0c \x01(\t\x12\r\n\x05\x61lias\x18\r \x01(\t\x12\x10\n\x08\x61sset_id\x18\x0e \x01(\t\x12\x0e\n\x06is_fru\x18\x0f \x01(\x08\x12,\n\x08mfg_date\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\x03uri\x18\x11 \x01(\x0b\x32\x08.dmi.Uri\x12\x17\n\x04uuid\x18\x12 \x01(\x0b\x32\t.dmi.Uuid\x12\"\n\x05state\x18\x13 \x01(\x0b\x32\x13.dmi.ComponentState\x12-\n\x0bsensor_data\x18\x14 \x03(\x0b\x32\x18.dmi.ComponentSensorData\x12\x31\n\tport_attr\x18\x32 \x01(\x0b\x32\x1c.dmi.PortComponentAttributesH\x00\x12;\n\x0e\x63ontainer_attr\x18\x33 \x01(\x0b\x32!.dmi.ContainerComponentAttributesH\x00\x12/\n\x08psu_attr\x18\x34 \x01(\x0b\x32\x1b.dmi.PsuComponentAttributesH\x00\x12@\n\x10transceiver_attr\x18\x35 \x01(\x0b\x32$.dmi.TransceiverComponentsAttributesH\x00\x42\n\n\x08specific\"\x8a\x01\n\x08Hardware\x12/\n\x0blast_change\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x04root\x18\x02 \x01(\x0b\x32\x0e.dmi.Component\x12/\n\x0blast_booted\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xe9\x02\n\x13ModifiableComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x1e\n\x06parent\x18\x03 \x01(\x0b\x32\x0e.dmi.Component\x12\x16\n\x0eparent_rel_pos\x18\x04 \x01(\x05\x12\r\n\x05\x61lias\x18\x05 \x01(\t\x12\x10\n\x08\x61sset_id\x18\x06 \x01(\t\x12\x15\n\x03uri\x18\x07 \x01(\x0b\x32\x08.dmi.Uri\x12-\n\x0b\x61\x64min_state\x18\x08 \x01(\x0e\x32\x18.dmi.ComponentAdminState\x12\x37\n\tport_attr\x18\x32 \x01(\x0b\x32\".dmi.PortComponentChangeAttributesH\x00\x12=\n\x08trx_attr\x18\x33 \x01(\x0b\x32).dmi.TransceiverComponentChangeAttributesH\x00\x42\n\n\x08specific*\xb4\x03\n\rComponentType\x12\x1c\n\x18\x43OMPONENT_TYPE_UNDEFINED\x10\x00\x12\x1a\n\x16\x43OMPONENT_TYPE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMPONENT_TYPE_CHASSIS\x10\x02\x12\x1c\n\x18\x43OMPONENT_TYPE_BACKPLANE\x10\x03\x12\x1c\n\x18\x43OMPONENT_TYPE_CONTAINER\x10\x04\x12\x1f\n\x1b\x43OMPONENT_TYPE_POWER_SUPPLY\x10\x05\x12\x16\n\x12\x43OMPONENT_TYPE_FAN\x10\x06\x12\x19\n\x15\x43OMPONENT_TYPE_SENSOR\x10\x07\x12\x19\n\x15\x43OMPONENT_TYPE_MODULE\x10\x08\x12\x17\n\x13\x43OMPONENT_TYPE_PORT\x10\t\x12\x16\n\x12\x43OMPONENT_TYPE_CPU\x10\n\x12\x1a\n\x16\x43OMPONENT_TYPE_BATTERY\x10\x0b\x12\x1a\n\x16\x43OMPONENT_TYPE_STORAGE\x10\x0c\x12\x19\n\x15\x43OMPONENT_TYPE_MEMORY\x10\r\x12\x1e\n\x1a\x43OMPONENT_TYPE_TRANSCEIVER\x10\x0e*\xb3\x01\n\x13\x43omponentAdminState\x12\x1e\n\x1a\x43OMP_ADMIN_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ADMIN_STATE_UNKNOWN\x10\x01\x12\x1b\n\x17\x43OMP_ADMIN_STATE_LOCKED\x10\x02\x12\"\n\x1e\x43OMP_ADMIN_STATE_SHUTTING_DOWN\x10\x03\x12\x1d\n\x19\x43OMP_ADMIN_STATE_UNLOCKED\x10\x04*\xa8\x01\n\x12\x43omponentOperState\x12\x1d\n\x19\x43OMP_OPER_STATE_UNDEFINED\x10\x00\x12\x1b\n\x17\x43OMP_OPER_STATE_UNKNOWN\x10\x01\x12\x1c\n\x18\x43OMP_OPER_STATE_DISABLED\x10\x02\x12\x1b\n\x17\x43OMP_OPER_STATE_ENABLED\x10\x03\x12\x1b\n\x17\x43OMP_OPER_STATE_TESTING\x10\x04*\xa6\x01\n\x13\x43omponentUsageState\x12\x1e\n\x1a\x43OMP_USAGE_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_USAGE_STATE_UNKNOWN\x10\x01\x12\x19\n\x15\x43OMP_USAGE_STATE_IDLE\x10\x02\x12\x1b\n\x17\x43OMP_USAGE_STATE_ACTIVE\x10\x03\x12\x19\n\x15\x43OMP_USAGE_STATE_BUSY\x10\x04*\x8f\x02\n\x13\x43omponentAlarmState\x12\x1e\n\x1a\x43OMP_ALARM_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ALARM_STATE_UNKNOWN\x10\x01\x12!\n\x1d\x43OMP_ALARM_STATE_UNDER_REPAIR\x10\x02\x12\x1d\n\x19\x43OMP_ALARM_STATE_CRITICAL\x10\x03\x12\x1a\n\x16\x43OMP_ALARM_STATE_MAJOR\x10\x04\x12\x1a\n\x16\x43OMP_ALARM_STATE_MINOR\x10\x05\x12\x1c\n\x18\x43OMP_ALARM_STATE_WARNING\x10\x06\x12\"\n\x1e\x43OMP_ALARM_STATE_INDETERMINATE\x10\x07*\xbc\x01\n\x15\x43omponentStandbyState\x12 \n\x1c\x43OMP_STANDBY_STATE_UNDEFINED\x10\x00\x12\x1e\n\x1a\x43OMP_STANDBY_STATE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMP_STANDBY_STATE_HOT\x10\x02\x12\x1b\n\x17\x43OMP_STANDBY_STATE_COLD\x10\x03\x12(\n$COMP_STANDBY_STATE_PROVIDING_SERVICE\x10\x04*\x9d\x03\n\rDataValueType\x12\x18\n\x14VALUE_TYPE_UNDEFINED\x10\x00\x12\x14\n\x10VALUE_TYPE_OTHER\x10\x01\x12\x16\n\x12VALUE_TYPE_UNKNOWN\x10\x02\x12\x17\n\x13VALUE_TYPE_VOLTS_AC\x10\x03\x12\x17\n\x13VALUE_TYPE_VOLTS_DC\x10\x04\x12\x16\n\x12VALUE_TYPE_AMPERES\x10\x05\x12\x14\n\x10VALUE_TYPE_WATTS\x10\x06\x12\x14\n\x10VALUE_TYPE_HERTZ\x10\x07\x12\x16\n\x12VALUE_TYPE_CELSIUS\x10\x08\x12\x19\n\x15VALUE_TYPE_PERCENT_RH\x10\t\x12\x12\n\x0eVALUE_TYPE_RPM\x10\n\x12\x12\n\x0eVALUE_TYPE_CMM\x10\x0b\x12\x1a\n\x16VALUE_TYPE_TRUTH_VALUE\x10\x0c\x12\x16\n\x12VALUE_TYPE_PERCENT\x10\r\x12\x15\n\x11VALUE_TYPE_METERS\x10\x0e\x12\x14\n\x10VALUE_TYPE_BYTES\x10\x0f\x12\x12\n\x0eVALUE_TYPE_DBM\x10\x10*\xa4\x03\n\nValueScale\x12\x19\n\x15VALUE_SCALE_UNDEFINED\x10\x00\x12\x15\n\x11VALUE_SCALE_YOCTO\x10\x01\x12\x15\n\x11VALUE_SCALE_ZEPTO\x10\x02\x12\x14\n\x10VALUE_SCALE_ATTO\x10\x03\x12\x15\n\x11VALUE_SCALE_FEMTO\x10\x04\x12\x14\n\x10VALUE_SCALE_PICO\x10\x05\x12\x14\n\x10VALUE_SCALE_NANO\x10\x06\x12\x15\n\x11VALUE_SCALE_MICRO\x10\x07\x12\x15\n\x11VALUE_SCALE_MILLI\x10\x08\x12\x15\n\x11VALUE_SCALE_UNITS\x10\t\x12\x14\n\x10VALUE_SCALE_KILO\x10\n\x12\x14\n\x10VALUE_SCALE_MEGA\x10\x0b\x12\x14\n\x10VALUE_SCALE_GIGA\x10\x0c\x12\x14\n\x10VALUE_SCALE_TERA\x10\r\x12\x14\n\x10VALUE_SCALE_PETA\x10\x0e\x12\x13\n\x0fVALUE_SCALE_EXA\x10\x0f\x12\x15\n\x11VALUE_SCALE_ZETTA\x10\x10\x12\x15\n\x11VALUE_SCALE_YOTTA\x10\x11*\x82\x01\n\x0cSensorStatus\x12\x1b\n\x17SENSOR_STATUS_UNDEFINED\x10\x00\x12\x14\n\x10SENSOR_STATUS_OK\x10\x01\x12\x1d\n\x19SENSOR_STATUS_UNAVAILABLE\x10\x02\x12 \n\x1cSENSOR_STATUS_NONOPERATIONAL\x10\x03*\xa4\x01\n\x0fTransceiverType\x12\x12\n\x0eTYPE_UNDEFINED\x10\x00\x12\x0c\n\x08\x45THERNET\x10\x01\x12\x08\n\x04GPON\x10\x02\x12\t\n\x05XGPON\x10\x03\x12\n\n\x06XGSPON\x10\x04\x12\x08\n\x04\x43PON\x10\x05\x12\x0b\n\x07NG_PON2\x10\x06\x12\x08\n\x04\x45PON\x10\x07\x12\x15\n\x11\x43OMBO_GPON_XGSPON\x10\x08\x12\x16\n\x11TYPE_NOT_DETECTED\x10\xff\x01\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3')
 
 _COMPONENTTYPE = DESCRIPTOR.enum_types_by_name['ComponentType']
 ComponentType = enum_type_wrapper.EnumTypeWrapper(_COMPONENTTYPE)
@@ -261,26 +261,26 @@
 
   DESCRIPTOR._options = None
   DESCRIPTOR._serialized_options = b'Z9github.com/opencord/device-management-interface/v3/go/dmi'
-  _COMPONENTTYPE._serialized_start=3676
-  _COMPONENTTYPE._serialized_end=4112
-  _COMPONENTADMINSTATE._serialized_start=4115
-  _COMPONENTADMINSTATE._serialized_end=4294
-  _COMPONENTOPERSTATE._serialized_start=4297
-  _COMPONENTOPERSTATE._serialized_end=4465
-  _COMPONENTUSAGESTATE._serialized_start=4468
-  _COMPONENTUSAGESTATE._serialized_end=4634
-  _COMPONENTALARMSTATE._serialized_start=4637
-  _COMPONENTALARMSTATE._serialized_end=4908
-  _COMPONENTSTANDBYSTATE._serialized_start=4911
-  _COMPONENTSTANDBYSTATE._serialized_end=5099
-  _DATAVALUETYPE._serialized_start=5102
-  _DATAVALUETYPE._serialized_end=5515
-  _VALUESCALE._serialized_start=5518
-  _VALUESCALE._serialized_end=5938
-  _SENSORSTATUS._serialized_start=5941
-  _SENSORSTATUS._serialized_end=6071
-  _TRANSCEIVERTYPE._serialized_start=6074
-  _TRANSCEIVERTYPE._serialized_end=6238
+  _COMPONENTTYPE._serialized_start=3735
+  _COMPONENTTYPE._serialized_end=4171
+  _COMPONENTADMINSTATE._serialized_start=4174
+  _COMPONENTADMINSTATE._serialized_end=4353
+  _COMPONENTOPERSTATE._serialized_start=4356
+  _COMPONENTOPERSTATE._serialized_end=4524
+  _COMPONENTUSAGESTATE._serialized_start=4527
+  _COMPONENTUSAGESTATE._serialized_end=4693
+  _COMPONENTALARMSTATE._serialized_start=4696
+  _COMPONENTALARMSTATE._serialized_end=4967
+  _COMPONENTSTANDBYSTATE._serialized_start=4970
+  _COMPONENTSTANDBYSTATE._serialized_end=5158
+  _DATAVALUETYPE._serialized_start=5161
+  _DATAVALUETYPE._serialized_end=5574
+  _VALUESCALE._serialized_start=5577
+  _VALUESCALE._serialized_end=5997
+  _SENSORSTATUS._serialized_start=6000
+  _SENSORSTATUS._serialized_end=6130
+  _TRANSCEIVERTYPE._serialized_start=6133
+  _TRANSCEIVERTYPE._serialized_end=6297
   _UUID._serialized_start=54
   _UUID._serialized_end=74
   _HARDWAREID._serialized_start=76
@@ -312,13 +312,13 @@
   _PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE._serialized_start=1842
   _PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE._serialized_end=1922
   _TRANSCEIVERCOMPONENTSATTRIBUTES._serialized_start=1925
-  _TRANSCEIVERCOMPONENTSATTRIBUTES._serialized_end=2421
-  _TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR._serialized_start=2229
-  _TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR._serialized_end=2421
-  _COMPONENT._serialized_start=2424
-  _COMPONENT._serialized_end=3168
-  _HARDWARE._serialized_start=3171
-  _HARDWARE._serialized_end=3309
-  _MODIFIABLECOMPONENT._serialized_start=3312
-  _MODIFIABLECOMPONENT._serialized_end=3673
+  _TRANSCEIVERCOMPONENTSATTRIBUTES._serialized_end=2480
+  _TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR._serialized_start=2288
+  _TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR._serialized_end=2480
+  _COMPONENT._serialized_start=2483
+  _COMPONENT._serialized_end=3227
+  _HARDWARE._serialized_start=3230
+  _HARDWARE._serialized_end=3368
+  _MODIFIABLECOMPONENT._serialized_start=3371
+  _MODIFIABLECOMPONENT._serialized_end=3732
 # @@protoc_insertion_point(module_scope)