diff --git a/board/NUCLEO_STM32L496ZG/KEIL/hello_world/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf new file mode 100644 index 00000000..979440d7 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf @@ -0,0 +1,77 @@ +// File: STM32L4x5_4x6.dbgconf +// Version: 1.0.0 +// Note: refer to STM32L4x5 and STM32L4x6 Reference manual (RM0351) +// refer to STM32L475xx STM32L476xx STM32L486xx STM32L496xx STM32L4A6xx datasheets + +// <<< Use Configuration Wizard in Context Menu >>> + +// Debug MCU configuration register (DBGMCU_CR) +// DBG_STANDBY Debug Standby mode +// DBG_STOP Debug Stop mode +// DBG_SLEEP Debug Sleep mode +// +DbgMCU_CR = 0x00000007; + +// Debug MCU APB1 freeze register1 (DBGMCU_APB1FZR1) +// Reserved bits must be kept at reset value +// DBG_LPTIM1_STOP LPTIM1 counter stopped when core is halted +// DBG_CAN2_STOP bxCAN2 stopped when core is halted +// DBG_CAN1_STOP bxCAN1 stopped when core is halted +// DBG_I2C3_STOP I2C3 SMBUS timeout counter stopped when core is halted +// DBG_I2C2_STOP I2C2 SMBUS timeout counter stopped when core is halted +// DBG_I2C1_STOP I2C1 SMBUS timeout counter stopped when core is halted +// DBG_IWDG_STOP Independent watchdog counter stopped when core is halted +// DBG_WWDG_STOP Window watchdog counter stopped when core is halted +// DBG_RTC_STOP RTC counter stopped when core is halted +// DBG_TIM7_STOP TIM7 counter stopped when core is halted +// DBG_TIM6_STOP TIM6 counter stopped when core is halted +// DBG_TIM5_STOP TIM5 counter stopped when core is halted +// DBG_TIM4_STOP TIM4 counter stopped when core is halted +// DBG_TIM3_STOP TIM3 counter stopped when core is halted +// DBG_TIM2_STOP TIM2 counter stopped when core is halted +// +DbgMCU_APB1_Fz1 = 0x00000000; + +// Debug MCU APB1 freeze register 2 (DBGMCU_APB1FZR2) +// Reserved bits must be kept at reset value +// DBG_LPTIM2_STOP LPTIM2 counter stopped when core is halted +// DBG_I2C4_STOP I2C4 SMBUS timeout counter stopped when core is halted +// +DbgMCU_APB1_Fz2 = 0x00000000; + +// Debug MCU APB2 freeze register (DBGMCU_APB2FZR) +// Reserved bits must be kept at reset value +// DBG_TIM17_STOP TIM17 counter stopped when core is halted +// DBG_TIM16_STOP TIM16 counter stopped when core is halted +// DBG_TIM15_STOP TIM15 counter stopped when core is halted +// DBG_TIM8_STOP TIM8 counter stopped when core is halted +// DBG_TIM1_STOP TIM1 counter stopped when core is halted +// +DbgMCU_APB2_Fz = 0x00000000; + +// TPIU Pin Routing (TRACECLK fixed on Pin PE2) +// TRACECLK: Pin PE2 +// TRACED0 +// ETM Trace Data 0 +// <0x00040003=> Pin PE3 +// <0x00020001=> Pin PC1 +// TRACED1 +// ETM Trace Data 1 +// <0x00040004=> Pin PE4 +// <0x0002000A=> Pin PC10 +// TRACED2 +// ETM Trace Data 2 +// <0x00040005=> Pin PE5 +// <0x00030002=> Pin PD2 +// TRACED3 +// ETM Trace Data 3 +// <0x00040006=> Pin PE6 +// <0x0002000C=> Pin PC12 +// +TraceClk_Pin = 0x00040002; +TraceD0_Pin = 0x00040003; +TraceD1_Pin = 0x00040004; +TraceD2_Pin = 0x00040005; +TraceD3_Pin = 0x00040006; + +// <<< end of configuration section >>> diff --git a/board/NUCLEO_STM32L496ZG/KEIL/hello_world/RTE/_TencentOS_tiny/RTE_Components.h b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/RTE/_TencentOS_tiny/RTE_Components.h new file mode 100644 index 00000000..248f644f --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/RTE/_TencentOS_tiny/RTE_Components.h @@ -0,0 +1,21 @@ + +/* + * Auto generated Run-Time-Environment Configuration File + * *** Do not modify ! *** + * + * Project: 'TencentOS_tiny' + * Target: 'TencentOS_tiny' + */ + +#ifndef RTE_COMPONENTS_H +#define RTE_COMPONENTS_H + + +/* + * Define the Device Header File: + */ +#define CMSIS_device_header "stm32l4xx.h" + + + +#endif /* RTE_COMPONENTS_H */ diff --git a/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny.uvguix.CoCo b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny.uvguix.CoCo new file mode 100644 index 00000000..4883911c --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny.uvguix.CoCo @@ -0,0 +1,1878 @@ + + + + -6.1 + +
### uVision Project, (C) Keil Software
+ + + + + + + + + + 38003 + Registers + 153 154 + + + 346 + Code Coverage + 710 160 + + + 204 + Performance Analyzer + 870 + + + + + + 35141 + Event Statistics + + 200 50 700 + + + 1506 + Symbols + + 60 60 60 + + + 1936 + Watch 1 + + 200 133 133 + + + 1937 + Watch 2 + + 200 133 133 + + + 1935 + Call Stack + Locals + + 200 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + 466 + Source Browser + 500 + 300 + + + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -32000 + -32000 + + + -1 + -1 + + + 198 + 2112 + 3192 + 1530 + + + + 0 + + 276 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000050443A5C436F64655C50726F6A6563745C74656E63656E746F735C54656E63656E744F532D74696E795C626F6172645C4E55434C454F5F53544D33324C3439365A475C4253505C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000B109000085FEFFFFA80C0000C8030000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B80000004F00000028040000CB000000 + + + 16 + B80000006600000028040000E2000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003A01000079050000 + + + 16 + 560000006D0000000A01000020010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003A01000079050000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003A01000079050000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003A01000079050000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000AA050000380400002E070000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000CB010000280400005B020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000AD0500009D05000015070000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003A010000B9010000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000AD0500009D05000015070000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000AD0500009D05000015070000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000AD0500009D05000015070000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000AD0500009D05000015070000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 966 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000002E0700003804000041070000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 476 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFB8000000CB00000028040000CF000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000B80000006600000028040000E2000000B80000004F00000028040000CB0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF700300004F00000074030000DB010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000740300006600000028040000F2010000740300004F00000028040000DB01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF3D0100004F00000041010000920500000100000002000010040000000100000050FFFFFFE5040000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000003D010000E9010000000000004F0000003D010000920500000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000C701000028040000CB01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000E2010000280400007202000000000000CB010000280400005B02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF14020000CB010000180200005B02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000009205000038040000960500000100000001000010040000000100000066FDFFFF7A000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000000000ED010000A0050000850300000000000096050000380400002E0700000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2915 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001243414D4552415F4445564943455F496E6974960000000000000013001243414D4552415F4445564943455F496E697419424F4152445F43616D6572615F4932435F53656E64534343420E48414C5F534452414D5F496E69740B44454255475F55534152540F4750494F5F4146375F5553415254320E4750494F5F4146375F5541525435134C43445F446973706C6179537472696E674174154C43445F446973706C6179537472696E674C696E650F4C43445F53656C6563744C617965720E4750494F5F414631345F4C544443065F5F6D61696E0A53797374656D496E6974145F5F48414C5F44434D495F454E41424C455F49540477656C6C146B5F6370755F6379636C655F7065725F7469636B056B5F6370750262700E50656E6453565F48616E646C65721253544D6963726F656C656374726F6E69637300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 988 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E54656E63656E744F535F74696E79960000000000000001000E54656E63656E744F535F74696E79000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1440 + 960 + + + + + + 1 + 0 + + 100 + 0 + + ..\..\BSP\Src\main.c + 15 + 1 + 11 + 1 + + 0 + + + + +
diff --git a/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny.uvoptx b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny.uvoptx index 0e380e21..98d67cce 100644 --- a/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny.uvoptx +++ b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny.uvoptx @@ -12,7 +12,7 @@ *.lib *.txt; *.h; *.inc *.plm - *.cpp + *.cpp;*.cc 0 @@ -26,7 +26,7 @@ 0x4 ARM-ADS - 80000000 + 8000000 1 1 @@ -93,7 +93,7 @@ 1 1 1 - 1 + 0 1 1 1 @@ -119,72 +119,28 @@ 0 - ARMRTXEVENTFLAGS - -L70 -Z18 -C0 -M0 -T1 - - - 0 - DLGTARM - (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) - - - 0 - ARMDBGFLAGS - - - - 0 - DLGUARM - (105=-1,-1,-1,-1,0) + ST-LINKIII-KEIL_SWO + -U0667FF343339415043053749 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32L496ZGTx$CMSIS\Flash\STM32L4xx_1024.FLM) 0 UL2CM3 UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L496ZGTx$CMSIS\Flash\STM32L4xx_1024.FLM)) - - 0 - ST-LINKIII-KEIL_SWO - -U0674FF525750877267153432 -O2254 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32L496ZGTx$CMSIS\Flash\STM32L4xx_1024.FLM) - - - - 0 - 0 - 573 - 1 -
134226432
- 0 - 0 - 0 - 0 - 0 - 1 - ..\..\..\..\kernel\core\tos_mmheap.c - - \\TencentOS_tiny\../../../../kernel/core/tos_mmheap.c\573 -
-
- - - 0 - 1 - k_mmheap_default_pool - - + 0 0 - 1 - 1 + 0 + 0 0 0 0 0 - 1 + 0 0 0 0 @@ -247,7 +203,7 @@ Application/User - 1 + 0 0 0 0 @@ -258,8 +214,8 @@ 0 0 0 - ..\..\BSP\Src\gpio.c - gpio.c + ..\..\BSP\Src\main.c + main.c 0 0 @@ -270,8 +226,8 @@ 0 0 0 - ..\..\BSP\Src\main.c - main.c + ..\..\BSP\Src\gpio.c + gpio.c 0 0 @@ -335,6 +291,66 @@ 0 0 + + 2 + 9 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\dcmi.c + dcmi.c + 0 + 0 + + + 2 + 10 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\dma.c + dma.c + 0 + 0 + + + 2 + 11 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\i2c.c + i2c.c + 0 + 0 + + + 2 + 12 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\spi.c + spi.c + 0 + 0 + + + 2 + 13 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\tim.c + tim.c + 0 + 0 + @@ -345,7 +361,7 @@ 0 3 - 9 + 14 1 0 0 @@ -357,7 +373,7 @@ 3 - 10 + 15 1 0 0 @@ -369,7 +385,7 @@ 3 - 11 + 16 1 0 0 @@ -381,7 +397,7 @@ 3 - 12 + 17 1 0 0 @@ -393,7 +409,7 @@ 3 - 13 + 18 1 0 0 @@ -405,7 +421,7 @@ 3 - 14 + 19 1 0 0 @@ -417,7 +433,7 @@ 3 - 15 + 20 1 0 0 @@ -429,7 +445,7 @@ 3 - 16 + 21 1 0 0 @@ -441,7 +457,7 @@ 3 - 17 + 22 1 0 0 @@ -453,7 +469,7 @@ 3 - 18 + 23 1 0 0 @@ -465,7 +481,7 @@ 3 - 19 + 24 1 0 0 @@ -477,7 +493,7 @@ 3 - 20 + 25 1 0 0 @@ -489,7 +505,7 @@ 3 - 21 + 26 1 0 0 @@ -501,7 +517,7 @@ 3 - 22 + 27 1 0 0 @@ -513,7 +529,7 @@ 3 - 23 + 28 1 0 0 @@ -525,7 +541,7 @@ 3 - 24 + 29 1 0 0 @@ -537,7 +553,7 @@ 3 - 25 + 30 1 0 0 @@ -549,7 +565,7 @@ 3 - 26 + 31 1 0 0 @@ -561,7 +577,7 @@ 3 - 27 + 32 1 0 0 @@ -571,6 +587,42 @@ 0 0 + + 3 + 33 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dcmi.c + stm32l4xx_hal_dcmi.c + 0 + 0 + + + 3 + 34 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c + stm32l4xx_hal_spi.c + 0 + 0 + + + 3 + 35 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c + stm32l4xx_hal_spi_ex.c + 0 + 0 + @@ -581,7 +633,7 @@ 0 4 - 28 + 36 1 0 0 @@ -601,7 +653,7 @@ 0 5 - 29 + 37 1 0 0 @@ -613,7 +665,7 @@ 5 - 30 + 38 1 0 0 @@ -625,7 +677,7 @@ 5 - 31 + 39 2 0 0 @@ -645,7 +697,7 @@ 0 6 - 32 + 40 1 0 0 @@ -657,7 +709,7 @@ 6 - 33 + 41 1 0 0 @@ -669,7 +721,7 @@ 6 - 34 + 42 1 0 0 @@ -681,7 +733,7 @@ 6 - 35 + 43 1 0 0 @@ -693,7 +745,7 @@ 6 - 36 + 44 1 0 0 @@ -705,7 +757,7 @@ 6 - 37 + 45 1 0 0 @@ -717,7 +769,7 @@ 6 - 38 + 46 1 0 0 @@ -729,7 +781,7 @@ 6 - 39 + 47 1 0 0 @@ -741,7 +793,7 @@ 6 - 40 + 48 1 0 0 @@ -753,7 +805,7 @@ 6 - 41 + 49 1 0 0 @@ -765,7 +817,7 @@ 6 - 42 + 50 1 0 0 @@ -777,7 +829,7 @@ 6 - 43 + 51 1 0 0 @@ -789,7 +841,7 @@ 6 - 44 + 52 1 0 0 @@ -801,7 +853,7 @@ 6 - 45 + 53 1 0 0 @@ -813,7 +865,7 @@ 6 - 46 + 54 1 0 0 @@ -825,7 +877,7 @@ 6 - 47 + 55 1 0 0 @@ -837,7 +889,7 @@ 6 - 48 + 56 1 0 0 @@ -849,7 +901,7 @@ 6 - 49 + 57 1 0 0 @@ -861,7 +913,7 @@ 6 - 50 + 58 1 0 0 @@ -873,7 +925,7 @@ 6 - 51 + 59 1 0 0 @@ -885,7 +937,7 @@ 6 - 52 + 60 1 0 0 @@ -897,7 +949,7 @@ 6 - 53 + 61 1 0 0 @@ -909,7 +961,7 @@ 6 - 54 + 62 1 0 0 @@ -921,7 +973,7 @@ 6 - 55 + 63 1 0 0 @@ -941,7 +993,7 @@ 0 7 - 56 + 64 1 0 0 @@ -954,14 +1006,82 @@ - examples + hal 0 0 0 0 8 - 57 + 65 + 1 + 0 + 0 + 0 + ..\..\BSP\Hardware\Src\delay.c + delay.c + 0 + 0 + + + 8 + 66 + 1 + 0 + 0 + 0 + ..\..\BSP\Hardware\Src\lcd_2inch4.c + lcd_2inch4.c + 0 + 0 + + + 8 + 67 + 1 + 0 + 0 + 0 + ..\..\BSP\Hardware\Src\lcd_config.c + lcd_config.c + 0 + 0 + + + 8 + 68 + 1 + 0 + 0 + 0 + ..\..\BSP\Hardware\Src\ov2640.c + ov2640.c + 0 + 0 + + + 8 + 69 + 1 + 0 + 0 + 0 + ..\..\BSP\Hardware\Src\sccb.c + sccb.c + 0 + 0 + + + + + examples + 1 + 0 + 0 + 0 + + 9 + 70 1 0 0 diff --git a/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny.uvprojx b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny.uvprojx index 061d5924..177e44a3 100644 --- a/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny.uvprojx +++ b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny.uvprojx @@ -10,14 +10,14 @@ TencentOS_tiny 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::.\ARMCC - 0 + 6140000::V6.14::ARMCLANG + 1 STM32L496ZGTx STMicroelectronics - Keil.STM32L4xx_DFP.2.4.0 - http://www.keil.com/pack/ + Keil.STM32L4xx_DFP.2.5.0 + https://www.keil.com/pack/ IRAM(0x20000000-0x2004FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(8000000) FPU2 CPUTYPE("Cortex-M4") @@ -54,7 +54,7 @@ 0 1 1 - 0 + 1 1 0 @@ -137,7 +137,7 @@ 4107 1 - STLink\ST-LINKIII-KEIL_SWO.dll + BIN\UL2CM3.DLL @@ -322,14 +322,14 @@ 0 0 0 - 2 + 3 0 0 1 0 0 - 1 - 1 + 3 + 3 1 1 0 @@ -337,9 +337,9 @@ 0 - USE_HAL_DRIVER,STM32L496xx + USE_HAL_DRIVER,STM32L496xx,NUCLEO_STM32L496ZG - ..\..\BSP\Inc;..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Inc;..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Inc\Legacy;..\..\..\..\platform\vendor_bsp\st\CMSIS\Device\ST\STM32L4xx\Include;..\..\..\..\platform\vendor_bsp\st\CMSIS\Include;..\..\..\..\arch\arm\arm-v7m\common\include;..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc;..\..\..\..\kernel\core\include;..\..\..\..\kernel\pm\include;..\..\..\..\osal\cmsis_os;..\..\..\..\examples\hello_world;..\..\TOS_CONFIG;..\..\..\..\net\at\include;..\..\..\..\kernel\hal\include + ..\..\BSP\Inc;..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Inc;..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Inc\Legacy;..\..\..\..\platform\vendor_bsp\st\CMSIS\Device\ST\STM32L4xx\Include;..\..\..\..\platform\vendor_bsp\st\CMSIS\Include;..\..\..\..\arch\arm\arm-v7m\common\include;..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc;..\..\..\..\kernel\core\include;..\..\..\..\kernel\pm\include;..\..\..\..\osal\cmsis_os;..\..\..\..\examples\hello_world;..\..\TOS_CONFIG;..\..\..\..\net\at\include;..\..\..\..\kernel\hal\include;..\..\BSP\Hardware\Inc @@ -393,16 +393,16 @@ Application/User - - gpio.c - 1 - ..\..\BSP\Src\gpio.c - main.c 1 ..\..\BSP\Src\main.c + + gpio.c + 1 + ..\..\BSP\Src\gpio.c + stm32l4xx_hal_msp.c 1 @@ -428,6 +428,31 @@ 1 ..\..\BSP\Src\mcu_init.c + + dcmi.c + 1 + ..\..\BSP\Src\dcmi.c + + + dma.c + 1 + ..\..\BSP\Src\dma.c + + + i2c.c + 1 + ..\..\BSP\Src\i2c.c + + + spi.c + 1 + ..\..\BSP\Src\spi.c + + + tim.c + 1 + ..\..\BSP\Src\tim.c + @@ -528,6 +553,21 @@ 1 ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c + + stm32l4xx_hal_dcmi.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dcmi.c + + + stm32l4xx_hal_spi.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c + + + stm32l4xx_hal_spi_ex.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c + @@ -695,6 +735,36 @@ + + hal + + + delay.c + 1 + ..\..\BSP\Hardware\Src\delay.c + + + lcd_2inch4.c + 1 + ..\..\BSP\Hardware\Src\lcd_2inch4.c + + + lcd_config.c + 1 + ..\..\BSP\Hardware\Src\lcd_config.c + + + ov2640.c + 1 + ..\..\BSP\Hardware\Src\ov2640.c + + + sccb.c + 1 + ..\..\BSP\Hardware\Src\sccb.c + + + examples @@ -715,8 +785,8 @@ - - + + diff --git a/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny/TencentOS_tiny.build_log.htm b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny/TencentOS_tiny.build_log.htm new file mode 100644 index 00000000..fed9697c --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny/TencentOS_tiny.build_log.htm @@ -0,0 +1,127 @@ + + +
+

µVision Build Log

+

Tool Versions:

+IDE-Version: ¦ÌVision V5.30.0.0 +Copyright (C) 2020 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 2, 3, LIC=VGXG8-3EBEY-FWM2N-Y5VPW-1RV7D-LEXKU + +Tool Versions: +Toolchain: MDK-ARM Plus Version: 5.30.0.0 +Toolchain Path: D:\software\Keil\ARM\ARMCLANG\Bin +C Compiler: ArmClang.exe V6.14 +Assembler: Armasm.exe V6.14 +Linker/Locator: ArmLink.exe V6.14 +Library Manager: ArmAr.exe V6.14 +Hex Converter: FromElf.exe V6.14 +CPU DLL: SARMCM3.DLL V5.30.0.0 +Dialog DLL: DCM.DLL V1.17.3.0 +Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.7.0 +Dialog DLL: TCM.DLL V1.42.0.0 + +

Project:

+D:\Code\Project\tencentos\TencentOS-tiny\board\NUCLEO_STM32L496ZG\KEIL\hello_world\TencentOS_tiny.uvprojx +Project File Date: 09/08/2021 + +

Output:

+*** Using Compiler 'V6.14', folder: 'D:\software\Keil\ARM\ARMCLANG\Bin' +Build target 'TencentOS_tiny' +compiling gpio.c... +compiling sys.c... +compiling stm32l4xx_hal_msp.c... +compiling main.c... +compiling stm32l4xx_it.c... +compiling usart.c... +compiling mcu_init.c... +compiling dcmi.c... +compiling dma.c... +compiling tim.c... +compiling spi.c... +compiling i2c.c... +compiling stm32l4xx_hal_uart_ex.c... +compiling stm32l4xx_hal.c... +compiling stm32l4xx_hal_uart.c... +compiling stm32l4xx_hal_i2c_ex.c... +compiling stm32l4xx_hal_flash.c... +compiling stm32l4xx_hal_rcc.c... +compiling stm32l4xx_hal_rcc_ex.c... +compiling stm32l4xx_hal_flash_ex.c... +compiling stm32l4xx_hal_flash_ramfunc.c... +compiling stm32l4xx_hal_dma_ex.c... +compiling stm32l4xx_hal_i2c.c... +compiling stm32l4xx_hal_gpio.c... +compiling stm32l4xx_hal_dma.c... +compiling stm32l4xx_hal_pwr.c... +compiling stm32l4xx_hal_cortex.c... +compiling stm32l4xx_hal_pwr_ex.c... +compiling stm32l4xx_hal_exti.c... +compiling stm32l4xx_hal_dcmi.c... +compiling stm32l4xx_hal_spi_ex.c... +compiling stm32l4xx_hal_tim_ex.c... +compiling system_stm32l4xx.c... +compiling tos_cpu.c... +compiling stm32l4xx_hal_tim.c... +compiling tos_completion.c... +compiling stm32l4xx_hal_spi.c... +compiling port_c.c... +compiling tos_char_fifo.c... +compiling tos_binary_heap.c... +compiling tos_countdownlatch.c... +compiling tos_event.c... +compiling tos_global.c... +compiling tos_mmheap.c... +compiling tos_mail_queue.c... +compiling tos_message_queue.c... +compiling tos_mmblk.c... +compiling tos_mutex.c... +compiling tos_pend.c... +compiling tos_priority_mail_queue.c... +compiling tos_priority_message_queue.c... +compiling tos_robin.c... +compiling tos_ring_queue.c... +compiling tos_priority_queue.c... +compiling tos_sched.c... +compiling tos_sem.c... +compiling tos_sys.c... +compiling tos_tick.c... +compiling tos_time.c... +compiling tos_timer.c... +compiling delay.c... +compiling tos_task.c... +compiling cmsis_os.c... +compiling lcd_config.c... +compiling lcd_2inch4.c... +compiling hello_world.c... +compiling ov2640.c... +compiling sccb.c... +linking... +Program Size: Code=20332 RO-data=728 RW-data=56 ZI-data=45088 +FromELF: creating hex file... +"TencentOS_tiny\TencentOS_tiny.axf" - 0 Error(s), 0 Warning(s). + +

Software Packages used:

+ +Package Vendor: ARM + http://www.keil.com/pack/ARM.CMSIS.5.7.0.pack + ARM.CMSIS.5.7.0 + CMSIS (Cortex Microcontroller Software Interface Standard) + * Component: CORE Version: 5.4.0 + +Package Vendor: Keil + https://www.keil.com/pack/Keil.STM32L4xx_DFP.2.5.0.pack + Keil.STM32L4xx_DFP.2.5.0 + STMicroelectronics STM32L4 Series Device Support, Drivers and Examples + +

Collection of Component include folders:

+ .\RTE\_TencentOS_tiny + D:\software\Keil\ARM\CMSIS\5.7.0\CMSIS\Core\Include + D:\software\Keil\Keil\STM32L4xx_DFP\2.5.0\Drivers\CMSIS\Device\ST\STM32L4xx\Include + +

Collection of Component Files used:

+ + * Component: ARM::CMSIS:CORE:5.4.0 +Build Time Elapsed: 00:00:12 +
+ + diff --git a/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny/TencentOS_tiny.htm b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny/TencentOS_tiny.htm new file mode 100644 index 00000000..15a00f57 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny/TencentOS_tiny.htm @@ -0,0 +1,1867 @@ + + +Static Call Graph - [TencentOS_tiny\TencentOS_tiny.axf] +
+

Static Call Graph for image TencentOS_tiny\TencentOS_tiny.axf


+

#<CALLGRAPH># ARM Linker, 6140002: Last Updated: Wed Sep 8 23:07:25 2021 +

+

Maximum Stack Usage = 412 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

+Call chain for Maximum Stack Depth:

+main ⇒ board_init ⇒ MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +

+

+Functions with no stack information +

+ +

+

+Mutually Recursive functions +

  • ADC1_2_IRQHandler   ⇒   ADC1_2_IRQHandler
    +
  • BusFault_Handler   ⇒   BusFault_Handler
    +
  • HardFault_Handler   ⇒   HardFault_Handler
    +
  • MemManage_Handler   ⇒   MemManage_Handler
    +
  • UsageFault_Handler   ⇒   UsageFault_Handler
    +
  • knl_idle_entry   ⇒   knl_idle_entry
    + +

    +

    +Function Pointers +

      +
    • ADC1_2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • ADC3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • BusFault_Handler from stm32l4xx_it.o(.text.BusFault_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • CAN1_RX0_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN1_RX1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN1_SCE_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN1_TX_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN2_RX0_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN2_RX1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN2_SCE_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN2_TX_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • COMP_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CRS_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DCMI_DMAError from stm32l4xx_hal_dcmi.o(.text.DCMI_DMAError) referenced 2 times from stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_IRQHandler) +
    • DCMI_IRQHandler from stm32l4xx_it.o(.text.DCMI_IRQHandler) referenced from startup_stm32l496xx.o(RESET) +
    • DFSDM1_FLT0_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DFSDM1_FLT1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DFSDM1_FLT2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DFSDM1_FLT3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel4_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel5_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel6_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel7_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2D_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel4_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel5_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel6_IRQHandler from stm32l4xx_it.o(.text.DMA2_Channel6_IRQHandler) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel7_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DebugMon_Handler from stm32l4xx_it.o(.text.DebugMon_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI0_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI15_10_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI4_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI9_5_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • FLASH_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • FMC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • FPU_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • HardFault_Handler from stm32l4xx_it.o(.text.HardFault_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • I2C1_ER_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C1_EV_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C2_ER_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C2_EV_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C3_ER_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C3_EV_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C4_ER_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C4_EV_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • LCD_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • LPTIM1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • LPTIM2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • LPUART1_IRQHandler from stm32l4xx_it.o(.text.LPUART1_IRQHandler) referenced from startup_stm32l496xx.o(RESET) +
    • MemManage_Handler from stm32l4xx_it.o(.text.MemManage_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • NMI_Handler from stm32l4xx_it.o(.text.NMI_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • OTG_FS_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • PVD_PVM_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • PendSV_Handler from port_s.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • QUADSPI_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • RCC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • RNG_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • RTC_Alarm_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • RTC_WKUP_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • Reset_Handler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SAI1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SAI2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SDMMC1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SPI1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SPI2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SPI3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SVC_Handler from stm32l4xx_it.o(.text.SVC_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • SWPMI1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SysTick_Handler from stm32l4xx_it.o(.text.SysTick_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • SystemInit from system_stm32l4xx.o(.text.SystemInit) referenced from startup_stm32l496xx.o(.text) +
    • TAMP_STAMP_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM1_BRK_TIM15_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM1_CC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM1_TRG_COM_TIM17_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM1_UP_TIM16_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM4_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM5_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM6_DAC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM7_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM8_BRK_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM8_CC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM8_TRG_COM_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM8_UP_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TSC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • UART4_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • UART5_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • UART_DMAAbortOnError from stm32l4xx_hal_uart.o(.text.UART_DMAAbortOnError) referenced 2 times from stm32l4xx_hal_uart.o(.text.HAL_UART_IRQHandler) +
    • USART1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • USART2_IRQHandler from stm32l4xx_it.o(.text.USART2_IRQHandler) referenced from startup_stm32l496xx.o(RESET) +
    • USART3_IRQHandler from stm32l4xx_it.o(.text.USART3_IRQHandler) referenced from startup_stm32l496xx.o(RESET) +
    • UsageFault_Handler from stm32l4xx_it.o(.text.UsageFault_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • WWDG_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32l496xx.o(.text) +
    • application_entry from hello_world.o(.text.application_entry) referenced from main.o(.rodata.os_thread_def_application_entry) +
    • fputc from mcu_init.o(.text.fputc) referenced from printf5.o(i.__0printf$5) +
    • knl_idle_entry from tos_sys.o(.text.knl_idle_entry) referenced 2 times from tos_sys.o(.text.tos_knl_init) +
    • main from main.o(.text.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B) +
    • task1 from hello_world.o(.text.task1) referenced from hello_world.o(.rodata.os_thread_def_task1) +
    • task2 from hello_world.o(.text.task2) referenced from hello_world.o(.rodata.os_thread_def_task2) +
    • task3 from hello_world.o(.text.task3) referenced from hello_world.o(.rodata..L__const.task1.os_thread_def_task3) +
    • task_exit from tos_task.o(.text.task_exit) referenced 2 times from tos_task.o(.text.tos_task_create) +
    +

    +

    +Global Symbols +

    +

    __main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(.text) +
    +

    _main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) + +

    _main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) +

    [Calls]

    • >>   __scatterload +
    + +

    __main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) +

    [Called By]

    • >>   __scatterload +
    + +

    _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) + +

    _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A)) + +

    _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B)) + +

    __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D)) + +

    __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F)) + +

    Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    ADC1_2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +

    [Calls]

    • >>   ADC1_2_IRQHandler +
    +
    [Called By]
    • >>   ADC1_2_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    ADC3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    COMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CRS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2D_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI15_10_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI9_5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FMC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FPU_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C2_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C2_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C3_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C3_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C4_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C4_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LCD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LPTIM1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LPTIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    OTG_FS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    PVD_PVM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    QUADSPI_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RCC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RNG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RTC_Alarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RTC_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SAI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SAI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SDMMC1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SWPMI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TAMP_STAMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_BRK_TIM15_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_TRG_COM_TIM17_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_UP_TIM16_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM6_DAC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_BRK_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_TRG_COM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_UP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TSC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    UART4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    UART5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    port_int_disable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED) + +

    port_int_enable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED) + +

    port_cpsr_save (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_cpsr_save +
    + +

    port_cpsr_restore (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_cpsr_restore +
    + +

    port_clz (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_clz +
    + +

    port_sched_start (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_sched_start +
    + +

    port_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_context_switch +
    + +

    port_irq_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_irq_context_switch +
    + +

    PendSV_Handler (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    __aeabi_uldivmod (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = __aeabi_uldivmod +
    +
    [Calls]
    • >>   __aeabi_llsr +
    • >>   __aeabi_llsl +
    +
    [Called By]
    • >>   UART_SetConfig +
    • >>   cpu_init +
    • >>   _printf_core +
    + +

    __aeabi_memset (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text)) +

    [Called By]

    • >>   cpu_task_stk_init +
    • >>   _memset$wrapper +
    • >>   __aeabi_memclr +
    + +

    __aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) + +

    __aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) + +

    __aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text)) +

    [Calls]

    • >>   __aeabi_memset +
    +
    [Called By]
    • >>   tos_mmheap_calloc +
    + +

    __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text)) +

    [Called By]

    • >>   board_init +
    • >>   mmheap_ctl_init +
    + +

    __aeabi_memclr8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) + +

    _memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_memset +
    + +

    strncpy (Thumb, 24 bytes, Stack size 8 bytes, strncpy.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = strncpy +
    +
    [Called By]
    • >>   tos_task_create +
    + +

    __aeabi_llsl (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text)) +

    [Called By]

    • >>   __aeabi_uldivmod +
    + +

    _ll_shift_l (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED) + +

    __aeabi_llsr (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text)) +

    [Called By]

    • >>   __aeabi_uldivmod +
    + +

    _ll_ushift_r (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED) + +

    __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text)) +

    [Calls]

    • >>   __main_after_scatterload +
    +
    [Called By]
    • >>   _main_scatterload +
    + +

    __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED) + +

    BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.BusFault_Handler)) +

    [Calls]

    • >>   BusFault_Handler +
    +
    [Called By]
    • >>   BusFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DCMI_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.DCMI_IRQHandler)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = DCMI_IRQHandler ⇒ HAL_DCMI_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_DCMI_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel6_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.DMA2_Channel6_IRQHandler)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = DMA2_Channel6_IRQHandler ⇒ HAL_DMA_IRQHandler +
    +
    [Calls]
    • >>   HAL_DMA_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.DebugMon_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    Error_Handler (Thumb, 2 bytes, Stack size 0 bytes, mcu_init.o(.text.Error_Handler)) +

    [Called By]

    • >>   MX_LPUART1_UART_Init +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_TIM4_Init +
    • >>   MX_SPI1_Init +
    • >>   MX_I2C1_Init +
    • >>   MX_DCMI_Init +
    + +

    HAL_DCMI_ErrorCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_ErrorCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    • >>   DCMI_DMAError +
    + +

    HAL_DCMI_FrameEventCallback (Thumb, 30 bytes, Stack size 0 bytes, mcu_init.o(.text.HAL_DCMI_FrameEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DCMI_IRQHandler (Thumb, 172 bytes, Stack size 16 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_IRQHandler)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_DCMI_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_DCMI_FrameEventCallback +
    • >>   HAL_DMA_Abort_IT +
    • >>   HAL_DCMI_VsyncEventCallback +
    • >>   HAL_DCMI_LineEventCallback +
    • >>   HAL_DCMI_ErrorCallback +
    +
    [Called By]
    • >>   DCMI_IRQHandler +
    + +

    HAL_DCMI_Init (Thumb, 182 bytes, Stack size 40 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_Init)) +

    [Stack]

    • Max Depth = 148
    • Call Chain = HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_DCMI_MspInit +
    +
    [Called By]
    • >>   MX_DCMI_Init +
    + +

    HAL_DCMI_LineEventCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_LineEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DCMI_MspInit (Thumb, 434 bytes, Stack size 64 bytes, dcmi.o(.text.HAL_DCMI_MspInit)) +

    [Stack]

    • Max Depth = 108
    • Call Chain = HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    • >>   Error_Handler +
    • >>   HAL_GPIO_Init +
    • >>   HAL_DMA_Init +
    +
    [Called By]
    • >>   HAL_DCMI_Init +
    + +

    HAL_DCMI_VsyncEventCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_VsyncEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DMA_Abort_IT (Thumb, 88 bytes, Stack size 8 bytes, stm32l4xx_hal_dma.o(.text.HAL_DMA_Abort_IT)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_DMA_Abort_IT +
    +
    [Called By]
    • >>   HAL_UART_IRQHandler +
    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DMA_IRQHandler (Thumb, 176 bytes, Stack size 16 bytes, stm32l4xx_hal_dma.o(.text.HAL_DMA_IRQHandler)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_DMA_IRQHandler +
    +
    [Called By]
    • >>   DMA2_Channel6_IRQHandler +
    + +

    HAL_DMA_Init (Thumb, 204 bytes, Stack size 32 bytes, stm32l4xx_hal_dma.o(.text.HAL_DMA_Init)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_DMA_Init +
    +
    [Called By]
    • >>   HAL_DCMI_MspInit +
    + +

    HAL_GPIO_Init (Thumb, 408 bytes, Stack size 44 bytes, stm32l4xx_hal_gpio.o(.text.HAL_GPIO_Init)) +

    [Stack]

    • Max Depth = 44
    • Call Chain = HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_UART_MspInit +
    • >>   MX_GPIO_Init +
    • >>   HAL_SPI_MspInit +
    • >>   HAL_I2C_MspInit +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_TIM4_Init +
    + +

    HAL_GPIO_WritePin (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_hal_gpio.o(.text.HAL_GPIO_WritePin)) +

    [Called By]

    • >>   MX_GPIO_Init +
    + +

    HAL_GetTick (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_hal.o(.text.HAL_GetTick)) +

    [Called By]

    • >>   HAL_UART_Transmit +
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_RCCEx_PeriphCLKConfig +
    • >>   UART_CheckIdleState +
    • >>   RCCEx_PLLSAI2_Config +
    • >>   RCCEx_PLLSAI1_Config +
    + +

    HAL_I2CEx_ConfigAnalogFilter (Thumb, 74 bytes, Stack size 0 bytes, stm32l4xx_hal_i2c_ex.o(.text.HAL_I2CEx_ConfigAnalogFilter)) +

    [Called By]

    • >>   MX_I2C1_Init +
    + +

    HAL_I2CEx_ConfigDigitalFilter (Thumb, 72 bytes, Stack size 0 bytes, stm32l4xx_hal_i2c_ex.o(.text.HAL_I2CEx_ConfigDigitalFilter)) +

    [Called By]

    • >>   MX_I2C1_Init +
    + +

    HAL_I2C_Init (Thumb, 162 bytes, Stack size 8 bytes, stm32l4xx_hal_i2c.o(.text.HAL_I2C_Init)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_I2C_MspInit +
    +
    [Called By]
    • >>   MX_I2C1_Init +
    + +

    HAL_I2C_MspInit (Thumb, 124 bytes, Stack size 32 bytes, i2c.o(.text.HAL_I2C_MspInit)) +

    [Stack]

    • Max Depth = 76
    • Call Chain = HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_I2C_Init +
    + +

    HAL_IncTick (Thumb, 16 bytes, Stack size 0 bytes, stm32l4xx_hal.o(.text.HAL_IncTick)) +

    [Called By]

    • >>   SysTick_Handler +
    + +

    HAL_Init (Thumb, 30 bytes, Stack size 8 bytes, stm32l4xx_hal.o(.text.HAL_Init)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_MspInit +
    • >>   HAL_NVIC_SetPriorityGrouping +
    • >>   HAL_InitTick +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_InitTick (Thumb, 58 bytes, Stack size 8 bytes, stm32l4xx_hal.o(.text.HAL_InitTick)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_SYSTICK_Config +
    +
    [Called By]
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_Init +
    + +

    HAL_MspInit (Thumb, 50 bytes, Stack size 8 bytes, stm32l4xx_hal_msp.o(.text.HAL_MspInit)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_MspInit +
    +
    [Called By]
    • >>   HAL_Init +
    + +

    HAL_NVIC_EnableIRQ (Thumb, 32 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ)) +

    [Called By]

    • >>   HAL_UART_MspInit +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_DMA_Init +
    + +

    HAL_NVIC_SetPriority (Thumb, 86 bytes, Stack size 8 bytes, stm32l4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_NVIC_SetPriority +
    +
    [Called By]
    • >>   HAL_UART_MspInit +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_DMA_Init +
    • >>   HAL_InitTick +
    + +

    HAL_NVIC_SetPriorityGrouping (Thumb, 32 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping)) +

    [Called By]

    • >>   HAL_Init +
    + +

    HAL_PWREx_ControlVoltageScaling (Thumb, 150 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(.text.HAL_PWREx_ControlVoltageScaling)) +

    [Called By]

    • >>   board_init +
    + +

    HAL_PWREx_EnableVddIO2 (Thumb, 18 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(.text.HAL_PWREx_EnableVddIO2)) +

    [Called By]

    • >>   HAL_UART_MspInit +
    • >>   MX_GPIO_Init +
    • >>   HAL_I2C_MspInit +
    + +

    HAL_PWREx_GetVoltageRange (Thumb, 16 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(.text.HAL_PWREx_GetVoltageRange)) +

    [Called By]

    • >>   HAL_RCC_OscConfig +
    + +

    HAL_RCCEx_PeriphCLKConfig (Thumb, 1004 bytes, Stack size 40 bytes, stm32l4xx_hal_rcc_ex.o(.text.HAL_RCCEx_PeriphCLKConfig)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_RCCEx_PeriphCLKConfig ⇒ RCCEx_PLLSAI2_Config +
    +
    [Calls]
    • >>   HAL_GetTick +
    • >>   RCCEx_PLLSAI2_Config +
    • >>   RCCEx_PLLSAI1_Config +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_RCC_ClockConfig (Thumb, 344 bytes, Stack size 32 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_InitTick +
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_RCC_GetPCLK1Freq (Thumb, 42 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq)) +

    [Called By]

    • >>   UART_SetConfig +
    + +

    HAL_RCC_GetPCLK2Freq (Thumb, 42 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq)) +

    [Called By]

    • >>   UART_SetConfig +
    + +

    HAL_RCC_GetSysClockFreq (Thumb, 200 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq)) +

    [Called By]

    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   UART_SetConfig +
    + +

    HAL_RCC_OscConfig (Thumb, 1576 bytes, Stack size 40 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_OscConfig)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_InitTick +
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_GetTick +
    • >>   HAL_PWREx_GetVoltageRange +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_SPI_Init (Thumb, 164 bytes, Stack size 16 bytes, stm32l4xx_hal_spi.o(.text.HAL_SPI_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_SPI_MspInit +
    +
    [Called By]
    • >>   MX_SPI1_Init +
    + +

    HAL_SPI_MspInit (Thumb, 110 bytes, Stack size 32 bytes, spi.o(.text.HAL_SPI_MspInit)) +

    [Stack]

    • Max Depth = 76
    • Call Chain = HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_SPI_Init +
    + +

    HAL_SYSTICK_Config (Thumb, 44 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(.text.HAL_SYSTICK_Config)) +

    [Called By]

    • >>   HAL_InitTick +
    + +

    HAL_TIMEx_MasterConfigSynchronization (Thumb, 104 bytes, Stack size 8 bytes, stm32l4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_TIMEx_MasterConfigSynchronization +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_Base_Init (Thumb, 54 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_Base_Init)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_TIM_Base_Init ⇒ TIM_Base_SetConfig +
    +
    [Calls]
    • >>   HAL_TIM_Base_MspInit +
    • >>   TIM_Base_SetConfig +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_Base_MspInit (Thumb, 50 bytes, Stack size 4 bytes, tim.o(.text.HAL_TIM_Base_MspInit)) +

    [Stack]

    • Max Depth = 4
    • Call Chain = HAL_TIM_Base_MspInit +
    +
    [Called By]
    • >>   HAL_TIM_Base_Init +
    + +

    HAL_TIM_ConfigClockSource (Thumb, 366 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_TIM_ConfigClockSource +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_ConfigChannel (Thumb, 920 bytes, Stack size 24 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_TIM_PWM_ConfigChannel +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_Init (Thumb, 54 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_PWM_Init)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_TIM_PWM_Init ⇒ TIM_Base_SetConfig +
    +
    [Calls]
    • >>   TIM_Base_SetConfig +
    • >>   HAL_TIM_PWM_MspInit +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_MspInit (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_PWM_MspInit)) +

    [Called By]

    • >>   HAL_TIM_PWM_Init +
    + +

    HAL_UARTEx_WakeupCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart_ex.o(.text.HAL_UARTEx_WakeupCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    + +

    HAL_UART_ErrorCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_ErrorCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    • >>   UART_DMAAbortOnError +
    + +

    HAL_UART_IRQHandler (Thumb, 380 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_TxCpltCallback +
    • >>   HAL_UART_ErrorCallback +
    • >>   HAL_UARTEx_WakeupCallback +
    • >>   HAL_DMA_Abort_IT +
    +
    [Called By]
    • >>   USART3_IRQHandler +
    • >>   USART2_IRQHandler +
    • >>   LPUART1_IRQHandler +
    + +

    HAL_UART_Init (Thumb, 100 bytes, Stack size 8 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_Init)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_UART_MspInit +
    • >>   UART_SetConfig +
    • >>   UART_CheckIdleState +
    • >>   UART_AdvFeatureConfig +
    +
    [Called By]
    • >>   MX_LPUART1_UART_Init +
    + +

    HAL_UART_MspInit (Thumb, 470 bytes, Stack size 32 bytes, usart.o(.text.HAL_UART_MspInit)) +

    [Stack]

    • Max Depth = 76
    • Call Chain = HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    HAL_UART_Transmit (Thumb, 426 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_Transmit)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_UART_Transmit +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   fputc +
    + +

    HAL_UART_TxCpltCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_TxCpltCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    + +

    HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.HardFault_Handler)) +

    [Calls]

    • >>   HardFault_Handler +
    +
    [Called By]
    • >>   HardFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    LPUART1_IRQHandler (Thumb, 26 bytes, Stack size 8 bytes, stm32l4xx_it.o(.text.LPUART1_IRQHandler)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = LPUART1_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   tos_knl_irq_leave +
    • >>   tos_knl_irq_enter +
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    MX_DCMI_Init (Thumb, 62 bytes, Stack size 8 bytes, dcmi.o(.text.MX_DCMI_Init)) +

    [Stack]

    • Max Depth = 156
    • Call Chain = MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_DCMI_Init +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_DMA_Init (Thumb, 52 bytes, Stack size 16 bytes, dma.o(.text.MX_DMA_Init)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = MX_DMA_Init ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_GPIO_Init (Thumb, 216 bytes, Stack size 48 bytes, gpio.o(.text.MX_GPIO_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = MX_GPIO_Init ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_WritePin +
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_I2C1_Init (Thumb, 108 bytes, Stack size 8 bytes, i2c.o(.text.MX_I2C1_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = MX_I2C1_Init ⇒ HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_I2C_Init +
    • >>   HAL_I2CEx_ConfigDigitalFilter +
    • >>   HAL_I2CEx_ConfigAnalogFilter +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_LPUART1_UART_Init (Thumb, 62 bytes, Stack size 8 bytes, usart.o(.text.MX_LPUART1_UART_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = MX_LPUART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_UART_Init +
    • >>   Error_Handler +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_SPI1_Init (Thumb, 78 bytes, Stack size 8 bytes, spi.o(.text.MX_SPI1_Init)) +

    [Stack]

    • Max Depth = 100
    • Call Chain = MX_SPI1_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_SPI_Init +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_TIM4_Init (Thumb, 274 bytes, Stack size 96 bytes, tim.o(.text.MX_TIM4_Init)) +

    [Stack]

    • Max Depth = 140
    • Call Chain = MX_TIM4_Init ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_GPIO_Init +
    • >>   HAL_TIM_PWM_Init +
    • >>   HAL_TIM_PWM_ConfigChannel +
    • >>   HAL_TIM_ConfigClockSource +
    • >>   HAL_TIM_Base_Init +
    • >>   HAL_TIMEx_MasterConfigSynchronization +
    +
    [Called By]
    • >>   board_init +
    + +

    MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.MemManage_Handler)) +

    [Calls]

    • >>   MemManage_Handler +
    +
    [Called By]
    • >>   MemManage_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.NMI_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.SVC_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SysTick_Handler (Thumb, 32 bytes, Stack size 8 bytes, stm32l4xx_it.o(.text.SysTick_Handler)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = SysTick_Handler ⇒ tos_tick_handler ⇒ timer_update ⇒ tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_tick_handler +
    • >>   tos_knl_is_running +
    • >>   tos_knl_irq_leave +
    • >>   tos_knl_irq_enter +
    • >>   HAL_IncTick +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    SystemInit (Thumb, 82 bytes, Stack size 0 bytes, system_stm32l4xx.o(.text.SystemInit)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(.text) +
    +

    TIM_Base_SetConfig (Thumb, 316 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.TIM_Base_SetConfig)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = TIM_Base_SetConfig +
    +
    [Called By]
    • >>   HAL_TIM_PWM_Init +
    • >>   HAL_TIM_Base_Init +
    + +

    UART_AdvFeatureConfig (Thumb, 230 bytes, Stack size 8 bytes, stm32l4xx_hal_uart.o(.text.UART_AdvFeatureConfig)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = UART_AdvFeatureConfig +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    UART_CheckIdleState (Thumb, 154 bytes, Stack size 16 bytes, stm32l4xx_hal_uart.o(.text.UART_CheckIdleState)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = UART_CheckIdleState +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    UART_SetConfig (Thumb, 660 bytes, Stack size 16 bytes, stm32l4xx_hal_uart.o(.text.UART_SetConfig)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = UART_SetConfig ⇒ __aeabi_uldivmod +
    +
    [Calls]
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_RCC_GetPCLK2Freq +
    • >>   HAL_RCC_GetPCLK1Freq +
    • >>   __aeabi_uldivmod +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    USART2_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.USART2_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = USART2_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    USART3_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.USART3_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = USART3_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    UsageFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.UsageFault_Handler)) +

    [Calls]

    • >>   UsageFault_Handler +
    +
    [Called By]
    • >>   UsageFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    application_entry (Thumb, 56 bytes, Stack size 8 bytes, hello_world.o(.text.application_entry)) +

    [Stack]

    • Max Depth = 160 + Unknown Stack Size +
    • Call Chain = application_entry ⇒ osThreadCreate ⇒ tos_task_create_dyn ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   osThreadCreate +
    • >>   puts +
    +
    [Address Reference Count : 1]
    • main.o(.rodata.os_thread_def_application_entry) +
    +

    board_init (Thumb, 148 bytes, Stack size 248 bytes, mcu_init.o(.text.board_init)) +

    [Stack]

    • Max Depth = 404
    • Call Chain = board_init ⇒ MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   MX_LPUART1_UART_Init +
    • >>   MX_GPIO_Init +
    • >>   MX_TIM4_Init +
    • >>   MX_SPI1_Init +
    • >>   MX_I2C1_Init +
    • >>   MX_DMA_Init +
    • >>   MX_DCMI_Init +
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_RCCEx_PeriphCLKConfig +
    • >>   HAL_PWREx_ControlVoltageScaling +
    • >>   HAL_Init +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   main +
    + +

    cpu_context_switch (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.cpu_context_switch)) +

    [Calls]

    • >>   port_context_switch +
    +
    [Called By]
    • >>   knl_sched +
    • >>   tos_knl_sched_unlock +
    + +

    cpu_init (Thumb, 58 bytes, Stack size 8 bytes, tos_cpu.o(.text.cpu_init)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = cpu_init ⇒ __aeabi_uldivmod +
    +
    [Calls]
    • >>   port_systick_priority_set +
    • >>   port_systick_config +
    • >>   __aeabi_uldivmod +
    +
    [Called By]
    • >>   tos_knl_init +
    + +

    cpu_irq_context_switch (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.cpu_irq_context_switch)) +

    [Calls]

    • >>   port_irq_context_switch +
    +
    [Called By]
    • >>   tos_knl_irq_leave +
    + +

    cpu_sched_start (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.cpu_sched_start)) +

    [Calls]

    • >>   port_sched_start +
    +
    [Called By]
    • >>   tos_knl_start +
    + +

    cpu_task_stack_draught_depth (Thumb, 114 bytes, Stack size 16 bytes, tos_cpu.o(.text.cpu_task_stack_draught_depth)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = cpu_task_stack_draught_depth +
    +
    [Called By]
    • >>   tos_task_stack_draught_depth +
    + +

    cpu_task_stk_init (Thumb, 132 bytes, Stack size 24 bytes, tos_cpu.o(.text.cpu_task_stk_init)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = cpu_task_stk_init +
    +
    [Calls]
    • >>   __aeabi_memset +
    +
    [Called By]
    • >>   tos_task_create +
    + +

    fputc (Thumb, 60 bytes, Stack size 16 bytes, mcu_init.o(.text.fputc)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   HAL_UART_Transmit +
    +
    [Called By]
    • >>   puts +
    +
    [Address Reference Count : 1]
    • printf5.o(i.__0printf$5) +
    +

    knl_is_idle (Thumb, 18 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_idle)) +

    [Called By]

    • >>   tos_task_create +
    • >>   task_do_destroy +
    + +

    knl_is_inirq (Thumb, 18 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_inirq)) +

    [Called By]

    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   tos_task_destroy +
    • >>   tos_task_create_dyn +
    + +

    knl_is_sched_locked (Thumb, 18 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_sched_locked)) +

    [Called By]

    • >>   tos_task_delay +
    • >>   tos_task_destroy +
    + +

    knl_is_self (Thumb, 20 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_self)) +

    [Called By]

    • >>   tos_task_prio_change +
    • >>   tos_task_destroy +
    + +

    knl_sched (Thumb, 92 bytes, Stack size 8 bytes, tos_sys.o(.text.knl_sched)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = knl_sched +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_context_switch +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   task_do_destroy +
    + +

    main (Thumb, 68 bytes, Stack size 8 bytes, main.o(.text.main)) +

    [Stack]

    • Max Depth = 412 + Unknown Stack Size +
    • Call Chain = main ⇒ board_init ⇒ MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   osThreadCreate +
    • >>   osKernelStart +
    • >>   osKernelInitialize +
    • >>   board_init +
    • >>   puts +
    +
    [Address Reference Count : 1]
    • entry9a.o(.ARM.Collect$$$$0000000B) +
    +

    mmheap_init_with_pool (Thumb, 22 bytes, Stack size 16 bytes, tos_mmheap.o(.text.mmheap_init_with_pool)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = mmheap_init_with_pool ⇒ tos_mmheap_pool_add +
    +
    [Calls]
    • >>   tos_mmheap_pool_add +
    • >>   mmheap_ctl_init +
    +
    [Called By]
    • >>   tos_knl_init +
    + +

    mutex_release (Thumb, 84 bytes, Stack size 16 bytes, tos_mutex.o(.text.mutex_release)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   pend_wakeup_all +
    • >>   tos_task_prio_change +
    +
    [Called By]
    • >>   task_do_destroy +
    + +

    osDelay (Thumb, 32 bytes, Stack size 8 bytes, cmsis_os.o(.text.osDelay)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = osDelay ⇒ tos_task_delay ⇒ tick_list_add +
    +
    [Calls]
    • >>   tos_task_delay +
    • >>   tos_millisec2tick +
    +
    [Called By]
    • >>   task3 +
    • >>   task2 +
    • >>   task1 +
    + +

    osKernelInitialize (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(.text.osKernelInitialize)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = osKernelInitialize ⇒ tos_knl_init ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   tos_knl_init +
    +
    [Called By]
    • >>   main +
    + +

    osKernelStart (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(.text.osKernelStart)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = osKernelStart ⇒ tos_knl_start +
    +
    [Calls]
    • >>   tos_knl_start +
    +
    [Called By]
    • >>   main +
    + +

    osThreadCreate (Thumb, 126 bytes, Stack size 40 bytes, cmsis_os.o(.text.osThreadCreate)) +

    [Stack]

    • Max Depth = 152 + Unknown Stack Size +
    • Call Chain = osThreadCreate ⇒ tos_task_create_dyn ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   tos_task_create +
    • >>   tos_task_create_dyn +
    +
    [Called By]
    • >>   main +
    • >>   task1 +
    • >>   application_entry +
    + +

    osThreadTerminate (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(.text.osThreadTerminate)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = osThreadTerminate ⇒ tos_task_destroy ⇒ task_do_destroy ⇒ mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tos_task_destroy +
    +
    [Called By]
    • >>   task1 +
    + +

    pend_highest_pending_prio_get (Thumb, 14 bytes, Stack size 0 bytes, tos_pend.o(.text.pend_highest_pending_prio_get)) +

    [Called By]

    • >>   tos_task_prio_change +
    + +

    pend_list_adjust (Thumb, 114 bytes, Stack size 8 bytes, tos_pend.o(.text.pend_list_adjust)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = pend_list_adjust +
    +
    [Called By]
    • >>   tos_task_prio_change +
    + +

    pend_list_remove (Thumb, 26 bytes, Stack size 0 bytes, tos_pend.o(.text.pend_list_remove)) +

    [Called By]

    • >>   task_do_destroy +
    + +

    pend_task_wakeup (Thumb, 66 bytes, Stack size 8 bytes, tos_pend.o(.text.pend_task_wakeup)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = pend_task_wakeup ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tick_list_remove +
    • >>   readyqueue_add +
    +
    [Called By]
    • >>   tos_tick_handler +
    + +

    pend_wakeup_all (Thumb, 112 bytes, Stack size 32 bytes, tos_pend.o(.text.pend_wakeup_all)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tick_list_remove +
    • >>   readyqueue_add +
    +
    [Called By]
    • >>   mutex_release +
    + +

    port_systick_config (Thumb, 42 bytes, Stack size 0 bytes, port_c.o(.text.port_systick_config)) +

    [Called By]

    • >>   cpu_init +
    + +

    port_systick_priority_set (Thumb, 14 bytes, Stack size 0 bytes, port_c.o(.text.port_systick_priority_set)) +

    [Called By]

    • >>   cpu_init +
    + +

    readyqueue_add (Thumb, 152 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_add)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = readyqueue_add +
    +
    [Called By]
    • >>   pend_wakeup_all +
    • >>   pend_task_wakeup +
    + +

    readyqueue_add_head (Thumb, 78 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_add_head)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = readyqueue_add_head +
    +
    [Called By]
    • >>   tos_task_prio_change +
    + +

    readyqueue_add_tail (Thumb, 80 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_add_tail)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = readyqueue_add_tail +
    +
    [Called By]
    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    + +

    readyqueue_highest_ready_task_get (Thumb, 20 bytes, Stack size 0 bytes, tos_sched.o(.text.readyqueue_highest_ready_task_get)) +

    [Called By]

    • >>   tos_knl_irq_leave +
    • >>   knl_sched +
    • >>   tos_knl_start +
    • >>   tos_knl_sched_unlock +
    + +

    readyqueue_init (Thumb, 96 bytes, Stack size 0 bytes, tos_sched.o(.text.readyqueue_init)) +

    [Called By]

    • >>   tos_knl_init +
    + +

    readyqueue_remove (Thumb, 160 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_remove)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = readyqueue_remove +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   task_do_destroy +
    + +

    task1 (Thumb, 156 bytes, Stack size 32 bytes, hello_world.o(.text.task1)) +

    [Stack]

    • Max Depth = 184 + Unknown Stack Size +
    • Call Chain = task1 ⇒ osThreadCreate ⇒ tos_task_create_dyn ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   osThreadCreate +
    • >>   osDelay +
    • >>   puts +
    • >>   osThreadTerminate +
    +
    [Address Reference Count : 1]
    • hello_world.o(.rodata.os_thread_def_task1) +
    +

    task2 (Thumb, 68 bytes, Stack size 8 bytes, hello_world.o(.text.task2)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = task2 ⇒ osDelay ⇒ tos_task_delay ⇒ tick_list_add +
    +
    [Calls]
    • >>   osDelay +
    • >>   tos_task_stack_draught_depth +
    • >>   puts +
    • >>   __2printf +
    +
    [Address Reference Count : 1]
    • hello_world.o(.rodata.os_thread_def_task2) +
    +

    task3 (Thumb, 52 bytes, Stack size 0 bytes, hello_world.o(.text.task3)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = task3 ⇒ osDelay ⇒ tos_task_delay ⇒ tick_list_add +
    +
    [Calls]
    • >>   osDelay +
    • >>   puts +
    +
    [Address Reference Count : 1]
    • hello_world.o(.rodata..L__const.task1.os_thread_def_task3) +
    +

    task_free_all (Thumb, 68 bytes, Stack size 24 bytes, tos_task.o(.text.task_free_all)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = task_free_all ⇒ tos_mmheap_free ⇒ blk_merge_next +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   tos_mmheap_free +
    +
    [Called By]
    • >>   knl_idle_entry +
    + +

    tick_list_add (Thumb, 186 bytes, Stack size 32 bytes, tos_tick.o(.text.tick_list_add)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = tick_list_add +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   tos_task_delay +
    + +

    tick_list_remove (Thumb, 112 bytes, Stack size 16 bytes, tos_tick.o(.text.tick_list_remove)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = tick_list_remove +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   pend_wakeup_all +
    • >>   pend_task_wakeup +
    • >>   task_do_destroy +
    + +

    timer_init (Thumb, 4 bytes, Stack size 0 bytes, tos_timer.o(.text.timer_init)) +

    [Called By]

    • >>   tos_knl_init +
    + +

    timer_update (Thumb, 340 bytes, Stack size 40 bytes, tos_timer.o(.text.timer_update)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = timer_update ⇒ tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   tos_knl_sched_unlock +
    • >>   tos_knl_sched_lock +
    +
    [Called By]
    • >>   tos_tick_handler +
    + +

    tos_cpu_clz (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.tos_cpu_clz)) +

    [Calls]

    • >>   port_clz +
    +
    [Called By]
    • >>   tos_mmheap_free +
    • >>   tos_mmheap_pool_add +
    • >>   blk_prepare_used +
    • >>   blk_merge_next +
    • >>   blk_locate_free +
    • >>   readyqueue_remove +
    + +

    tos_cpu_cpsr_restore (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.tos_cpu_cpsr_restore)) +

    [Calls]

    • >>   port_cpsr_restore +
    +
    [Called By]
    • >>   tos_tick_handler +
    • >>   tos_knl_irq_leave +
    • >>   tos_task_delay +
    • >>   knl_sched +
    • >>   tick_list_remove +
    • >>   tick_list_add +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   tos_knl_sched_unlock +
    • >>   task_free_all +
    • >>   tos_knl_sched_lock +
    • >>   timer_update +
    • >>   tos_task_stack_draught_depth +
    • >>   task_do_destroy +
    + +

    tos_cpu_cpsr_save (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.tos_cpu_cpsr_save)) +

    [Calls]

    • >>   port_cpsr_save +
    +
    [Called By]
    • >>   tos_tick_handler +
    • >>   tos_knl_irq_leave +
    • >>   tos_task_delay +
    • >>   knl_sched +
    • >>   tick_list_remove +
    • >>   tick_list_add +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   tos_knl_sched_unlock +
    • >>   task_free_all +
    • >>   tos_knl_sched_lock +
    • >>   timer_update +
    • >>   tos_task_stack_draught_depth +
    • >>   task_do_destroy +
    + +

    tos_knl_init (Thumb, 112 bytes, Stack size 24 bytes, tos_sys.o(.text.tos_knl_init)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = tos_knl_init ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   cpu_init +
    • >>   mmheap_init_with_pool +
    • >>   tos_task_create +
    • >>   timer_init +
    • >>   readyqueue_init +
    +
    [Called By]
    • >>   osKernelInitialize +
    + +

    tos_knl_irq_enter (Thumb, 36 bytes, Stack size 0 bytes, tos_sys.o(.text.tos_knl_irq_enter)) +

    [Called By]

    • >>   SysTick_Handler +
    • >>   LPUART1_IRQHandler +
    + +

    tos_knl_irq_leave (Thumb, 108 bytes, Stack size 8 bytes, tos_sys.o(.text.tos_knl_irq_leave)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_irq_leave +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_irq_context_switch +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   SysTick_Handler +
    • >>   LPUART1_IRQHandler +
    + +

    tos_knl_is_running (Thumb, 20 bytes, Stack size 0 bytes, tos_sys.o(.text.tos_knl_is_running)) +

    [Called By]

    • >>   tos_tick_handler +
    • >>   SysTick_Handler +
    • >>   tos_task_create +
    + +

    tos_knl_sched_lock (Thumb, 78 bytes, Stack size 8 bytes, tos_sys.o(.text.tos_knl_sched_lock)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_sched_lock +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   timer_update +
    • >>   tos_task_destroy +
    + +

    tos_knl_sched_unlock (Thumb, 152 bytes, Stack size 16 bytes, tos_sys.o(.text.tos_knl_sched_unlock)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_context_switch +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   timer_update +
    • >>   tos_task_destroy +
    + +

    tos_knl_start (Thumb, 58 bytes, Stack size 8 bytes, tos_sys.o(.text.tos_knl_start)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_start +
    +
    [Calls]
    • >>   cpu_sched_start +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   osKernelStart +
    + +

    tos_millisec2tick (Thumb, 4 bytes, Stack size 0 bytes, tos_time.o(.text.tos_millisec2tick)) +

    [Called By]

    • >>   osDelay +
    + +

    tos_mmheap_alloc (Thumb, 58 bytes, Stack size 8 bytes, tos_mmheap.o(.text.tos_mmheap_alloc)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = tos_mmheap_alloc ⇒ blk_prepare_used +
    +
    [Calls]
    • >>   blk_prepare_used +
    • >>   blk_locate_free +
    +
    [Called By]
    • >>   tos_task_create_dyn +
    + +

    tos_mmheap_calloc (Thumb, 72 bytes, Stack size 16 bytes, tos_mmheap.o(.text.tos_mmheap_calloc)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = tos_mmheap_calloc ⇒ blk_prepare_used +
    +
    [Calls]
    • >>   blk_prepare_used +
    • >>   blk_locate_free +
    • >>   __aeabi_memclr +
    +
    [Called By]
    • >>   tos_task_create_dyn +
    + +

    tos_mmheap_free (Thumb, 298 bytes, Stack size 24 bytes, tos_mmheap.o(.text.tos_mmheap_free)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = tos_mmheap_free ⇒ blk_merge_next +
    +
    [Calls]
    • >>   tos_cpu_clz +
    • >>   blk_merge_next +
    +
    [Called By]
    • >>   task_free_all +
    • >>   tos_task_destroy +
    • >>   tos_task_create_dyn +
    + +

    tos_mmheap_pool_add (Thumb, 288 bytes, Stack size 24 bytes, tos_mmheap.o(.text.tos_mmheap_pool_add)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = tos_mmheap_pool_add +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   mmheap_init_with_pool +
    + +

    tos_task_create (Thumb, 306 bytes, Stack size 40 bytes, tos_task.o(.text.tos_task_create)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   tos_knl_is_running +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_task_stk_init +
    • >>   knl_sched +
    • >>   knl_is_inirq +
    • >>   knl_is_idle +
    • >>   readyqueue_add_tail +
    • >>   strncpy +
    +
    [Called By]
    • >>   osThreadCreate +
    • >>   tos_knl_init +
    • >>   tos_task_create_dyn +
    + +

    tos_task_create_dyn (Thumb, 192 bytes, Stack size 48 bytes, tos_task.o(.text.tos_task_create_dyn)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = tos_task_create_dyn ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   knl_is_inirq +
    • >>   tos_mmheap_free +
    • >>   tos_mmheap_alloc +
    • >>   tos_mmheap_calloc +
    • >>   tos_task_create +
    +
    [Called By]
    • >>   osThreadCreate +
    + +

    tos_task_delay (Thumb, 144 bytes, Stack size 24 bytes, tos_task.o(.text.tos_task_delay)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = tos_task_delay ⇒ tick_list_add +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   knl_sched +
    • >>   knl_is_sched_locked +
    • >>   knl_is_inirq +
    • >>   tick_list_add +
    • >>   readyqueue_remove +
    • >>   readyqueue_add_tail +
    +
    [Called By]
    • >>   osDelay +
    + +

    tos_task_destroy (Thumb, 176 bytes, Stack size 16 bytes, tos_task.o(.text.tos_task_destroy)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = tos_task_destroy ⇒ task_do_destroy ⇒ mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   knl_is_sched_locked +
    • >>   knl_is_inirq +
    • >>   tos_mmheap_free +
    • >>   knl_is_self +
    • >>   tos_knl_sched_unlock +
    • >>   tos_knl_sched_lock +
    • >>   task_do_destroy +
    +
    [Called By]
    • >>   task_exit +
    • >>   osThreadTerminate +
    + +

    tos_task_prio_change (Thumb, 226 bytes, Stack size 32 bytes, tos_task.o(.text.tos_task_prio_change)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = tos_task_prio_change ⇒ readyqueue_remove +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   knl_sched +
    • >>   knl_is_inirq +
    • >>   readyqueue_remove +
    • >>   pend_list_adjust +
    • >>   pend_highest_pending_prio_get +
    • >>   knl_is_self +
    • >>   readyqueue_add_tail +
    • >>   readyqueue_add_head +
    +
    [Called By]
    • >>   mutex_release +
    + +

    tos_task_stack_draught_depth (Thumb, 74 bytes, Stack size 16 bytes, tos_task.o(.text.tos_task_stack_draught_depth)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = tos_task_stack_draught_depth ⇒ cpu_task_stack_draught_depth +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_task_stack_draught_depth +
    +
    [Called By]
    • >>   task2 +
    + +

    tos_tick_handler (Thumb, 124 bytes, Stack size 16 bytes, tos_tick.o(.text.tos_tick_handler)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = tos_tick_handler ⇒ timer_update ⇒ tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_knl_is_running +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   pend_task_wakeup +
    • >>   timer_update +
    +
    [Called By]
    • >>   SysTick_Handler +
    + +

    __0printf$5 (Thumb, 22 bytes, Stack size 24 bytes, printf5.o(i.__0printf$5), UNUSED) +

    [Calls]

    • >>   _printf_core +
    + +

    __1printf$5 (Thumb, 0 bytes, Stack size 24 bytes, printf5.o(i.__0printf$5), UNUSED) + +

    __2printf (Thumb, 0 bytes, Stack size 24 bytes, printf5.o(i.__0printf$5)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __2printf +
    +
    [Called By]
    • >>   task2 +
    + +

    __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) + +

    __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) + +

    __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) + +

    puts (Thumb, 30 bytes, Stack size 8 bytes, puts.o(i.puts)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = puts ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fputc +
    +
    [Called By]
    • >>   main +
    • >>   task3 +
    • >>   task2 +
    • >>   task1 +
    • >>   application_entry +
    +

    +

    +Local Symbols +

    +

    UART_DMAAbortOnError (Thumb, 16 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(.text.UART_DMAAbortOnError)) +

    [Calls]

    • >>   HAL_UART_ErrorCallback +
    +
    [Address Reference Count : 1]
    • stm32l4xx_hal_uart.o(.text.HAL_UART_IRQHandler) +
    +

    RCCEx_PLLSAI1_Config (Thumb, 304 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc_ex.o(.text.RCCEx_PLLSAI1_Config)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = RCCEx_PLLSAI1_Config +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_RCCEx_PeriphCLKConfig +
    + +

    RCCEx_PLLSAI2_Config (Thumb, 268 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc_ex.o(.text.RCCEx_PLLSAI2_Config)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = RCCEx_PLLSAI2_Config +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_RCCEx_PeriphCLKConfig +
    + +

    DCMI_DMAError (Thumb, 20 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.DCMI_DMAError)) +

    [Calls]

    • >>   HAL_DCMI_ErrorCallback +
    +
    [Address Reference Count : 1]
    • stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_IRQHandler) +
    +

    blk_locate_free (Thumb, 222 bytes, Stack size 16 bytes, tos_mmheap.o(.text.blk_locate_free)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = blk_locate_free +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_mmheap_alloc +
    • >>   tos_mmheap_calloc +
    + +

    blk_merge_next (Thumb, 168 bytes, Stack size 24 bytes, tos_mmheap.o(.text.blk_merge_next)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = blk_merge_next +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_mmheap_free +
    + +

    blk_prepare_used (Thumb, 252 bytes, Stack size 24 bytes, tos_mmheap.o(.text.blk_prepare_used)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = blk_prepare_used +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_mmheap_alloc +
    • >>   tos_mmheap_calloc +
    + +

    mmheap_ctl_init (Thumb, 186 bytes, Stack size 16 bytes, tos_mmheap.o(.text.mmheap_ctl_init)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = mmheap_ctl_init +
    +
    [Calls]
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   mmheap_init_with_pool +
    + +

    knl_idle_entry (Thumb, 6 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_idle_entry)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size + + In Cycle +
    • Call Chain = knl_idle_entry ⇒ knl_idle_entry (Cycle) +
    +
    [Calls]
    • >>   task_free_all +
    • >>   knl_idle_entry +
    +
    [Called By]
    • >>   knl_idle_entry +
    +
    [Address Reference Count : 1]
    • tos_sys.o(.text.tos_knl_init) +
    +

    task_do_destroy (Thumb, 198 bytes, Stack size 24 bytes, tos_task.o(.text.task_do_destroy)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = task_do_destroy ⇒ mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   knl_sched +
    • >>   tick_list_remove +
    • >>   readyqueue_remove +
    • >>   pend_list_remove +
    • >>   mutex_release +
    • >>   knl_is_idle +
    +
    [Called By]
    • >>   tos_task_destroy +
    + +

    task_exit (Thumb, 6 bytes, Stack size 0 bytes, tos_task.o(.text.task_exit)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = task_exit ⇒ tos_task_destroy ⇒ task_do_destroy ⇒ mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tos_task_destroy +
    +
    [Address Reference Count : 1]
    • tos_task.o(.text.tos_task_create) +
    +

    _printf_core (Thumb, 658 bytes, Stack size 104 bytes, printf5.o(i._printf_core), UNUSED) +

    [Calls]

    • >>   __aeabi_uldivmod +
    +
    [Called By]
    • >>   __0printf$5 +
    +

    +

    +Undefined Global Symbols +


    diff --git a/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny/TencentOS_tiny.sct b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny/TencentOS_tiny.sct new file mode 100644 index 00000000..83747e97 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/hello_world/TencentOS_tiny/TencentOS_tiny.sct @@ -0,0 +1,16 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00100000 { ; load region size_region + ER_IROM1 0x08000000 0x00100000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + .ANY (+XO) + } + RW_IRAM1 0x20000000 0x00050000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf new file mode 100644 index 00000000..979440d7 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf @@ -0,0 +1,77 @@ +// File: STM32L4x5_4x6.dbgconf +// Version: 1.0.0 +// Note: refer to STM32L4x5 and STM32L4x6 Reference manual (RM0351) +// refer to STM32L475xx STM32L476xx STM32L486xx STM32L496xx STM32L4A6xx datasheets + +// <<< Use Configuration Wizard in Context Menu >>> + +// Debug MCU configuration register (DBGMCU_CR) +// DBG_STANDBY Debug Standby mode +// DBG_STOP Debug Stop mode +// DBG_SLEEP Debug Sleep mode +// +DbgMCU_CR = 0x00000007; + +// Debug MCU APB1 freeze register1 (DBGMCU_APB1FZR1) +// Reserved bits must be kept at reset value +// DBG_LPTIM1_STOP LPTIM1 counter stopped when core is halted +// DBG_CAN2_STOP bxCAN2 stopped when core is halted +// DBG_CAN1_STOP bxCAN1 stopped when core is halted +// DBG_I2C3_STOP I2C3 SMBUS timeout counter stopped when core is halted +// DBG_I2C2_STOP I2C2 SMBUS timeout counter stopped when core is halted +// DBG_I2C1_STOP I2C1 SMBUS timeout counter stopped when core is halted +// DBG_IWDG_STOP Independent watchdog counter stopped when core is halted +// DBG_WWDG_STOP Window watchdog counter stopped when core is halted +// DBG_RTC_STOP RTC counter stopped when core is halted +// DBG_TIM7_STOP TIM7 counter stopped when core is halted +// DBG_TIM6_STOP TIM6 counter stopped when core is halted +// DBG_TIM5_STOP TIM5 counter stopped when core is halted +// DBG_TIM4_STOP TIM4 counter stopped when core is halted +// DBG_TIM3_STOP TIM3 counter stopped when core is halted +// DBG_TIM2_STOP TIM2 counter stopped when core is halted +// +DbgMCU_APB1_Fz1 = 0x00000000; + +// Debug MCU APB1 freeze register 2 (DBGMCU_APB1FZR2) +// Reserved bits must be kept at reset value +// DBG_LPTIM2_STOP LPTIM2 counter stopped when core is halted +// DBG_I2C4_STOP I2C4 SMBUS timeout counter stopped when core is halted +// +DbgMCU_APB1_Fz2 = 0x00000000; + +// Debug MCU APB2 freeze register (DBGMCU_APB2FZR) +// Reserved bits must be kept at reset value +// DBG_TIM17_STOP TIM17 counter stopped when core is halted +// DBG_TIM16_STOP TIM16 counter stopped when core is halted +// DBG_TIM15_STOP TIM15 counter stopped when core is halted +// DBG_TIM8_STOP TIM8 counter stopped when core is halted +// DBG_TIM1_STOP TIM1 counter stopped when core is halted +// +DbgMCU_APB2_Fz = 0x00000000; + +// TPIU Pin Routing (TRACECLK fixed on Pin PE2) +// TRACECLK: Pin PE2 +// TRACED0 +// ETM Trace Data 0 +// <0x00040003=> Pin PE3 +// <0x00020001=> Pin PC1 +// TRACED1 +// ETM Trace Data 1 +// <0x00040004=> Pin PE4 +// <0x0002000A=> Pin PC10 +// TRACED2 +// ETM Trace Data 2 +// <0x00040005=> Pin PE5 +// <0x00030002=> Pin PD2 +// TRACED3 +// ETM Trace Data 3 +// <0x00040006=> Pin PE6 +// <0x0002000C=> Pin PC12 +// +TraceClk_Pin = 0x00040002; +TraceD0_Pin = 0x00040003; +TraceD1_Pin = 0x00040004; +TraceD2_Pin = 0x00040005; +TraceD3_Pin = 0x00040006; + +// <<< end of configuration section >>> diff --git a/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/EventRecorderStub.scvd b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/EventRecorderStub.scvd new file mode 100644 index 00000000..2956b296 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/EventRecorderStub.scvd @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/RTE/_TencentOS_tiny/RTE_Components.h b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/RTE/_TencentOS_tiny/RTE_Components.h new file mode 100644 index 00000000..248f644f --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/RTE/_TencentOS_tiny/RTE_Components.h @@ -0,0 +1,21 @@ + +/* + * Auto generated Run-Time-Environment Configuration File + * *** Do not modify ! *** + * + * Project: 'TencentOS_tiny' + * Target: 'TencentOS_tiny' + */ + +#ifndef RTE_COMPONENTS_H +#define RTE_COMPONENTS_H + + +/* + * Define the Device Header File: + */ +#define CMSIS_device_header "stm32l4xx.h" + + + +#endif /* RTE_COMPONENTS_H */ diff --git a/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny.uvguix.CoCo b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny.uvguix.CoCo new file mode 100644 index 00000000..635aae43 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny.uvguix.CoCo @@ -0,0 +1,3673 @@ + + + + -6.1 + +
    ### uVision Project, (C) Keil Software
    + + + + + + + + + + 38003 + Registers + 153 153 + + + 346 + Code Coverage + 710 160 + + + 204 + Performance Analyzer + 870 + + + + + + 35141 + Event Statistics + + 200 50 700 + + + 1506 + Symbols + + 60 60 60 + + + 1936 + Watch 1 + + 200 133 133 + + + 1937 + Watch 2 + + 200 133 133 + + + 1935 + Call Stack + Locals + + 200 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + 466 + Source Browser + 500 + 166 + + + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 198 + 2112 + 3192 + 1530 + + + + 0 + + 961 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000007000000000000000100000051443A5C436F64655C50726F6A6563745C74656E63656E746F735C54656E63656E744F532D74696E795C6578616D706C65735C6E6E6F6D5F6D6E6973745C6E6E6F6D5F6D6E7369745F6578616D706C652E6300000000146E6E6F6D5F6D6E7369745F6578616D706C652E6300000000C5D4F200FFFFFFFF67443A5C436F64655C50726F6A6563745C74656E63656E746F735C54656E63656E744F532D74696E795C626F6172645C4E55434C454F5F53544D33324C3439365A475C4B45494C5C6E6E6F6D5F6D6E6973745C737461727475705F73746D33326C34393678782E730000000015737461727475705F73746D33326C34393678782E7300000000FFDC7800FFFFFFFF50443A5C436F64655C50726F6A6563745C74656E63656E746F735C54656E63656E744F532D74696E795C626F6172645C4E55434C454F5F53544D33324C3439365A475C4253505C5372635C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF51443A5C436F64655C50726F6A6563745C74656E63656E746F735C54656E63656E744F532D74696E795C626F6172645C4E55434C454F5F53544D33324C3439365A475C4253505C5372635C75736172742E63000000000775736172742E6300000000F0A0A100FFFFFFFF3F443A5C436F64655C50726F6A6563745C74656E63656E746F735C54656E63656E744F532D74696E795C6B65726E656C5C636F72655C746F735F70656E642E63000000000A746F735F70656E642E6300000000BCA8E100FFFFFFFF55443A5C436F64655C50726F6A6563745C74656E63656E746F735C54656E63656E744F532D74696E795C636F6D706F6E656E74735C61695C6E6E6F6D5C7372635C6261636B656E64735C6E6E6F6D5F6C6F63616C2E63000000000C6E6E6F6D5F6C6F63616C2E63000000009CC1B600FFFFFFFF54443A5C436F64655C50726F6A6563745C74656E63656E746F735C54656E63656E744F532D74696E795C626F6172645C4E55434C454F5F53544D33324C3439365A475C4253505C5372635C6D63755F696E69742E63000000000A6D63755F696E69742E6300000000F7B88600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000B009000085FEFFFFA80C00000D040000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B80000004F00000028040000CB000000 + + + 16 + 2809000085FEFFFF980C000001FFFFFF + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000006600000039010000BE050000 + + + 16 + A4000000BB000000580100006E010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000006600000039010000BE050000 + + + 16 + A4000000BB00000078010000AD020000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000B802000037010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000B802000037010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000B802000037010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000B802000037010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + A4000000BB000000B802000037010000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000580100006E010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000580100006E010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000580100006E010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000B802000037010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000B802000037010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000B802000037010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000B802000037010000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000006600000039010000BE050000 + + + 16 + A4000000BB00000078010000AD020000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000006600000039010000BE050000 + + + 16 + A4000000BB00000078010000AD020000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000EF050000380400002E070000 + + + 16 + A4000000BB000000B802000037010000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000CB010000280400005B020000 + + + 16 + A4000000BB000000B802000037010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F20500003504000015070000 + + + 16 + A4000000BB000000B802000037010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + A4000000BB000000B802000037010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + A4000000BB000000B802000037010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000B802000037010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + A4000000BB000000B802000037010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + A4000000BB000000B802000037010000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + A4000000BB000000B802000037010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000006600000039010000BE050000 + + + 16 + A4000000BB00000078010000AD020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F20500003504000015070000 + + + 16 + A4000000BB000000B802000037010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F20500003504000015070000 + + + 16 + A4000000BB00000078010000AD020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000580100006E010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000580100006E010000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F20500003504000015070000 + + + 16 + A4000000BB00000078010000AD020000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F20500003504000015070000 + + + 16 + A4000000BB00000078010000AD020000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + A4000000BB000000B802000037010000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + A4000000BB000000580100006E010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 966 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000002E0700003804000041070000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 476 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + A4000000BB000000580100006E010000 + + + + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFB8000000CB00000028040000CF000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000002809000085FEFFFF980C000001FFFFFFB80000004F00000028040000CB0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF700300004F00000074030000DB010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000E40B000085FEFFFF980C000011000000740300004F00000028040000DB01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF3C0100004F00000040010000D7050000010000000200001004000000010000004EFFFFFFE3040000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000007008000085FEFFFFAC0900000D040000000000004F0000003C010000D70500000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000C701000028040000CB01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000007008000001000000980C00009100000000000000CB010000280400005B02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF14020000CB010000180200005B02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000D705000038040000DB050000010000000100001004000000010000009EFEFFFFB2010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000007008000011040000A80C00006405000000000000DB050000380400002E0700000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2915 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001243414D4552415F4445564943455F496E6974960000000000000013001243414D4552415F4445564943455F496E697419424F4152445F43616D6572615F4932435F53656E64534343420E48414C5F534452414D5F496E69740B44454255475F55534152540F4750494F5F4146375F5553415254320E4750494F5F4146375F5541525435134C43445F446973706C6179537472696E674174154C43445F446973706C6179537472696E674C696E650F4C43445F53656C6563744C617965720E4750494F5F414631345F4C544443065F5F6D61696E0A53797374656D496E6974145F5F48414C5F44434D495F454E41424C455F49540477656C6C146B5F6370755F6379636C655F7065725F7469636B056B5F6370750262700E50656E6453565F48616E646C65721253544D6963726F656C656374726F6E69637300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 988 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E54656E63656E744F535F74696E79960000000000000001000E54656E63656E744F535F74696E79000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1440 + 960 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B80000004F00000038040000CB000000 + + + 16 + 2809000085FEFFFFA80C000001FFFFFF + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B100000081060000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B100000081060000 + + + 16 + D8000000EF000000AC010000E1020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000035040000B2000000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B100000081060000 + + + 16 + D8000000EF000000AC010000E1020000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B100000081060000 + + + 16 + D8000000EF000000AC010000E1020000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000F60100002504000042020000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000009E0600001C0200002E070000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F60100002504000042020000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + B80000006300000038040000CB000000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000035040000B2000000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000035040000B2000000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000035040000B2000000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000035040000B2000000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000035040000B2000000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B100000081060000 + + + 16 + D8000000EF000000AC010000E1020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F60100002504000042020000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F60100002504000042020000 + + + 16 + D8000000EF000000AC010000E1020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F60100002504000042020000 + + + 16 + D8000000EF000000AC010000E1020000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F60100002504000042020000 + + + 16 + D8000000EF000000AC010000E1020000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000035040000B2000000 + + + 16 + D8000000EF000000EC0200006B010000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 966 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000002E0700003804000041070000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 476 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 23020000B50600003504000015070000 + + + 16 + D8000000EF0000008C010000A2010000 + + + + 3311 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFB8000000CB00000038040000CF000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000010000002809000085FEFFFFA80C000001FFFFFFB80000004F00000038040000CB0000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF700300004F00000074030000DB010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000E40B000085FEFFFF980C000011000000740300004F00000028040000DB01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFB40000004F000000B80000009A060000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000007008000085FEFFFF24090000D0040000000000004F000000B40000009A0600000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000009A060000380400009E06000001000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000001000000900A0000D4040000A80C000064050000200200009E060000380400002E07000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF000000000000000001000000000000000100000001000000FFFFFFFF1C0200009E060000200200002E07000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000DB01000028040000DF010000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000000000007008000015000000980C00009100000000000000DF010000280400005B0200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2915 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001243414D4552415F4445564943455F496E6974960000000000000013001243414D4552415F4445564943455F496E697419424F4152445F43616D6572615F4932435F53656E64534343420E48414C5F534452414D5F496E69740B44454255475F55534152540F4750494F5F4146375F5553415254320E4750494F5F4146375F5541525435134C43445F446973706C6179537472696E674174154C43445F446973706C6179537472696E674C696E650F4C43445F53656C6563744C617965720E4750494F5F414631345F4C544443065F5F6D61696E0A53797374656D496E6974145F5F48414C5F44434D495F454E41424C455F49540477656C6C146B5F6370755F6379636C655F7065725F7469636B056B5F6370750262700E50656E6453565F48616E646C65721253544D6963726F656C656374726F6E69637300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000000180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 955 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2362 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1440 + 960 + + + + + + 1 + 0 + + 100 + 0 + + ..\..\..\..\examples\nnom_mnist\nnom_mnsit_example.c + 2 + 37 + 85 + 1 + + 0 + + + startup_stm32l496xx.s + 0 + 15 + 16 + 1 + + 0 + + + ..\..\BSP\Src\main.c + 0 + 1 + 22 + 1 + + 0 + + + ..\..\BSP\Src\usart.c + 0 + 1 + 1 + 1 + + 0 + + + ..\..\..\..\kernel\core\tos_pend.c + 0 + 46 + 115 + 1 + + 0 + + + ..\..\..\..\components\ai\nnom\src\backends\nnom_local.c + 0 + 1248 + 1331 + 1 + + 0 + + + ..\..\BSP\Src\mcu_init.c + 17 + 1 + 41 + 1 + + 0 + + + + +
    diff --git a/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny.uvoptx b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny.uvoptx new file mode 100644 index 00000000..37159686 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny.uvoptx @@ -0,0 +1,1492 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp;*.cc + 0 + + + + 0 + 0 + + + + TencentOS_tiny + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0) + + + 0 + ST-LINKIII-KEIL_SWO + -U0667FF343339415043053749 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO31 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32L496ZGTx$CMSIS\Flash\STM32L4xx_1024.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L496ZGTx$CMSIS\Flash\STM32L4xx_1024.FLM)) + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 0 + 2 + 10000000 + + + + + + Application/MDK-ARM + 1 + 0 + 0 + 0 + + 1 + 1 + 2 + 0 + 0 + 0 + startup_stm32l496xx.s + startup_stm32l496xx.s + 0 + 0 + + + + + Application/User + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\main.c + main.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\gpio.c + gpio.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\stm32l4xx_hal_msp.c + stm32l4xx_hal_msp.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\stm32l4xx_it.c + stm32l4xx_it.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\sys.c + sys.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\usart.c + usart.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\mcu_init.c + mcu_init.c + 0 + 0 + + + 2 + 9 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\dcmi.c + dcmi.c + 0 + 0 + + + 2 + 10 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\dma.c + dma.c + 0 + 0 + + + 2 + 11 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\i2c.c + i2c.c + 0 + 0 + + + 2 + 12 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\spi.c + spi.c + 0 + 0 + + + 2 + 13 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\tim.c + tim.c + 0 + 0 + + + + + Drivers/STM32L4xx_HAL_Driver + 0 + 0 + 0 + 0 + + 3 + 14 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c + stm32l4xx_hal_uart.c + 0 + 0 + + + 3 + 15 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c + stm32l4xx_hal_uart_ex.c + 0 + 0 + + + 3 + 16 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c + stm32l4xx_hal.c + 0 + 0 + + + 3 + 17 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c + stm32l4xx_hal_i2c.c + 0 + 0 + + + 3 + 18 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c + stm32l4xx_hal_i2c_ex.c + 0 + 0 + + + 3 + 19 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c + stm32l4xx_hal_rcc.c + 0 + 0 + + + 3 + 20 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c + stm32l4xx_hal_rcc_ex.c + 0 + 0 + + + 3 + 21 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c + stm32l4xx_hal_flash.c + 0 + 0 + + + 3 + 22 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c + stm32l4xx_hal_flash_ex.c + 0 + 0 + + + 3 + 23 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c + stm32l4xx_hal_flash_ramfunc.c + 0 + 0 + + + 3 + 24 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c + stm32l4xx_hal_gpio.c + 0 + 0 + + + 3 + 25 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c + stm32l4xx_hal_dma.c + 0 + 0 + + + 3 + 26 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c + stm32l4xx_hal_dma_ex.c + 0 + 0 + + + 3 + 27 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c + stm32l4xx_hal_pwr.c + 0 + 0 + + + 3 + 28 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c + stm32l4xx_hal_pwr_ex.c + 0 + 0 + + + 3 + 29 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c + stm32l4xx_hal_cortex.c + 0 + 0 + + + 3 + 30 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c + stm32l4xx_hal_exti.c + 0 + 0 + + + 3 + 31 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c + stm32l4xx_hal_tim.c + 0 + 0 + + + 3 + 32 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c + stm32l4xx_hal_tim_ex.c + 0 + 0 + + + 3 + 33 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dcmi.c + stm32l4xx_hal_dcmi.c + 0 + 0 + + + 3 + 34 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c + stm32l4xx_hal_spi.c + 0 + 0 + + + 3 + 35 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c + stm32l4xx_hal_spi_ex.c + 0 + 0 + + + + + Drivers/CMSIS + 0 + 0 + 0 + 0 + + 4 + 36 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\system_stm32l4xx.c + system_stm32l4xx.c + 0 + 0 + + + + + tos/arch + 0 + 0 + 0 + 0 + + 5 + 37 + 1 + 0 + 0 + 0 + ..\..\..\..\arch\arm\arm-v7m\common\tos_cpu.c + tos_cpu.c + 0 + 0 + + + 5 + 38 + 1 + 0 + 0 + 0 + ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_c.c + port_c.c + 0 + 0 + + + 5 + 39 + 2 + 0 + 0 + 0 + ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_s.S + port_s.S + 0 + 0 + + + + + tos/kernel + 0 + 0 + 0 + 0 + + 6 + 40 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_binary_heap.c + tos_binary_heap.c + 0 + 0 + + + 6 + 41 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_char_fifo.c + tos_char_fifo.c + 0 + 0 + + + 6 + 42 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_completion.c + tos_completion.c + 0 + 0 + + + 6 + 43 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_countdownlatch.c + tos_countdownlatch.c + 0 + 0 + + + 6 + 44 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_event.c + tos_event.c + 0 + 0 + + + 6 + 45 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_global.c + tos_global.c + 0 + 0 + + + 6 + 46 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_mail_queue.c + tos_mail_queue.c + 0 + 0 + + + 6 + 47 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_message_queue.c + tos_message_queue.c + 0 + 0 + + + 6 + 48 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_mmblk.c + tos_mmblk.c + 0 + 0 + + + 6 + 49 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_mmheap.c + tos_mmheap.c + 0 + 0 + + + 6 + 50 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_mutex.c + tos_mutex.c + 0 + 0 + + + 6 + 51 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_pend.c + tos_pend.c + 0 + 0 + + + 6 + 52 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_priority_mail_queue.c + tos_priority_mail_queue.c + 0 + 0 + + + 6 + 53 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_priority_message_queue.c + tos_priority_message_queue.c + 0 + 0 + + + 6 + 54 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_priority_queue.c + tos_priority_queue.c + 0 + 0 + + + 6 + 55 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_ring_queue.c + tos_ring_queue.c + 0 + 0 + + + 6 + 56 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_robin.c + tos_robin.c + 0 + 0 + + + 6 + 57 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_sched.c + tos_sched.c + 0 + 0 + + + 6 + 58 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_sem.c + tos_sem.c + 0 + 0 + + + 6 + 59 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_sys.c + tos_sys.c + 0 + 0 + + + 6 + 60 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_task.c + tos_task.c + 0 + 0 + + + 6 + 61 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_tick.c + tos_tick.c + 0 + 0 + + + 6 + 62 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_time.c + tos_time.c + 0 + 0 + + + 6 + 63 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_timer.c + tos_timer.c + 0 + 0 + + + + + tos/cmsis_os + 0 + 0 + 0 + 0 + + 7 + 64 + 1 + 0 + 0 + 0 + ..\..\..\..\osal\cmsis_os\cmsis_os.c + cmsis_os.c + 0 + 0 + + + + + hal + 0 + 0 + 0 + 0 + + 8 + 65 + 1 + 0 + 0 + 0 + ..\..\BSP\Hardware\Src\delay.c + delay.c + 0 + 0 + + + 8 + 66 + 1 + 0 + 0 + 0 + ..\..\BSP\Hardware\Src\lcd_2inch4.c + lcd_2inch4.c + 0 + 0 + + + 8 + 67 + 1 + 0 + 0 + 0 + ..\..\BSP\Hardware\Src\lcd_config.c + lcd_config.c + 0 + 0 + + + 8 + 68 + 1 + 0 + 0 + 0 + ..\..\BSP\Hardware\Src\ov2640.c + ov2640.c + 0 + 0 + + + 8 + 69 + 1 + 0 + 0 + 0 + ..\..\BSP\Hardware\Src\sccb.c + sccb.c + 0 + 0 + + + + + examples + 1 + 0 + 0 + 0 + + 9 + 70 + 1 + 0 + 0 + 0 + ..\..\..\..\examples\nnom_mnist\nnom_mnsit_example.c + nnom_mnsit_example.c + 0 + 0 + + + + + nnom + 0 + 0 + 0 + 0 + + 10 + 71 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\backends\nnom_local.c + nnom_local.c + 0 + 0 + + + 10 + 72 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\core\nnom.c + nnom.c + 0 + 0 + + + 10 + 73 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\core\nnom_layers.c + nnom_layers.c + 0 + 0 + + + 10 + 74 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\core\nnom_tensor.c + nnom_tensor.c + 0 + 0 + + + 10 + 75 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\core\nnom_utils.c + nnom_utils.c + 0 + 0 + + + 10 + 76 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_activation.c + nnom_activation.c + 0 + 0 + + + 10 + 77 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_avgpool.c + nnom_avgpool.c + 0 + 0 + + + 10 + 78 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_baselayer.c + nnom_baselayer.c + 0 + 0 + + + 10 + 79 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_concat.c + nnom_concat.c + 0 + 0 + + + 10 + 80 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_conv2d.c + nnom_conv2d.c + 0 + 0 + + + 10 + 81 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_conv2d_trans.c + nnom_conv2d_trans.c + 0 + 0 + + + 10 + 82 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_cropping.c + nnom_cropping.c + 0 + 0 + + + 10 + 83 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_dense.c + nnom_dense.c + 0 + 0 + + + 10 + 84 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_dw_conv2d.c + nnom_dw_conv2d.c + 0 + 0 + + + 10 + 85 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_flatten.c + nnom_flatten.c + 0 + 0 + + + 10 + 86 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_global_pool.c + nnom_global_pool.c + 0 + 0 + + + 10 + 87 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_gru_cell.c + nnom_gru_cell.c + 0 + 0 + + + 10 + 88 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_input.c + nnom_input.c + 0 + 0 + + + 10 + 89 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_lambda.c + nnom_lambda.c + 0 + 0 + + + 10 + 90 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_lstm_cell.c + nnom_lstm_cell.c + 0 + 0 + + + 10 + 91 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_matrix.c + nnom_matrix.c + 0 + 0 + + + 10 + 92 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_maxpool.c + nnom_maxpool.c + 0 + 0 + + + 10 + 93 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_output.c + nnom_output.c + 0 + 0 + + + 10 + 94 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_rnn.c + nnom_rnn.c + 0 + 0 + + + 10 + 95 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_simple_cell.c + nnom_simple_cell.c + 0 + 0 + + + 10 + 96 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_softmax.c + nnom_softmax.c + 0 + 0 + + + 10 + 97 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_sumpool.c + nnom_sumpool.c + 0 + 0 + + + 10 + 98 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_upsample.c + nnom_upsample.c + 0 + 0 + + + 10 + 99 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\layers\nnom_zero_padding.c + nnom_zero_padding.c + 0 + 0 + + + 10 + 100 + 1 + 0 + 0 + 0 + ..\..\..\..\components\ai\nnom\src\backends\nnom_local_q15.c + nnom_local_q15.c + 0 + 0 + + + + + ::CMSIS + 0 + 0 + 0 + 1 + + +
    diff --git a/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny.uvprojx b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny.uvprojx new file mode 100644 index 00000000..e0049a35 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny.uvprojx @@ -0,0 +1,968 @@ + + + + 2.1 + +
    ### uVision Project, (C) Keil Software
    + + + + TencentOS_tiny + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32L496ZGTx + STMicroelectronics + Keil.STM32L4xx_DFP.2.5.0 + https://www.keil.com/pack/ + IRAM(0x20000000-0x2004FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(8000000) FPU2 CPUTYPE("Cortex-M4") + + + + + + + + + + + + + + + $$Device:STM32L496ZGTx$CMSIS\SVD\STM32L4x6.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + TencentOS_tiny\ + TencentOS_tiny + 1 + 0 + 1 + 1 + 1 + + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 0 + + + SARMCM3.DLL + -REMAP -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4107 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x50000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x50000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 3 + 3 + 1 + 1 + 0 + 0 + 0 + + + USE_HAL_DRIVER,STM32L496xx,NUCLEO_STM32L496ZG + + ..\..\BSP\Inc;..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Inc;..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Inc\Legacy;..\..\..\..\platform\vendor_bsp\st\CMSIS\Device\ST\STM32L4xx\Include;..\..\..\..\platform\vendor_bsp\st\CMSIS\Include;..\..\..\..\arch\arm\arm-v7m\common\include;..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc;..\..\..\..\kernel\core\include;..\..\..\..\kernel\pm\include;..\..\..\..\osal\cmsis_os;..\..\..\..\examples\hello_world;..\..\TOS_CONFIG;..\..\..\..\net\at\include;..\..\..\..\kernel\hal\include;..\..\BSP\Hardware\Inc;..\..\..\..\components\ai\nnom\inc;..\..\..\..\components\ai\nnom\inc\layers;..\..\..\..\components\ai\nnom\port;..\..\..\..\examples\nnom_mnist\data + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Application/MDK-ARM + + + startup_stm32l496xx.s + 2 + startup_stm32l496xx.s + + + + + Application/User + + + main.c + 1 + ..\..\BSP\Src\main.c + + + gpio.c + 1 + ..\..\BSP\Src\gpio.c + + + stm32l4xx_hal_msp.c + 1 + ..\..\BSP\Src\stm32l4xx_hal_msp.c + + + stm32l4xx_it.c + 1 + ..\..\BSP\Src\stm32l4xx_it.c + + + sys.c + 1 + ..\..\BSP\Src\sys.c + + + usart.c + 1 + ..\..\BSP\Src\usart.c + + + mcu_init.c + 1 + ..\..\BSP\Src\mcu_init.c + + + dcmi.c + 1 + ..\..\BSP\Src\dcmi.c + + + dma.c + 1 + ..\..\BSP\Src\dma.c + + + i2c.c + 1 + ..\..\BSP\Src\i2c.c + + + spi.c + 1 + ..\..\BSP\Src\spi.c + + + tim.c + 1 + ..\..\BSP\Src\tim.c + + + + + Drivers/STM32L4xx_HAL_Driver + + + stm32l4xx_hal_uart.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c + + + stm32l4xx_hal_uart_ex.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c + + + stm32l4xx_hal.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c + + + stm32l4xx_hal_i2c.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c + + + stm32l4xx_hal_i2c_ex.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c + + + stm32l4xx_hal_rcc.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c + + + stm32l4xx_hal_rcc_ex.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c + + + stm32l4xx_hal_flash.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c + + + stm32l4xx_hal_flash_ex.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c + + + stm32l4xx_hal_flash_ramfunc.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c + + + stm32l4xx_hal_gpio.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c + + + stm32l4xx_hal_dma.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c + + + stm32l4xx_hal_dma_ex.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c + + + stm32l4xx_hal_pwr.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c + + + stm32l4xx_hal_pwr_ex.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c + + + stm32l4xx_hal_cortex.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c + + + stm32l4xx_hal_exti.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c + + + stm32l4xx_hal_tim.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c + + + stm32l4xx_hal_tim_ex.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c + + + stm32l4xx_hal_dcmi.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dcmi.c + + + stm32l4xx_hal_spi.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c + + + stm32l4xx_hal_spi_ex.c + 1 + ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c + + + + + Drivers/CMSIS + + + system_stm32l4xx.c + 1 + ..\..\BSP\Src\system_stm32l4xx.c + + + + + tos/arch + + + tos_cpu.c + 1 + ..\..\..\..\arch\arm\arm-v7m\common\tos_cpu.c + + + port_c.c + 1 + ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_c.c + + + port_s.S + 2 + ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_s.S + + + + + tos/kernel + + + tos_binary_heap.c + 1 + ..\..\..\..\kernel\core\tos_binary_heap.c + + + tos_char_fifo.c + 1 + ..\..\..\..\kernel\core\tos_char_fifo.c + + + tos_completion.c + 1 + ..\..\..\..\kernel\core\tos_completion.c + + + tos_countdownlatch.c + 1 + ..\..\..\..\kernel\core\tos_countdownlatch.c + + + tos_event.c + 1 + ..\..\..\..\kernel\core\tos_event.c + + + tos_global.c + 1 + ..\..\..\..\kernel\core\tos_global.c + + + tos_mail_queue.c + 1 + ..\..\..\..\kernel\core\tos_mail_queue.c + + + tos_message_queue.c + 1 + ..\..\..\..\kernel\core\tos_message_queue.c + + + tos_mmblk.c + 1 + ..\..\..\..\kernel\core\tos_mmblk.c + + + tos_mmheap.c + 1 + ..\..\..\..\kernel\core\tos_mmheap.c + + + tos_mutex.c + 1 + ..\..\..\..\kernel\core\tos_mutex.c + + + tos_pend.c + 1 + ..\..\..\..\kernel\core\tos_pend.c + + + tos_priority_mail_queue.c + 1 + ..\..\..\..\kernel\core\tos_priority_mail_queue.c + + + tos_priority_message_queue.c + 1 + ..\..\..\..\kernel\core\tos_priority_message_queue.c + + + tos_priority_queue.c + 1 + ..\..\..\..\kernel\core\tos_priority_queue.c + + + tos_ring_queue.c + 1 + ..\..\..\..\kernel\core\tos_ring_queue.c + + + tos_robin.c + 1 + ..\..\..\..\kernel\core\tos_robin.c + + + tos_sched.c + 1 + ..\..\..\..\kernel\core\tos_sched.c + + + tos_sem.c + 1 + ..\..\..\..\kernel\core\tos_sem.c + + + tos_sys.c + 1 + ..\..\..\..\kernel\core\tos_sys.c + + + tos_task.c + 1 + ..\..\..\..\kernel\core\tos_task.c + + + tos_tick.c + 1 + ..\..\..\..\kernel\core\tos_tick.c + + + tos_time.c + 1 + ..\..\..\..\kernel\core\tos_time.c + + + tos_timer.c + 1 + ..\..\..\..\kernel\core\tos_timer.c + + + + + tos/cmsis_os + + + cmsis_os.c + 1 + ..\..\..\..\osal\cmsis_os\cmsis_os.c + + + + + hal + + + delay.c + 1 + ..\..\BSP\Hardware\Src\delay.c + + + lcd_2inch4.c + 1 + ..\..\BSP\Hardware\Src\lcd_2inch4.c + + + lcd_config.c + 1 + ..\..\BSP\Hardware\Src\lcd_config.c + + + ov2640.c + 1 + ..\..\BSP\Hardware\Src\ov2640.c + + + sccb.c + 1 + ..\..\BSP\Hardware\Src\sccb.c + + + + + examples + + + nnom_mnsit_example.c + 1 + ..\..\..\..\examples\nnom_mnist\nnom_mnsit_example.c + + + + + nnom + + + nnom_local.c + 1 + ..\..\..\..\components\ai\nnom\src\backends\nnom_local.c + + + nnom.c + 1 + ..\..\..\..\components\ai\nnom\src\core\nnom.c + + + nnom_layers.c + 1 + ..\..\..\..\components\ai\nnom\src\core\nnom_layers.c + + + nnom_tensor.c + 1 + ..\..\..\..\components\ai\nnom\src\core\nnom_tensor.c + + + nnom_utils.c + 1 + ..\..\..\..\components\ai\nnom\src\core\nnom_utils.c + + + nnom_activation.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_activation.c + + + nnom_avgpool.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_avgpool.c + + + nnom_baselayer.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_baselayer.c + + + nnom_concat.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_concat.c + + + nnom_conv2d.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_conv2d.c + + + nnom_conv2d_trans.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_conv2d_trans.c + + + nnom_cropping.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_cropping.c + + + nnom_dense.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_dense.c + + + nnom_dw_conv2d.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_dw_conv2d.c + + + nnom_flatten.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_flatten.c + + + nnom_global_pool.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_global_pool.c + + + nnom_gru_cell.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_gru_cell.c + + + nnom_input.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_input.c + + + nnom_lambda.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_lambda.c + + + nnom_lstm_cell.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_lstm_cell.c + + + nnom_matrix.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_matrix.c + + + nnom_maxpool.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_maxpool.c + + + nnom_output.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_output.c + + + nnom_rnn.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_rnn.c + + + nnom_simple_cell.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_simple_cell.c + + + nnom_softmax.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_softmax.c + + + nnom_sumpool.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_sumpool.c + + + nnom_upsample.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_upsample.c + + + nnom_zero_padding.c + 1 + ..\..\..\..\components\ai\nnom\src\layers\nnom_zero_padding.c + + + nnom_local_q15.c + 1 + ..\..\..\..\components\ai\nnom\src\backends\nnom_local_q15.c + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + + + + + <Project Info> + + + + + + 0 + 1 + + + + +
    diff --git a/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny/TencentOS_tiny.build_log.htm b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny/TencentOS_tiny.build_log.htm new file mode 100644 index 00000000..da1a8461 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny/TencentOS_tiny.build_log.htm @@ -0,0 +1,63 @@ + + +
    +

    µVision Build Log

    +

    Tool Versions:

    +IDE-Version: ¦ÌVision V5.30.0.0 +Copyright (C) 2020 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 2, 3, LIC=VGXG8-3EBEY-FWM2N-Y5VPW-1RV7D-LEXKU + +Tool Versions: +Toolchain: MDK-ARM Plus Version: 5.30.0.0 +Toolchain Path: D:\software\Keil\ARM\ARMCC\Bin +C Compiler: Armcc.exe V5.06 update 6 (build 750) +Assembler: Armasm.exe V5.06 update 6 (build 750) +Linker/Locator: ArmLink.exe V5.06 update 6 (build 750) +Library Manager: ArmAr.exe V5.06 update 6 (build 750) +Hex Converter: FromElf.exe V5.06 update 6 (build 750) +CPU DLL: SARMCM3.DLL V5.30.0.0 +Dialog DLL: DCM.DLL V1.17.3.0 +Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.7.0 +Dialog DLL: TCM.DLL V1.42.0.0 + +

    Project:

    +D:\Code\Project\tencentos\TencentOS-tiny\board\NUCLEO_STM32L496ZG\KEIL\nnom_mnist\TencentOS_tiny.uvprojx +Project File Date: 09/08/2021 + +

    Output:

    +*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\software\Keil\ARM\ARMCC\Bin' +Build target 'TencentOS_tiny' +compiling nnom_mnsit_example.c... +..\..\..\..\examples\nnom_mnist\data\weights.h(420): warning: #1-D: last line of file ends without a newline + } +..\..\..\..\examples\nnom_mnist\nnom_mnsit_example.c: 1 warning, 0 errors +linking... +Program Size: Code=27340 RO-data=98532 RW-data=112 ZI-data=65136 +FromELF: creating hex file... +"TencentOS_tiny\TencentOS_tiny.axf" - 0 Error(s), 1 Warning(s). + +

    Software Packages used:

    + +Package Vendor: ARM + http://www.keil.com/pack/ARM.CMSIS.5.7.0.pack + ARM.CMSIS.5.7.0 + CMSIS (Cortex Microcontroller Software Interface Standard) + * Component: CORE Version: 5.4.0 + +Package Vendor: Keil + https://www.keil.com/pack/Keil.STM32L4xx_DFP.2.5.0.pack + Keil.STM32L4xx_DFP.2.5.0 + STMicroelectronics STM32L4 Series Device Support, Drivers and Examples + +

    Collection of Component include folders:

    + .\RTE\_TencentOS_tiny + D:\software\Keil\ARM\CMSIS\5.7.0\CMSIS\Core\Include + D:\software\Keil\Keil\STM32L4xx_DFP\2.5.0\Drivers\CMSIS\Device\ST\STM32L4xx\Include + +

    Collection of Component Files used:

    + + * Component: ARM::CMSIS:CORE:5.4.0 +Build Time Elapsed: 00:00:04 +
    + + diff --git a/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny/TencentOS_tiny.htm b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny/TencentOS_tiny.htm new file mode 100644 index 00000000..3d552b25 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny/TencentOS_tiny.htm @@ -0,0 +1,3104 @@ + + +Static Call Graph - [TencentOS_tiny\TencentOS_tiny.axf] +
    +

    Static Call Graph for image TencentOS_tiny\TencentOS_tiny.axf


    +

    #<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Sep 08 23:09:50 2021 +

    +

    Maximum Stack Usage = 320 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

    +Call chain for Maximum Stack Depth:

    +main ⇒ board_init ⇒ SystemClock_Config ⇒ HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +

    +

    +Functions with no stack information +

    + +

    +

    +Mutually Recursive functions +

  • ADC1_2_IRQHandler   ⇒   ADC1_2_IRQHandler
    +
  • BusFault_Handler   ⇒   BusFault_Handler
    +
  • HardFault_Handler   ⇒   HardFault_Handler
    +
  • MemManage_Handler   ⇒   MemManage_Handler
    +
  • UsageFault_Handler   ⇒   UsageFault_Handler
    +
  • compile_layers   ⇒   compile_layers
    +
  • knl_idle_entry   ⇒   knl_idle_entry
    + +

    +

    +Function Pointers +

      +
    • ADC1_2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • ADC3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • BusFault_Handler from stm32l4xx_it.o(i.BusFault_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • CAN1_RX0_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN1_RX1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN1_SCE_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN1_TX_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN2_RX0_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN2_RX1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN2_SCE_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CAN2_TX_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • COMP_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • CRS_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DCMI_DMAError from stm32l4xx_hal_dcmi.o(i.DCMI_DMAError) referenced from stm32l4xx_hal_dcmi.o(i.HAL_DCMI_IRQHandler) +
    • DCMI_IRQHandler from stm32l4xx_it.o(i.DCMI_IRQHandler) referenced from startup_stm32l496xx.o(RESET) +
    • DFSDM1_FLT0_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DFSDM1_FLT1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DFSDM1_FLT2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DFSDM1_FLT3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel4_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel5_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel6_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA1_Channel7_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2D_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel4_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel5_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel6_IRQHandler from stm32l4xx_it.o(i.DMA2_Channel6_IRQHandler) referenced from startup_stm32l496xx.o(RESET) +
    • DMA2_Channel7_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • DebugMon_Handler from stm32l4xx_it.o(i.DebugMon_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI0_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI15_10_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI4_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • EXTI9_5_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • FLASH_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • FMC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • FPU_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • HardFault_Handler from stm32l4xx_it.o(i.HardFault_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • I2C1_ER_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C1_EV_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C2_ER_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C2_EV_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C3_ER_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C3_EV_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C4_ER_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • I2C4_EV_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • LCD_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • LPTIM1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • LPTIM2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • LPUART1_IRQHandler from stm32l4xx_it.o(i.LPUART1_IRQHandler) referenced from startup_stm32l496xx.o(RESET) +
    • MemManage_Handler from stm32l4xx_it.o(i.MemManage_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • NMI_Handler from stm32l4xx_it.o(i.NMI_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • OTG_FS_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • PVD_PVM_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • PendSV_Handler from port_s.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • QUADSPI_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • RCC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • RNG_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • RTC_Alarm_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • RTC_WKUP_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • Reset_Handler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SAI1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SAI2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SDMMC1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SPI1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SPI2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SPI3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SVC_Handler from stm32l4xx_it.o(i.SVC_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • SWPMI1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • SysTick_Handler from stm32l4xx_it.o(i.SysTick_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • SystemInit from system_stm32l4xx.o(i.SystemInit) referenced from startup_stm32l496xx.o(.text) +
    • TAMP_STAMP_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM1_BRK_TIM15_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM1_CC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM1_TRG_COM_TIM17_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM1_UP_TIM16_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM2_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM3_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM4_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM5_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM6_DAC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM7_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM8_BRK_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM8_CC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM8_TRG_COM_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TIM8_UP_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • TSC_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • UART4_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • UART5_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • UART_DMAAbortOnError from stm32l4xx_hal_uart.o(i.UART_DMAAbortOnError) referenced from stm32l4xx_hal_uart.o(i.HAL_UART_IRQHandler) +
    • USART1_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • USART2_IRQHandler from stm32l4xx_it.o(i.USART2_IRQHandler) referenced from startup_stm32l496xx.o(RESET) +
    • USART3_IRQHandler from stm32l4xx_it.o(i.USART3_IRQHandler) referenced from startup_stm32l496xx.o(RESET) +
    • UsageFault_Handler from stm32l4xx_it.o(i.UsageFault_Handler) referenced from startup_stm32l496xx.o(RESET) +
    • WWDG_IRQHandler from startup_stm32l496xx.o(.text) referenced from startup_stm32l496xx.o(RESET) +
    • __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32l496xx.o(.text) +
    • application_entry from nnom_mnsit_example.o(i.application_entry) referenced from main.o(.constdata) +
    • conv2d_build from nnom_conv2d.o(i.conv2d_build) referenced from nnom_conv2d.o(i.conv2d_s) +
    • conv2d_free from nnom_conv2d.o(i.conv2d_free) referenced from nnom_conv2d.o(i.conv2d_s) +
    • conv2d_run from nnom_conv2d.o(i.conv2d_run) referenced from nnom_conv2d.o(i.conv2d_s) +
    • default_build from nnom_baselayer.o(i.default_build) referenced from nnom_output.o(i.output_s) +
    • dense_build from nnom_dense.o(i.dense_build) referenced from nnom_dense.o(i.dense_s) +
    • dense_free from nnom_dense.o(i.dense_free) referenced from nnom_dense.o(i.dense_s) +
    • dense_run from nnom_dense.o(i.dense_run) referenced from nnom_dense.o(i.dense_s) +
    • flatten_build from nnom_flatten.o(i.flatten_build) referenced from nnom_flatten.o(i.Flatten) +
    • flatten_run from nnom_flatten.o(i.flatten_run) referenced from nnom_flatten.o(i.Flatten) +
    • fputc from mcu_init.o(i.fputc) referenced from printf8.o(i.__0printf$8) +
    • input_build from nnom_input.o(i.input_build) referenced from nnom_input.o(i.input_s) +
    • input_run from nnom_input.o(i.input_run) referenced from nnom_input.o(i.input_s) +
    • knl_idle_entry from tos_sys.o(i.knl_idle_entry) referenced from tos_sys.o(i.knl_idle_init) +
    • main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B) +
    • maxpool_build from nnom_maxpool.o(i.maxpool_build) referenced from nnom_maxpool.o(i.MaxPool) +
    • maxpool_run from nnom_maxpool.o(i.maxpool_run) referenced from nnom_maxpool.o(i.MaxPool) +
    • model_active from nnom.o(i.model_active) referenced from nnom.o(i.new_model) +
    • model_add from nnom.o(i.model_add) referenced from nnom.o(i.new_model) +
    • model_hook from nnom.o(i.model_hook) referenced from nnom.o(i.new_model) +
    • model_merge from nnom.o(i.model_merge) referenced from nnom.o(i.new_model) +
    • model_mergex from nnom.o(i.model_mergex) referenced from nnom.o(i.new_model) +
    • output_run from nnom_output.o(i.output_run) referenced from nnom_output.o(i.output_s) +
    • relu_run from nnom_activation.o(i.relu_run) referenced from nnom_activation.o(i.act_relu) +
    • softmax_build from nnom_softmax.o(i.softmax_build) referenced from nnom_softmax.o(i.Softmax) +
    • softmax_run from nnom_softmax.o(i.softmax_run) referenced from nnom_softmax.o(i.Softmax) +
    • task1 from nnom_mnsit_example.o(i.task1) referenced from nnom_mnsit_example.o(.constdata) +
    • task2 from nnom_mnsit_example.o(i.task2) referenced from nnom_mnsit_example.o(.constdata) +
    • task_exit from tos_task.o(i.task_exit) referenced from tos_task.o(i.tos_task_create) +
    +

    +

    +Global Symbols +

    +

    __main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(.text) +
    +

    _main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) + +

    _main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) +

    [Calls]

    • >>   __scatterload +
    + +

    __main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) +

    [Called By]

    • >>   __scatterload +
    + +

    _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) + +

    _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A)) + +

    _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B)) + +

    __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D)) + +

    __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F)) + +

    Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    ADC1_2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +

    [Calls]

    • >>   ADC1_2_IRQHandler +
    +
    [Called By]
    • >>   ADC1_2_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    ADC3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    COMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CRS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2D_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI15_10_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI9_5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FMC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FPU_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C2_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C2_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C3_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C3_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C4_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C4_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LCD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LPTIM1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LPTIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    OTG_FS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    PVD_PVM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    QUADSPI_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RCC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RNG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RTC_Alarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RTC_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SAI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SAI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SDMMC1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SWPMI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TAMP_STAMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_BRK_TIM15_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_TRG_COM_TIM17_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_UP_TIM16_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM6_DAC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_BRK_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_TRG_COM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_UP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TSC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    UART4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    UART5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    port_int_disable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED) + +

    port_int_enable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED) + +

    port_cpsr_save (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_cpsr_save +
    + +

    port_cpsr_restore (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_cpsr_restore +
    + +

    port_clz (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_clz +
    + +

    port_sched_start (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_sched_start +
    + +

    port_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_context_switch +
    + +

    port_irq_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_irq_context_switch +
    + +

    PendSV_Handler (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    __aeabi_uldivmod (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = __aeabi_uldivmod +
    +
    [Calls]
    • >>   __aeabi_llsr +
    • >>   __aeabi_llsl +
    +
    [Called By]
    • >>   UART_SetConfig +
    • >>   cpu_init +
    • >>   tos_millisec2tick +
    • >>   _printf_core +
    + +

    __aeabi_lasr (Thumb, 36 bytes, Stack size 0 bytes, llsshr.o(.text)) +

    [Called By]

    • >>   local_convolve_HWC_q15_nonsquare +
    + +

    _ll_sshift_r (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED) + +

    __aeabi_memcpy (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text)) +

    [Called By]

    • >>   input_run +
    • >>   tensor_set_attr_v +
    • >>   tensor_set_attr +
    • >>   tensor_cpy_attr +
    • >>   output_run +
    + +

    __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text)) +

    [Called By]

    • >>   mnist_nnom +
    • >>   tensor_set_attr +
    • >>   tensor_cpy_attr +
    + +

    __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED) + +

    __aeabi_memset (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text)) +

    [Called By]

    • >>   _memset$wrapper +
    • >>   __aeabi_memclr +
    + +

    __aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) + +

    __aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) + +

    __aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text)) +

    [Calls]

    • >>   __aeabi_memset +
    +
    [Called By]
    • >>   nnom_mem +
    • >>   tos_mmheap_calloc +
    + +

    __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text)) +

    [Called By]

    • >>   SystemClock_Config +
    • >>   HAL_UART_MspInit +
    • >>   MX_GPIO_Init +
    • >>   HAL_TIM_MspPostInit +
    • >>   HAL_SPI_MspInit +
    • >>   HAL_I2C_MspInit +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_TIM4_Init +
    • >>   new_model +
    + +

    __aeabi_memclr8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) + +

    _memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_memset +
    + +

    strncpy (Thumb, 24 bytes, Stack size 8 bytes, strncpy.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = strncpy +
    +
    [Called By]
    • >>   tos_task_create +
    + +

    __aeabi_dmul (Thumb, 228 bytes, Stack size 48 bytes, dmul.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round +
    +
    [Calls]
    • >>   _double_epilogue +
    +
    [Called By]
    • >>   print_img_nnom +
    + +

    __aeabi_i2d (Thumb, 34 bytes, Stack size 16 bytes, dflti.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = __aeabi_i2d ⇒ _double_epilogue ⇒ _double_round +
    +
    [Calls]
    • >>   _double_epilogue +
    +
    [Called By]
    • >>   print_img_nnom +
    + +

    __aeabi_d2iz (Thumb, 62 bytes, Stack size 16 bytes, dfixi.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __aeabi_d2iz +
    +
    [Calls]
    • >>   __aeabi_llsr +
    +
    [Called By]
    • >>   print_img_nnom +
    + +

    __aeabi_llsl (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text)) +

    [Called By]

    • >>   __aeabi_uldivmod +
    • >>   _double_epilogue +
    + +

    _ll_shift_l (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED) + +

    __aeabi_llsr (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text)) +

    [Called By]

    • >>   __aeabi_d2iz +
    • >>   __aeabi_uldivmod +
    • >>   _double_epilogue +
    + +

    _ll_ushift_r (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED) + +

    __I$use$fp (Thumb, 0 bytes, Stack size 8 bytes, iusefp.o(.text), UNUSED) + +

    _double_round (Thumb, 30 bytes, Stack size 8 bytes, depilogue.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = _double_round +
    +
    [Called By]
    • >>   _double_epilogue +
    + +

    _double_epilogue (Thumb, 156 bytes, Stack size 32 bytes, depilogue.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = _double_epilogue ⇒ _double_round +
    +
    [Calls]
    • >>   _double_round +
    • >>   __aeabi_llsr +
    • >>   __aeabi_llsl +
    +
    [Called By]
    • >>   __aeabi_i2d +
    • >>   __aeabi_dmul +
    + +

    __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text)) +

    [Calls]

    • >>   __main_after_scatterload +
    +
    [Called By]
    • >>   _main_scatterload +
    + +

    __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED) + +

    BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(i.BusFault_Handler)) +

    [Calls]

    • >>   BusFault_Handler +
    +
    [Called By]
    • >>   BusFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DCMI_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32l4xx_it.o(i.DCMI_IRQHandler)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = DCMI_IRQHandler ⇒ HAL_DCMI_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_DCMI_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel6_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32l4xx_it.o(i.DMA2_Channel6_IRQHandler)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = DMA2_Channel6_IRQHandler ⇒ HAL_DMA_IRQHandler +
    +
    [Calls]
    • >>   HAL_DMA_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(i.DebugMon_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    Error_Handler (Thumb, 2 bytes, Stack size 0 bytes, mcu_init.o(i.Error_Handler)) +

    [Called By]

    • >>   MX_DCMI_Init +
    • >>   MX_LPUART1_UART_Init +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_TIM4_Init +
    • >>   MX_SPI1_Init +
    • >>   MX_I2C1_Init +
    + +

    Flatten (Thumb, 62 bytes, Stack size 16 bytes, nnom_flatten.o(i.Flatten)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = Flatten ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_mem +
    • >>   io_init +
    +
    [Called By]
    • >>   flatten_s +
    + +

    HAL_DCMI_ErrorCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(i.HAL_DCMI_ErrorCallback)) +

    [Called By]

    • >>   DCMI_DMAError +
    + +

    HAL_DCMI_FrameEventCallback (Thumb, 22 bytes, Stack size 0 bytes, mcu_init.o(i.HAL_DCMI_FrameEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DCMI_IRQHandler (Thumb, 140 bytes, Stack size 16 bytes, stm32l4xx_hal_dcmi.o(i.HAL_DCMI_IRQHandler)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_DCMI_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_DCMI_FrameEventCallback +
    • >>   HAL_DMA_Abort_IT +
    • >>   HAL_DCMI_VsyncEventCallback +
    • >>   HAL_DCMI_LineEventCallback +
    • >>   DCMI_DMAError +
    +
    [Called By]
    • >>   DCMI_IRQHandler +
    + +

    HAL_DCMI_Init (Thumb, 152 bytes, Stack size 16 bytes, stm32l4xx_hal_dcmi.o(i.HAL_DCMI_Init)) +

    [Stack]

    • Max Depth = 120
    • Call Chain = HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_DCMI_MspInit +
    +
    [Called By]
    • >>   MX_DCMI_Init +
    + +

    HAL_DCMI_LineEventCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(i.HAL_DCMI_LineEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DCMI_MspInit (Thumb, 362 bytes, Stack size 64 bytes, dcmi.o(i.HAL_DCMI_MspInit)) +

    [Stack]

    • Max Depth = 104
    • Call Chain = HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    • >>   Error_Handler +
    • >>   HAL_GPIO_Init +
    • >>   HAL_DMA_Init +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   HAL_DCMI_Init +
    + +

    HAL_DCMI_VsyncEventCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(i.HAL_DCMI_VsyncEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DMA_Abort_IT (Thumb, 78 bytes, Stack size 8 bytes, stm32l4xx_hal_dma.o(i.HAL_DMA_Abort_IT)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_DMA_Abort_IT +
    +
    [Called By]
    • >>   HAL_UART_IRQHandler +
    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DMA_IRQHandler (Thumb, 186 bytes, Stack size 16 bytes, stm32l4xx_hal_dma.o(i.HAL_DMA_IRQHandler)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_DMA_IRQHandler +
    +
    [Called By]
    • >>   DMA2_Channel6_IRQHandler +
    + +

    HAL_DMA_Init (Thumb, 178 bytes, Stack size 16 bytes, stm32l4xx_hal_dma.o(i.HAL_DMA_Init)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_DMA_Init +
    +
    [Called By]
    • >>   HAL_DCMI_MspInit +
    + +

    HAL_GPIO_Init (Thumb, 398 bytes, Stack size 40 bytes, stm32l4xx_hal_gpio.o(i.HAL_GPIO_Init)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_UART_MspInit +
    • >>   MX_GPIO_Init +
    • >>   HAL_TIM_MspPostInit +
    • >>   HAL_SPI_MspInit +
    • >>   HAL_I2C_MspInit +
    • >>   HAL_DCMI_MspInit +
    + +

    HAL_GPIO_WritePin (Thumb, 10 bytes, Stack size 0 bytes, stm32l4xx_hal_gpio.o(i.HAL_GPIO_WritePin)) +

    [Called By]

    • >>   MX_GPIO_Init +
    + +

    HAL_GetTick (Thumb, 6 bytes, Stack size 0 bytes, stm32l4xx_hal.o(i.HAL_GetTick)) +

    [Called By]

    • >>   HAL_UART_Transmit +
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_RCCEx_PeriphCLKConfig +
    • >>   RCCEx_PLLSAI2_Config +
    • >>   RCCEx_PLLSAI1_Config +
    • >>   UART_WaitOnFlagUntilTimeout +
    • >>   UART_CheckIdleState +
    + +

    HAL_I2CEx_ConfigAnalogFilter (Thumb, 86 bytes, Stack size 0 bytes, stm32l4xx_hal_i2c_ex.o(i.HAL_I2CEx_ConfigAnalogFilter)) +

    [Called By]

    • >>   MX_I2C1_Init +
    + +

    HAL_I2CEx_ConfigDigitalFilter (Thumb, 82 bytes, Stack size 0 bytes, stm32l4xx_hal_i2c_ex.o(i.HAL_I2CEx_ConfigDigitalFilter)) +

    [Called By]

    • >>   MX_I2C1_Init +
    + +

    HAL_I2C_Init (Thumb, 178 bytes, Stack size 16 bytes, stm32l4xx_hal_i2c.o(i.HAL_I2C_Init)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_I2C_MspInit +
    +
    [Called By]
    • >>   MX_I2C1_Init +
    + +

    HAL_I2C_MspInit (Thumb, 94 bytes, Stack size 32 bytes, i2c.o(i.HAL_I2C_MspInit)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_Init +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   HAL_I2C_Init +
    + +

    HAL_IncTick (Thumb, 10 bytes, Stack size 0 bytes, stm32l4xx_hal.o(i.HAL_IncTick)) +

    [Called By]

    • >>   SysTick_Handler +
    + +

    HAL_Init (Thumb, 30 bytes, Stack size 8 bytes, stm32l4xx_hal.o(i.HAL_Init)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_MspInit +
    • >>   HAL_InitTick +
    • >>   HAL_NVIC_SetPriorityGrouping +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_InitTick (Thumb, 42 bytes, Stack size 16 bytes, stm32l4xx_hal.o(i.HAL_InitTick)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_SYSTICK_Config +
    +
    [Called By]
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_Init +
    + +

    HAL_MspInit (Thumb, 38 bytes, Stack size 8 bytes, stm32l4xx_hal_msp.o(i.HAL_MspInit)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_MspInit +
    +
    [Called By]
    • >>   HAL_Init +
    + +

    HAL_NVIC_EnableIRQ (Thumb, 26 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ)) +

    [Called By]

    • >>   MX_DMA_Init +
    • >>   HAL_UART_MspInit +
    • >>   HAL_DCMI_MspInit +
    + +

    HAL_NVIC_SetPriority (Thumb, 60 bytes, Stack size 16 bytes, stm32l4xx_hal_cortex.o(i.HAL_NVIC_SetPriority)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   __NVIC_SetPriority +
    +
    [Called By]
    • >>   MX_DMA_Init +
    • >>   HAL_UART_MspInit +
    • >>   HAL_InitTick +
    • >>   HAL_DCMI_MspInit +
    + +

    HAL_NVIC_SetPriorityGrouping (Thumb, 26 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping)) +

    [Called By]

    • >>   HAL_Init +
    + +

    HAL_PWREx_ControlVoltageScaling (Thumb, 90 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(i.HAL_PWREx_ControlVoltageScaling)) +

    [Called By]

    • >>   SystemClock_Config +
    + +

    HAL_PWREx_EnableVddIO2 (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(i.HAL_PWREx_EnableVddIO2)) +

    [Called By]

    • >>   HAL_UART_MspInit +
    • >>   MX_GPIO_Init +
    • >>   HAL_I2C_MspInit +
    + +

    HAL_PWREx_GetVoltageRange (Thumb, 10 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(i.HAL_PWREx_GetVoltageRange)) +

    [Called By]

    • >>   RCC_SetFlashLatencyFromMSIRange +
    + +

    HAL_RCCEx_PeriphCLKConfig (Thumb, 954 bytes, Stack size 40 bytes, stm32l4xx_hal_rcc_ex.o(i.HAL_RCCEx_PeriphCLKConfig)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_RCCEx_PeriphCLKConfig ⇒ RCCEx_PLLSAI2_Config +
    +
    [Calls]
    • >>   RCCEx_PLLSAI2_Config +
    • >>   RCCEx_PLLSAI1_Config +
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   SystemClock_Config +
    + +

    HAL_RCC_ClockConfig (Thumb, 264 bytes, Stack size 32 bytes, stm32l4xx_hal_rcc.o(i.HAL_RCC_ClockConfig)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_InitTick +
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   SystemClock_Config +
    + +

    HAL_RCC_GetPCLK1Freq (Thumb, 24 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)) +

    [Called By]

    • >>   UART_SetConfig +
    + +

    HAL_RCC_GetPCLK2Freq (Thumb, 24 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq)) +

    [Called By]

    • >>   UART_SetConfig +
    + +

    HAL_RCC_GetSysClockFreq (Thumb, 152 bytes, Stack size 16 bytes, stm32l4xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_RCC_GetSysClockFreq +
    +
    [Called By]
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   UART_SetConfig +
    + +

    HAL_RCC_OscConfig (Thumb, 1202 bytes, Stack size 32 bytes, stm32l4xx_hal_rcc.o(i.HAL_RCC_OscConfig)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   RCC_SetFlashLatencyFromMSIRange +
    • >>   HAL_InitTick +
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   SystemClock_Config +
    + +

    HAL_SPI_Init (Thumb, 172 bytes, Stack size 24 bytes, stm32l4xx_hal_spi.o(i.HAL_SPI_Init)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_SPI_MspInit +
    +
    [Called By]
    • >>   MX_SPI1_Init +
    + +

    HAL_SPI_MspInit (Thumb, 90 bytes, Stack size 32 bytes, spi.o(i.HAL_SPI_MspInit)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_GPIO_Init +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   HAL_SPI_Init +
    + +

    HAL_SYSTICK_Config (Thumb, 40 bytes, Stack size 8 bytes, stm32l4xx_hal_cortex.o(i.HAL_SYSTICK_Config)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_SYSTICK_Config +
    +
    [Calls]
    • >>   __NVIC_SetPriority +
    +
    [Called By]
    • >>   HAL_InitTick +
    + +

    HAL_TIMEx_MasterConfigSynchronization (Thumb, 88 bytes, Stack size 16 bytes, stm32l4xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_TIMEx_MasterConfigSynchronization +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_Base_Init (Thumb, 54 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(i.HAL_TIM_Base_Init)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = HAL_TIM_Base_Init ⇒ TIM_Base_SetConfig +
    +
    [Calls]
    • >>   HAL_TIM_Base_MspInit +
    • >>   TIM_Base_SetConfig +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_Base_MspInit (Thumb, 30 bytes, Stack size 8 bytes, tim.o(i.HAL_TIM_Base_MspInit)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_TIM_Base_MspInit +
    +
    [Called By]
    • >>   HAL_TIM_Base_Init +
    + +

    HAL_TIM_ConfigClockSource (Thumb, 230 bytes, Stack size 16 bytes, stm32l4xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_TIM_ConfigClockSource ⇒ TIM_ETR_SetConfig +
    +
    [Calls]
    • >>   TIM_ETR_SetConfig +
    • >>   TIM_TI2_ConfigInputStage +
    • >>   TIM_TI1_ConfigInputStage +
    • >>   TIM_ITRx_SetConfig +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_MspPostInit (Thumb, 68 bytes, Stack size 32 bytes, tim.o(i.HAL_TIM_MspPostInit)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_GPIO_Init +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_ConfigChannel (Thumb, 296 bytes, Stack size 16 bytes, stm32l4xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel)) +

    [Stack]

    • Max Depth = 44
    • Call Chain = HAL_TIM_PWM_ConfigChannel ⇒ TIM_OC1_SetConfig +
    +
    [Calls]
    • >>   TIM_OC2_SetConfig +
    • >>   TIM_OC6_SetConfig +
    • >>   TIM_OC5_SetConfig +
    • >>   TIM_OC4_SetConfig +
    • >>   TIM_OC3_SetConfig +
    • >>   TIM_OC1_SetConfig +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_Init (Thumb, 54 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(i.HAL_TIM_PWM_Init)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = HAL_TIM_PWM_Init ⇒ TIM_Base_SetConfig +
    +
    [Calls]
    • >>   HAL_TIM_PWM_MspInit +
    • >>   TIM_Base_SetConfig +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_MspInit (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_tim.o(i.HAL_TIM_PWM_MspInit)) +

    [Called By]

    • >>   HAL_TIM_PWM_Init +
    + +

    HAL_UARTEx_WakeupCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart_ex.o(i.HAL_UARTEx_WakeupCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    + +

    HAL_UART_ErrorCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_ErrorCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    • >>   UART_DMAAbortOnError +
    + +

    HAL_UART_IRQHandler (Thumb, 320 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_TxCpltCallback +
    • >>   HAL_UART_ErrorCallback +
    • >>   HAL_UARTEx_WakeupCallback +
    • >>   HAL_DMA_Abort_IT +
    • >>   UART_EndRxTransfer +
    +
    [Called By]
    • >>   USART3_IRQHandler +
    • >>   USART2_IRQHandler +
    • >>   LPUART1_IRQHandler +
    + +

    HAL_UART_Init (Thumb, 106 bytes, Stack size 8 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_Init)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_UART_MspInit +
    • >>   UART_SetConfig +
    • >>   UART_CheckIdleState +
    • >>   UART_AdvFeatureConfig +
    +
    [Called By]
    • >>   MX_LPUART1_UART_Init +
    + +

    HAL_UART_MspInit (Thumb, 318 bytes, Stack size 40 bytes, usart.o(i.HAL_UART_MspInit)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_Init +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    HAL_UART_Transmit (Thumb, 176 bytes, Stack size 32 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_Transmit)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout +
    +
    [Calls]
    • >>   HAL_GetTick +
    • >>   UART_WaitOnFlagUntilTimeout +
    +
    [Called By]
    • >>   fputc +
    + +

    HAL_UART_TxCpltCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_TxCpltCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    + +

    HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(i.HardFault_Handler)) +

    [Calls]

    • >>   HardFault_Handler +
    +
    [Called By]
    • >>   HardFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    LPUART1_IRQHandler (Thumb, 20 bytes, Stack size 8 bytes, stm32l4xx_it.o(i.LPUART1_IRQHandler)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = LPUART1_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   tos_knl_irq_leave +
    • >>   tos_knl_irq_enter +
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    MX_DCMI_Init (Thumb, 54 bytes, Stack size 8 bytes, dcmi.o(i.MX_DCMI_Init)) +

    [Stack]

    • Max Depth = 128
    • Call Chain = MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_DCMI_Init +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_DMA_Init (Thumb, 40 bytes, Stack size 8 bytes, dma.o(i.MX_DMA_Init)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = MX_DMA_Init ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_GPIO_Init (Thumb, 192 bytes, Stack size 48 bytes, gpio.o(i.MX_GPIO_Init)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = MX_GPIO_Init ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_WritePin +
    • >>   HAL_GPIO_Init +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_I2C1_Init (Thumb, 76 bytes, Stack size 8 bytes, i2c.o(i.MX_I2C1_Init)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = MX_I2C1_Init ⇒ HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_I2C_Init +
    • >>   HAL_I2CEx_ConfigDigitalFilter +
    • >>   HAL_I2CEx_ConfigAnalogFilter +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_LPUART1_UART_Init (Thumb, 50 bytes, Stack size 8 bytes, usart.o(i.MX_LPUART1_UART_Init)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = MX_LPUART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_UART_Init +
    • >>   Error_Handler +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_SPI1_Init (Thumb, 70 bytes, Stack size 8 bytes, spi.o(i.MX_SPI1_Init)) +

    [Stack]

    • Max Depth = 104
    • Call Chain = MX_SPI1_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_SPI_Init +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_TIM4_Init (Thumb, 148 bytes, Stack size 64 bytes, tim.o(i.MX_TIM4_Init)) +

    [Stack]

    • Max Depth = 136
    • Call Chain = MX_TIM4_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_TIM_PWM_Init +
    • >>   HAL_TIM_PWM_ConfigChannel +
    • >>   HAL_TIM_ConfigClockSource +
    • >>   HAL_TIM_Base_Init +
    • >>   HAL_TIMEx_MasterConfigSynchronization +
    • >>   HAL_TIM_MspPostInit +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   board_init +
    + +

    MaxPool (Thumb, 154 bytes, Stack size 40 bytes, nnom_maxpool.o(i.MaxPool)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = MaxPool ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_mem +
    • >>   io_init +
    +
    [Called By]
    • >>   maxpool_s +
    + +

    MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(i.MemManage_Handler)) +

    [Calls]

    • >>   MemManage_Handler +
    +
    [Called By]
    • >>   MemManage_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(i.NMI_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(i.SVC_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    Softmax (Thumb, 60 bytes, Stack size 16 bytes, nnom_softmax.o(i.Softmax)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = Softmax ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_mem +
    • >>   io_init +
    +
    [Called By]
    • >>   softmax_s +
    + +

    SysTick_Handler (Thumb, 32 bytes, Stack size 8 bytes, stm32l4xx_it.o(i.SysTick_Handler)) +

    [Stack]

    • Max Depth = 76 + Unknown Stack Size +
    • Call Chain = SysTick_Handler ⇒ tos_tick_handler ⇒ tick_update ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   tos_tick_handler +
    • >>   tos_knl_is_running +
    • >>   tos_knl_irq_leave +
    • >>   tos_knl_irq_enter +
    • >>   HAL_IncTick +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    SystemClock_Config (Thumb, 120 bytes, Stack size 240 bytes, mcu_init.o(i.SystemClock_Config)) +

    [Stack]

    • Max Depth = 304
    • Call Chain = SystemClock_Config ⇒ HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_RCCEx_PeriphCLKConfig +
    • >>   HAL_PWREx_ControlVoltageScaling +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   board_init +
    + +

    SystemInit (Thumb, 56 bytes, Stack size 0 bytes, system_stm32l4xx.o(i.SystemInit)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(.text) +
    +

    TIM_Base_SetConfig (Thumb, 160 bytes, Stack size 32 bytes, stm32l4xx_hal_tim.o(i.TIM_Base_SetConfig)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = TIM_Base_SetConfig +
    +
    [Called By]
    • >>   HAL_TIM_PWM_Init +
    • >>   HAL_TIM_Base_Init +
    + +

    TIM_ETR_SetConfig (Thumb, 20 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(i.TIM_ETR_SetConfig)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = TIM_ETR_SetConfig +
    +
    [Called By]
    • >>   HAL_TIM_ConfigClockSource +
    + +

    TIM_OC2_SetConfig (Thumb, 120 bytes, Stack size 20 bytes, stm32l4xx_hal_tim.o(i.TIM_OC2_SetConfig)) +

    [Stack]

    • Max Depth = 20
    • Call Chain = TIM_OC2_SetConfig +
    +
    [Called By]
    • >>   HAL_TIM_PWM_ConfigChannel +
    + +

    UART_AdvFeatureConfig (Thumb, 200 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(i.UART_AdvFeatureConfig)) +

    [Called By]

    • >>   HAL_UART_Init +
    + +

    UART_CheckIdleState (Thumb, 92 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(i.UART_CheckIdleState)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = UART_CheckIdleState ⇒ UART_WaitOnFlagUntilTimeout +
    +
    [Calls]
    • >>   HAL_GetTick +
    • >>   UART_WaitOnFlagUntilTimeout +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    UART_SetConfig (Thumb, 622 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(i.UART_SetConfig)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = UART_SetConfig ⇒ __aeabi_uldivmod +
    +
    [Calls]
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_RCC_GetPCLK2Freq +
    • >>   HAL_RCC_GetPCLK1Freq +
    • >>   __aeabi_uldivmod +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    UART_WaitOnFlagUntilTimeout (Thumb, 100 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = UART_WaitOnFlagUntilTimeout +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_UART_Transmit +
    • >>   UART_CheckIdleState +
    + +

    USART2_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32l4xx_it.o(i.USART2_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = USART2_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    USART3_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32l4xx_it.o(i.USART3_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = USART3_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    UsageFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(i.UsageFault_Handler)) +

    [Calls]

    • >>   UsageFault_Handler +
    +
    [Called By]
    • >>   UsageFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    __0printf$8 (Thumb, 22 bytes, Stack size 24 bytes, printf8.o(i.__0printf$8), UNUSED) +

    [Calls]

    • >>   _printf_core +
    + +

    __1printf$8 (Thumb, 0 bytes, Stack size 24 bytes, printf8.o(i.__0printf$8), UNUSED) + +

    __2printf (Thumb, 0 bytes, Stack size 24 bytes, printf8.o(i.__0printf$8)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __2printf +
    +
    [Called By]
    • >>   main +
    • >>   set_tailed_activation +
    • >>   nnom_malloc +
    • >>   model_run_to +
    • >>   mem_analysis_result +
    • >>   layer_run +
    • >>   print_memory_block_info +
    • >>   print_layer_info +
    • >>   model_add +
    • >>   allocate_block +
    • >>   model_compile +
    • >>   check_model_version +
    • >>   print_img_nnom +
    • >>   mnist_nnom +
    • >>   application_entry +
    • >>   new_tensor +
    + +

    __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) + +

    __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) + +

    __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) + +

    act_get_dec_bit (Thumb, 22 bytes, Stack size 0 bytes, nnom_activation.o(i.act_get_dec_bit)) +

    [Called By]

    • >>   dense_build +
    • >>   conv2d_build +
    • >>   maxpool_build +
    • >>   default_build +
    + +

    act_relu (Thumb, 18 bytes, Stack size 8 bytes, nnom_activation.o(i.act_relu)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = act_relu ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_mem +
    +
    [Called By]
    • >>   nnom_model_create +
    + +

    application_entry (Thumb, 30 bytes, Stack size 8 bytes, nnom_mnsit_example.o(i.application_entry)) +

    [Stack]

    • Max Depth = 200 + Unknown Stack Size +
    • Call Chain = application_entry ⇒ osThreadCreate ⇒ tos_task_create_dyn ⇒ tos_mmheap_calloc ⇒ tos_mmheap_alloc ⇒ blk_prepare_used ⇒ blk_insert ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   osThreadCreate +
    • >>   __2printf +
    +
    [Address Reference Count : 1]
    • main.o(.constdata) +
    +

    block_mem_set (Thumb, 36 bytes, Stack size 16 bytes, nnom.o(i.block_mem_set)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = block_mem_set +
    +
    [Called By]
    • >>   model_compile +
    + +

    board_init (Thumb, 42 bytes, Stack size 8 bytes, mcu_init.o(i.board_init)) +

    [Stack]

    • Max Depth = 312
    • Call Chain = board_init ⇒ SystemClock_Config ⇒ HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   MX_DMA_Init +
    • >>   MX_DCMI_Init +
    • >>   HAL_Init +
    • >>   SystemClock_Config +
    • >>   MX_LPUART1_UART_Init +
    • >>   MX_GPIO_Init +
    • >>   MX_TIM4_Init +
    • >>   MX_SPI1_Init +
    • >>   MX_I2C1_Init +
    +
    [Called By]
    • >>   main +
    + +

    check_model_version (Thumb, 62 bytes, Stack size 16 bytes, nnom.o(i.check_model_version)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = check_model_version ⇒ __2printf +
    +
    [Calls]
    • >>   __2printf +
    +
    [Called By]
    • >>   nnom_model_create +
    + +

    compile_layers (Thumb, 502 bytes, Stack size 40 bytes, nnom.o(i.compile_layers)) +

    [Stack]

    • Max Depth = 96 + In Cycle +
    • Call Chain = compile_layers ⇒ compile_layers (Cycle) +
    +
    [Calls]
    • >>   tensor_size +
    • >>   nnom_hook_length +
    • >>   nnom_alignto +
    • >>   compile_layers +
    • >>   release_input_mem +
    • >>   release_comp_mem +
    • >>   print_memory_block_info +
    • >>   print_layer_info +
    • >>   allocate_block +
    +
    [Called By]
    • >>   compile_layers +
    • >>   model_compile +
    + +

    conv2d_build (Thumb, 246 bytes, Stack size 16 bytes, nnom_conv2d.o(i.conv2d_build)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = conv2d_build ⇒ new_tensor ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   tensor_size +
    • >>   conv_output_length +
    • >>   act_get_dec_bit +
    • >>   tensor_cpy_attr +
    • >>   new_tensor +
    +
    [Address Reference Count : 1]
    • nnom_conv2d.o(i.conv2d_s) +
    +

    conv2d_free (Thumb, 24 bytes, Stack size 8 bytes, nnom_conv2d.o(i.conv2d_free)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = conv2d_free +
    +
    [Calls]
    • >>   delete_tensor +
    +
    [Address Reference Count : 1]
    • nnom_conv2d.o(i.conv2d_s) +
    +

    conv2d_run (Thumb, 178 bytes, Stack size 128 bytes, nnom_conv2d.o(i.conv2d_run)) +

    [Stack]

    • Max Depth = 224
    • Call Chain = conv2d_run ⇒ local_convolve_HWC_q7_nonsquare +
    +
    [Calls]
    • >>   local_convolve_HWC_q7_nonsquare +
    • >>   local_convolve_HWC_q15_nonsquare +
    +
    [Address Reference Count : 1]
    • nnom_conv2d.o(i.conv2d_s) +
    +

    conv2d_s (Thumb, 290 bytes, Stack size 24 bytes, nnom_conv2d.o(i.conv2d_s)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = conv2d_s ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_mem +
    • >>   stride +
    • >>   kernel +
    • >>   io_init +
    • >>   dilation +
    +
    [Called By]
    • >>   nnom_model_create +
    + +

    conv_output_length (Thumb, 32 bytes, Stack size 8 bytes, nnom_conv2d.o(i.conv_output_length)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = conv_output_length +
    +
    [Called By]
    • >>   conv2d_build +
    + +

    cpu_context_switch (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(i.cpu_context_switch)) +

    [Calls]

    • >>   port_context_switch +
    +
    [Called By]
    • >>   knl_sched +
    + +

    cpu_init (Thumb, 30 bytes, Stack size 8 bytes, tos_cpu.o(i.cpu_init)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = cpu_init ⇒ __aeabi_uldivmod +
    +
    [Calls]
    • >>   cpu_systick_init +
    • >>   __aeabi_uldivmod +
    +
    [Called By]
    • >>   tos_knl_init +
    + +

    cpu_irq_context_switch (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(i.cpu_irq_context_switch)) +

    [Calls]

    • >>   port_irq_context_switch +
    +
    [Called By]
    • >>   tos_knl_irq_leave +
    + +

    cpu_sched_start (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(i.cpu_sched_start)) +

    [Calls]

    • >>   port_sched_start +
    +
    [Called By]
    • >>   tos_knl_start +
    + +

    cpu_systick_init (Thumb, 20 bytes, Stack size 8 bytes, tos_cpu.o(i.cpu_systick_init)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = cpu_systick_init ⇒ port_systick_config +
    +
    [Calls]
    • >>   port_systick_priority_set +
    • >>   port_systick_config +
    +
    [Called By]
    • >>   cpu_init +
    + +

    cpu_task_stk_init (Thumb, 144 bytes, Stack size 12 bytes, tos_cpu.o(i.cpu_task_stk_init)) +

    [Stack]

    • Max Depth = 12
    • Call Chain = cpu_task_stk_init +
    +
    [Called By]
    • >>   tos_task_create +
    + +

    default_build (Thumb, 74 bytes, Stack size 8 bytes, nnom_baselayer.o(i.default_build)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = default_build ⇒ new_tensor ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   act_get_dec_bit +
    • >>   tensor_get_num_channel +
    • >>   tensor_cpy_attr +
    • >>   new_tensor +
    +
    [Address Reference Count : 1]
    • nnom_output.o(i.output_s) +
    +

    delete_tensor (Thumb, 10 bytes, Stack size 0 bytes, nnom_tensor.o(i.delete_tensor)) +

    [Calls]

    • >>   nnom_free +
    +
    [Called By]
    • >>   dense_free +
    • >>   conv2d_free +
    + +

    dense_build (Thumb, 150 bytes, Stack size 24 bytes, nnom_dense.o(i.dense_build)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = dense_build ⇒ new_tensor ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   tensor_size +
    • >>   act_get_dec_bit +
    • >>   tensor_set_attr +
    • >>   tensor_get_num_channel +
    • >>   new_tensor +
    +
    [Address Reference Count : 1]
    • nnom_dense.o(i.dense_s) +
    +

    dense_free (Thumb, 24 bytes, Stack size 8 bytes, nnom_dense.o(i.dense_free)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = dense_free +
    +
    [Calls]
    • >>   delete_tensor +
    +
    [Address Reference Count : 1]
    • nnom_dense.o(i.dense_s) +
    +

    dense_run (Thumb, 82 bytes, Stack size 40 bytes, nnom_dense.o(i.dense_run)) +

    [Stack]

    • Max Depth = 168
    • Call Chain = dense_run ⇒ local_fully_connected_q7_opt +
    +
    [Calls]
    • >>   tensor_size +
    • >>   local_fully_connected_q7_opt +
    +
    [Address Reference Count : 1]
    • nnom_dense.o(i.dense_s) +
    +

    dense_s (Thumb, 104 bytes, Stack size 24 bytes, nnom_dense.o(i.dense_s)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = dense_s ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_mem +
    • >>   tensor_get_num_channel +
    • >>   io_init +
    +
    [Called By]
    • >>   nnom_model_create +
    + +

    dilation (Thumb, 6 bytes, Stack size 0 bytes, nnom_layers.o(i.dilation)) +

    [Stack]

    • Max Depth = 12
    • Call Chain = dilation ⇒ shape +
    +
    [Calls]
    • >>   shape +
    +
    [Called By]
    • >>   conv2d_s +
    + +

    flatten_build (Thumb, 78 bytes, Stack size 24 bytes, nnom_flatten.o(i.flatten_build)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = flatten_build ⇒ new_tensor ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   tensor_size +
    • >>   tensor_set_attr +
    • >>   tensor_get_num_channel +
    • >>   new_tensor +
    +
    [Address Reference Count : 1]
    • nnom_flatten.o(i.Flatten) +
    +

    flatten_run (Thumb, 4 bytes, Stack size 0 bytes, nnom_flatten.o(i.flatten_run)) +
    [Address Reference Count : 1]

    • nnom_flatten.o(i.Flatten) +
    +

    flatten_s (Thumb, 16 bytes, Stack size 8 bytes, nnom_flatten.o(i.flatten_s)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = flatten_s ⇒ Flatten ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   Flatten +
    +
    [Called By]
    • >>   nnom_model_create +
    + +

    fputc (Thumb, 40 bytes, Stack size 16 bytes, mcu_init.o(i.fputc)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = fputc ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout +
    +
    [Calls]
    • >>   HAL_UART_Transmit +
    +
    [Address Reference Count : 1]
    • printf8.o(i.__0printf$8) +
    +

    input_build (Thumb, 42 bytes, Stack size 8 bytes, nnom_input.o(i.input_build)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = input_build ⇒ new_tensor ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   tensor_get_num_channel +
    • >>   tensor_cpy_attr +
    • >>   new_tensor +
    +
    [Address Reference Count : 1]
    • nnom_input.o(i.input_s) +
    +

    input_run (Thumb, 30 bytes, Stack size 8 bytes, nnom_input.o(i.input_run)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = input_run ⇒ tensor_size +
    +
    [Calls]
    • >>   tensor_size +
    • >>   __aeabi_memcpy +
    +
    [Address Reference Count : 1]
    • nnom_input.o(i.input_s) +
    +

    input_s (Thumb, 192 bytes, Stack size 32 bytes, nnom_input.o(i.input_s)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = input_s ⇒ new_tensor ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_mem +
    • >>   tensor_set_attr_v +
    • >>   tensor_get_num_channel +
    • >>   new_tensor +
    • >>   shape +
    • >>   io_init +
    +
    [Called By]
    • >>   output_s +
    • >>   nnom_model_create +
    + +

    io_init (Thumb, 6 bytes, Stack size 0 bytes, nnom_layers.o(i.io_init)) +

    [Called By]

    • >>   input_s +
    • >>   dense_s +
    • >>   conv2d_s +
    • >>   Flatten +
    • >>   MaxPool +
    • >>   Softmax +
    + +

    kernel (Thumb, 6 bytes, Stack size 0 bytes, nnom_layers.o(i.kernel)) +

    [Stack]

    • Max Depth = 12
    • Call Chain = kernel ⇒ shape +
    +
    [Calls]
    • >>   shape +
    +
    [Called By]
    • >>   maxpool_s +
    • >>   conv2d_s +
    + +

    knl_idle_init (Thumb, 32 bytes, Stack size 24 bytes, tos_sys.o(i.knl_idle_init)) +

    [Stack]

    • Max Depth = 92 + Unknown Stack Size +
    • Call Chain = knl_idle_init ⇒ tos_task_create ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   tos_task_create +
    +
    [Called By]
    • >>   tos_knl_init +
    + +

    knl_is_idle (Thumb, 14 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_idle)) +

    [Called By]

    • >>   task_do_destroy +
    • >>   tos_task_create +
    + +

    knl_is_inirq (Thumb, 12 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_inirq)) +

    [Called By]

    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_yield +
    • >>   tos_task_destroy +
    • >>   tos_task_create_dyn +
    • >>   tos_task_create +
    + +

    knl_is_sched_locked (Thumb, 12 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_sched_locked)) +

    [Called By]

    • >>   tos_task_delay +
    • >>   tos_task_destroy +
    + +

    knl_is_self (Thumb, 16 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_self)) +

    [Called By]

    • >>   tos_task_prio_change +
    • >>   tos_task_destroy +
    + +

    knl_sched (Thumb, 64 bytes, Stack size 8 bytes, tos_sys.o(i.knl_sched)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = knl_sched +
    +
    [Calls]
    • >>   cpu_context_switch +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_yield +
    • >>   task_do_destroy +
    • >>   tos_task_create +
    • >>   tos_knl_sched_unlock +
    + +

    layer_run (Thumb, 40 bytes, Stack size 16 bytes, nnom.o(i.layer_run), UNUSED) +

    [Calls]

    • >>   __2printf +
    +
    [Called By]
    • >>   model_run_to +
    + +

    local_convolve_HWC_q15_nonsquare (Thumb, 436 bytes, Stack size 96 bytes, nnom_local_q15.o(i.local_convolve_HWC_q15_nonsquare)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = local_convolve_HWC_q15_nonsquare +
    +
    [Calls]
    • >>   __aeabi_lasr +
    • >>   __NNOM_SSAT +
    +
    [Called By]
    • >>   conv2d_run +
    + +

    local_convolve_HWC_q7_nonsquare (Thumb, 420 bytes, Stack size 96 bytes, nnom_local.o(i.local_convolve_HWC_q7_nonsquare)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = local_convolve_HWC_q7_nonsquare +
    +
    [Calls]
    • >>   __NNOM_SSAT +
    +
    [Called By]
    • >>   conv2d_run +
    + +

    local_fully_connected_q7_opt (Thumb, 574 bytes, Stack size 128 bytes, nnom_local.o(i.local_fully_connected_q7_opt)) +

    [Stack]

    • Max Depth = 128
    • Call Chain = local_fully_connected_q7_opt +
    +
    [Calls]
    • >>   __NNOM_SSAT +
    +
    [Called By]
    • >>   dense_run +
    + +

    local_maxpool_q7_HWC (Thumb, 172 bytes, Stack size 52 bytes, nnom_local.o(i.local_maxpool_q7_HWC)) +

    [Stack]

    • Max Depth = 52
    • Call Chain = local_maxpool_q7_HWC +
    +
    [Called By]
    • >>   maxpool_run +
    + +

    local_relu_q15 (Thumb, 28 bytes, Stack size 8 bytes, nnom_local_q15.o(i.local_relu_q15)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = local_relu_q15 +
    +
    [Called By]
    • >>   relu_run +
    + +

    local_relu_q7 (Thumb, 24 bytes, Stack size 8 bytes, nnom_local.o(i.local_relu_q7)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = local_relu_q7 +
    +
    [Called By]
    • >>   relu_run +
    + +

    local_softmax_q7 (Thumb, 144 bytes, Stack size 32 bytes, nnom_local.o(i.local_softmax_q7)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = local_softmax_q7 +
    +
    [Calls]
    • >>   __NNOM_USAT +
    • >>   __NNOM_SSAT +
    +
    [Called By]
    • >>   softmax_run +
    + +

    main (Thumb, 32 bytes, Stack size 8 bytes, main.o(i.main)) +

    [Stack]

    • Max Depth = 320 + Unknown Stack Size +
    • Call Chain = main ⇒ board_init ⇒ SystemClock_Config ⇒ HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   osThreadCreate +
    • >>   osKernelStart +
    • >>   osKernelInitialize +
    • >>   board_init +
    • >>   __2printf +
    +
    [Address Reference Count : 1]
    • entry9a.o(.ARM.Collect$$$$0000000B) +
    +

    maxpool_build (Thumb, 186 bytes, Stack size 8 bytes, nnom_maxpool.o(i.maxpool_build)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = maxpool_build ⇒ new_tensor ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   act_get_dec_bit +
    • >>   tensor_get_num_channel +
    • >>   tensor_cpy_attr +
    • >>   new_tensor +
    +
    [Address Reference Count : 1]
    • nnom_maxpool.o(i.MaxPool) +
    +

    maxpool_run (Thumb, 86 bytes, Stack size 48 bytes, nnom_maxpool.o(i.maxpool_run)) +

    [Stack]

    • Max Depth = 100
    • Call Chain = maxpool_run ⇒ local_maxpool_q7_HWC +
    +
    [Calls]
    • >>   local_maxpool_q7_HWC +
    +
    [Address Reference Count : 1]
    • nnom_maxpool.o(i.MaxPool) +
    +

    maxpool_s (Thumb, 84 bytes, Stack size 32 bytes, nnom_maxpool.o(i.maxpool_s)) +

    [Stack]

    • Max Depth = 120
    • Call Chain = maxpool_s ⇒ MaxPool ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   MaxPool +
    • >>   stride +
    • >>   kernel +
    +
    [Called By]
    • >>   nnom_model_create +
    + +

    mem_analysis_result (Thumb, 54 bytes, Stack size 16 bytes, nnom.o(i.mem_analysis_result)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = mem_analysis_result ⇒ __2printf +
    +
    [Calls]
    • >>   __2printf +
    +
    [Called By]
    • >>   model_compile +
    + +

    mmheap_init_with_pool (Thumb, 22 bytes, Stack size 16 bytes, tos_mmheap.o(i.mmheap_init_with_pool)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = mmheap_init_with_pool ⇒ tos_mmheap_pool_add ⇒ blk_insert ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   tos_mmheap_pool_add +
    • >>   mmheap_ctl_init +
    +
    [Called By]
    • >>   tos_knl_init +
    + +

    mnist_nnom (Thumb, 110 bytes, Stack size 24 bytes, nnom_mnsit_example.o(i.mnist_nnom)) +

    [Stack]

    • Max Depth = 152 + Unknown Stack Size +
    • Call Chain = mnist_nnom ⇒ print_img_nnom ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round +
    +
    [Calls]
    • >>   nnom_predict +
    • >>   print_img_nnom +
    • >>   tos_systick_get +
    • >>   __aeabi_memcpy4 +
    • >>   __2printf +
    +
    [Called By]
    • >>   task1 +
    + +

    model_compile (Thumb, 224 bytes, Stack size 24 bytes, nnom.o(i.model_compile)) +

    [Stack]

    • Max Depth = 120
    • Call Chain = model_compile ⇒ compile_layers ⇒ compile_layers (Cycle) +
    +
    [Calls]
    • >>   tensor_mem_set +
    • >>   set_tailed_activation +
    • >>   nnom_mem +
    • >>   mem_analysis_result +
    • >>   compile_layers +
    • >>   block_mem_set +
    • >>   find_last +
    • >>   __2printf +
    +
    [Called By]
    • >>   nnom_model_create +
    + +

    model_run (Thumb, 6 bytes, Stack size 0 bytes, nnom.o(i.model_run)) +

    [Called By]

    • >>   nnom_predict +
    • >>   task1 +
    + +

    model_run_to (Thumb, 120 bytes, Stack size 32 bytes, nnom.o(i.model_run_to), UNUSED) +

    [Calls]

    • >>   layer_run +
    • >>   __2printf +
    + +

    mutex_release (Thumb, 20 bytes, Stack size 8 bytes, tos_mutex.o(i.mutex_release)) +

    [Stack]

    • Max Depth = 76 + Unknown Stack Size +
    • Call Chain = mutex_release ⇒ mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   pend_wakeup_all +
    • >>   mutex_old_owner_release +
    +
    [Called By]
    • >>   task_do_destroy +
    + +

    new_model (Thumb, 56 bytes, Stack size 8 bytes, nnom.o(i.new_model)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = new_model ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_mem +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   nnom_model_create +
    + +

    new_tensor (Thumb, 76 bytes, Stack size 16 bytes, nnom_tensor.o(i.new_tensor)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = new_tensor ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_mem +
    • >>   nnom_alignto +
    • >>   __2printf +
    +
    [Called By]
    • >>   input_s +
    • >>   input_build +
    • >>   flatten_build +
    • >>   dense_build +
    • >>   conv2d_build +
    • >>   maxpool_build +
    • >>   default_build +
    • >>   softmax_build +
    + +

    nnom_alignto (Thumb, 26 bytes, Stack size 0 bytes, nnom.o(i.nnom_alignto)) +

    [Called By]

    • >>   nnom_mem +
    • >>   nnom_malloc +
    • >>   compile_layers +
    • >>   new_tensor +
    + +

    nnom_free (Thumb, 2 bytes, Stack size 0 bytes, nnom.o(i.nnom_free)) +

    [Called By]

    • >>   delete_tensor +
    + +

    nnom_hook_length (Thumb, 18 bytes, Stack size 0 bytes, nnom.o(i.nnom_hook_length)) +

    [Called By]

    • >>   compile_layers +
    + +

    nnom_malloc (Thumb, 52 bytes, Stack size 8 bytes, nnom.o(i.nnom_malloc)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_alignto +
    • >>   __2printf +
    +
    [Called By]
    • >>   nnom_mem +
    + +

    nnom_mem (Thumb, 38 bytes, Stack size 16 bytes, nnom.o(i.nnom_mem)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_malloc +
    • >>   nnom_alignto +
    • >>   __aeabi_memclr +
    +
    [Called By]
    • >>   model_hook +
    • >>   new_model +
    • >>   model_compile +
    • >>   input_s +
    • >>   dense_s +
    • >>   conv2d_s +
    • >>   act_relu +
    • >>   Flatten +
    • >>   MaxPool +
    • >>   new_tensor +
    • >>   Softmax +
    + +

    nnom_predict (Thumb, 168 bytes, Stack size 40 bytes, nnom_utils.o(i.nnom_predict)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = nnom_predict ⇒ tensor_size +
    +
    [Calls]
    • >>   tensor_size +
    • >>   model_run +
    +
    [Called By]
    • >>   mnist_nnom +
    + +

    nnom_set_static_buf (Thumb, 12 bytes, Stack size 0 bytes, nnom.o(i.nnom_set_static_buf)) +

    [Called By]

    • >>   task1 +
    + +

    osDelay (Thumb, 32 bytes, Stack size 8 bytes, cmsis_os.o(i.osDelay)) +

    [Stack]

    • Max Depth = 68 + Unknown Stack Size +
    • Call Chain = osDelay ⇒ tos_task_delay ⇒ tos_task_yield ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   tos_task_delay +
    • >>   tos_millisec2tick +
    • >>   errno_knl2cmsis +
    +
    [Called By]
    • >>   task2 +
    • >>   task1 +
    + +

    osKernelInitialize (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(i.osKernelInitialize)) +

    [Stack]

    • Max Depth = 108 + Unknown Stack Size +
    • Call Chain = osKernelInitialize ⇒ tos_knl_init ⇒ knl_idle_init ⇒ tos_task_create ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   tos_knl_init +
    • >>   errno_knl2cmsis +
    +
    [Called By]
    • >>   main +
    + +

    osKernelStart (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(i.osKernelStart)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = osKernelStart ⇒ tos_knl_start +
    +
    [Calls]
    • >>   tos_knl_start +
    • >>   errno_knl2cmsis +
    +
    [Called By]
    • >>   main +
    + +

    osThreadCreate (Thumb, 94 bytes, Stack size 32 bytes, cmsis_os.o(i.osThreadCreate)) +

    [Stack]

    • Max Depth = 192 + Unknown Stack Size +
    • Call Chain = osThreadCreate ⇒ tos_task_create_dyn ⇒ tos_mmheap_calloc ⇒ tos_mmheap_alloc ⇒ blk_prepare_used ⇒ blk_insert ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   tos_task_create_dyn +
    • >>   tos_task_create +
    • >>   priority_cmsis2knl +
    +
    [Called By]
    • >>   main +
    • >>   application_entry +
    + +

    output_run (Thumb, 30 bytes, Stack size 8 bytes, nnom_output.o(i.output_run)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = output_run ⇒ tensor_size +
    +
    [Calls]
    • >>   tensor_size +
    • >>   __aeabi_memcpy +
    +
    [Address Reference Count : 1]
    • nnom_output.o(i.output_s) +
    +

    output_s (Thumb, 28 bytes, Stack size 8 bytes, nnom_output.o(i.output_s)) +

    [Stack]

    • Max Depth = 104
    • Call Chain = output_s ⇒ input_s ⇒ new_tensor ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   input_s +
    +
    [Called By]
    • >>   nnom_model_create +
    + +

    pend_highest_pending_prio_get (Thumb, 20 bytes, Stack size 0 bytes, tos_pend.o(i.pend_highest_pending_prio_get)) +

    [Called By]

    • >>   tos_task_prio_change +
    + +

    pend_list_adjust (Thumb, 14 bytes, Stack size 0 bytes, tos_pend.o(i.pend_list_adjust)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = pend_list_adjust ⇒ pend_list_add +
    +
    [Calls]
    • >>   pend_list_add +
    +
    [Called By]
    • >>   tos_task_prio_change +
    + +

    pend_list_remove (Thumb, 24 bytes, Stack size 0 bytes, tos_pend.o(i.pend_list_remove)) +

    [Called By]

    • >>   pend_task_wakeup +
    • >>   task_do_destroy +
    + +

    pend_task_wakeup (Thumb, 56 bytes, Stack size 8 bytes, tos_pend.o(i.pend_task_wakeup)) +

    [Stack]

    • Max Depth = 36 + Unknown Stack Size +
    • Call Chain = pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   tick_list_remove +
    • >>   readyqueue_add +
    • >>   pend_list_remove +
    +
    [Called By]
    • >>   pend_wakeup_all +
    • >>   tick_update +
    + +

    pend_wakeup_all (Thumb, 36 bytes, Stack size 16 bytes, tos_pend.o(i.pend_wakeup_all)) +

    [Stack]

    • Max Depth = 52 + Unknown Stack Size +
    • Call Chain = pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   pend_task_wakeup +
    +
    [Called By]
    • >>   mutex_release +
    + +

    port_systick_config (Thumb, 34 bytes, Stack size 8 bytes, port_c.o(i.port_systick_config)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = port_systick_config +
    +
    [Calls]
    • >>   __NVIC_SetPriority +
    +
    [Called By]
    • >>   cpu_systick_init +
    + +

    port_systick_priority_set (Thumb, 10 bytes, Stack size 0 bytes, port_c.o(i.port_systick_priority_set)) +

    [Calls]

    • >>   __NVIC_SetPriority +
    +
    [Called By]
    • >>   cpu_systick_init +
    + +

    print_img_nnom (Thumb, 118 bytes, Stack size 40 bytes, nnom_mnsit_example.o(i.print_img_nnom)) +

    [Stack]

    • Max Depth = 128
    • Call Chain = print_img_nnom ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round +
    +
    [Calls]
    • >>   __aeabi_i2d +
    • >>   __aeabi_dmul +
    • >>   __aeabi_d2iz +
    • >>   __2printf +
    +
    [Called By]
    • >>   mnist_nnom +
    + +

    readyqueue_add (Thumb, 24 bytes, Stack size 0 bytes, tos_sched.o(i.readyqueue_add)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = readyqueue_add ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   readyqueue_add_tail +
    • >>   readyqueue_add_head +
    +
    [Called By]
    • >>   pend_task_wakeup +
    + +

    readyqueue_add_head (Thumb, 38 bytes, Stack size 16 bytes, tos_sched.o(i.readyqueue_add_head)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = readyqueue_add_head ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   readyqueue_prio_mark +
    +
    [Called By]
    • >>   readyqueue_add +
    • >>   tos_task_prio_change +
    + +

    readyqueue_add_tail (Thumb, 38 bytes, Stack size 16 bytes, tos_sched.o(i.readyqueue_add_tail)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   readyqueue_prio_mark +
    +
    [Called By]
    • >>   readyqueue_add +
    • >>   tos_task_prio_change +
    • >>   tos_task_yield +
    • >>   tos_task_create +
    + +

    readyqueue_highest_ready_task_get (Thumb, 14 bytes, Stack size 0 bytes, tos_sched.o(i.readyqueue_highest_ready_task_get)) +

    [Called By]

    • >>   tos_knl_irq_leave +
    • >>   knl_sched +
    • >>   tos_knl_start +
    + +

    readyqueue_init (Thumb, 48 bytes, Stack size 0 bytes, tos_sched.o(i.readyqueue_init)) +

    [Called By]

    • >>   tos_knl_init +
    + +

    readyqueue_remove (Thumb, 92 bytes, Stack size 16 bytes, tos_sched.o(i.readyqueue_remove)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = readyqueue_remove +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_yield +
    • >>   task_do_destroy +
    + +

    set_tailed_activation (Thumb, 42 bytes, Stack size 8 bytes, nnom.o(i.set_tailed_activation)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = set_tailed_activation ⇒ __2printf +
    +
    [Calls]
    • >>   __2printf +
    +
    [Called By]
    • >>   model_compile +
    + +

    shape (Thumb, 26 bytes, Stack size 12 bytes, nnom_layers.o(i.shape)) +

    [Stack]

    • Max Depth = 12
    • Call Chain = shape +
    +
    [Called By]
    • >>   input_s +
    • >>   stride +
    • >>   kernel +
    • >>   dilation +
    + +

    softmax_build (Thumb, 58 bytes, Stack size 8 bytes, nnom_softmax.o(i.softmax_build)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = softmax_build ⇒ new_tensor ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   tensor_get_num_channel +
    • >>   tensor_cpy_attr +
    • >>   new_tensor +
    +
    [Address Reference Count : 1]
    • nnom_softmax.o(i.Softmax) +
    +

    softmax_run (Thumb, 34 bytes, Stack size 8 bytes, nnom_softmax.o(i.softmax_run)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = softmax_run ⇒ local_softmax_q7 +
    +
    [Calls]
    • >>   tensor_size +
    • >>   local_softmax_q7 +
    +
    [Address Reference Count : 1]
    • nnom_softmax.o(i.Softmax) +
    +

    softmax_s (Thumb, 16 bytes, Stack size 8 bytes, nnom_softmax.o(i.softmax_s)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = softmax_s ⇒ Softmax ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   Softmax +
    +
    [Called By]
    • >>   nnom_model_create +
    + +

    stride (Thumb, 6 bytes, Stack size 0 bytes, nnom_layers.o(i.stride)) +

    [Stack]

    • Max Depth = 12
    • Call Chain = stride ⇒ shape +
    +
    [Calls]
    • >>   shape +
    +
    [Called By]
    • >>   maxpool_s +
    • >>   conv2d_s +
    + +

    task1 (Thumb, 38 bytes, Stack size 0 bytes, nnom_mnsit_example.o(i.task1)) +

    [Stack]

    • Max Depth = 152 + Unknown Stack Size +
    • Call Chain = task1 ⇒ mnist_nnom ⇒ print_img_nnom ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ _double_round +
    +
    [Calls]
    • >>   nnom_set_static_buf +
    • >>   model_run +
    • >>   mnist_nnom +
    • >>   nnom_model_create +
    • >>   osDelay +
    +
    [Address Reference Count : 1]
    • nnom_mnsit_example.o(.constdata) +
    +

    task2 (Thumb, 12 bytes, Stack size 0 bytes, nnom_mnsit_example.o(i.task2)) +

    [Stack]

    • Max Depth = 68 + Unknown Stack Size +
    • Call Chain = task2 ⇒ osDelay ⇒ tos_task_delay ⇒ tos_task_yield ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   osDelay +
    +
    [Address Reference Count : 1]
    • nnom_mnsit_example.o(.constdata) +
    +

    task_free_all (Thumb, 56 bytes, Stack size 16 bytes, tos_task.o(i.task_free_all)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = task_free_all ⇒ task_free ⇒ tos_mmheap_free ⇒ blk_merge_next ⇒ blk_remove ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   task_free +
    +
    [Called By]
    • >>   knl_idle_entry +
    + +

    tensor_cpy_attr (Thumb, 86 bytes, Stack size 16 bytes, nnom_tensor.o(i.tensor_cpy_attr)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tensor_cpy_attr +
    +
    [Calls]
    • >>   tensor_get_num_channel +
    • >>   __aeabi_memcpy4 +
    • >>   __aeabi_memcpy +
    +
    [Called By]
    • >>   input_build +
    • >>   conv2d_build +
    • >>   maxpool_build +
    • >>   default_build +
    • >>   softmax_build +
    + +

    tensor_get_num_channel (Thumb, 16 bytes, Stack size 0 bytes, nnom_tensor.o(i.tensor_get_num_channel)) +

    [Called By]

    • >>   input_s +
    • >>   dense_s +
    • >>   input_build +
    • >>   flatten_build +
    • >>   dense_build +
    • >>   maxpool_build +
    • >>   default_build +
    • >>   tensor_set_attr +
    • >>   tensor_cpy_attr +
    • >>   softmax_build +
    + +

    tensor_mem_set (Thumb, 46 bytes, Stack size 0 bytes, nnom.o(i.tensor_mem_set)) +

    [Called By]

    • >>   model_compile +
    + +

    tensor_set_attr (Thumb, 72 bytes, Stack size 24 bytes, nnom_tensor.o(i.tensor_set_attr)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tensor_set_attr +
    +
    [Calls]
    • >>   tensor_get_num_channel +
    • >>   __aeabi_memcpy4 +
    • >>   __aeabi_memcpy +
    +
    [Called By]
    • >>   flatten_build +
    • >>   dense_build +
    + +

    tensor_set_attr_v (Thumb, 42 bytes, Stack size 24 bytes, nnom_tensor.o(i.tensor_set_attr_v)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tensor_set_attr_v +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    +
    [Called By]
    • >>   input_s +
    + +

    tensor_size (Thumb, 34 bytes, Stack size 8 bytes, nnom_tensor.o(i.tensor_size)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = tensor_size +
    +
    [Called By]
    • >>   compile_layers +
    • >>   io_mem_size +
    • >>   nnom_predict +
    • >>   input_run +
    • >>   flatten_build +
    • >>   dense_run +
    • >>   dense_build +
    • >>   conv2d_build +
    • >>   relu_run +
    • >>   softmax_run +
    • >>   output_run +
    + +

    tick_list_add (Thumb, 20 bytes, Stack size 8 bytes, tos_tick.o(i.tick_list_add)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = tick_list_add ⇒ tick_task_place +
    +
    [Calls]
    • >>   tick_task_place +
    +
    [Called By]
    • >>   tos_task_delay +
    + +

    tick_list_remove (Thumb, 112 bytes, Stack size 24 bytes, tos_tick.o(i.tick_list_remove)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = tick_list_remove +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   tos_list_empty +
    +
    [Called By]
    • >>   pend_task_wakeup +
    • >>   task_do_destroy +
    + +

    tick_update (Thumb, 114 bytes, Stack size 24 bytes, tos_tick.o(i.tick_update)) +

    [Stack]

    • Max Depth = 60 + Unknown Stack Size +
    • Call Chain = tick_update ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   pend_task_wakeup +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   tos_tick_handler +
    + +

    timer_init (Thumb, 4 bytes, Stack size 0 bytes, tos_timer.o(i.timer_init)) +

    [Called By]

    • >>   tos_knl_init +
    + +

    timer_update (Thumb, 118 bytes, Stack size 24 bytes, tos_timer.o(i.timer_update)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = timer_update ⇒ timer_place +
    +
    [Calls]
    • >>   tos_knl_sched_lock +
    • >>   timer_takeoff +
    • >>   timer_place +
    • >>   tos_knl_sched_unlock +
    +
    [Called By]
    • >>   tos_tick_handler +
    + +

    tos_cpu_clz (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(i.tos_cpu_clz)) +

    [Calls]

    • >>   port_clz +
    +
    [Called By]
    • >>   readyqueue_remove +
    • >>   __fls +
    • >>   __ffs +
    + +

    tos_cpu_cpsr_restore (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(i.tos_cpu_cpsr_restore)) +

    [Calls]

    • >>   port_cpsr_restore +
    +
    [Called By]
    • >>   tos_knl_irq_leave +
    • >>   tos_task_delay +
    • >>   knl_sched +
    • >>   tos_knl_sched_lock +
    • >>   tick_list_remove +
    • >>   tos_task_prio_change +
    • >>   timer_takeoff +
    • >>   timer_place +
    • >>   tos_systick_get +
    • >>   tick_update +
    • >>   tick_task_place +
    • >>   tos_task_yield +
    • >>   task_do_destroy +
    • >>   tos_task_create +
    • >>   task_free_all +
    • >>   tos_knl_sched_unlock +
    + +

    tos_cpu_cpsr_save (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(i.tos_cpu_cpsr_save)) +

    [Calls]

    • >>   port_cpsr_save +
    +
    [Called By]
    • >>   tos_knl_irq_leave +
    • >>   tos_task_delay +
    • >>   knl_sched +
    • >>   tos_knl_sched_lock +
    • >>   tick_list_remove +
    • >>   tos_task_prio_change +
    • >>   timer_takeoff +
    • >>   timer_place +
    • >>   tos_systick_get +
    • >>   tick_update +
    • >>   tick_task_place +
    • >>   tos_task_yield +
    • >>   task_do_destroy +
    • >>   tos_task_create +
    • >>   task_free_all +
    • >>   tos_knl_sched_unlock +
    + +

    tos_knl_init (Thumb, 42 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_init)) +

    [Stack]

    • Max Depth = 100 + Unknown Stack Size +
    • Call Chain = tos_knl_init ⇒ knl_idle_init ⇒ tos_task_create ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   cpu_init +
    • >>   mmheap_init_with_pool +
    • >>   timer_init +
    • >>   knl_idle_init +
    • >>   readyqueue_init +
    +
    [Called By]
    • >>   osKernelInitialize +
    + +

    tos_knl_irq_enter (Thumb, 22 bytes, Stack size 0 bytes, tos_sys.o(i.tos_knl_irq_enter)) +

    [Called By]

    • >>   SysTick_Handler +
    • >>   LPUART1_IRQHandler +
    + +

    tos_knl_irq_leave (Thumb, 70 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_irq_leave)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_irq_leave +
    +
    [Calls]
    • >>   cpu_irq_context_switch +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   SysTick_Handler +
    • >>   LPUART1_IRQHandler +
    + +

    tos_knl_is_running (Thumb, 12 bytes, Stack size 0 bytes, tos_sys.o(i.tos_knl_is_running)) +

    [Called By]

    • >>   tos_tick_handler +
    • >>   SysTick_Handler +
    • >>   tos_task_create +
    + +

    tos_knl_sched_lock (Thumb, 60 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_sched_lock)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_sched_lock +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   timer_update +
    • >>   tos_task_destroy +
    + +

    tos_knl_sched_unlock (Thumb, 62 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_sched_unlock)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = tos_knl_sched_unlock ⇒ knl_sched +
    +
    [Calls]
    • >>   knl_sched +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   timer_update +
    • >>   tos_task_destroy +
    + +

    tos_knl_start (Thumb, 40 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_start)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_start +
    +
    [Calls]
    • >>   cpu_sched_start +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   osKernelStart +
    + +

    tos_millisec2tick (Thumb, 18 bytes, Stack size 8 bytes, tos_time.o(i.tos_millisec2tick)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tos_millisec2tick ⇒ __aeabi_uldivmod +
    +
    [Calls]
    • >>   __aeabi_uldivmod +
    +
    [Called By]
    • >>   osDelay +
    + +

    tos_mmheap_alloc (Thumb, 38 bytes, Stack size 8 bytes, tos_mmheap.o(i.tos_mmheap_alloc)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = tos_mmheap_alloc ⇒ blk_prepare_used ⇒ blk_insert ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   blk_prepare_used +
    • >>   blk_locate_free +
    • >>   adjust_request_size +
    +
    [Called By]
    • >>   tos_mmheap_calloc +
    • >>   tos_task_create_dyn +
    + +

    tos_mmheap_calloc (Thumb, 24 bytes, Stack size 16 bytes, tos_mmheap.o(i.tos_mmheap_calloc)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = tos_mmheap_calloc ⇒ tos_mmheap_alloc ⇒ blk_prepare_used ⇒ blk_insert ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   tos_mmheap_alloc +
    • >>   __aeabi_memclr +
    +
    [Called By]
    • >>   tos_task_create_dyn +
    + +

    tos_mmheap_free (Thumb, 56 bytes, Stack size 16 bytes, tos_mmheap.o(i.tos_mmheap_free)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = tos_mmheap_free ⇒ blk_merge_next ⇒ blk_remove ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   blk_remove +
    • >>   blk_merge_next +
    • >>   blk_mark_as_free +
    • >>   blk_insert +
    • >>   blk_absorb +
    +
    [Called By]
    • >>   tos_task_create_dyn +
    • >>   task_free +
    + +

    tos_mmheap_pool_add (Thumb, 124 bytes, Stack size 16 bytes, tos_mmheap.o(i.tos_mmheap_pool_add)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = tos_mmheap_pool_add ⇒ blk_insert ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   mmheap_pool_is_exist +
    • >>   blk_link_next +
    • >>   blk_insert +
    +
    [Called By]
    • >>   mmheap_init_with_pool +
    + +

    tos_systick_get (Thumb, 24 bytes, Stack size 16 bytes, tos_time.o(i.tos_systick_get)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = tos_systick_get +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   mnist_nnom +
    + +

    tos_task_create (Thumb, 212 bytes, Stack size 40 bytes, tos_task.o(i.tos_task_create)) +

    [Stack]

    • Max Depth = 68 + Unknown Stack Size +
    • Call Chain = tos_task_create ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   tos_knl_is_running +
    • >>   knl_sched +
    • >>   knl_is_inirq +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_task_stk_init +
    • >>   task_reset +
    • >>   knl_is_idle +
    • >>   readyqueue_add_tail +
    • >>   strncpy +
    +
    [Called By]
    • >>   osThreadCreate +
    • >>   tos_task_create_dyn +
    • >>   knl_idle_init +
    + +

    tos_task_create_dyn (Thumb, 160 bytes, Stack size 72 bytes, tos_task.o(i.tos_task_create_dyn)) +

    [Stack]

    • Max Depth = 160 + Unknown Stack Size +
    • Call Chain = tos_task_create_dyn ⇒ tos_mmheap_calloc ⇒ tos_mmheap_alloc ⇒ blk_prepare_used ⇒ blk_insert ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   knl_is_inirq +
    • >>   tos_mmheap_free +
    • >>   tos_mmheap_alloc +
    • >>   tos_mmheap_calloc +
    • >>   task_free +
    • >>   tos_task_create +
    +
    [Called By]
    • >>   osThreadCreate +
    + +

    tos_task_delay (Thumb, 92 bytes, Stack size 16 bytes, tos_task.o(i.tos_task_delay)) +

    [Stack]

    • Max Depth = 60 + Unknown Stack Size +
    • Call Chain = tos_task_delay ⇒ tos_task_yield ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   knl_sched +
    • >>   knl_is_sched_locked +
    • >>   knl_is_inirq +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   tick_list_add +
    • >>   readyqueue_remove +
    • >>   tos_task_yield +
    +
    [Called By]
    • >>   osDelay +
    + +

    tos_task_destroy (Thumb, 150 bytes, Stack size 16 bytes, tos_task.o(i.tos_task_destroy)) +

    [Stack]

    • Max Depth = 108 + Unknown Stack Size +
    • Call Chain = tos_task_destroy ⇒ task_do_destroy ⇒ mutex_release ⇒ mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   knl_is_sched_locked +
    • >>   knl_is_inirq +
    • >>   tos_knl_sched_lock +
    • >>   knl_is_self +
    • >>   task_free +
    • >>   task_do_destroy +
    • >>   tos_knl_sched_unlock +
    +
    [Called By]
    • >>   task_exit +
    + +

    tos_task_prio_change (Thumb, 198 bytes, Stack size 24 bytes, tos_task.o(i.tos_task_prio_change)) +

    [Stack]

    • Max Depth = 52 + Unknown Stack Size +
    • Call Chain = tos_task_prio_change ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   knl_sched +
    • >>   knl_is_inirq +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   readyqueue_remove +
    • >>   pend_list_adjust +
    • >>   pend_highest_pending_prio_get +
    • >>   knl_is_self +
    • >>   readyqueue_add_tail +
    • >>   readyqueue_add_head +
    +
    [Called By]
    • >>   mutex_old_owner_release +
    + +

    tos_task_yield (Thumb, 46 bytes, Stack size 16 bytes, tos_task.o(i.tos_task_yield)) +

    [Stack]

    • Max Depth = 44 + Unknown Stack Size +
    • Call Chain = tos_task_yield ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   knl_sched +
    • >>   knl_is_inirq +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   readyqueue_remove +
    • >>   readyqueue_add_tail +
    +
    [Called By]
    • >>   tos_task_delay +
    + +

    tos_tick_handler (Thumb, 28 bytes, Stack size 8 bytes, tos_tick.o(i.tos_tick_handler)) +

    [Stack]

    • Max Depth = 68 + Unknown Stack Size +
    • Call Chain = tos_tick_handler ⇒ tick_update ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   tos_knl_is_running +
    • >>   timer_update +
    • >>   tick_update +
    +
    [Called By]
    • >>   SysTick_Handler +
    +

    +

    +Local Symbols +

    +

    UART_DMAAbortOnError (Thumb, 20 bytes, Stack size 8 bytes, stm32l4xx_hal_uart.o(i.UART_DMAAbortOnError)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = UART_DMAAbortOnError +
    +
    [Calls]
    • >>   HAL_UART_ErrorCallback +
    +
    [Address Reference Count : 1]
    • stm32l4xx_hal_uart.o(i.HAL_UART_IRQHandler) +
    +

    UART_EndRxTransfer (Thumb, 32 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(i.UART_EndRxTransfer)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    + +

    RCC_SetFlashLatencyFromMSIRange (Thumb, 116 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc.o(i.RCC_SetFlashLatencyFromMSIRange)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = RCC_SetFlashLatencyFromMSIRange +
    +
    [Calls]
    • >>   HAL_PWREx_GetVoltageRange +
    +
    [Called By]
    • >>   HAL_RCC_OscConfig +
    + +

    RCCEx_PLLSAI1_Config (Thumb, 278 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc_ex.o(i.RCCEx_PLLSAI1_Config)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = RCCEx_PLLSAI1_Config +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_RCCEx_PeriphCLKConfig +
    + +

    RCCEx_PLLSAI2_Config (Thumb, 250 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc_ex.o(i.RCCEx_PLLSAI2_Config)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = RCCEx_PLLSAI2_Config +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_RCCEx_PeriphCLKConfig +
    + +

    __NVIC_SetPriority (Thumb, 32 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(i.__NVIC_SetPriority)) +

    [Called By]

    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_SYSTICK_Config +
    + +

    TIM_ITRx_SetConfig (Thumb, 16 bytes, Stack size 0 bytes, stm32l4xx_hal_tim.o(i.TIM_ITRx_SetConfig)) +

    [Called By]

    • >>   HAL_TIM_ConfigClockSource +
    + +

    TIM_OC1_SetConfig (Thumb, 132 bytes, Stack size 28 bytes, stm32l4xx_hal_tim.o(i.TIM_OC1_SetConfig)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = TIM_OC1_SetConfig +
    +
    [Called By]
    • >>   HAL_TIM_PWM_ConfigChannel +
    + +

    TIM_OC3_SetConfig (Thumb, 118 bytes, Stack size 20 bytes, stm32l4xx_hal_tim.o(i.TIM_OC3_SetConfig)) +

    [Stack]

    • Max Depth = 20
    • Call Chain = TIM_OC3_SetConfig +
    +
    [Called By]
    • >>   HAL_TIM_PWM_ConfigChannel +
    + +

    TIM_OC4_SetConfig (Thumb, 92 bytes, Stack size 12 bytes, stm32l4xx_hal_tim.o(i.TIM_OC4_SetConfig)) +

    [Stack]

    • Max Depth = 12
    • Call Chain = TIM_OC4_SetConfig +
    +
    [Called By]
    • >>   HAL_TIM_PWM_ConfigChannel +
    + +

    TIM_OC5_SetConfig (Thumb, 86 bytes, Stack size 12 bytes, stm32l4xx_hal_tim.o(i.TIM_OC5_SetConfig)) +

    [Stack]

    • Max Depth = 12
    • Call Chain = TIM_OC5_SetConfig +
    +
    [Called By]
    • >>   HAL_TIM_PWM_ConfigChannel +
    + +

    TIM_OC6_SetConfig (Thumb, 88 bytes, Stack size 12 bytes, stm32l4xx_hal_tim.o(i.TIM_OC6_SetConfig)) +

    [Stack]

    • Max Depth = 12
    • Call Chain = TIM_OC6_SetConfig +
    +
    [Called By]
    • >>   HAL_TIM_PWM_ConfigChannel +
    + +

    TIM_TI1_ConfigInputStage (Thumb, 34 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = TIM_TI1_ConfigInputStage +
    +
    [Called By]
    • >>   HAL_TIM_ConfigClockSource +
    + +

    TIM_TI2_ConfigInputStage (Thumb, 36 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = TIM_TI2_ConfigInputStage +
    +
    [Called By]
    • >>   HAL_TIM_ConfigClockSource +
    + +

    DCMI_DMAError (Thumb, 24 bytes, Stack size 8 bytes, stm32l4xx_hal_dcmi.o(i.DCMI_DMAError)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = DCMI_DMAError +
    +
    [Calls]
    • >>   HAL_DCMI_ErrorCallback +
    +
    [Called By]
    • >>   HAL_DCMI_IRQHandler +
    +
    [Address Reference Count : 1]
    • stm32l4xx_hal_dcmi.o(i.HAL_DCMI_IRQHandler) +
    +

    __NVIC_SetPriority (Thumb, 32 bytes, Stack size 0 bytes, port_c.o(i.__NVIC_SetPriority)) +

    [Called By]

    • >>   port_systick_priority_set +
    • >>   port_systick_config +
    + +

    __ffs (Thumb, 18 bytes, Stack size 8 bytes, tos_mmheap.o(i.__ffs)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = __ffs +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   blk_locate_free +
    + +

    __fls (Thumb, 12 bytes, Stack size 8 bytes, tos_mmheap.o(i.__fls)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = __fls +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   mapping_insert +
    • >>   blk_locate_free +
    + +

    adjust_request_size (Thumb, 32 bytes, Stack size 0 bytes, tos_mmheap.o(i.adjust_request_size)) +

    [Called By]

    • >>   tos_mmheap_alloc +
    + +

    blk_absorb (Thumb, 28 bytes, Stack size 8 bytes, tos_mmheap.o(i.blk_absorb)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = blk_absorb ⇒ blk_link_next +
    +
    [Calls]
    • >>   blk_link_next +
    +
    [Called By]
    • >>   tos_mmheap_free +
    • >>   blk_merge_next +
    + +

    blk_can_split (Thumb, 20 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_can_split)) +

    [Called By]

    • >>   blk_prepare_used +
    + +

    blk_insert (Thumb, 74 bytes, Stack size 24 bytes, tos_mmheap.o(i.blk_insert)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = blk_insert ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   mapping_insert +
    +
    [Called By]
    • >>   tos_mmheap_free +
    • >>   tos_mmheap_pool_add +
    • >>   blk_prepare_used +
    + +

    blk_link_next (Thumb, 12 bytes, Stack size 8 bytes, tos_mmheap.o(i.blk_link_next)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = blk_link_next +
    +
    [Calls]
    • >>   blk_next +
    +
    [Called By]
    • >>   tos_mmheap_pool_add +
    • >>   blk_prepare_used +
    • >>   blk_mark_as_free +
    • >>   blk_absorb +
    + +

    blk_locate_free (Thumb, 138 bytes, Stack size 32 bytes, tos_mmheap.o(i.blk_locate_free)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = blk_locate_free ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   remove_free_block +
    • >>   mapping_insert +
    • >>   __fls +
    • >>   __ffs +
    +
    [Called By]
    • >>   tos_mmheap_alloc +
    + +

    blk_mark_as_free (Thumb, 26 bytes, Stack size 8 bytes, tos_mmheap.o(i.blk_mark_as_free)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = blk_mark_as_free ⇒ blk_link_next +
    +
    [Calls]
    • >>   blk_link_next +
    +
    [Called By]
    • >>   tos_mmheap_free +
    • >>   blk_split +
    + +

    blk_mark_as_used (Thumb, 26 bytes, Stack size 8 bytes, tos_mmheap.o(i.blk_mark_as_used)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = blk_mark_as_used +
    +
    [Calls]
    • >>   blk_next +
    +
    [Called By]
    • >>   blk_prepare_used +
    + +

    blk_merge_next (Thumb, 36 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_merge_next)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = blk_merge_next ⇒ blk_remove ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   blk_remove +
    • >>   blk_next +
    • >>   blk_absorb +
    +
    [Called By]
    • >>   tos_mmheap_free +
    + +

    blk_next (Thumb, 16 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_next)) +

    [Called By]

    • >>   blk_merge_next +
    • >>   blk_mark_as_used +
    • >>   blk_link_next +
    + +

    blk_prepare_used (Thumb, 60 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_prepare_used)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = blk_prepare_used ⇒ blk_insert ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   blk_split +
    • >>   blk_mark_as_used +
    • >>   blk_link_next +
    • >>   blk_insert +
    • >>   blk_can_split +
    +
    [Called By]
    • >>   tos_mmheap_alloc +
    + +

    blk_remove (Thumb, 30 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_remove)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = blk_remove ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   remove_free_block +
    • >>   mapping_insert +
    +
    [Called By]
    • >>   tos_mmheap_free +
    • >>   blk_merge_next +
    + +

    blk_split (Thumb, 50 bytes, Stack size 8 bytes, tos_mmheap.o(i.blk_split)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = blk_split ⇒ blk_mark_as_free ⇒ blk_link_next +
    +
    [Calls]
    • >>   blk_mark_as_free +
    +
    [Called By]
    • >>   blk_prepare_used +
    + +

    mapping_insert (Thumb, 44 bytes, Stack size 16 bytes, tos_mmheap.o(i.mapping_insert)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   __fls +
    +
    [Called By]
    • >>   blk_remove +
    • >>   blk_locate_free +
    • >>   blk_insert +
    + +

    mmheap_ctl_init (Thumb, 70 bytes, Stack size 16 bytes, tos_mmheap.o(i.mmheap_ctl_init)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = mmheap_ctl_init +
    +
    [Called By]
    • >>   mmheap_init_with_pool +
    + +

    mmheap_pool_is_exist (Thumb, 36 bytes, Stack size 8 bytes, tos_mmheap.o(i.mmheap_pool_is_exist)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = mmheap_pool_is_exist +
    +
    [Called By]
    • >>   tos_mmheap_pool_add +
    + +

    remove_free_block (Thumb, 68 bytes, Stack size 16 bytes, tos_mmheap.o(i.remove_free_block)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = remove_free_block +
    +
    [Called By]
    • >>   blk_remove +
    • >>   blk_locate_free +
    + +

    mutex_old_owner_release (Thumb, 62 bytes, Stack size 16 bytes, tos_mutex.o(i.mutex_old_owner_release)) +

    [Stack]

    • Max Depth = 68 + Unknown Stack Size +
    • Call Chain = mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   tos_task_prio_change +
    +
    [Called By]
    • >>   mutex_release +
    + +

    pend_list_add (Thumb, 62 bytes, Stack size 8 bytes, tos_pend.o(i.pend_list_add)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = pend_list_add +
    +
    [Called By]
    • >>   pend_list_adjust +
    + +

    readyqueue_prio_mark (Thumb, 42 bytes, Stack size 12 bytes, tos_sched.o(i.readyqueue_prio_mark)) +

    [Stack]

    • Max Depth = 12
    • Call Chain = readyqueue_prio_mark +
    +
    [Called By]
    • >>   readyqueue_add_tail +
    • >>   readyqueue_add_head +
    + +

    knl_idle_entry (Thumb, 6 bytes, Stack size 0 bytes, tos_sys.o(i.knl_idle_entry)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size + + In Cycle +
    • Call Chain = knl_idle_entry ⇒ knl_idle_entry (Cycle) +
    +
    [Calls]
    • >>   task_free_all +
    • >>   knl_idle_entry +
    +
    [Called By]
    • >>   knl_idle_entry +
    +
    [Address Reference Count : 1]
    • tos_sys.o(i.knl_idle_init) +
    +

    task_do_destroy (Thumb, 130 bytes, Stack size 16 bytes, tos_task.o(i.task_do_destroy)) +

    [Stack]

    • Max Depth = 92 + Unknown Stack Size +
    • Call Chain = task_do_destroy ⇒ mutex_release ⇒ mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   knl_sched +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   tick_list_remove +
    • >>   readyqueue_remove +
    • >>   pend_list_remove +
    • >>   mutex_release +
    • >>   task_reset +
    • >>   knl_is_idle +
    +
    [Called By]
    • >>   tos_task_destroy +
    + +

    task_exit (Thumb, 6 bytes, Stack size 0 bytes, tos_task.o(i.task_exit)) +

    [Stack]

    • Max Depth = 108 + Unknown Stack Size +
    • Call Chain = task_exit ⇒ tos_task_destroy ⇒ task_do_destroy ⇒ mutex_release ⇒ mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_add_tail ⇒ readyqueue_prio_mark +
    +
    [Calls]
    • >>   tos_task_destroy +
    +
    [Address Reference Count : 1]
    • tos_task.o(i.tos_task_create) +
    +

    task_free (Thumb, 20 bytes, Stack size 8 bytes, tos_task.o(i.task_free)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = task_free ⇒ tos_mmheap_free ⇒ blk_merge_next ⇒ blk_remove ⇒ mapping_insert ⇒ __fls +
    +
    [Calls]
    • >>   tos_mmheap_free +
    +
    [Called By]
    • >>   tos_task_destroy +
    • >>   tos_task_create_dyn +
    • >>   task_free_all +
    + +

    task_reset (Thumb, 58 bytes, Stack size 0 bytes, tos_task.o(i.task_reset)) +

    [Called By]

    • >>   task_do_destroy +
    • >>   tos_task_create +
    + +

    tick_task_place (Thumb, 150 bytes, Stack size 32 bytes, tos_tick.o(i.tick_task_place)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = tick_task_place +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   tick_list_add +
    + +

    tos_list_empty (Thumb, 14 bytes, Stack size 0 bytes, tos_tick.o(i.tos_list_empty)) +

    [Called By]

    • >>   tick_list_remove +
    + +

    timer_place (Thumb, 100 bytes, Stack size 24 bytes, tos_timer.o(i.timer_place)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = timer_place +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   timer_update +
    + +

    timer_takeoff (Thumb, 68 bytes, Stack size 16 bytes, tos_timer.o(i.timer_takeoff)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = timer_takeoff +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   timer_update +
    + +

    errno_knl2cmsis (Thumb, 8 bytes, Stack size 0 bytes, cmsis_os.o(i.errno_knl2cmsis)) +

    [Called By]

    • >>   osKernelStart +
    • >>   osKernelInitialize +
    • >>   osDelay +
    + +

    priority_cmsis2knl (Thumb, 16 bytes, Stack size 0 bytes, cmsis_os.o(i.priority_cmsis2knl)) +

    [Called By]

    • >>   osThreadCreate +
    + +

    nnom_model_create (Thumb, 260 bytes, Stack size 16 bytes, nnom_mnsit_example.o(i.nnom_model_create)) +

    [Stack]

    • Max Depth = 136
    • Call Chain = nnom_model_create ⇒ model_compile ⇒ compile_layers ⇒ compile_layers (Cycle) +
    +
    [Calls]
    • >>   softmax_s +
    • >>   output_s +
    • >>   new_model +
    • >>   model_compile +
    • >>   maxpool_s +
    • >>   input_s +
    • >>   flatten_s +
    • >>   dense_s +
    • >>   conv2d_s +
    • >>   check_model_version +
    • >>   act_relu +
    +
    [Called By]
    • >>   task1 +
    + +

    __NNOM_SSAT (Thumb, 28 bytes, Stack size 0 bytes, nnom_local.o(i.__NNOM_SSAT)) +

    [Called By]

    • >>   local_softmax_q7 +
    • >>   local_fully_connected_q7_opt +
    • >>   local_convolve_HWC_q7_nonsquare +
    + +

    __NNOM_USAT (Thumb, 32 bytes, Stack size 0 bytes, nnom_local.o(i.__NNOM_USAT)) +

    [Called By]

    • >>   local_softmax_q7 +
    + +

    allocate_block (Thumb, 46 bytes, Stack size 8 bytes, nnom.o(i.allocate_block)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = allocate_block ⇒ __2printf +
    +
    [Calls]
    • >>   __2printf +
    +
    [Called By]
    • >>   compile_layers +
    + +

    find_last (Thumb, 18 bytes, Stack size 0 bytes, nnom.o(i.find_last)) +

    [Called By]

    • >>   model_add +
    • >>   model_compile +
    + +

    io_mem_size (Thumb, 24 bytes, Stack size 16 bytes, nnom.o(i.io_mem_size)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = io_mem_size ⇒ tensor_size +
    +
    [Calls]
    • >>   tensor_size +
    +
    [Called By]
    • >>   print_layer_info +
    + +

    model_active (Thumb, 6 bytes, Stack size 0 bytes, nnom.o(i.model_active)) +
    [Address Reference Count : 1]

    • nnom.o(i.new_model) +
    +

    model_add (Thumb, 48 bytes, Stack size 16 bytes, nnom.o(i.model_add)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = model_add ⇒ __2printf +
    +
    [Calls]
    • >>   find_last +
    • >>   __2printf +
    +
    [Address Reference Count : 1]
    • nnom.o(i.new_model) +
    +

    model_hook (Thumb, 102 bytes, Stack size 24 bytes, nnom.o(i.model_hook)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = model_hook ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   nnom_mem +
    +
    [Called By]
    • >>   model_mergex +
    +
    [Address Reference Count : 1]
    • nnom.o(i.new_model) +
    +

    model_merge (Thumb, 10 bytes, Stack size 0 bytes, nnom.o(i.model_merge)) +
    [Address Reference Count : 1]

    • nnom.o(i.new_model) +
    +

    model_mergex (Thumb, 42 bytes, Stack size 32 bytes, nnom.o(i.model_mergex)) +

    [Stack]

    • Max Depth = 104
    • Call Chain = model_mergex ⇒ model_hook ⇒ nnom_mem ⇒ nnom_malloc ⇒ __2printf +
    +
    [Calls]
    • >>   model_hook +
    +
    [Address Reference Count : 1]
    • nnom.o(i.new_model) +
    +

    print_layer_info (Thumb, 280 bytes, Stack size 32 bytes, nnom.o(i.print_layer_info)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = print_layer_info ⇒ io_mem_size ⇒ tensor_size +
    +
    [Calls]
    • >>   io_mem_size +
    • >>   __2printf +
    +
    [Called By]
    • >>   compile_layers +
    + +

    print_memory_block_info (Thumb, 64 bytes, Stack size 16 bytes, nnom.o(i.print_memory_block_info)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = print_memory_block_info ⇒ __2printf +
    +
    [Calls]
    • >>   __2printf +
    +
    [Called By]
    • >>   compile_layers +
    + +

    release_block (Thumb, 20 bytes, Stack size 0 bytes, nnom.o(i.release_block)) +

    [Called By]

    • >>   release_input_mem +
    • >>   release_comp_mem +
    + +

    release_comp_mem (Thumb, 14 bytes, Stack size 0 bytes, nnom.o(i.release_comp_mem)) +

    [Calls]

    • >>   release_block +
    +
    [Called By]
    • >>   compile_layers +
    + +

    release_input_mem (Thumb, 20 bytes, Stack size 8 bytes, nnom.o(i.release_input_mem)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = release_input_mem +
    +
    [Calls]
    • >>   release_block +
    +
    [Called By]
    • >>   compile_layers +
    + +

    relu_run (Thumb, 46 bytes, Stack size 8 bytes, nnom_activation.o(i.relu_run)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = relu_run ⇒ tensor_size +
    +
    [Calls]
    • >>   tensor_size +
    • >>   local_relu_q7 +
    • >>   local_relu_q15 +
    +
    [Address Reference Count : 1]
    • nnom_activation.o(i.act_relu) +
    +

    __NNOM_SSAT (Thumb, 28 bytes, Stack size 0 bytes, nnom_local_q15.o(i.__NNOM_SSAT)) +

    [Called By]

    • >>   local_convolve_HWC_q15_nonsquare +
    + +

    _printf_core (Thumb, 996 bytes, Stack size 104 bytes, printf8.o(i._printf_core), UNUSED) +

    [Calls]

    • >>   __aeabi_uldivmod +
    • >>   _printf_pre_padding +
    • >>   _printf_post_padding +
    +
    [Called By]
    • >>   __0printf$8 +
    + +

    _printf_post_padding (Thumb, 36 bytes, Stack size 24 bytes, printf8.o(i._printf_post_padding), UNUSED) +

    [Called By]

    • >>   _printf_core +
    + +

    _printf_pre_padding (Thumb, 46 bytes, Stack size 24 bytes, printf8.o(i._printf_pre_padding), UNUSED) +

    [Called By]

    • >>   _printf_core +
    +

    +

    +Undefined Global Symbols +


    diff --git a/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny/TencentOS_tiny.sct b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny/TencentOS_tiny.sct new file mode 100644 index 00000000..83747e97 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/TencentOS_tiny/TencentOS_tiny.sct @@ -0,0 +1,16 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00100000 { ; load region size_region + ER_IROM1 0x08000000 0x00100000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + .ANY (+XO) + } + RW_IRAM1 0x20000000 0x00050000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/startup_stm32l496xx.s b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/startup_stm32l496xx.s new file mode 100644 index 00000000..3ebfcc32 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist/startup_stm32l496xx.s @@ -0,0 +1,450 @@ +;******************************************************************************* +;* File Name : startup_stm32l496xx.s +;* Author : MCD Application Team +;* Description : STM32L496xx Ultra Low Power devices vector table for MDK-ARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the Cortex-M4 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> +;******************************************************************************* +;* +;*

    © Copyright (c) 2017 STMicroelectronics. +;* All rights reserved.

    +;* +;* This software component is licensed by ST under BSD 3-Clause license, +;* the "License"; You may not use this file except in compliance with the +;* License. You may obtain a copy of the License at: +;* opensource.org/licenses/BSD-3-Clause +;* +;******************************************************************************* +; +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x200 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window WatchDog + DCD PVD_PVM_IRQHandler ; PVD/PVM1/PVM2/PVM3/PVM4 through EXTI Line detection + DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line + DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line + DCD FLASH_IRQHandler ; FLASH + DCD RCC_IRQHandler ; RCC + DCD EXTI0_IRQHandler ; EXTI Line0 + DCD EXTI1_IRQHandler ; EXTI Line1 + DCD EXTI2_IRQHandler ; EXTI Line2 + DCD EXTI3_IRQHandler ; EXTI Line3 + DCD EXTI4_IRQHandler ; EXTI Line4 + DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 + DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 + DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 + DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 + DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 + DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 + DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 + DCD ADC1_2_IRQHandler ; ADC1, ADC2 + DCD CAN1_TX_IRQHandler ; CAN1 TX + DCD CAN1_RX0_IRQHandler ; CAN1 RX0 + DCD CAN1_RX1_IRQHandler ; CAN1 RX1 + DCD CAN1_SCE_IRQHandler ; CAN1 SCE + DCD EXTI9_5_IRQHandler ; External Line[9:5]s + DCD TIM1_BRK_TIM15_IRQHandler ; TIM1 Break and TIM15 + DCD TIM1_UP_TIM16_IRQHandler ; TIM1 Update and TIM16 + DCD TIM1_TRG_COM_TIM17_IRQHandler ; TIM1 Trigger and Commutation and TIM17 + DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare + DCD TIM2_IRQHandler ; TIM2 + DCD TIM3_IRQHandler ; TIM3 + DCD TIM4_IRQHandler ; TIM4 + DCD I2C1_EV_IRQHandler ; I2C1 Event + DCD I2C1_ER_IRQHandler ; I2C1 Error + DCD I2C2_EV_IRQHandler ; I2C2 Event + DCD I2C2_ER_IRQHandler ; I2C2 Error + DCD SPI1_IRQHandler ; SPI1 + DCD SPI2_IRQHandler ; SPI2 + DCD USART1_IRQHandler ; USART1 + DCD USART2_IRQHandler ; USART2 + DCD USART3_IRQHandler ; USART3 + DCD EXTI15_10_IRQHandler ; External Line[15:10] + DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line + DCD DFSDM1_FLT3_IRQHandler ; DFSDM1 Filter 3 global Interrupt + DCD TIM8_BRK_IRQHandler ; TIM8 Break Interrupt + DCD TIM8_UP_IRQHandler ; TIM8 Update Interrupt + DCD TIM8_TRG_COM_IRQHandler ; TIM8 Trigger and Commutation Interrupt + DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare Interrupt + DCD ADC3_IRQHandler ; ADC3 global Interrupt + DCD FMC_IRQHandler ; FMC + DCD SDMMC1_IRQHandler ; SDMMC1 + DCD TIM5_IRQHandler ; TIM5 + DCD SPI3_IRQHandler ; SPI3 + DCD UART4_IRQHandler ; UART4 + DCD UART5_IRQHandler ; UART5 + DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors + DCD TIM7_IRQHandler ; TIM7 + DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1 + DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2 + DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3 + DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4 + DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5 + DCD DFSDM1_FLT0_IRQHandler ; DFSDM1 Filter 0 global Interrupt + DCD DFSDM1_FLT1_IRQHandler ; DFSDM1 Filter 1 global Interrupt + DCD DFSDM1_FLT2_IRQHandler ; DFSDM1 Filter 2 global Interrupt + DCD COMP_IRQHandler ; COMP Interrupt + DCD LPTIM1_IRQHandler ; LP TIM1 interrupt + DCD LPTIM2_IRQHandler ; LP TIM2 interrupt + DCD OTG_FS_IRQHandler ; USB OTG FS + DCD DMA2_Channel6_IRQHandler ; DMA2 Channel 6 + DCD DMA2_Channel7_IRQHandler ; DMA2 Channel 7 + DCD LPUART1_IRQHandler ; LP UART1 interrupt + DCD QUADSPI_IRQHandler ; Quad SPI global interrupt + DCD I2C3_EV_IRQHandler ; I2C3 event + DCD I2C3_ER_IRQHandler ; I2C3 error + DCD SAI1_IRQHandler ; Serial Audio Interface 1 global interrupt + DCD SAI2_IRQHandler ; Serial Audio Interface 2 global interrupt + DCD SWPMI1_IRQHandler ; Serial Wire Interface 1 global interrupt + DCD TSC_IRQHandler ; Touch Sense Controller global interrupt + DCD LCD_IRQHandler ; LCD global interrupt + DCD 0 ; Reserved + DCD RNG_IRQHandler ; RNG global interrupt + DCD FPU_IRQHandler ; FPU + DCD CRS_IRQHandler ; CRS error + DCD I2C4_EV_IRQHandler ; I2C4 event + DCD I2C4_ER_IRQHandler ; I2C4 error + DCD DCMI_IRQHandler ; DCMI global interrupt + DCD CAN2_TX_IRQHandler ; CAN2 TX + DCD CAN2_RX0_IRQHandler ; CAN2 RX0 + DCD CAN2_RX1_IRQHandler ; CAN2 RX1 + DCD CAN2_SCE_IRQHandler ; CAN2 SCE + DCD DMA2D_IRQHandler ; DMA2D global interrupt + +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +; Reset handler +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT SystemInit + IMPORT __main + + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +MemManage_Handler\ + PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP +BusFault_Handler\ + PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP +UsageFault_Handler\ + PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +DebugMon_Handler\ + PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT WWDG_IRQHandler [WEAK] + EXPORT PVD_PVM_IRQHandler [WEAK] + EXPORT TAMP_STAMP_IRQHandler [WEAK] + EXPORT RTC_WKUP_IRQHandler [WEAK] + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_IRQHandler [WEAK] + EXPORT EXTI1_IRQHandler [WEAK] + EXPORT EXTI2_IRQHandler [WEAK] + EXPORT EXTI3_IRQHandler [WEAK] + EXPORT EXTI4_IRQHandler [WEAK] + EXPORT DMA1_Channel1_IRQHandler [WEAK] + EXPORT DMA1_Channel2_IRQHandler [WEAK] + EXPORT DMA1_Channel3_IRQHandler [WEAK] + EXPORT DMA1_Channel4_IRQHandler [WEAK] + EXPORT DMA1_Channel5_IRQHandler [WEAK] + EXPORT DMA1_Channel6_IRQHandler [WEAK] + EXPORT DMA1_Channel7_IRQHandler [WEAK] + EXPORT ADC1_2_IRQHandler [WEAK] + EXPORT CAN1_TX_IRQHandler [WEAK] + EXPORT CAN1_RX0_IRQHandler [WEAK] + EXPORT CAN1_RX1_IRQHandler [WEAK] + EXPORT CAN1_SCE_IRQHandler [WEAK] + EXPORT EXTI9_5_IRQHandler [WEAK] + EXPORT TIM1_BRK_TIM15_IRQHandler [WEAK] + EXPORT TIM1_UP_TIM16_IRQHandler [WEAK] + EXPORT TIM1_TRG_COM_TIM17_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT TIM2_IRQHandler [WEAK] + EXPORT TIM3_IRQHandler [WEAK] + EXPORT TIM4_IRQHandler [WEAK] + EXPORT I2C1_EV_IRQHandler [WEAK] + EXPORT I2C1_ER_IRQHandler [WEAK] + EXPORT I2C2_EV_IRQHandler [WEAK] + EXPORT I2C2_ER_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT SPI2_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + EXPORT USART2_IRQHandler [WEAK] + EXPORT USART3_IRQHandler [WEAK] + EXPORT EXTI15_10_IRQHandler [WEAK] + EXPORT RTC_Alarm_IRQHandler [WEAK] + EXPORT DFSDM1_FLT3_IRQHandler [WEAK] + EXPORT TIM8_BRK_IRQHandler [WEAK] + EXPORT TIM8_UP_IRQHandler [WEAK] + EXPORT TIM8_TRG_COM_IRQHandler [WEAK] + EXPORT TIM8_CC_IRQHandler [WEAK] + EXPORT ADC3_IRQHandler [WEAK] + EXPORT FMC_IRQHandler [WEAK] + EXPORT SDMMC1_IRQHandler [WEAK] + EXPORT TIM5_IRQHandler [WEAK] + EXPORT SPI3_IRQHandler [WEAK] + EXPORT UART4_IRQHandler [WEAK] + EXPORT UART5_IRQHandler [WEAK] + EXPORT TIM6_DAC_IRQHandler [WEAK] + EXPORT TIM7_IRQHandler [WEAK] + EXPORT DMA2_Channel1_IRQHandler [WEAK] + EXPORT DMA2_Channel2_IRQHandler [WEAK] + EXPORT DMA2_Channel3_IRQHandler [WEAK] + EXPORT DMA2_Channel4_IRQHandler [WEAK] + EXPORT DMA2_Channel5_IRQHandler [WEAK] + EXPORT DFSDM1_FLT0_IRQHandler [WEAK] + EXPORT DFSDM1_FLT1_IRQHandler [WEAK] + EXPORT DFSDM1_FLT2_IRQHandler [WEAK] + EXPORT COMP_IRQHandler [WEAK] + EXPORT LPTIM1_IRQHandler [WEAK] + EXPORT LPTIM2_IRQHandler [WEAK] + EXPORT OTG_FS_IRQHandler [WEAK] + EXPORT DMA2_Channel6_IRQHandler [WEAK] + EXPORT DMA2_Channel7_IRQHandler [WEAK] + EXPORT LPUART1_IRQHandler [WEAK] + EXPORT QUADSPI_IRQHandler [WEAK] + EXPORT I2C3_EV_IRQHandler [WEAK] + EXPORT I2C3_ER_IRQHandler [WEAK] + EXPORT SAI1_IRQHandler [WEAK] + EXPORT SAI2_IRQHandler [WEAK] + EXPORT SWPMI1_IRQHandler [WEAK] + EXPORT TSC_IRQHandler [WEAK] + EXPORT LCD_IRQHandler [WEAK] + EXPORT RNG_IRQHandler [WEAK] + EXPORT FPU_IRQHandler [WEAK] + EXPORT CRS_IRQHandler [WEAK] + EXPORT I2C4_EV_IRQHandler [WEAK] + EXPORT I2C4_ER_IRQHandler [WEAK] + EXPORT DCMI_IRQHandler [WEAK] + EXPORT CAN2_TX_IRQHandler [WEAK] + EXPORT CAN2_RX0_IRQHandler [WEAK] + EXPORT CAN2_RX1_IRQHandler [WEAK] + EXPORT CAN2_SCE_IRQHandler [WEAK] + EXPORT DMA2D_IRQHandler [WEAK] + +WWDG_IRQHandler +PVD_PVM_IRQHandler +TAMP_STAMP_IRQHandler +RTC_WKUP_IRQHandler +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_IRQHandler +EXTI1_IRQHandler +EXTI2_IRQHandler +EXTI3_IRQHandler +EXTI4_IRQHandler +DMA1_Channel1_IRQHandler +DMA1_Channel2_IRQHandler +DMA1_Channel3_IRQHandler +DMA1_Channel4_IRQHandler +DMA1_Channel5_IRQHandler +DMA1_Channel6_IRQHandler +DMA1_Channel7_IRQHandler +ADC1_2_IRQHandler +CAN1_TX_IRQHandler +CAN1_RX0_IRQHandler +CAN1_RX1_IRQHandler +CAN1_SCE_IRQHandler +EXTI9_5_IRQHandler +TIM1_BRK_TIM15_IRQHandler +TIM1_UP_TIM16_IRQHandler +TIM1_TRG_COM_TIM17_IRQHandler +TIM1_CC_IRQHandler +TIM2_IRQHandler +TIM3_IRQHandler +TIM4_IRQHandler +I2C1_EV_IRQHandler +I2C1_ER_IRQHandler +I2C2_EV_IRQHandler +I2C2_ER_IRQHandler +SPI1_IRQHandler +SPI2_IRQHandler +USART1_IRQHandler +USART2_IRQHandler +USART3_IRQHandler +EXTI15_10_IRQHandler +RTC_Alarm_IRQHandler +DFSDM1_FLT3_IRQHandler +TIM8_BRK_IRQHandler +TIM8_UP_IRQHandler +TIM8_TRG_COM_IRQHandler +TIM8_CC_IRQHandler +ADC3_IRQHandler +FMC_IRQHandler +SDMMC1_IRQHandler +TIM5_IRQHandler +SPI3_IRQHandler +UART4_IRQHandler +UART5_IRQHandler +TIM6_DAC_IRQHandler +TIM7_IRQHandler +DMA2_Channel1_IRQHandler +DMA2_Channel2_IRQHandler +DMA2_Channel3_IRQHandler +DMA2_Channel4_IRQHandler +DMA2_Channel5_IRQHandler +DFSDM1_FLT0_IRQHandler +DFSDM1_FLT1_IRQHandler +DFSDM1_FLT2_IRQHandler +COMP_IRQHandler +LPTIM1_IRQHandler +LPTIM2_IRQHandler +OTG_FS_IRQHandler +DMA2_Channel6_IRQHandler +DMA2_Channel7_IRQHandler +LPUART1_IRQHandler +QUADSPI_IRQHandler +I2C3_EV_IRQHandler +I2C3_ER_IRQHandler +SAI1_IRQHandler +SAI2_IRQHandler +SWPMI1_IRQHandler +TSC_IRQHandler +LCD_IRQHandler +RNG_IRQHandler +FPU_IRQHandler +CRS_IRQHandler +I2C4_EV_IRQHandler +I2C4_ER_IRQHandler +DCMI_IRQHandler +CAN2_TX_IRQHandler +CAN2_RX0_IRQHandler +CAN2_RX1_IRQHandler +CAN2_SCE_IRQHandler +DMA2D_IRQHandler + + B . + + ENDP + + ALIGN + +;******************************************************************************* +; User Stack and Heap initialization +;******************************************************************************* + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE***** diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf new file mode 100644 index 00000000..979440d7 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf @@ -0,0 +1,77 @@ +// File: STM32L4x5_4x6.dbgconf +// Version: 1.0.0 +// Note: refer to STM32L4x5 and STM32L4x6 Reference manual (RM0351) +// refer to STM32L475xx STM32L476xx STM32L486xx STM32L496xx STM32L4A6xx datasheets + +// <<< Use Configuration Wizard in Context Menu >>> + +// Debug MCU configuration register (DBGMCU_CR) +// DBG_STANDBY Debug Standby mode +// DBG_STOP Debug Stop mode +// DBG_SLEEP Debug Sleep mode +// +DbgMCU_CR = 0x00000007; + +// Debug MCU APB1 freeze register1 (DBGMCU_APB1FZR1) +// Reserved bits must be kept at reset value +// DBG_LPTIM1_STOP LPTIM1 counter stopped when core is halted +// DBG_CAN2_STOP bxCAN2 stopped when core is halted +// DBG_CAN1_STOP bxCAN1 stopped when core is halted +// DBG_I2C3_STOP I2C3 SMBUS timeout counter stopped when core is halted +// DBG_I2C2_STOP I2C2 SMBUS timeout counter stopped when core is halted +// DBG_I2C1_STOP I2C1 SMBUS timeout counter stopped when core is halted +// DBG_IWDG_STOP Independent watchdog counter stopped when core is halted +// DBG_WWDG_STOP Window watchdog counter stopped when core is halted +// DBG_RTC_STOP RTC counter stopped when core is halted +// DBG_TIM7_STOP TIM7 counter stopped when core is halted +// DBG_TIM6_STOP TIM6 counter stopped when core is halted +// DBG_TIM5_STOP TIM5 counter stopped when core is halted +// DBG_TIM4_STOP TIM4 counter stopped when core is halted +// DBG_TIM3_STOP TIM3 counter stopped when core is halted +// DBG_TIM2_STOP TIM2 counter stopped when core is halted +// +DbgMCU_APB1_Fz1 = 0x00000000; + +// Debug MCU APB1 freeze register 2 (DBGMCU_APB1FZR2) +// Reserved bits must be kept at reset value +// DBG_LPTIM2_STOP LPTIM2 counter stopped when core is halted +// DBG_I2C4_STOP I2C4 SMBUS timeout counter stopped when core is halted +// +DbgMCU_APB1_Fz2 = 0x00000000; + +// Debug MCU APB2 freeze register (DBGMCU_APB2FZR) +// Reserved bits must be kept at reset value +// DBG_TIM17_STOP TIM17 counter stopped when core is halted +// DBG_TIM16_STOP TIM16 counter stopped when core is halted +// DBG_TIM15_STOP TIM15 counter stopped when core is halted +// DBG_TIM8_STOP TIM8 counter stopped when core is halted +// DBG_TIM1_STOP TIM1 counter stopped when core is halted +// +DbgMCU_APB2_Fz = 0x00000000; + +// TPIU Pin Routing (TRACECLK fixed on Pin PE2) +// TRACECLK: Pin PE2 +// TRACED0 +// ETM Trace Data 0 +// <0x00040003=> Pin PE3 +// <0x00020001=> Pin PC1 +// TRACED1 +// ETM Trace Data 1 +// <0x00040004=> Pin PE4 +// <0x0002000A=> Pin PC10 +// TRACED2 +// ETM Trace Data 2 +// <0x00040005=> Pin PE5 +// <0x00030002=> Pin PD2 +// TRACED3 +// ETM Trace Data 3 +// <0x00040006=> Pin PE6 +// <0x0002000C=> Pin PC12 +// +TraceClk_Pin = 0x00040002; +TraceD0_Pin = 0x00040003; +TraceD1_Pin = 0x00040004; +TraceD2_Pin = 0x00040005; +TraceD3_Pin = 0x00040006; + +// <<< end of configuration section >>> diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/RTE/_TencentOS_tiny/RTE_Components.h b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/RTE/_TencentOS_tiny/RTE_Components.h new file mode 100644 index 00000000..248f644f --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/RTE/_TencentOS_tiny/RTE_Components.h @@ -0,0 +1,21 @@ + +/* + * Auto generated Run-Time-Environment Configuration File + * *** Do not modify ! *** + * + * Project: 'TencentOS_tiny' + * Target: 'TencentOS_tiny' + */ + +#ifndef RTE_COMPONENTS_H +#define RTE_COMPONENTS_H + + +/* + * Define the Device Header File: + */ +#define CMSIS_device_header "stm32l4xx.h" + + + +#endif /* RTE_COMPONENTS_H */ diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny.uvguix.CoCo b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny.uvguix.CoCo new file mode 100644 index 00000000..4af77831 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny.uvguix.CoCo @@ -0,0 +1,1860 @@ + + + + -6.1 + +
    ### uVision Project, (C) Keil Software
    + + + + + + + + + + 38003 + Registers + 115 55 + + + 346 + Code Coverage + 710 160 + + + 204 + Performance Analyzer + 870 + + + + + + 35141 + Event Statistics + + 200 50 700 + + + 1506 + Symbols + + 60 60 60 + + + 1936 + Watch 1 + + 200 133 133 + + + 1937 + Watch 2 + + 200 133 133 + + + 1935 + Call Stack + Locals + + 200 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + 466 + Source Browser + 500 + 300 + + + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 94 + 156 + 1236 + 989 + + + + 0 + + 60 + 010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000000000000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B80000004F00000028040000CB000000 + + + 16 + 5C010000CC000000CC04000048010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B1000000D5020000 + + + 16 + BE000000D50000007201000088010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B1000000D5020000 + + + 16 + BE000000D500000092010000C7020000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D5000000D202000051010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D5000000D202000051010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D5000000D202000051010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D5000000D202000051010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + BE000000D5000000D202000051010000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D50000007201000088010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D50000007201000088010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D50000007201000088010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D5000000D202000051010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D5000000D202000051010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D5000000D202000051010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D5000000D202000051010000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B1000000D5020000 + + + 16 + BE000000D500000092010000C7020000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B1000000D5020000 + + + 16 + BE000000D500000092010000C7020000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0000000006030000A00500006E030000 + + + 16 + BE000000D5000000D202000051010000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000CB010000280400005B020000 + + + 16 + BE000000D5000000D202000051010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000090300009D05000055030000 + + + 16 + BE000000D5000000D202000051010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + BE000000D5000000D202000051010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + BE000000D5000000D202000051010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D5000000D202000051010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + BE000000D5000000D202000051010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + BE000000D5000000D202000051010000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + BE000000D50000007201000088010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + BE000000D5000000D202000051010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B1000000D5020000 + + + 16 + BE000000D500000092010000C7020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000090300009D05000055030000 + + + 16 + BE000000D5000000D202000051010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000090300009D05000055030000 + + + 16 + BE000000D500000092010000C7020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D50000007201000088010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D50000007201000088010000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000090300009D05000055030000 + + + 16 + BE000000D500000092010000C7020000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000090300009D05000055030000 + + + 16 + BE000000D500000092010000C7020000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + BE000000D5000000D202000051010000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + BE000000D50000007201000088010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 966 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000006E030000A005000081030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 476 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + BE000000D50000007201000088010000 + + + + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFB8000000CB00000028040000CF000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000005C010000CC000000CC04000048010000B80000004F00000028040000CB0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF700300004F00000074030000DB010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000018040000CC000000CC04000058020000740300004F00000028040000DB01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFB40000004F000000B8000000EE020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000A4000000CC000000580100006B030000000000004F000000B4000000EE0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000C701000028040000CB01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000A400000048020000CC040000D802000000000000CB010000280400005B02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF14020000CB010000180200005B02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000EE020000A0050000F2020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000A40000006F03000044060000EB03000000000000F2020000A00500006E0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2915 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000400000000000000000000000000000000000001000000010000009600000002002050000000001243414D4552415F4445564943455F496E6974960000000000000013001243414D4552415F4445564943455F496E697419424F4152445F43616D6572615F4932435F53656E64534343420E48414C5F534452414D5F496E69740B44454255475F55534152540F4750494F5F4146375F5553415254320E4750494F5F4146375F5541525435134C43445F446973706C6179537472696E674174154C43445F446973706C6179537472696E674C696E650F4C43445F53656C6563744C617965720E4750494F5F414631345F4C544443065F5F6D61696E0A53797374656D496E6974145F5F48414C5F44434D495F454E41424C455F49540477656C6C146B5F6370755F6379636C655F7065725F7469636B056B5F6370750262700E50656E6453565F48616E646C65721253544D6963726F656C656374726F6E69637300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 988 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E54656E63656E744F535F74696E79960000000000000001000E54656E63656E744F535F74696E79000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1440 + 960 + + + + +
    diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny/TencentOS_tiny.build_log.htm b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny/TencentOS_tiny.build_log.htm new file mode 100644 index 00000000..8ffac335 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny/TencentOS_tiny.build_log.htm @@ -0,0 +1,56 @@ + + +
    +

    µVision Build Log

    +

    Tool Versions:

    +IDE-Version: ¦ÌVision V5.30.0.0 +Copyright (C) 2020 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 2, 3, LIC=VGXG8-3EBEY-FWM2N-Y5VPW-1RV7D-LEXKU + +Tool Versions: +Toolchain: MDK-ARM Plus Version: 5.30.0.0 +Toolchain Path: D:\software\Keil\ARM\ARMCLANG\Bin +C Compiler: ArmClang.exe V6.14 +Assembler: Armasm.exe V6.14 +Linker/Locator: ArmLink.exe V6.14 +Library Manager: ArmAr.exe V6.14 +Hex Converter: FromElf.exe V6.14 +CPU DLL: SARMCM3.DLL V5.30.0.0 +Dialog DLL: DCM.DLL V1.17.3.0 +Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.7.0 +Dialog DLL: TCM.DLL V1.42.0.0 + +

    Project:

    +D:\Code\Project\tencentos\TencentOS-tiny\board\NUCLEO_STM32L496ZG\KEIL\tflitemicro_person_detection\TencentOS_tiny.uvprojx +Project File Date: 09/08/2021 + +

    Output:

    +*** Using Compiler 'V6.14', folder: 'D:\software\Keil\ARM\ARMCLANG\Bin' +Build target 'TencentOS_tiny' +"TencentOS_tiny\TencentOS_tiny.axf" - 0 Error(s), 0 Warning(s). + +

    Software Packages used:

    + +Package Vendor: ARM + http://www.keil.com/pack/ARM.CMSIS.5.7.0.pack + ARM.CMSIS.5.7.0 + CMSIS (Cortex Microcontroller Software Interface Standard) + * Component: CORE Version: 5.4.0 + +Package Vendor: Keil + https://www.keil.com/pack/Keil.STM32L4xx_DFP.2.5.0.pack + Keil.STM32L4xx_DFP.2.5.0 + STMicroelectronics STM32L4 Series Device Support, Drivers and Examples + +

    Collection of Component include folders:

    + .\RTE\_TencentOS_tiny + D:\software\Keil\ARM\CMSIS\5.7.0\CMSIS\Core\Include + D:\software\Keil\Keil\STM32L4xx_DFP\2.5.0\Drivers\CMSIS\Device\ST\STM32L4xx\Include + +

    Collection of Component Files used:

    + + * Component: ARM::CMSIS:CORE:5.4.0 +Build Time Elapsed: 00:00:02 +
    + + diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny/TencentOS_tiny.htm b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny/TencentOS_tiny.htm new file mode 100644 index 00000000..71d0ad66 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny/TencentOS_tiny.htm @@ -0,0 +1,11138 @@ + + +Static Call Graph - [TencentOS_tiny\TencentOS_tiny.axf] +
    +

    Static Call Graph for image TencentOS_tiny\TencentOS_tiny.axf


    +

    #<CALLGRAPH># ARM Linker, 6140002: Last Updated: Wed Sep 8 21:46:03 2021 +

    +

    Maximum Stack Usage = 1128 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

    +Call chain for Maximum Stack Depth:

    +std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const ⇒ std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +

    +

    +Functions with no stack information +

    + +

    +

    +Mutually Recursive functions +

  • ADC1_2_IRQHandler   ⇒   ADC1_2_IRQHandler
    +
  • BusFault_Handler   ⇒   BusFault_Handler
    +
  • HardFault_Handler   ⇒   HardFault_Handler
    +
  • MemManage_Handler   ⇒   MemManage_Handler
    +
  • UsageFault_Handler   ⇒   UsageFault_Handler
    +
  • _sys_exit   ⇒   _sys_exit
    +
  • task2   ⇒   task2
    +
  • knl_idle_entry   ⇒   knl_idle_entry
    + +

    +

    +Function Pointers +

    +

    +

    +Global Symbols +

    +

    __main (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main)) +

    [Calls]

    • >>   __rt_entry +
    • >>   __scatterload +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(.text) +
    +

    __scatterload (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter)) +

    [Called By]

    • >>   __main +
    + +

    __scatterload_rt2 (Thumb, 44 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) +

    [Calls]

    • >>   __rt_entry +
    + +

    __scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) + +

    __scatterload_null (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) + +

    __scatterload_copy (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED) +

    [Calls]

    • >>   __scatterload_copy +
    +
    [Called By]
    • >>   __scatterload_copy +
    + +

    __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED) + +

    _printf_n (Thumb, 0 bytes, Stack size unknown bytes, _printf_n.o(.ARM.Collect$$_printf_percent$$00000001)) +

    [Calls]

    • >>   _printf_charcount +
    + +

    _printf_percent (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000)) +

    [Called By]

    • >>   __printf +
    + +

    _printf_p (Thumb, 0 bytes, Stack size unknown bytes, _printf_p.o(.ARM.Collect$$_printf_percent$$00000002)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = _printf_p ⇒ _printf_hex_ptr ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_hex_ptr +
    + +

    _printf_f (Thumb, 0 bytes, Stack size unknown bytes, _printf_f.o(.ARM.Collect$$_printf_percent$$00000003)) +

    [Stack]

    • Max Depth = 324 + Unknown Stack Size +
    • Call Chain = _printf_f ⇒ _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _printf_fp_dec +
    + +

    _printf_e (Thumb, 0 bytes, Stack size unknown bytes, _printf_e.o(.ARM.Collect$$_printf_percent$$00000004)) +

    [Stack]

    • Max Depth = 324 + Unknown Stack Size +
    • Call Chain = _printf_e ⇒ _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _printf_fp_dec +
    + +

    _printf_g (Thumb, 0 bytes, Stack size unknown bytes, _printf_g.o(.ARM.Collect$$_printf_percent$$00000005)) +

    [Stack]

    • Max Depth = 324 + Unknown Stack Size +
    • Call Chain = _printf_g ⇒ _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _printf_fp_dec +
    + +

    _printf_a (Thumb, 0 bytes, Stack size unknown bytes, _printf_a.o(.ARM.Collect$$_printf_percent$$00000006)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = _printf_a ⇒ _printf_fp_hex ⇒ _printf_fp_hex_real ⇒ _printf_fp_infnan ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_fp_hex +
    + +

    _printf_ll (Thumb, 0 bytes, Stack size unknown bytes, _printf_ll.o(.ARM.Collect$$_printf_percent$$00000007)) + +

    _printf_i (Thumb, 0 bytes, Stack size unknown bytes, _printf_i.o(.ARM.Collect$$_printf_percent$$00000008)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_i ⇒ _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_dec +
    + +

    _printf_d (Thumb, 0 bytes, Stack size unknown bytes, _printf_d.o(.ARM.Collect$$_printf_percent$$00000009)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_d ⇒ _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_dec +
    + +

    _printf_u (Thumb, 0 bytes, Stack size unknown bytes, _printf_u.o(.ARM.Collect$$_printf_percent$$0000000A)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_u ⇒ _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_dec +
    + +

    _printf_o (Thumb, 0 bytes, Stack size unknown bytes, _printf_o.o(.ARM.Collect$$_printf_percent$$0000000B)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = _printf_o ⇒ _printf_int_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_oct +
    + +

    _printf_x (Thumb, 0 bytes, Stack size unknown bytes, _printf_x.o(.ARM.Collect$$_printf_percent$$0000000C)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = _printf_x ⇒ _printf_int_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_hex +
    + +

    _printf_lli (Thumb, 0 bytes, Stack size unknown bytes, _printf_lli.o(.ARM.Collect$$_printf_percent$$0000000D)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_lli ⇒ _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_dec +
    + +

    _printf_lld (Thumb, 0 bytes, Stack size unknown bytes, _printf_lld.o(.ARM.Collect$$_printf_percent$$0000000E)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_lld ⇒ _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_dec +
    + +

    _printf_llu (Thumb, 0 bytes, Stack size unknown bytes, _printf_llu.o(.ARM.Collect$$_printf_percent$$0000000F)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_llu ⇒ _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_dec +
    + +

    _printf_llo (Thumb, 0 bytes, Stack size unknown bytes, _printf_llo.o(.ARM.Collect$$_printf_percent$$00000010)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = _printf_llo ⇒ _printf_ll_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_ll_oct +
    + +

    _printf_llx (Thumb, 0 bytes, Stack size unknown bytes, _printf_llx.o(.ARM.Collect$$_printf_percent$$00000011)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = _printf_llx ⇒ _printf_ll_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_ll_hex +
    + +

    _printf_l (Thumb, 0 bytes, Stack size unknown bytes, _printf_l.o(.ARM.Collect$$_printf_percent$$00000012)) + +

    _printf_c (Thumb, 0 bytes, Stack size unknown bytes, _printf_c.o(.ARM.Collect$$_printf_percent$$00000013)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = _printf_c ⇒ _printf_char ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_char +
    + +

    _printf_s (Thumb, 0 bytes, Stack size unknown bytes, _printf_s.o(.ARM.Collect$$_printf_percent$$00000014)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = _printf_s ⇒ _printf_string ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_string +
    + +

    _printf_lc (Thumb, 0 bytes, Stack size unknown bytes, _printf_lc.o(.ARM.Collect$$_printf_percent$$00000015)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = _printf_lc ⇒ _printf_wchar ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _printf_wchar +
    + +

    _printf_ls (Thumb, 0 bytes, Stack size unknown bytes, _printf_ls.o(.ARM.Collect$$_printf_percent$$00000016)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = _printf_ls ⇒ _printf_wstring ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _printf_wstring +
    + +

    _printf_percent_end (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017)) + +

    __rt_lib_init (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000)) +

    [Called By]

    • >>   __rt_entry_li +
    + +

    __rt_lib_init_fp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000001)) +

    [Calls]

    • >>   _fp_init +
    + +

    __rt_lib_init_heap_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000005)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_heap_2 ⇒ _init_alloc ⇒ __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   _init_alloc +
    + +

    __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004)) + +

    __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A)) + +

    __rt_lib_init_lc_common (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000F)) +

    [Calls]

    • >>   __rt_locale +
    + +

    __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E)) + +

    __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C)) + +

    __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011)) + +

    __rt_lib_init_lc_ctype_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000012)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_lc_ctype_2 ⇒ _get_lc_ctype ⇒ strcmp +
    +
    [Calls]
    • >>   _get_lc_ctype +
    + +

    __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013)) + +

    __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015)) + +

    __rt_lib_init_lc_numeric_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000016)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_lc_numeric_2 ⇒ _get_lc_numeric ⇒ strcmp +
    +
    [Calls]
    • >>   _get_lc_numeric +
    + +

    __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017)) + +

    __rt_lib_init_lc_time_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000018)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_lc_time_2 ⇒ _get_lc_time ⇒ strcmp +
    +
    [Calls]
    • >>   _get_lc_time +
    + +

    __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B)) + +

    __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021)) + +

    __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F)) + +

    __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023)) + +

    __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019)) + +

    __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D)) + +

    __rt_lib_init_stdio_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000024)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_stdio_2 ⇒ _initio ⇒ freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _initio +
    + +

    __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E)) + +

    __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C)) + +

    __rt_lib_init_cpp_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000031)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_cpp_2 ⇒ __cpp_initialize__aeabi_ +
    +
    [Calls]
    • >>   __cpp_initialize__aeabi_ +
    + +

    __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030)) + +

    __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025)) + +

    __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032)) + +

    __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033)) + +

    __rt_lib_shutdown (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000)) +

    [Called By]

    • >>   abort +
    • >>   __rt_exit_ls +
    + +

    __rt_lib_shutdown_cpp_2 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000001)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = __rt_lib_shutdown_cpp_2 ⇒ __cxa_finalize ⇒ free +
    +
    [Calls]
    • >>   __cxa_finalize +
    + +

    __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)) + +

    __rt_lib_shutdown_stdio_2 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000003)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = __rt_lib_shutdown_stdio_2 ⇒ _terminateio ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _terminateio +
    + +

    __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007)) + +

    __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F)) + +

    __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010)) + +

    __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A)) + +

    __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)) + +

    __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C)) + +

    __rt_entry (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000)) +

    [Called By]

    • >>   __main +
    • >>   __scatterload_rt2 +
    + +

    __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002)) + +

    __rt_entry_sh (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = __rt_entry_sh ⇒ __user_setup_stackheap +
    +
    [Calls]
    • >>   __user_setup_stackheap +
    + +

    __rt_entry_li (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000A)) +

    [Calls]

    • >>   __rt_lib_init +
    + +

    __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009)) + +

    __rt_entry_main (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D)) +

    [Stack]

    • Max Depth = 412 + Unknown Stack Size +
    • Call Chain = __rt_entry_main ⇒ main ⇒ board_init ⇒ MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   main +
    • >>   exit +
    + +

    __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C)) + +

    __rt_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000)) +

    [Called By]

    • >>   exit +
    + +

    __rt_exit_ls (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000003)) +

    [Calls]

    • >>   __rt_lib_shutdown +
    + +

    __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002)) + +

    __rt_exit_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004)) +

    [Calls]

    • >>   _sys_exit +
    + +

    Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    ADC1_2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +

    [Calls]

    • >>   ADC1_2_IRQHandler +
    +
    [Called By]
    • >>   ADC1_2_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    ADC3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    COMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CRS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2D_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI15_10_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI9_5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FMC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FPU_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C2_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C2_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C3_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C3_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C4_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C4_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LCD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LPTIM1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LPTIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    OTG_FS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    PVD_PVM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    QUADSPI_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RCC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RNG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RTC_Alarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RTC_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SAI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SAI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SDMMC1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SWPMI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TAMP_STAMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_BRK_TIM15_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_TRG_COM_TIM17_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_UP_TIM16_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM6_DAC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_BRK_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_TRG_COM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_UP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TSC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    UART4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    UART5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    __user_initial_stackheap (Thumb, 0 bytes, Stack size unknown bytes, startup_stm32l496xx.o(.text)) +

    [Called By]

    • >>   __user_setup_stackheap +
    + +

    port_int_disable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED) + +

    port_int_enable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED) + +

    port_cpsr_save (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_cpsr_save +
    + +

    port_cpsr_restore (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_cpsr_restore +
    + +

    port_clz (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_clz +
    + +

    port_sched_start (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_sched_start +
    + +

    port_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_context_switch +
    + +

    port_irq_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_irq_context_switch +
    + +

    PendSV_Handler (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) + +

    __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) + +

    malloc (Thumb, 94 bytes, Stack size 16 bytes, h1_alloc.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __Heap_Full +
    • >>   __rt_heap_descriptor +
    +
    [Called By]
    • >>   __aeabi_atexit +
    • >>   operator new(unsigned) +
    • >>   realloc +
    • >>   fopen +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   __ARM_vasprintf +
    + +

    free (Thumb, 78 bytes, Stack size 16 bytes, h1_free.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = free +
    +
    [Calls]
    • >>   __rt_heap_descriptor +
    +
    [Called By]
    • >>   operator delete (void*) +
    • >>   realloc +
    • >>   _fclose_internal +
    • >>   std::__1::ios_base::~ios_base() +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   __cxa_finalize +
    • >>   _terminateio +
    • >>   __Heap_ProvideMemory +
    +
    [Address Reference Count : 3]
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIcEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIjEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIwEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    +

    realloc (Thumb, 196 bytes, Stack size 16 bytes, h1_realloc.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = realloc ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __rt_heap_descriptor +
    • >>   __aeabi_memcpy4 +
    • >>   free +
    • >>   malloc +
    +
    [Called By]
    • >>   void std::__1::__double_or_nothing⟨wchar_t⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨char⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    + +

    __aeabi_uldivmod (Thumb, 0 bytes, Stack size 48 bytes, lludivv7m.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = __aeabi_uldivmod +
    +
    [Called By]
    • >>   UART_SetConfig +
    • >>   cpu_init +
    + +

    _ll_udiv (Thumb, 240 bytes, Stack size 48 bytes, lludivv7m.o(.text), UNUSED) + +

    __2printf (Thumb, 20 bytes, Stack size 24 bytes, __2printf.o(.text)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   _printf_char_file +
    +
    [Called By]
    • >>   OV2640_Init +
    • >>   DebugLog +
    + +

    _printf_str (Thumb, 82 bytes, Stack size 16 bytes, _printf_str.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    +
    [Called By]
    • >>   _printf_cs_common +
    + +

    _printf_int_dec (Thumb, 104 bytes, Stack size 24 bytes, _printf_dec.o(.text)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_common +
    • >>   _printf_truncate_unsigned +
    • >>   _printf_truncate_signed +
    +
    [Called By]
    • >>   _printf_d +
    • >>   _printf_u +
    • >>   _printf_i +
    + +

    _printf_longlong_hex (Thumb, 86 bytes, Stack size 16 bytes, _printf_hex_int_ll_ptr.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_common +
    +
    [Called By]
    • >>   _printf_hex_ptr +
    • >>   _printf_ll_hex +
    • >>   _printf_int_hex +
    + +

    _printf_int_hex (Thumb, 28 bytes, Stack size 16 bytes, _printf_hex_int_ll_ptr.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = _printf_int_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_hex +
    • >>   _printf_truncate_unsigned +
    +
    [Called By]
    • >>   _printf_x +
    + +

    _printf_ll_hex (Thumb, 12 bytes, Stack size 0 bytes, _printf_hex_int_ll_ptr.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _printf_ll_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_hex +
    +
    [Called By]
    • >>   _printf_llx +
    + +

    _printf_hex_ptr (Thumb, 18 bytes, Stack size 0 bytes, _printf_hex_int_ll_ptr.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _printf_hex_ptr ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_hex +
    +
    [Called By]
    • >>   _printf_p +
    + +

    __printf (Thumb, 388 bytes, Stack size 40 bytes, __printf_flags_ss_wp.o(.text)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = __printf +
    +
    [Calls]
    • >>   _printf_percent +
    • >>   _is_digit +
    +
    [Called By]
    • >>   _printf_char_common +
    + +

    puts (Thumb, 40 bytes, Stack size 8 bytes, puts.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = puts ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fputc +
    +
    [Called By]
    • >>   main +
    • >>   task1 +
    • >>   application_entry +
    • >>   OV2640_RGB565_Mode +
    • >>   OV2640_Init +
    • >>   LCD_2IN4_Display +
    + +

    abort (Thumb, 22 bytes, Stack size 8 bytes, abort.o(.text)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   _sys_exit +
    • >>   __rt_SIGABRT +
    • >>   __rt_lib_shutdown +
    +
    [Called By]
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::GetOpDataParser(tflite::BuiltinOperator) const +
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    • >>   abort_message +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::__throw_runtime_error(const char*) +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::~sentry() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::~sentry() +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    • >>   std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::collate⟨wchar_t⟩::do_transform(const wchar_t*, const wchar_t*) const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::__vector_base_common⟨(bool)1⟩::__throw_length_error() const +
    + +

    __cxa_atexit (Thumb, 10 bytes, Stack size 0 bytes, cxa_atexit.o(.text)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __aeabi_atexit +
    +
    [Called By]
    • >>   person_detect_init +
    • >>   std::__1::ios_base::Init::Init() +
    • >>   _GLOBAL__sub_I_main_functions.cc +
    • >>   _GLOBAL__sub_I_micro_interpreter.cc +
    • >>   _GLOBAL__sub_I_ios.cpp +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__X() const +
    • >>   _GLOBAL__sub_I_locale.cpp +
    + +

    strncmp (Thumb, 150 bytes, Stack size 16 bytes, strncmp.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = strncmp +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    __aeabi_memcpy (Thumb, 0 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text)) +

    [Called By]

    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsputn(const char*, int) +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsgetn(char*, int) +
    • >>   memcpy +
    • >>   c16rtomb +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    • >>   std::__1::numpunct⟨char⟩::do_falsename() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__c() const +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) +
    • >>   __rt_memmove +
    • >>   _wcsnrtombs +
    + +

    __rt_memcpy (Thumb, 138 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_memcpy4 +
    + +

    _memcpy_lastbytes (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_v6.o(.text), UNUSED) + +

    __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_memcpy4 +
    +
    [Called By]
    • >>   tflite::ops::micro::conv::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::conv::EvalQuantizedPerChannel(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::conv::EvalQuantized(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::pooling::AveragePrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::pooling::AverageEval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   __rt_memcpy +
    • >>   realloc +
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    • >>   __rt_memmove_w +
    + +

    __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED) + +

    __rt_memcpy_w (Thumb, 100 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED) + +

    _memcpy_lastbytes_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_w.o(.text), UNUSED) + +

    __aeabi_memset (Thumb, 16 bytes, Stack size 0 bytes, aeabi_memset.o(.text)) +

    [Calls]

    • >>   _memset +
    +
    [Called By]
    • >>   cpu_task_stk_init +
    • >>   tflite::MicroInterpreter::ResetVariableTensors() +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    + +

    __aeabi_memclr (Thumb, 0 bytes, Stack size 0 bytes, rt_memclr.o(.text)) +

    [Called By]

    • >>   tos_mmheap_calloc +
    • >>   arm_depthwise_conv_s8_opt +
    • >>   arm_convolve_s8 +
    • >>   strncpy +
    + +

    __rt_memclr (Thumb, 68 bytes, Stack size 0 bytes, rt_memclr.o(.text), UNUSED) +

    [Calls]

    • >>   _memset_w +
    + +

    _memset (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr.o(.text)) +

    [Called By]

    • >>   __aeabi_memset +
    + +

    __aeabi_memclr4 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text)) +

    [Stack]

    • Max Depth = 4
    • Call Chain = __aeabi_memclr4 +
    +
    [Called By]
    • >>   board_init +
    • >>   HAL_DCMI_Start_DMA +
    • >>   mmheap_ctl_init +
    • >>   tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) +
    • >>   std::__1::ios_base::init(void*) +
    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    • >>   _fclose_internal +
    • >>   fopen +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf() +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf() +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__am_pm() const +
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    • >>   std::__1::locale::__imp::__imp(unsigned) +
    • >>   _initio +
    • >>   __dynamic_cast +
    • >>   __cxxabiv1::__class_type_info::can_catch(const __cxxabiv1::__shim_type_info*, void*&) const +
    + +

    __aeabi_memclr8 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) + +

    __rt_memclr_w (Thumb, 78 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) + +

    _memset_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text)) +

    [Called By]

    • >>   __rt_memclr +
    • >>   wmemset +
    + +

    strncpy (Thumb, 86 bytes, Stack size 8 bytes, strncpy.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = strncpy +
    +
    [Calls]
    • >>   __aeabi_memclr +
    +
    [Called By]
    • >>   tos_task_create +
    + +

    strcmp (Thumb, 124 bytes, Stack size 8 bytes, strcmpv7em.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = strcmp +
    +
    [Called By]
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::FindOp(const char*) const +
    • >>   _get_lc_numeric +
    • >>   _get_lc_time +
    • >>   _get_lc_ctype +
    • >>   __cxxabiv1::__vmi_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const +
    • >>   __cxxabiv1::__vmi_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    • >>   __cxxabiv1::__si_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const +
    • >>   __cxxabiv1::__si_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    • >>   __cxxabiv1::__class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const +
    • >>   __cxxabiv1::__class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    + +

    __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) + +

    __rt_heap_escrow (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) + +

    __rt_heap_expand (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) + +

    __cpp_initialize__aeabi_ (Thumb, 28 bytes, Stack size 16 bytes, init_aeabi.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __cpp_initialize__aeabi_ +
    +
    [Called By]
    • >>   __rt_lib_init_cpp_2 +
    + +

    __rt_heap_descriptor (Thumb, 8 bytes, Stack size 0 bytes, rt_heap_descriptor_intlibspace.o(.text)) +

    [Called By]

    • >>   _init_alloc +
    • >>   realloc +
    • >>   free +
    • >>   malloc +
    + +

    __use_no_heap (Thumb, 2 bytes, Stack size 0 bytes, hguard.o(.text), UNUSED) + +

    __heap$guard (Thumb, 2 bytes, Stack size 0 bytes, hguard.o(.text), UNUSED) + +

    _terminate_user_alloc (Thumb, 2 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) + +

    _init_user_alloc (Thumb, 2 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) + +

    __Heap_Full (Thumb, 34 bytes, Stack size 16 bytes, init_alloc.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __Heap_ProvideMemory +
    +
    [Called By]
    • >>   malloc +
    + +

    __Heap_Broken (Thumb, 6 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) +

    [Calls]

    • >>   __rt_SIGRTMEM +
    + +

    _init_alloc (Thumb, 94 bytes, Stack size 24 bytes, init_alloc.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _init_alloc ⇒ __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __Heap_Initialize +
    • >>   __rt_heap_descriptor +
    • >>   __rt_SIGRTMEM +
    • >>   __Heap_ProvideMemory +
    +
    [Called By]
    • >>   __rt_lib_init_heap_2 +
    + +

    __Heap_Initialize (Thumb, 10 bytes, Stack size 0 bytes, h1_init.o(.text)) +

    [Called By]

    • >>   _init_alloc +
    + +

    __Heap_DescSize (Thumb, 4 bytes, Stack size 0 bytes, h1_init.o(.text), UNUSED) + +

    __read_errno (Thumb, 10 bytes, Stack size 8 bytes, _rserrno.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_errno_addr +
    + +

    __set_errno (Thumb, 12 bytes, Stack size 8 bytes, _rserrno.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __set_errno +
    +
    [Calls]
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   __hardfp_expf +
    • >>   __hardfp_ldexp +
    • >>   __hardfp___mathlib_tofloat +
    + +

    _printf_int_common (Thumb, 178 bytes, Stack size 32 bytes, _printf_intcommon.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    +
    [Called By]
    • >>   _printf_longlong_hex +
    • >>   _printf_int_dec +
    • >>   _printf_longlong_oct +
    • >>   _printf_longlong_dec +
    + +

    _printf_cs_common (Thumb, 20 bytes, Stack size 8 bytes, _printf_char.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_str +
    +
    [Called By]
    • >>   _printf_string +
    • >>   _printf_char +
    + +

    _printf_char (Thumb, 16 bytes, Stack size 0 bytes, _printf_char.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_char ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_cs_common +
    +
    [Called By]
    • >>   _printf_c +
    + +

    _printf_string (Thumb, 8 bytes, Stack size 0 bytes, _printf_char.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_string ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_cs_common +
    +
    [Called By]
    • >>   _printf_s +
    + +

    _printf_char_file (Thumb, 32 bytes, Stack size 16 bytes, _printf_char_file.o(.text)) +

    [Stack]

    • Max Depth = 120 + Unknown Stack Size +
    • Call Chain = _printf_char_file ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   ferror +
    • >>   _printf_char_common +
    +
    [Called By]
    • >>   __2printf +
    + +

    _do_fflush (Thumb, 54 bytes, Stack size 16 bytes, fflush.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _do_fflush ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _fflush +
    • >>   _fseek +
    +
    [Called By]
    • >>   fflush +
    + +

    fflush (Thumb, 42 bytes, Stack size 16 bytes, fflush.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = fflush ⇒ _do_fflush ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _do_fflush +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::sync() +
    • >>   std::__1::__stdoutbuf⟨char⟩::sync() +
    + +

    fwrite (Thumb, 50 bytes, Stack size 24 bytes, fwrite.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = fwrite ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fputc +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::overflow(int) +
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::xsputn(const wchar_t*, int) +
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::sync() +
    • >>   std::__1::__stdoutbuf⟨char⟩::overflow(int) +
    • >>   std::__1::__stdoutbuf⟨char⟩::xsputn(const char*, int) +
    • >>   std::__1::__stdoutbuf⟨char⟩::sync() +
    + +

    getc (Thumb, 4 bytes, Stack size 0 bytes, getc.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   fgetc +
    +
    [Called By]
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) +
    • >>   std::__1::__stdinbuf⟨char⟩::__getchar(bool) +
    + +

    _ungetc_internal (Thumb, 60 bytes, Stack size 0 bytes, ungetc.o(.text), UNUSED) + +

    ungetc (Thumb, 0 bytes, Stack size 0 bytes, ungetc.o(.text)) +

    [Called By]

    • >>   std::__1::__stdinbuf⟨wchar_t⟩::pbackfail(int) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) +
    • >>   std::__1::__stdinbuf⟨char⟩::pbackfail(int) +
    • >>   std::__1::__stdinbuf⟨char⟩::__getchar(bool) +
    + +

    __aeabi_atexit (Thumb, 46 bytes, Stack size 24 bytes, aeabi_atexit.o(.text)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   malloc +
    • >>   __rt_ddtor_pointer_addr +
    +
    [Called By]
    • >>   __cxa_atexit +
    + +

    __rt_SIGABRT (Thumb, 14 bytes, Stack size 8 bytes, defsig_abrt_outer.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __rt_SIGABRT_inner +
    • >>   __sig_exit +
    +
    [Called By]
    • >>   abort +
    + +

    __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) + +

    __user_perproc_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text)) +

    [Called By]

    • >>   __user_setup_stackheap +
    + +

    __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) + +

    __rt_ctype_table (Thumb, 16 bytes, Stack size 8 bytes, rt_ctype_table.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_locale +
    +
    [Called By]
    • >>   isspace +
    • >>   _c16rtomb +
    • >>   _mbrtoc16 +
    • >>   __strtoull +
    • >>   __strtoll +
    • >>   _wclass +
    • >>   std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t*, const wchar_t*) const +
    • >>   std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t) const +
    • >>   std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t*, const wchar_t*) const +
    • >>   std::__1::ctype⟨char⟩::do_toupper(char) const +
    • >>   std::__1::ctype⟨char⟩::do_toupper(char*, const char*) const +
    • >>   std::__1::ctype⟨char⟩::do_tolower(char) const +
    • >>   std::__1::ctype⟨char⟩::do_tolower(char*, const char*) const +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   __aeabi_MB_CUR_MAX +
    + +

    __rt_ddtor_pointer_addr (Thumb, 8 bytes, Stack size 0 bytes, rt_ddtor_pointer_addr_intlibspace.o(.text)) +

    [Called By]

    • >>   __aeabi_atexit +
    • >>   __cxa_finalize +
    + +

    __aeabi_errno_addr (Thumb, 8 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text)) +

    [Called By]

    • >>   __set_errno +
    • >>   __read_errno +
    • >>   _strtoull +
    • >>   c16rtomb +
    • >>   mbrtoc16 +
    • >>   _ftell_internal +
    • >>   __strtoull +
    • >>   __strtoll +
    • >>   _fp_value +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) +
    • >>   T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) +
    • >>   T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) +
    • >>   _wcsnrtombs +
    • >>   _mbsnrtowcs +
    • >>   mbsrtowcs +
    + +

    __errno$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED) + +

    __rt_errno_addr$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED) + +

    __Heap_ProvideMemory (Thumb, 52 bytes, Stack size 0 bytes, h1_extend.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   free +
    +
    [Called By]
    • >>   _init_alloc +
    • >>   __Heap_Full +
    + +

    _maybe_terminate_alloc (Thumb, 0 bytes, Stack size 0 bytes, maybetermalloc1.o(.text), UNUSED) + +

    iswlower (Thumb, 12 bytes, Stack size 8 bytes, iswlower.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = iswlower ⇒ _wclass ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   _wclass +
    +
    [Called By]
    • >>   std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t) const +
    + +

    __ARM_vasprintf (Thumb, 56 bytes, Stack size 24 bytes, __ARM_vasprintf.o(.text)) +

    [Stack]

    • Max Depth = 152 + Unknown Stack Size +
    • Call Chain = __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   malloc +
    • >>   vsnprintf +
    +
    [Called By]
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    + +

    __ARM_snprintf (Thumb, 50 bytes, Stack size 40 bytes, __ARM_snprintf.o(.text)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = __ARM_snprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   _sputc +
    • >>   _printf_char_common +
    +
    [Called By]
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    + +

    __ARM_vsnprintf (Thumb, 48 bytes, Stack size 24 bytes, __ARM_vsnprintf.o(.text)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   _sputc +
    • >>   _printf_char_common +
    +
    [Called By]
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    + +

    _printf_char_common (Thumb, 32 bytes, Stack size 64 bytes, _printf_char_common.o(.text)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   __printf +
    +
    [Called By]
    • >>   _printf_char_file +
    • >>   vsnprintf +
    • >>   sprintf +
    • >>   __ARM_vsnprintf +
    • >>   __ARM_snprintf +
    + +

    __ARM_vsscanf (Thumb, 44 bytes, Stack size 56 bytes, __ARM_vsscanf.o(.text)) +

    [Stack]

    • Max Depth = 492
    • Call Chain = __ARM_vsscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __vfscanf_char +
    +
    [Called By]
    • >>   std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) +
    + +

    __0sscanf (Thumb, 52 bytes, Stack size 72 bytes, __0sscanf.o(.text)) +

    [Stack]

    • Max Depth = 508
    • Call Chain = __0sscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __vfscanf_char +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    + +

    strtoll (Thumb, 4 bytes, Stack size 0 bytes, strtoll.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = strtoll ⇒ __strtoll ⇒ _strtoull +
    +
    [Calls]
    • >>   __strtoll +
    +
    [Called By]
    • >>   T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) +
    + +

    strtoull (Thumb, 4 bytes, Stack size 0 bytes, strtoull.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = strtoull ⇒ __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   __strtoull +
    +
    [Called By]
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) +
    + +

    _fseek (Thumb, 242 bytes, Stack size 24 bytes, fseek.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _fseek ⇒ _ftell_internal +
    +
    [Calls]
    • >>   _sys_istty +
    • >>   _sys_flen +
    • >>   _ftell_internal +
    • >>   _seterr +
    +
    [Called By]
    • >>   _do_fflush +
    • >>   freopen +
    + +

    fseek (Thumb, 0 bytes, Stack size 24 bytes, fseek.o(.text), UNUSED) + +

    _seterr (Thumb, 20 bytes, Stack size 0 bytes, stdio.o(.text)) +

    [Called By]

    • >>   _writebuf +
    • >>   _fseek +
    + +

    _writebuf (Thumb, 84 bytes, Stack size 32 bytes, stdio.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _writebuf +
    +
    [Calls]
    • >>   _sys_write +
    • >>   _sys_seek +
    • >>   _seterr +
    +
    [Called By]
    • >>   _fflush +
    + +

    _fflush (Thumb, 70 bytes, Stack size 16 bytes, stdio.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _writebuf +
    +
    [Called By]
    • >>   _do_fflush +
    • >>   _fclose_internal +
    • >>   _deferredlazyseek +
    + +

    _deferredlazyseek (Thumb, 60 bytes, Stack size 8 bytes, stdio.o(.text), UNUSED) +

    [Calls]

    • >>   _fflush +
    + +

    _initio (Thumb, 210 bytes, Stack size 8 bytes, initio.o(.text)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = _initio ⇒ freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   __aeabi_memclr4 +
    • >>   __rt_SIGRTRED +
    • >>   freopen +
    • >>   setvbuf +
    +
    [Called By]
    • >>   __rt_lib_init_stdio_2 +
    + +

    _terminateio (Thumb, 56 bytes, Stack size 16 bytes, initio.o(.text)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = _terminateio ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   free +
    • >>   _fclose_internal +
    +
    [Called By]
    • >>   __rt_lib_shutdown_stdio_2 +
    + +

    mbtowc (Thumb, 122 bytes, Stack size 40 bytes, mbtowc.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = mbtowc ⇒ _mbrtowc +
    +
    [Calls]
    • >>   _mbrtowc +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_encoding() const +
    + +

    mbrlen (Thumb, 36 bytes, Stack size 16 bytes, mbrlen.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = mbrlen ⇒ mbrtowc ⇒ mbrtoc16 ⇒ _mbrtoc16 ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   mbrtowc +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const +
    + +

    mbsrtowcs (Thumb, 114 bytes, Stack size 40 bytes, mbsrtowcs.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = mbsrtowcs ⇒ _mbrtowc +
    +
    [Calls]
    • >>   _mbrtowc +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const +
    + +

    mbrtowc (Thumb, 4 bytes, Stack size 0 bytes, mbrtowc.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = mbrtowc ⇒ mbrtoc16 ⇒ _mbrtoc16 ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   mbrtoc16 +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, wchar_t*, wchar_t*, wchar_t*&) const +
    • >>   mbrlen +
    + +

    wcrtomb (Thumb, 4 bytes, Stack size 0 bytes, wcrtomb.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = wcrtomb ⇒ c16rtomb ⇒ _c16rtomb ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   c16rtomb +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, char*, char*, char*&) const +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const +
    + +

    __real_mbsnrtowcs (Thumb, 0 bytes, Stack size 40 bytes, mbsnrtowcs.o(.text), UNUSED) + +

    _mbsnrtowcs (Thumb, 132 bytes, Stack size 40 bytes, mbsnrtowcs.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _mbsnrtowcs ⇒ _mbrtowc +
    +
    [Calls]
    • >>   _mbrtowc +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, wchar_t*, wchar_t*, wchar_t*&) const +
    + +

    __real_wcsnrtombs (Thumb, 0 bytes, Stack size 64 bytes, wcsnrtombs.o(.text), UNUSED) + +

    _wcsnrtombs (Thumb, 146 bytes, Stack size 64 bytes, wcsnrtombs.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _wcsnrtombs ⇒ _wcrtomb +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    • >>   _wcrtomb +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, char*, char*, char*&) const +
    + +

    __aeabi_MB_CUR_MAX (Thumb, 26 bytes, Stack size 8 bytes, _mbcurmax.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __aeabi_MB_CUR_MAX ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_max_length() const +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_encoding() const +
    + +

    __mb_cur_max (Thumb, 0 bytes, Stack size 8 bytes, _mbcurmax.o(.text), UNUSED) + +

    __cxa_finalize (Thumb, 66 bytes, Stack size 24 bytes, cxa_finalize.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = __cxa_finalize ⇒ free +
    +
    [Calls]
    • >>   free +
    • >>   __rt_ddtor_pointer_addr +
    +
    [Called By]
    • >>   __rt_lib_shutdown_cpp_2 +
    + +

    __sig_exit (Thumb, 10 bytes, Stack size 0 bytes, defsig_exit.o(.text)) +

    [Calls]

    • >>   _sys_exit +
    +
    [Called By]
    • >>   __rt_SIGABRT +
    • >>   __rt_SIGRTRED +
    • >>   __rt_SIGRTMEM +
    + +

    __rt_SIGABRT_inner (Thumb, 14 bytes, Stack size 8 bytes, defsig_abrt_inner.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __default_signal_display +
    +
    [Called By]
    • >>   __rt_SIGABRT +
    + +

    __rt_SIGRTMEM (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtmem_outer.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __rt_SIGRTMEM_inner +
    • >>   __sig_exit +
    +
    [Called By]
    • >>   _init_alloc +
    • >>   __Heap_Broken +
    + +

    strlen (Thumb, 62 bytes, Stack size 8 bytes, strlen.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = strlen +
    +
    [Called By]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) +
    + +

    wmemcpy (Thumb, 6 bytes, Stack size 0 bytes, wmemcpy.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = wmemcpy ⇒ memcpy +
    +
    [Calls]
    • >>   memcpy +
    +
    [Called By]
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsputn(const wchar_t*, int) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsgetn(wchar_t*, int) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    • >>   std::__1::numpunct⟨wchar_t⟩::do_falsename() const +
    • >>   std::__1::numpunct⟨wchar_t⟩::do_truename() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) +
    + +

    wmemset (Thumb, 62 bytes, Stack size 24 bytes, wmemset.o(.text)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = wmemset +
    +
    [Calls]
    • >>   _memset_w +
    +
    [Called By]
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_negative_sign() const +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_negative_sign() const +
    + +

    __aeabi_memmove (Thumb, 0 bytes, Stack size 0 bytes, rt_memmove_v6.o(.text)) +

    [Called By]

    • >>   memmove +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*, unsigned) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__format(wchar_t*, wchar_t*&, wchar_t*&, unsigned, const wchar_t*, const wchar_t*, const std::__1::ctype⟨wchar_t⟩&, bool, const std::__1::money_base::pattern&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int) +
    • >>   std::__1::__money_put⟨char⟩::__format(char*, char*&, char*&, unsigned, const char*, const char*, const std::__1::ctype⟨char⟩&, bool, const std::__1::money_base::pattern&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int) +
    + +

    __rt_memmove (Thumb, 132 bytes, Stack size 0 bytes, rt_memmove_v6.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_memcpy +
    • >>   __memmove_aligned +
    + +

    __memmove_lastfew (Thumb, 0 bytes, Stack size unknown bytes, rt_memmove_v6.o(.text), UNUSED) + +

    __aeabi_memmove4 (Thumb, 0 bytes, Stack size 8 bytes, rt_memmove_w.o(.text), UNUSED) + +

    __aeabi_memmove8 (Thumb, 0 bytes, Stack size 8 bytes, rt_memmove_w.o(.text), UNUSED) + +

    __rt_memmove_w (Thumb, 122 bytes, Stack size 8 bytes, rt_memmove_w.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_memcpy4 +
    + +

    __memmove_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memmove_w.o(.text), UNUSED) +

    [Called By]

    • >>   __rt_memmove +
    + +

    __memmove_lastfew_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memmove_w.o(.text), UNUSED) + +

    strftime (Thumb, 634 bytes, Stack size 72 bytes, strftime.o(.text)) +

    [Stack]

    • Max Depth = 208 + Unknown Stack Size +
    • Call Chain = strftime ⇒ sprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   sprintf +
    • >>   __rt_locale +
    • >>   _weekbasedyear +
    • >>   _findweek +
    • >>   _isoweek +
    +
    [Called By]
    • >>   std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const +
    • >>   std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const std::tm*, char, char) const +
    + +

    __user_setup_stackheap (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = __user_setup_stackheap +
    +
    [Calls]
    • >>   __user_initial_stackheap +
    • >>   __user_perproc_libspace +
    +
    [Called By]
    • >>   __rt_entry_sh +
    + +

    __rt_locale (Thumb, 8 bytes, Stack size 0 bytes, rt_locale_intlibspace.o(.text)) +

    [Called By]

    • >>   __rt_lib_init_lc_common +
    • >>   _printf_fp_dec_real +
    • >>   _scanf_really_real +
    • >>   strftime +
    • >>   __rt_ctype_table +
    + +

    _wclass (Thumb, 100 bytes, Stack size 8 bytes, wclass_c.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _wclass ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   iswlower +
    + +

    sprintf (Thumb, 38 bytes, Stack size 32 bytes, sprintf.o(.text)) +

    [Stack]

    • Max Depth = 136 + Unknown Stack Size +
    • Call Chain = sprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   _sputc +
    • >>   _printf_char_common +
    +
    [Called By]
    • >>   strftime +
    + +

    vsnprintf (Thumb, 48 bytes, Stack size 24 bytes, vsnprintf.o(.text)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   _sputc +
    • >>   _printf_char_common +
    +
    [Called By]
    • >>   __ARM_vasprintf +
    + +

    _printf_pre_padding (Thumb, 44 bytes, Stack size 16 bytes, _printf_pad.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _printf_pre_padding +
    +
    [Called By]
    • >>   _printf_int_common +
    • >>   _printf_str +
    • >>   _printf_fp_infnan +
    • >>   _printf_fp_hex_real +
    • >>   _printf_fp_dec_real +
    • >>   _printf_wctomb +
    + +

    _printf_post_padding (Thumb, 34 bytes, Stack size 16 bytes, _printf_pad.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _printf_post_padding +
    +
    [Called By]
    • >>   _printf_int_common +
    • >>   _printf_str +
    • >>   _printf_fp_infnan +
    • >>   _printf_fp_hex_real +
    • >>   _printf_fp_dec_real +
    • >>   _printf_wctomb +
    + +

    _printf_truncate_signed (Thumb, 18 bytes, Stack size 0 bytes, _printf_truncate.o(.text)) +

    [Called By]

    • >>   _printf_int_dec +
    + +

    _printf_truncate_unsigned (Thumb, 18 bytes, Stack size 0 bytes, _printf_truncate.o(.text)) +

    [Called By]

    • >>   _printf_int_hex +
    • >>   _printf_int_dec +
    • >>   _printf_int_oct +
    + +

    _printf_charcount (Thumb, 40 bytes, Stack size 0 bytes, _printf_charcount.o(.text)) +

    [Called By]

    • >>   _printf_n +
    + +

    _sputc (Thumb, 10 bytes, Stack size 0 bytes, _sputc.o(.text)) +

    [Called By]

    • >>   vsnprintf +
    • >>   sprintf +
    • >>   __ARM_vsnprintf +
    • >>   __ARM_snprintf +
    +
    [Address Reference Count : 1]
    • sprintf.o(.text) +
    +

    _snputc (Thumb, 16 bytes, Stack size 0 bytes, _snputc.o(.text)) +
    [Address Reference Count : 3]

    • __ARM_snprintf.o(.text) +
    • __ARM_vsnprintf.o(.text) +
    • vsnprintf.o(.text) +
    +

    _printf_wctomb (Thumb, 182 bytes, Stack size 56 bytes, _printf_wctomb.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _wcrtomb +
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    +
    [Called By]
    • >>   _printf_lcs_common +
    + +

    _printf_longlong_dec (Thumb, 108 bytes, Stack size 24 bytes, _printf_longlong_dec.o(.text)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_common +
    • >>   _ll_udiv10 +
    +
    [Called By]
    • >>   _printf_llu +
    • >>   _printf_lld +
    • >>   _printf_lli +
    + +

    _printf_longlong_oct (Thumb, 68 bytes, Stack size 8 bytes, _printf_oct_int_ll.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_common +
    +
    [Called By]
    • >>   _printf_ll_oct +
    • >>   _printf_int_oct +
    + +

    _printf_int_oct (Thumb, 24 bytes, Stack size 8 bytes, _printf_oct_int_ll.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _printf_int_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_oct +
    • >>   _printf_truncate_unsigned +
    +
    [Called By]
    • >>   _printf_o +
    + +

    _printf_ll_oct (Thumb, 12 bytes, Stack size 0 bytes, _printf_oct_int_ll.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _printf_ll_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_oct +
    +
    [Called By]
    • >>   _printf_llo +
    + +

    _scanf_longlong (Thumb, 342 bytes, Stack size 56 bytes, _scanf_longlong.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _scanf_longlong +
    +
    [Calls]
    • >>   _chval +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _scanf_int (Thumb, 332 bytes, Stack size 56 bytes, _scanf_int.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _scanf_int +
    +
    [Calls]
    • >>   _chval +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _scanf_string (Thumb, 224 bytes, Stack size 56 bytes, _scanf_str.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _scanf_string +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _scanf_really_real (Thumb, 684 bytes, Stack size 120 bytes, scanf_fp.o(.text)) +

    [Stack]

    • Max Depth = 340
    • Call Chain = _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _is_digit +
    • >>   __mathlib_narrow +
    • >>   _scanf_infnan +
    • >>   _scanf_hex_real +
    • >>   _fp_value +
    • >>   __rt_locale +
    +
    [Called By]
    • >>   _scanf_real +
    + +

    __vfscanf_char (Thumb, 24 bytes, Stack size 0 bytes, scanf_char.o(.text)) +

    [Stack]

    • Max Depth = 436
    • Call Chain = __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __vfscanf +
    +
    [Called By]
    • >>   __0sscanf +
    • >>   __ARM_vsscanf +
    + +

    _sgetc (Thumb, 30 bytes, Stack size 0 bytes, _sgetc.o(.text)) +
    [Address Reference Count : 3]

    • __ARM_vsscanf.o(.text) +
    • __0sscanf.o(.text) +
    • strtod.o(.text) +
    +

    _sbackspace (Thumb, 34 bytes, Stack size 0 bytes, _sgetc.o(.text)) +
    [Address Reference Count : 3]

    • __ARM_vsscanf.o(.text) +
    • __0sscanf.o(.text) +
    • strtod.o(.text) +
    +

    __strtod_int (Thumb, 94 bytes, Stack size 40 bytes, strtod.o(.text)) +

    [Stack]

    • Max Depth = 444
    • Call Chain = __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _local_sscanf +
    +
    [Called By]
    • >>   __strtof_int +
    • >>   strtold +
    • >>   strtod +
    + +

    __strtof_int (Thumb, 8 bytes, Stack size 0 bytes, strtof.o(.text)) +

    [Stack]

    • Max Depth = 444
    • Call Chain = __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __strtod_int +
    +
    [Called By]
    • >>   strtof +
    + +

    __strtoll (Thumb, 144 bytes, Stack size 32 bytes, __strtoll.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = __strtoll ⇒ _strtoull +
    +
    [Calls]
    • >>   _strtoull +
    • >>   __aeabi_errno_addr +
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   strtoll +
    + +

    __strtoull (Thumb, 124 bytes, Stack size 40 bytes, __strtoull.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   _strtoull +
    • >>   __aeabi_errno_addr +
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   strtoull +
    + +

    _scanf_mbtowc (Thumb, 276 bytes, Stack size 64 bytes, _scanf_mbtowc.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _scanf_mbtowc ⇒ _mbrtowc +
    +
    [Calls]
    • >>   _mbrtowc +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _scanf_wctomb (Thumb, 232 bytes, Stack size 64 bytes, _scanf_wctomb.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _scanf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _scanf_wcharmap +
    • >>   _wcrtomb +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _scanf_wstring (Thumb, 208 bytes, Stack size 56 bytes, _scanf_wstr.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _scanf_wstring ⇒ _scanf_wcharmap +
    +
    [Calls]
    • >>   _scanf_wcharmap +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _ftell_internal (Thumb, 66 bytes, Stack size 8 bytes, ftell.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = _ftell_internal +
    +
    [Calls]
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   _fseek +
    + +

    ftell (Thumb, 0 bytes, Stack size 8 bytes, ftell.o(.text), UNUSED) + +

    setvbuf (Thumb, 70 bytes, Stack size 16 bytes, setvbuf.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = setvbuf +
    +
    [Called By]
    • >>   _initio +
    + +

    freopen (Thumb, 160 bytes, Stack size 24 bytes, fopen.o(.text)) +

    [Stack]

    • Max Depth = 104
    • Call Chain = freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _sys_open +
    • >>   _fclose_internal +
    • >>   _fseek +
    +
    [Called By]
    • >>   fopen +
    • >>   _initio +
    + +

    fopen (Thumb, 74 bytes, Stack size 24 bytes, fopen.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_memclr4 +
    • >>   malloc +
    • >>   freopen +
    + +

    _fclose_internal (Thumb, 76 bytes, Stack size 32 bytes, fclose.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _sys_close +
    • >>   __aeabi_memclr4 +
    • >>   free +
    • >>   _fflush +
    +
    [Called By]
    • >>   freopen +
    • >>   _terminateio +
    + +

    fclose (Thumb, 0 bytes, Stack size 32 bytes, fclose.o(.text), UNUSED) + +

    mbrtoc16 (Thumb, 116 bytes, Stack size 32 bytes, mbrtoc16.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = mbrtoc16 ⇒ _mbrtoc16 ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   _mbrtoc16 +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   mbrtowc +
    + +

    c16rtomb (Thumb, 58 bytes, Stack size 24 bytes, c16rtomb.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = c16rtomb ⇒ _c16rtomb ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    • >>   _c16rtomb +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   wcrtomb +
    + +

    _mbrtoc16 (Thumb, 64 bytes, Stack size 24 bytes, _mbrtoc16.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _mbrtoc16 ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   mbrtoc16 +
    + +

    _mbrtowc (Thumb, 0 bytes, Stack size 24 bytes, _mbrtoc16.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = _mbrtowc +
    +
    [Called By]
    • >>   _scanf_mbtowc +
    • >>   _mbsnrtowcs +
    • >>   mbsrtowcs +
    • >>   mbtowc +
    + +

    _c16rtomb (Thumb, 72 bytes, Stack size 24 bytes, _c16rtomb.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _c16rtomb ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   c16rtomb +
    + +

    _wcrtomb (Thumb, 0 bytes, Stack size 24 bytes, _c16rtomb.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = _wcrtomb +
    +
    [Called By]
    • >>   _scanf_wctomb +
    • >>   _printf_wctomb +
    • >>   _wcsnrtombs +
    + +

    exit (Thumb, 18 bytes, Stack size 8 bytes, exit.o(.text)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = exit +
    +
    [Calls]
    • >>   __rt_exit +
    +
    [Called By]
    • >>   __rt_entry_main +
    + +

    __default_signal_display (Thumb, 50 bytes, Stack size 16 bytes, defsig_general.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __default_signal_display +
    +
    [Calls]
    • >>   _ttywrch +
    +
    [Called By]
    • >>   __rt_SIGRTRED_inner +
    • >>   __rt_SIGRTMEM_inner +
    • >>   __rt_SIGABRT_inner +
    + +

    __rt_SIGRTRED (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtred_outer.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __rt_SIGRTRED ⇒ __rt_SIGRTRED_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __rt_SIGRTRED_inner +
    • >>   __sig_exit +
    +
    [Called By]
    • >>   _initio +
    + +

    __rt_SIGRTMEM_inner (Thumb, 22 bytes, Stack size 8 bytes, defsig_rtmem_inner.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __rt_SIGRTMEM_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __default_signal_display +
    +
    [Called By]
    • >>   __rt_SIGRTMEM +
    + +

    wmemmove (Thumb, 6 bytes, Stack size 0 bytes, wmemmove.o(.text), UNUSED) +

    [Calls]

    • >>   memmove +
    +
    [Called By]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*, unsigned) +
    + +

    wcslen (Thumb, 18 bytes, Stack size 0 bytes, wcslen.o(.text)) +

    [Called By]

    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) +
    + +

    memcpy (Thumb, 8 bytes, Stack size 8 bytes, memcpy.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = memcpy +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    +
    [Called By]
    • >>   wmemcpy +
    + +

    __aeabi_llsl (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text)) +

    [Called By]

    • >>   _scanf_really_hex_real +
    + +

    _ll_shift_l (Thumb, 38 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED) + +

    _ll_udiv10 (Thumb, 138 bytes, Stack size 12 bytes, lludiv10.o(.text)) +

    [Stack]

    • Max Depth = 12
    • Call Chain = _ll_udiv10 +
    +
    [Called By]
    • >>   _fp_digits +
    • >>   _printf_longlong_dec +
    + +

    isspace (Thumb, 18 bytes, Stack size 8 bytes, isspace.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = isspace ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 2]
    • strtod.o(.text) +
    • scanf_char.o(.text) +
    +

    _printf_fp_dec_real (Thumb, 620 bytes, Stack size 104 bytes, _printf_fp_dec.o(.text)) +

    [Stack]

    • Max Depth = 324
    • Call Chain = _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __ARM_fpclassify +
    • >>   _printf_fp_infnan +
    • >>   _fp_digits +
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    • >>   __rt_locale +
    +
    [Called By]
    • >>   _printf_fp_dec +
    + +

    _printf_fp_hex_real (Thumb, 756 bytes, Stack size 72 bytes, _printf_fp_hex.o(.text)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = _printf_fp_hex_real ⇒ _printf_fp_infnan ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   __ARM_fpclassify +
    • >>   _printf_fp_infnan +
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    +
    [Called By]
    • >>   _printf_fp_hex +
    + +

    _printf_lcs_common (Thumb, 20 bytes, Stack size 8 bytes, _printf_wchar.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _printf_wctomb +
    +
    [Called By]
    • >>   _printf_wstring +
    • >>   _printf_wchar +
    + +

    _printf_wchar (Thumb, 16 bytes, Stack size 0 bytes, _printf_wchar.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _printf_wchar ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _printf_lcs_common +
    +
    [Called By]
    • >>   _printf_lc +
    + +

    _printf_wstring (Thumb, 8 bytes, Stack size 0 bytes, _printf_wchar.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _printf_wstring ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _printf_lcs_common +
    +
    [Called By]
    • >>   _printf_ls +
    + +

    _chval (Thumb, 28 bytes, Stack size 0 bytes, _chval.o(.text)) +

    [Called By]

    • >>   _scanf_really_hex_real +
    • >>   _strtoull +
    • >>   _scanf_int +
    • >>   _scanf_longlong +
    + +

    __vfscanf (Thumb, 878 bytes, Stack size 96 bytes, _scanf.o(.text)) +

    [Stack]

    • Max Depth = 436
    • Call Chain = __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _scanf_wstring +
    • >>   _scanf_wctomb +
    • >>   _scanf_mbtowc +
    • >>   _scanf_string +
    • >>   _scanf_int +
    • >>   _scanf_longlong +
    • >>   _scanf_real +
    +
    [Called By]
    • >>   __vfscanf_char +
    + +

    _strtoull (Thumb, 194 bytes, Stack size 48 bytes, _strtoull.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = _strtoull +
    +
    [Calls]
    • >>   _chval +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   __strtoull +
    • >>   __strtoll +
    + +

    _scanf_wcharmap (Thumb, 30 bytes, Stack size 8 bytes, _scanf_wcharmap.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = _scanf_wcharmap +
    +
    [Called By]
    • >>   _scanf_wstring +
    • >>   _scanf_wctomb +
    + +

    _btod_etento (Thumb, 224 bytes, Stack size 72 bytes, bigflt0.o(.text)) +

    [Stack]

    • Max Depth = 124
    • Call Chain = _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _btod_emul +
    • >>   _btod_ediv +
    +
    [Called By]
    • >>   _fp_digits +
    • >>   _fp_value +
    + +

    __rt_SIGRTRED_inner (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtred_inner.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __rt_SIGRTRED_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __default_signal_display +
    +
    [Called By]
    • >>   __rt_SIGRTRED +
    + +

    memmove (Thumb, 8 bytes, Stack size 8 bytes, memmove.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_memmove +
    +
    [Called By]
    • >>   wmemmove +
    + +

    _printf_fp_infnan (Thumb, 112 bytes, Stack size 24 bytes, _printf_fp_infnan.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_fp_infnan ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    +
    [Called By]
    • >>   _printf_fp_hex_real +
    • >>   _printf_fp_dec_real +
    + +

    _scanf_really_hex_real (Thumb, 786 bytes, Stack size 80 bytes, scanf_hexfp.o(.text)) +

    [Stack]

    • Max Depth = 176
    • Call Chain = _scanf_really_hex_real ⇒ __support_ldexp ⇒ __hardfp_ldexp ⇒ __mathlib_dbl_underflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __support_ldexp +
    • >>   __mathlib_narrow +
    • >>   _chval +
    • >>   __aeabi_llsl +
    +
    [Called By]
    • >>   _scanf_hex_real +
    + +

    _scanf_really_infnan (Thumb, 292 bytes, Stack size 72 bytes, scanf_infnan.o(.text)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = _scanf_really_infnan +
    +
    [Called By]
    • >>   _scanf_infnan +
    + +

    BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.BusFault_Handler)) +

    [Calls]

    • >>   BusFault_Handler +
    +
    [Called By]
    • >>   BusFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DCMI_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.DCMI_IRQHandler)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = DCMI_IRQHandler ⇒ HAL_DCMI_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_DCMI_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DEV_SPI_WRite (Thumb, 34 bytes, Stack size 16 bytes, lcd_config.o(.text.DEV_SPI_WRite)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = DEV_SPI_WRite ⇒ HAL_SPI_Transmit +
    +
    [Calls]
    • >>   HAL_SPI_Transmit +
    +
    [Called By]
    • >>   LCD_2IN4_SetWindow +
    • >>   LCD_2IN4_Init +
    • >>   LCD_2IN4_Display +
    + +

    DMA2_Channel6_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.DMA2_Channel6_IRQHandler)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = DMA2_Channel6_IRQHandler ⇒ HAL_DMA_IRQHandler +
    +
    [Calls]
    • >>   HAL_DMA_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DebugLog (Thumb, 12 bytes, Stack size 0 bytes, debug_log.o(.text.DebugLog)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = DebugLog ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   __2printf +
    +
    [Called By]
    • >>   tflite::MicroErrorReporter::Report(const char*, std::__va_list) +
    + +

    DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.DebugMon_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    Error_Handler (Thumb, 2 bytes, Stack size 0 bytes, mcu_init.o(.text.Error_Handler)) +

    [Called By]

    • >>   MX_LPUART1_UART_Init +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_TIM4_Init +
    • >>   MX_SPI1_Init +
    • >>   MX_I2C1_Init +
    • >>   MX_DCMI_Init +
    • >>   task1 +
    • >>   application_entry +
    + +

    HAL_DCMI_ErrorCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_ErrorCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    • >>   HAL_DCMI_Stop +
    • >>   DCMI_DMAXferCplt +
    • >>   DCMI_DMAHalfXferCplt +
    • >>   DCMI_DMAError +
    + +

    HAL_DCMI_FrameEventCallback (Thumb, 30 bytes, Stack size 0 bytes, mcu_init.o(.text.HAL_DCMI_FrameEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    • >>   DCMI_DMAXferCplt +
    + +

    HAL_DCMI_IRQHandler (Thumb, 172 bytes, Stack size 16 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_IRQHandler)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_DCMI_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_DCMI_FrameEventCallback +
    • >>   HAL_DMA_Abort_IT +
    • >>   HAL_DCMI_VsyncEventCallback +
    • >>   HAL_DCMI_LineEventCallback +
    • >>   HAL_DCMI_ErrorCallback +
    +
    [Called By]
    • >>   DCMI_IRQHandler +
    + +

    HAL_DCMI_Init (Thumb, 182 bytes, Stack size 40 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_Init)) +

    [Stack]

    • Max Depth = 148
    • Call Chain = HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_DCMI_MspInit +
    +
    [Called By]
    • >>   MX_DCMI_Init +
    + +

    HAL_DCMI_LineEventCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_LineEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DCMI_MspInit (Thumb, 434 bytes, Stack size 64 bytes, dcmi.o(.text.HAL_DCMI_MspInit)) +

    [Stack]

    • Max Depth = 108
    • Call Chain = HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    • >>   Error_Handler +
    • >>   HAL_GPIO_Init +
    • >>   HAL_DMA_Init +
    +
    [Called By]
    • >>   HAL_DCMI_Init +
    + +

    HAL_DCMI_Start_DMA (Thumb, 582 bytes, Stack size 104 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_Start_DMA)) +

    [Stack]

    • Max Depth = 124
    • Call Chain = HAL_DCMI_Start_DMA ⇒ HAL_DMA_Start_IT +
    +
    [Calls]
    • >>   HAL_DMA_Start_IT +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   task1 +
    • >>   application_entry +
    + +

    HAL_DCMI_Stop (Thumb, 138 bytes, Stack size 16 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_Stop)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_DCMI_Stop ⇒ HAL_DMA_Abort +
    +
    [Calls]
    • >>   HAL_GetTick +
    • >>   HAL_DMA_Abort +
    • >>   HAL_DCMI_ErrorCallback +
    +
    [Called By]
    • >>   task1 +
    + +

    HAL_DCMI_VsyncEventCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_VsyncEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DMA_Abort (Thumb, 64 bytes, Stack size 8 bytes, stm32l4xx_hal_dma.o(.text.HAL_DMA_Abort)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_DMA_Abort +
    +
    [Called By]
    • >>   HAL_DCMI_Stop +
    + +

    HAL_DMA_Abort_IT (Thumb, 88 bytes, Stack size 8 bytes, stm32l4xx_hal_dma.o(.text.HAL_DMA_Abort_IT)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_DMA_Abort_IT +
    +
    [Called By]
    • >>   HAL_UART_IRQHandler +
    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DMA_IRQHandler (Thumb, 176 bytes, Stack size 16 bytes, stm32l4xx_hal_dma.o(.text.HAL_DMA_IRQHandler)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_DMA_IRQHandler +
    +
    [Called By]
    • >>   DMA2_Channel6_IRQHandler +
    + +

    HAL_DMA_Init (Thumb, 204 bytes, Stack size 32 bytes, stm32l4xx_hal_dma.o(.text.HAL_DMA_Init)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_DMA_Init +
    +
    [Called By]
    • >>   HAL_DCMI_MspInit +
    + +

    HAL_DMA_Start_IT (Thumb, 160 bytes, Stack size 20 bytes, stm32l4xx_hal_dma.o(.text.HAL_DMA_Start_IT)) +

    [Stack]

    • Max Depth = 20
    • Call Chain = HAL_DMA_Start_IT +
    +
    [Called By]
    • >>   HAL_DCMI_Start_DMA +
    • >>   DCMI_DMAXferCplt +
    • >>   DCMI_DMAHalfXferCplt +
    + +

    HAL_Delay (Thumb, 32 bytes, Stack size 16 bytes, stm32l4xx_hal.o(.text.HAL_Delay)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_Delay +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   LCD_2IN4_Init +
    + +

    HAL_GPIO_Init (Thumb, 408 bytes, Stack size 44 bytes, stm32l4xx_hal_gpio.o(.text.HAL_GPIO_Init)) +

    [Stack]

    • Max Depth = 44
    • Call Chain = HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_UART_MspInit +
    • >>   MX_GPIO_Init +
    • >>   HAL_SPI_MspInit +
    • >>   HAL_I2C_MspInit +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_TIM4_Init +
    • >>   SCCB_Init +
    • >>   OV2640_Init +
    + +

    HAL_GPIO_ReadPin (Thumb, 10 bytes, Stack size 0 bytes, stm32l4xx_hal_gpio.o(.text.HAL_GPIO_ReadPin)) +

    [Called By]

    • >>   SCCB_WR_Byte +
    • >>   SCCB_RD_Byte +
    + +

    HAL_GPIO_WritePin (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_hal_gpio.o(.text.HAL_GPIO_WritePin)) +

    [Called By]

    • >>   MX_GPIO_Init +
    • >>   SCCB_WR_Byte +
    • >>   SCCB_RD_Byte +
    • >>   SCCB_WR_Reg +
    • >>   SCCB_RD_Reg +
    • >>   OV2640_Init +
    • >>   LCD_2IN4_SetWindow +
    • >>   LCD_2IN4_Init +
    • >>   LCD_2IN4_Display +
    + +

    HAL_GetTick (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_hal.o(.text.HAL_GetTick)) +

    [Called By]

    • >>   HAL_UART_Transmit +
    • >>   HAL_UART_Receive +
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_RCCEx_PeriphCLKConfig +
    • >>   HAL_Delay +
    • >>   UART_CheckIdleState +
    • >>   RCCEx_PLLSAI2_Config +
    • >>   RCCEx_PLLSAI1_Config +
    • >>   HAL_SPI_Transmit +
    • >>   HAL_DCMI_Stop +
    + +

    HAL_I2CEx_ConfigAnalogFilter (Thumb, 74 bytes, Stack size 0 bytes, stm32l4xx_hal_i2c_ex.o(.text.HAL_I2CEx_ConfigAnalogFilter)) +

    [Called By]

    • >>   MX_I2C1_Init +
    + +

    HAL_I2CEx_ConfigDigitalFilter (Thumb, 72 bytes, Stack size 0 bytes, stm32l4xx_hal_i2c_ex.o(.text.HAL_I2CEx_ConfigDigitalFilter)) +

    [Called By]

    • >>   MX_I2C1_Init +
    + +

    HAL_I2C_Init (Thumb, 162 bytes, Stack size 8 bytes, stm32l4xx_hal_i2c.o(.text.HAL_I2C_Init)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_I2C_MspInit +
    +
    [Called By]
    • >>   MX_I2C1_Init +
    + +

    HAL_I2C_MspInit (Thumb, 124 bytes, Stack size 32 bytes, i2c.o(.text.HAL_I2C_MspInit)) +

    [Stack]

    • Max Depth = 76
    • Call Chain = HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_I2C_Init +
    + +

    HAL_IncTick (Thumb, 16 bytes, Stack size 0 bytes, stm32l4xx_hal.o(.text.HAL_IncTick)) +

    [Called By]

    • >>   SysTick_Handler +
    + +

    HAL_Init (Thumb, 30 bytes, Stack size 8 bytes, stm32l4xx_hal.o(.text.HAL_Init)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_MspInit +
    • >>   HAL_NVIC_SetPriorityGrouping +
    • >>   HAL_InitTick +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_InitTick (Thumb, 58 bytes, Stack size 8 bytes, stm32l4xx_hal.o(.text.HAL_InitTick)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_SYSTICK_Config +
    +
    [Called By]
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_Init +
    + +

    HAL_MspInit (Thumb, 50 bytes, Stack size 8 bytes, stm32l4xx_hal_msp.o(.text.HAL_MspInit)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_MspInit +
    +
    [Called By]
    • >>   HAL_Init +
    + +

    HAL_NVIC_EnableIRQ (Thumb, 32 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ)) +

    [Called By]

    • >>   HAL_UART_MspInit +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_DMA_Init +
    + +

    HAL_NVIC_SetPriority (Thumb, 86 bytes, Stack size 8 bytes, stm32l4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_NVIC_SetPriority +
    +
    [Called By]
    • >>   HAL_UART_MspInit +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_DMA_Init +
    • >>   HAL_InitTick +
    + +

    HAL_NVIC_SetPriorityGrouping (Thumb, 32 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping)) +

    [Called By]

    • >>   HAL_Init +
    + +

    HAL_PWREx_ControlVoltageScaling (Thumb, 150 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(.text.HAL_PWREx_ControlVoltageScaling)) +

    [Called By]

    • >>   board_init +
    + +

    HAL_PWREx_EnableVddIO2 (Thumb, 18 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(.text.HAL_PWREx_EnableVddIO2)) +

    [Called By]

    • >>   HAL_UART_MspInit +
    • >>   MX_GPIO_Init +
    • >>   HAL_I2C_MspInit +
    + +

    HAL_PWREx_GetVoltageRange (Thumb, 16 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(.text.HAL_PWREx_GetVoltageRange)) +

    [Called By]

    • >>   HAL_RCC_OscConfig +
    + +

    HAL_RCCEx_PeriphCLKConfig (Thumb, 1004 bytes, Stack size 40 bytes, stm32l4xx_hal_rcc_ex.o(.text.HAL_RCCEx_PeriphCLKConfig)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_RCCEx_PeriphCLKConfig ⇒ RCCEx_PLLSAI2_Config +
    +
    [Calls]
    • >>   HAL_GetTick +
    • >>   RCCEx_PLLSAI2_Config +
    • >>   RCCEx_PLLSAI1_Config +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_RCC_ClockConfig (Thumb, 344 bytes, Stack size 32 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_InitTick +
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_RCC_GetPCLK1Freq (Thumb, 42 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq)) +

    [Called By]

    • >>   UART_SetConfig +
    + +

    HAL_RCC_GetPCLK2Freq (Thumb, 42 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq)) +

    [Called By]

    • >>   UART_SetConfig +
    + +

    HAL_RCC_GetSysClockFreq (Thumb, 200 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq)) +

    [Called By]

    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   UART_SetConfig +
    + +

    HAL_RCC_OscConfig (Thumb, 1576 bytes, Stack size 40 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_OscConfig)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_InitTick +
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_GetTick +
    • >>   HAL_PWREx_GetVoltageRange +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_SPI_Init (Thumb, 164 bytes, Stack size 16 bytes, stm32l4xx_hal_spi.o(.text.HAL_SPI_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_SPI_MspInit +
    +
    [Called By]
    • >>   MX_SPI1_Init +
    + +

    HAL_SPI_MspInit (Thumb, 110 bytes, Stack size 32 bytes, spi.o(.text.HAL_SPI_MspInit)) +

    [Stack]

    • Max Depth = 76
    • Call Chain = HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_SPI_Init +
    + +

    HAL_SPI_Transmit (Thumb, 808 bytes, Stack size 32 bytes, stm32l4xx_hal_spi.o(.text.HAL_SPI_Transmit)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_SPI_Transmit +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   DEV_SPI_WRite +
    + +

    HAL_SYSTICK_Config (Thumb, 44 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(.text.HAL_SYSTICK_Config)) +

    [Called By]

    • >>   HAL_InitTick +
    + +

    HAL_TIMEx_MasterConfigSynchronization (Thumb, 104 bytes, Stack size 8 bytes, stm32l4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_TIMEx_MasterConfigSynchronization +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_Base_Init (Thumb, 54 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_Base_Init)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_TIM_Base_Init ⇒ TIM_Base_SetConfig +
    +
    [Calls]
    • >>   HAL_TIM_Base_MspInit +
    • >>   TIM_Base_SetConfig +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_Base_MspInit (Thumb, 50 bytes, Stack size 4 bytes, tim.o(.text.HAL_TIM_Base_MspInit)) +

    [Stack]

    • Max Depth = 4
    • Call Chain = HAL_TIM_Base_MspInit +
    +
    [Called By]
    • >>   HAL_TIM_Base_Init +
    + +

    HAL_TIM_ConfigClockSource (Thumb, 366 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_TIM_ConfigClockSource +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_ConfigChannel (Thumb, 920 bytes, Stack size 24 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_TIM_PWM_ConfigChannel +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_Init (Thumb, 54 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_PWM_Init)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_TIM_PWM_Init ⇒ TIM_Base_SetConfig +
    +
    [Calls]
    • >>   TIM_Base_SetConfig +
    • >>   HAL_TIM_PWM_MspInit +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_MspInit (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_PWM_MspInit)) +

    [Called By]

    • >>   HAL_TIM_PWM_Init +
    + +

    HAL_UARTEx_WakeupCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart_ex.o(.text.HAL_UARTEx_WakeupCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    + +

    HAL_UART_ErrorCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_ErrorCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    • >>   UART_DMAAbortOnError +
    + +

    HAL_UART_IRQHandler (Thumb, 380 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_TxCpltCallback +
    • >>   HAL_UART_ErrorCallback +
    • >>   HAL_UARTEx_WakeupCallback +
    • >>   HAL_DMA_Abort_IT +
    +
    [Called By]
    • >>   USART3_IRQHandler +
    • >>   USART2_IRQHandler +
    • >>   LPUART1_IRQHandler +
    + +

    HAL_UART_Init (Thumb, 100 bytes, Stack size 8 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_Init)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_UART_MspInit +
    • >>   UART_SetConfig +
    • >>   UART_CheckIdleState +
    • >>   UART_AdvFeatureConfig +
    +
    [Called By]
    • >>   MX_LPUART1_UART_Init +
    + +

    HAL_UART_MspInit (Thumb, 470 bytes, Stack size 32 bytes, usart.o(.text.HAL_UART_MspInit)) +

    [Stack]

    • Max Depth = 76
    • Call Chain = HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    HAL_UART_Receive (Thumb, 418 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_Receive)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_UART_Receive +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   fgetc +
    + +

    HAL_UART_Transmit (Thumb, 426 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_Transmit)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_UART_Transmit +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   fputc +
    + +

    HAL_UART_TxCpltCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_TxCpltCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    + +

    HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.HardFault_Handler)) +

    [Calls]

    • >>   HardFault_Handler +
    +
    [Called By]
    • >>   HardFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    LCD_2IN4_Display (Thumb, 248 bytes, Stack size 40 bytes, lcd_2inch4.o(.text.LCD_2IN4_Display)) +

    [Stack]

    • Max Depth = 120
    • Call Chain = LCD_2IN4_Display ⇒ LCD_2IN4_SetWindow ⇒ DEV_SPI_WRite ⇒ HAL_SPI_Transmit +
    +
    [Calls]
    • >>   HAL_GPIO_WritePin +
    • >>   LCD_2IN4_SetWindow +
    • >>   DEV_SPI_WRite +
    • >>   puts +
    +
    [Called By]
    • >>   task1 +
    + +

    LCD_2IN4_Init (Thumb, 3624 bytes, Stack size 8 bytes, lcd_2inch4.o(.text.LCD_2IN4_Init)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = LCD_2IN4_Init ⇒ DEV_SPI_WRite ⇒ HAL_SPI_Transmit +
    +
    [Calls]
    • >>   HAL_GPIO_WritePin +
    • >>   HAL_Delay +
    • >>   DEV_SPI_WRite +
    +
    [Called By]
    • >>   application_entry +
    + +

    LCD_2IN4_SetWindow (Thumb, 510 bytes, Stack size 32 bytes, lcd_2inch4.o(.text.LCD_2IN4_SetWindow)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = LCD_2IN4_SetWindow ⇒ DEV_SPI_WRite ⇒ HAL_SPI_Transmit +
    +
    [Calls]
    • >>   HAL_GPIO_WritePin +
    • >>   DEV_SPI_WRite +
    +
    [Called By]
    • >>   LCD_2IN4_Display +
    + +

    LPUART1_IRQHandler (Thumb, 26 bytes, Stack size 8 bytes, stm32l4xx_it.o(.text.LPUART1_IRQHandler)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = LPUART1_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   tos_knl_irq_leave +
    • >>   tos_knl_irq_enter +
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    MX_DCMI_Init (Thumb, 62 bytes, Stack size 8 bytes, dcmi.o(.text.MX_DCMI_Init)) +

    [Stack]

    • Max Depth = 156
    • Call Chain = MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_DCMI_Init +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_DMA_Init (Thumb, 52 bytes, Stack size 16 bytes, dma.o(.text.MX_DMA_Init)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = MX_DMA_Init ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_GPIO_Init (Thumb, 216 bytes, Stack size 48 bytes, gpio.o(.text.MX_GPIO_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = MX_GPIO_Init ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_WritePin +
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_I2C1_Init (Thumb, 108 bytes, Stack size 8 bytes, i2c.o(.text.MX_I2C1_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = MX_I2C1_Init ⇒ HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_I2C_Init +
    • >>   HAL_I2CEx_ConfigDigitalFilter +
    • >>   HAL_I2CEx_ConfigAnalogFilter +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_LPUART1_UART_Init (Thumb, 62 bytes, Stack size 8 bytes, usart.o(.text.MX_LPUART1_UART_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = MX_LPUART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_UART_Init +
    • >>   Error_Handler +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_SPI1_Init (Thumb, 78 bytes, Stack size 8 bytes, spi.o(.text.MX_SPI1_Init)) +

    [Stack]

    • Max Depth = 100
    • Call Chain = MX_SPI1_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_SPI_Init +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_TIM4_Init (Thumb, 274 bytes, Stack size 96 bytes, tim.o(.text.MX_TIM4_Init)) +

    [Stack]

    • Max Depth = 140
    • Call Chain = MX_TIM4_Init ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_GPIO_Init +
    • >>   HAL_TIM_PWM_Init +
    • >>   HAL_TIM_PWM_ConfigChannel +
    • >>   HAL_TIM_ConfigClockSource +
    • >>   HAL_TIM_Base_Init +
    • >>   HAL_TIMEx_MasterConfigSynchronization +
    +
    [Called By]
    • >>   board_init +
    + +

    MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.MemManage_Handler)) +

    [Calls]

    • >>   MemManage_Handler +
    +
    [Called By]
    • >>   MemManage_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    MicroVsnprintf (Thumb, 2370 bytes, Stack size 128 bytes, micro_string.o(.text.MicroVsnprintf)) +

    [Stack]

    • Max Depth = 160
    • Call Chain = MicroVsnprintf ⇒ __aeabi_d2f +
    +
    [Calls]
    • >>   __aeabi_d2f +
    +
    [Called By]
    • >>   tflite::MicroErrorReporter::Report(const char*, std::__va_list) +
    + +

    NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.NMI_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    OV2640_Init (Thumb, 340 bytes, Stack size 40 bytes, ov2640.o(.text.OV2640_Init)) +

    [Stack]

    • Max Depth = 184 + Unknown Stack Size +
    • Call Chain = OV2640_Init ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   HAL_GPIO_WritePin +
    • >>   HAL_GPIO_Init +
    • >>   SCCB_WR_Reg +
    • >>   SCCB_RD_Reg +
    • >>   SCCB_Init +
    • >>   delay_ms +
    • >>   puts +
    • >>   __2printf +
    +
    [Called By]
    • >>   application_entry +
    + +

    OV2640_OutSize_Set (Thumb, 102 bytes, Stack size 24 bytes, ov2640.o(.text.OV2640_OutSize_Set)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = OV2640_OutSize_Set ⇒ SCCB_WR_Reg ⇒ SCCB_WR_Byte ⇒ delay_us +
    +
    [Calls]
    • >>   SCCB_WR_Reg +
    +
    [Called By]
    • >>   application_entry +
    + +

    OV2640_RGB565_Mode (Thumb, 144 bytes, Stack size 8 bytes, ov2640.o(.text.OV2640_RGB565_Mode)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = OV2640_RGB565_Mode ⇒ SCCB_WR_Reg ⇒ SCCB_WR_Byte ⇒ delay_us +
    +
    [Calls]
    • >>   SCCB_WR_Reg +
    • >>   puts +
    +
    [Called By]
    • >>   application_entry +
    + +

    SCCB_Init (Thumb, 80 bytes, Stack size 32 bytes, sccb.o(.text.SCCB_Init)) +

    [Stack]

    • Max Depth = 76
    • Call Chain = SCCB_Init ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   OV2640_Init +
    + +

    SCCB_RD_Byte (Thumb, 454 bytes, Stack size 16 bytes, sccb.o(.text.SCCB_RD_Byte)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = SCCB_RD_Byte ⇒ delay_us +
    +
    [Calls]
    • >>   HAL_GPIO_WritePin +
    • >>   HAL_GPIO_ReadPin +
    • >>   delay_us +
    +
    [Called By]
    • >>   SCCB_RD_Reg +
    + +

    SCCB_RD_Reg (Thumb, 328 bytes, Stack size 16 bytes, sccb.o(.text.SCCB_RD_Reg)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = SCCB_RD_Reg ⇒ SCCB_WR_Byte ⇒ delay_us +
    +
    [Calls]
    • >>   HAL_GPIO_WritePin +
    • >>   SCCB_WR_Byte +
    • >>   SCCB_RD_Byte +
    • >>   delay_us +
    +
    [Called By]
    • >>   OV2640_Init +
    + +

    SCCB_WR_Byte (Thumb, 446 bytes, Stack size 16 bytes, sccb.o(.text.SCCB_WR_Byte)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = SCCB_WR_Byte ⇒ delay_us +
    +
    [Calls]
    • >>   HAL_GPIO_WritePin +
    • >>   HAL_GPIO_ReadPin +
    • >>   delay_us +
    +
    [Called By]
    • >>   SCCB_WR_Reg +
    • >>   SCCB_RD_Reg +
    + +

    SCCB_WR_Reg (Thumb, 170 bytes, Stack size 24 bytes, sccb.o(.text.SCCB_WR_Reg)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = SCCB_WR_Reg ⇒ SCCB_WR_Byte ⇒ delay_us +
    +
    [Calls]
    • >>   HAL_GPIO_WritePin +
    • >>   SCCB_WR_Byte +
    • >>   delay_us +
    +
    [Called By]
    • >>   OV2640_RGB565_Mode +
    • >>   OV2640_OutSize_Set +
    • >>   OV2640_Init +
    + +

    SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.SVC_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SysTick_Handler (Thumb, 32 bytes, Stack size 8 bytes, stm32l4xx_it.o(.text.SysTick_Handler)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = SysTick_Handler ⇒ tos_tick_handler ⇒ timer_update ⇒ tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_tick_handler +
    • >>   tos_knl_is_running +
    • >>   tos_knl_irq_leave +
    • >>   tos_knl_irq_enter +
    • >>   HAL_IncTick +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    SystemInit (Thumb, 82 bytes, Stack size 0 bytes, system_stm32l4xx.o(.text.SystemInit)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(.text) +
    +

    TIM_Base_SetConfig (Thumb, 316 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.TIM_Base_SetConfig)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = TIM_Base_SetConfig +
    +
    [Called By]
    • >>   HAL_TIM_PWM_Init +
    • >>   HAL_TIM_Base_Init +
    + +

    TfLiteIntArrayGetSizeInBytes (Thumb, 8 bytes, Stack size 0 bytes, common.o(.text.TfLiteIntArrayGetSizeInBytes)) +

    [Called By]

    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    + +

    TfLiteTypeGetName (Thumb, 84 bytes, Stack size 0 bytes, common.o(.text.TfLiteTypeGetName)) +

    [Called By]

    • >>   tflite::ops::micro::conv::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::pooling::AverageEval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxEval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    + +

    UART_AdvFeatureConfig (Thumb, 230 bytes, Stack size 8 bytes, stm32l4xx_hal_uart.o(.text.UART_AdvFeatureConfig)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = UART_AdvFeatureConfig +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    UART_CheckIdleState (Thumb, 154 bytes, Stack size 16 bytes, stm32l4xx_hal_uart.o(.text.UART_CheckIdleState)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = UART_CheckIdleState +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    UART_SetConfig (Thumb, 660 bytes, Stack size 16 bytes, stm32l4xx_hal_uart.o(.text.UART_SetConfig)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = UART_SetConfig ⇒ __aeabi_uldivmod +
    +
    [Calls]
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_RCC_GetPCLK2Freq +
    • >>   HAL_RCC_GetPCLK1Freq +
    • >>   __aeabi_uldivmod +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    USART2_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.USART2_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = USART2_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    USART3_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.USART3_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = USART3_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    UsageFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.UsageFault_Handler)) +

    [Calls]

    • >>   UsageFault_Handler +
    +
    [Called By]
    • >>   UsageFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    RespondToDetection(tflite::ErrorReporter*, signed char, signed char) (Thumb, 48 bytes, Stack size 0 bytes, detection_responder.o(.text._Z18RespondToDetectionPN6tflite13ErrorReporterEaa)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = RespondToDetection(tflite::ErrorReporter*, signed char, signed char) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   person_detect +
    + +

    GetImage(tflite::ErrorReporter*, int, int, int, signed char*, unsigned char*) (Thumb, 128 bytes, Stack size 20 bytes, image_provider.o(.text._Z8GetImagePN6tflite13ErrorReporterEiiiPaPh)) +

    [Stack]

    • Max Depth = 20
    • Call Chain = GetImage(tflite::ErrorReporter*, int, int, int, signed char*, unsigned char*) +
    +
    [Called By]
    • >>   person_detect +
    + +

    __cxxabiv1::__enum_type_info::~__enum_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) +

    [Calls]

    • >>   std::type_info::~type_info__sub_object() +
    + +

    __cxxabiv1::__enum_type_info::~__enum_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__shim_type_info::~__shim_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__shim_type_info::~__shim_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev)) +
    [Address Reference Count : 3]

    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__array_type_info::~__array_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__array_type_info::~__array_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__class_type_info::~__class_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__class_type_info::~__class_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pbase_type_info::~__pbase_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pbase_type_info::~__pbase_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pointer_type_info::~__pointer_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pointer_type_info::~__pointer_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__function_type_info::~__function_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__function_type_info::~__function_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__si_class_type_info::~__si_class_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__si_class_type_info::~__si_class_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__fundamental_type_info::~__fundamental_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__class_type_info::~__class_type_info__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv117__class_type_infoD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __cxxabiv1::__class_type_info::~__class_type_info__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    +

    __cxxabiv1::__si_class_type_info::~__si_class_type_info__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv120__si_class_type_infoD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __cxxabiv1::__si_class_type_info::~__si_class_type_info__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    +

    __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv121__vmi_class_type_infoD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    tflite::OpResolver::~OpResolver__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, main_functions.o(.text._ZN6tflite10OpResolverD2Ev)) +
    [Address Reference Count : 1]

    • main_functions.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj5EEE) +
    +

    tflite::AlignSizeUp(unsigned, unsigned) (Thumb, 12 bytes, Stack size 0 bytes, memory_helpers.o(.text._ZN6tflite11AlignSizeUpEjj)) +

    [Called By]

    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::ParseConv2D(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) (Thumb, 318 bytes, Stack size 24 bytes, flatbuffer_conversions.o(.text._ZN6tflite11ParseConv2DEPKNS_8OperatorEPNS_13ErrorReporterEPNS_20BuiltinDataAllocatorEPPv)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::ParseConv2D(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) ⇒ tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Address Reference Count : 1]
    • main_functions.o(.text._ZN6tflite22MicroMutableOpResolverILj5EE9AddConv2DEv) +
    +

    tflite::ElementCount(const TfLiteIntArray&) (Thumb, 110 bytes, Stack size 16 bytes, micro_utils.o(.text._ZN6tflite12ElementCountERK14TfLiteIntArray)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::ElementCount(const TfLiteIntArray&) +
    +
    [Called By]
    • >>   tflite::ops::micro::reshape::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ParseReshape(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) (Thumb, 344 bytes, Stack size 48 bytes, flatbuffer_conversions.o(.text._ZN6tflite12ParseReshapeEPKNS_8OperatorEPNS_13ErrorReporterEPNS_20BuiltinDataAllocatorEPPv)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = tflite::ParseReshape(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Address Reference Count : 1]
    • main_functions.o(.text._ZN6tflite22MicroMutableOpResolverILj5EE10AddReshapeEv) +
    +

    tflite::ParseSoftmax(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) (Thumb, 148 bytes, Stack size 24 bytes, flatbuffer_conversions.o(.text._ZN6tflite12ParseSoftmaxEPKNS_8OperatorEPNS_13ErrorReporterEPNS_20BuiltinDataAllocatorEPPv)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::ParseSoftmax(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) ⇒ tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Address Reference Count : 1]
    • main_functions.o(.text._ZN6tflite22MicroMutableOpResolverILj5EE10AddSoftmaxEv) +
    +

    tflite::ErrorReporter::ReportError(void*, const char*, ...) (Thumb, 30 bytes, Stack size 16 bytes, error_reporter.o(.text._ZN6tflite13ErrorReporter11ReportErrorEPvPKcz)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Called By]
    • >>   tflite::ParsePool(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::ParseDepthwiseConv2D(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::ParseSoftmax(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::ParseReshape(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::ParseConv2D(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::ErrorReporter::Report(const char*, ...) (Thumb, 30 bytes, Stack size 24 bytes, error_reporter.o(.text._ZN6tflite13ErrorReporter6ReportEPKcz)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   RespondToDetection(tflite::ErrorReporter*, signed char, signed char) +
    • >>   person_detect_init +
    • >>   person_detect +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddConv2D() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddDepthwiseConv2D() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddAveragePool2D() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddSoftmax() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddReshape() +
    • >>   tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) +
    • >>   tflite::MicroInterpreter::output(unsigned) +
    • >>   tflite::MicroInterpreter::Invoke() +
    • >>   tflite::MicroInterpreter::input(unsigned) +
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    • >>   tflite::ParseReshape(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int) +
    • >>   tflite::GreedyMemoryPlanner::GetOffsetForBuffer(tflite::ErrorReporter*, int, int*) +
    • >>   tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) +
    • >>   tflite::MicroAllocator::GetScratchBuffer(int) const +
    • >>   tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) +
    • >>   tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) +
    • >>   tflite::MicroAllocator::FinishModelAllocation(const tflite::Model*, TfLiteEvalTensor*) +
    • >>   tflite::MicroAllocator::StartModelAllocation(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration**, TfLiteEvalTensor**) +
    • >>   tflite::SimpleMemoryAllocator::AllocateFromTail(unsigned, unsigned) +
    • >>   tflite::SimpleMemoryAllocator::EnsureHeadSize(unsigned, unsigned) +
    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    • >>   tflite::GetRegistrationFromOpCode(const tflite::OperatorCode*, const tflite::OpResolver&, tflite::ErrorReporter*, const TfLiteRegistration**) +
    • >>   tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) +
    • >>   tflite::SimpleMemoryAllocator::AllocateTemp(unsigned, unsigned) +
    • >>   tflite::MicroAllocator::PrepareNodeAndRegistrationDataFromFlatbuffer(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration*) +
    • >>   tflite::MicroAllocator::AllocatePersistentTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) +
    • >>   tflite::MicroAllocator::AllocateNodeAndRegistrations(const tflite::Model*, tflite::NodeAndRegistration**) +
    • >>   tflite::MicroAllocator::AllocateTfLiteEvalTensors(const tflite::Model*, TfLiteEvalTensor**) +
    • >>   tflite::MicroAllocator::AllocateTempTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) +
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    • >>   tflite::MicroAllocator::AllocateVariables(const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::ErrorReporter::~ErrorReporter__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, micro_error_reporter.o(.text._ZN6tflite13ErrorReporterD2Ev)) +
    [Address Reference Count : 1]

    • micro_error_reporter.o(.rodata._ZTVN6tflite18MicroErrorReporterE) +
    +

    tflite::reference_ops::AveragePool(const tflite::PoolParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) (Thumb, 1490 bytes, Stack size 212 bytes, pooling.o(.text._ZN6tflite13reference_ops11AveragePoolERKNS_10PoolParamsERKNS_12RuntimeShapeEPKfS6_Pf)) +

    [Stack]

    • Max Depth = 212
    • Call Chain = tflite::reference_ops::AveragePool(const tflite::PoolParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) +
    +
    [Called By]
    • >>   tflite::ops::micro::pooling::AverageEval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::reference_ops::AveragePool(const tflite::PoolParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, unsigned char*) (Thumb, 638 bytes, Stack size 152 bytes, pooling.o(.text._ZN6tflite13reference_ops11AveragePoolERKNS_10PoolParamsERKNS_12RuntimeShapeEPKhS6_Ph)) +

    [Stack]

    • Max Depth = 152
    • Call Chain = tflite::reference_ops::AveragePool(const tflite::PoolParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, unsigned char*) +
    +
    [Called By]
    • >>   tflite::ops::micro::pooling::AverageEval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::reference_ops::DepthwiseConv(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) (Thumb, 1328 bytes, Stack size 300 bytes, depthwise_conv.o(.text._ZN6tflite13reference_ops13DepthwiseConvERKNS_15DepthwiseParamsERKNS_12RuntimeShapeEPKfS6_S8_S6_S8_S6_Pf)) +

    [Stack]

    • Max Depth = 300
    • Call Chain = tflite::reference_ops::DepthwiseConv(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::reference_ops::depthwise_conv::DepthwiseConvBasicKernel⟨(tflite::DepthwiseConvOutputRounding)1⟩::Run(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*) (Thumb, 1366 bytes, Stack size 316 bytes, depthwise_conv.o(.text._ZN6tflite13reference_ops14depthwise_conv24DepthwiseConvBasicKernelILNS_27DepthwiseConvOutputRoundingE1EE3RunERKNS_15DepthwiseParamsERKNS_12RuntimeShapeEPKhSA_SC_SA_PKiSA_Ph)) +

    [Stack]

    • Max Depth = 316
    • Call Chain = tflite::reference_ops::depthwise_conv::DepthwiseConvBasicKernel⟨(tflite::DepthwiseConvOutputRounding)1⟩::Run(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*) +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::reference_ops::Conv(const tflite::ConvParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*, const tflite::RuntimeShape&, float*) (Thumb, 1076 bytes, Stack size 256 bytes, conv.o(.text._ZN6tflite13reference_ops4ConvERKNS_10ConvParamsERKNS_12RuntimeShapeEPKfS6_S8_S6_S8_S6_PfS6_S9_)) +

    [Stack]

    • Max Depth = 256
    • Call Chain = tflite::reference_ops::Conv(const tflite::ConvParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*, const tflite::RuntimeShape&, float*) +
    +
    [Called By]
    • >>   tflite::ops::micro::conv::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    + +

    tflite::reference_ops::Conv(const tflite::ConvParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*, const tflite::RuntimeShape&, unsigned char*, void*) (Thumb, 1220 bytes, Stack size 292 bytes, conv.o(.text._ZN6tflite13reference_ops4ConvERKNS_10ConvParamsERKNS_12RuntimeShapeEPKhS6_S8_S6_PKiS6_PhS6_SB_Pv)) +

    [Stack]

    • Max Depth = 292
    • Call Chain = tflite::reference_ops::Conv(const tflite::ConvParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*, const tflite::RuntimeShape&, unsigned char*, void*) +
    +
    [Called By]
    • >>   tflite::ops::micro::conv::EvalQuantized(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    + +

    void tflite::reference_ops::Softmax⟨signed char, short⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) (Thumb, 1436 bytes, Stack size 104 bytes, softmax.o(.text._ZN6tflite13reference_ops7SoftmaxIasEEvRKNS_13SoftmaxParamsERKNS_12RuntimeShapeEPKT_S7_PT0_)) +

    [Stack]

    • Max Depth = 140
    • Call Chain = void tflite::reference_ops::Softmax⟨signed char, short⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) ⇒ gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    +
    [Calls]
    • >>   gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    • >>   gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::exp_on_negative_values⟨int, (int)5⟩(gemmlowp::FixedPoint⟨T1, T2⟩) +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    + +

    void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) (Thumb, 1364 bytes, Stack size 104 bytes, softmax.o(.text._ZN6tflite13reference_ops7SoftmaxIhhEEvRKNS_13SoftmaxParamsERKNS_12RuntimeShapeEPKT_S7_PT0_)) +

    [Stack]

    • Max Depth = 140
    • Call Chain = void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) ⇒ gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    +
    [Calls]
    • >>   gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    • >>   gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::exp_on_negative_values⟨int, (int)5⟩(gemmlowp::FixedPoint⟨T1, T2⟩) +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    + +

    tflite::AlignPointerUp(unsigned char*, unsigned) (Thumb, 12 bytes, Stack size 0 bytes, memory_helpers.o(.text._ZN6tflite14AlignPointerUpEPhj)) +

    [Called By]

    • >>   tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) +
    • >>   tflite::SimpleMemoryAllocator::EnsureHeadSize(unsigned, unsigned) +
    • >>   tflite::SimpleMemoryAllocator::GetAvailableMemory(unsigned) const +
    • >>   tflite::SimpleMemoryAllocator::AllocateTemp(unsigned, unsigned) +
    + +

    tflite::MicroAllocator::AllocateVariables(const tflite::SubGraph*, TfLiteEvalTensor*) (Thumb, 236 bytes, Stack size 32 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator17AllocateVariablesEPKNS_8SubGraphEP16TfLiteEvalTensor)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = tflite::MicroAllocator::AllocateVariables(const tflite::SubGraph*, TfLiteEvalTensor*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::ResetTempAllocations() (Thumb, 8 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator20ResetTempAllocationsEv)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::StartModelAllocation(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration**, TfLiteEvalTensor**) (Thumb, 92 bytes, Stack size 24 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator20StartModelAllocationEPKNS_5ModelERKNS_15MicroOpResolverEPPNS_19NodeAndRegistrationEPP16TfLiteEvalTensor)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::MicroAllocator::StartModelAllocation(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration**, TfLiteEvalTensor**) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    + +

    tflite::MicroAllocator::FinishModelAllocation(const tflite::Model*, TfLiteEvalTensor*) (Thumb, 122 bytes, Stack size 24 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator21FinishModelAllocationEPKNS_5ModelEP16TfLiteEvalTensor)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::MicroAllocator::FinishModelAllocation(const tflite::Model*, TfLiteEvalTensor*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    + +

    tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) (Thumb, 1956 bytes, Stack size 152 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator22CommitStaticMemoryPlanEPKNS_5ModelEPKNS_8SubGraphEP16TfLiteEvalTensor)) +

    [Stack]

    • Max Depth = 208
    • Call Chain = tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) ⇒ tflite::GreedyMemoryPlanner::GetMaximumMemorySize() ⇒ tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    • >>   tflite::AlignSizeUp(unsigned, unsigned) +
    • >>   tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    • >>   strncmp +
    • >>   tflite::SimpleMemoryAllocator::GetTail() const +
    • >>   tflite::SimpleMemoryAllocator::GetAvailableMemory(unsigned) const +
    • >>   tflite::SimpleMemoryAllocator::GetBufferHead() const +
    • >>   tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator() +
    • >>   tflite::SimpleMemoryAllocator::SimpleMemoryAllocator(tflite::ErrorReporter*, unsigned char*, unsigned char*) +
    • >>   tflite::SimpleMemoryAllocator::AllocateTemp(unsigned, unsigned) +
    • >>   tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner() +
    • >>   tflite::GreedyMemoryPlanner::GreedyMemoryPlanner(unsigned char*, int) +
    • >>   tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int, int) +
    • >>   tflite::GreedyMemoryPlanner::GetMaximumMemorySize() +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::AllocatePersistentBuffer(unsigned) (Thumb, 10 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator24AllocatePersistentBufferEj)) +

    [Called By]

    • >>   tflite::internal::ContextHelper::AllocatePersistentBuffer(TfLiteContext*, unsigned) +
    + +

    tflite::MicroAllocator::AllocateTempTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) (Thumb, 150 bytes, Stack size 40 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator24AllocateTempTfLiteTensorEPKNS_5ModelEP16TfLiteEvalTensori)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = tflite::MicroAllocator::AllocateTempTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::AllocateTfLiteEvalTensors(const tflite::Model*, TfLiteEvalTensor**) (Thumb, 520 bytes, Stack size 64 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator25AllocateTfLiteEvalTensorsEPKNS_5ModelEPP16TfLiteEvalTensor)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = tflite::MicroAllocator::AllocateTfLiteEvalTensors(const tflite::Model*, TfLiteEvalTensor**) ⇒ tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) (Thumb, 160 bytes, Stack size 24 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator27RequestScratchBufferInArenaEijPi)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::SimpleMemoryAllocator::GetTail() const +
    +
    [Called By]
    • >>   tflite::internal::ContextHelper::RequestScratchBufferInArena(TfLiteContext*, unsigned, int*) +
    + +

    tflite::MicroAllocator::AllocateNodeAndRegistrations(const tflite::Model*, tflite::NodeAndRegistration**) (Thumb, 148 bytes, Stack size 16 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator28AllocateNodeAndRegistrationsEPKNS_5ModelEPPNS_19NodeAndRegistrationE)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::MicroAllocator::AllocateNodeAndRegistrations(const tflite::Model*, tflite::NodeAndRegistration**) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::AllocatePersistentTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) (Thumb, 152 bytes, Stack size 40 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator30AllocatePersistentTfLiteTensorEPKNS_5ModelEP16TfLiteEvalTensori)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = tflite::MicroAllocator::AllocatePersistentTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::PopulateTfLiteTensorFromFlatbuffer(const tflite::Model*, const tflite::SubGraph*, TfLiteTensor*, int, bool) (Thumb, 84 bytes, Stack size 24 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator34PopulateTfLiteTensorFromFlatbufferEPKNS_5ModelEPKNS_8SubGraphEP12TfLiteTensorib)) +

    [Stack]

    • Max Depth = 160
    • Call Chain = tflite::MicroAllocator::PopulateTfLiteTensorFromFlatbuffer(const tflite::Model*, const tflite::SubGraph*, TfLiteTensor*, int, bool) ⇒ tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) ⇒ tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) ⇒ tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::AllocatePersistentTfLiteTensorInternal(const tflite::Model*, TfLiteEvalTensor*, int) (Thumb, 12 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator38AllocatePersistentTfLiteTensorInternalEPKNS_5ModelEP16TfLiteEvalTensori)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::PrepareNodeAndRegistrationDataFromFlatbuffer(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration*) (Thumb, 980 bytes, Stack size 88 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator44PrepareNodeAndRegistrationDataFromFlatbufferEPKNS_5ModelERKNS_15MicroOpResolverEPNS_19NodeAndRegistrationE)) +

    [Stack]

    • Max Depth = 136
    • Call Chain = tflite::MicroAllocator::PrepareNodeAndRegistrationDataFromFlatbuffer(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration*) ⇒ tflite::GetRegistrationFromOpCode(const tflite::OperatorCode*, const tflite::OpResolver&, tflite::ErrorReporter*, const TfLiteRegistration**) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::GetRegistrationFromOpCode(const tflite::OperatorCode*, const tflite::OpResolver&, tflite::ErrorReporter*, const TfLiteRegistration**) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) (Thumb, 92 bytes, Stack size 24 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator6CreateEPhjPNS_13ErrorReporterE)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) ⇒ tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::AlignPointerUp(unsigned char*, unsigned) +
    • >>   tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) +
    +
    [Called By]
    • >>   tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) +
    + +

    tflite::MicroAllocator::~MicroAllocator__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocatorD0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::MicroAllocator::~MicroAllocator__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::~MicroAllocator() (Thumb, 2 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocatorD2Ev), UNUSED) + +

    tflite::MicroAllocator::~MicroAllocator__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocatorD2Ev)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::AlignPointerDown(unsigned char*, unsigned) (Thumb, 8 bytes, Stack size 0 bytes, memory_helpers.o(.text._ZN6tflite16AlignPointerDownEPhj)) +

    [Called By]

    • >>   tflite::SimpleMemoryAllocator::AllocateFromTail(unsigned, unsigned) +
    • >>   tflite::SimpleMemoryAllocator::GetAvailableMemory(unsigned) const +
    • >>   tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) +
    + +

    tflite::MicroInterpreter::AllocateTensors() (Thumb, 528 bytes, Stack size 40 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreter15AllocateTensorsEv)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = tflite::MicroInterpreter::AllocateTensors() ⇒ tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::MicroInterpreter::ResetVariableTensors() +
    • >>   tflite::MicroAllocator::FinishModelAllocation(const tflite::Model*, TfLiteEvalTensor*) +
    • >>   tflite::MicroAllocator::StartModelAllocation(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration**, TfLiteEvalTensor**) +
    +
    [Called By]
    • >>   person_detect_init +
    • >>   tflite::MicroInterpreter::Invoke() +
    + +

    tflite::MicroInterpreter::ResetVariableTensors() (Thumb, 298 bytes, Stack size 48 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreter20ResetVariableTensorsEv)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    • >>   __aeabi_memset +
    +
    [Called By]
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    + +

    tflite::MicroInterpreter::input(unsigned) (Thumb, 180 bytes, Stack size 16 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreter5inputEj)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::MicroInterpreter::input(unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   person_detect_init +
    + +

    tflite::MicroInterpreter::Invoke() (Thumb, 328 bytes, Stack size 32 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreter6InvokeEv)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = tflite::MicroInterpreter::Invoke() ⇒ tflite::MicroInterpreter::AllocateTensors() ⇒ tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    +
    [Called By]
    • >>   person_detect +
    + +

    tflite::MicroInterpreter::output(unsigned) (Thumb, 180 bytes, Stack size 16 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreter6outputEj)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::MicroInterpreter::output(unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   person_detect +
    + +

    tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) (Thumb, 198 bytes, Stack size 32 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreterC2EPKNS_5ModelERKNS_15MicroOpResolverEPhjPNS_13ErrorReporterEPNS_8ProfilerE)) +

    [Stack]

    • Max Depth = 104
    • Call Chain = tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) ⇒ tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) ⇒ tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   person_detect_init +
    + +

    tflite::MicroInterpreter::MicroInterpreter__sub_object(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) (Thumb, 198 bytes, Stack size 32 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreterC2EPKNS_5ModelERKNS_15MicroOpResolverEPhjPNS_13ErrorReporterEPNS_8ProfilerE), UNUSED) + +

    tflite::MicroInterpreter::~MicroInterpreter() (Thumb, 90 bytes, Stack size 24 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreterD2Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tflite::MicroInterpreter::~MicroInterpreter() +
    +
    [Address Reference Count : 1]
    • main_functions.o(.text.person_detect_init) +
    +

    tflite::MicroInterpreter::~MicroInterpreter__sub_object() (Thumb, 90 bytes, Stack size 24 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreterD2Ev), UNUSED) + +

    tflite::TfLiteTypeSizeOf(TfLiteType, unsigned*) (Thumb, 44 bytes, Stack size 0 bytes, memory_helpers.o(.text._ZN6tflite16TfLiteTypeSizeOfE10TfLiteTypePj)) +

    [Called By]

    • >>   tflite::ops::micro::reshape::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) (Thumb, 144 bytes, Stack size 8 bytes, flatbuffer_conversions.o(.text._ZN6tflite17ConvertTensorTypeENS_10TensorTypeEP10TfLiteTypePNS_13ErrorReporterE)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) +
    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    • >>   tflite::MicroAllocator::AllocateTfLiteEvalTensors(const tflite::Model*, TfLiteEvalTensor**) +
    + +

    tflite::MicroErrorReporter::Report(const char*, std::__va_list) (Thumb, 44 bytes, Stack size 264 bytes, micro_error_reporter.o(.text._ZN6tflite18MicroErrorReporter6ReportEPKcSt9__va_list)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = tflite::MicroErrorReporter::Report(const char*, std::__va_list) ⇒ MicroVsnprintf ⇒ __aeabi_d2f +
    +
    [Calls]
    • >>   MicroVsnprintf +
    • >>   DebugLog +
    +
    [Address Reference Count : 1]
    • micro_error_reporter.o(.rodata._ZTVN6tflite18MicroErrorReporterE) +
    +

    tflite::MicroErrorReporter::~MicroErrorReporter__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, micro_error_reporter.o(.text._ZN6tflite18MicroErrorReporterD0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::MicroErrorReporter::~MicroErrorReporter__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • micro_error_reporter.o(.rodata._ZTVN6tflite18MicroErrorReporterE) +
    +

    tflite::QuantizeMultiplier(double, int*, int*) (Thumb, 192 bytes, Stack size 24 bytes, quantization_util.o(.text._ZN6tflite18QuantizeMultiplierEdPiS0_)) +

    [Stack]

    • Max Depth = 120 + Unknown Stack Size +
    • Call Chain = tflite::QuantizeMultiplier(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   __hardfp_round +
    • >>   __hardfp_frexp +
    • >>   __aeabi_dmul +
    • >>   __aeabi_d2lz +
    • >>   __aeabi_dcmpeq +
    • >>   abort +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    + +

    tflite::GreedyMemoryPlanner::GetBufferCount() (Thumb, 4 bytes, Stack size 0 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner14GetBufferCountEv)) +
    [Address Reference Count : 1]

    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::GreedyMemoryPlanner::GetOffsetForBuffer(tflite::ErrorReporter*, int, int*) (Thumb, 100 bytes, Stack size 24 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner18GetOffsetForBufferEPNS_13ErrorReporterEiPi)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = tflite::GreedyMemoryPlanner::GetOffsetForBuffer(tflite::ErrorReporter*, int, int*) ⇒ tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Address Reference Count : 1]
    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::GreedyMemoryPlanner::GetMaximumMemorySize() (Thumb, 72 bytes, Stack size 8 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner20GetMaximumMemorySizeEv)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = tflite::GreedyMemoryPlanner::GetMaximumMemorySize() ⇒ tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Calls]
    • >>   tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    +
    [Address Reference Count : 1]
    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() (Thumb, 654 bytes, Stack size 48 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner24CalculateOffsetsIfNeededEv)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Called By]
    • >>   tflite::GreedyMemoryPlanner::GetOffsetForBuffer(tflite::ErrorReporter*, int, int*) +
    • >>   tflite::GreedyMemoryPlanner::GetMaximumMemorySize() +
    + +

    tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int) (Thumb, 100 bytes, Stack size 16 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner9AddBufferEPNS_13ErrorReporterEiii)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Address Reference Count : 1]
    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int, int) (Thumb, 44 bytes, Stack size 24 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner9AddBufferEPNS_13ErrorReporterEiiii)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int, int) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::GreedyMemoryPlanner::GreedyMemoryPlanner(unsigned char*, int) (Thumb, 76 bytes, Stack size 16 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlannerC2EPhi)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::GreedyMemoryPlanner::GreedyMemoryPlanner(unsigned char*, int) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::GreedyMemoryPlanner::GreedyMemoryPlanner__sub_object(unsigned char*, int) (Thumb, 76 bytes, Stack size 16 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlannerC2EPhi), UNUSED) + +

    tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlannerD0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner() (Thumb, 2 bytes, Stack size 0 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlannerD2Ev)) +

    [Called By]

    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlannerD2Ev)) +
    [Address Reference Count : 1]

    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::BuiltinDataAllocator::~BuiltinDataAllocator__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite20BuiltinDataAllocatorD2Ev)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocatorE) +
    +

    tflite::CalculateInputRadius(int, int, int) (Thumb, 142 bytes, Stack size 32 bytes, quantization_util.o(.text._ZN6tflite20CalculateInputRadiusEiii)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = tflite::CalculateInputRadius(int, int, int) ⇒ __hardfp_floor ⇒ __aeabi_cdrcmple +
    +
    [Calls]
    • >>   __hardfp_floor +
    • >>   __aeabi_dmul +
    • >>   __aeabi_l2d +
    • >>   __aeabi_i2d +
    • >>   __aeabi_d2iz +
    • >>   __aeabi_ddiv +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ParseDepthwiseConv2D(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) (Thumb, 346 bytes, Stack size 24 bytes, flatbuffer_conversions.o(.text._ZN6tflite20ParseDepthwiseConv2DEPKNS_8OperatorEPNS_13ErrorReporterEPNS_20BuiltinDataAllocatorEPPv)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::ParseDepthwiseConv2D(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) ⇒ tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Address Reference Count : 1]
    • main_functions.o(.text._ZN6tflite22MicroMutableOpResolverILj5EE18AddDepthwiseConv2DEv) +
    +

    tflite::SimpleMemoryAllocator::AllocateTemp(unsigned, unsigned) (Thumb, 58 bytes, Stack size 24 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocator12AllocateTempEjj)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::SimpleMemoryAllocator::AllocateTemp(unsigned, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::AlignPointerUp(unsigned char*, unsigned) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    +
    [Address Reference Count : 1]
    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::SimpleMemoryAllocator::EnsureHeadSize(unsigned, unsigned) (Thumb, 96 bytes, Stack size 24 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocator14EnsureHeadSizeEjj)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::SimpleMemoryAllocator::EnsureHeadSize(unsigned, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::AlignPointerUp(unsigned char*, unsigned) +
    +
    [Address Reference Count : 1]
    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::SimpleMemoryAllocator::AllocateFromTail(unsigned, unsigned) (Thumb, 64 bytes, Stack size 24 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocator16AllocateFromTailEjj)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::SimpleMemoryAllocator::AllocateFromTail(unsigned, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::AlignPointerDown(unsigned char*, unsigned) +
    +
    [Address Reference Count : 1]
    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::SimpleMemoryAllocator::ResetTempAllocations() (Thumb, 6 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocator20ResetTempAllocationsEv)) +
    [Address Reference Count : 1]

    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) (Thumb, 84 bytes, Stack size 24 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocator6CreateEPNS_13ErrorReporterEPhj)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::AlignPointerDown(unsigned char*, unsigned) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) +
    + +

    tflite::SimpleMemoryAllocator::SimpleMemoryAllocator(tflite::ErrorReporter*, unsigned char*, unsigned char*) (Thumb, 28 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocatorC2EPNS_13ErrorReporterEPhS3_)) +

    [Called By]

    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::SimpleMemoryAllocator::SimpleMemoryAllocator__sub_object(tflite::ErrorReporter*, unsigned char*, unsigned char*) (Thumb, 28 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocatorC2EPNS_13ErrorReporterEPhS3_), UNUSED) + +

    tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocatorD0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator() (Thumb, 2 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocatorD2Ev)) +

    [Called By]

    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocatorD2Ev)) +
    [Address Reference Count : 1]

    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::reference_integer_ops::DepthwiseConvPerChannel(const tflite::DepthwiseParams&, const int*, const int*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, signed char*) (Thumb, 1292 bytes, Stack size 288 bytes, depthwise_conv.o(.text._ZN6tflite21reference_integer_ops23DepthwiseConvPerChannelERKNS_15DepthwiseParamsEPKiS5_RKNS_12RuntimeShapeEPKaS8_SA_S8_S5_S8_Pa)) +

    [Stack]

    • Max Depth = 288
    • Call Chain = tflite::reference_integer_ops::DepthwiseConvPerChannel(const tflite::DepthwiseParams&, const int*, const int*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, signed char*) +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) (Thumb, 262 bytes, Stack size 56 bytes, memory_helpers.o(.text._ZN6tflite22BytesRequiredForTensorERKNS_6TensorEPjS3_PNS_13ErrorReporterE)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) ⇒ tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) +
    +
    [Called By]
    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    + +

    tflite::GetOptionalInputTensor(const TfLiteContext*, const TfLiteNode*, int) (Thumb, 38 bytes, Stack size 0 bytes, kernel_util.o(.text._ZN6tflite22GetOptionalInputTensorEPK13TfLiteContextPK10TfLiteNodei)) +

    [Called By]

    • >>   tflite::ops::micro::conv::CalculateOpData(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, int, int, int, int, int, int, TfLiteType, tflite::ops::micro::conv::OpData*) +
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddReshape() (Thumb, 182 bytes, Stack size 56 bytes, main_functions.o(.text._ZN6tflite22MicroMutableOpResolverILj5EE10AddReshapeEv)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddReshape() ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::ops::micro::Register_RESHAPE() +
    +
    [Called By]
    • >>   person_detect_init +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddSoftmax() (Thumb, 182 bytes, Stack size 56 bytes, main_functions.o(.text._ZN6tflite22MicroMutableOpResolverILj5EE10AddSoftmaxEv)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddSoftmax() ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::ops::micro::Register_SOFTMAX() +
    +
    [Called By]
    • >>   person_detect_init +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddAveragePool2D() (Thumb, 194 bytes, Stack size 56 bytes, main_functions.o(.text._ZN6tflite22MicroMutableOpResolverILj5EE16AddAveragePool2DEv)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddAveragePool2D() ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::ops::micro::Register_AVERAGE_POOL_2D() +
    +
    [Called By]
    • >>   person_detect_init +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddDepthwiseConv2D() (Thumb, 182 bytes, Stack size 56 bytes, main_functions.o(.text._ZN6tflite22MicroMutableOpResolverILj5EE18AddDepthwiseConv2DEv)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddDepthwiseConv2D() ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::ops::micro::Register_DEPTHWISE_CONV_2D() +
    +
    [Called By]
    • >>   person_detect_init +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddConv2D() (Thumb, 182 bytes, Stack size 56 bytes, main_functions.o(.text._ZN6tflite22MicroMutableOpResolverILj5EE9AddConv2DEv)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddConv2D() ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::ops::micro::Register_CONV_2D() +
    +
    [Called By]
    • >>   person_detect_init +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)5⟩::~MicroMutableOpResolver__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, main_functions.o(.text._ZN6tflite22MicroMutableOpResolverILj5EED0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)5⟩::~MicroMutableOpResolver__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • main_functions.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj5EEE) +
    +

    tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) (Thumb, 104 bytes, Stack size 32 bytes, quantization_util.o(.text._ZN6tflite24PreprocessSoftmaxScalingEddiPiS0_)) +

    [Stack]

    • Max Depth = 160 + Unknown Stack Size +
    • Call Chain = tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) ⇒ tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    • >>   __aeabi_dmul +
    • >>   __aeabi_i2d +
    • >>   __aeabi_dcmpgt +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::GetRegistrationFromOpCode(const tflite::OperatorCode*, const tflite::OpResolver&, tflite::ErrorReporter*, const TfLiteRegistration**) (Thumb, 300 bytes, Stack size 24 bytes, op_resolver.o(.text._ZN6tflite25GetRegistrationFromOpCodeEPKNS_12OperatorCodeERKNS_10OpResolverEPNS_13ErrorReporterEPPK18TfLiteRegistration)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::GetRegistrationFromOpCode(const tflite::OperatorCode*, const tflite::OpResolver&, tflite::ErrorReporter*, const TfLiteRegistration**) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::PrepareNodeAndRegistrationDataFromFlatbuffer(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration*) +
    + +

    tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) (Thumb, 170 bytes, Stack size 24 bytes, memory_helpers.o(.text._ZN6tflite26TfLiteEvalTensorByteLengthEPK16TfLiteEvalTensorPj)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Called By]
    • >>   tflite::MicroInterpreter::ResetVariableTensors() +
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    • >>   tflite::MicroAllocator::AllocateVariables(const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) (Thumb, 340 bytes, Stack size 48 bytes, kernel_util.o(.text._ZN6tflite32GetQuantizedConvolutionMultiplerEP13TfLiteContextPK12TfLiteTensorS4_S4_PS2_Pd)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_f2d +
    • >>   __aeabi_dmul +
    • >>   __aeabi_ddiv +
    • >>   __aeabi_dcmple +
    • >>   __aeabi_dsub +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    + +

    tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) (Thumb, 224 bytes, Stack size 32 bytes, quantization_util.o(.text._ZN6tflite32QuantizeMultiplierGreaterThanOneEdPiS0_)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   __hardfp_round +
    • >>   __hardfp_frexp +
    • >>   __aeabi_dmul +
    • >>   __aeabi_d2lz +
    • >>   __aeabi_dcmpgt +
    • >>   __aeabi_dcmpeq +
    • >>   abort +
    +
    [Called By]
    • >>   tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) +
    + +

    tflite::CalculateActivationRangeQuantized(TfLiteContext*, TfLiteFusedActivation, TfLiteTensor*, int*, int*) (Thumb, 272 bytes, Stack size 40 bytes, kernel_util.o(.text._ZN6tflite33CalculateActivationRangeQuantizedEP13TfLiteContext21TfLiteFusedActivationP12TfLiteTensorPiS5_)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = tflite::CalculateActivationRangeQuantized(TfLiteContext*, TfLiteFusedActivation, TfLiteTensor*, int*, int*) ⇒ __hardfp_roundf ⇒ _frnd ⇒ __fpl_fnaninf +
    +
    [Calls]
    • >>   __hardfp_roundf +
    +
    [Called By]
    • >>   tflite::ops::micro::pooling::AveragePrepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) (Thumb, 1148 bytes, Stack size 104 bytes, kernel_util.o(.text._ZN6tflite37PopulateConvolutionQuantizationParamsEP13TfLiteContextPK12TfLiteTensorS4_S4_PS2_RK21TfLiteFusedActivationPiS9_S9_S9_S9_S9_i)) +

    [Stack]

    • Max Depth = 224 + Unknown Stack Size +
    • Call Chain = tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) ⇒ tflite::QuantizeMultiplier(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    • >>   __hardfp_roundf +
    • >>   __aeabi_f2d +
    • >>   __aeabi_dmul +
    • >>   __aeabi_ddiv +
    +
    [Called By]
    • >>   tflite::ops::micro::conv::CalculateOpData(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, int, int, int, int, int, int, TfLiteType, tflite::ops::micro::conv::OpData*) +
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::activations::SoftmaxEval(TfLiteContext*, TfLiteNode*) (Thumb, 116 bytes, Stack size 16 bytes, softmax.o(.text._ZN6tflite3ops5micro11activations11SoftmaxEvalEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 308
    • Call Chain = tflite::ops::micro::activations::SoftmaxEval(TfLiteContext*, TfLiteNode*) ⇒ tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) ⇒ void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) ⇒ gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    +
    [Calls]
    • >>   TfLiteTypeGetName +
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    +
    [Address Reference Count : 1]
    • softmax.o(.text._ZN6tflite3ops5micro16Register_SOFTMAXEv) +
    +

    tflite::ops::micro::activations::SoftmaxInit(TfLiteContext*, const char*, unsigned) (Thumb, 6 bytes, Stack size 0 bytes, softmax.o(.text._ZN6tflite3ops5micro11activations11SoftmaxInitEP13TfLiteContextPKcj)) +
    [Address Reference Count : 1]

    • softmax.o(.text._ZN6tflite3ops5micro16Register_SOFTMAXEv) +
    +

    tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) (Thumb, 836 bytes, Stack size 168 bytes, softmax.o(.text._ZN6tflite3ops5micro11activations12SoftmaxFloatEPK16TfLiteEvalTensorPS3_RKNS_13SoftmaxParamsE)) +

    [Stack]

    • Max Depth = 224
    • Call Chain = tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) ⇒ operator new[] (unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   __hardfp_expf +
    • >>   __aeabi_d2f +
    • >>   __aeabi_memcpy4 +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxEval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) (Thumb, 968 bytes, Stack size 56 bytes, softmax.o(.text._ZN6tflite3ops5micro11activations14SoftmaxPrepareEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 216 + Unknown Stack Size +
    • Call Chain = tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) ⇒ tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) ⇒ tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   TfLiteTypeGetName +
    • >>   tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) +
    • >>   tflite::CalculateInputRadius(int, int, int) +
    • >>   __aeabi_f2d +
    +
    [Address Reference Count : 1]
    • softmax.o(.text._ZN6tflite3ops5micro16Register_SOFTMAXEv) +
    +

    tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) (Thumb, 834 bytes, Stack size 152 bytes, softmax.o(.text._ZN6tflite3ops5micro11activations16SoftmaxQuantizedEPK16TfLiteEvalTensorPS3_RKNS_13SoftmaxParamsE)) +

    [Stack]

    • Max Depth = 292
    • Call Chain = tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) ⇒ void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) ⇒ gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   arm_softmax_s8 +
    • >>   void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    • >>   void tflite::reference_ops::Softmax⟨signed char, short⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    • >>   __aeabi_memcpy4 +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxEval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) (Thumb, 2920 bytes, Stack size 472 bytes, depthwise_conv.o(.text._ZN6tflite3ops5micro14depthwise_conv4EvalEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 828
    • Call Chain = tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) ⇒ arm_depthwise_conv_wrapper_s8 ⇒ arm_depthwise_conv_3x3_s8 +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   TfLiteTypeGetName +
    • >>   arm_depthwise_conv_wrapper_s8 +
    • >>   arm_depthwise_conv_u8_basic_ver1 +
    • >>   tflite::reference_integer_ops::DepthwiseConvPerChannel(const tflite::DepthwiseParams&, const int*, const int*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, signed char*) +
    • >>   tflite::reference_ops::depthwise_conv::DepthwiseConvBasicKernel⟨(tflite::DepthwiseConvOutputRounding)1⟩::Run(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*) +
    • >>   tflite::reference_ops::DepthwiseConv(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) +
    • >>   __aeabi_memcpy4 +
    +
    [Address Reference Count : 1]
    • depthwise_conv.o(.text._ZN6tflite3ops5micro26Register_DEPTHWISE_CONV_2DEv) +
    +

    tflite::ops::micro::depthwise_conv::Init(TfLiteContext*, const char*, unsigned) (Thumb, 8 bytes, Stack size 0 bytes, depthwise_conv.o(.text._ZN6tflite3ops5micro14depthwise_conv4InitEP13TfLiteContextPKcj)) +
    [Address Reference Count : 1]

    • depthwise_conv.o(.text._ZN6tflite3ops5micro26Register_DEPTHWISE_CONV_2DEv) +
    +

    tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) (Thumb, 1340 bytes, Stack size 272 bytes, depthwise_conv.o(.text._ZN6tflite3ops5micro14depthwise_conv7PrepareEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 496 + Unknown Stack Size +
    • Call Chain = tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) ⇒ tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) ⇒ tflite::QuantizeMultiplier(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::GetOptionalInputTensor(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   arm_depthwise_conv_wrapper_s8_get_buffer_size +
    • >>   __aeabi_memcpy4 +
    +
    [Address Reference Count : 1]
    • depthwise_conv.o(.text._ZN6tflite3ops5micro26Register_DEPTHWISE_CONV_2DEv) +
    +

    tflite::ops::micro::Register_CONV_2D() (Thumb, 40 bytes, Stack size 0 bytes, conv.o(.text._ZN6tflite3ops5micro16Register_CONV_2DEv)) +

    [Called By]

    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddConv2D() +
    + +

    tflite::ops::micro::Register_RESHAPE() (Thumb, 36 bytes, Stack size 0 bytes, reshape.o(.text._ZN6tflite3ops5micro16Register_RESHAPEEv)) +

    [Called By]

    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddReshape() +
    + +

    tflite::ops::micro::Register_SOFTMAX() (Thumb, 40 bytes, Stack size 0 bytes, softmax.o(.text._ZN6tflite3ops5micro16Register_SOFTMAXEv)) +

    [Called By]

    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddSoftmax() +
    + +

    tflite::ops::micro::Register_AVERAGE_POOL_2D() (Thumb, 40 bytes, Stack size 0 bytes, pooling.o(.text._ZN6tflite3ops5micro24Register_AVERAGE_POOL_2DEv)) +

    [Called By]

    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddAveragePool2D() +
    + +

    tflite::ops::micro::Register_DEPTHWISE_CONV_2D() (Thumb, 40 bytes, Stack size 0 bytes, depthwise_conv.o(.text._ZN6tflite3ops5micro26Register_DEPTHWISE_CONV_2DEv)) +

    [Called By]

    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddDepthwiseConv2D() +
    + +

    tflite::ops::micro::conv::EvalQuantized(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) (Thumb, 642 bytes, Stack size 240 bytes, conv.o(.text._ZN6tflite3ops5micro4conv13EvalQuantizedEP13TfLiteContextP10TfLiteNodeP16TfLiteConvParamsRKNS2_6OpDataEPK16TfLiteEvalTensorSE_SE_PSC_SF_SF_)) +

    [Stack]

    • Max Depth = 532
    • Call Chain = tflite::ops::micro::conv::EvalQuantized(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) ⇒ tflite::reference_ops::Conv(const tflite::ConvParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*, const tflite::RuntimeShape&, unsigned char*, void*) +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   tflite::reference_ops::Conv(const tflite::ConvParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*, const tflite::RuntimeShape&, unsigned char*, void*) +
    • >>   __aeabi_memcpy4 +
    +
    [Called By]
    • >>   tflite::ops::micro::conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::conv::CalculateOpData(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, int, int, int, int, int, int, TfLiteType, tflite::ops::micro::conv::OpData*) (Thumb, 528 bytes, Stack size 72 bytes, conv.o(.text._ZN6tflite3ops5micro4conv15CalculateOpDataEP13TfLiteContextP10TfLiteNodeP16TfLiteConvParamsiiiiii10TfLiteTypePNS2_6OpDataE)) +

    [Stack]

    • Max Depth = 296 + Unknown Stack Size +
    • Call Chain = tflite::ops::micro::conv::CalculateOpData(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, int, int, int, int, int, int, TfLiteType, tflite::ops::micro::conv::OpData*) ⇒ tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) ⇒ tflite::QuantizeMultiplier(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::GetOptionalInputTensor(const TfLiteContext*, const TfLiteNode*, int) +
    +
    [Called By]
    • >>   tflite::ops::micro::conv::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::conv::EvalQuantizedPerChannel(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) (Thumb, 708 bytes, Stack size 288 bytes, conv.o(.text._ZN6tflite3ops5micro4conv23EvalQuantizedPerChannelEP13TfLiteContextP10TfLiteNodeP16TfLiteConvParamsRKNS2_6OpDataEPK16TfLiteEvalTensorSE_SE_PSC_SF_)) +

    [Stack]

    • Max Depth = 752
    • Call Chain = tflite::ops::micro::conv::EvalQuantizedPerChannel(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) ⇒ arm_convolve_wrapper_s8 ⇒ arm_convolve_s8 ⇒ arm_nn_mat_mult_kernel_s8_s16 +
    +
    [Calls]
    • >>   arm_convolve_wrapper_s8 +
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   __aeabi_memcpy4 +
    +
    [Called By]
    • >>   tflite::ops::micro::conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::conv::Eval(TfLiteContext*, TfLiteNode*) (Thumb, 220 bytes, Stack size 56 bytes, conv.o(.text._ZN6tflite3ops5micro4conv4EvalEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 808
    • Call Chain = tflite::ops::micro::conv::Eval(TfLiteContext*, TfLiteNode*) ⇒ tflite::ops::micro::conv::EvalQuantizedPerChannel(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) ⇒ arm_convolve_wrapper_s8 ⇒ arm_convolve_s8 ⇒ arm_nn_mat_mult_kernel_s8_s16 +
    +
    [Calls]
    • >>   tflite::ops::micro::conv::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::conv::EvalQuantizedPerChannel(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::conv::EvalQuantized(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   TfLiteTypeGetName +
    +
    [Address Reference Count : 1]
    • conv.o(.text._ZN6tflite3ops5micro16Register_CONV_2DEv) +
    +

    tflite::ops::micro::conv::Init(TfLiteContext*, const char*, unsigned) (Thumb, 8 bytes, Stack size 0 bytes, conv.o(.text._ZN6tflite3ops5micro4conv4InitEP13TfLiteContextPKcj)) +
    [Address Reference Count : 1]

    • conv.o(.text._ZN6tflite3ops5micro16Register_CONV_2DEv) +
    +

    tflite::ops::micro::conv::Prepare(TfLiteContext*, TfLiteNode*) (Thumb, 512 bytes, Stack size 240 bytes, conv.o(.text._ZN6tflite3ops5micro4conv7PrepareEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 536 + Unknown Stack Size +
    • Call Chain = tflite::ops::micro::conv::Prepare(TfLiteContext*, TfLiteNode*) ⇒ tflite::ops::micro::conv::CalculateOpData(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, int, int, int, int, int, int, TfLiteType, tflite::ops::micro::conv::OpData*) ⇒ tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) ⇒ tflite::QuantizeMultiplier(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   arm_convolve_wrapper_s8_get_buffer_size +
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::ops::micro::conv::CalculateOpData(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, int, int, int, int, int, int, TfLiteType, tflite::ops::micro::conv::OpData*) +
    • >>   __aeabi_memcpy4 +
    +
    [Address Reference Count : 1]
    • conv.o(.text._ZN6tflite3ops5micro16Register_CONV_2DEv) +
    +

    tflite::ops::micro::conv::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) (Thumb, 664 bytes, Stack size 240 bytes, conv.o(.text._ZN6tflite3ops5micro4conv9EvalFloatEP13TfLiteContextP10TfLiteNodeP16TfLiteConvParamsRKNS2_6OpDataEPK16TfLiteEvalTensorSE_SE_PSC_SF_SF_)) +

    [Stack]

    • Max Depth = 496
    • Call Chain = tflite::ops::micro::conv::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) ⇒ tflite::reference_ops::Conv(const tflite::ConvParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*, const tflite::RuntimeShape&, float*) +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   tflite::reference_ops::Conv(const tflite::ConvParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*, const tflite::RuntimeShape&, float*) +
    • >>   __aeabi_memcpy4 +
    +
    [Called By]
    • >>   tflite::ops::micro::conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::pooling::AverageEval(TfLiteContext*, TfLiteNode*) (Thumb, 988 bytes, Stack size 256 bytes, pooling.o(.text._ZN6tflite3ops5micro7pooling11AverageEvalEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 468
    • Call Chain = tflite::ops::micro::pooling::AverageEval(TfLiteContext*, TfLiteNode*) ⇒ tflite::reference_ops::AveragePool(const tflite::PoolParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   TfLiteTypeGetName +
    • >>   arm_avgpool_s8 +
    • >>   tflite::reference_ops::AveragePool(const tflite::PoolParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, unsigned char*) +
    • >>   tflite::reference_ops::AveragePool(const tflite::PoolParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) +
    • >>   __aeabi_memcpy4 +
    +
    [Address Reference Count : 1]
    • pooling.o(.text._ZN6tflite3ops5micro24Register_AVERAGE_POOL_2DEv) +
    +

    tflite::ops::micro::pooling::AveragePrepare(TfLiteContext*, TfLiteNode*) (Thumb, 466 bytes, Stack size 88 bytes, pooling.o(.text._ZN6tflite3ops5micro7pooling14AveragePrepareEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 160
    • Call Chain = tflite::ops::micro::pooling::AveragePrepare(TfLiteContext*, TfLiteNode*) ⇒ tflite::CalculateActivationRangeQuantized(TfLiteContext*, TfLiteFusedActivation, TfLiteTensor*, int*, int*) ⇒ __hardfp_roundf ⇒ _frnd ⇒ __fpl_fnaninf +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   arm_avgpool_s8_get_buffer_size +
    • >>   tflite::CalculateActivationRangeQuantized(TfLiteContext*, TfLiteFusedActivation, TfLiteTensor*, int*, int*) +
    • >>   __aeabi_memcpy4 +
    +
    [Address Reference Count : 1]
    • pooling.o(.text._ZN6tflite3ops5micro24Register_AVERAGE_POOL_2DEv) +
    +

    tflite::ops::micro::pooling::Init(TfLiteContext*, const char*, unsigned) (Thumb, 6 bytes, Stack size 0 bytes, pooling.o(.text._ZN6tflite3ops5micro7pooling4InitEP13TfLiteContextPKcj)) +
    [Address Reference Count : 1]

    • pooling.o(.text._ZN6tflite3ops5micro24Register_AVERAGE_POOL_2DEv) +
    +

    tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) (Thumb, 716 bytes, Stack size 72 bytes, reshape.o(.text._ZN6tflite3ops5micro7reshape13ReshapeOutputEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    +
    [Calls]
    • >>   tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   TfLiteTypeGetName +
    +
    [Called By]
    • >>   tflite::ops::micro::reshape::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::reshape::Eval(TfLiteContext*, TfLiteNode*) (Thumb, 186 bytes, Stack size 24 bytes, reshape.o(.text._ZN6tflite3ops5micro7reshape4EvalEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::ops::micro::reshape::Eval(TfLiteContext*, TfLiteNode*) ⇒ tflite::ElementCount(const TfLiteIntArray&) +
    +
    [Calls]
    • >>   tflite::TfLiteTypeSizeOf(TfLiteType, unsigned*) +
    • >>   tflite::ElementCount(const TfLiteIntArray&) +
    +
    [Address Reference Count : 1]
    • reshape.o(.text._ZN6tflite3ops5micro16Register_RESHAPEEv) +
    +

    tflite::ops::micro::reshape::Prepare(TfLiteContext*, TfLiteNode*) (Thumb, 308 bytes, Stack size 40 bytes, reshape.o(.text._ZN6tflite3ops5micro7reshape7PrepareEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = tflite::ops::micro::reshape::Prepare(TfLiteContext*, TfLiteNode*) ⇒ tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    +
    [Calls]
    • >>   tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    +
    [Address Reference Count : 1]
    • reshape.o(.text._ZN6tflite3ops5micro16Register_RESHAPEEv) +
    +

    tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) (Thumb, 30 bytes, Stack size 0 bytes, kernel_util.o(.text._ZN6tflite8GetInputEPK13TfLiteContextPK10TfLiteNodei)) +

    [Called By]

    • >>   tflite::ops::micro::conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::conv::CalculateOpData(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, int, int, int, int, int, int, TfLiteType, tflite::ops::micro::conv::OpData*) +
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::pooling::AveragePrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::internal::ContextHelper::GetEvalTensor(const TfLiteContext*, int) (Thumb, 14 bytes, Stack size 0 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper13GetEvalTensorEPK13TfLiteContexti)) +
    [Address Reference Count : 1]

    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreterC2EPKNS_5ModelERKNS_15MicroOpResolverEPhjPNS_13ErrorReporterEPNS_8ProfilerE) +
    +

    tflite::internal::ContextHelper::ReportOpError(TfLiteContext*, const char*, ...) (Thumb, 34 bytes, Stack size 24 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper13ReportOpErrorEP13TfLiteContextPKcz)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tflite::internal::ContextHelper::ReportOpError(TfLiteContext*, const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreterC2EPKNS_5ModelERKNS_15MicroOpResolverEPhjPNS_13ErrorReporterEPNS_8ProfilerE) +
    +

    tflite::internal::ContextHelper::GetScratchBuffer(TfLiteContext*, int) (Thumb, 8 bytes, Stack size 0 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper16GetScratchBufferEP13TfLiteContexti)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = tflite::internal::ContextHelper::GetScratchBuffer(TfLiteContext*, int) ⇒ tflite::MicroAllocator::GetScratchBuffer(int) const ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::MicroAllocator::GetScratchBuffer(int) const +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreter15AllocateTensorsEv) +
    +

    tflite::internal::ContextHelper::AllocatePersistentBuffer(TfLiteContext*, unsigned) (Thumb, 8 bytes, Stack size 0 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper24AllocatePersistentBufferEP13TfLiteContextj)) +

    [Calls]

    • >>   tflite::MicroAllocator::AllocatePersistentBuffer(unsigned) +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreter15AllocateTensorsEv) +
    +

    tflite::internal::ContextHelper::RequestScratchBufferInArena(TfLiteContext*, unsigned, int*) (Thumb, 16 bytes, Stack size 0 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper27RequestScratchBufferInArenaEP13TfLiteContextjPi)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::internal::ContextHelper::RequestScratchBufferInArena(TfLiteContext*, unsigned, int*) ⇒ tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreter15AllocateTensorsEv) +
    +

    tflite::internal::ContextHelper::GetTensor(const TfLiteContext*, int) (Thumb, 26 bytes, Stack size 8 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper9GetTensorEPK13TfLiteContexti)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = tflite::internal::ContextHelper::GetTensor(const TfLiteContext*, int) +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreterC2EPKNS_5ModelERKNS_15MicroOpResolverEPhjPNS_13ErrorReporterEPNS_8ProfilerE) +
    +

    tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) (Thumb, 848 bytes, Stack size 48 bytes, micro_allocator.o(.text._ZN6tflite8internal36InitializeTfLiteTensorFromFlatbufferEPNS_21SimpleMemoryAllocatorEbRKNS_6TensorEPKN11flatbuffers6VectorINS6_6OffsetINS_6BufferEEEEEPNS_13ErrorReporterEP12TfLiteTensor)) +

    [Stack]

    • Max Depth = 136
    • Call Chain = tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) ⇒ tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) ⇒ tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) +
    • >>   tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) +
    • >>   TfLiteIntArrayGetSizeInBytes +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   tflite::MicroAllocator::PopulateTfLiteTensorFromFlatbuffer(const tflite::Model*, const tflite::SubGraph*, TfLiteTensor*, int, bool) +
    + +

    tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) (Thumb, 30 bytes, Stack size 0 bytes, kernel_util.o(.text._ZN6tflite9GetOutputEP13TfLiteContextPK10TfLiteNodei)) +

    [Called By]

    • >>   tflite::ops::micro::conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::conv::CalculateOpData(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, int, int, int, int, int, int, TfLiteType, tflite::ops::micro::conv::OpData*) +
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::pooling::AveragePrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ParsePool(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) (Thumb, 318 bytes, Stack size 24 bytes, flatbuffer_conversions.o(.text._ZN6tflite9ParsePoolEPKNS_8OperatorEPNS_13ErrorReporterEPNS_20BuiltinDataAllocatorEPPv)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::ParsePool(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) ⇒ tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Address Reference Count : 1]
    • main_functions.o(.text._ZN6tflite22MicroMutableOpResolverILj5EE16AddAveragePool2DEv) +
    +

    gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::exp_on_negative_values⟨int, (int)5⟩(gemmlowp::FixedPoint⟨T1, T2⟩) (Thumb, 888 bytes, Stack size 28 bytes, softmax.o(.text._ZN8gemmlowp22exp_on_negative_valuesIiLi5EEENS_10FixedPointIT_Li0EEENS1_IS2_XT0_EEE)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::exp_on_negative_values⟨int, (int)5⟩(gemmlowp::FixedPoint⟨T1, T2⟩) +
    +
    [Called By]
    • >>   void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    • >>   void tflite::reference_ops::Softmax⟨signed char, short⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    + +

    gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) (Thumb, 1456 bytes, Stack size 36 bytes, softmax.o(.text._ZN8gemmlowp32one_over_one_plus_x_for_x_in_0_1IiEENS_10FixedPointIT_Li0EEES3_)) +

    [Stack]

    • Max Depth = 36
    • Call Chain = gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    +
    [Called By]
    • >>   void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    • >>   void tflite::reference_ops::Softmax⟨signed char, short⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    + +

    __cxxabiv1::__shim_type_info::noop1() const (Thumb, 2 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv116__shim_type_info5noop1Ev)) +
    [Address Reference Count : 3]

    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__shim_type_info::noop2() const (Thumb, 2 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv116__shim_type_info5noop2Ev)) +
    [Address Reference Count : 3]

    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const (Thumb, 54 bytes, Stack size 16 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __cxxabiv1::__class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    • >>   __cxxabiv1::__class_type_info::process_static_type_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    +

    __cxxabiv1::__class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const (Thumb, 162 bytes, Stack size 24 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxxabiv1::__class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    +

    __cxxabiv1::__class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const (Thumb, 68 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __cxxabiv1::__class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    +

    __cxxabiv1::__class_type_info::process_static_type_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int) const (Thumb, 98 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __cxxabiv1::__class_type_info::process_static_type_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int) const +
    +
    [Called By]
    • >>   __cxxabiv1::__vmi_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    • >>   __cxxabiv1::__si_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    • >>   __cxxabiv1::__class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    + +

    __cxxabiv1::__class_type_info::can_catch(const __cxxabiv1::__shim_type_info*, void*&) const (Thumb, 110 bytes, Stack size 80 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv)) +

    [Stack]

    • Max Depth = 172
    • Call Chain = __cxxabiv1::__class_type_info::can_catch(const __cxxabiv1::__shim_type_info*, void*&) const ⇒ __dynamic_cast ⇒ __aeabi_memclr4 +
    +
    [Calls]
    • >>   __aeabi_memclr4 +
    • >>   __dynamic_cast +
    +
    [Address Reference Count : 3]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__si_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const (Thumb, 86 bytes, Stack size 40 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = __cxxabiv1::__si_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    • >>   __cxxabiv1::__class_type_info::process_static_type_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    +

    __cxxabiv1::__si_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const (Thumb, 226 bytes, Stack size 40 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = __cxxabiv1::__si_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    +

    __cxxabiv1::__si_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const (Thumb, 82 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __cxxabiv1::__si_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    +

    __cxxabiv1::__vmi_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const (Thumb, 310 bytes, Stack size 56 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = __cxxabiv1::__vmi_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    • >>   __cxxabiv1::__class_type_info::process_static_type_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__vmi_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const (Thumb, 618 bytes, Stack size 48 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = __cxxabiv1::__vmi_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__vmi_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const (Thumb, 132 bytes, Stack size 32 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = __cxxabiv1::__vmi_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const ⇒ __cxxabiv1::__base_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    +
    [Calls]
    • >>   __cxxabiv1::__base_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__base_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const (Thumb, 54 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __cxxabiv1::__base_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    +
    [Called By]
    • >>   __cxxabiv1::__vmi_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    + +

    tflite::MicroAllocator::GetScratchBuffer(int) const (Thumb, 84 bytes, Stack size 8 bytes, micro_allocator.o(.text._ZNK6tflite14MicroAllocator16GetScratchBufferEi)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = tflite::MicroAllocator::GetScratchBuffer(int) const ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   tflite::internal::ContextHelper::GetScratchBuffer(TfLiteContext*, int) +
    + +

    tflite::MicroOpResolver::FindOp(tflite::BuiltinOperator, int) const (Thumb, 6 bytes, Stack size 0 bytes, main_functions.o(.text._ZNK6tflite15MicroOpResolver6FindOpENS_15BuiltinOperatorEi)) +
    [Address Reference Count : 1]

    • main_functions.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj5EEE) +
    +

    tflite::MicroOpResolver::FindOp(const char*, int) const (Thumb, 6 bytes, Stack size 0 bytes, main_functions.o(.text._ZNK6tflite15MicroOpResolver6FindOpEPKci)) +
    [Address Reference Count : 1]

    • main_functions.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj5EEE) +
    +

    tflite::SimpleMemoryAllocator::GetBufferHead() const (Thumb, 4 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZNK6tflite21SimpleMemoryAllocator13GetBufferHeadEv)) +

    [Called By]

    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::SimpleMemoryAllocator::GetAvailableMemory(unsigned) const (Thumb, 28 bytes, Stack size 16 bytes, simple_memory_allocator.o(.text._ZNK6tflite21SimpleMemoryAllocator18GetAvailableMemoryEj)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::SimpleMemoryAllocator::GetAvailableMemory(unsigned) const +
    +
    [Calls]
    • >>   tflite::AlignPointerDown(unsigned char*, unsigned) +
    • >>   tflite::AlignPointerUp(unsigned char*, unsigned) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::SimpleMemoryAllocator::GetTail() const (Thumb, 4 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZNK6tflite21SimpleMemoryAllocator7GetTailEv)) +

    [Called By]

    • >>   tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) +
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)5⟩::GetOpDataParser(tflite::BuiltinOperator) const (Thumb, 122 bytes, Stack size 16 bytes, main_functions.o(.text._ZNK6tflite22MicroMutableOpResolverILj5EE15GetOpDataParserENS_15BuiltinOperatorE)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)5⟩::GetOpDataParser(tflite::BuiltinOperator) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    +
    [Address Reference Count : 1]
    • main_functions.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj5EEE) +
    +

    tflite::MicroMutableOpResolver⟨(unsigned)5⟩::FindOp(tflite::BuiltinOperator) const (Thumb, 114 bytes, Stack size 8 bytes, main_functions.o(.text._ZNK6tflite22MicroMutableOpResolverILj5EE6FindOpENS_15BuiltinOperatorE)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)5⟩::FindOp(tflite::BuiltinOperator) const +
    +
    [Address Reference Count : 1]
    • main_functions.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj5EEE) +
    +

    tflite::MicroMutableOpResolver⟨(unsigned)5⟩::FindOp(const char*) const (Thumb, 64 bytes, Stack size 24 bytes, main_functions.o(.text._ZNK6tflite22MicroMutableOpResolverILj5EE6FindOpEPKc)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)5⟩::FindOp(const char*) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Address Reference Count : 1]
    • main_functions.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj5EEE) +
    +

    std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const (Thumb, 94 bytes, Stack size 136 bytes, locale.cpp.o(.text._ZNKSt3__110__time_put8__do_putEPwRS1_PKSt2tmcc)) +

    [Stack]

    • Max Depth = 344 + Unknown Stack Size +
    • Call Chain = std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const ⇒ strftime ⇒ sprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   abort +
    • >>   strftime +
    • >>   mbsrtowcs +
    +
    [Called By]
    • >>   std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const std::tm*, char, char) const +
    + +

    std::__1::moneypunct⟨char, (bool)0⟩::do_grouping() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE11do_groupingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_neg_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE13do_neg_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_pos_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE13do_pos_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_curr_symbol() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE14do_curr_symbolEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_frac_digits() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE14do_frac_digitsEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_decimal_point() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_negative_sign() const (Thumb, 12 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE16do_negative_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_positive_sign() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE16do_positive_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_thousands_sep() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_grouping() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE11do_groupingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_neg_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE13do_neg_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_pos_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE13do_pos_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_curr_symbol() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE14do_curr_symbolEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_frac_digits() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE14do_frac_digitsEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_decimal_point() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_negative_sign() const (Thumb, 12 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE16do_negative_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_positive_sign() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE16do_positive_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_thousands_sep() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_grouping() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE11do_groupingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_neg_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE13do_neg_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_pos_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE13do_pos_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_curr_symbol() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE14do_curr_symbolEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_frac_digits() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE14do_frac_digitsEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_decimal_point() const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_negative_sign() const (Thumb, 24 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE16do_negative_signEv)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_negative_sign() const ⇒ wmemset +
    +
    [Calls]
    • >>   wmemset +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_positive_sign() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE16do_positive_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_thousands_sep() const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_grouping() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE11do_groupingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_neg_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE13do_neg_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_pos_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE13do_pos_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_curr_symbol() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE14do_curr_symbolEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_frac_digits() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE14do_frac_digitsEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_decimal_point() const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_negative_sign() const (Thumb, 24 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE16do_negative_signEv)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_negative_sign() const ⇒ wmemset +
    +
    [Calls]
    • >>   wmemset +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_positive_sign() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE16do_positive_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_thousands_sep() const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__X() const (Thumb, 124 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__XEv)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__X() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__c() const (Thumb, 144 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__cEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__c() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __aeabi_memcpy +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__r() const (Thumb, 132 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__rEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__r() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __aeabi_memcpy +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__x() const (Thumb, 124 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__xEv)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__x() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__am_pm() const (Thumb, 184 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE7__am_pmEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__am_pm() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__weeks() const (Thumb, 392 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE7__weeksEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__weeks() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__months() const (Thumb, 556 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE8__monthsEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__months() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const (Thumb, 126 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__XEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __cxa_atexit +
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const (Thumb, 126 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__cEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __cxa_atexit +
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const (Thumb, 144 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__rEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __cxa_atexit +
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const (Thumb, 126 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__xEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __cxa_atexit +
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const (Thumb, 186 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE7__am_pmEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const (Thumb, 416 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE7__weeksEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const (Thumb, 608 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE8__monthsEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__vector_base_common⟨(bool)1⟩::__throw_length_error() const (Thumb, 4 bytes, Stack size 0 bytes, vector.cpp.o(.text._ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv), UNUSED) +

    [Calls]

    • >>   abort +
    +
    [Called By]
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    + +

    std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const (Thumb, 4 bytes, Stack size 0 bytes, string.cpp.o(.text._ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    +
    [Called By]
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    • >>   std::__1::collate⟨wchar_t⟩::do_transform(const wchar_t*, const wchar_t*) const +
    • >>   std::__1::collate⟨char⟩::do_transform(const char*, const char*) const +
    + +

    std::__1::ctype⟨char⟩::do_tolower(char*, const char*) const (Thumb, 54 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE10do_tolowerEPcPKc)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨char⟩::do_tolower(char*, const char*) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_tolower(char) const (Thumb, 36 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE10do_tolowerEc)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨char⟩::do_tolower(char) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_toupper(char*, const char*) const (Thumb, 54 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE10do_toupperEPcPKc)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨char⟩::do_toupper(char*, const char*) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_toupper(char) const (Thumb, 36 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE10do_toupperEc)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨char⟩::do_toupper(char) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_widen(const char*, const char*, char*) const (Thumb, 24 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE8do_widenEPKcS3_Pc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_widen(char) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE8do_widenEc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_narrow(const char*, const char*, char, char*) const (Thumb, 36 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE9do_narrowEPKcS3_cPc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_narrow(char, char) const (Thumb, 14 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE9do_narrowEcc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_scan_is(unsigned long, const wchar_t*, const wchar_t*) const (Thumb, 42 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE10do_scan_isEmPKwS3_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t*, const wchar_t*) const (Thumb, 52 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE10do_tolowerEPwPKw)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t*, const wchar_t*) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t) const (Thumb, 34 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE10do_tolowerEw)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t*, const wchar_t*) const (Thumb, 52 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE10do_toupperEPwPKw)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t*, const wchar_t*) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t) const (Thumb, 32 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE10do_toupperEw)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   iswlower +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_scan_not(unsigned long, const wchar_t*, const wchar_t*) const (Thumb, 42 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE11do_scan_notEmPKwS3_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_is(const wchar_t*, const wchar_t*, unsigned long*) const (Thumb, 42 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE5do_isEPKwS3_Pm)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_is(unsigned long, wchar_t) const (Thumb, 28 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE5do_isEmw)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_widen(const char*, const char*, wchar_t*) const (Thumb, 24 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE8do_widenEPKcS3_Pw)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_widen(char) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE8do_widenEc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_narrow(const wchar_t*, const wchar_t*, char, char*) const (Thumb, 34 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE9do_narrowEPKwS3_cPc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_narrow(wchar_t, char) const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE9do_narrowEwc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::locale::use_facet(std::__1::locale::id&) const (Thumb, 34 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__16locale9use_facetERNS0_2idE)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    • >>   std::__1::locale::id::__get() +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::imbue(const std::__1::locale&) +
    • >>   std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdoutbuf⟨char⟩::imbue(const std::__1::locale&) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::imbue(const std::__1::locale&) +
    • >>   std::__1::__stdinbuf⟨char⟩::imbue(const std::__1::locale&) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::__money_get⟨wchar_t⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__money_get⟨char⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    + +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const (Thumb, 8 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE10do_unshiftERS1_PcS4_RS4_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_encoding() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE11do_encodingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_max_length() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE13do_max_lengthEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_always_noconv() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE16do_always_noconvEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char32_t*, char32_t*, char32_t*&) const (Thumb, 64 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE5do_inERS1_PKcS5_RS5_PDiS7_RS7_)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char32_t*, char32_t*, char32_t*&) const ⇒ _ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char32_t*, const char32_t*, const char32_t*&, char*, char*, char*&) const (Thumb, 64 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE6do_outERS1_PKDiS5_RS5_PcS7_RS7_)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char32_t*, const char32_t*, const char32_t*&, char*, char*, char*&) const ⇒ _ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const (Thumb, 38 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE9do_lengthERS1_PKcS5_j)) +

    [Stack]

    • Max Depth = 44
    • Call Chain = std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const ⇒ _ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const (Thumb, 8 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE10do_unshiftERS1_PcS4_RS4_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_encoding() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE11do_encodingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_max_length() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE13do_max_lengthEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_always_noconv() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE16do_always_noconvEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char16_t*, char16_t*, char16_t*&) const (Thumb, 64 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE5do_inERS1_PKcS5_RS5_PDsS7_RS7_)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char16_t*, char16_t*, char16_t*&) const ⇒ _ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char16_t*, const char16_t*, const char16_t*&, char*, char*, char*&) const (Thumb, 64 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE6do_outERS1_PKDsS5_RS5_PcS7_RS7_)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char16_t*, const char16_t*, const char16_t*&, char*, char*, char*&) const ⇒ _ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const (Thumb, 38 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE9do_lengthERS1_PKcS5_j)) +

    [Stack]

    • Max Depth = 44
    • Call Chain = std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const ⇒ _ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const (Thumb, 8 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE10do_unshiftERS1_PcS4_RS4_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_encoding() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE11do_encodingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_max_length() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE13do_max_lengthEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_always_noconv() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE16do_always_noconvEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char*, char*, char*&) const (Thumb, 14 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE5do_inERS1_PKcS5_RS5_PcS7_RS7_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char*, const char*, const char*&, char*, char*, char*&) const (Thumb, 14 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE6do_outERS1_PKcS5_RS5_PcS7_RS7_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const (Thumb, 12 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE9do_lengthERS1_PKcS5_j)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const (Thumb, 90 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE10do_unshiftERS1_PcS4_RS4_)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const ⇒ wcrtomb ⇒ c16rtomb ⇒ _c16rtomb ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   wcrtomb +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_encoding() const (Thumb, 44 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE11do_encodingEv)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_encoding() const ⇒ mbtowc ⇒ _mbrtowc +
    +
    [Calls]
    • >>   __aeabi_MB_CUR_MAX +
    • >>   mbtowc +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_max_length() const (Thumb, 14 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE13do_max_lengthEv)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_max_length() const ⇒ __aeabi_MB_CUR_MAX ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __aeabi_MB_CUR_MAX +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_always_noconv() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE16do_always_noconvEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, wchar_t*, wchar_t*, wchar_t*&) const (Thumb, 280 bytes, Stack size 56 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE5do_inERS1_PKcS5_RS5_PwS7_RS7_)) +

    [Stack]

    • Max Depth = 120
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, wchar_t*, wchar_t*, wchar_t*&) const ⇒ _mbsnrtowcs ⇒ _mbrtowc +
    +
    [Calls]
    • >>   _mbsnrtowcs +
    • >>   mbrtowc +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, char*, char*, char*&) const (Thumb, 306 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE6do_outERS1_PKwS5_RS5_PcS7_RS7_)) +

    [Stack]

    • Max Depth = 152
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, char*, char*, char*&) const ⇒ _wcsnrtombs ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _wcsnrtombs +
    • >>   wcrtomb +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const (Thumb, 82 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE9do_lengthERS1_PKcS5_j)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const ⇒ mbrlen ⇒ mbrtowc ⇒ mbrtoc16 ⇒ _mbrtoc16 ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   mbrlen +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::collate⟨char⟩::do_compare(const char*, const char*, const char*, const char*) const (Thumb, 58 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__17collateIcE10do_compareEPKcS3_S3_S3_)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::collate⟨char⟩::do_compare(const char*, const char*, const char*, const char*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    +

    std::__1::collate⟨char⟩::do_transform(const char*, const char*) const (Thumb, 86 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__17collateIcE12do_transformEPKcS3_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::collate⟨char⟩::do_transform(const char*, const char*) const ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    +

    std::__1::collate⟨char⟩::do_hash(const char*, const char*) const (Thumb, 34 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17collateIcE7do_hashEPKcS3_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    +

    std::__1::collate⟨wchar_t⟩::do_compare(const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*) const (Thumb, 58 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__17collateIwE10do_compareEPKwS3_S3_S3_)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::collate⟨wchar_t⟩::do_compare(const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    +

    std::__1::collate⟨wchar_t⟩::do_transform(const wchar_t*, const wchar_t*) const (Thumb, 110 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__17collateIwE12do_transformEPKwS3_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::collate⟨wchar_t⟩::do_transform(const wchar_t*, const wchar_t*) const ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    • >>   abort +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    +

    std::__1::collate⟨wchar_t⟩::do_hash(const wchar_t*, const wchar_t*) const (Thumb, 34 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17collateIwE7do_hashEPKwS3_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long long&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 538 bytes, Stack size 312 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 804 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) ⇒ strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_loop(char, bool&, char&, char*, char*&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, char*) +
    • >>   T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, double&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 538 bytes, Stack size 312 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 804 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) ⇒ strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_loop(char, bool&, char&, char*, char*&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, char*) +
    • >>   T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long double&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 536 bytes, Stack size 312 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 796 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) ⇒ strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_loop(char, bool&, char&, char*, char*&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, char*) +
    • >>   T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, float&) const +
    + +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const (Thumb, 540 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRPv)) +

    [Stack]

    • Max Depth = 796 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const ⇒ std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) ⇒ __ARM_vsscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    • >>   std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const (Thumb, 252 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRb)) +

    [Stack]

    • Max Depth = 280 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, double&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRd)) +

    [Stack]

    • Max Depth = 804 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, double&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) ⇒ strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long double&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRe)) +

    [Stack]

    • Max Depth = 804 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long double&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) ⇒ strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, float&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRf)) +

    [Stack]

    • Max Depth = 796 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, float&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) ⇒ strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRl)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRm)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRt)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRx)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long long&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRy)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjS8_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long long&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 534 bytes, Stack size 344 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 836 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) ⇒ strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_loop(wchar_t, bool&, char&, char*, char*&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, wchar_t*) +
    • >>   T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, double&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 534 bytes, Stack size 344 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 836 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) ⇒ strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_loop(wchar_t, bool&, char&, char*, char*&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, wchar_t*) +
    • >>   T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long double&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 532 bytes, Stack size 344 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 828 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) ⇒ strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_loop(wchar_t, bool&, char&, char*, char*&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, wchar_t*) +
    • >>   T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, float&) const +
    + +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const (Thumb, 532 bytes, Stack size 312 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRPv)) +

    [Stack]

    • Max Depth = 820 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const ⇒ std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) ⇒ __ARM_vsscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    • >>   std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const (Thumb, 252 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRb)) +

    [Stack]

    • Max Depth = 280 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, double&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRd)) +

    [Stack]

    • Max Depth = 836 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, double&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) ⇒ strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long double&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRe)) +

    [Stack]

    • Max Depth = 836 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long double&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) ⇒ strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, float&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRf)) +

    [Stack]

    • Max Depth = 828 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, float&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) ⇒ strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRl)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRm)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRt)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRx)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long long&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRy)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjS8_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const (Thumb, 154 bytes, Stack size 120 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcPKv)) +

    [Stack]

    • Max Depth = 264 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const (Thumb, 188 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcb)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const (Thumb, 300 bytes, Stack size 184 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcd)) +

    [Stack]

    • Max Depth = 352 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__throw_bad_alloc() +
    • >>   free +
    • >>   malloc +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_float(char*, const char*, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const (Thumb, 300 bytes, Stack size 184 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEce)) +

    [Stack]

    • Max Depth = 352 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__throw_bad_alloc() +
    • >>   free +
    • >>   malloc +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_float(char*, const char*, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const (Thumb, 224 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcl)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const (Thumb, 210 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcm)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const (Thumb, 216 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcx)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const (Thumb, 218 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcy)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const (Thumb, 156 bytes, Stack size 160 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwPKv)) +

    [Stack]

    • Max Depth = 304 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const (Thumb, 190 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwb)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const (Thumb, 304 bytes, Stack size 240 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwd)) +

    [Stack]

    • Max Depth = 408 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__throw_bad_alloc() +
    • >>   free +
    • >>   malloc +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_float(char*, const char*, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const (Thumb, 304 bytes, Stack size 240 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwe)) +

    [Stack]

    • Max Depth = 408 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__throw_bad_alloc() +
    • >>   free +
    • >>   malloc +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_float(char*, const char*, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const (Thumb, 224 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwl)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const (Thumb, 210 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwm)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const (Thumb, 228 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwx)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const (Thumb, 232 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwy)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::ios_base::getloc() const (Thumb, 10 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNKSt3__18ios_base6getlocEv)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::ios_base::getloc() const ⇒ std::__1::locale::locale(const std::__1::locale&) +
    +
    [Calls]
    • >>   std::__1::locale::locale(const std::__1::locale&) +
    +
    [Called By]
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    + +

    std::__1::messages⟨char⟩::do_get(int, int, int, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const (Thumb, 10 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIcE6do_getEiiiRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::messages⟨char⟩::do_get(int, int, int, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    +

    std::__1::messages⟨char⟩::do_open(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::locale&) const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIcE7do_openERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNS_6localeE)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    +

    std::__1::messages⟨char⟩::do_close(int) const (Thumb, 2 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIcE8do_closeEi)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    +

    std::__1::messages⟨wchar_t⟩::do_get(int, int, int, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const (Thumb, 10 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIwE6do_getEiiiRKNS_12basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::messages⟨wchar_t⟩::do_get(int, int, int, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::messages⟨wchar_t⟩::do_open(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::locale&) const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIwE7do_openERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNS_6localeE)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::messages⟨wchar_t⟩::do_close(int) const (Thumb, 2 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIwE8do_closeEi)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::numpunct⟨char⟩::do_grouping() const (Thumb, 10 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIcE11do_groupingEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::numpunct⟨char⟩::do_grouping() const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨char⟩::do_truename() const (Thumb, 20 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIcE11do_truenameEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨char⟩::do_falsename() const (Thumb, 32 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIcE12do_falsenameEv)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::numpunct⟨char⟩::do_falsename() const +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨char⟩::do_decimal_point() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIcE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨char⟩::do_thousands_sep() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIcE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::do_grouping() const (Thumb, 10 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIwE11do_groupingEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::numpunct⟨wchar_t⟩::do_grouping() const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::do_truename() const (Thumb, 30 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIwE11do_truenameEv)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::numpunct⟨wchar_t⟩::do_truename() const ⇒ wmemcpy ⇒ memcpy +
    +
    [Calls]
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::do_falsename() const (Thumb, 48 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIwE12do_falsenameEv)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = std::__1::numpunct⟨wchar_t⟩::do_falsename() const ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::do_decimal_point() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIwE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::do_thousands_sep() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIwE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 60 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE10__get_yearERiRS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Calls]
    • >>   int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 122 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11__get_am_pmERiRS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_dateES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 160 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 50 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_timeES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 152 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_yearES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 226 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13__get_percentERS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_date_order() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13do_date_orderEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE14do_get_weekdayES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 288 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 110 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__get_monthnameERiRS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE16do_get_monthnameES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 288 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 110 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__get_weekdaynameERiRS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 226 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__get_white_spaceERS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const (Thumb, 652 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjPSt2tmPKcSC_)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const (Thumb, 916 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjPSt2tmcc)) +

    [Stack]

    • Max Depth = 320 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 60 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE10__get_yearERiRS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Calls]
    • >>   int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 122 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11__get_am_pmERiRS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 80 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_dateES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 160 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 52 bytes, Stack size 56 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_timeES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 168 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_yearES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 226 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13__get_percentERS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_date_order() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13do_date_orderEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE14do_get_weekdayES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 288 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 110 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__get_monthnameERiRS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE16do_get_monthnameES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 288 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 110 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__get_weekdaynameERiRS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 222 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__get_white_spaceERS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const (Thumb, 612 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjPSt2tmPKwSC_)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const (Thumb, 898 bytes, Stack size 80 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjPSt2tmcc)) +

    [Stack]

    • Max Depth = 328 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const std::tm*, char, char) const (Thumb, 114 bytes, Stack size 120 bytes, locale.cpp.o(.text._ZNKSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcPKSt2tmcc)) +

    [Stack]

    • Max Depth = 328 + Unknown Stack Size +
    • Call Chain = std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const std::tm*, char, char) const ⇒ strftime ⇒ sprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   strftime +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const std::tm*, char, char) const (Thumb, 96 bytes, Stack size 232 bytes, locale.cpp.o(.text._ZNKSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwPKSt2tmcc)) +

    [Stack]

    • Max Depth = 576 + Unknown Stack Size +
    • Call Chain = std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const std::tm*, char, char) const ⇒ std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const ⇒ strftime ⇒ sprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const (Thumb, 298 bytes, Stack size 184 bytes, locale.cpp.o(.text._ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIcS3_NS_9allocatorIcEEEE)) +

    [Stack]

    • Max Depth = 888 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const ⇒ std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const (Thumb, 406 bytes, Stack size 312 bytes, locale.cpp.o(.text._ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe)) +

    [Stack]

    • Max Depth = 1016 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const ⇒ std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   abort +
    • >>   free +
    • >>   malloc +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   __0sscanf +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const (Thumb, 298 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIwS3_NS_9allocatorIwEEEE)) +

    [Stack]

    • Max Depth = 1000 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const ⇒ std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const (Thumb, 406 bytes, Stack size 416 bytes, locale.cpp.o(.text._ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe)) +

    [Stack]

    • Max Depth = 1128 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const ⇒ std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   abort +
    • >>   free +
    • >>   malloc +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   __0sscanf +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const (Thumb, 432 bytes, Stack size 256 bytes, locale.cpp.o(.text._ZNKSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_bRNS_8ios_baseEcRKNS_12basic_stringIcS3_NS_9allocatorIcEEEE)) +

    [Stack]

    • Max Depth = 360 + Unknown Stack Size +
    • Call Chain = std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const ⇒ std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   free +
    • >>   malloc +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__money_put⟨char⟩::__format(char*, char*&, char*&, unsigned, const char*, const char*, const std::__1::ctype⟨char⟩&, bool, const std::__1::money_base::pattern&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int) +
    • >>   std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const (Thumb, 508 bytes, Stack size 464 bytes, locale.cpp.o(.text._ZNKSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_bRNS_8ios_baseEce)) +

    [Stack]

    • Max Depth = 632 + Unknown Stack Size +
    • Call Chain = std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   free +
    • >>   malloc +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__money_put⟨char⟩::__format(char*, char*&, char*&, unsigned, const char*, const char*, const std::__1::ctype⟨char⟩&, bool, const std::__1::money_base::pattern&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int) +
    • >>   std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   __ARM_snprintf +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const (Thumb, 432 bytes, Stack size 352 bytes, locale.cpp.o(.text._ZNKSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_bRNS_8ios_baseEwRKNS_12basic_stringIwS3_NS_9allocatorIwEEEE)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const ⇒ std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   free +
    • >>   malloc +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__format(wchar_t*, wchar_t*&, wchar_t*&, unsigned, const wchar_t*, const wchar_t*, const std::__1::ctype⟨wchar_t⟩&, bool, const std::__1::money_base::pattern&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const (Thumb, 514 bytes, Stack size 664 bytes, locale.cpp.o(.text._ZNKSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_bRNS_8ios_baseEwe)) +

    [Stack]

    • Max Depth = 832 + Unknown Stack Size +
    • Call Chain = std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   free +
    • >>   malloc +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__format(wchar_t*, wchar_t*&, wchar_t*&, unsigned, const wchar_t*, const wchar_t*, const std::__1::ctype⟨wchar_t⟩&, bool, const std::__1::money_base::pattern&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   __ARM_snprintf +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__stdinbuf⟨char⟩::imbue(const std::__1::locale&) (Thumb, 64 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcE5imbueERKNS_6localeE)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = std::__1::__stdinbuf⟨char⟩::imbue(const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__throw_runtime_error(const char*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    +

    std::__1::__stdinbuf⟨char⟩::uflow() (Thumb, 6 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcE5uflowEv)) +
    [Address Reference Count : 1]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    +

    std::__1::__stdinbuf⟨char⟩::__getchar(bool) (Thumb, 234 bytes, Stack size 72 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcE9__getcharEb)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::__stdinbuf⟨char⟩::__getchar(bool) ⇒ getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   ungetc +
    • >>   getc +
    +
    [Called By]
    • >>   std::__1::__stdinbuf⟨char⟩::underflow() +
    + +

    std::__1::__stdinbuf⟨char⟩::pbackfail(int) (Thumb, 142 bytes, Stack size 64 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcE9pbackfailEi)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = std::__1::__stdinbuf⟨char⟩::pbackfail(int) +
    +
    [Calls]
    • >>   ungetc +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    +

    std::__1::__stdinbuf⟨char⟩::underflow() (Thumb, 6 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcE9underflowEv)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::__stdinbuf⟨char⟩::underflow() ⇒ std::__1::__stdinbuf⟨char⟩::__getchar(bool) ⇒ getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   std::__1::__stdinbuf⟨char⟩::__getchar(bool) +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    +

    std::__1::__stdinbuf⟨char⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) (Thumb, 74 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcEC2EPSt6__FILEPSt11__mbstate_t), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    • >>   std::__1::locale::locale(const std::__1::locale&) +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf__sub_object() +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::DoIOSInit() +
    + +

    std::__1::__stdinbuf⟨char⟩::~__stdinbuf__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__stdinbuf⟨char⟩::~__stdinbuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    +

    std::__1::__stdinbuf⟨wchar_t⟩::imbue(const std::__1::locale&) (Thumb, 64 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwE5imbueERKNS_6localeE)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::imbue(const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__throw_runtime_error(const char*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    +

    std::__1::__stdinbuf⟨wchar_t⟩::uflow() (Thumb, 6 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwE5uflowEv)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::uflow() ⇒ std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) ⇒ getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    +

    std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) (Thumb, 234 bytes, Stack size 72 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwE9__getcharEb)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) ⇒ getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   ungetc +
    • >>   getc +
    +
    [Called By]
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::underflow() +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::uflow() +
    + +

    std::__1::__stdinbuf⟨wchar_t⟩::pbackfail(int) (Thumb, 142 bytes, Stack size 64 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwE9pbackfailEi)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::pbackfail(int) +
    +
    [Calls]
    • >>   ungetc +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    +

    std::__1::__stdinbuf⟨wchar_t⟩::underflow() (Thumb, 6 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwE9underflowEv)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::underflow() ⇒ std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) ⇒ getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    +

    std::__1::__stdinbuf⟨wchar_t⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) (Thumb, 74 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwEC2EPSt6__FILEPSt11__mbstate_t), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    • >>   std::__1::locale::locale(const std::__1::locale&) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf__sub_object() +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::DoIOSInit() +
    + +

    std::__1::__stdinbuf⟨wchar_t⟩::~__stdinbuf__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::~__stdinbuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb0EED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb0EED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb0EED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb1EED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb1EED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb1EED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb0EED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb0EED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb0EED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb1EED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb1EED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb1EED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::__call_once(volatile unsigned long&, void*, void(*)(void*)) (Thumb, 26 bytes, Stack size 8 bytes, mutex.cpp.o(.text._ZNSt3__111__call_onceERVmPvPFvS2_E)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::__call_once(volatile unsigned long&, void*, void(*)(void*)) +
    +
    [Called By]
    • >>   std::__1::locale::id::__get() +
    + +

    std::__1::__money_get⟨char⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) (Thumb, 270 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__111__money_getIcE13__gather_infoEbRKNS_6localeERNS_10money_base7patternERcS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESF_SF_SF_Ri)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::__money_get⟨char⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    + +

    std::__1::__money_get⟨wchar_t⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) (Thumb, 270 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__111__money_getIwE13__gather_infoEbRKNS_6localeERNS_10money_base7patternERwS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS9_IwNSA_IwEENSC_IwEEEESJ_SJ_Ri)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::__money_get⟨wchar_t⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    + +

    std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) (Thumb, 264 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__111__money_putIcE13__gather_infoEbbRKNS_6localeERNS_10money_base7patternERcS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESF_SF_Ri)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    + +

    std::__1::__money_put⟨char⟩::__format(char*, char*&, char*&, unsigned, const char*, const char*, const std::__1::ctype⟨char⟩&, bool, const std::__1::money_base::pattern&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int) (Thumb, 776 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNSt3__111__money_putIcE8__formatEPcRS2_S3_jPKcS5_RKNS_5ctypeIcEEbRKNS_10money_base7patternEccRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESL_SL_i)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = std::__1::__money_put⟨char⟩::__format(char*, char*&, char*&, unsigned, const char*, const char*, const std::__1::ctype⟨char⟩&, bool, const std::__1::money_base::pattern&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int) +
    +
    [Calls]
    • >>   __aeabi_memmove +
    +
    [Called By]
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    + +

    std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) (Thumb, 264 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__111__money_putIwE13__gather_infoEbbRKNS_6localeERNS_10money_base7patternERwS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS9_IwNSA_IwEENSC_IwEEEESJ_Ri)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    + +

    std::__1::__money_put⟨wchar_t⟩::__format(wchar_t*, wchar_t*&, wchar_t*&, unsigned, const wchar_t*, const wchar_t*, const std::__1::ctype⟨wchar_t⟩&, bool, const std::__1::money_base::pattern&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int) (Thumb, 694 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNSt3__111__money_putIwE8__formatEPwRS2_S3_jPKwS5_RKNS_5ctypeIwEEbRKNS_10money_base7patternEwwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNSE_IwNSF_IwEENSH_IwEEEESQ_i)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = std::__1::__money_put⟨wchar_t⟩::__format(wchar_t*, wchar_t*&, wchar_t*&, unsigned, const wchar_t*, const wchar_t*, const std::__1::ctype⟨wchar_t⟩&, bool, const std::__1::money_base::pattern&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int) +
    +
    [Calls]
    • >>   __aeabi_memmove +
    +
    [Called By]
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    + +

    std::__1::__stdoutbuf⟨char⟩::sync() (Thumb, 94 bytes, Stack size 48 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcE4syncEv)) +

    [Stack]

    • Max Depth = 128
    • Call Chain = std::__1::__stdoutbuf⟨char⟩::sync() ⇒ fflush ⇒ _do_fflush ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   fwrite +
    • >>   fflush +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    +

    std::__1::__stdoutbuf⟨char⟩::imbue(const std::__1::locale&) (Thumb, 42 bytes, Stack size 16 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcE5imbueERKNS_6localeE)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::__stdoutbuf⟨char⟩::imbue(const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    +

    std::__1::__stdoutbuf⟨char⟩::xsputn(const char*, int) (Thumb, 68 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcE6xsputnEPKci)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = std::__1::__stdoutbuf⟨char⟩::xsputn(const char*, int) ⇒ fwrite ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fwrite +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    +

    std::__1::__stdoutbuf⟨char⟩::overflow(int) (Thumb, 160 bytes, Stack size 72 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcE8overflowEi)) +

    [Stack]

    • Max Depth = 136
    • Call Chain = std::__1::__stdoutbuf⟨char⟩::overflow(int) ⇒ fwrite ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fwrite +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    +

    std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) (Thumb, 82 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcEC2EPSt6__FILEPSt11__mbstate_t), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    • >>   std::__1::locale::locale(const std::__1::locale&) +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf__sub_object() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::DoIOSInit() +
    + +

    std::__1::__stdoutbuf⟨char⟩::~__stdoutbuf__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__stdoutbuf⟨char⟩::~__stdoutbuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    +

    std::__1::__stdoutbuf⟨wchar_t⟩::sync() (Thumb, 94 bytes, Stack size 48 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwE4syncEv)) +

    [Stack]

    • Max Depth = 128
    • Call Chain = std::__1::__stdoutbuf⟨wchar_t⟩::sync() ⇒ fflush ⇒ _do_fflush ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   fwrite +
    • >>   fflush +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    +

    std::__1::__stdoutbuf⟨wchar_t⟩::imbue(const std::__1::locale&) (Thumb, 42 bytes, Stack size 16 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwE5imbueERKNS_6localeE)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::__stdoutbuf⟨wchar_t⟩::imbue(const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    +

    std::__1::__stdoutbuf⟨wchar_t⟩::xsputn(const wchar_t*, int) (Thumb, 70 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwE6xsputnEPKwi)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = std::__1::__stdoutbuf⟨wchar_t⟩::xsputn(const wchar_t*, int) ⇒ fwrite ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fwrite +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    +

    std::__1::__stdoutbuf⟨wchar_t⟩::overflow(int) (Thumb, 162 bytes, Stack size 72 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwE8overflowEi)) +

    [Stack]

    • Max Depth = 136
    • Call Chain = std::__1::__stdoutbuf⟨wchar_t⟩::overflow(int) ⇒ fwrite ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fwrite +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    +

    std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) (Thumb, 82 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwEC2EPSt6__FILEPSt11__mbstate_t), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    • >>   std::__1::locale::locale(const std::__1::locale&) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf__sub_object() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::DoIOSInit() +
    + +

    std::__1::__stdoutbuf⟨wchar_t⟩::~__stdoutbuf__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__stdoutbuf⟨wchar_t⟩::~__stdoutbuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    +

    std::__1::__do_nothing(void*) (Thumb, 2 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__112__do_nothingEPv)) +
    [Address Reference Count : 9]

    • locale.cpp.o(.text._ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe) +
    • locale.cpp.o(.text._ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIcEERNS_10unique_ptrIcPFvPvEEERPcSM_) +
    • locale.cpp.o(.text._ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIcS3_NS_9allocatorIcEEEE) +
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIcEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIjEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    • locale.cpp.o(.text._ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe) +
    • locale.cpp.o(.text._ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIwEERNS_10unique_ptrIwPFvPvEEERPwSM_) +
    • locale.cpp.o(.text._ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIwS3_NS_9allocatorIwEEEE) +
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIwEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) (Thumb, 192 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE21__grow_by_and_replaceEjjjjjjPKc)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   __aeabi_memcpy +
    • >>   abort +
    +
    [Called By]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) (Thumb, 278 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE23__append_forward_unsafeIPcEERS5_T_S9_)) +

    [Stack]

    • Max Depth = 184 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) +
    +
    [Called By]
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) (Thumb, 112 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcj)) +

    [Stack]

    • Max Depth = 136 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    +
    [Called By]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) (Thumb, 112 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEjc)) +

    [Stack]

    • Max Depth = 136 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __aeabi_memset +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    +
    [Called By]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) (Thumb, 26 bytes, Stack size 16 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) ⇒ strlen +
    +
    [Calls]
    • >>   strlen +
    +
    [Called By]
    • >>   std::__1::__time_get_c_storage⟨char⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__am_pm() const +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*, unsigned) (Thumb, 104 bytes, Stack size 32 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKcj), UNUSED) +

    [Calls]

    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    • >>   __aeabi_memmove +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) (Thumb, 50 bytes, Stack size 0 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc)) +

    [Stack]

    • Max Depth = 136 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) (Thumb, 166 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEjjjjjj)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   __aeabi_memcpy +
    • >>   abort +
    +
    [Called By]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) (Thumb, 100 bytes, Stack size 32 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    +
    [Called By]
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) (Thumb, 100 bytes, Stack size 24 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    • >>   __aeabi_memcpy +
    • >>   abort +
    +
    [Called By]
    • >>   std::__1::numpunct⟨wchar_t⟩::do_grouping() const +
    • >>   std::__1::numpunct⟨char⟩::do_grouping() const +
    • >>   std::__1::messages⟨char⟩::do_get(int, int, int, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string__sub_object(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) (Thumb, 100 bytes, Stack size 24 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_), UNUSED) + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::~basic_string() (Thumb, 20 bytes, Stack size 8 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::~basic_string__sub_object() (Thumb, 20 bytes, Stack size 8 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::~basic_string__sub_object() +
    +
    [Address Reference Count : 4]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__xEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__XEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__cEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__rEv) +
    +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) (Thumb, 206 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE21__grow_by_and_replaceEjjjjjjPKw)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   abort +
    • >>   wmemcpy +
    +
    [Called By]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*, unsigned) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) (Thumb, 298 bytes, Stack size 56 bytes, locale.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE23__append_forward_unsafeIPwEERS5_T_S9_)) +

    [Stack]

    • Max Depth = 192 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   abort +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) (Thumb, 116 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6appendEPKwj)) +

    [Stack]

    • Max Depth = 136 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    • >>   wmemcpy +
    +
    [Called By]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) (Thumb, 26 bytes, Stack size 16 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) +
    +
    [Calls]
    • >>   wcslen +
    +
    [Called By]
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*, unsigned) (Thumb, 106 bytes, Stack size 32 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKwj), UNUSED) +

    [Calls]

    • >>   wmemmove +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) (Thumb, 168 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9__grow_byEjjjjjj)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   abort +
    • >>   wmemcpy +
    +
    [Called By]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) (Thumb, 104 bytes, Stack size 32 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9push_backEw)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) (Thumb, 116 bytes, Stack size 24 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEC2ERKS5_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    • >>   abort +
    • >>   wmemcpy +
    +
    [Called By]
    • >>   std::__1::messages⟨wchar_t⟩::do_get(int, int, int, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string__sub_object(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) (Thumb, 116 bytes, Stack size 24 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEC2ERKS5_), UNUSED) + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::~basic_string() (Thumb, 20 bytes, Stack size 8 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::~basic_string__sub_object() (Thumb, 20 bytes, Stack size 8 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::~basic_string__sub_object() +
    +
    [Address Reference Count : 4]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__xEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__XEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__cEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__rEv) +
    +

    std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() (Thumb, 20 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() (Thumb, 14 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED1Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() (Thumb, 20 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_istreamIwNS_11char_traitsIwEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() (Thumb, 14 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_istreamIwNS_11char_traitsIwEEED1Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() (Thumb, 90 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv), UNUSED) +

    [Calls]

    • >>   abort +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::~sentry__sub_object() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::sentry__sub_object(std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩&) +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::~DoIOSInit() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::sentry(std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩&) +
    + +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::sentry(std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩&) (Thumb, 38 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC2ERS3_), UNUSED) +

    [Calls]

    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::sentry__sub_object(std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩&) (Thumb, 38 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC2ERS3_), UNUSED) +

    [Called By]

    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::~sentry() (Thumb, 88 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD2Ev), UNUSED) +

    [Calls]

    • >>   abort +
    • >>   std::uncaught_exception() +
    + +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::~sentry__sub_object() (Thumb, 88 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD2Ev), UNUSED) +

    [Called By]

    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() (Thumb, 20 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() (Thumb, 14 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() (Thumb, 90 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE5flushEv), UNUSED) +

    [Calls]

    • >>   abort +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::~sentry__sub_object() +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::sentry__sub_object(std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&) +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::~DoIOSInit() +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::sentry(std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&) +
    + +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::sentry(std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&) (Thumb, 38 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryC2ERS3_), UNUSED) +

    [Calls]

    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::sentry__sub_object(std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&) (Thumb, 38 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryC2ERS3_), UNUSED) +

    [Called By]

    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::~sentry() (Thumb, 88 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryD2Ev), UNUSED) +

    [Calls]

    • >>   abort +
    • >>   std::uncaught_exception() +
    + +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::~sentry__sub_object() (Thumb, 88 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryD2Ev), UNUSED) +

    [Called By]

    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() (Thumb, 20 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() (Thumb, 14 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEED1Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIwNS_11char_traitsIwEEEE) +
    +

    std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) (Thumb, 94 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__114__num_put_base12__format_intEPcPKcbj)) +

    [Called By]

    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    + +

    std::__1::__num_put_base::__format_float(char*, const char*, unsigned) (Thumb, 142 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__114__num_put_base14__format_floatEPcPKcj)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::__num_put_base::__format_float(char*, const char*, unsigned) +
    +
    [Called By]
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    + +

    std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) (Thumb, 58 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE)) +

    [Called By]

    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    + +

    T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) (Thumb, 626 bytes, Stack size 160 bytes, locale.cpp.o(.text._ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEPKNS_12basic_stringIcS3_NS_9allocatorIcEEEENS_5ctypeIcEEEET0_RT_SE_SD_SD_RKT1_Rjb)) +

    [Stack]

    • Max Depth = 208 + Unknown Stack Size +
    • Call Chain = T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__throw_bad_alloc() +
    • >>   free +
    • >>   malloc +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    + +

    T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) (Thumb, 634 bytes, Stack size 160 bytes, locale.cpp.o(.text._ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEPKNS_12basic_stringIwS3_NS_9allocatorIwEEEENS_5ctypeIwEEEET0_RT_SE_SD_SD_RKT1_Rjb)) +

    [Stack]

    • Max Depth = 208 + Unknown Stack Size +
    • Call Chain = T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__throw_bad_alloc() +
    • >>   free +
    • >>   malloc +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    + +

    std::__1::__shared_count::__add_shared() (Thumb, 8 bytes, Stack size 0 bytes, memory.cpp.o(.text._ZNSt3__114__shared_count12__add_sharedEv)) +

    [Called By]

    • >>   std::__1::locale::locale(const std::__1::locale&) +
    • >>   std::__1::locale::locale() +
    • >>   std::__1::locale::__global() +
    • >>   std::__1::locale::__imp::install(std::__1::locale::facet*, long) +
    + +

    std::__1::__shared_count::__release_shared() (Thumb, 24 bytes, Stack size 8 bytes, memory.cpp.o(.text._ZNSt3__114__shared_count16__release_sharedEv)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::locale::~locale() +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::locale::__imp::~__imp() +
    • >>   std::__1::locale::__imp::install(std::__1::locale::facet*, long) +
    + +

    std::__1::__shared_count::~__shared_count() (Thumb, 2 bytes, Stack size 0 bytes, memory.cpp.o(.text._ZNSt3__114__shared_countD2Ev), UNUSED) + +

    std::__1::__shared_count::~__shared_count__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, memory.cpp.o(.text._ZNSt3__114__shared_countD2Ev), UNUSED) +

    [Called By]

    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put() +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put() +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get() +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get() +
    • >>   std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put() +
    • >>   std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put() +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get() +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get() +
    • >>   std::__1::messages⟨wchar_t⟩::~messages() +
    • >>   std::__1::messages⟨char⟩::~messages() +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put() +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put() +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get() +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get() +
    • >>   std::__1::collate⟨wchar_t⟩::~collate() +
    • >>   std::__1::collate⟨char⟩::~collate() +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct() +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct() +
    • >>   std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct() +
    • >>   std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct() +
    • >>   std::__1::numpunct_byname⟨wchar_t⟩::~numpunct_byname() +
    • >>   std::__1::numpunct_byname⟨char⟩::~numpunct_byname() +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt() +
    • >>   std::__1::__narrow_to_utf8⟨(unsigned)16⟩::~__narrow_to_utf8() +
    • >>   std::__1::locale::__imp::~__imp() +
    • >>   std::__1::ctype⟨char⟩::~ctype() +
    + +

    std::__1::__shared_weak_count::~__shared_weak_count() (Thumb, 2 bytes, Stack size 0 bytes, memory.cpp.o(.text._ZNSt3__114__shared_countD2Ev), UNUSED) + +

    std::__1::__shared_weak_count::~__shared_weak_count__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, memory.cpp.o(.text._ZNSt3__114__shared_countD2Ev), UNUSED) + +

    std::__1::__split_buffer⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩&⟩::~__split_buffer__sub_object() (Thumb, 52 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__114__split_bufferIPNS_6locale5facetERNS_15__sso_allocatorIS3_Lj28EEEED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    +
    [Called By]
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    + +

    T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) (Thumb, 88 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__115__num_get_floatIdEET_PKcS3_Rj)) +

    [Stack]

    • Max Depth = 492 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) ⇒ strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   strtod +
    • >>   std::__1::__cloc() +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) (Thumb, 88 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__115__num_get_floatIeEET_PKcS3_Rj)) +

    [Stack]

    • Max Depth = 492 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) ⇒ strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   strtold +
    • >>   std::__1::__cloc() +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) (Thumb, 84 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__115__num_get_floatIfEET_PKcS3_Rj)) +

    [Stack]

    • Max Depth = 484 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) ⇒ strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   strtof +
    • >>   std::__1::__cloc() +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::sync() (Thumb, 4 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE4syncEv)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::imbue(const std::__1::locale&) (Thumb, 2 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5imbueERKNS_6localeE)) +
    [Address Reference Count : 1]

    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::uflow() (Thumb, 32 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5uflowEv)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::uflow() +
    +
    [Address Reference Count : 2]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::setbuf(char*, int) (Thumb, 2 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6setbufEPci)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsgetn(char*, int) (Thumb, 90 bytes, Stack size 24 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsgetnEPci)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsgetn(char*, int) +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    +
    [Address Reference Count : 3]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsputn(const char*, int) (Thumb, 92 bytes, Stack size 24 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsputnEPKci)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsputn(const char*, int) +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    +
    [Address Reference Count : 2]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::seekoff(long long, std::__1::ios_base::seekdir, unsigned) (Thumb, 16 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE7seekoffExNS_8ios_base7seekdirEj)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::seekpos(std::__1::fpos⟨std::__mbstate_t⟩, unsigned) (Thumb, 16 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE7seekposENS_4fposISt11__mbstate_tEEj)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::overflow(int) (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE8overflowEi)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::pbackfail(int) (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9pbackfailEi)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::showmanyc() (Thumb, 4 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9showmanycEv)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::underflow() (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9underflowEv)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf() (Thumb, 38 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEEC2Ev), UNUSED) +

    [Calls]

    • >>   __aeabi_memclr4 +
    • >>   std::__1::locale::locale() +
    + +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf__sub_object() (Thumb, 38 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEEC2Ev), UNUSED) +

    [Called By]

    • >>   std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨char⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    + +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__deallocating() (Thumb, 36 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::~locale() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf() (Thumb, 30 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    + +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__sub_object() (Thumb, 30 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__sub_object() +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨char⟩::~__stdoutbuf__deallocating() +
    • >>   std::__1::__stdinbuf⟨char⟩::~__stdinbuf__deallocating() +
    +
    [Address Reference Count : 3]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sync() (Thumb, 4 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE4syncEv)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::imbue(const std::__1::locale&) (Thumb, 2 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE5imbueERKNS_6localeE)) +
    [Address Reference Count : 1]

    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::uflow() (Thumb, 30 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE5uflowEv)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::uflow() +
    +
    [Address Reference Count : 2]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::setbuf(wchar_t*, int) (Thumb, 2 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6setbufEPwi)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsgetn(wchar_t*, int) (Thumb, 98 bytes, Stack size 24 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6xsgetnEPwi)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsgetn(wchar_t*, int) ⇒ wmemcpy ⇒ memcpy +
    +
    [Calls]
    • >>   wmemcpy +
    +
    [Address Reference Count : 3]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsputn(const wchar_t*, int) (Thumb, 96 bytes, Stack size 24 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6xsputnEPKwi)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsputn(const wchar_t*, int) ⇒ wmemcpy ⇒ memcpy +
    +
    [Calls]
    • >>   wmemcpy +
    +
    [Address Reference Count : 2]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::seekoff(long long, std::__1::ios_base::seekdir, unsigned) (Thumb, 16 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE7seekoffExNS_8ios_base7seekdirEj)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::seekpos(std::__1::fpos⟨std::__mbstate_t⟩, unsigned) (Thumb, 16 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE7seekposENS_4fposISt11__mbstate_tEEj)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::overflow(int) (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE8overflowEi)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::pbackfail(int) (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9pbackfailEi)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::showmanyc() (Thumb, 4 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9showmanycEv)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::underflow() (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9underflowEv)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf() (Thumb, 38 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEEC2Ev), UNUSED) +

    [Calls]

    • >>   __aeabi_memclr4 +
    • >>   std::__1::locale::locale() +
    + +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf__sub_object() (Thumb, 38 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEEC2Ev), UNUSED) +

    [Called By]

    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    + +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__deallocating() (Thumb, 36 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::~locale() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf() (Thumb, 30 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    + +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__sub_object() (Thumb, 30 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__sub_object() +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::~__stdoutbuf__deallocating() +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::~__stdinbuf__deallocating() +
    +
    [Address Reference Count : 3]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) (Thumb, 180 bytes, Stack size 20 bytes, locale.cpp.o(.text._ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj)) +

    [Stack]

    • Max Depth = 20
    • Call Chain = std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) (Thumb, 212 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   __aeabi_memset +
    +
    [Called By]
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    + +

    std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) (Thumb, 242 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    • >>   wmemset +
    +
    [Called By]
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    + +

    std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) (Thumb, 28 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__117__libcpp_sscanf_lEPKcPvS1_z)) +

    [Stack]

    • Max Depth = 508
    • Call Chain = std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) ⇒ __ARM_vsscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __ARM_vsscanf +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    + +

    void std::__1::__double_or_nothing⟨char⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) (Thumb, 128 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__119__double_or_nothingIcEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = void std::__1::__double_or_nothing⟨char⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) ⇒ realloc ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__throw_bad_alloc() +
    • >>   realloc +
    +
    [Called By]
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    + +

    void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) (Thumb, 138 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__119__double_or_nothingIjEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) ⇒ realloc ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__throw_bad_alloc() +
    • >>   realloc +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    + +

    void std::__1::__double_or_nothing⟨wchar_t⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) (Thumb, 138 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__119__double_or_nothingIwEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = void std::__1::__double_or_nothing⟨wchar_t⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) ⇒ realloc ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__throw_bad_alloc() +
    • >>   realloc +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    + +

    std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) (Thumb, 28 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__119__libcpp_asprintf_lEPPcPvPKcz)) +

    [Stack]

    • Max Depth = 168 + Unknown Stack Size +
    • Call Chain = std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   __ARM_vasprintf +
    +
    [Called By]
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    + +

    std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) (Thumb, 18 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__119__libcpp_snprintf_lEPcjPvPKcz)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   __ARM_vsnprintf +
    +
    [Called By]
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    + +

    int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) (Thumb, 484 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    + +

    int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) (Thumb, 480 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    + +

    std::__1::__throw_runtime_error(const char*) (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__121__throw_runtime_errorEPKc)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = std::__1::__throw_runtime_error(const char*) ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    +
    [Called By]
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::imbue(const std::__1::locale&) +
    • >>   std::__1::__stdinbuf⟨char⟩::imbue(const std::__1::locale&) +
    + +

    T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) (Thumb, 152 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__125__num_get_signed_integralIlEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 120 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) ⇒ strtoll ⇒ __strtoll ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoll +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) (Thumb, 126 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__125__num_get_signed_integralIxEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 120 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) ⇒ strtoll ⇒ __strtoll ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoll +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) (Thumb, 124 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__127__num_get_unsigned_integralIjEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) ⇒ strtoull ⇒ __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoull +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) (Thumb, 124 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__127__num_get_unsigned_integralImEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) ⇒ strtoull ⇒ __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoull +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) (Thumb, 136 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__127__num_get_unsigned_integralItEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) ⇒ strtoull ⇒ __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoull +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) (Thumb, 142 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__127__num_get_unsigned_integralIyEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) ⇒ strtoull ⇒ __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoull +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::ctype⟨char⟩::~ctype__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__15ctypeIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::ctype⟨char⟩::~ctype__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ctype⟨char⟩::~ctype__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::~ctype() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__15ctypeIcED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete[] (void*) +
    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::ctype⟨char⟩::~ctype__sub_object() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__15ctypeIcED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::ctype⟨char⟩::~ctype__sub_object() +
    +
    [Called By]
    • >>   std::__1::ctype⟨char⟩::~ctype__deallocating() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨wchar_t⟩::~ctype__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__15ctypeIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::ctype⟨wchar_t⟩::~ctype__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::__cloc() (Thumb, 54 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16__clocEv)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    +
    [Called By]
    • >>   std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t) const +
    • >>   std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t*, const wchar_t*) const +
    • >>   std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t) const +
    • >>   std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t*, const wchar_t*) const +
    • >>   std::__1::ctype⟨char⟩::do_toupper(char) const +
    • >>   std::__1::ctype⟨char⟩::do_toupper(char*, const char*) const +
    • >>   std::__1::ctype⟨char⟩::do_tolower(char) const +
    • >>   std::__1::ctype⟨char⟩::do_tolower(char*, const char*) const +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put() +
    • >>   std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__deallocating() +
    • >>   std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put() +
    • >>   std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__deallocating() +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) +
    • >>   T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) +
    • >>   T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt() +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__deallocating() +
    • >>   std::__1::locale::__imp::__imp(unsigned) +
    + +

    std::__1::locale::id::__get() (Thumb, 62 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__16locale2id5__getEv)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = std::__1::locale::id::__get() ⇒ std::__1::__call_once(volatile unsigned long&, void*, void(*)(void*)) +
    +
    [Calls]
    • >>   std::__1::__call_once(volatile unsigned long&, void*, void(*)(void*)) +
    +
    [Called By]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::locale::__imp::__imp(unsigned) +
    + +

    std::__1::locale::id::__init() (Thumb, 18 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale2id6__initEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.text._ZNSt3__16locale2id5__getEv) +
    +

    std::__1::locale::__imp::install(std::__1::locale::facet*, long) (Thumb, 56 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__16locale5__imp7installEPNS0_5facetEl), UNUSED) +

    [Calls]

    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::resize(unsigned) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__shared_count::__add_shared() +
    +
    [Called By]
    • >>   std::__1::locale::__imp::__imp(unsigned) +
    + +

    std::__1::locale::__imp::__imp(unsigned) (Thumb, 1384 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNSt3__16locale5__impC2Ej), UNUSED) +

    [Calls]

    • >>   __aeabi_memclr4 +
    • >>   std::__1::locale::__imp::install(std::__1::locale::facet*, long) +
    • >>   std::__1::locale::id::__get() +
    • >>   std::__1::__cloc() +
    + +

    std::__1::locale::__imp::__imp__sub_object(unsigned) (Thumb, 1384 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNSt3__16locale5__impC2Ej), UNUSED) +

    [Called By]

    • >>   std::__1::locale::classic() +
    + +

    std::__1::locale::__imp::~__imp__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16locale5__impD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::locale::__imp::~__imp__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::__imp::~__imp__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__16locale5__impE) +
    +

    std::__1::locale::__imp::~__imp() (Thumb, 106 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__16locale5__impD2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    • >>   std::__1::__shared_count::__release_shared() +
    + +

    std::__1::locale::__imp::~__imp__sub_object() (Thumb, 106 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__16locale5__impD2Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::locale::__imp::~__imp__sub_object() +
    +
    [Called By]
    • >>   std::__1::locale::__imp::~__imp__deallocating() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__16locale5__impE) +
    +

    std::__1::locale::facet::__on_zero_shared() (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facet16__on_zero_sharedEv)) +
    [Address Reference Count : 30]

    • locale.cpp.o(.rodata._ZTVNSt3__16locale5__impE) +
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__16locale5facetE) +
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::locale::facet::~facet__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::locale::facet::~facet__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__16locale5facetE) +
    +

    std::__1::__narrow_to_utf8⟨(unsigned)16⟩::~__narrow_to_utf8() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::__narrow_to_utf8⟨(unsigned)16⟩::~__narrow_to_utf8__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__narrow_to_utf8⟨(unsigned)32⟩::~__narrow_to_utf8() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__narrow_to_utf8⟨(unsigned)32⟩::~__narrow_to_utf8__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__widen_from_utf8⟨(unsigned)16⟩::~__widen_from_utf8() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__widen_from_utf8⟨(unsigned)16⟩::~__widen_from_utf8__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__widen_from_utf8⟨(unsigned)32⟩::~__widen_from_utf8() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__widen_from_utf8⟨(unsigned)32⟩::~__widen_from_utf8__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::ctype⟨wchar_t⟩::~ctype() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::ctype⟨wchar_t⟩::~ctype__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::locale::facet::~facet() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::locale::facet::~facet__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev)) +
    [Address Reference Count : 5]

    • locale.cpp.o(.rodata._ZTVNSt3__16locale5facetE) +
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::~codecvt() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::~codecvt__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::~codecvt() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::~codecvt__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::~codecvt() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::~codecvt__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::locale::classic() (Thumb, 88 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16locale7classicEv), UNUSED) +

    [Calls]

    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   std::__1::locale::__imp::__imp__sub_object(unsigned) +
    +
    [Called By]
    • >>   std::__1::locale::__global() +
    + +

    std::__1::locale::__global() (Thumb, 84 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__16locale8__globalEv), UNUSED) +

    [Calls]

    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   std::__1::__shared_count::__add_shared() +
    • >>   std::__1::locale::classic() +
    +
    [Called By]
    • >>   std::__1::locale::locale() +
    + +

    std::__1::locale::locale(const std::__1::locale&) (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeC2ERKS0_)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::locale::locale(const std::__1::locale&) +
    +
    [Calls]
    • >>   std::__1::__shared_count::__add_shared() +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨char⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::ios_base::getloc() const +
    + +

    std::__1::locale::locale__sub_object(const std::__1::locale&) (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeC2ERKS0_), UNUSED) + +

    std::__1::locale::locale() (Thumb, 20 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeC2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::__add_shared() +
    • >>   std::__1::locale::__global() +
    +
    [Called By]
    • >>   std::__1::ios_base::init(void*) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf() +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf() +
    + +

    std::__1::locale::locale__sub_object() (Thumb, 20 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeC2Ev), UNUSED) + +

    std::__1::locale::~locale() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeD2Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::locale::~locale() ⇒ std::__1::__shared_count::__release_shared() +
    +
    [Calls]
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨char⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf() +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__deallocating() +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf() +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__deallocating() +
    • >>   std::__1::ios_base::~ios_base() +
    + +

    std::__1::locale::~locale__sub_object() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeD2Ev), UNUSED) + +

    std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::resize(unsigned) (Thumb, 34 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE6resizeEj), UNUSED) +

    [Calls]

    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    +
    [Called By]
    • >>   std::__1::locale::__imp::install(std::__1::locale::facet*, long) +
    + +

    std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) (Thumb, 206 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE8__appendEj), UNUSED) +

    [Calls]

    • >>   operator new(unsigned) +
    • >>   __aeabi_memclr4 +
    • >>   __aeabi_memcpy4 +
    • >>   std::__1::__split_buffer⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩&⟩::~__split_buffer__sub_object() +
    • >>   std::__1::__vector_base_common⟨(bool)1⟩::__throw_length_error() const +
    +
    [Called By]
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::resize(unsigned) +
    + +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::~codecvt__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIDicSt11__mbstate_tED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::~codecvt__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::~codecvt__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIDscSt11__mbstate_tED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::~codecvt__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::~codecvt__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIccSt11__mbstate_tED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::codecvt⟨char, char, std::__mbstate_t⟩::~codecvt__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__deallocating() (Thumb, 34 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIwcSt11__mbstate_tED0Ev)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__deallocating() ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt() (Thumb, 30 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIwcSt11__mbstate_tED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    • >>   std::__1::__cloc() +
    + +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__sub_object() (Thumb, 30 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIwcSt11__mbstate_tED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::collate⟨char⟩::~collate__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17collateIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::collate⟨char⟩::~collate__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    +

    std::__1::collate⟨char⟩::~collate() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17collateIcED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::collate⟨char⟩::~collate__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17collateIcED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    +

    std::__1::collate⟨wchar_t⟩::~collate__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17collateIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::collate⟨wchar_t⟩::~collate__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    +

    std::__1::collate⟨wchar_t⟩::~collate() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17collateIwED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::collate⟨wchar_t⟩::~collate__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17collateIwED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::ios_base::Init::Init() (Thumb, 92 bytes, Stack size 16 bytes, iostream.cpp.o(.text._ZNSt3__18ios_base4InitC2Ev)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::ios_base::Init::Init() ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   std::__1::DoIOSInit::DoIOSInit__sub_object() +
    • >>   __cxa_atexit +
    +
    [Called By]
    • >>   _GLOBAL__sub_I_main_functions.cc +
    • >>   _GLOBAL__sub_I_micro_interpreter.cc +
    • >>   _GLOBAL__sub_I_ios.cpp +
    • >>   _GLOBAL__sub_I_locale.cpp +
    + +

    std::__1::ios_base::Init::Init__sub_object() (Thumb, 92 bytes, Stack size 16 bytes, iostream.cpp.o(.text._ZNSt3__18ios_base4InitC2Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::ios_base::Init::Init__sub_object() +
    +
    [Called By]
    • >>   _GLOBAL__sub_I_iostream.cpp +
    + +

    std::__1::ios_base::Init::~Init() (Thumb, 2 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__18ios_base4InitD2Ev)) +
    [Address Reference Count : 4]

    • main_functions.o(.text._GLOBAL__sub_I_main_functions.cc) +
    • micro_interpreter.o(.text._GLOBAL__sub_I_micro_interpreter.cc) +
    • locale.cpp.o(.text._GLOBAL__sub_I_locale.cpp) +
    • ios.cpp.o(.text._GLOBAL__sub_I_ios.cpp) +
    +

    std::__1::ios_base::Init::~Init__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__18ios_base4InitD2Ev), UNUSED) + +

    std::__1::ios_base::init(void*) (Thumb, 56 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__18ios_base4initEPv), UNUSED) +

    [Calls]

    • >>   __aeabi_memclr4 +
    • >>   std::__1::locale::locale() +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::DoIOSInit() +
    + +

    std::__1::ios_base::~ios_base__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__18ios_baseD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::ios_base::~ios_base__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__18ios_baseE) +
    +

    std::__1::ios_base::~ios_base() (Thumb, 84 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__18ios_baseD2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    • >>   free +
    + +

    std::__1::ios_base::~ios_base__sub_object() (Thumb, 84 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__18ios_baseD2Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::ios_base::~ios_base__sub_object() +
    +
    [Called By]
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() +
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() +
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() +
    • >>   std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() +
    • >>   std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() +
    • >>   std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::ios_base::~ios_base__deallocating() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__18ios_baseE) +
    +

    std::__1::messages⟨char⟩::~messages__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18messagesIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::messages⟨char⟩::~messages__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    +

    std::__1::messages⟨char⟩::~messages() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18messagesIcED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::messages⟨char⟩::~messages__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18messagesIcED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    +

    std::__1::messages⟨wchar_t⟩::~messages__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18messagesIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::messages⟨wchar_t⟩::~messages__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::messages⟨wchar_t⟩::~messages() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18messagesIwED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::messages⟨wchar_t⟩::~messages__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18messagesIwED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::numpunct⟨char⟩::~numpunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::numpunct⟨char⟩::~numpunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::numpunct⟨char⟩::~numpunct__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct_byname⟨char⟩::~numpunct_byname() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIcED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::numpunct_byname⟨char⟩::~numpunct_byname__sub_object() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIcED2Ev), UNUSED) + +

    std::__1::numpunct⟨char⟩::~numpunct() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIcED2Ev), UNUSED) + +

    std::__1::numpunct⟨char⟩::~numpunct__sub_object() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIcED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::numpunct⟨char⟩::~numpunct__sub_object() +
    +
    [Called By]
    • >>   std::__1::numpunct⟨char⟩::~numpunct__deallocating() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::~numpunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::numpunct⟨wchar_t⟩::~numpunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::numpunct⟨wchar_t⟩::~numpunct__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::numpunct_byname⟨wchar_t⟩::~numpunct_byname() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIwED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::numpunct_byname⟨wchar_t⟩::~numpunct_byname__sub_object() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIwED2Ev), UNUSED) + +

    std::__1::numpunct⟨wchar_t⟩::~numpunct() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIwED2Ev), UNUSED) + +

    std::__1::numpunct⟨wchar_t⟩::~numpunct__sub_object() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIwED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::numpunct⟨wchar_t⟩::~numpunct__sub_object() +
    +
    [Called By]
    • >>   std::__1::numpunct⟨wchar_t⟩::~numpunct__deallocating() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__deallocating() (Thumb, 22 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__deallocating() ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put() (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    • >>   std::__1::__cloc() +
    + +

    std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__sub_object() (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__deallocating() (Thumb, 22 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__deallocating() ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put() (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    • >>   std::__1::__cloc() +
    + +

    std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__sub_object() (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::DoIOSInit::DoIOSInit() (Thumb, 626 bytes, Stack size 40 bytes, iostream.cpp.o(.text._ZNSt3__19DoIOSInitC2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨char⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::ios_base::init(void*) +
    + +

    std::__1::DoIOSInit::DoIOSInit__sub_object() (Thumb, 626 bytes, Stack size 40 bytes, iostream.cpp.o(.text._ZNSt3__19DoIOSInitC2Ev)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = std::__1::DoIOSInit::DoIOSInit__sub_object() +
    +
    [Called By]
    • >>   std::__1::ios_base::Init::Init() +
    + +

    std::__1::DoIOSInit::~DoIOSInit() (Thumb, 56 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__19DoIOSInitD2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() +
    + +

    std::__1::DoIOSInit::~DoIOSInit__sub_object() (Thumb, 56 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__19DoIOSInitD2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::DoIOSInit::~DoIOSInit__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.text._ZNSt3__18ios_base4InitC2Ev) +
    +

    std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) (Thumb, 252 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIcE17__stage2_int_loopEciPcRS2_RjcRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_S2_)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) (Thumb, 104 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIcE17__stage2_int_prepERNS_8ios_baseEPcRc)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨char⟩::__stage2_float_loop(char, bool&, char&, char*, char*&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, char*) (Thumb, 362 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIcE19__stage2_float_loopEcRbRcPcRS4_ccRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjS4_)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = std::__1::__num_get⟨char⟩::__stage2_float_loop(char, bool&, char&, char*, char*&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, char*) +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) (Thumb, 118 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIcE19__stage2_float_prepERNS_8ios_baseEPcRcS5_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) (Thumb, 256 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIwE17__stage2_int_loopEwiPcRS2_RjwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_Pw)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) (Thumb, 104 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIwE17__stage2_int_prepERNS_8ios_baseEPwRw)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨wchar_t⟩::__stage2_float_loop(wchar_t, bool&, char&, char*, char*&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, wchar_t*) (Thumb, 368 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIwE19__stage2_float_loopEwRbRcPcRS4_wwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjPw)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = std::__1::__num_get⟨wchar_t⟩::__stage2_float_loop(wchar_t, bool&, char&, char*, char*&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) (Thumb, 118 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIwE19__stage2_float_prepERNS_8ios_baseEPwRwS5_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) (Thumb, 508 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNSt3__19__num_putIcE21__widen_and_group_intEPcS2_S2_S2_RS2_S3_RKNS_6localeE)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    + +

    std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) (Thumb, 656 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNSt3__19__num_putIcE23__widen_and_group_floatEPcS2_S2_S2_RS2_S3_RKNS_6localeE)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    + +

    std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) (Thumb, 508 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNSt3__19__num_putIwE21__widen_and_group_intEPcS2_S2_PwRS3_S4_RKNS_6localeE)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    + +

    std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) (Thumb, 670 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNSt3__19__num_putIwE23__widen_and_group_floatEPcS2_S2_PwRS3_S4_RKNS_6localeE)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    + +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) (Thumb, 2342 bytes, Stack size 576 bytes, locale.cpp.o(.text._ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIcEERNS_10unique_ptrIcPFvPvEEERPcSM_)) +

    [Stack]

    • Max Depth = 704 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨char⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   std::__1::__money_get⟨char⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) +
    +
    [Called By]
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    + +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) (Thumb, 2360 bytes, Stack size 584 bytes, locale.cpp.o(.text._ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIwEERNS_10unique_ptrIwPFvPvEEERPwSM_)) +

    [Stack]

    • Max Depth = 712 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   void std::__1::__double_or_nothing⟨wchar_t⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   std::__1::__money_get⟨wchar_t⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    + +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::type_info::~type_info() (Thumb, 2 bytes, Stack size 0 bytes, stdlib_typeinfo.cpp.o(.text._ZNSt9type_infoD2Ev), UNUSED) + +

    std::type_info::~type_info__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, stdlib_typeinfo.cpp.o(.text._ZNSt9type_infoD2Ev), UNUSED) +

    [Called By]

    • >>   __cxxabiv1::__enum_type_info::~__enum_type_info() +
    + +

    std::get_new_handler() (Thumb, 12 bytes, Stack size 0 bytes, cxa_handlers.cpp.o(.text._ZSt15get_new_handlerv)) +

    [Called By]

    • >>   operator new(unsigned) +
    + +

    std::__throw_bad_alloc() (Thumb, 4 bytes, Stack size 0 bytes, new.cpp.o(.text._ZSt17__throw_bad_allocv)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = std::__throw_bad_alloc() ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    +
    [Called By]
    • >>   void std::__1::__double_or_nothing⟨wchar_t⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨char⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    + +

    std::uncaught_exception() (Thumb, 18 bytes, Stack size 8 bytes, exception.cpp.o(.text._ZSt18uncaught_exceptionv), UNUSED) +

    [Called By]

    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::~sentry() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::~sentry() +
    + +

    thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() (Thumb, 28 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_istreamIcNS_11char_traitsIcEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIcNS_11char_traitsIcEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() (Thumb, 14 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_istreamIcNS_11char_traitsIcEEED1Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIcNS_11char_traitsIcEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() (Thumb, 28 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_istreamIwNS_11char_traitsIwEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIwNS_11char_traitsIwEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() (Thumb, 14 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_istreamIwNS_11char_traitsIwEEED1Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIwNS_11char_traitsIwEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() (Thumb, 26 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIcNS_11char_traitsIcEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() (Thumb, 14 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIcNS_11char_traitsIcEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() (Thumb, 26 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_ostreamIwNS_11char_traitsIwEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIwNS_11char_traitsIwEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() (Thumb, 14 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_ostreamIwNS_11char_traitsIwEEED1Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIwNS_11char_traitsIwEEEE) +
    +

    operator delete[] (void*) (Thumb, 4 bytes, Stack size 0 bytes, new.cpp.o(.text._ZdaPv)) +

    [Called By]

    • >>   tflite::ops::micro::conv::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::conv::EvalQuantizedPerChannel(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::conv::EvalQuantized(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::pooling::AveragePrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::pooling::AverageEval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   std::__1::ctype⟨char⟩::~ctype() +
    + +

    operator delete (void*) (Thumb, 4 bytes, Stack size 0 bytes, new.cpp.o(.text._ZdlPv)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   free +
    +
    [Called By]
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::~MicroMutableOpResolver__deallocating() +
    • >>   tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner__deallocating() +
    • >>   tflite::MicroErrorReporter::~MicroErrorReporter__deallocating() +
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::~__stdoutbuf__deallocating() +
    • >>   std::__1::__stdoutbuf⟨char⟩::~__stdoutbuf__deallocating() +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::~__stdinbuf__deallocating() +
    • >>   std::__1::__stdinbuf⟨char⟩::~__stdinbuf__deallocating() +
    • >>   tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator__deallocating() +
    • >>   tflite::MicroAllocator::~MicroAllocator__deallocating() +
    • >>   tflite::⟨unnamed namespace 1⟩::MicroBuiltinDataAllocator::~MicroBuiltinDataAllocator__deallocating() +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::~basic_string() +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::~basic_string() +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__deallocating() +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__deallocating() +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() +
    • >>   std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::ios_base::~ios_base__deallocating() +
    • >>   __cxx_global_array_dtor.77 +
    • >>   __cxx_global_array_dtor.62 +
    • >>   __cxx_global_array_dtor.128 +
    • >>   __cxx_global_array_dtor.125 +
    • >>   __cxx_global_array_dtor.101 +
    • >>   __cxx_global_array_dtor +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put__deallocating() +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put__deallocating() +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get__deallocating() +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get__deallocating() +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__deallocating() +
    • >>   std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__deallocating() +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get__deallocating() +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get__deallocating() +
    • >>   std::__1::messages⟨wchar_t⟩::~messages__deallocating() +
    • >>   std::__1::messages⟨char⟩::~messages__deallocating() +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put__deallocating() +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put__deallocating() +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get__deallocating() +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get__deallocating() +
    • >>   std::__1::collate⟨wchar_t⟩::~collate__deallocating() +
    • >>   std::__1::collate⟨char⟩::~collate__deallocating() +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__split_buffer⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩&⟩::~__split_buffer__sub_object() +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::__money_get⟨wchar_t⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__money_get⟨char⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct__deallocating() +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct__deallocating() +
    • >>   std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct__deallocating() +
    • >>   std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct__deallocating() +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::numpunct_byname⟨wchar_t⟩::~numpunct_byname() +
    • >>   std::__1::numpunct⟨wchar_t⟩::~numpunct__deallocating() +
    • >>   std::__1::numpunct_byname⟨char⟩::~numpunct_byname() +
    • >>   std::__1::numpunct⟨char⟩::~numpunct__deallocating() +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__deallocating() +
    • >>   std::__1::codecvt⟨char, char, std::__mbstate_t⟩::~codecvt__deallocating() +
    • >>   std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::~codecvt__deallocating() +
    • >>   std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::~codecvt__deallocating() +
    • >>   std::__1::locale::facet::~facet__deallocating() +
    • >>   std::__1::locale::__imp::~__imp() +
    • >>   std::__1::locale::__imp::~__imp__deallocating() +
    • >>   std::__1::ctype⟨wchar_t⟩::~ctype__deallocating() +
    • >>   std::__1::ctype⟨char⟩::~ctype__deallocating() +
    • >>   __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info__deallocating() +
    • >>   __cxxabiv1::__si_class_type_info::~__si_class_type_info__deallocating() +
    • >>   __cxxabiv1::__class_type_info::~__class_type_info__deallocating() +
    + +

    operator new[] (unsigned) (Thumb, 4 bytes, Stack size 0 bytes, new.cpp.o(.text._Znaj)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = operator new[] (unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    +
    [Called By]
    • >>   tflite::ops::micro::conv::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::conv::EvalQuantizedPerChannel(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::conv::EvalQuantized(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::pooling::AveragePrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::pooling::AverageEval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    + +

    operator new(unsigned) (Thumb, 38 bytes, Stack size 8 bytes, new.cpp.o(.text._Znwj)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::get_new_handler() +
    • >>   malloc +
    +
    [Called By]
    • >>   operator new[] (unsigned) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    • >>   std::__1::numpunct⟨wchar_t⟩::do_falsename() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__c() const +
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    • >>   std::__1::collate⟨wchar_t⟩::do_transform(const wchar_t*, const wchar_t*) const +
    • >>   std::__1::collate⟨char⟩::do_transform(const char*, const char*) const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    + +

    __cxa_guard_acquire (Thumb, 92 bytes, Stack size 8 bytes, cxa_guard.cpp.o(.text.__cxa_guard_acquire)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort_message +
    +
    [Called By]
    • >>   person_detect_init +
    • >>   std::__1::ios_base::Init::Init() +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__X() const +
    • >>   std::__1::locale::__global() +
    • >>   std::__1::locale::classic() +
    • >>   std::__1::__cloc() +
    + +

    __cxa_guard_release (Thumb, 8 bytes, Stack size 0 bytes, cxa_guard.cpp.o(.text.__cxa_guard_release)) +

    [Called By]

    • >>   person_detect_init +
    • >>   std::__1::ios_base::Init::Init() +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__X() const +
    • >>   std::__1::locale::__global() +
    • >>   std::__1::locale::classic() +
    • >>   std::__1::__cloc() +
    + +

    __dynamic_cast (Thumb, 168 bytes, Stack size 88 bytes, private_typeinfo.cpp.o(.text.__dynamic_cast)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = __dynamic_cast ⇒ __aeabi_memclr4 +
    +
    [Calls]
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   __cxxabiv1::__class_type_info::can_catch(const __cxxabiv1::__shim_type_info*, void*&) const +
    + +

    _sys_close (Thumb, 4 bytes, Stack size 0 bytes, retarget.o(.text._sys_close)) +

    [Called By]

    • >>   _fclose_internal +
    + +

    _sys_exit (Thumb, 2 bytes, Stack size 0 bytes, retarget.o(.text._sys_exit)) +

    [Calls]

    • >>   _sys_exit +
    +
    [Called By]
    • >>   _sys_exit +
    • >>   abort +
    • >>   __rt_exit_exit +
    • >>   __sig_exit +
    + +

    _sys_flen (Thumb, 6 bytes, Stack size 0 bytes, retarget.o(.text._sys_flen)) +

    [Called By]

    • >>   _fseek +
    + +

    _sys_istty (Thumb, 4 bytes, Stack size 0 bytes, retarget.o(.text._sys_istty)) +

    [Called By]

    • >>   _fseek +
    + +

    _sys_open (Thumb, 4 bytes, Stack size 0 bytes, retarget.o(.text._sys_open)) +

    [Called By]

    • >>   freopen +
    + +

    _sys_seek (Thumb, 6 bytes, Stack size 0 bytes, retarget.o(.text._sys_seek)) +

    [Called By]

    • >>   _writebuf +
    + +

    _sys_write (Thumb, 4 bytes, Stack size 0 bytes, retarget.o(.text._sys_write)) +

    [Called By]

    • >>   _writebuf +
    + +

    _ttywrch (Thumb, 2 bytes, Stack size 0 bytes, retarget.o(.text._ttywrch)) +

    [Called By]

    • >>   __default_signal_display +
    + +

    abort_message (Thumb, 4 bytes, Stack size 0 bytes, abort_message.cpp.o(.text.abort_message)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    +
    [Called By]
    • >>   __cxa_guard_acquire +
    + +

    application_entry (Thumb, 144 bytes, Stack size 8 bytes, tflitemicro_person_detection.o(.text.application_entry)) +

    [Stack]

    • Max Depth = 192 + Unknown Stack Size +
    • Call Chain = application_entry ⇒ OV2640_Init ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   osThreadCreate +
    • >>   HAL_DCMI_Start_DMA +
    • >>   person_detect_init +
    • >>   OV2640_RGB565_Mode +
    • >>   OV2640_OutSize_Set +
    • >>   OV2640_Init +
    • >>   LCD_2IN4_Init +
    • >>   puts +
    +
    [Address Reference Count : 1]
    • main.o(.rodata.os_thread_def_application_entry) +
    +

    arm_avgpool_s8 (Thumb, 1078 bytes, Stack size 168 bytes, arm_avgpool_s8.o(.text.arm_avgpool_s8)) +

    [Stack]

    • Max Depth = 192
    • Call Chain = arm_avgpool_s8 ⇒ arm_nn_accumulate_q7_to_q15 +
    +
    [Calls]
    • >>   arm_q7_to_q15_no_shift +
    • >>   arm_nn_accumulate_q7_to_q15 +
    +
    [Called By]
    • >>   tflite::ops::micro::pooling::AverageEval(TfLiteContext*, TfLiteNode*) +
    + +

    arm_avgpool_s8_get_buffer_size (Thumb, 4 bytes, Stack size 0 bytes, arm_avgpool_s8.o(.text.arm_avgpool_s8_get_buffer_size)) +

    [Called By]

    • >>   tflite::ops::micro::pooling::AveragePrepare(TfLiteContext*, TfLiteNode*) +
    + +

    arm_convolve_1_x_n_s8 (Thumb, 24 bytes, Stack size 0 bytes, arm_convolve_1_x_n_s8.o(.text.arm_convolve_1_x_n_s8)) +

    [Stack]

    • Max Depth = 456
    • Call Chain = arm_convolve_1_x_n_s8 ⇒ arm_convolve_s8 ⇒ arm_nn_mat_mult_kernel_s8_s16 +
    +
    [Calls]
    • >>   arm_convolve_s8 +
    +
    [Called By]
    • >>   arm_convolve_wrapper_s8 +
    + +

    arm_convolve_1_x_n_s8_get_buffer_size (Thumb, 14 bytes, Stack size 0 bytes, arm_convolve_1_x_n_s8.o(.text.arm_convolve_1_x_n_s8_get_buffer_size)) +

    [Called By]

    • >>   arm_convolve_wrapper_s8_get_buffer_size +
    + +

    arm_convolve_1x1_s8_fast (Thumb, 122 bytes, Stack size 72 bytes, arm_convolve_1x1_s8_fast.o(.text.arm_convolve_1x1_s8_fast)) +

    [Stack]

    • Max Depth = 236
    • Call Chain = arm_convolve_1x1_s8_fast ⇒ arm_nn_mat_mult_nt_t_s8 +
    +
    [Calls]
    • >>   arm_nn_mat_mult_nt_t_s8 +
    +
    [Called By]
    • >>   arm_convolve_wrapper_s8 +
    + +

    arm_convolve_1x1_s8_fast_get_buffer_size (Thumb, 4 bytes, Stack size 0 bytes, arm_convolve_1x1_s8_fast.o(.text.arm_convolve_1x1_s8_fast_get_buffer_size)) +

    [Called By]

    • >>   arm_convolve_wrapper_s8_get_buffer_size +
    + +

    arm_convolve_s8 (Thumb, 2218 bytes, Stack size 312 bytes, arm_convolve_s8.o(.text.arm_convolve_s8)) +

    [Stack]

    • Max Depth = 456
    • Call Chain = arm_convolve_s8 ⇒ arm_nn_mat_mult_kernel_s8_s16 +
    +
    [Calls]
    • >>   arm_q7_to_q15_with_offset +
    • >>   arm_nn_mat_mult_kernel_s8_s16 +
    • >>   __aeabi_memclr +
    +
    [Called By]
    • >>   arm_convolve_wrapper_s8 +
    • >>   arm_convolve_1_x_n_s8 +
    + +

    arm_convolve_s8_get_buffer_size (Thumb, 14 bytes, Stack size 0 bytes, arm_convolve_s8.o(.text.arm_convolve_s8_get_buffer_size)) +

    [Called By]

    • >>   arm_convolve_wrapper_s8_get_buffer_size +
    + +

    arm_convolve_wrapper_s8 (Thumb, 114 bytes, Stack size 8 bytes, arm_convolve_wrapper_s8.o(.text.arm_convolve_wrapper_s8)) +

    [Stack]

    • Max Depth = 464
    • Call Chain = arm_convolve_wrapper_s8 ⇒ arm_convolve_s8 ⇒ arm_nn_mat_mult_kernel_s8_s16 +
    +
    [Calls]
    • >>   arm_convolve_s8 +
    • >>   arm_convolve_1x1_s8_fast +
    • >>   arm_convolve_1_x_n_s8 +
    +
    [Called By]
    • >>   tflite::ops::micro::conv::EvalQuantizedPerChannel(TfLiteContext*, TfLiteNode*, TfLiteConvParams*, const tflite::ops::micro::conv::OpData&, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*, TfLiteEvalTensor*) +
    + +

    arm_convolve_wrapper_s8_get_buffer_size (Thumb, 112 bytes, Stack size 0 bytes, arm_convolve_wrapper_s8.o(.text.arm_convolve_wrapper_s8_get_buffer_size)) +

    [Calls]

    • >>   arm_convolve_s8_get_buffer_size +
    • >>   arm_convolve_1x1_s8_fast_get_buffer_size +
    • >>   arm_convolve_1_x_n_s8_get_buffer_size +
    +
    [Called By]
    • >>   tflite::ops::micro::conv::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    arm_depthwise_conv_3x3_s8 (Thumb, 3112 bytes, Stack size 348 bytes, arm_depthwise_conv_3x3_s8.o(.text.arm_depthwise_conv_3x3_s8)) +

    [Stack]

    • Max Depth = 348
    • Call Chain = arm_depthwise_conv_3x3_s8 +
    +
    [Called By]
    • >>   arm_depthwise_conv_wrapper_s8 +
    + +

    arm_depthwise_conv_s8 (Thumb, 2926 bytes, Stack size 248 bytes, arm_depthwise_conv_s8.o(.text.arm_depthwise_conv_s8)) +

    [Stack]

    • Max Depth = 248
    • Call Chain = arm_depthwise_conv_s8 +
    +
    [Called By]
    • >>   arm_depthwise_conv_wrapper_s8 +
    + +

    arm_depthwise_conv_s8_opt (Thumb, 2668 bytes, Stack size 280 bytes, arm_depthwise_conv_s8_opt.o(.text.arm_depthwise_conv_s8_opt)) +

    [Stack]

    • Max Depth = 308
    • Call Chain = arm_depthwise_conv_s8_opt ⇒ arm_q7_to_q15_with_offset +
    +
    [Calls]
    • >>   arm_q7_to_q15_with_offset +
    • >>   __aeabi_memclr +
    +
    [Called By]
    • >>   arm_depthwise_conv_wrapper_s8 +
    + +

    arm_depthwise_conv_s8_opt_get_buffer_size (Thumb, 14 bytes, Stack size 0 bytes, arm_depthwise_conv_s8_opt.o(.text.arm_depthwise_conv_s8_opt_get_buffer_size)) +

    [Called By]

    • >>   arm_depthwise_conv_wrapper_s8_get_buffer_size +
    + +

    arm_depthwise_conv_u8_basic_ver1 (Thumb, 4146 bytes, Stack size 320 bytes, arm_depthwise_conv_u8_basic_ver1.o(.text.arm_depthwise_conv_u8_basic_ver1)) +

    [Stack]

    • Max Depth = 320
    • Call Chain = arm_depthwise_conv_u8_basic_ver1 +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    arm_depthwise_conv_wrapper_s8 (Thumb, 70 bytes, Stack size 8 bytes, arm_depthwise_conv_wrapper_s8.o(.text.arm_depthwise_conv_wrapper_s8)) +

    [Stack]

    • Max Depth = 356
    • Call Chain = arm_depthwise_conv_wrapper_s8 ⇒ arm_depthwise_conv_3x3_s8 +
    +
    [Calls]
    • >>   arm_depthwise_conv_s8_opt +
    • >>   arm_depthwise_conv_s8 +
    • >>   arm_depthwise_conv_3x3_s8 +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    arm_depthwise_conv_wrapper_s8_get_buffer_size (Thumb, 20 bytes, Stack size 0 bytes, arm_depthwise_conv_wrapper_s8.o(.text.arm_depthwise_conv_wrapper_s8_get_buffer_size)) +

    [Calls]

    • >>   arm_depthwise_conv_s8_opt_get_buffer_size +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    arm_nn_accumulate_q7_to_q15 (Thumb, 412 bytes, Stack size 24 bytes, arm_nn_accumulate_q7_to_q15.o(.text.arm_nn_accumulate_q7_to_q15)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = arm_nn_accumulate_q7_to_q15 +
    +
    [Called By]
    • >>   arm_avgpool_s8 +
    + +

    arm_nn_mat_mult_kernel_s8_s16 (Thumb, 2244 bytes, Stack size 144 bytes, arm_nn_mat_mult_kernel_s8_s16.o(.text.arm_nn_mat_mult_kernel_s8_s16)) +

    [Stack]

    • Max Depth = 144
    • Call Chain = arm_nn_mat_mult_kernel_s8_s16 +
    +
    [Called By]
    • >>   arm_convolve_s8 +
    + +

    arm_nn_mat_mult_nt_t_s8 (Thumb, 3448 bytes, Stack size 164 bytes, arm_nn_mat_mult_nt_t_s8.o(.text.arm_nn_mat_mult_nt_t_s8)) +

    [Stack]

    • Max Depth = 164
    • Call Chain = arm_nn_mat_mult_nt_t_s8 +
    +
    [Called By]
    • >>   arm_convolve_1x1_s8_fast +
    + +

    arm_q7_to_q15_no_shift (Thumb, 294 bytes, Stack size 20 bytes, arm_q7_to_q15_no_shift.o(.text.arm_q7_to_q15_no_shift)) +

    [Stack]

    • Max Depth = 20
    • Call Chain = arm_q7_to_q15_no_shift +
    +
    [Called By]
    • >>   arm_avgpool_s8 +
    + +

    arm_q7_to_q15_with_offset (Thumb, 326 bytes, Stack size 28 bytes, arm_q7_to_q15_with_offset.o(.text.arm_q7_to_q15_with_offset)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = arm_q7_to_q15_with_offset +
    +
    [Called By]
    • >>   arm_depthwise_conv_s8_opt +
    • >>   arm_convolve_s8 +
    + +

    arm_softmax_s8 (Thumb, 2552 bytes, Stack size 88 bytes, arm_softmax_s8.o(.text.arm_softmax_s8)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = arm_softmax_s8 +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    + +

    board_init (Thumb, 148 bytes, Stack size 248 bytes, mcu_init.o(.text.board_init)) +

    [Stack]

    • Max Depth = 404
    • Call Chain = board_init ⇒ MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   MX_LPUART1_UART_Init +
    • >>   MX_GPIO_Init +
    • >>   MX_TIM4_Init +
    • >>   MX_SPI1_Init +
    • >>   MX_I2C1_Init +
    • >>   MX_DMA_Init +
    • >>   MX_DCMI_Init +
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_RCCEx_PeriphCLKConfig +
    • >>   HAL_PWREx_ControlVoltageScaling +
    • >>   HAL_Init +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   main +
    + +

    cpu_context_switch (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.cpu_context_switch)) +

    [Calls]

    • >>   port_context_switch +
    +
    [Called By]
    • >>   knl_sched +
    • >>   tos_knl_sched_unlock +
    + +

    cpu_init (Thumb, 58 bytes, Stack size 8 bytes, tos_cpu.o(.text.cpu_init)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = cpu_init ⇒ __aeabi_uldivmod +
    +
    [Calls]
    • >>   port_systick_priority_set +
    • >>   port_systick_config +
    • >>   __aeabi_uldivmod +
    +
    [Called By]
    • >>   tos_knl_init +
    + +

    cpu_irq_context_switch (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.cpu_irq_context_switch)) +

    [Calls]

    • >>   port_irq_context_switch +
    +
    [Called By]
    • >>   tos_knl_irq_leave +
    + +

    cpu_sched_start (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.cpu_sched_start)) +

    [Calls]

    • >>   port_sched_start +
    +
    [Called By]
    • >>   tos_knl_start +
    + +

    cpu_task_stk_init (Thumb, 132 bytes, Stack size 24 bytes, tos_cpu.o(.text.cpu_task_stk_init)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = cpu_task_stk_init +
    +
    [Calls]
    • >>   __aeabi_memset +
    +
    [Called By]
    • >>   tos_task_create +
    + +

    delay_ms (Thumb, 74 bytes, Stack size 8 bytes, delay.o(.text.delay_ms)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = delay_ms +
    +
    [Called By]
    • >>   OV2640_Init +
    + +

    delay_us (Thumb, 74 bytes, Stack size 8 bytes, delay.o(.text.delay_us)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = delay_us +
    +
    [Called By]
    • >>   SCCB_WR_Byte +
    • >>   SCCB_RD_Byte +
    • >>   SCCB_WR_Reg +
    • >>   SCCB_RD_Reg +
    + +

    ferror (Thumb, 6 bytes, Stack size 0 bytes, retarget.o(.text.ferror)) +

    [Called By]

    • >>   _printf_char_file +
    + +

    fgetc (Thumb, 40 bytes, Stack size 16 bytes, mcu_init.o(.text.fgetc)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   HAL_UART_Receive +
    +
    [Called By]
    • >>   getc +
    + +

    fputc (Thumb, 60 bytes, Stack size 16 bytes, mcu_init.o(.text.fputc)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   HAL_UART_Transmit +
    +
    [Called By]
    • >>   fwrite +
    • >>   puts +
    +
    [Address Reference Count : 1]
    • _printf_char_file.o(.text) +
    +

    knl_is_idle (Thumb, 18 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_idle)) +

    [Called By]

    • >>   tos_task_create +
    • >>   task_do_destroy +
    + +

    knl_is_inirq (Thumb, 18 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_inirq)) +

    [Called By]

    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   tos_task_destroy +
    • >>   tos_task_create_dyn +
    + +

    knl_is_sched_locked (Thumb, 18 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_sched_locked)) +

    [Called By]

    • >>   tos_task_delay +
    • >>   tos_task_destroy +
    + +

    knl_is_self (Thumb, 20 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_self)) +

    [Called By]

    • >>   tos_task_prio_change +
    • >>   tos_task_destroy +
    + +

    knl_sched (Thumb, 92 bytes, Stack size 8 bytes, tos_sys.o(.text.knl_sched)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = knl_sched +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_context_switch +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   task_do_destroy +
    + +

    main (Thumb, 68 bytes, Stack size 8 bytes, main.o(.text.main)) +

    [Stack]

    • Max Depth = 412 + Unknown Stack Size +
    • Call Chain = main ⇒ board_init ⇒ MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   osThreadCreate +
    • >>   osKernelStart +
    • >>   osKernelInitialize +
    • >>   board_init +
    • >>   puts +
    +
    [Called By]
    • >>   __rt_entry_main +
    + +

    mmheap_init_with_pool (Thumb, 22 bytes, Stack size 16 bytes, tos_mmheap.o(.text.mmheap_init_with_pool)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = mmheap_init_with_pool ⇒ tos_mmheap_pool_add +
    +
    [Calls]
    • >>   tos_mmheap_pool_add +
    • >>   mmheap_ctl_init +
    +
    [Called By]
    • >>   tos_knl_init +
    + +

    mutex_release (Thumb, 84 bytes, Stack size 16 bytes, tos_mutex.o(.text.mutex_release)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   pend_wakeup_all +
    • >>   tos_task_prio_change +
    +
    [Called By]
    • >>   task_do_destroy +
    + +

    osDelay (Thumb, 32 bytes, Stack size 8 bytes, cmsis_os.o(.text.osDelay)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = osDelay ⇒ tos_task_delay ⇒ tick_list_add +
    +
    [Calls]
    • >>   tos_task_delay +
    • >>   tos_millisec2tick +
    +
    [Called By]
    • >>   task2 +
    • >>   task1 +
    + +

    osKernelInitialize (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(.text.osKernelInitialize)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = osKernelInitialize ⇒ tos_knl_init ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   tos_knl_init +
    +
    [Called By]
    • >>   main +
    + +

    osKernelStart (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(.text.osKernelStart)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = osKernelStart ⇒ tos_knl_start +
    +
    [Calls]
    • >>   tos_knl_start +
    +
    [Called By]
    • >>   main +
    + +

    osThreadCreate (Thumb, 126 bytes, Stack size 40 bytes, cmsis_os.o(.text.osThreadCreate)) +

    [Stack]

    • Max Depth = 152 + Unknown Stack Size +
    • Call Chain = osThreadCreate ⇒ tos_task_create_dyn ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   tos_task_create +
    • >>   tos_task_create_dyn +
    +
    [Called By]
    • >>   main +
    • >>   application_entry +
    + +

    pend_highest_pending_prio_get (Thumb, 14 bytes, Stack size 0 bytes, tos_pend.o(.text.pend_highest_pending_prio_get)) +

    [Called By]

    • >>   tos_task_prio_change +
    + +

    pend_list_adjust (Thumb, 114 bytes, Stack size 8 bytes, tos_pend.o(.text.pend_list_adjust)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = pend_list_adjust +
    +
    [Called By]
    • >>   tos_task_prio_change +
    + +

    pend_list_remove (Thumb, 26 bytes, Stack size 0 bytes, tos_pend.o(.text.pend_list_remove)) +

    [Called By]

    • >>   task_do_destroy +
    + +

    pend_task_wakeup (Thumb, 66 bytes, Stack size 8 bytes, tos_pend.o(.text.pend_task_wakeup)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = pend_task_wakeup ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tick_list_remove +
    • >>   readyqueue_add +
    +
    [Called By]
    • >>   tos_tick_handler +
    + +

    pend_wakeup_all (Thumb, 112 bytes, Stack size 32 bytes, tos_pend.o(.text.pend_wakeup_all)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tick_list_remove +
    • >>   readyqueue_add +
    +
    [Called By]
    • >>   mutex_release +
    + +

    person_detect (Thumb, 152 bytes, Stack size 32 bytes, main_functions.o(.text.person_detect)) +

    [Stack]

    • Max Depth = 176 + Unknown Stack Size +
    • Call Chain = person_detect ⇒ tflite::MicroInterpreter::Invoke() ⇒ tflite::MicroInterpreter::AllocateTensors() ⇒ tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   GetImage(tflite::ErrorReporter*, int, int, int, signed char*, unsigned char*) +
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   RespondToDetection(tflite::ErrorReporter*, signed char, signed char) +
    • >>   tflite::MicroInterpreter::output(unsigned) +
    • >>   tflite::MicroInterpreter::Invoke() +
    +
    [Called By]
    • >>   task1 +
    + +

    person_detect_init (Thumb, 408 bytes, Stack size 32 bytes, main_functions.o(.text.person_detect_init)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = person_detect_init ⇒ tflite::MicroInterpreter::AllocateTensors() ⇒ tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddConv2D() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddDepthwiseConv2D() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddAveragePool2D() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddSoftmax() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)5⟩::AddReshape() +
    • >>   tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) +
    • >>   tflite::MicroInterpreter::input(unsigned) +
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    • >>   __cxa_atexit +
    +
    [Called By]
    • >>   application_entry +
    + +

    port_systick_config (Thumb, 42 bytes, Stack size 0 bytes, port_c.o(.text.port_systick_config)) +

    [Called By]

    • >>   cpu_init +
    + +

    port_systick_priority_set (Thumb, 14 bytes, Stack size 0 bytes, port_c.o(.text.port_systick_priority_set)) +

    [Called By]

    • >>   cpu_init +
    + +

    readyqueue_add (Thumb, 152 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_add)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = readyqueue_add +
    +
    [Called By]
    • >>   pend_wakeup_all +
    • >>   pend_task_wakeup +
    + +

    readyqueue_add_head (Thumb, 78 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_add_head)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = readyqueue_add_head +
    +
    [Called By]
    • >>   tos_task_prio_change +
    + +

    readyqueue_add_tail (Thumb, 80 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_add_tail)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = readyqueue_add_tail +
    +
    [Called By]
    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    + +

    readyqueue_highest_ready_task_get (Thumb, 20 bytes, Stack size 0 bytes, tos_sched.o(.text.readyqueue_highest_ready_task_get)) +

    [Called By]

    • >>   tos_knl_irq_leave +
    • >>   knl_sched +
    • >>   tos_knl_start +
    • >>   tos_knl_sched_unlock +
    + +

    readyqueue_init (Thumb, 96 bytes, Stack size 0 bytes, tos_sched.o(.text.readyqueue_init)) +

    [Called By]

    • >>   tos_knl_init +
    + +

    readyqueue_remove (Thumb, 160 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_remove)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = readyqueue_remove +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   task_do_destroy +
    + +

    task1 (Thumb, 464 bytes, Stack size 8 bytes, tflitemicro_person_detection.o(.text.task1)) +

    [Stack]

    • Max Depth = 184 + Unknown Stack Size +
    • Call Chain = task1 ⇒ person_detect ⇒ tflite::MicroInterpreter::Invoke() ⇒ tflite::MicroInterpreter::AllocateTensors() ⇒ tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_DCMI_Stop +
    • >>   HAL_DCMI_Start_DMA +
    • >>   osDelay +
    • >>   person_detect +
    • >>   LCD_2IN4_Display +
    • >>   puts +
    +
    [Address Reference Count : 1]
    • tflitemicro_person_detection.o(.rodata.os_thread_def_task1) +
    +

    task2 (Thumb, 8 bytes, Stack size 0 bytes, tflitemicro_person_detection.o(.text.task2)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size + + In Cycle +
    • Call Chain = task2 ⇒ task2 (Cycle) +
    +
    [Calls]
    • >>   osDelay +
    • >>   task2 +
    +
    [Called By]
    • >>   task2 +
    +
    [Address Reference Count : 1]
    • tflitemicro_person_detection.o(.rodata.os_thread_def_task2) +
    +

    task_free_all (Thumb, 68 bytes, Stack size 24 bytes, tos_task.o(.text.task_free_all)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = task_free_all ⇒ tos_mmheap_free ⇒ blk_merge_next +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   tos_mmheap_free +
    +
    [Called By]
    • >>   knl_idle_entry +
    + +

    tick_list_add (Thumb, 186 bytes, Stack size 32 bytes, tos_tick.o(.text.tick_list_add)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = tick_list_add +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   tos_task_delay +
    + +

    tick_list_remove (Thumb, 112 bytes, Stack size 16 bytes, tos_tick.o(.text.tick_list_remove)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = tick_list_remove +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   pend_wakeup_all +
    • >>   pend_task_wakeup +
    • >>   task_do_destroy +
    + +

    timer_init (Thumb, 4 bytes, Stack size 0 bytes, tos_timer.o(.text.timer_init)) +

    [Called By]

    • >>   tos_knl_init +
    + +

    timer_update (Thumb, 340 bytes, Stack size 40 bytes, tos_timer.o(.text.timer_update)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = timer_update ⇒ tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   tos_knl_sched_unlock +
    • >>   tos_knl_sched_lock +
    +
    [Called By]
    • >>   tos_tick_handler +
    + +

    tos_cpu_clz (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.tos_cpu_clz)) +

    [Calls]

    • >>   port_clz +
    +
    [Called By]
    • >>   tos_mmheap_free +
    • >>   tos_mmheap_pool_add +
    • >>   blk_prepare_used +
    • >>   blk_merge_next +
    • >>   blk_locate_free +
    • >>   readyqueue_remove +
    + +

    tos_cpu_cpsr_restore (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.tos_cpu_cpsr_restore)) +

    [Calls]

    • >>   port_cpsr_restore +
    +
    [Called By]
    • >>   tos_tick_handler +
    • >>   tos_knl_irq_leave +
    • >>   tos_task_delay +
    • >>   knl_sched +
    • >>   tick_list_remove +
    • >>   tick_list_add +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   tos_knl_sched_unlock +
    • >>   task_free_all +
    • >>   tos_knl_sched_lock +
    • >>   timer_update +
    • >>   task_do_destroy +
    + +

    tos_cpu_cpsr_save (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.tos_cpu_cpsr_save)) +

    [Calls]

    • >>   port_cpsr_save +
    +
    [Called By]
    • >>   tos_tick_handler +
    • >>   tos_knl_irq_leave +
    • >>   tos_task_delay +
    • >>   knl_sched +
    • >>   tick_list_remove +
    • >>   tick_list_add +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   tos_knl_sched_unlock +
    • >>   task_free_all +
    • >>   tos_knl_sched_lock +
    • >>   timer_update +
    • >>   task_do_destroy +
    + +

    tos_knl_init (Thumb, 112 bytes, Stack size 24 bytes, tos_sys.o(.text.tos_knl_init)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = tos_knl_init ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   cpu_init +
    • >>   mmheap_init_with_pool +
    • >>   tos_task_create +
    • >>   timer_init +
    • >>   readyqueue_init +
    +
    [Called By]
    • >>   osKernelInitialize +
    + +

    tos_knl_irq_enter (Thumb, 36 bytes, Stack size 0 bytes, tos_sys.o(.text.tos_knl_irq_enter)) +

    [Called By]

    • >>   SysTick_Handler +
    • >>   LPUART1_IRQHandler +
    + +

    tos_knl_irq_leave (Thumb, 108 bytes, Stack size 8 bytes, tos_sys.o(.text.tos_knl_irq_leave)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_irq_leave +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_irq_context_switch +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   SysTick_Handler +
    • >>   LPUART1_IRQHandler +
    + +

    tos_knl_is_running (Thumb, 20 bytes, Stack size 0 bytes, tos_sys.o(.text.tos_knl_is_running)) +

    [Called By]

    • >>   tos_tick_handler +
    • >>   SysTick_Handler +
    • >>   tos_task_create +
    + +

    tos_knl_sched_lock (Thumb, 78 bytes, Stack size 8 bytes, tos_sys.o(.text.tos_knl_sched_lock)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_sched_lock +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   timer_update +
    • >>   tos_task_destroy +
    + +

    tos_knl_sched_unlock (Thumb, 152 bytes, Stack size 16 bytes, tos_sys.o(.text.tos_knl_sched_unlock)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_context_switch +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   timer_update +
    • >>   tos_task_destroy +
    + +

    tos_knl_start (Thumb, 58 bytes, Stack size 8 bytes, tos_sys.o(.text.tos_knl_start)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_start +
    +
    [Calls]
    • >>   cpu_sched_start +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   osKernelStart +
    + +

    tos_millisec2tick (Thumb, 4 bytes, Stack size 0 bytes, tos_time.o(.text.tos_millisec2tick)) +

    [Called By]

    • >>   osDelay +
    + +

    tos_mmheap_alloc (Thumb, 58 bytes, Stack size 8 bytes, tos_mmheap.o(.text.tos_mmheap_alloc)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = tos_mmheap_alloc ⇒ blk_prepare_used +
    +
    [Calls]
    • >>   blk_prepare_used +
    • >>   blk_locate_free +
    +
    [Called By]
    • >>   tos_task_create_dyn +
    + +

    tos_mmheap_calloc (Thumb, 72 bytes, Stack size 16 bytes, tos_mmheap.o(.text.tos_mmheap_calloc)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = tos_mmheap_calloc ⇒ blk_prepare_used +
    +
    [Calls]
    • >>   blk_prepare_used +
    • >>   blk_locate_free +
    • >>   __aeabi_memclr +
    +
    [Called By]
    • >>   tos_task_create_dyn +
    + +

    tos_mmheap_free (Thumb, 298 bytes, Stack size 24 bytes, tos_mmheap.o(.text.tos_mmheap_free)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = tos_mmheap_free ⇒ blk_merge_next +
    +
    [Calls]
    • >>   tos_cpu_clz +
    • >>   blk_merge_next +
    +
    [Called By]
    • >>   task_free_all +
    • >>   tos_task_destroy +
    • >>   tos_task_create_dyn +
    + +

    tos_mmheap_pool_add (Thumb, 288 bytes, Stack size 24 bytes, tos_mmheap.o(.text.tos_mmheap_pool_add)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = tos_mmheap_pool_add +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   mmheap_init_with_pool +
    + +

    tos_task_create (Thumb, 306 bytes, Stack size 40 bytes, tos_task.o(.text.tos_task_create)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   tos_knl_is_running +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_task_stk_init +
    • >>   knl_sched +
    • >>   knl_is_inirq +
    • >>   knl_is_idle +
    • >>   readyqueue_add_tail +
    • >>   strncpy +
    +
    [Called By]
    • >>   osThreadCreate +
    • >>   tos_knl_init +
    • >>   tos_task_create_dyn +
    + +

    tos_task_create_dyn (Thumb, 192 bytes, Stack size 48 bytes, tos_task.o(.text.tos_task_create_dyn)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = tos_task_create_dyn ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   knl_is_inirq +
    • >>   tos_mmheap_free +
    • >>   tos_mmheap_alloc +
    • >>   tos_mmheap_calloc +
    • >>   tos_task_create +
    +
    [Called By]
    • >>   osThreadCreate +
    + +

    tos_task_delay (Thumb, 144 bytes, Stack size 24 bytes, tos_task.o(.text.tos_task_delay)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = tos_task_delay ⇒ tick_list_add +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   knl_sched +
    • >>   knl_is_sched_locked +
    • >>   knl_is_inirq +
    • >>   tick_list_add +
    • >>   readyqueue_remove +
    • >>   readyqueue_add_tail +
    +
    [Called By]
    • >>   osDelay +
    + +

    tos_task_destroy (Thumb, 176 bytes, Stack size 16 bytes, tos_task.o(.text.tos_task_destroy)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = tos_task_destroy ⇒ task_do_destroy ⇒ mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   knl_is_sched_locked +
    • >>   knl_is_inirq +
    • >>   tos_mmheap_free +
    • >>   knl_is_self +
    • >>   tos_knl_sched_unlock +
    • >>   tos_knl_sched_lock +
    • >>   task_do_destroy +
    +
    [Called By]
    • >>   task_exit +
    + +

    tos_task_prio_change (Thumb, 226 bytes, Stack size 32 bytes, tos_task.o(.text.tos_task_prio_change)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = tos_task_prio_change ⇒ readyqueue_remove +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   knl_sched +
    • >>   knl_is_inirq +
    • >>   readyqueue_remove +
    • >>   pend_list_adjust +
    • >>   pend_highest_pending_prio_get +
    • >>   knl_is_self +
    • >>   readyqueue_add_tail +
    • >>   readyqueue_add_head +
    +
    [Called By]
    • >>   mutex_release +
    + +

    tos_tick_handler (Thumb, 124 bytes, Stack size 16 bytes, tos_tick.o(.text.tos_tick_handler)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = tos_tick_handler ⇒ timer_update ⇒ tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_knl_is_running +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   pend_task_wakeup +
    • >>   timer_update +
    +
    [Called By]
    • >>   SysTick_Handler +
    + +

    _btod_d2e (Thumb, 62 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e)) +

    [Calls]

    • >>   _d2e_norm_op1 +
    +
    [Called By]
    • >>   _fp_digits +
    + +

    _d2e_denorm_low (Thumb, 70 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_denorm_low)) +

    [Called By]

    • >>   _d2e_norm_op1 +
    + +

    _d2e_norm_op1 (Thumb, 96 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_norm_op1)) +

    [Calls]

    • >>   _d2e_denorm_low +
    +
    [Called By]
    • >>   _btod_d2e +
    + +

    __btod_div_common (Thumb, 696 bytes, Stack size 24 bytes, btod.o(CL$$btod_div_common)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __btod_div_common +
    +
    [Called By]
    • >>   _btod_edivd +
    • >>   _btod_ediv +
    + +

    _e2d (Thumb, 122 bytes, Stack size 32 bytes, btod.o(CL$$btod_e2d)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _e2d ⇒ _e2e +
    +
    [Calls]
    • >>   _e2e +
    +
    [Called By]
    • >>   _btod_emuld +
    • >>   _btod_edivd +
    + +

    _e2e (Thumb, 220 bytes, Stack size 24 bytes, btod.o(CL$$btod_e2e)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = _e2e +
    +
    [Called By]
    • >>   _btod_emul +
    • >>   _btod_ediv +
    • >>   _e2d +
    + +

    _btod_ediv (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_ediv)) +

    [Stack]

    • Max Depth = 52
    • Call Chain = _btod_ediv ⇒ _e2e +
    +
    [Calls]
    • >>   _e2e +
    • >>   __btod_div_common +
    +
    [Called By]
    • >>   _btod_etento +
    • >>   _fp_digits +
    + +

    _btod_edivd (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_edivd)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = _btod_edivd ⇒ _e2d ⇒ _e2e +
    +
    [Calls]
    • >>   _e2d +
    • >>   __btod_div_common +
    +
    [Called By]
    • >>   _fp_value +
    + +

    _btod_emul (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_emul)) +

    [Stack]

    • Max Depth = 52
    • Call Chain = _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __btod_mult_common +
    • >>   _e2e +
    +
    [Called By]
    • >>   _btod_etento +
    • >>   _fp_digits +
    + +

    _btod_emuld (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_emuld)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = _btod_emuld ⇒ _e2d ⇒ _e2e +
    +
    [Calls]
    • >>   __btod_mult_common +
    • >>   _e2d +
    +
    [Called By]
    • >>   _fp_value +
    + +

    __btod_mult_common (Thumb, 580 bytes, Stack size 16 bytes, btod.o(CL$$btod_mult_common)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __btod_mult_common +
    +
    [Called By]
    • >>   _btod_emuld +
    • >>   _btod_emul +
    + +

    __ARM_fpclassify (Thumb, 48 bytes, Stack size 8 bytes, fpclassify.o(i.__ARM_fpclassify)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __ARM_fpclassify +
    +
    [Called By]
    • >>   _printf_fp_hex_real +
    • >>   _printf_fp_dec_real +
    + +

    __ARM_fpclassifyf (Thumb, 38 bytes, Stack size 0 bytes, fpclassifyf.o(i.__ARM_fpclassifyf)) +

    [Called By]

    • >>   __hardfp_expf +
    + +

    __hardfp___mathlib_tofloat (Thumb, 232 bytes, Stack size 32 bytes, narrow.o(i.__hardfp___mathlib_tofloat)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = __hardfp___mathlib_tofloat ⇒ frexp ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_cdrcmple +
    • >>   __aeabi_cdcmpeq +
    • >>   __set_errno +
    • >>   frexp +
    • >>   __aeabi_d2f +
    +
    [Called By]
    • >>   __mathlib_narrow +
    + +

    __hardfp_expf (Thumb, 430 bytes, Stack size 16 bytes, expf.o(i.__hardfp_expf)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __hardfp_expf ⇒ __set_errno +
    +
    [Calls]
    • >>   __set_errno +
    • >>   __mathlib_flt_underflow +
    • >>   __mathlib_flt_overflow +
    • >>   __mathlib_flt_infnan +
    • >>   __ARM_fpclassifyf +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    + +

    __mathlib_expf (Thumb, 0 bytes, Stack size 16 bytes, expf.o(i.__hardfp_expf), UNUSED) + +

    __hardfp_floor (Thumb, 252 bytes, Stack size 40 bytes, floor.o(i.__hardfp_floor)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = __hardfp_floor ⇒ __aeabi_cdrcmple +
    +
    [Calls]
    • >>   __aeabi_cdrcmple +
    • >>   __aeabi_drsub +
    • >>   __aeabi_dadd +
    +
    [Called By]
    • >>   tflite::CalculateInputRadius(int, int, int) +
    + +

    __hardfp_frexp (Thumb, 116 bytes, Stack size 24 bytes, frexp.o(i.__hardfp_frexp)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = __hardfp_frexp ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_dmul +
    +
    [Called By]
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    + +

    __hardfp_ldexp (Thumb, 200 bytes, Stack size 48 bytes, ldexp.o(i.__hardfp_ldexp)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = __hardfp_ldexp ⇒ __mathlib_dbl_underflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_cdcmpeq +
    • >>   __set_errno +
    • >>   __mathlib_dbl_underflow +
    • >>   __mathlib_dbl_overflow +
    • >>   __ARM_scalbn +
    +
    [Called By]
    • >>   __support_ldexp +
    + +

    __hardfp_round (Thumb, 194 bytes, Stack size 64 bytes, round.o(i.__hardfp_round)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   _drnd +
    • >>   __aeabi_cdrcmple +
    • >>   __aeabi_cdcmple +
    • >>   __aeabi_dsub +
    • >>   __aeabi_dadd +
    +
    [Called By]
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    + +

    __hardfp_roundf (Thumb, 154 bytes, Stack size 16 bytes, roundf.o(i.__hardfp_roundf)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __hardfp_roundf ⇒ _frnd ⇒ __fpl_fnaninf +
    +
    [Calls]
    • >>   _frnd +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::CalculateActivationRangeQuantized(TfLiteContext*, TfLiteFusedActivation, TfLiteTensor*, int*, int*) +
    + +

    __mathlib_dbl_overflow (Thumb, 24 bytes, Stack size 8 bytes, dunder.o(i.__mathlib_dbl_overflow)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = __mathlib_dbl_overflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_dmul +
    +
    [Called By]
    • >>   __hardfp_ldexp +
    + +

    __mathlib_dbl_underflow (Thumb, 24 bytes, Stack size 8 bytes, dunder.o(i.__mathlib_dbl_underflow)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = __mathlib_dbl_underflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_dmul +
    +
    [Called By]
    • >>   __hardfp_ldexp +
    + +

    __mathlib_flt_infnan (Thumb, 6 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_infnan)) +

    [Called By]

    • >>   __hardfp_expf +
    + +

    __mathlib_flt_overflow (Thumb, 10 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_overflow)) +

    [Called By]

    • >>   __hardfp_expf +
    + +

    __mathlib_flt_underflow (Thumb, 10 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_underflow)) +

    [Called By]

    • >>   __hardfp_expf +
    + +

    __mathlib_narrow (Thumb, 18 bytes, Stack size 8 bytes, narrow.o(i.__mathlib_narrow)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = __mathlib_narrow ⇒ __hardfp___mathlib_tofloat ⇒ frexp ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __hardfp___mathlib_tofloat +
    +
    [Called By]
    • >>   _scanf_really_hex_real +
    • >>   _scanf_really_real +
    + +

    __support_ldexp (Thumb, 20 bytes, Stack size 8 bytes, ldexp.o(i.__support_ldexp)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = __support_ldexp ⇒ __hardfp_ldexp ⇒ __mathlib_dbl_underflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __hardfp_ldexp +
    +
    [Called By]
    • >>   _scanf_really_hex_real +
    + +

    _is_digit (Thumb, 14 bytes, Stack size 0 bytes, __printf_wp.o(i._is_digit)) +

    [Called By]

    • >>   __printf +
    • >>   _scanf_really_real +
    + +

    frexp (Thumb, 118 bytes, Stack size 16 bytes, frexp.o(i.frexp)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = frexp ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_dmul +
    +
    [Called By]
    • >>   __hardfp___mathlib_tofloat +
    + +

    strtod (Thumb, 36 bytes, Stack size 16 bytes, strtod.o(i.strtod)) +

    [Stack]

    • Max Depth = 460
    • Call Chain = strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __strtod_int +
    +
    [Called By]
    • >>   T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) +
    + +

    strtof (Thumb, 24 bytes, Stack size 8 bytes, strtof.o(i.strtof)) +

    [Stack]

    • Max Depth = 452
    • Call Chain = strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __strtof_int +
    +
    [Called By]
    • >>   T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) +
    + +

    strtold (Thumb, 36 bytes, Stack size 16 bytes, strtold.o(i.strtold)) +

    [Stack]

    • Max Depth = 460
    • Call Chain = strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __strtod_int +
    +
    [Called By]
    • >>   T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) +
    + +

    _get_lc_ctype (Thumb, 44 bytes, Stack size 8 bytes, lc_ctype_c.o(locale$$code)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _get_lc_ctype ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Called By]
    • >>   __rt_lib_init_lc_ctype_2 +
    +
    [Address Reference Count : 1]
    • rt_ctype_table.o(.text) +
    +

    _get_lc_time (Thumb, 44 bytes, Stack size 8 bytes, lc_time_c.o(locale$$code)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _get_lc_time ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Called By]
    • >>   __rt_lib_init_lc_time_2 +
    + +

    _get_lc_numeric (Thumb, 44 bytes, Stack size 8 bytes, lc_numeric_c.o(locale$$code)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _get_lc_numeric ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Called By]
    • >>   __rt_lib_init_lc_numeric_2 +
    + +

    __aeabi_d2f (Thumb, 0 bytes, Stack size 32 bytes, d2f.o(x$fpl$d2f)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_d2f +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   MicroVsnprintf +
    • >>   __hardfp___mathlib_tofloat +
    + +

    _d2f (Thumb, 98 bytes, Stack size 32 bytes, d2f.o(x$fpl$d2f), UNUSED) +

    [Calls]

    • >>   __fpl_fretinf +
    • >>   __fpl_dnaninf +
    + +

    __aeabi_dadd (Thumb, 0 bytes, Stack size 16 bytes, daddsub_clz.o(x$fpl$dadd)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __aeabi_dadd +
    +
    [Called By]
    • >>   __hardfp_round +
    • >>   __hardfp_floor +
    + +

    _dadd (Thumb, 332 bytes, Stack size 16 bytes, daddsub_clz.o(x$fpl$dadd), UNUSED) +

    [Calls]

    • >>   __fpl_dretinf +
    • >>   __fpl_dnaninf +
    • >>   _dsub1 +
    + +

    __fpl_dcheck_NaN1 (Thumb, 10 bytes, Stack size 0 bytes, dcheck1.o(x$fpl$dcheck1)) +

    [Calls]

    • >>   __fpl_return_NaN +
    +
    [Called By]
    • >>   __ARM_scalbn +
    + +

    __fpl_dcmp_Inf (Thumb, 24 bytes, Stack size 0 bytes, dcmpi.o(x$fpl$dcmpinf), UNUSED) +

    [Called By]

    • >>   _dcmple +
    • >>   _dcmpge +
    • >>   _dcmpeq +
    + +

    __aeabi_ddiv (Thumb, 0 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_ddiv +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::CalculateInputRadius(int, int, int) +
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    + +

    _ddiv (Thumb, 552 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv), UNUSED) +

    [Calls]

    • >>   __fpl_dretinf +
    • >>   __fpl_dnaninf +
    + +

    __aeabi_cdcmpeq (Thumb, 0 bytes, Stack size 32 bytes, deqf.o(x$fpl$deqf)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_cdcmpeq +
    +
    [Called By]
    • >>   __hardfp_ldexp +
    • >>   __hardfp___mathlib_tofloat +
    + +

    _dcmpeq (Thumb, 120 bytes, Stack size 32 bytes, deqf.o(x$fpl$deqf), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    • >>   __fpl_dcmp_Inf +
    +
    [Called By]
    • >>   _dneq +
    • >>   _deq +
    + +

    __aeabi_d2iz (Thumb, 0 bytes, Stack size 32 bytes, dfix.o(x$fpl$dfix)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_d2iz +
    +
    [Called By]
    • >>   tflite::CalculateInputRadius(int, int, int) +
    + +

    _dfix (Thumb, 94 bytes, Stack size 32 bytes, dfix.o(x$fpl$dfix), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    + +

    __aeabi_i2d (Thumb, 0 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dflt)) +

    [Called By]

    • >>   tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) +
    • >>   tflite::CalculateInputRadius(int, int, int) +
    + +

    _dflt (Thumb, 46 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dflt), UNUSED) + +

    __aeabi_l2d (Thumb, 0 bytes, Stack size 8 bytes, dfltll_clz.o(x$fpl$dfltll)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_l2d +
    +
    [Called By]
    • >>   tflite::CalculateInputRadius(int, int, int) +
    + +

    _ll_sto_d (Thumb, 162 bytes, Stack size 8 bytes, dfltll_clz.o(x$fpl$dfltll), UNUSED) + +

    __aeabi_cdcmpge (Thumb, 0 bytes, Stack size 32 bytes, dgeqf.o(x$fpl$dgeqf), UNUSED) + +

    _dcmpge (Thumb, 120 bytes, Stack size 32 bytes, dgeqf.o(x$fpl$dgeqf), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    • >>   __fpl_dcmp_Inf +
    +
    [Called By]
    • >>   _dgeq +
    • >>   _dgr +
    + +

    __aeabi_cdcmple (Thumb, 0 bytes, Stack size 32 bytes, dleqf.o(x$fpl$dleqf)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_cdcmple +
    +
    [Called By]
    • >>   __hardfp_round +
    + +

    _dcmple (Thumb, 120 bytes, Stack size 32 bytes, dleqf.o(x$fpl$dleqf), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    • >>   __fpl_dcmp_Inf +
    +
    [Called By]
    • >>   _dls +
    • >>   _dleq +
    + +

    __fpl_dcmple_InfNaN (Thumb, 0 bytes, Stack size unknown bytes, dleqf.o(x$fpl$dleqf), UNUSED) +

    [Called By]

    • >>   _drcmple +
    + +

    __aeabi_dmul (Thumb, 0 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_dmul +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) +
    • >>   tflite::CalculateInputRadius(int, int, int) +
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    • >>   frexp +
    • >>   __hardfp_frexp +
    • >>   __mathlib_dbl_underflow +
    • >>   __mathlib_dbl_overflow +
    + +

    _dmul (Thumb, 332 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul), UNUSED) +

    [Calls]

    • >>   __fpl_dretinf +
    • >>   __fpl_dnaninf +
    + +

    __fpl_dnaninf (Thumb, 156 bytes, Stack size 16 bytes, dnaninf.o(x$fpl$dnaninf)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __fpl_dnaninf +
    +
    [Called By]
    • >>   _drnd +
    • >>   _dcmple +
    • >>   _dcmpge +
    • >>   _dcmpeq +
    • >>   _dmul +
    • >>   _ll_sfrom_d +
    • >>   _dfix +
    • >>   _ddiv +
    • >>   _dsub +
    • >>   _dadd +
    • >>   _d2f +
    + +

    __fpl_dretinf (Thumb, 12 bytes, Stack size 0 bytes, dretinf.o(x$fpl$dretinf), UNUSED) +

    [Called By]

    • >>   _f2d +
    • >>   _dmul +
    • >>   _ddiv +
    • >>   _dadd +
    + +

    __aeabi_cdrcmple (Thumb, 0 bytes, Stack size 16 bytes, drleqf.o(x$fpl$drleqf)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __aeabi_cdrcmple +
    +
    [Called By]
    • >>   __hardfp_round +
    • >>   __hardfp_floor +
    • >>   __hardfp___mathlib_tofloat +
    + +

    _drcmple (Thumb, 108 bytes, Stack size 16 bytes, drleqf.o(x$fpl$drleqf), UNUSED) +

    [Calls]

    • >>   __fpl_dcmple_InfNaN +
    + +

    _drnd (Thumb, 180 bytes, Stack size 16 bytes, drnd.o(x$fpl$drnd)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   __fpl_dnaninf +
    +
    [Called By]
    • >>   __hardfp_round +
    + +

    __aeabi_drsub (Thumb, 0 bytes, Stack size 8 bytes, daddsub_clz.o(x$fpl$drsb)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_drsub +
    +
    [Called By]
    • >>   __hardfp_floor +
    + +

    _drsb (Thumb, 22 bytes, Stack size 8 bytes, daddsub_clz.o(x$fpl$drsb), UNUSED) +

    [Calls]

    • >>   _dsub1 +
    • >>   _dadd1 +
    + +

    __aeabi_dsub (Thumb, 0 bytes, Stack size 32 bytes, daddsub_clz.o(x$fpl$dsub)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_dsub +
    +
    [Called By]
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    • >>   __hardfp_round +
    + +

    _dsub (Thumb, 464 bytes, Stack size 32 bytes, daddsub_clz.o(x$fpl$dsub), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    • >>   _dadd1 +
    + +

    __aeabi_f2d (Thumb, 0 bytes, Stack size 16 bytes, f2d.o(x$fpl$f2d)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __aeabi_f2d +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    + +

    _f2d (Thumb, 86 bytes, Stack size 16 bytes, f2d.o(x$fpl$f2d), UNUSED) +

    [Calls]

    • >>   __fpl_fnaninf +
    • >>   __fpl_dretinf +
    + +

    __aeabi_dcmpeq (Thumb, 0 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_dcmpeq +
    +
    [Called By]
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    + +

    _deq (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmpeq +
    + +

    _dneq (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmpeq +
    + +

    __aeabi_dcmpgt (Thumb, 0 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_dcmpgt +
    +
    [Called By]
    • >>   tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) +
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    + +

    _dgr (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmpge +
    + +

    __aeabi_dcmpge (Thumb, 0 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) + +

    _dgeq (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmpge +
    + +

    __aeabi_dcmple (Thumb, 0 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_dcmple +
    +
    [Called By]
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    + +

    _dleq (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmple +
    + +

    __aeabi_dcmplt (Thumb, 0 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) + +

    _dls (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmple +
    + +

    __fpl_fnaninf (Thumb, 140 bytes, Stack size 8 bytes, fnaninf.o(x$fpl$fnaninf)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __fpl_fnaninf +
    +
    [Called By]
    • >>   _frnd +
    • >>   _f2d +
    + +

    _fp_init (Thumb, 26 bytes, Stack size 0 bytes, fpinit.o(x$fpl$fpinit)) +

    [Called By]

    • >>   __rt_lib_init_fp_1 +
    + +

    __fplib_config_fpu_vfp (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED) + +

    __fplib_config_pureend_doubles (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED) + +

    __fpl_fretinf (Thumb, 10 bytes, Stack size 0 bytes, fretinf.o(x$fpl$fretinf), UNUSED) +

    [Called By]

    • >>   _d2f +
    + +

    _frnd (Thumb, 96 bytes, Stack size 8 bytes, frnd.o(x$fpl$frnd)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _frnd ⇒ __fpl_fnaninf +
    +
    [Calls]
    • >>   __fpl_fnaninf +
    +
    [Called By]
    • >>   __hardfp_roundf +
    + +

    __ieee_status (Thumb, 6 bytes, Stack size 0 bytes, istatus.o(x$fpl$ieeestatus)) +

    [Called By]

    • >>   _fp_value +
    + +

    __aeabi_d2lz (Thumb, 0 bytes, Stack size 32 bytes, dfixll.o(x$fpl$llsfromd)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_d2lz +
    +
    [Called By]
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    + +

    _ll_sfrom_d (Thumb, 194 bytes, Stack size 32 bytes, dfixll.o(x$fpl$llsfromd), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    + +

    _printf_fp_dec (Thumb, 4 bytes, Stack size 0 bytes, printf1.o(x$fpl$printf1)) +

    [Stack]

    • Max Depth = 324
    • Call Chain = _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _printf_fp_dec_real +
    +
    [Called By]
    • >>   _printf_g +
    • >>   _printf_e +
    • >>   _printf_f +
    + +

    _printf_fp_hex (Thumb, 4 bytes, Stack size 0 bytes, printf2.o(x$fpl$printf2)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = _printf_fp_hex ⇒ _printf_fp_hex_real ⇒ _printf_fp_infnan ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_fp_hex_real +
    +
    [Called By]
    • >>   _printf_a +
    + +

    __fpl_return_NaN (Thumb, 100 bytes, Stack size 0 bytes, retnan.o(x$fpl$retnan)) +

    [Calls]

    • >>   __fpl_cmpreturn +
    +
    [Called By]
    • >>   __fpl_dcheck_NaN1 +
    + +

    __ARM_scalbn (Thumb, 92 bytes, Stack size 0 bytes, scalbn.o(x$fpl$scalbn)) +

    [Calls]

    • >>   __fpl_dcheck_NaN1 +
    +
    [Called By]
    • >>   __hardfp_ldexp +
    + +

    _scanf_real (Thumb, 4 bytes, Stack size 0 bytes, scanf1.o(x$fpl$scanf1)) +

    [Stack]

    • Max Depth = 340
    • Call Chain = _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _scanf_really_real +
    +
    [Called By]
    • >>   __vfscanf +
    • >>   _local_sscanf +
    + +

    _scanf_hex_real (Thumb, 4 bytes, Stack size 0 bytes, scanf2.o(x$fpl$scanf2)) +

    [Stack]

    • Max Depth = 176
    • Call Chain = _scanf_hex_real ⇒ _scanf_really_hex_real ⇒ __support_ldexp ⇒ __hardfp_ldexp ⇒ __mathlib_dbl_underflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   _scanf_really_hex_real +
    +
    [Called By]
    • >>   _scanf_really_real +
    + +

    _scanf_infnan (Thumb, 4 bytes, Stack size 0 bytes, scanf2.o(x$fpl$scanf2)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = _scanf_infnan ⇒ _scanf_really_infnan +
    +
    [Calls]
    • >>   _scanf_really_infnan +
    +
    [Called By]
    • >>   _scanf_really_real +
    + +

    __fpl_cmpreturn (Thumb, 48 bytes, Stack size 0 bytes, trapv.o(x$fpl$trapveneer)) +

    [Called By]

    • >>   __fpl_return_NaN +
    +

    +

    +Local Symbols +

    +

    UART_DMAAbortOnError (Thumb, 16 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(.text.UART_DMAAbortOnError)) +

    [Calls]

    • >>   HAL_UART_ErrorCallback +
    +
    [Address Reference Count : 1]
    • stm32l4xx_hal_uart.o(.text.HAL_UART_IRQHandler) +
    +

    RCCEx_PLLSAI1_Config (Thumb, 304 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc_ex.o(.text.RCCEx_PLLSAI1_Config)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = RCCEx_PLLSAI1_Config +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_RCCEx_PeriphCLKConfig +
    + +

    RCCEx_PLLSAI2_Config (Thumb, 268 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc_ex.o(.text.RCCEx_PLLSAI2_Config)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = RCCEx_PLLSAI2_Config +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_RCCEx_PeriphCLKConfig +
    + +

    DCMI_DMAError (Thumb, 20 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.DCMI_DMAError)) +

    [Calls]

    • >>   HAL_DCMI_ErrorCallback +
    +
    [Address Reference Count : 2]
    • stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_Start_DMA) +
    • stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_IRQHandler) +
    +

    DCMI_DMAHalfXferCplt (Thumb, 80 bytes, Stack size 16 bytes, stm32l4xx_hal_dcmi.o(.text.DCMI_DMAHalfXferCplt)) +

    [Stack]

    • Max Depth = 36
    • Call Chain = DCMI_DMAHalfXferCplt ⇒ HAL_DMA_Start_IT +
    +
    [Calls]
    • >>   HAL_DMA_Start_IT +
    • >>   HAL_DCMI_ErrorCallback +
    +
    [Address Reference Count : 1]
    • stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_Start_DMA) +
    +

    DCMI_DMAXferCplt (Thumb, 134 bytes, Stack size 16 bytes, stm32l4xx_hal_dcmi.o(.text.DCMI_DMAXferCplt)) +

    [Stack]

    • Max Depth = 36
    • Call Chain = DCMI_DMAXferCplt ⇒ HAL_DMA_Start_IT +
    +
    [Calls]
    • >>   HAL_DCMI_FrameEventCallback +
    • >>   HAL_DMA_Start_IT +
    • >>   HAL_DCMI_ErrorCallback +
    +
    [Address Reference Count : 1]
    • stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_Start_DMA) +
    +

    blk_locate_free (Thumb, 222 bytes, Stack size 16 bytes, tos_mmheap.o(.text.blk_locate_free)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = blk_locate_free +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_mmheap_alloc +
    • >>   tos_mmheap_calloc +
    + +

    blk_merge_next (Thumb, 168 bytes, Stack size 24 bytes, tos_mmheap.o(.text.blk_merge_next)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = blk_merge_next +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_mmheap_free +
    + +

    blk_prepare_used (Thumb, 252 bytes, Stack size 24 bytes, tos_mmheap.o(.text.blk_prepare_used)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = blk_prepare_used +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_mmheap_alloc +
    • >>   tos_mmheap_calloc +
    + +

    mmheap_ctl_init (Thumb, 186 bytes, Stack size 16 bytes, tos_mmheap.o(.text.mmheap_ctl_init)) +

    [Stack]

    • Max Depth = 20
    • Call Chain = mmheap_ctl_init ⇒ __aeabi_memclr4 +
    +
    [Calls]
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   mmheap_init_with_pool +
    + +

    knl_idle_entry (Thumb, 6 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_idle_entry)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size + + In Cycle +
    • Call Chain = knl_idle_entry ⇒ knl_idle_entry (Cycle) +
    +
    [Calls]
    • >>   task_free_all +
    • >>   knl_idle_entry +
    +
    [Called By]
    • >>   knl_idle_entry +
    +
    [Address Reference Count : 1]
    • tos_sys.o(.text.tos_knl_init) +
    +

    task_do_destroy (Thumb, 198 bytes, Stack size 24 bytes, tos_task.o(.text.task_do_destroy)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = task_do_destroy ⇒ mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   knl_sched +
    • >>   tick_list_remove +
    • >>   readyqueue_remove +
    • >>   pend_list_remove +
    • >>   mutex_release +
    • >>   knl_is_idle +
    +
    [Called By]
    • >>   tos_task_destroy +
    + +

    task_exit (Thumb, 6 bytes, Stack size 0 bytes, tos_task.o(.text.task_exit)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = task_exit ⇒ tos_task_destroy ⇒ task_do_destroy ⇒ mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tos_task_destroy +
    +
    [Address Reference Count : 1]
    • tos_task.o(.text.tos_task_create) +
    +

    _GLOBAL__sub_I_main_functions.cc (Thumb, 42 bytes, Stack size 8 bytes, main_functions.o(.text._GLOBAL__sub_I_main_functions.cc)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = _GLOBAL__sub_I_main_functions.cc ⇒ std::__1::ios_base::Init::Init() ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::ios_base::Init::Init() +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • main_functions.o(.init_array) +
    +

    _GLOBAL__sub_I_micro_interpreter.cc (Thumb, 42 bytes, Stack size 8 bytes, micro_interpreter.o(.text._GLOBAL__sub_I_micro_interpreter.cc)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = _GLOBAL__sub_I_micro_interpreter.cc ⇒ std::__1::ios_base::Init::Init() ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::ios_base::Init::Init() +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.init_array) +
    +

    tflite::⟨unnamed namespace 1⟩::MicroBuiltinDataAllocator::Deallocate(void*) (Thumb, 2 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocator10DeallocateEPv)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocatorE) +
    +

    tflite::⟨unnamed namespace 1⟩::MicroBuiltinDataAllocator::Allocate(unsigned, unsigned) (Thumb, 8 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocator8AllocateEjj)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocatorE) +
    +

    tflite::⟨unnamed namespace 1⟩::MicroBuiltinDataAllocator::~MicroBuiltinDataAllocator__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocatorD0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::⟨unnamed namespace 1⟩::MicroBuiltinDataAllocator::~MicroBuiltinDataAllocator__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocatorE) +
    +

    _dadd1 (Thumb, 0 bytes, Stack size unknown bytes, daddsub_clz.o(x$fpl$dadd), UNUSED) +

    [Called By]

    • >>   _dsub +
    • >>   _drsb +
    + +

    _dsub1 (Thumb, 0 bytes, Stack size unknown bytes, daddsub_clz.o(x$fpl$dsub), UNUSED) +

    [Called By]

    • >>   _drsb +
    • >>   _dadd +
    + +

    _GLOBAL__sub_I_iostream.cpp (Thumb, 12 bytes, Stack size 0 bytes, iostream.cpp.o(.text._GLOBAL__sub_I_iostream.cpp)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _GLOBAL__sub_I_iostream.cpp ⇒ std::__1::ios_base::Init::Init__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::Init::Init__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.init_array) +
    +

    _GLOBAL__sub_I_ios.cpp (Thumb, 42 bytes, Stack size 8 bytes, ios.cpp.o(.text._GLOBAL__sub_I_ios.cpp)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = _GLOBAL__sub_I_ios.cpp ⇒ std::__1::ios_base::Init::Init() ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::ios_base::Init::Init() +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.init_array) +
    +

    _GLOBAL__sub_I_locale.cpp (Thumb, 42 bytes, Stack size 8 bytes, locale.cpp.o(.text._GLOBAL__sub_I_locale.cpp)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = _GLOBAL__sub_I_locale.cpp ⇒ std::__1::ios_base::Init::Init() ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::ios_base::Init::Init() +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.init_array) +
    +

    void std::__1::__call_once_proxy⟨std::__1::tuple⟨⟨std::__1::⟨unnamed namespace 1⟩::__fake_bind&&⟩⟩⟩(void*) (Thumb, 24 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__117__call_once_proxyINS_5tupleIJONS_12_GLOBAL__N_111__fake_bindEEEEEEvPv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.text._ZNSt3__16locale2id5__getEv) +
    +

    _ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE (Thumb, 296 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 36
    • Call Chain = _ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char32_t*, const char32_t*, const char32_t*&, char*, char*, char*&) const +
    + +

    _ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE (Thumb, 374 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char32_t*, char32_t*, char32_t*&) const +
    + +

    _ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE (Thumb, 472 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 36
    • Call Chain = _ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char16_t*, const char16_t*, const char16_t*&, char*, char*, char*&) const +
    + +

    _ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE (Thumb, 438 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char16_t*, char16_t*, char16_t*&) const +
    + +

    _ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE (Thumb, 362 bytes, Stack size 28 bytes, locale.cpp.o(.text._ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = _ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const +
    + +

    _ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE (Thumb, 378 bytes, Stack size 28 bytes, locale.cpp.o(.text._ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = _ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const +
    + +

    __cxx_global_array_dtor (Thumb, 42 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE7__weeksEv) +
    +

    __cxx_global_array_dtor.101 (Thumb, 42 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor.101)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor.101 ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE8__monthsEv) +
    +

    __cxx_global_array_dtor.125 (Thumb, 38 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor.125)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor.125 ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE7__am_pmEv) +
    +

    __cxx_global_array_dtor.128 (Thumb, 38 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor.128)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor.128 ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE7__am_pmEv) +
    +

    __cxx_global_array_dtor.62 (Thumb, 42 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor.62)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor.62 ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE7__weeksEv) +
    +

    __cxx_global_array_dtor.77 (Thumb, 42 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor.77)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor.77 ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE8__monthsEv) +
    +

    _printf_input_char (Thumb, 10 bytes, Stack size 0 bytes, _printf_char_common.o(.text)) +
    [Address Reference Count : 1]

    • _printf_char_common.o(.text) +
    +

    _isoweek (Thumb, 64 bytes, Stack size 16 bytes, strftime.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _isoweek +
    +
    [Calls]
    • >>   _yeardays +
    +
    [Called By]
    • >>   strftime +
    • >>   _weekbasedyear +
    + +

    _findweek (Thumb, 24 bytes, Stack size 0 bytes, strftime.o(.text)) +

    [Called By]

    • >>   strftime +
    + +

    _yeardays (Thumb, 42 bytes, Stack size 0 bytes, strftime.o(.text)) +

    [Called By]

    • >>   _isoweek +
    + +

    _weekbasedyear (Thumb, 24 bytes, Stack size 8 bytes, strftime.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = _weekbasedyear ⇒ _isoweek +
    +
    [Calls]
    • >>   _isoweek +
    +
    [Called By]
    • >>   strftime +
    + +

    _fp_value (Thumb, 588 bytes, Stack size 96 bytes, scanf_fp.o(.text)) +

    [Stack]

    • Max Depth = 220
    • Call Chain = _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __ieee_status +
    • >>   _btod_emuld +
    • >>   _btod_edivd +
    • >>   _btod_etento +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   _scanf_really_real +
    + +

    _scanf_char_input (Thumb, 12 bytes, Stack size 0 bytes, scanf_char.o(.text)) +
    [Address Reference Count : 1]

    • scanf_char.o(.text) +
    +

    _local_sscanf (Thumb, 68 bytes, Stack size 64 bytes, strtod.o(.text)) +

    [Stack]

    • Max Depth = 404
    • Call Chain = _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _scanf_real +
    +
    [Called By]
    • >>   __strtod_int +
    + +

    _fp_digits (Thumb, 432 bytes, Stack size 96 bytes, _printf_fp_dec.o(.text)) +

    [Stack]

    • Max Depth = 220
    • Call Chain = _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _btod_emul +
    • >>   _btod_ediv +
    • >>   _btod_d2e +
    • >>   _btod_etento +
    • >>   _ll_udiv10 +
    +
    [Called By]
    • >>   _printf_fp_dec_real +
    +

    +

    +Undefined Global Symbols +


    diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny/TencentOS_tiny.sct b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny/TencentOS_tiny.sct new file mode 100644 index 00000000..83747e97 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_person_detection/TencentOS_tiny/TencentOS_tiny.sct @@ -0,0 +1,16 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00100000 { ; load region size_region + ER_IROM1 0x08000000 0x00100000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + .ANY (+XO) + } + RW_IRAM1 0x20000000 0x00050000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf new file mode 100644 index 00000000..979440d7 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/DebugConfig/TencentOS_tiny_STM32L496ZGTx.dbgconf @@ -0,0 +1,77 @@ +// File: STM32L4x5_4x6.dbgconf +// Version: 1.0.0 +// Note: refer to STM32L4x5 and STM32L4x6 Reference manual (RM0351) +// refer to STM32L475xx STM32L476xx STM32L486xx STM32L496xx STM32L4A6xx datasheets + +// <<< Use Configuration Wizard in Context Menu >>> + +// Debug MCU configuration register (DBGMCU_CR) +// DBG_STANDBY Debug Standby mode +// DBG_STOP Debug Stop mode +// DBG_SLEEP Debug Sleep mode +// +DbgMCU_CR = 0x00000007; + +// Debug MCU APB1 freeze register1 (DBGMCU_APB1FZR1) +// Reserved bits must be kept at reset value +// DBG_LPTIM1_STOP LPTIM1 counter stopped when core is halted +// DBG_CAN2_STOP bxCAN2 stopped when core is halted +// DBG_CAN1_STOP bxCAN1 stopped when core is halted +// DBG_I2C3_STOP I2C3 SMBUS timeout counter stopped when core is halted +// DBG_I2C2_STOP I2C2 SMBUS timeout counter stopped when core is halted +// DBG_I2C1_STOP I2C1 SMBUS timeout counter stopped when core is halted +// DBG_IWDG_STOP Independent watchdog counter stopped when core is halted +// DBG_WWDG_STOP Window watchdog counter stopped when core is halted +// DBG_RTC_STOP RTC counter stopped when core is halted +// DBG_TIM7_STOP TIM7 counter stopped when core is halted +// DBG_TIM6_STOP TIM6 counter stopped when core is halted +// DBG_TIM5_STOP TIM5 counter stopped when core is halted +// DBG_TIM4_STOP TIM4 counter stopped when core is halted +// DBG_TIM3_STOP TIM3 counter stopped when core is halted +// DBG_TIM2_STOP TIM2 counter stopped when core is halted +// +DbgMCU_APB1_Fz1 = 0x00000000; + +// Debug MCU APB1 freeze register 2 (DBGMCU_APB1FZR2) +// Reserved bits must be kept at reset value +// DBG_LPTIM2_STOP LPTIM2 counter stopped when core is halted +// DBG_I2C4_STOP I2C4 SMBUS timeout counter stopped when core is halted +// +DbgMCU_APB1_Fz2 = 0x00000000; + +// Debug MCU APB2 freeze register (DBGMCU_APB2FZR) +// Reserved bits must be kept at reset value +// DBG_TIM17_STOP TIM17 counter stopped when core is halted +// DBG_TIM16_STOP TIM16 counter stopped when core is halted +// DBG_TIM15_STOP TIM15 counter stopped when core is halted +// DBG_TIM8_STOP TIM8 counter stopped when core is halted +// DBG_TIM1_STOP TIM1 counter stopped when core is halted +// +DbgMCU_APB2_Fz = 0x00000000; + +// TPIU Pin Routing (TRACECLK fixed on Pin PE2) +// TRACECLK: Pin PE2 +// TRACED0 +// ETM Trace Data 0 +// <0x00040003=> Pin PE3 +// <0x00020001=> Pin PC1 +// TRACED1 +// ETM Trace Data 1 +// <0x00040004=> Pin PE4 +// <0x0002000A=> Pin PC10 +// TRACED2 +// ETM Trace Data 2 +// <0x00040005=> Pin PE5 +// <0x00030002=> Pin PD2 +// TRACED3 +// ETM Trace Data 3 +// <0x00040006=> Pin PE6 +// <0x0002000C=> Pin PC12 +// +TraceClk_Pin = 0x00040002; +TraceD0_Pin = 0x00040003; +TraceD1_Pin = 0x00040004; +TraceD2_Pin = 0x00040005; +TraceD3_Pin = 0x00040006; + +// <<< end of configuration section >>> diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/RTE/_TencentOS_tiny/RTE_Components.h b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/RTE/_TencentOS_tiny/RTE_Components.h new file mode 100644 index 00000000..248f644f --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/RTE/_TencentOS_tiny/RTE_Components.h @@ -0,0 +1,21 @@ + +/* + * Auto generated Run-Time-Environment Configuration File + * *** Do not modify ! *** + * + * Project: 'TencentOS_tiny' + * Target: 'TencentOS_tiny' + */ + +#ifndef RTE_COMPONENTS_H +#define RTE_COMPONENTS_H + + +/* + * Define the Device Header File: + */ +#define CMSIS_device_header "stm32l4xx.h" + + + +#endif /* RTE_COMPONENTS_H */ diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny.uvguix.CoCo b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny.uvguix.CoCo new file mode 100644 index 00000000..6c35ad35 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny.uvguix.CoCo @@ -0,0 +1,1887 @@ + + + + -6.1 + +
    ### uVision Project, (C) Keil Software
    + + + + + + + + + + 38003 + Registers + 115 55 + + + 346 + Code Coverage + 710 160 + + + 204 + Performance Analyzer + 870 + + + + + + 35141 + Event Statistics + + 200 50 700 + + + 1506 + Symbols + + 60 60 60 + + + 1936 + Watch 1 + + 200 133 133 + + + 1937 + Watch 2 + + 200 133 133 + + + 1935 + Call Stack + Locals + + 200 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + 466 + Source Browser + 500 + 300 + + + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -32000 + -32000 + + + -1 + -1 + + + 102 + 58 + 1138 + 1434 + + + + 0 + + 433 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000050443A5C436F64655C50726F6A6563745C74656E63656E746F735C54656E63656E744F532D74696E795C626F6172645C4E55434C454F5F53544D33324C3439365A475C4253505C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF6D443A5C436F64655C50726F6A6563745C74656E63656E746F735C54656E63656E744F532D74696E795C6578616D706C65735C74666C6974656D6963726F5F7370656563685F646574656374696F6E5C74666C6974656D6963726F5F7370656563685F646574656374696F6E2E63000000001E74666C6974656D6963726F5F7370656563685F646574656374696F6E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004101000066000000A005000005030000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B80000004F00000028040000CB000000 + + + 16 + 2809000085FEFFFF980C000001FFFFFF + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003A010000D5020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003A010000D5020000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003A010000D5020000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003A010000D5020000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0000000006030000A00500006E030000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000CB010000280400005B020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000090300002504000055030000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B1000000AC020000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000090300002504000055030000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000090300002504000055030000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000090300002504000055030000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000090300002504000055030000 + + + 16 + 560000006D0000002A0100005F020000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + BB0000006600000025040000B2000000 + + + 16 + 560000006D0000006A020000E9000000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 770300006600000025040000C2010000 + + + 16 + 560000006D0000000A01000020010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 966 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000006E030000A005000081030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 476 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E20100002504000042020000 + + + 16 + 560000006D0000000A01000020010000 + + + + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFB8000000CB00000028040000CF000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000002809000085FEFFFF980C000001FFFFFFB80000004F00000028040000CB0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF700300004F00000074030000DB010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000E40B000085FEFFFF980C000011000000740300004F00000028040000DB01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF3D0100004F00000041010000EE0200000100000002000010040000000100000050FFFFFFE5040000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000007008000085FEFFFF24090000FB000000000000004F0000003D010000EE0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000C701000028040000CB01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000007008000001000000980C00009100000000000000CB010000280400005B02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF14020000CB010000180200005B02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000EE020000A0050000F2020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000070080000FF000000980C00007B01000000000000F2020000A00500006E0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2915 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001243414D4552415F4445564943455F496E6974960000000000000013001243414D4552415F4445564943455F496E697419424F4152445F43616D6572615F4932435F53656E64534343420E48414C5F534452414D5F496E69740B44454255475F55534152540F4750494F5F4146375F5553415254320E4750494F5F4146375F5541525435134C43445F446973706C6179537472696E674174154C43445F446973706C6179537472696E674C696E650F4C43445F53656C6563744C617965720E4750494F5F414631345F4C544443065F5F6D61696E0A53797374656D496E6974145F5F48414C5F44434D495F454E41424C455F49540477656C6C146B5F6370755F6379636C655F7065725F7469636B056B5F6370750262700E50656E6453565F48616E646C65721253544D6963726F656C656374726F6E69637300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 988 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E54656E63656E744F535F74696E79960000000000000001000E54656E63656E744F535F74696E79000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1440 + 960 + + + + + + 1 + 0 + + 100 + 1 + + ..\..\BSP\Src\main.c + 0 + 1 + 15 + 1 + + 0 + + + ..\..\..\..\examples\tflitemicro_speech_detection\tflitemicro_speech_detection.c + 0 + 1 + 1 + 1 + + 0 + + + + +
    diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny.uvoptx b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny.uvoptx index b355dd84..30bd0d98 100644 --- a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny.uvoptx +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny.uvoptx @@ -203,7 +203,7 @@ Application/User - 1 + 0 0 0 0 diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny/TencentOS_tiny.build_log.htm b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny/TencentOS_tiny.build_log.htm new file mode 100644 index 00000000..3ac7c21d --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny/TencentOS_tiny.build_log.htm @@ -0,0 +1,134 @@ + + +
    +

    µVision Build Log

    +

    Tool Versions:

    +IDE-Version: ¦ÌVision V5.30.0.0 +Copyright (C) 2020 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 2, 3, LIC=VGXG8-3EBEY-FWM2N-Y5VPW-1RV7D-LEXKU + +Tool Versions: +Toolchain: MDK-ARM Plus Version: 5.30.0.0 +Toolchain Path: D:\software\Keil\ARM\ARMCLANG\Bin +C Compiler: ArmClang.exe V6.14 +Assembler: Armasm.exe V6.14 +Linker/Locator: ArmLink.exe V6.14 +Library Manager: ArmAr.exe V6.14 +Hex Converter: FromElf.exe V6.14 +CPU DLL: SARMCM3.DLL V5.30.0.0 +Dialog DLL: DCM.DLL V1.17.3.0 +Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.7.0 +Dialog DLL: TCM.DLL V1.42.0.0 + +

    Project:

    +D:\Code\Project\tencentos\TencentOS-tiny\board\NUCLEO_STM32L496ZG\KEIL\tflitemicro_speech_detection\TencentOS_tiny.uvprojx +Project File Date: 09/08/2021 + +

    Output:

    +*** Using Compiler 'V6.14', folder: 'D:\software\Keil\ARM\ARMCLANG\Bin' +Build target 'TencentOS_tiny' +assembling startup_stm32l496xx.s... +compiling sys.c... +compiling gpio.c... +compiling usart.c... +compiling stm32l4xx_hal_msp.c... +compiling main.c... +compiling stm32l4xx_it.c... +compiling mcu_init.c... +compiling dma.c... +compiling dcmi.c... +compiling i2c.c... +compiling spi.c... +compiling tim.c... +compiling stm32l4xx_hal_uart_ex.c... +compiling stm32l4xx_hal_uart.c... +compiling stm32l4xx_hal.c... +compiling stm32l4xx_hal_rcc.c... +compiling stm32l4xx_hal_i2c_ex.c... +compiling stm32l4xx_hal_rcc_ex.c... +compiling stm32l4xx_hal_flash.c... +compiling stm32l4xx_hal_flash_ramfunc.c... +compiling stm32l4xx_hal_flash_ex.c... +compiling stm32l4xx_hal_gpio.c... +compiling stm32l4xx_hal_dma_ex.c... +compiling stm32l4xx_hal_dma.c... +compiling stm32l4xx_hal_pwr.c... +compiling stm32l4xx_hal_i2c.c... +compiling stm32l4xx_hal_cortex.c... +compiling stm32l4xx_hal_pwr_ex.c... +compiling stm32l4xx_hal_exti.c... +compiling stm32l4xx_hal_tim_ex.c... +compiling stm32l4xx_hal_dcmi.c... +compiling stm32l4xx_hal_spi_ex.c... +compiling system_stm32l4xx.c... +assembling port_s.S... +compiling stm32l4xx_hal_tim.c... +compiling tos_cpu.c... +compiling port_c.c... +compiling stm32l4xx_hal_spi.c... +compiling tos_char_fifo.c... +compiling tos_completion.c... +compiling tos_event.c... +compiling tos_countdownlatch.c... +compiling tos_binary_heap.c... +compiling tos_global.c... +compiling tos_mail_queue.c... +compiling tos_message_queue.c... +compiling tos_priority_message_queue.c... +compiling tos_mmblk.c... +compiling tos_mutex.c... +compiling tos_pend.c... +compiling tos_priority_mail_queue.c... +compiling tos_mmheap.c... +compiling tos_ring_queue.c... +compiling tos_sys.c... +compiling tos_sched.c... +compiling tos_sem.c... +compiling tos_robin.c... +compiling tos_priority_queue.c... +compiling tos_tick.c... +compiling delay.c... +compiling tos_time.c... +compiling lcd_2inch4.c... +compiling cmsis_os.c... +compiling tos_timer.c... +compiling tos_task.c... +compiling no_micro_features_data.cc... +compiling lcd_config.c... +compiling model.cc... +compiling sccb.c... +compiling ov2640.c... +compiling tflitemicro_speech_detection.c... +compiling retarget.c... +compiling yes_micro_features_data.cc... +compiling micro_speech.cc... +linking... +Program Size: Code=170694 RO-data=35030 RW-data=72 ZI-data=59616 +FromELF: creating hex file... +"TencentOS_tiny\TencentOS_tiny.axf" - 0 Error(s), 0 Warning(s). + +

    Software Packages used:

    + +Package Vendor: ARM + http://www.keil.com/pack/ARM.CMSIS.5.7.0.pack + ARM.CMSIS.5.7.0 + CMSIS (Cortex Microcontroller Software Interface Standard) + * Component: CORE Version: 5.4.0 + +Package Vendor: Keil + https://www.keil.com/pack/Keil.STM32L4xx_DFP.2.5.0.pack + Keil.STM32L4xx_DFP.2.5.0 + STMicroelectronics STM32L4 Series Device Support, Drivers and Examples + +

    Collection of Component include folders:

    + .\RTE\_TencentOS_tiny + D:\software\Keil\ARM\CMSIS\5.7.0\CMSIS\Core\Include + D:\software\Keil\Keil\STM32L4xx_DFP\2.5.0\Drivers\CMSIS\Device\ST\STM32L4xx\Include + +

    Collection of Component Files used:

    + + * Component: ARM::CMSIS:CORE:5.4.0 +Build Time Elapsed: 00:00:43 +
    + + diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny/TencentOS_tiny.htm b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny/TencentOS_tiny.htm new file mode 100644 index 00000000..ba026d87 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny/TencentOS_tiny.htm @@ -0,0 +1,10699 @@ + + +Static Call Graph - [TencentOS_tiny\TencentOS_tiny.axf] +
    +

    Static Call Graph for image TencentOS_tiny\TencentOS_tiny.axf


    +

    #<CALLGRAPH># ARM Linker, 6140002: Last Updated: Wed Sep 8 22:29:10 2021 +

    +

    Maximum Stack Usage = 1128 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

    +Call chain for Maximum Stack Depth:

    +std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const ⇒ std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +

    +

    +Functions with no stack information +

    + +

    +

    +Mutually Recursive functions +

  • ADC1_2_IRQHandler   ⇒   ADC1_2_IRQHandler
    +
  • BusFault_Handler   ⇒   BusFault_Handler
    +
  • HardFault_Handler   ⇒   HardFault_Handler
    +
  • MemManage_Handler   ⇒   MemManage_Handler
    +
  • UsageFault_Handler   ⇒   UsageFault_Handler
    +
  • _sys_exit   ⇒   _sys_exit
    +
  • knl_idle_entry   ⇒   knl_idle_entry
    + +

    +

    +Function Pointers +

    +

    +

    +Global Symbols +

    +

    __main (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main)) +

    [Calls]

    • >>   __rt_entry +
    • >>   __scatterload +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(.text) +
    +

    __scatterload (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter)) +

    [Called By]

    • >>   __main +
    + +

    __scatterload_rt2 (Thumb, 44 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) +

    [Calls]

    • >>   __rt_entry +
    + +

    __scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) + +

    __scatterload_null (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) + +

    __scatterload_copy (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED) +

    [Calls]

    • >>   __scatterload_copy +
    +
    [Called By]
    • >>   __scatterload_copy +
    + +

    __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED) + +

    _printf_n (Thumb, 0 bytes, Stack size unknown bytes, _printf_n.o(.ARM.Collect$$_printf_percent$$00000001)) +

    [Calls]

    • >>   _printf_charcount +
    + +

    _printf_percent (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000)) +

    [Called By]

    • >>   __printf +
    + +

    _printf_p (Thumb, 0 bytes, Stack size unknown bytes, _printf_p.o(.ARM.Collect$$_printf_percent$$00000002)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = _printf_p ⇒ _printf_hex_ptr ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_hex_ptr +
    + +

    _printf_f (Thumb, 0 bytes, Stack size unknown bytes, _printf_f.o(.ARM.Collect$$_printf_percent$$00000003)) +

    [Stack]

    • Max Depth = 324 + Unknown Stack Size +
    • Call Chain = _printf_f ⇒ _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _printf_fp_dec +
    + +

    _printf_e (Thumb, 0 bytes, Stack size unknown bytes, _printf_e.o(.ARM.Collect$$_printf_percent$$00000004)) +

    [Stack]

    • Max Depth = 324 + Unknown Stack Size +
    • Call Chain = _printf_e ⇒ _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _printf_fp_dec +
    + +

    _printf_g (Thumb, 0 bytes, Stack size unknown bytes, _printf_g.o(.ARM.Collect$$_printf_percent$$00000005)) +

    [Stack]

    • Max Depth = 324 + Unknown Stack Size +
    • Call Chain = _printf_g ⇒ _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _printf_fp_dec +
    + +

    _printf_a (Thumb, 0 bytes, Stack size unknown bytes, _printf_a.o(.ARM.Collect$$_printf_percent$$00000006)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = _printf_a ⇒ _printf_fp_hex ⇒ _printf_fp_hex_real ⇒ _printf_fp_infnan ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_fp_hex +
    + +

    _printf_ll (Thumb, 0 bytes, Stack size unknown bytes, _printf_ll.o(.ARM.Collect$$_printf_percent$$00000007)) + +

    _printf_i (Thumb, 0 bytes, Stack size unknown bytes, _printf_i.o(.ARM.Collect$$_printf_percent$$00000008)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_i ⇒ _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_dec +
    + +

    _printf_d (Thumb, 0 bytes, Stack size unknown bytes, _printf_d.o(.ARM.Collect$$_printf_percent$$00000009)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_d ⇒ _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_dec +
    + +

    _printf_u (Thumb, 0 bytes, Stack size unknown bytes, _printf_u.o(.ARM.Collect$$_printf_percent$$0000000A)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_u ⇒ _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_dec +
    + +

    _printf_o (Thumb, 0 bytes, Stack size unknown bytes, _printf_o.o(.ARM.Collect$$_printf_percent$$0000000B)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = _printf_o ⇒ _printf_int_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_oct +
    + +

    _printf_x (Thumb, 0 bytes, Stack size unknown bytes, _printf_x.o(.ARM.Collect$$_printf_percent$$0000000C)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = _printf_x ⇒ _printf_int_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_hex +
    + +

    _printf_lli (Thumb, 0 bytes, Stack size unknown bytes, _printf_lli.o(.ARM.Collect$$_printf_percent$$0000000D)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_lli ⇒ _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_dec +
    + +

    _printf_lld (Thumb, 0 bytes, Stack size unknown bytes, _printf_lld.o(.ARM.Collect$$_printf_percent$$0000000E)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_lld ⇒ _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_dec +
    + +

    _printf_llu (Thumb, 0 bytes, Stack size unknown bytes, _printf_llu.o(.ARM.Collect$$_printf_percent$$0000000F)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = _printf_llu ⇒ _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_dec +
    + +

    _printf_llo (Thumb, 0 bytes, Stack size unknown bytes, _printf_llo.o(.ARM.Collect$$_printf_percent$$00000010)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = _printf_llo ⇒ _printf_ll_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_ll_oct +
    + +

    _printf_llx (Thumb, 0 bytes, Stack size unknown bytes, _printf_llx.o(.ARM.Collect$$_printf_percent$$00000011)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = _printf_llx ⇒ _printf_ll_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_ll_hex +
    + +

    _printf_l (Thumb, 0 bytes, Stack size unknown bytes, _printf_l.o(.ARM.Collect$$_printf_percent$$00000012)) + +

    _printf_c (Thumb, 0 bytes, Stack size unknown bytes, _printf_c.o(.ARM.Collect$$_printf_percent$$00000013)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = _printf_c ⇒ _printf_char ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_char +
    + +

    _printf_s (Thumb, 0 bytes, Stack size unknown bytes, _printf_s.o(.ARM.Collect$$_printf_percent$$00000014)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = _printf_s ⇒ _printf_string ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_string +
    + +

    _printf_lc (Thumb, 0 bytes, Stack size unknown bytes, _printf_lc.o(.ARM.Collect$$_printf_percent$$00000015)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = _printf_lc ⇒ _printf_wchar ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _printf_wchar +
    + +

    _printf_ls (Thumb, 0 bytes, Stack size unknown bytes, _printf_ls.o(.ARM.Collect$$_printf_percent$$00000016)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = _printf_ls ⇒ _printf_wstring ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _printf_wstring +
    + +

    _printf_percent_end (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017)) + +

    __rt_lib_init (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000)) +

    [Called By]

    • >>   __rt_entry_li +
    + +

    __rt_lib_init_fp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000001)) +

    [Calls]

    • >>   _fp_init +
    + +

    __rt_lib_init_heap_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000005)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_heap_2 ⇒ _init_alloc ⇒ __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   _init_alloc +
    + +

    __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004)) + +

    __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A)) + +

    __rt_lib_init_lc_common (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000F)) +

    [Calls]

    • >>   __rt_locale +
    + +

    __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E)) + +

    __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C)) + +

    __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011)) + +

    __rt_lib_init_lc_ctype_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000012)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_lc_ctype_2 ⇒ _get_lc_ctype ⇒ strcmp +
    +
    [Calls]
    • >>   _get_lc_ctype +
    + +

    __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013)) + +

    __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015)) + +

    __rt_lib_init_lc_numeric_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000016)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_lc_numeric_2 ⇒ _get_lc_numeric ⇒ strcmp +
    +
    [Calls]
    • >>   _get_lc_numeric +
    + +

    __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017)) + +

    __rt_lib_init_lc_time_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000018)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_lc_time_2 ⇒ _get_lc_time ⇒ strcmp +
    +
    [Calls]
    • >>   _get_lc_time +
    + +

    __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B)) + +

    __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021)) + +

    __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F)) + +

    __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023)) + +

    __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019)) + +

    __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D)) + +

    __rt_lib_init_stdio_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000024)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_stdio_2 ⇒ _initio ⇒ freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _initio +
    + +

    __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E)) + +

    __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C)) + +

    __rt_lib_init_cpp_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000031)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = __rt_lib_init_cpp_2 ⇒ __cpp_initialize__aeabi_ +
    +
    [Calls]
    • >>   __cpp_initialize__aeabi_ +
    + +

    __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030)) + +

    __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025)) + +

    __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032)) + +

    __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033)) + +

    __rt_lib_shutdown (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000)) +

    [Called By]

    • >>   abort +
    • >>   __rt_exit_ls +
    + +

    __rt_lib_shutdown_cpp_2 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000001)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = __rt_lib_shutdown_cpp_2 ⇒ __cxa_finalize ⇒ free +
    +
    [Calls]
    • >>   __cxa_finalize +
    + +

    __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)) + +

    __rt_lib_shutdown_stdio_2 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000003)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = __rt_lib_shutdown_stdio_2 ⇒ _terminateio ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _terminateio +
    + +

    __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007)) + +

    __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F)) + +

    __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010)) + +

    __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A)) + +

    __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)) + +

    __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C)) + +

    __rt_entry (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000)) +

    [Called By]

    • >>   __main +
    • >>   __scatterload_rt2 +
    + +

    __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002)) + +

    __rt_entry_sh (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = __rt_entry_sh ⇒ __user_setup_stackheap +
    +
    [Calls]
    • >>   __user_setup_stackheap +
    + +

    __rt_entry_li (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000A)) +

    [Calls]

    • >>   __rt_lib_init +
    + +

    __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009)) + +

    __rt_entry_main (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D)) +

    [Stack]

    • Max Depth = 412 + Unknown Stack Size +
    • Call Chain = __rt_entry_main ⇒ main ⇒ board_init ⇒ MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   main +
    • >>   exit +
    + +

    __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C)) + +

    __rt_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000)) +

    [Called By]

    • >>   exit +
    + +

    __rt_exit_ls (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000003)) +

    [Calls]

    • >>   __rt_lib_shutdown +
    + +

    __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002)) + +

    __rt_exit_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004)) +

    [Calls]

    • >>   _sys_exit +
    + +

    Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    ADC1_2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +

    [Calls]

    • >>   ADC1_2_IRQHandler +
    +
    [Called By]
    • >>   ADC1_2_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    ADC3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CAN2_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    COMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    CRS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DFSDM1_FLT3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA1_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2D_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI15_10_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    EXTI9_5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FMC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    FPU_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C2_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C2_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C3_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C3_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C4_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    I2C4_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LCD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LPTIM1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    LPTIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    OTG_FS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    PVD_PVM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    QUADSPI_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RCC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RNG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RTC_Alarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    RTC_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SAI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SAI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SDMMC1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SPI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SWPMI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TAMP_STAMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_BRK_TIM15_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_TRG_COM_TIM17_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM1_UP_TIM16_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM6_DAC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_BRK_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_TRG_COM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TIM8_UP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    TSC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    UART4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    UART5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l496xx.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    __user_initial_stackheap (Thumb, 0 bytes, Stack size unknown bytes, startup_stm32l496xx.o(.text)) +

    [Called By]

    • >>   __user_setup_stackheap +
    + +

    port_int_disable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED) + +

    port_int_enable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED) + +

    port_cpsr_save (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_cpsr_save +
    + +

    port_cpsr_restore (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_cpsr_restore +
    + +

    port_clz (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   tos_cpu_clz +
    + +

    port_sched_start (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_sched_start +
    + +

    port_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_context_switch +
    + +

    port_irq_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +

    [Called By]

    • >>   cpu_irq_context_switch +
    + +

    PendSV_Handler (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) + +

    __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) + +

    malloc (Thumb, 94 bytes, Stack size 16 bytes, h1_alloc.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __Heap_Full +
    • >>   __rt_heap_descriptor +
    +
    [Called By]
    • >>   realloc +
    • >>   __aeabi_atexit +
    • >>   operator new(unsigned) +
    • >>   fopen +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   __ARM_vasprintf +
    + +

    free (Thumb, 78 bytes, Stack size 16 bytes, h1_free.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = free +
    +
    [Calls]
    • >>   __rt_heap_descriptor +
    +
    [Called By]
    • >>   operator delete (void*) +
    • >>   realloc +
    • >>   _fclose_internal +
    • >>   std::__1::ios_base::~ios_base() +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   __cxa_finalize +
    • >>   _terminateio +
    • >>   __Heap_ProvideMemory +
    +
    [Address Reference Count : 3]
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIcEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIjEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIwEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    +

    realloc (Thumb, 196 bytes, Stack size 16 bytes, h1_realloc.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = realloc ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   free +
    • >>   malloc +
    • >>   __rt_heap_descriptor +
    • >>   __aeabi_memcpy4 +
    +
    [Called By]
    • >>   void std::__1::__double_or_nothing⟨wchar_t⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨char⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    + +

    __aeabi_uldivmod (Thumb, 0 bytes, Stack size 48 bytes, lludivv7m.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = __aeabi_uldivmod +
    +
    [Called By]
    • >>   UART_SetConfig +
    • >>   cpu_init +
    + +

    _ll_udiv (Thumb, 240 bytes, Stack size 48 bytes, lludivv7m.o(.text), UNUSED) + +

    __2printf (Thumb, 20 bytes, Stack size 24 bytes, __2printf.o(.text)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   _printf_char_file +
    +
    [Called By]
    • >>   speech_run +
    • >>   DebugLog +
    + +

    _printf_str (Thumb, 82 bytes, Stack size 16 bytes, _printf_str.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    +
    [Called By]
    • >>   _printf_cs_common +
    + +

    _printf_int_dec (Thumb, 104 bytes, Stack size 24 bytes, _printf_dec.o(.text)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_common +
    • >>   _printf_truncate_unsigned +
    • >>   _printf_truncate_signed +
    +
    [Called By]
    • >>   _printf_d +
    • >>   _printf_u +
    • >>   _printf_i +
    + +

    _printf_longlong_hex (Thumb, 86 bytes, Stack size 16 bytes, _printf_hex_int_ll_ptr.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_common +
    +
    [Called By]
    • >>   _printf_hex_ptr +
    • >>   _printf_ll_hex +
    • >>   _printf_int_hex +
    + +

    _printf_int_hex (Thumb, 28 bytes, Stack size 16 bytes, _printf_hex_int_ll_ptr.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = _printf_int_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_hex +
    • >>   _printf_truncate_unsigned +
    +
    [Called By]
    • >>   _printf_x +
    + +

    _printf_ll_hex (Thumb, 12 bytes, Stack size 0 bytes, _printf_hex_int_ll_ptr.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _printf_ll_hex ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_hex +
    +
    [Called By]
    • >>   _printf_llx +
    + +

    _printf_hex_ptr (Thumb, 18 bytes, Stack size 0 bytes, _printf_hex_int_ll_ptr.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _printf_hex_ptr ⇒ _printf_longlong_hex ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_hex +
    +
    [Called By]
    • >>   _printf_p +
    + +

    __printf (Thumb, 388 bytes, Stack size 40 bytes, __printf_flags_ss_wp.o(.text)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = __printf +
    +
    [Calls]
    • >>   _is_digit +
    • >>   _printf_percent +
    +
    [Called By]
    • >>   _printf_char_common +
    + +

    puts (Thumb, 40 bytes, Stack size 8 bytes, puts.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = puts ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fputc +
    +
    [Called By]
    • >>   main +
    • >>   task2 +
    • >>   task1 +
    • >>   application_entry +
    + +

    abort (Thumb, 22 bytes, Stack size 8 bytes, abort.o(.text)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   _sys_exit +
    • >>   __rt_SIGABRT +
    • >>   __rt_lib_shutdown +
    +
    [Called By]
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::GetOpDataParser(tflite::BuiltinOperator) const +
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    • >>   abort_message +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::__throw_runtime_error(const char*) +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::~sentry() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::~sentry() +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    • >>   std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::collate⟨wchar_t⟩::do_transform(const wchar_t*, const wchar_t*) const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::__vector_base_common⟨(bool)1⟩::__throw_length_error() const +
    + +

    __cxa_atexit (Thumb, 10 bytes, Stack size 0 bytes, cxa_atexit.o(.text)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __aeabi_atexit +
    +
    [Called By]
    • >>   speech_init +
    • >>   std::__1::ios_base::Init::Init() +
    • >>   _GLOBAL__sub_I_micro_speech.cc +
    • >>   _GLOBAL__sub_I_micro_interpreter.cc +
    • >>   _GLOBAL__sub_I_ios.cpp +
    • >>   _GLOBAL__sub_I_locale.cpp +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__X() const +
    + +

    strncmp (Thumb, 150 bytes, Stack size 16 bytes, strncmp.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = strncmp +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    __aeabi_memcpy (Thumb, 0 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text)) +

    [Called By]

    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsputn(const char*, int) +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsgetn(char*, int) +
    • >>   c16rtomb +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    • >>   memcpy +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) +
    • >>   std::__1::numpunct⟨char⟩::do_falsename() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__c() const +
    • >>   __rt_memmove +
    • >>   _wcsnrtombs +
    + +

    __rt_memcpy (Thumb, 138 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_memcpy4 +
    + +

    _memcpy_lastbytes (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_v6.o(.text), UNUSED) + +

    __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_memcpy4 +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::fully_connected::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteFusedActivation, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::fully_connected::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   realloc +
    • >>   __rt_memcpy +
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    • >>   __rt_memmove_w +
    + +

    __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED) + +

    __rt_memcpy_w (Thumb, 100 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED) + +

    _memcpy_lastbytes_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_w.o(.text), UNUSED) + +

    __aeabi_memset (Thumb, 16 bytes, Stack size 0 bytes, aeabi_memset.o(.text)) +

    [Calls]

    • >>   _memset +
    +
    [Called By]
    • >>   cpu_task_stk_init +
    • >>   tflite::MicroInterpreter::ResetVariableTensors() +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    + +

    __aeabi_memclr (Thumb, 0 bytes, Stack size 0 bytes, rt_memclr.o(.text)) +

    [Called By]

    • >>   tos_mmheap_calloc +
    • >>   arm_depthwise_conv_s8_opt +
    • >>   strncpy +
    + +

    __rt_memclr (Thumb, 68 bytes, Stack size 0 bytes, rt_memclr.o(.text), UNUSED) +

    [Calls]

    • >>   _memset_w +
    + +

    _memset (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr.o(.text)) +

    [Called By]

    • >>   __aeabi_memset +
    + +

    __aeabi_memclr4 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text)) +

    [Stack]

    • Max Depth = 4
    • Call Chain = __aeabi_memclr4 +
    +
    [Called By]
    • >>   board_init +
    • >>   mmheap_ctl_init +
    • >>   tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) +
    • >>   std::__1::ios_base::init(void*) +
    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    • >>   _fclose_internal +
    • >>   fopen +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf() +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf() +
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    • >>   std::__1::locale::__imp::__imp(unsigned) +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__am_pm() const +
    • >>   _initio +
    • >>   __dynamic_cast +
    • >>   __cxxabiv1::__class_type_info::can_catch(const __cxxabiv1::__shim_type_info*, void*&) const +
    + +

    __aeabi_memclr8 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) + +

    __rt_memclr_w (Thumb, 78 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) + +

    _memset_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text)) +

    [Called By]

    • >>   __rt_memclr +
    • >>   wmemset +
    + +

    strncpy (Thumb, 86 bytes, Stack size 8 bytes, strncpy.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = strncpy +
    +
    [Calls]
    • >>   __aeabi_memclr +
    +
    [Called By]
    • >>   tos_task_create +
    + +

    strcmp (Thumb, 124 bytes, Stack size 8 bytes, strcmpv7em.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = strcmp +
    +
    [Called By]
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::FindOp(const char*) const +
    • >>   _get_lc_time +
    • >>   _get_lc_ctype +
    • >>   _get_lc_numeric +
    • >>   __cxxabiv1::__vmi_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const +
    • >>   __cxxabiv1::__vmi_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    • >>   __cxxabiv1::__si_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const +
    • >>   __cxxabiv1::__si_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    • >>   __cxxabiv1::__class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const +
    • >>   __cxxabiv1::__class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    + +

    __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) + +

    __rt_heap_escrow (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) + +

    __rt_heap_expand (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) + +

    __cpp_initialize__aeabi_ (Thumb, 28 bytes, Stack size 16 bytes, init_aeabi.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __cpp_initialize__aeabi_ +
    +
    [Called By]
    • >>   __rt_lib_init_cpp_2 +
    + +

    __rt_heap_descriptor (Thumb, 8 bytes, Stack size 0 bytes, rt_heap_descriptor_intlibspace.o(.text)) +

    [Called By]

    • >>   realloc +
    • >>   free +
    • >>   malloc +
    • >>   _init_alloc +
    + +

    __use_no_heap (Thumb, 2 bytes, Stack size 0 bytes, hguard.o(.text), UNUSED) + +

    __heap$guard (Thumb, 2 bytes, Stack size 0 bytes, hguard.o(.text), UNUSED) + +

    _terminate_user_alloc (Thumb, 2 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) + +

    _init_user_alloc (Thumb, 2 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) + +

    __Heap_Full (Thumb, 34 bytes, Stack size 16 bytes, init_alloc.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __Heap_ProvideMemory +
    +
    [Called By]
    • >>   malloc +
    + +

    __Heap_Broken (Thumb, 6 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) +

    [Calls]

    • >>   __rt_SIGRTMEM +
    + +

    _init_alloc (Thumb, 94 bytes, Stack size 24 bytes, init_alloc.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _init_alloc ⇒ __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __Heap_Initialize +
    • >>   __rt_heap_descriptor +
    • >>   __rt_SIGRTMEM +
    • >>   __Heap_ProvideMemory +
    +
    [Called By]
    • >>   __rt_lib_init_heap_2 +
    + +

    __Heap_Initialize (Thumb, 10 bytes, Stack size 0 bytes, h1_init.o(.text)) +

    [Called By]

    • >>   _init_alloc +
    + +

    __Heap_DescSize (Thumb, 4 bytes, Stack size 0 bytes, h1_init.o(.text), UNUSED) + +

    __read_errno (Thumb, 10 bytes, Stack size 8 bytes, _rserrno.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_errno_addr +
    + +

    __set_errno (Thumb, 12 bytes, Stack size 8 bytes, _rserrno.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __set_errno +
    +
    [Calls]
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   __hardfp_expf +
    • >>   __hardfp_ldexp +
    • >>   __hardfp___mathlib_tofloat +
    + +

    _printf_int_common (Thumb, 178 bytes, Stack size 32 bytes, _printf_intcommon.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    +
    [Called By]
    • >>   _printf_longlong_hex +
    • >>   _printf_int_dec +
    • >>   _printf_longlong_oct +
    • >>   _printf_longlong_dec +
    + +

    _printf_cs_common (Thumb, 20 bytes, Stack size 8 bytes, _printf_char.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_str +
    +
    [Called By]
    • >>   _printf_string +
    • >>   _printf_char +
    + +

    _printf_char (Thumb, 16 bytes, Stack size 0 bytes, _printf_char.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_char ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_cs_common +
    +
    [Called By]
    • >>   _printf_c +
    + +

    _printf_string (Thumb, 8 bytes, Stack size 0 bytes, _printf_char.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_string ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_cs_common +
    +
    [Called By]
    • >>   _printf_s +
    + +

    _printf_char_file (Thumb, 32 bytes, Stack size 16 bytes, _printf_char_file.o(.text)) +

    [Stack]

    • Max Depth = 120 + Unknown Stack Size +
    • Call Chain = _printf_char_file ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   ferror +
    • >>   _printf_char_common +
    +
    [Called By]
    • >>   __2printf +
    + +

    _do_fflush (Thumb, 54 bytes, Stack size 16 bytes, fflush.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _do_fflush ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _fflush +
    • >>   _fseek +
    +
    [Called By]
    • >>   fflush +
    + +

    fflush (Thumb, 42 bytes, Stack size 16 bytes, fflush.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = fflush ⇒ _do_fflush ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _do_fflush +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::sync() +
    • >>   std::__1::__stdoutbuf⟨char⟩::sync() +
    + +

    fwrite (Thumb, 50 bytes, Stack size 24 bytes, fwrite.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = fwrite ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fputc +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::overflow(int) +
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::xsputn(const wchar_t*, int) +
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::sync() +
    • >>   std::__1::__stdoutbuf⟨char⟩::overflow(int) +
    • >>   std::__1::__stdoutbuf⟨char⟩::xsputn(const char*, int) +
    • >>   std::__1::__stdoutbuf⟨char⟩::sync() +
    + +

    getc (Thumb, 4 bytes, Stack size 0 bytes, getc.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   fgetc +
    +
    [Called By]
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) +
    • >>   std::__1::__stdinbuf⟨char⟩::__getchar(bool) +
    + +

    _ungetc_internal (Thumb, 60 bytes, Stack size 0 bytes, ungetc.o(.text), UNUSED) + +

    ungetc (Thumb, 0 bytes, Stack size 0 bytes, ungetc.o(.text)) +

    [Called By]

    • >>   std::__1::__stdinbuf⟨wchar_t⟩::pbackfail(int) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) +
    • >>   std::__1::__stdinbuf⟨char⟩::pbackfail(int) +
    • >>   std::__1::__stdinbuf⟨char⟩::__getchar(bool) +
    + +

    __aeabi_atexit (Thumb, 46 bytes, Stack size 24 bytes, aeabi_atexit.o(.text)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   malloc +
    • >>   __rt_ddtor_pointer_addr +
    +
    [Called By]
    • >>   __cxa_atexit +
    + +

    __rt_SIGABRT (Thumb, 14 bytes, Stack size 8 bytes, defsig_abrt_outer.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __rt_SIGABRT_inner +
    • >>   __sig_exit +
    +
    [Called By]
    • >>   abort +
    + +

    __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) + +

    __user_perproc_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text)) +

    [Called By]

    • >>   __user_setup_stackheap +
    + +

    __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) + +

    __rt_ctype_table (Thumb, 16 bytes, Stack size 8 bytes, rt_ctype_table.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_locale +
    +
    [Called By]
    • >>   _c16rtomb +
    • >>   _mbrtoc16 +
    • >>   __strtoull +
    • >>   __strtoll +
    • >>   _wclass +
    • >>   isspace +
    • >>   std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t*, const wchar_t*) const +
    • >>   std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t) const +
    • >>   std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t*, const wchar_t*) const +
    • >>   std::__1::ctype⟨char⟩::do_toupper(char) const +
    • >>   std::__1::ctype⟨char⟩::do_toupper(char*, const char*) const +
    • >>   std::__1::ctype⟨char⟩::do_tolower(char) const +
    • >>   std::__1::ctype⟨char⟩::do_tolower(char*, const char*) const +
    • >>   __aeabi_MB_CUR_MAX +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    + +

    __rt_ddtor_pointer_addr (Thumb, 8 bytes, Stack size 0 bytes, rt_ddtor_pointer_addr_intlibspace.o(.text)) +

    [Called By]

    • >>   __aeabi_atexit +
    • >>   __cxa_finalize +
    + +

    __aeabi_errno_addr (Thumb, 8 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text)) +

    [Called By]

    • >>   __set_errno +
    • >>   __read_errno +
    • >>   c16rtomb +
    • >>   mbrtoc16 +
    • >>   _ftell_internal +
    • >>   __strtoull +
    • >>   __strtoll +
    • >>   _fp_value +
    • >>   _strtoull +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) +
    • >>   T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) +
    • >>   T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) +
    • >>   _wcsnrtombs +
    • >>   _mbsnrtowcs +
    • >>   mbsrtowcs +
    + +

    __errno$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED) + +

    __rt_errno_addr$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED) + +

    __Heap_ProvideMemory (Thumb, 52 bytes, Stack size 0 bytes, h1_extend.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   free +
    +
    [Called By]
    • >>   _init_alloc +
    • >>   __Heap_Full +
    + +

    _maybe_terminate_alloc (Thumb, 0 bytes, Stack size 0 bytes, maybetermalloc1.o(.text), UNUSED) + +

    iswlower (Thumb, 12 bytes, Stack size 8 bytes, iswlower.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = iswlower ⇒ _wclass ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   _wclass +
    +
    [Called By]
    • >>   std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t) const +
    + +

    __ARM_vasprintf (Thumb, 56 bytes, Stack size 24 bytes, __ARM_vasprintf.o(.text)) +

    [Stack]

    • Max Depth = 152 + Unknown Stack Size +
    • Call Chain = __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   malloc +
    • >>   vsnprintf +
    +
    [Called By]
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    + +

    __ARM_snprintf (Thumb, 50 bytes, Stack size 40 bytes, __ARM_snprintf.o(.text)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = __ARM_snprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   _sputc +
    • >>   _printf_char_common +
    +
    [Called By]
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    + +

    __ARM_vsnprintf (Thumb, 48 bytes, Stack size 24 bytes, __ARM_vsnprintf.o(.text)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   _sputc +
    • >>   _printf_char_common +
    +
    [Called By]
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    + +

    _printf_char_common (Thumb, 32 bytes, Stack size 64 bytes, _printf_char_common.o(.text)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   __printf +
    +
    [Called By]
    • >>   _printf_char_file +
    • >>   vsnprintf +
    • >>   sprintf +
    • >>   __ARM_vsnprintf +
    • >>   __ARM_snprintf +
    + +

    __ARM_vsscanf (Thumb, 44 bytes, Stack size 56 bytes, __ARM_vsscanf.o(.text)) +

    [Stack]

    • Max Depth = 492
    • Call Chain = __ARM_vsscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __vfscanf_char +
    +
    [Called By]
    • >>   std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) +
    + +

    __0sscanf (Thumb, 52 bytes, Stack size 72 bytes, __0sscanf.o(.text)) +

    [Stack]

    • Max Depth = 508
    • Call Chain = __0sscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __vfscanf_char +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    + +

    strtoll (Thumb, 4 bytes, Stack size 0 bytes, strtoll.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = strtoll ⇒ __strtoll ⇒ _strtoull +
    +
    [Calls]
    • >>   __strtoll +
    +
    [Called By]
    • >>   T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) +
    + +

    strtoull (Thumb, 4 bytes, Stack size 0 bytes, strtoull.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = strtoull ⇒ __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   __strtoull +
    +
    [Called By]
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) +
    + +

    _fseek (Thumb, 242 bytes, Stack size 24 bytes, fseek.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _fseek ⇒ _ftell_internal +
    +
    [Calls]
    • >>   _sys_istty +
    • >>   _sys_flen +
    • >>   _ftell_internal +
    • >>   _seterr +
    +
    [Called By]
    • >>   _do_fflush +
    • >>   freopen +
    + +

    fseek (Thumb, 0 bytes, Stack size 24 bytes, fseek.o(.text), UNUSED) + +

    _seterr (Thumb, 20 bytes, Stack size 0 bytes, stdio.o(.text)) +

    [Called By]

    • >>   _writebuf +
    • >>   _fseek +
    + +

    _writebuf (Thumb, 84 bytes, Stack size 32 bytes, stdio.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _writebuf +
    +
    [Calls]
    • >>   _sys_write +
    • >>   _sys_seek +
    • >>   _seterr +
    +
    [Called By]
    • >>   _fflush +
    + +

    _fflush (Thumb, 70 bytes, Stack size 16 bytes, stdio.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _writebuf +
    +
    [Called By]
    • >>   _do_fflush +
    • >>   _fclose_internal +
    • >>   _deferredlazyseek +
    + +

    _deferredlazyseek (Thumb, 60 bytes, Stack size 8 bytes, stdio.o(.text), UNUSED) +

    [Calls]

    • >>   _fflush +
    + +

    _initio (Thumb, 210 bytes, Stack size 8 bytes, initio.o(.text)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = _initio ⇒ freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   __aeabi_memclr4 +
    • >>   freopen +
    • >>   setvbuf +
    • >>   __rt_SIGRTRED +
    +
    [Called By]
    • >>   __rt_lib_init_stdio_2 +
    + +

    _terminateio (Thumb, 56 bytes, Stack size 16 bytes, initio.o(.text)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = _terminateio ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   free +
    • >>   _fclose_internal +
    +
    [Called By]
    • >>   __rt_lib_shutdown_stdio_2 +
    + +

    mbtowc (Thumb, 122 bytes, Stack size 40 bytes, mbtowc.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = mbtowc ⇒ _mbrtowc +
    +
    [Calls]
    • >>   _mbrtowc +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_encoding() const +
    + +

    mbrlen (Thumb, 36 bytes, Stack size 16 bytes, mbrlen.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = mbrlen ⇒ mbrtowc ⇒ mbrtoc16 ⇒ _mbrtoc16 ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   mbrtowc +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const +
    + +

    mbsrtowcs (Thumb, 114 bytes, Stack size 40 bytes, mbsrtowcs.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = mbsrtowcs ⇒ _mbrtowc +
    +
    [Calls]
    • >>   _mbrtowc +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const +
    + +

    mbrtowc (Thumb, 4 bytes, Stack size 0 bytes, mbrtowc.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = mbrtowc ⇒ mbrtoc16 ⇒ _mbrtoc16 ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   mbrtoc16 +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, wchar_t*, wchar_t*, wchar_t*&) const +
    • >>   mbrlen +
    + +

    wcrtomb (Thumb, 4 bytes, Stack size 0 bytes, wcrtomb.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = wcrtomb ⇒ c16rtomb ⇒ _c16rtomb ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   c16rtomb +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, char*, char*, char*&) const +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const +
    + +

    __real_mbsnrtowcs (Thumb, 0 bytes, Stack size 40 bytes, mbsnrtowcs.o(.text), UNUSED) + +

    _mbsnrtowcs (Thumb, 132 bytes, Stack size 40 bytes, mbsnrtowcs.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _mbsnrtowcs ⇒ _mbrtowc +
    +
    [Calls]
    • >>   _mbrtowc +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, wchar_t*, wchar_t*, wchar_t*&) const +
    + +

    __real_wcsnrtombs (Thumb, 0 bytes, Stack size 64 bytes, wcsnrtombs.o(.text), UNUSED) + +

    _wcsnrtombs (Thumb, 146 bytes, Stack size 64 bytes, wcsnrtombs.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _wcsnrtombs ⇒ _wcrtomb +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    • >>   _wcrtomb +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, char*, char*, char*&) const +
    + +

    __aeabi_MB_CUR_MAX (Thumb, 26 bytes, Stack size 8 bytes, _mbcurmax.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __aeabi_MB_CUR_MAX ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_max_length() const +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_encoding() const +
    + +

    __mb_cur_max (Thumb, 0 bytes, Stack size 8 bytes, _mbcurmax.o(.text), UNUSED) + +

    __cxa_finalize (Thumb, 66 bytes, Stack size 24 bytes, cxa_finalize.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = __cxa_finalize ⇒ free +
    +
    [Calls]
    • >>   free +
    • >>   __rt_ddtor_pointer_addr +
    +
    [Called By]
    • >>   __rt_lib_shutdown_cpp_2 +
    + +

    __sig_exit (Thumb, 10 bytes, Stack size 0 bytes, defsig_exit.o(.text)) +

    [Calls]

    • >>   _sys_exit +
    +
    [Called By]
    • >>   __rt_SIGABRT +
    • >>   __rt_SIGRTRED +
    • >>   __rt_SIGRTMEM +
    + +

    __rt_SIGABRT_inner (Thumb, 14 bytes, Stack size 8 bytes, defsig_abrt_inner.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __default_signal_display +
    +
    [Called By]
    • >>   __rt_SIGABRT +
    + +

    __rt_SIGRTMEM (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtmem_outer.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __rt_SIGRTMEM_inner +
    • >>   __sig_exit +
    +
    [Called By]
    • >>   _init_alloc +
    • >>   __Heap_Broken +
    + +

    strlen (Thumb, 62 bytes, Stack size 8 bytes, strlen.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = strlen +
    +
    [Called By]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) +
    + +

    wmemcpy (Thumb, 6 bytes, Stack size 0 bytes, wmemcpy.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = wmemcpy ⇒ memcpy +
    +
    [Calls]
    • >>   memcpy +
    +
    [Called By]
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsputn(const wchar_t*, int) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsgetn(wchar_t*, int) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) +
    • >>   std::__1::numpunct⟨wchar_t⟩::do_falsename() const +
    • >>   std::__1::numpunct⟨wchar_t⟩::do_truename() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const +
    + +

    wmemset (Thumb, 62 bytes, Stack size 24 bytes, wmemset.o(.text)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = wmemset +
    +
    [Calls]
    • >>   _memset_w +
    +
    [Called By]
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_negative_sign() const +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_negative_sign() const +
    + +

    __aeabi_memmove (Thumb, 0 bytes, Stack size 0 bytes, rt_memmove_v6.o(.text)) +

    [Called By]

    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*, unsigned) +
    • >>   memmove +
    • >>   std::__1::__money_put⟨wchar_t⟩::__format(wchar_t*, wchar_t*&, wchar_t*&, unsigned, const wchar_t*, const wchar_t*, const std::__1::ctype⟨wchar_t⟩&, bool, const std::__1::money_base::pattern&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int) +
    • >>   std::__1::__money_put⟨char⟩::__format(char*, char*&, char*&, unsigned, const char*, const char*, const std::__1::ctype⟨char⟩&, bool, const std::__1::money_base::pattern&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int) +
    + +

    __rt_memmove (Thumb, 132 bytes, Stack size 0 bytes, rt_memmove_v6.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_memcpy +
    • >>   __memmove_aligned +
    + +

    __memmove_lastfew (Thumb, 0 bytes, Stack size unknown bytes, rt_memmove_v6.o(.text), UNUSED) + +

    __aeabi_memmove4 (Thumb, 0 bytes, Stack size 8 bytes, rt_memmove_w.o(.text), UNUSED) + +

    __aeabi_memmove8 (Thumb, 0 bytes, Stack size 8 bytes, rt_memmove_w.o(.text), UNUSED) + +

    __rt_memmove_w (Thumb, 122 bytes, Stack size 8 bytes, rt_memmove_w.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_memcpy4 +
    + +

    __memmove_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memmove_w.o(.text), UNUSED) +

    [Called By]

    • >>   __rt_memmove +
    + +

    __memmove_lastfew_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memmove_w.o(.text), UNUSED) + +

    strftime (Thumb, 634 bytes, Stack size 72 bytes, strftime.o(.text)) +

    [Stack]

    • Max Depth = 208 + Unknown Stack Size +
    • Call Chain = strftime ⇒ sprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   sprintf +
    • >>   __rt_locale +
    • >>   _weekbasedyear +
    • >>   _findweek +
    • >>   _isoweek +
    +
    [Called By]
    • >>   std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const +
    • >>   std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const std::tm*, char, char) const +
    + +

    __user_setup_stackheap (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = __user_setup_stackheap +
    +
    [Calls]
    • >>   __user_initial_stackheap +
    • >>   __user_perproc_libspace +
    +
    [Called By]
    • >>   __rt_entry_sh +
    + +

    __rt_locale (Thumb, 8 bytes, Stack size 0 bytes, rt_locale_intlibspace.o(.text)) +

    [Called By]

    • >>   __rt_lib_init_lc_common +
    • >>   _scanf_really_real +
    • >>   _printf_fp_dec_real +
    • >>   strftime +
    • >>   __rt_ctype_table +
    + +

    _wclass (Thumb, 100 bytes, Stack size 8 bytes, wclass_c.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _wclass ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   iswlower +
    + +

    sprintf (Thumb, 38 bytes, Stack size 32 bytes, sprintf.o(.text)) +

    [Stack]

    • Max Depth = 136 + Unknown Stack Size +
    • Call Chain = sprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   _sputc +
    • >>   _printf_char_common +
    +
    [Called By]
    • >>   strftime +
    + +

    vsnprintf (Thumb, 48 bytes, Stack size 24 bytes, vsnprintf.o(.text)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   _sputc +
    • >>   _printf_char_common +
    +
    [Called By]
    • >>   __ARM_vasprintf +
    + +

    _printf_pre_padding (Thumb, 44 bytes, Stack size 16 bytes, _printf_pad.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _printf_pre_padding +
    +
    [Called By]
    • >>   _printf_str +
    • >>   _printf_int_common +
    • >>   _printf_wctomb +
    • >>   _printf_fp_infnan +
    • >>   _printf_fp_hex_real +
    • >>   _printf_fp_dec_real +
    + +

    _printf_post_padding (Thumb, 34 bytes, Stack size 16 bytes, _printf_pad.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _printf_post_padding +
    +
    [Called By]
    • >>   _printf_str +
    • >>   _printf_int_common +
    • >>   _printf_wctomb +
    • >>   _printf_fp_infnan +
    • >>   _printf_fp_hex_real +
    • >>   _printf_fp_dec_real +
    + +

    _printf_truncate_signed (Thumb, 18 bytes, Stack size 0 bytes, _printf_truncate.o(.text)) +

    [Called By]

    • >>   _printf_int_dec +
    + +

    _printf_truncate_unsigned (Thumb, 18 bytes, Stack size 0 bytes, _printf_truncate.o(.text)) +

    [Called By]

    • >>   _printf_int_hex +
    • >>   _printf_int_dec +
    • >>   _printf_int_oct +
    + +

    _printf_charcount (Thumb, 40 bytes, Stack size 0 bytes, _printf_charcount.o(.text)) +

    [Called By]

    • >>   _printf_n +
    + +

    _sputc (Thumb, 10 bytes, Stack size 0 bytes, _sputc.o(.text)) +

    [Called By]

    • >>   vsnprintf +
    • >>   sprintf +
    • >>   __ARM_vsnprintf +
    • >>   __ARM_snprintf +
    +
    [Address Reference Count : 1]
    • sprintf.o(.text) +
    +

    _snputc (Thumb, 16 bytes, Stack size 0 bytes, _snputc.o(.text)) +
    [Address Reference Count : 3]

    • __ARM_snprintf.o(.text) +
    • __ARM_vsnprintf.o(.text) +
    • vsnprintf.o(.text) +
    +

    _printf_wctomb (Thumb, 182 bytes, Stack size 56 bytes, _printf_wctomb.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _wcrtomb +
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    +
    [Called By]
    • >>   _printf_lcs_common +
    + +

    _printf_longlong_dec (Thumb, 108 bytes, Stack size 24 bytes, _printf_longlong_dec.o(.text)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = _printf_longlong_dec ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_common +
    • >>   _ll_udiv10 +
    +
    [Called By]
    • >>   _printf_llu +
    • >>   _printf_lld +
    • >>   _printf_lli +
    + +

    _printf_longlong_oct (Thumb, 68 bytes, Stack size 8 bytes, _printf_oct_int_ll.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_int_common +
    +
    [Called By]
    • >>   _printf_ll_oct +
    • >>   _printf_int_oct +
    + +

    _printf_int_oct (Thumb, 24 bytes, Stack size 8 bytes, _printf_oct_int_ll.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _printf_int_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_oct +
    • >>   _printf_truncate_unsigned +
    +
    [Called By]
    • >>   _printf_o +
    + +

    _printf_ll_oct (Thumb, 12 bytes, Stack size 0 bytes, _printf_oct_int_ll.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _printf_ll_oct ⇒ _printf_longlong_oct ⇒ _printf_int_common ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_longlong_oct +
    +
    [Called By]
    • >>   _printf_llo +
    + +

    _scanf_longlong (Thumb, 342 bytes, Stack size 56 bytes, _scanf_longlong.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _scanf_longlong +
    +
    [Calls]
    • >>   _chval +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _scanf_int (Thumb, 332 bytes, Stack size 56 bytes, _scanf_int.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _scanf_int +
    +
    [Calls]
    • >>   _chval +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _scanf_string (Thumb, 224 bytes, Stack size 56 bytes, _scanf_str.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _scanf_string +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _scanf_really_real (Thumb, 684 bytes, Stack size 120 bytes, scanf_fp.o(.text)) +

    [Stack]

    • Max Depth = 340
    • Call Chain = _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _is_digit +
    • >>   _fp_value +
    • >>   __rt_locale +
    • >>   __mathlib_narrow +
    • >>   _scanf_infnan +
    • >>   _scanf_hex_real +
    +
    [Called By]
    • >>   _scanf_real +
    + +

    __vfscanf_char (Thumb, 24 bytes, Stack size 0 bytes, scanf_char.o(.text)) +

    [Stack]

    • Max Depth = 436
    • Call Chain = __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __vfscanf +
    +
    [Called By]
    • >>   __0sscanf +
    • >>   __ARM_vsscanf +
    + +

    _sgetc (Thumb, 30 bytes, Stack size 0 bytes, _sgetc.o(.text)) +
    [Address Reference Count : 3]

    • __ARM_vsscanf.o(.text) +
    • __0sscanf.o(.text) +
    • strtod.o(.text) +
    +

    _sbackspace (Thumb, 34 bytes, Stack size 0 bytes, _sgetc.o(.text)) +
    [Address Reference Count : 3]

    • __ARM_vsscanf.o(.text) +
    • __0sscanf.o(.text) +
    • strtod.o(.text) +
    +

    __strtod_int (Thumb, 94 bytes, Stack size 40 bytes, strtod.o(.text)) +

    [Stack]

    • Max Depth = 444
    • Call Chain = __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _local_sscanf +
    +
    [Called By]
    • >>   __strtof_int +
    • >>   strtold +
    • >>   strtod +
    + +

    __strtof_int (Thumb, 8 bytes, Stack size 0 bytes, strtof.o(.text)) +

    [Stack]

    • Max Depth = 444
    • Call Chain = __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __strtod_int +
    +
    [Called By]
    • >>   strtof +
    + +

    __strtoll (Thumb, 144 bytes, Stack size 32 bytes, __strtoll.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = __strtoll ⇒ _strtoull +
    +
    [Calls]
    • >>   _strtoull +
    • >>   __aeabi_errno_addr +
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   strtoll +
    + +

    __strtoull (Thumb, 124 bytes, Stack size 40 bytes, __strtoull.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   _strtoull +
    • >>   __aeabi_errno_addr +
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   strtoull +
    + +

    _scanf_mbtowc (Thumb, 276 bytes, Stack size 64 bytes, _scanf_mbtowc.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _scanf_mbtowc ⇒ _mbrtowc +
    +
    [Calls]
    • >>   _mbrtowc +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _scanf_wctomb (Thumb, 232 bytes, Stack size 64 bytes, _scanf_wctomb.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _scanf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _wcrtomb +
    • >>   _scanf_wcharmap +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _scanf_wstring (Thumb, 208 bytes, Stack size 56 bytes, _scanf_wstr.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = _scanf_wstring ⇒ _scanf_wcharmap +
    +
    [Calls]
    • >>   _scanf_wcharmap +
    +
    [Called By]
    • >>   __vfscanf +
    + +

    _ftell_internal (Thumb, 66 bytes, Stack size 8 bytes, ftell.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = _ftell_internal +
    +
    [Calls]
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   _fseek +
    + +

    ftell (Thumb, 0 bytes, Stack size 8 bytes, ftell.o(.text), UNUSED) + +

    setvbuf (Thumb, 70 bytes, Stack size 16 bytes, setvbuf.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = setvbuf +
    +
    [Called By]
    • >>   _initio +
    + +

    freopen (Thumb, 160 bytes, Stack size 24 bytes, fopen.o(.text)) +

    [Stack]

    • Max Depth = 104
    • Call Chain = freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _sys_open +
    • >>   _fclose_internal +
    • >>   _fseek +
    +
    [Called By]
    • >>   fopen +
    • >>   _initio +
    + +

    fopen (Thumb, 74 bytes, Stack size 24 bytes, fopen.o(.text), UNUSED) +

    [Calls]

    • >>   malloc +
    • >>   __aeabi_memclr4 +
    • >>   freopen +
    + +

    _fclose_internal (Thumb, 76 bytes, Stack size 32 bytes, fclose.o(.text)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = _fclose_internal ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   _sys_close +
    • >>   free +
    • >>   __aeabi_memclr4 +
    • >>   _fflush +
    +
    [Called By]
    • >>   freopen +
    • >>   _terminateio +
    + +

    fclose (Thumb, 0 bytes, Stack size 32 bytes, fclose.o(.text), UNUSED) + +

    mbrtoc16 (Thumb, 116 bytes, Stack size 32 bytes, mbrtoc16.o(.text)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = mbrtoc16 ⇒ _mbrtoc16 ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   _mbrtoc16 +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   mbrtowc +
    + +

    c16rtomb (Thumb, 58 bytes, Stack size 24 bytes, c16rtomb.o(.text)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = c16rtomb ⇒ _c16rtomb ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    • >>   _c16rtomb +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   wcrtomb +
    + +

    _mbrtoc16 (Thumb, 64 bytes, Stack size 24 bytes, _mbrtoc16.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _mbrtoc16 ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   mbrtoc16 +
    + +

    _mbrtowc (Thumb, 0 bytes, Stack size 24 bytes, _mbrtoc16.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = _mbrtowc +
    +
    [Called By]
    • >>   _scanf_mbtowc +
    • >>   _mbsnrtowcs +
    • >>   mbsrtowcs +
    • >>   mbtowc +
    + +

    _c16rtomb (Thumb, 72 bytes, Stack size 24 bytes, _c16rtomb.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _c16rtomb ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   c16rtomb +
    + +

    _wcrtomb (Thumb, 0 bytes, Stack size 24 bytes, _c16rtomb.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = _wcrtomb +
    +
    [Called By]
    • >>   _scanf_wctomb +
    • >>   _printf_wctomb +
    • >>   _wcsnrtombs +
    + +

    exit (Thumb, 18 bytes, Stack size 8 bytes, exit.o(.text)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = exit +
    +
    [Calls]
    • >>   __rt_exit +
    +
    [Called By]
    • >>   __rt_entry_main +
    + +

    __default_signal_display (Thumb, 50 bytes, Stack size 16 bytes, defsig_general.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __default_signal_display +
    +
    [Calls]
    • >>   _ttywrch +
    +
    [Called By]
    • >>   __rt_SIGRTRED_inner +
    • >>   __rt_SIGRTMEM_inner +
    • >>   __rt_SIGABRT_inner +
    + +

    __rt_SIGRTRED (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtred_outer.o(.text)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __rt_SIGRTRED ⇒ __rt_SIGRTRED_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __rt_SIGRTRED_inner +
    • >>   __sig_exit +
    +
    [Called By]
    • >>   _initio +
    + +

    __rt_SIGRTMEM_inner (Thumb, 22 bytes, Stack size 8 bytes, defsig_rtmem_inner.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __rt_SIGRTMEM_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __default_signal_display +
    +
    [Called By]
    • >>   __rt_SIGRTMEM +
    + +

    wmemmove (Thumb, 6 bytes, Stack size 0 bytes, wmemmove.o(.text), UNUSED) +

    [Calls]

    • >>   memmove +
    +
    [Called By]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*, unsigned) +
    + +

    wcslen (Thumb, 18 bytes, Stack size 0 bytes, wcslen.o(.text)) +

    [Called By]

    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) +
    + +

    memcpy (Thumb, 8 bytes, Stack size 8 bytes, memcpy.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = memcpy +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    +
    [Called By]
    • >>   wmemcpy +
    + +

    __aeabi_llsl (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text)) +

    [Called By]

    • >>   _scanf_really_hex_real +
    + +

    _ll_shift_l (Thumb, 38 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED) + +

    _ll_udiv10 (Thumb, 138 bytes, Stack size 12 bytes, lludiv10.o(.text)) +

    [Stack]

    • Max Depth = 12
    • Call Chain = _ll_udiv10 +
    +
    [Called By]
    • >>   _printf_longlong_dec +
    • >>   _fp_digits +
    + +

    isspace (Thumb, 18 bytes, Stack size 8 bytes, isspace.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = isspace ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 2]
    • scanf_char.o(.text) +
    • strtod.o(.text) +
    +

    _printf_fp_dec_real (Thumb, 620 bytes, Stack size 104 bytes, _printf_fp_dec.o(.text)) +

    [Stack]

    • Max Depth = 324
    • Call Chain = _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    • >>   __rt_locale +
    • >>   __ARM_fpclassify +
    • >>   _printf_fp_infnan +
    • >>   _fp_digits +
    +
    [Called By]
    • >>   _printf_fp_dec +
    + +

    _printf_fp_hex_real (Thumb, 756 bytes, Stack size 72 bytes, _printf_fp_hex.o(.text)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = _printf_fp_hex_real ⇒ _printf_fp_infnan ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    • >>   __ARM_fpclassify +
    • >>   _printf_fp_infnan +
    +
    [Called By]
    • >>   _printf_fp_hex +
    + +

    _printf_lcs_common (Thumb, 20 bytes, Stack size 8 bytes, _printf_wchar.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _printf_wctomb +
    +
    [Called By]
    • >>   _printf_wstring +
    • >>   _printf_wchar +
    + +

    _printf_wchar (Thumb, 16 bytes, Stack size 0 bytes, _printf_wchar.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _printf_wchar ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _printf_lcs_common +
    +
    [Called By]
    • >>   _printf_lc +
    + +

    _printf_wstring (Thumb, 8 bytes, Stack size 0 bytes, _printf_wchar.o(.text)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = _printf_wstring ⇒ _printf_lcs_common ⇒ _printf_wctomb ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _printf_lcs_common +
    +
    [Called By]
    • >>   _printf_ls +
    + +

    _chval (Thumb, 28 bytes, Stack size 0 bytes, _chval.o(.text)) +

    [Called By]

    • >>   _scanf_int +
    • >>   _scanf_longlong +
    • >>   _scanf_really_hex_real +
    • >>   _strtoull +
    + +

    __vfscanf (Thumb, 878 bytes, Stack size 96 bytes, _scanf.o(.text)) +

    [Stack]

    • Max Depth = 436
    • Call Chain = __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _scanf_wstring +
    • >>   _scanf_wctomb +
    • >>   _scanf_mbtowc +
    • >>   _scanf_string +
    • >>   _scanf_int +
    • >>   _scanf_longlong +
    • >>   _scanf_real +
    +
    [Called By]
    • >>   __vfscanf_char +
    + +

    _strtoull (Thumb, 194 bytes, Stack size 48 bytes, _strtoull.o(.text)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = _strtoull +
    +
    [Calls]
    • >>   _chval +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   __strtoull +
    • >>   __strtoll +
    + +

    _scanf_wcharmap (Thumb, 30 bytes, Stack size 8 bytes, _scanf_wcharmap.o(.text)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = _scanf_wcharmap +
    +
    [Called By]
    • >>   _scanf_wstring +
    • >>   _scanf_wctomb +
    + +

    _btod_etento (Thumb, 224 bytes, Stack size 72 bytes, bigflt0.o(.text)) +

    [Stack]

    • Max Depth = 124
    • Call Chain = _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _btod_emul +
    • >>   _btod_ediv +
    +
    [Called By]
    • >>   _fp_value +
    • >>   _fp_digits +
    + +

    __rt_SIGRTRED_inner (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtred_inner.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __rt_SIGRTRED_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __default_signal_display +
    +
    [Called By]
    • >>   __rt_SIGRTRED +
    + +

    memmove (Thumb, 8 bytes, Stack size 8 bytes, memmove.o(.text), UNUSED) +

    [Calls]

    • >>   __aeabi_memmove +
    +
    [Called By]
    • >>   wmemmove +
    + +

    _printf_fp_infnan (Thumb, 112 bytes, Stack size 24 bytes, _printf_fp_infnan.o(.text)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_fp_infnan ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_post_padding +
    • >>   _printf_pre_padding +
    +
    [Called By]
    • >>   _printf_fp_hex_real +
    • >>   _printf_fp_dec_real +
    + +

    _scanf_really_hex_real (Thumb, 786 bytes, Stack size 80 bytes, scanf_hexfp.o(.text)) +

    [Stack]

    • Max Depth = 176
    • Call Chain = _scanf_really_hex_real ⇒ __support_ldexp ⇒ __hardfp_ldexp ⇒ __mathlib_dbl_underflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __support_ldexp +
    • >>   __mathlib_narrow +
    • >>   _chval +
    • >>   __aeabi_llsl +
    +
    [Called By]
    • >>   _scanf_hex_real +
    + +

    _scanf_really_infnan (Thumb, 292 bytes, Stack size 72 bytes, scanf_infnan.o(.text)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = _scanf_really_infnan +
    +
    [Called By]
    • >>   _scanf_infnan +
    + +

    BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.BusFault_Handler)) +

    [Calls]

    • >>   BusFault_Handler +
    +
    [Called By]
    • >>   BusFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DCMI_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.DCMI_IRQHandler)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = DCMI_IRQHandler ⇒ HAL_DCMI_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_DCMI_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DMA2_Channel6_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.DMA2_Channel6_IRQHandler)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = DMA2_Channel6_IRQHandler ⇒ HAL_DMA_IRQHandler +
    +
    [Calls]
    • >>   HAL_DMA_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    DebugLog (Thumb, 12 bytes, Stack size 0 bytes, debug_log.o(.text.DebugLog)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = DebugLog ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   __2printf +
    +
    [Called By]
    • >>   tflite::MicroErrorReporter::Report(const char*, std::__va_list) +
    + +

    DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.DebugMon_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    Error_Handler (Thumb, 2 bytes, Stack size 0 bytes, mcu_init.o(.text.Error_Handler)) +

    [Called By]

    • >>   MX_LPUART1_UART_Init +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_TIM4_Init +
    • >>   MX_SPI1_Init +
    • >>   MX_I2C1_Init +
    • >>   MX_DCMI_Init +
    + +

    HAL_DCMI_ErrorCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_ErrorCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    • >>   DCMI_DMAError +
    + +

    HAL_DCMI_FrameEventCallback (Thumb, 30 bytes, Stack size 0 bytes, mcu_init.o(.text.HAL_DCMI_FrameEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DCMI_IRQHandler (Thumb, 172 bytes, Stack size 16 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_IRQHandler)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_DCMI_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_DCMI_FrameEventCallback +
    • >>   HAL_DMA_Abort_IT +
    • >>   HAL_DCMI_VsyncEventCallback +
    • >>   HAL_DCMI_LineEventCallback +
    • >>   HAL_DCMI_ErrorCallback +
    +
    [Called By]
    • >>   DCMI_IRQHandler +
    + +

    HAL_DCMI_Init (Thumb, 182 bytes, Stack size 40 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_Init)) +

    [Stack]

    • Max Depth = 148
    • Call Chain = HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_DCMI_MspInit +
    +
    [Called By]
    • >>   MX_DCMI_Init +
    + +

    HAL_DCMI_LineEventCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_LineEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DCMI_MspInit (Thumb, 434 bytes, Stack size 64 bytes, dcmi.o(.text.HAL_DCMI_MspInit)) +

    [Stack]

    • Max Depth = 108
    • Call Chain = HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    • >>   Error_Handler +
    • >>   HAL_GPIO_Init +
    • >>   HAL_DMA_Init +
    +
    [Called By]
    • >>   HAL_DCMI_Init +
    + +

    HAL_DCMI_VsyncEventCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_VsyncEventCallback)) +

    [Called By]

    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DMA_Abort_IT (Thumb, 88 bytes, Stack size 8 bytes, stm32l4xx_hal_dma.o(.text.HAL_DMA_Abort_IT)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_DMA_Abort_IT +
    +
    [Called By]
    • >>   HAL_UART_IRQHandler +
    • >>   HAL_DCMI_IRQHandler +
    + +

    HAL_DMA_IRQHandler (Thumb, 176 bytes, Stack size 16 bytes, stm32l4xx_hal_dma.o(.text.HAL_DMA_IRQHandler)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_DMA_IRQHandler +
    +
    [Called By]
    • >>   DMA2_Channel6_IRQHandler +
    + +

    HAL_DMA_Init (Thumb, 204 bytes, Stack size 32 bytes, stm32l4xx_hal_dma.o(.text.HAL_DMA_Init)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_DMA_Init +
    +
    [Called By]
    • >>   HAL_DCMI_MspInit +
    + +

    HAL_GPIO_Init (Thumb, 408 bytes, Stack size 44 bytes, stm32l4xx_hal_gpio.o(.text.HAL_GPIO_Init)) +

    [Stack]

    • Max Depth = 44
    • Call Chain = HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_UART_MspInit +
    • >>   MX_GPIO_Init +
    • >>   HAL_SPI_MspInit +
    • >>   HAL_I2C_MspInit +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_TIM4_Init +
    + +

    HAL_GPIO_WritePin (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_hal_gpio.o(.text.HAL_GPIO_WritePin)) +

    [Called By]

    • >>   MX_GPIO_Init +
    + +

    HAL_GetTick (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_hal.o(.text.HAL_GetTick)) +

    [Called By]

    • >>   HAL_UART_Transmit +
    • >>   HAL_UART_Receive +
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_RCCEx_PeriphCLKConfig +
    • >>   UART_CheckIdleState +
    • >>   RCCEx_PLLSAI2_Config +
    • >>   RCCEx_PLLSAI1_Config +
    + +

    HAL_I2CEx_ConfigAnalogFilter (Thumb, 74 bytes, Stack size 0 bytes, stm32l4xx_hal_i2c_ex.o(.text.HAL_I2CEx_ConfigAnalogFilter)) +

    [Called By]

    • >>   MX_I2C1_Init +
    + +

    HAL_I2CEx_ConfigDigitalFilter (Thumb, 72 bytes, Stack size 0 bytes, stm32l4xx_hal_i2c_ex.o(.text.HAL_I2CEx_ConfigDigitalFilter)) +

    [Called By]

    • >>   MX_I2C1_Init +
    + +

    HAL_I2C_Init (Thumb, 162 bytes, Stack size 8 bytes, stm32l4xx_hal_i2c.o(.text.HAL_I2C_Init)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_I2C_MspInit +
    +
    [Called By]
    • >>   MX_I2C1_Init +
    + +

    HAL_I2C_MspInit (Thumb, 124 bytes, Stack size 32 bytes, i2c.o(.text.HAL_I2C_MspInit)) +

    [Stack]

    • Max Depth = 76
    • Call Chain = HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_I2C_Init +
    + +

    HAL_IncTick (Thumb, 16 bytes, Stack size 0 bytes, stm32l4xx_hal.o(.text.HAL_IncTick)) +

    [Called By]

    • >>   SysTick_Handler +
    + +

    HAL_Init (Thumb, 30 bytes, Stack size 8 bytes, stm32l4xx_hal.o(.text.HAL_Init)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_MspInit +
    • >>   HAL_NVIC_SetPriorityGrouping +
    • >>   HAL_InitTick +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_InitTick (Thumb, 58 bytes, Stack size 8 bytes, stm32l4xx_hal.o(.text.HAL_InitTick)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_SYSTICK_Config +
    +
    [Called By]
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_Init +
    + +

    HAL_MspInit (Thumb, 50 bytes, Stack size 8 bytes, stm32l4xx_hal_msp.o(.text.HAL_MspInit)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_MspInit +
    +
    [Called By]
    • >>   HAL_Init +
    + +

    HAL_NVIC_EnableIRQ (Thumb, 32 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(.text.HAL_NVIC_EnableIRQ)) +

    [Called By]

    • >>   HAL_UART_MspInit +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_DMA_Init +
    + +

    HAL_NVIC_SetPriority (Thumb, 86 bytes, Stack size 8 bytes, stm32l4xx_hal_cortex.o(.text.HAL_NVIC_SetPriority)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_NVIC_SetPriority +
    +
    [Called By]
    • >>   HAL_UART_MspInit +
    • >>   HAL_DCMI_MspInit +
    • >>   MX_DMA_Init +
    • >>   HAL_InitTick +
    + +

    HAL_NVIC_SetPriorityGrouping (Thumb, 32 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping)) +

    [Called By]

    • >>   HAL_Init +
    + +

    HAL_PWREx_ControlVoltageScaling (Thumb, 150 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(.text.HAL_PWREx_ControlVoltageScaling)) +

    [Called By]

    • >>   board_init +
    + +

    HAL_PWREx_EnableVddIO2 (Thumb, 18 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(.text.HAL_PWREx_EnableVddIO2)) +

    [Called By]

    • >>   HAL_UART_MspInit +
    • >>   MX_GPIO_Init +
    • >>   HAL_I2C_MspInit +
    + +

    HAL_PWREx_GetVoltageRange (Thumb, 16 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(.text.HAL_PWREx_GetVoltageRange)) +

    [Called By]

    • >>   HAL_RCC_OscConfig +
    + +

    HAL_RCCEx_PeriphCLKConfig (Thumb, 1004 bytes, Stack size 40 bytes, stm32l4xx_hal_rcc_ex.o(.text.HAL_RCCEx_PeriphCLKConfig)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_RCCEx_PeriphCLKConfig ⇒ RCCEx_PLLSAI2_Config +
    +
    [Calls]
    • >>   HAL_GetTick +
    • >>   RCCEx_PLLSAI2_Config +
    • >>   RCCEx_PLLSAI1_Config +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_RCC_ClockConfig (Thumb, 344 bytes, Stack size 32 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_ClockConfig)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_InitTick +
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_RCC_GetPCLK1Freq (Thumb, 42 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq)) +

    [Called By]

    • >>   UART_SetConfig +
    + +

    HAL_RCC_GetPCLK2Freq (Thumb, 42 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq)) +

    [Called By]

    • >>   UART_SetConfig +
    + +

    HAL_RCC_GetSysClockFreq (Thumb, 200 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq)) +

    [Called By]

    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   UART_SetConfig +
    + +

    HAL_RCC_OscConfig (Thumb, 1576 bytes, Stack size 40 bytes, stm32l4xx_hal_rcc.o(.text.HAL_RCC_OscConfig)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_InitTick +
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_GetTick +
    • >>   HAL_PWREx_GetVoltageRange +
    +
    [Called By]
    • >>   board_init +
    + +

    HAL_SPI_Init (Thumb, 164 bytes, Stack size 16 bytes, stm32l4xx_hal_spi.o(.text.HAL_SPI_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_SPI_MspInit +
    +
    [Called By]
    • >>   MX_SPI1_Init +
    + +

    HAL_SPI_MspInit (Thumb, 110 bytes, Stack size 32 bytes, spi.o(.text.HAL_SPI_MspInit)) +

    [Stack]

    • Max Depth = 76
    • Call Chain = HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_SPI_Init +
    + +

    HAL_SYSTICK_Config (Thumb, 44 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(.text.HAL_SYSTICK_Config)) +

    [Called By]

    • >>   HAL_InitTick +
    + +

    HAL_TIMEx_MasterConfigSynchronization (Thumb, 104 bytes, Stack size 8 bytes, stm32l4xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_TIMEx_MasterConfigSynchronization +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_Base_Init (Thumb, 54 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_Base_Init)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_TIM_Base_Init ⇒ TIM_Base_SetConfig +
    +
    [Calls]
    • >>   HAL_TIM_Base_MspInit +
    • >>   TIM_Base_SetConfig +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_Base_MspInit (Thumb, 50 bytes, Stack size 4 bytes, tim.o(.text.HAL_TIM_Base_MspInit)) +

    [Stack]

    • Max Depth = 4
    • Call Chain = HAL_TIM_Base_MspInit +
    +
    [Called By]
    • >>   HAL_TIM_Base_Init +
    + +

    HAL_TIM_ConfigClockSource (Thumb, 366 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_TIM_ConfigClockSource +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_ConfigChannel (Thumb, 920 bytes, Stack size 24 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_PWM_ConfigChannel)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_TIM_PWM_ConfigChannel +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_Init (Thumb, 54 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_PWM_Init)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_TIM_PWM_Init ⇒ TIM_Base_SetConfig +
    +
    [Calls]
    • >>   TIM_Base_SetConfig +
    • >>   HAL_TIM_PWM_MspInit +
    +
    [Called By]
    • >>   MX_TIM4_Init +
    + +

    HAL_TIM_PWM_MspInit (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_tim.o(.text.HAL_TIM_PWM_MspInit)) +

    [Called By]

    • >>   HAL_TIM_PWM_Init +
    + +

    HAL_UARTEx_WakeupCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart_ex.o(.text.HAL_UARTEx_WakeupCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    + +

    HAL_UART_ErrorCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_ErrorCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    • >>   UART_DMAAbortOnError +
    + +

    HAL_UART_IRQHandler (Thumb, 380 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_TxCpltCallback +
    • >>   HAL_UART_ErrorCallback +
    • >>   HAL_UARTEx_WakeupCallback +
    • >>   HAL_DMA_Abort_IT +
    +
    [Called By]
    • >>   USART3_IRQHandler +
    • >>   USART2_IRQHandler +
    • >>   LPUART1_IRQHandler +
    + +

    HAL_UART_Init (Thumb, 100 bytes, Stack size 8 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_Init)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_UART_MspInit +
    • >>   UART_SetConfig +
    • >>   UART_CheckIdleState +
    • >>   UART_AdvFeatureConfig +
    +
    [Called By]
    • >>   MX_LPUART1_UART_Init +
    + +

    HAL_UART_MspInit (Thumb, 470 bytes, Stack size 32 bytes, usart.o(.text.HAL_UART_MspInit)) +

    [Stack]

    • Max Depth = 76
    • Call Chain = HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    HAL_UART_Receive (Thumb, 418 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_Receive)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_UART_Receive +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   fgetc +
    + +

    HAL_UART_Transmit (Thumb, 426 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_Transmit)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_UART_Transmit +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   fputc +
    + +

    HAL_UART_TxCpltCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(.text.HAL_UART_TxCpltCallback)) +

    [Called By]

    • >>   HAL_UART_IRQHandler +
    + +

    HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.HardFault_Handler)) +

    [Calls]

    • >>   HardFault_Handler +
    +
    [Called By]
    • >>   HardFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    LPUART1_IRQHandler (Thumb, 26 bytes, Stack size 8 bytes, stm32l4xx_it.o(.text.LPUART1_IRQHandler)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = LPUART1_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   tos_knl_irq_leave +
    • >>   tos_knl_irq_enter +
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    MX_DCMI_Init (Thumb, 62 bytes, Stack size 8 bytes, dcmi.o(.text.MX_DCMI_Init)) +

    [Stack]

    • Max Depth = 156
    • Call Chain = MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_DCMI_Init +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_DMA_Init (Thumb, 52 bytes, Stack size 16 bytes, dma.o(.text.MX_DMA_Init)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = MX_DMA_Init ⇒ HAL_NVIC_SetPriority +
    +
    [Calls]
    • >>   HAL_NVIC_SetPriority +
    • >>   HAL_NVIC_EnableIRQ +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_GPIO_Init (Thumb, 216 bytes, Stack size 48 bytes, gpio.o(.text.MX_GPIO_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = MX_GPIO_Init ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_PWREx_EnableVddIO2 +
    • >>   HAL_GPIO_WritePin +
    • >>   HAL_GPIO_Init +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_I2C1_Init (Thumb, 108 bytes, Stack size 8 bytes, i2c.o(.text.MX_I2C1_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = MX_I2C1_Init ⇒ HAL_I2C_Init ⇒ HAL_I2C_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_I2C_Init +
    • >>   HAL_I2CEx_ConfigDigitalFilter +
    • >>   HAL_I2CEx_ConfigAnalogFilter +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_LPUART1_UART_Init (Thumb, 62 bytes, Stack size 8 bytes, usart.o(.text.MX_LPUART1_UART_Init)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = MX_LPUART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   HAL_UART_Init +
    • >>   Error_Handler +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_SPI1_Init (Thumb, 78 bytes, Stack size 8 bytes, spi.o(.text.MX_SPI1_Init)) +

    [Stack]

    • Max Depth = 100
    • Call Chain = MX_SPI1_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_SPI_Init +
    +
    [Called By]
    • >>   board_init +
    + +

    MX_TIM4_Init (Thumb, 274 bytes, Stack size 96 bytes, tim.o(.text.MX_TIM4_Init)) +

    [Stack]

    • Max Depth = 140
    • Call Chain = MX_TIM4_Init ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   Error_Handler +
    • >>   HAL_GPIO_Init +
    • >>   HAL_TIM_PWM_Init +
    • >>   HAL_TIM_PWM_ConfigChannel +
    • >>   HAL_TIM_ConfigClockSource +
    • >>   HAL_TIM_Base_Init +
    • >>   HAL_TIMEx_MasterConfigSynchronization +
    +
    [Called By]
    • >>   board_init +
    + +

    MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.MemManage_Handler)) +

    [Calls]

    • >>   MemManage_Handler +
    +
    [Called By]
    • >>   MemManage_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    MicroVsnprintf (Thumb, 2370 bytes, Stack size 128 bytes, micro_string.o(.text.MicroVsnprintf)) +

    [Stack]

    • Max Depth = 160
    • Call Chain = MicroVsnprintf ⇒ __aeabi_d2f +
    +
    [Calls]
    • >>   __aeabi_d2f +
    +
    [Called By]
    • >>   tflite::MicroErrorReporter::Report(const char*, std::__va_list) +
    + +

    NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.NMI_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.SVC_Handler)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(RESET) +
    +

    SysTick_Handler (Thumb, 32 bytes, Stack size 8 bytes, stm32l4xx_it.o(.text.SysTick_Handler)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = SysTick_Handler ⇒ tos_tick_handler ⇒ timer_update ⇒ tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_tick_handler +
    • >>   tos_knl_is_running +
    • >>   tos_knl_irq_leave +
    • >>   tos_knl_irq_enter +
    • >>   HAL_IncTick +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    SystemInit (Thumb, 82 bytes, Stack size 0 bytes, system_stm32l4xx.o(.text.SystemInit)) +
    [Address Reference Count : 1]

    • startup_stm32l496xx.o(.text) +
    +

    TIM_Base_SetConfig (Thumb, 316 bytes, Stack size 8 bytes, stm32l4xx_hal_tim.o(.text.TIM_Base_SetConfig)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = TIM_Base_SetConfig +
    +
    [Called By]
    • >>   HAL_TIM_PWM_Init +
    • >>   HAL_TIM_Base_Init +
    + +

    TfLiteIntArrayGetSizeInBytes (Thumb, 8 bytes, Stack size 0 bytes, common.o(.text.TfLiteIntArrayGetSizeInBytes)) +

    [Called By]

    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    + +

    TfLiteTypeGetName (Thumb, 84 bytes, Stack size 0 bytes, common.o(.text.TfLiteTypeGetName)) +

    [Called By]

    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::fully_connected::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxEval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    + +

    UART_AdvFeatureConfig (Thumb, 230 bytes, Stack size 8 bytes, stm32l4xx_hal_uart.o(.text.UART_AdvFeatureConfig)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = UART_AdvFeatureConfig +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    UART_CheckIdleState (Thumb, 154 bytes, Stack size 16 bytes, stm32l4xx_hal_uart.o(.text.UART_CheckIdleState)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = UART_CheckIdleState +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    UART_SetConfig (Thumb, 660 bytes, Stack size 16 bytes, stm32l4xx_hal_uart.o(.text.UART_SetConfig)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = UART_SetConfig ⇒ __aeabi_uldivmod +
    +
    [Calls]
    • >>   HAL_RCC_GetSysClockFreq +
    • >>   HAL_RCC_GetPCLK2Freq +
    • >>   HAL_RCC_GetPCLK1Freq +
    • >>   __aeabi_uldivmod +
    +
    [Called By]
    • >>   HAL_UART_Init +
    + +

    USART2_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.USART2_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = USART2_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    USART3_IRQHandler (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.USART3_IRQHandler)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = USART3_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT +
    +
    [Calls]
    • >>   HAL_UART_IRQHandler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    UsageFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it.o(.text.UsageFault_Handler)) +

    [Calls]

    • >>   UsageFault_Handler +
    +
    [Called By]
    • >>   UsageFault_Handler +
    +
    [Address Reference Count : 1]
    • startup_stm32l496xx.o(RESET) +
    +

    __cxxabiv1::__enum_type_info::~__enum_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) +

    [Calls]

    • >>   std::type_info::~type_info__sub_object() +
    + +

    __cxxabiv1::__enum_type_info::~__enum_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__shim_type_info::~__shim_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__shim_type_info::~__shim_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev)) +
    [Address Reference Count : 3]

    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__array_type_info::~__array_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__array_type_info::~__array_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__class_type_info::~__class_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__class_type_info::~__class_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pbase_type_info::~__pbase_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pbase_type_info::~__pbase_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pointer_type_info::~__pointer_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pointer_type_info::~__pointer_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__function_type_info::~__function_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__function_type_info::~__function_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__si_class_type_info::~__si_class_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__si_class_type_info::~__si_class_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__fundamental_type_info::~__fundamental_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv116__shim_type_infoD2Ev), UNUSED) + +

    __cxxabiv1::__class_type_info::~__class_type_info__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv117__class_type_infoD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __cxxabiv1::__class_type_info::~__class_type_info__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    +

    __cxxabiv1::__si_class_type_info::~__si_class_type_info__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv120__si_class_type_infoD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __cxxabiv1::__si_class_type_info::~__si_class_type_info__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    +

    __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZN10__cxxabiv121__vmi_class_type_infoD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    tflite::OpResolver::~OpResolver__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, micro_speech.o(.text._ZN6tflite10OpResolverD2Ev)) +
    [Address Reference Count : 1]

    • micro_speech.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj4EEE) +
    +

    tflite::AlignSizeUp(unsigned, unsigned) (Thumb, 12 bytes, Stack size 0 bytes, memory_helpers.o(.text._ZN6tflite11AlignSizeUpEjj)) +

    [Called By]

    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::ElementCount(const TfLiteIntArray&) (Thumb, 110 bytes, Stack size 16 bytes, micro_utils.o(.text._ZN6tflite12ElementCountERK14TfLiteIntArray)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::ElementCount(const TfLiteIntArray&) +
    +
    [Called By]
    • >>   tflite::ops::micro::reshape::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ParseReshape(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) (Thumb, 344 bytes, Stack size 48 bytes, flatbuffer_conversions.o(.text._ZN6tflite12ParseReshapeEPKNS_8OperatorEPNS_13ErrorReporterEPNS_20BuiltinDataAllocatorEPPv)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = tflite::ParseReshape(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_speech.o(.text._ZN6tflite22MicroMutableOpResolverILj4EE10AddReshapeEv) +
    +

    tflite::ParseSoftmax(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) (Thumb, 148 bytes, Stack size 24 bytes, flatbuffer_conversions.o(.text._ZN6tflite12ParseSoftmaxEPKNS_8OperatorEPNS_13ErrorReporterEPNS_20BuiltinDataAllocatorEPPv)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::ParseSoftmax(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) ⇒ tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_speech.o(.text._ZN6tflite22MicroMutableOpResolverILj4EE10AddSoftmaxEv) +
    +

    tflite::ErrorReporter::ReportError(void*, const char*, ...) (Thumb, 30 bytes, Stack size 16 bytes, error_reporter.o(.text._ZN6tflite13ErrorReporter11ReportErrorEPvPKcz)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Called By]
    • >>   tflite::ParseDepthwiseConv2D(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::ParseFullyConnected(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::ParseSoftmax(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::ParseReshape(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::ErrorReporter::Report(const char*, ...) (Thumb, 30 bytes, Stack size 24 bytes, error_reporter.o(.text._ZN6tflite13ErrorReporter6ReportEPKcz)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   speech_run +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddDepthwiseConv2D() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddFullyConnected() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddSoftmax() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddReshape() +
    • >>   tflite::ParseFullyConnected(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) +
    • >>   tflite::MicroInterpreter::output(unsigned) +
    • >>   tflite::MicroInterpreter::Invoke() +
    • >>   tflite::MicroInterpreter::input(unsigned) +
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    • >>   tflite::ParseReshape(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) +
    • >>   tflite::SimpleMemoryAllocator::AllocateFromTail(unsigned, unsigned) +
    • >>   tflite::SimpleMemoryAllocator::EnsureHeadSize(unsigned, unsigned) +
    • >>   tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) +
    • >>   tflite::MicroAllocator::GetScratchBuffer(int) const +
    • >>   tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) +
    • >>   tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) +
    • >>   tflite::MicroAllocator::FinishModelAllocation(const tflite::Model*, TfLiteEvalTensor*) +
    • >>   tflite::MicroAllocator::StartModelAllocation(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration**, TfLiteEvalTensor**) +
    • >>   tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int) +
    • >>   tflite::GreedyMemoryPlanner::GetOffsetForBuffer(tflite::ErrorReporter*, int, int*) +
    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    • >>   tflite::GetRegistrationFromOpCode(const tflite::OperatorCode*, const tflite::OpResolver&, tflite::ErrorReporter*, const TfLiteRegistration**) +
    • >>   tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) +
    • >>   tflite::SimpleMemoryAllocator::AllocateTemp(unsigned, unsigned) +
    • >>   tflite::MicroAllocator::PrepareNodeAndRegistrationDataFromFlatbuffer(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration*) +
    • >>   tflite::MicroAllocator::AllocatePersistentTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) +
    • >>   tflite::MicroAllocator::AllocateNodeAndRegistrations(const tflite::Model*, tflite::NodeAndRegistration**) +
    • >>   tflite::MicroAllocator::AllocateTfLiteEvalTensors(const tflite::Model*, TfLiteEvalTensor**) +
    • >>   tflite::MicroAllocator::AllocateTempTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) +
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    • >>   tflite::MicroAllocator::AllocateVariables(const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::ErrorReporter::~ErrorReporter__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, micro_error_reporter.o(.text._ZN6tflite13ErrorReporterD2Ev)) +
    [Address Reference Count : 1]

    • micro_error_reporter.o(.rodata._ZTVN6tflite18MicroErrorReporterE) +
    +

    tflite::reference_ops::DepthwiseConv(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) (Thumb, 1328 bytes, Stack size 300 bytes, depthwise_conv.o(.text._ZN6tflite13reference_ops13DepthwiseConvERKNS_15DepthwiseParamsERKNS_12RuntimeShapeEPKfS6_S8_S6_S8_S6_Pf)) +

    [Stack]

    • Max Depth = 300
    • Call Chain = tflite::reference_ops::DepthwiseConv(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::reference_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) (Thumb, 1260 bytes, Stack size 88 bytes, fully_connected.o(.text._ZN6tflite13reference_ops14FullyConnectedERKNS_20FullyConnectedParamsERKNS_12RuntimeShapeEPKfS6_S8_S6_S8_S6_Pf)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = tflite::reference_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) +
    +
    [Called By]
    • >>   tflite::ops::micro::fully_connected::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteFusedActivation, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*) +
    + +

    tflite::reference_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*) (Thumb, 1984 bytes, Stack size 148 bytes, fully_connected.o(.text._ZN6tflite13reference_ops14FullyConnectedERKNS_20FullyConnectedParamsERKNS_12RuntimeShapeEPKhS6_S8_S6_PKiS6_Ph)) +

    [Stack]

    • Max Depth = 148
    • Call Chain = tflite::reference_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*) +
    +
    [Called By]
    • >>   tflite::ops::micro::fully_connected::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::reference_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, short*) (Thumb, 1948 bytes, Stack size 164 bytes, fully_connected.o(.text._ZN6tflite13reference_ops14FullyConnectedERKNS_20FullyConnectedParamsERKNS_12RuntimeShapeEPKhS6_S8_S6_PKiS6_Ps)) +

    [Stack]

    • Max Depth = 164
    • Call Chain = tflite::reference_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, short*) +
    +
    [Called By]
    • >>   tflite::ops::micro::fully_connected::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::reference_ops::depthwise_conv::DepthwiseConvBasicKernel⟨(tflite::DepthwiseConvOutputRounding)1⟩::Run(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*) (Thumb, 1366 bytes, Stack size 316 bytes, depthwise_conv.o(.text._ZN6tflite13reference_ops14depthwise_conv24DepthwiseConvBasicKernelILNS_27DepthwiseConvOutputRoundingE1EE3RunERKNS_15DepthwiseParamsERKNS_12RuntimeShapeEPKhSA_SC_SA_PKiSA_Ph)) +

    [Stack]

    • Max Depth = 316
    • Call Chain = tflite::reference_ops::depthwise_conv::DepthwiseConvBasicKernel⟨(tflite::DepthwiseConvOutputRounding)1⟩::Run(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*) +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    void tflite::reference_ops::Softmax⟨signed char, short⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) (Thumb, 1436 bytes, Stack size 104 bytes, softmax.o(.text._ZN6tflite13reference_ops7SoftmaxIasEEvRKNS_13SoftmaxParamsERKNS_12RuntimeShapeEPKT_S7_PT0_)) +

    [Stack]

    • Max Depth = 140
    • Call Chain = void tflite::reference_ops::Softmax⟨signed char, short⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) ⇒ gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    +
    [Calls]
    • >>   gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    • >>   gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::exp_on_negative_values⟨int, (int)5⟩(gemmlowp::FixedPoint⟨T1, T2⟩) +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    + +

    void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) (Thumb, 1364 bytes, Stack size 104 bytes, softmax.o(.text._ZN6tflite13reference_ops7SoftmaxIhhEEvRKNS_13SoftmaxParamsERKNS_12RuntimeShapeEPKT_S7_PT0_)) +

    [Stack]

    • Max Depth = 140
    • Call Chain = void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) ⇒ gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    +
    [Calls]
    • >>   gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    • >>   gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::exp_on_negative_values⟨int, (int)5⟩(gemmlowp::FixedPoint⟨T1, T2⟩) +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    + +

    tflite::AlignPointerUp(unsigned char*, unsigned) (Thumb, 12 bytes, Stack size 0 bytes, memory_helpers.o(.text._ZN6tflite14AlignPointerUpEPhj)) +

    [Called By]

    • >>   tflite::SimpleMemoryAllocator::EnsureHeadSize(unsigned, unsigned) +
    • >>   tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) +
    • >>   tflite::SimpleMemoryAllocator::GetAvailableMemory(unsigned) const +
    • >>   tflite::SimpleMemoryAllocator::AllocateTemp(unsigned, unsigned) +
    + +

    tflite::MicroAllocator::AllocateVariables(const tflite::SubGraph*, TfLiteEvalTensor*) (Thumb, 236 bytes, Stack size 32 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator17AllocateVariablesEPKNS_8SubGraphEP16TfLiteEvalTensor)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = tflite::MicroAllocator::AllocateVariables(const tflite::SubGraph*, TfLiteEvalTensor*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::ResetTempAllocations() (Thumb, 8 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator20ResetTempAllocationsEv)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::StartModelAllocation(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration**, TfLiteEvalTensor**) (Thumb, 92 bytes, Stack size 24 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator20StartModelAllocationEPKNS_5ModelERKNS_15MicroOpResolverEPPNS_19NodeAndRegistrationEPP16TfLiteEvalTensor)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::MicroAllocator::StartModelAllocation(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration**, TfLiteEvalTensor**) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    + +

    tflite::MicroAllocator::FinishModelAllocation(const tflite::Model*, TfLiteEvalTensor*) (Thumb, 122 bytes, Stack size 24 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator21FinishModelAllocationEPKNS_5ModelEP16TfLiteEvalTensor)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::MicroAllocator::FinishModelAllocation(const tflite::Model*, TfLiteEvalTensor*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    + +

    tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) (Thumb, 1956 bytes, Stack size 152 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator22CommitStaticMemoryPlanEPKNS_5ModelEPKNS_8SubGraphEP16TfLiteEvalTensor)) +

    [Stack]

    • Max Depth = 208
    • Call Chain = tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) ⇒ tflite::GreedyMemoryPlanner::GetMaximumMemorySize() ⇒ tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Calls]
    • >>   tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    • >>   tflite::AlignSizeUp(unsigned, unsigned) +
    • >>   strncmp +
    • >>   tflite::SimpleMemoryAllocator::GetTail() const +
    • >>   tflite::SimpleMemoryAllocator::GetAvailableMemory(unsigned) const +
    • >>   tflite::SimpleMemoryAllocator::GetBufferHead() const +
    • >>   tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator() +
    • >>   tflite::SimpleMemoryAllocator::SimpleMemoryAllocator(tflite::ErrorReporter*, unsigned char*, unsigned char*) +
    • >>   tflite::SimpleMemoryAllocator::AllocateTemp(unsigned, unsigned) +
    • >>   tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner() +
    • >>   tflite::GreedyMemoryPlanner::GreedyMemoryPlanner(unsigned char*, int) +
    • >>   tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int, int) +
    • >>   tflite::GreedyMemoryPlanner::GetMaximumMemorySize() +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::AllocatePersistentBuffer(unsigned) (Thumb, 10 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator24AllocatePersistentBufferEj)) +

    [Called By]

    • >>   tflite::internal::ContextHelper::AllocatePersistentBuffer(TfLiteContext*, unsigned) +
    + +

    tflite::MicroAllocator::AllocateTempTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) (Thumb, 150 bytes, Stack size 40 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator24AllocateTempTfLiteTensorEPKNS_5ModelEP16TfLiteEvalTensori)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = tflite::MicroAllocator::AllocateTempTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::AllocateTfLiteEvalTensors(const tflite::Model*, TfLiteEvalTensor**) (Thumb, 520 bytes, Stack size 64 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator25AllocateTfLiteEvalTensorsEPKNS_5ModelEPP16TfLiteEvalTensor)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = tflite::MicroAllocator::AllocateTfLiteEvalTensors(const tflite::Model*, TfLiteEvalTensor**) ⇒ tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) (Thumb, 160 bytes, Stack size 24 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator27RequestScratchBufferInArenaEijPi)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::SimpleMemoryAllocator::GetTail() const +
    +
    [Called By]
    • >>   tflite::internal::ContextHelper::RequestScratchBufferInArena(TfLiteContext*, unsigned, int*) +
    + +

    tflite::MicroAllocator::AllocateNodeAndRegistrations(const tflite::Model*, tflite::NodeAndRegistration**) (Thumb, 148 bytes, Stack size 16 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator28AllocateNodeAndRegistrationsEPKNS_5ModelEPPNS_19NodeAndRegistrationE)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::MicroAllocator::AllocateNodeAndRegistrations(const tflite::Model*, tflite::NodeAndRegistration**) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::AllocatePersistentTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) (Thumb, 152 bytes, Stack size 40 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator30AllocatePersistentTfLiteTensorEPKNS_5ModelEP16TfLiteEvalTensori)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = tflite::MicroAllocator::AllocatePersistentTfLiteTensor(const tflite::Model*, TfLiteEvalTensor*, int) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::PopulateTfLiteTensorFromFlatbuffer(const tflite::Model*, const tflite::SubGraph*, TfLiteTensor*, int, bool) (Thumb, 84 bytes, Stack size 24 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator34PopulateTfLiteTensorFromFlatbufferEPKNS_5ModelEPKNS_8SubGraphEP12TfLiteTensorib)) +

    [Stack]

    • Max Depth = 160
    • Call Chain = tflite::MicroAllocator::PopulateTfLiteTensorFromFlatbuffer(const tflite::Model*, const tflite::SubGraph*, TfLiteTensor*, int, bool) ⇒ tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) ⇒ tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) ⇒ tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::AllocatePersistentTfLiteTensorInternal(const tflite::Model*, TfLiteEvalTensor*, int) (Thumb, 12 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator38AllocatePersistentTfLiteTensorInternalEPKNS_5ModelEP16TfLiteEvalTensori)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::PrepareNodeAndRegistrationDataFromFlatbuffer(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration*) (Thumb, 980 bytes, Stack size 88 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator44PrepareNodeAndRegistrationDataFromFlatbufferEPKNS_5ModelERKNS_15MicroOpResolverEPNS_19NodeAndRegistrationE)) +

    [Stack]

    • Max Depth = 136
    • Call Chain = tflite::MicroAllocator::PrepareNodeAndRegistrationDataFromFlatbuffer(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration*) ⇒ tflite::GetRegistrationFromOpCode(const tflite::OperatorCode*, const tflite::OpResolver&, tflite::ErrorReporter*, const TfLiteRegistration**) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::GetRegistrationFromOpCode(const tflite::OperatorCode*, const tflite::OpResolver&, tflite::ErrorReporter*, const TfLiteRegistration**) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) (Thumb, 92 bytes, Stack size 24 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocator6CreateEPhjPNS_13ErrorReporterE)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) ⇒ tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::AlignPointerUp(unsigned char*, unsigned) +
    • >>   tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) +
    +
    [Called By]
    • >>   tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) +
    + +

    tflite::MicroAllocator::~MicroAllocator__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocatorD0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::MicroAllocator::~MicroAllocator__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::MicroAllocator::~MicroAllocator() (Thumb, 2 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocatorD2Ev), UNUSED) + +

    tflite::MicroAllocator::~MicroAllocator__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite14MicroAllocatorD2Ev)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite14MicroAllocatorE) +
    +

    tflite::AlignPointerDown(unsigned char*, unsigned) (Thumb, 8 bytes, Stack size 0 bytes, memory_helpers.o(.text._ZN6tflite16AlignPointerDownEPhj)) +

    [Called By]

    • >>   tflite::SimpleMemoryAllocator::AllocateFromTail(unsigned, unsigned) +
    • >>   tflite::SimpleMemoryAllocator::GetAvailableMemory(unsigned) const +
    • >>   tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) +
    + +

    tflite::MicroInterpreter::AllocateTensors() (Thumb, 528 bytes, Stack size 40 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreter15AllocateTensorsEv)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = tflite::MicroInterpreter::AllocateTensors() ⇒ tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::MicroInterpreter::ResetVariableTensors() +
    • >>   tflite::MicroAllocator::FinishModelAllocation(const tflite::Model*, TfLiteEvalTensor*) +
    • >>   tflite::MicroAllocator::StartModelAllocation(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration**, TfLiteEvalTensor**) +
    +
    [Called By]
    • >>   speech_init +
    • >>   tflite::MicroInterpreter::Invoke() +
    + +

    tflite::MicroInterpreter::ResetVariableTensors() (Thumb, 298 bytes, Stack size 48 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreter20ResetVariableTensorsEv)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    • >>   __aeabi_memset +
    +
    [Called By]
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    + +

    tflite::MicroInterpreter::input(unsigned) (Thumb, 180 bytes, Stack size 16 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreter5inputEj)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::MicroInterpreter::input(unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   speech_init +
    + +

    tflite::MicroInterpreter::Invoke() (Thumb, 328 bytes, Stack size 32 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreter6InvokeEv)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = tflite::MicroInterpreter::Invoke() ⇒ tflite::MicroInterpreter::AllocateTensors() ⇒ tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   speech_run +
    + +

    tflite::MicroInterpreter::output(unsigned) (Thumb, 180 bytes, Stack size 16 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreter6outputEj)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::MicroInterpreter::output(unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   speech_run +
    + +

    tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) (Thumb, 198 bytes, Stack size 32 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreterC2EPKNS_5ModelERKNS_15MicroOpResolverEPhjPNS_13ErrorReporterEPNS_8ProfilerE)) +

    [Stack]

    • Max Depth = 104
    • Call Chain = tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) ⇒ tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) ⇒ tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   speech_init +
    + +

    tflite::MicroInterpreter::MicroInterpreter__sub_object(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) (Thumb, 198 bytes, Stack size 32 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreterC2EPKNS_5ModelERKNS_15MicroOpResolverEPhjPNS_13ErrorReporterEPNS_8ProfilerE), UNUSED) + +

    tflite::MicroInterpreter::~MicroInterpreter() (Thumb, 90 bytes, Stack size 24 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreterD2Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tflite::MicroInterpreter::~MicroInterpreter() +
    +
    [Address Reference Count : 1]
    • micro_speech.o(.text.speech_init) +
    +

    tflite::MicroInterpreter::~MicroInterpreter__sub_object() (Thumb, 90 bytes, Stack size 24 bytes, micro_interpreter.o(.text._ZN6tflite16MicroInterpreterD2Ev), UNUSED) + +

    tflite::TfLiteTypeSizeOf(TfLiteType, unsigned*) (Thumb, 44 bytes, Stack size 0 bytes, memory_helpers.o(.text._ZN6tflite16TfLiteTypeSizeOfE10TfLiteTypePj)) +

    [Called By]

    • >>   tflite::ops::micro::reshape::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) (Thumb, 144 bytes, Stack size 8 bytes, flatbuffer_conversions.o(.text._ZN6tflite17ConvertTensorTypeENS_10TensorTypeEP10TfLiteTypePNS_13ErrorReporterE)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) +
    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    • >>   tflite::MicroAllocator::AllocateTfLiteEvalTensors(const tflite::Model*, TfLiteEvalTensor**) +
    + +

    tflite::MicroErrorReporter::Report(const char*, std::__va_list) (Thumb, 44 bytes, Stack size 264 bytes, micro_error_reporter.o(.text._ZN6tflite18MicroErrorReporter6ReportEPKcSt9__va_list)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = tflite::MicroErrorReporter::Report(const char*, std::__va_list) ⇒ MicroVsnprintf ⇒ __aeabi_d2f +
    +
    [Calls]
    • >>   MicroVsnprintf +
    • >>   DebugLog +
    +
    [Address Reference Count : 1]
    • micro_error_reporter.o(.rodata._ZTVN6tflite18MicroErrorReporterE) +
    +

    tflite::MicroErrorReporter::~MicroErrorReporter__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, micro_error_reporter.o(.text._ZN6tflite18MicroErrorReporterD0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::MicroErrorReporter::~MicroErrorReporter__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • micro_error_reporter.o(.rodata._ZTVN6tflite18MicroErrorReporterE) +
    +

    tflite::QuantizeMultiplier(double, int*, int*) (Thumb, 192 bytes, Stack size 24 bytes, quantization_util.o(.text._ZN6tflite18QuantizeMultiplierEdPiS0_)) +

    [Stack]

    • Max Depth = 120 + Unknown Stack Size +
    • Call Chain = tflite::QuantizeMultiplier(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   __hardfp_round +
    • >>   __hardfp_frexp +
    • >>   __aeabi_dmul +
    • >>   __aeabi_d2lz +
    • >>   __aeabi_dcmpeq +
    • >>   abort +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::GreedyMemoryPlanner::GetBufferCount() (Thumb, 4 bytes, Stack size 0 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner14GetBufferCountEv)) +
    [Address Reference Count : 1]

    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::GreedyMemoryPlanner::GetOffsetForBuffer(tflite::ErrorReporter*, int, int*) (Thumb, 100 bytes, Stack size 24 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner18GetOffsetForBufferEPNS_13ErrorReporterEiPi)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = tflite::GreedyMemoryPlanner::GetOffsetForBuffer(tflite::ErrorReporter*, int, int*) ⇒ tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Address Reference Count : 1]
    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::GreedyMemoryPlanner::GetMaximumMemorySize() (Thumb, 72 bytes, Stack size 8 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner20GetMaximumMemorySizeEv)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = tflite::GreedyMemoryPlanner::GetMaximumMemorySize() ⇒ tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Calls]
    • >>   tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    +
    [Address Reference Count : 1]
    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() (Thumb, 654 bytes, Stack size 48 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner24CalculateOffsetsIfNeededEv)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::GreedyMemoryPlanner::CalculateOffsetsIfNeeded() +
    +
    [Called By]
    • >>   tflite::GreedyMemoryPlanner::GetOffsetForBuffer(tflite::ErrorReporter*, int, int*) +
    • >>   tflite::GreedyMemoryPlanner::GetMaximumMemorySize() +
    + +

    tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int) (Thumb, 100 bytes, Stack size 16 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner9AddBufferEPNS_13ErrorReporterEiii)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Address Reference Count : 1]
    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int, int) (Thumb, 44 bytes, Stack size 24 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlanner9AddBufferEPNS_13ErrorReporterEiiii)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tflite::GreedyMemoryPlanner::AddBuffer(tflite::ErrorReporter*, int, int, int, int) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::GreedyMemoryPlanner::GreedyMemoryPlanner(unsigned char*, int) (Thumb, 76 bytes, Stack size 16 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlannerC2EPhi)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::GreedyMemoryPlanner::GreedyMemoryPlanner(unsigned char*, int) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::GreedyMemoryPlanner::GreedyMemoryPlanner__sub_object(unsigned char*, int) (Thumb, 76 bytes, Stack size 16 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlannerC2EPhi), UNUSED) + +

    tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlannerD0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner() (Thumb, 2 bytes, Stack size 0 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlannerD2Ev)) +

    [Called By]

    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, greedy_memory_planner.o(.text._ZN6tflite19GreedyMemoryPlannerD2Ev)) +
    [Address Reference Count : 1]

    • greedy_memory_planner.o(.rodata._ZTVN6tflite19GreedyMemoryPlannerE) +
    +

    tflite::ParseFullyConnected(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) (Thumb, 336 bytes, Stack size 32 bytes, flatbuffer_conversions.o(.text._ZN6tflite19ParseFullyConnectedEPKNS_8OperatorEPNS_13ErrorReporterEPNS_20BuiltinDataAllocatorEPPv)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = tflite::ParseFullyConnected(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_speech.o(.text._ZN6tflite22MicroMutableOpResolverILj4EE17AddFullyConnectedEv) +
    +

    tflite::BuiltinDataAllocator::~BuiltinDataAllocator__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite20BuiltinDataAllocatorD2Ev)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocatorE) +
    +

    tflite::CalculateInputRadius(int, int, int) (Thumb, 142 bytes, Stack size 32 bytes, quantization_util.o(.text._ZN6tflite20CalculateInputRadiusEiii)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = tflite::CalculateInputRadius(int, int, int) ⇒ __hardfp_floor ⇒ __aeabi_cdrcmple +
    +
    [Calls]
    • >>   __hardfp_floor +
    • >>   __aeabi_dmul +
    • >>   __aeabi_l2d +
    • >>   __aeabi_i2d +
    • >>   __aeabi_d2iz +
    • >>   __aeabi_ddiv +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ParseDepthwiseConv2D(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) (Thumb, 346 bytes, Stack size 24 bytes, flatbuffer_conversions.o(.text._ZN6tflite20ParseDepthwiseConv2DEPKNS_8OperatorEPNS_13ErrorReporterEPNS_20BuiltinDataAllocatorEPPv)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::ParseDepthwiseConv2D(const tflite::Operator*, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**) ⇒ tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::ReportError(void*, const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_speech.o(.text._ZN6tflite22MicroMutableOpResolverILj4EE18AddDepthwiseConv2DEv) +
    +

    tflite::SimpleMemoryAllocator::AllocateTemp(unsigned, unsigned) (Thumb, 58 bytes, Stack size 24 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocator12AllocateTempEjj)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::SimpleMemoryAllocator::AllocateTemp(unsigned, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::AlignPointerUp(unsigned char*, unsigned) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    +
    [Address Reference Count : 1]
    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::SimpleMemoryAllocator::EnsureHeadSize(unsigned, unsigned) (Thumb, 96 bytes, Stack size 24 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocator14EnsureHeadSizeEjj)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::SimpleMemoryAllocator::EnsureHeadSize(unsigned, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::AlignPointerUp(unsigned char*, unsigned) +
    +
    [Address Reference Count : 1]
    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::SimpleMemoryAllocator::AllocateFromTail(unsigned, unsigned) (Thumb, 64 bytes, Stack size 24 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocator16AllocateFromTailEjj)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::SimpleMemoryAllocator::AllocateFromTail(unsigned, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::AlignPointerDown(unsigned char*, unsigned) +
    +
    [Address Reference Count : 1]
    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::SimpleMemoryAllocator::ResetTempAllocations() (Thumb, 6 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocator20ResetTempAllocationsEv)) +
    [Address Reference Count : 1]

    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) (Thumb, 84 bytes, Stack size 24 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocator6CreateEPNS_13ErrorReporterEPhj)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::SimpleMemoryAllocator::Create(tflite::ErrorReporter*, unsigned char*, unsigned) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   tflite::AlignPointerDown(unsigned char*, unsigned) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::Create(unsigned char*, unsigned, tflite::ErrorReporter*) +
    + +

    tflite::SimpleMemoryAllocator::SimpleMemoryAllocator(tflite::ErrorReporter*, unsigned char*, unsigned char*) (Thumb, 28 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocatorC2EPNS_13ErrorReporterEPhS3_)) +

    [Called By]

    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::SimpleMemoryAllocator::SimpleMemoryAllocator__sub_object(tflite::ErrorReporter*, unsigned char*, unsigned char*) (Thumb, 28 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocatorC2EPNS_13ErrorReporterEPhS3_), UNUSED) + +

    tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocatorD0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator() (Thumb, 2 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocatorD2Ev)) +

    [Called By]

    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZN6tflite21SimpleMemoryAllocatorD2Ev)) +
    [Address Reference Count : 1]

    • simple_memory_allocator.o(.rodata._ZTVN6tflite21SimpleMemoryAllocatorE) +
    +

    tflite::reference_integer_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, signed char*) (Thumb, 1810 bytes, Stack size 140 bytes, fully_connected.o(.text._ZN6tflite21reference_integer_ops14FullyConnectedERKNS_20FullyConnectedParamsERKNS_12RuntimeShapeEPKaS6_S8_S6_PKiS6_Pa)) +

    [Stack]

    • Max Depth = 140
    • Call Chain = tflite::reference_integer_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, signed char*) +
    +
    [Called By]
    • >>   tflite::ops::micro::fully_connected::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::reference_integer_ops::DepthwiseConvPerChannel(const tflite::DepthwiseParams&, const int*, const int*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, signed char*) (Thumb, 1292 bytes, Stack size 288 bytes, depthwise_conv.o(.text._ZN6tflite21reference_integer_ops23DepthwiseConvPerChannelERKNS_15DepthwiseParamsEPKiS5_RKNS_12RuntimeShapeEPKaS8_SA_S8_S5_S8_Pa)) +

    [Stack]

    • Max Depth = 288
    • Call Chain = tflite::reference_integer_ops::DepthwiseConvPerChannel(const tflite::DepthwiseParams&, const int*, const int*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, signed char*) +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) (Thumb, 262 bytes, Stack size 56 bytes, memory_helpers.o(.text._ZN6tflite22BytesRequiredForTensorERKNS_6TensorEPjS3_PNS_13ErrorReporterE)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) ⇒ tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) +
    +
    [Called By]
    • >>   tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) +
    + +

    tflite::GetOptionalInputTensor(const TfLiteContext*, const TfLiteNode*, int) (Thumb, 38 bytes, Stack size 0 bytes, kernel_util.o(.text._ZN6tflite22GetOptionalInputTensorEPK13TfLiteContextPK10TfLiteNodei)) +

    [Called By]

    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddReshape() (Thumb, 182 bytes, Stack size 56 bytes, micro_speech.o(.text._ZN6tflite22MicroMutableOpResolverILj4EE10AddReshapeEv)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddReshape() ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ops::micro::Register_RESHAPE() +
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   speech_init +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddSoftmax() (Thumb, 182 bytes, Stack size 56 bytes, micro_speech.o(.text._ZN6tflite22MicroMutableOpResolverILj4EE10AddSoftmaxEv)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddSoftmax() ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ops::micro::Register_SOFTMAX() +
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   speech_init +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddFullyConnected() (Thumb, 182 bytes, Stack size 56 bytes, micro_speech.o(.text._ZN6tflite22MicroMutableOpResolverILj4EE17AddFullyConnectedEv)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddFullyConnected() ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ops::micro::Register_FULLY_CONNECTED() +
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   speech_init +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddDepthwiseConv2D() (Thumb, 182 bytes, Stack size 56 bytes, micro_speech.o(.text._ZN6tflite22MicroMutableOpResolverILj4EE18AddDepthwiseConv2DEv)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddDepthwiseConv2D() ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ops::micro::Register_DEPTHWISE_CONV_2D() +
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   speech_init +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)4⟩::~MicroMutableOpResolver__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, micro_speech.o(.text._ZN6tflite22MicroMutableOpResolverILj4EED0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)4⟩::~MicroMutableOpResolver__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • micro_speech.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj4EEE) +
    +

    tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) (Thumb, 104 bytes, Stack size 32 bytes, quantization_util.o(.text._ZN6tflite24PreprocessSoftmaxScalingEddiPiS0_)) +

    [Stack]

    • Max Depth = 160 + Unknown Stack Size +
    • Call Chain = tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) ⇒ tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    • >>   __aeabi_dmul +
    • >>   __aeabi_i2d +
    • >>   __aeabi_dcmpgt +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::GetRegistrationFromOpCode(const tflite::OperatorCode*, const tflite::OpResolver&, tflite::ErrorReporter*, const TfLiteRegistration**) (Thumb, 300 bytes, Stack size 24 bytes, op_resolver.o(.text._ZN6tflite25GetRegistrationFromOpCodeEPKNS_12OperatorCodeERKNS_10OpResolverEPNS_13ErrorReporterEPPK18TfLiteRegistration)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::GetRegistrationFromOpCode(const tflite::OperatorCode*, const tflite::OpResolver&, tflite::ErrorReporter*, const TfLiteRegistration**) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::PrepareNodeAndRegistrationDataFromFlatbuffer(const tflite::Model*, const tflite::MicroOpResolver&, tflite::NodeAndRegistration*) +
    + +

    tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) (Thumb, 170 bytes, Stack size 24 bytes, memory_helpers.o(.text._ZN6tflite26TfLiteEvalTensorByteLengthEPK16TfLiteEvalTensorPj)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Called By]
    • >>   tflite::MicroInterpreter::ResetVariableTensors() +
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    • >>   tflite::MicroAllocator::AllocateVariables(const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) (Thumb, 340 bytes, Stack size 48 bytes, kernel_util.o(.text._ZN6tflite32GetQuantizedConvolutionMultiplerEP13TfLiteContextPK12TfLiteTensorS4_S4_PS2_Pd)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_f2d +
    • >>   __aeabi_dmul +
    • >>   __aeabi_ddiv +
    • >>   __aeabi_dcmple +
    • >>   __aeabi_dsub +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) (Thumb, 224 bytes, Stack size 32 bytes, quantization_util.o(.text._ZN6tflite32QuantizeMultiplierGreaterThanOneEdPiS0_)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   __hardfp_round +
    • >>   __hardfp_frexp +
    • >>   __aeabi_dmul +
    • >>   __aeabi_d2lz +
    • >>   __aeabi_dcmpgt +
    • >>   __aeabi_dcmpeq +
    • >>   abort +
    +
    [Called By]
    • >>   tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) +
    + +

    tflite::CalculateActivationRangeQuantized(TfLiteContext*, TfLiteFusedActivation, TfLiteTensor*, int*, int*) (Thumb, 272 bytes, Stack size 40 bytes, kernel_util.o(.text._ZN6tflite33CalculateActivationRangeQuantizedEP13TfLiteContext21TfLiteFusedActivationP12TfLiteTensorPiS5_)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = tflite::CalculateActivationRangeQuantized(TfLiteContext*, TfLiteFusedActivation, TfLiteTensor*, int*, int*) ⇒ __hardfp_roundf ⇒ _frnd ⇒ __fpl_fnaninf +
    +
    [Calls]
    • >>   __hardfp_roundf +
    +
    [Called By]
    • >>   tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) (Thumb, 1148 bytes, Stack size 104 bytes, kernel_util.o(.text._ZN6tflite37PopulateConvolutionQuantizationParamsEP13TfLiteContextPK12TfLiteTensorS4_S4_PS2_RK21TfLiteFusedActivationPiS9_S9_S9_S9_S9_i)) +

    [Stack]

    • Max Depth = 224 + Unknown Stack Size +
    • Call Chain = tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) ⇒ tflite::QuantizeMultiplier(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    • >>   __hardfp_roundf +
    • >>   __aeabi_f2d +
    • >>   __aeabi_dmul +
    • >>   __aeabi_ddiv +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::activations::SoftmaxEval(TfLiteContext*, TfLiteNode*) (Thumb, 116 bytes, Stack size 16 bytes, softmax.o(.text._ZN6tflite3ops5micro11activations11SoftmaxEvalEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 308
    • Call Chain = tflite::ops::micro::activations::SoftmaxEval(TfLiteContext*, TfLiteNode*) ⇒ tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) ⇒ void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) ⇒ gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    +
    [Calls]
    • >>   TfLiteTypeGetName +
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    +
    [Address Reference Count : 1]
    • softmax.o(.text._ZN6tflite3ops5micro16Register_SOFTMAXEv) +
    +

    tflite::ops::micro::activations::SoftmaxInit(TfLiteContext*, const char*, unsigned) (Thumb, 6 bytes, Stack size 0 bytes, softmax.o(.text._ZN6tflite3ops5micro11activations11SoftmaxInitEP13TfLiteContextPKcj)) +
    [Address Reference Count : 1]

    • softmax.o(.text._ZN6tflite3ops5micro16Register_SOFTMAXEv) +
    +

    tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) (Thumb, 836 bytes, Stack size 168 bytes, softmax.o(.text._ZN6tflite3ops5micro11activations12SoftmaxFloatEPK16TfLiteEvalTensorPS3_RKNS_13SoftmaxParamsE)) +

    [Stack]

    • Max Depth = 224
    • Call Chain = tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) ⇒ operator new[] (unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   __hardfp_expf +
    • >>   __aeabi_d2f +
    • >>   __aeabi_memcpy4 +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxEval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) (Thumb, 968 bytes, Stack size 56 bytes, softmax.o(.text._ZN6tflite3ops5micro11activations14SoftmaxPrepareEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 216 + Unknown Stack Size +
    • Call Chain = tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) ⇒ tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) ⇒ tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   TfLiteTypeGetName +
    • >>   tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) +
    • >>   tflite::CalculateInputRadius(int, int, int) +
    • >>   __aeabi_f2d +
    +
    [Address Reference Count : 1]
    • softmax.o(.text._ZN6tflite3ops5micro16Register_SOFTMAXEv) +
    +

    tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) (Thumb, 834 bytes, Stack size 152 bytes, softmax.o(.text._ZN6tflite3ops5micro11activations16SoftmaxQuantizedEPK16TfLiteEvalTensorPS3_RKNS_13SoftmaxParamsE)) +

    [Stack]

    • Max Depth = 292
    • Call Chain = tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) ⇒ void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) ⇒ gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   arm_softmax_s8 +
    • >>   void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    • >>   void tflite::reference_ops::Softmax⟨signed char, short⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    • >>   __aeabi_memcpy4 +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxEval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) (Thumb, 2920 bytes, Stack size 472 bytes, depthwise_conv.o(.text._ZN6tflite3ops5micro14depthwise_conv4EvalEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 828
    • Call Chain = tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) ⇒ arm_depthwise_conv_wrapper_s8 ⇒ arm_depthwise_conv_3x3_s8 +
    +
    [Calls]
    • >>   arm_depthwise_conv_wrapper_s8 +
    • >>   arm_depthwise_conv_u8_basic_ver1 +
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   tflite::reference_integer_ops::DepthwiseConvPerChannel(const tflite::DepthwiseParams&, const int*, const int*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, signed char*) +
    • >>   tflite::reference_ops::depthwise_conv::DepthwiseConvBasicKernel⟨(tflite::DepthwiseConvOutputRounding)1⟩::Run(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*) +
    • >>   tflite::reference_ops::DepthwiseConv(const tflite::DepthwiseParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) +
    • >>   TfLiteTypeGetName +
    • >>   __aeabi_memcpy4 +
    +
    [Address Reference Count : 1]
    • depthwise_conv.o(.text._ZN6tflite3ops5micro26Register_DEPTHWISE_CONV_2DEv) +
    +

    tflite::ops::micro::depthwise_conv::Init(TfLiteContext*, const char*, unsigned) (Thumb, 8 bytes, Stack size 0 bytes, depthwise_conv.o(.text._ZN6tflite3ops5micro14depthwise_conv4InitEP13TfLiteContextPKcj)) +
    [Address Reference Count : 1]

    • depthwise_conv.o(.text._ZN6tflite3ops5micro26Register_DEPTHWISE_CONV_2DEv) +
    +

    tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) (Thumb, 1340 bytes, Stack size 272 bytes, depthwise_conv.o(.text._ZN6tflite3ops5micro14depthwise_conv7PrepareEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 496 + Unknown Stack Size +
    • Call Chain = tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) ⇒ tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) ⇒ tflite::QuantizeMultiplier(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   arm_depthwise_conv_wrapper_s8_get_buffer_size +
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::GetOptionalInputTensor(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   __aeabi_memcpy4 +
    +
    [Address Reference Count : 1]
    • depthwise_conv.o(.text._ZN6tflite3ops5micro26Register_DEPTHWISE_CONV_2DEv) +
    +

    tflite::ops::micro::fully_connected::Eval(TfLiteContext*, TfLiteNode*) (Thumb, 2176 bytes, Stack size 304 bytes, fully_connected.o(.text._ZN6tflite3ops5micro15fully_connected4EvalEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 576
    • Call Chain = tflite::ops::micro::fully_connected::Eval(TfLiteContext*, TfLiteNode*) ⇒ tflite::ops::micro::fully_connected::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteFusedActivation, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*) ⇒ tflite::reference_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   TfLiteTypeGetName +
    • >>   arm_fully_connected_s8 +
    • >>   tflite::ops::micro::fully_connected::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteFusedActivation, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::reference_integer_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const signed char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, signed char*) +
    • >>   tflite::reference_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, short*) +
    • >>   tflite::reference_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const unsigned char*, const tflite::RuntimeShape&, const int*, const tflite::RuntimeShape&, unsigned char*) +
    • >>   __aeabi_memcpy4 +
    +
    [Address Reference Count : 1]
    • fully_connected.o(.text._ZN6tflite3ops5micro24Register_FULLY_CONNECTEDEv) +
    +

    tflite::ops::micro::fully_connected::Init(TfLiteContext*, const char*, unsigned) (Thumb, 6 bytes, Stack size 0 bytes, fully_connected.o(.text._ZN6tflite3ops5micro15fully_connected4InitEP13TfLiteContextPKcj)) +
    [Address Reference Count : 1]

    • fully_connected.o(.text._ZN6tflite3ops5micro24Register_FULLY_CONNECTEDEv) +
    +

    tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) (Thumb, 648 bytes, Stack size 128 bytes, fully_connected.o(.text._ZN6tflite3ops5micro15fully_connected7PrepareEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) ⇒ tflite::QuantizeMultiplier(double, int*, int*) ⇒ __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::GetOptionalInputTensor(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   TfLiteTypeGetName +
    • >>   arm_fully_connected_s8_get_buffer_size +
    • >>   tflite::CalculateActivationRangeQuantized(TfLiteContext*, TfLiteFusedActivation, TfLiteTensor*, int*, int*) +
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    • >>   __aeabi_memcpy4 +
    +
    [Address Reference Count : 1]
    • fully_connected.o(.text._ZN6tflite3ops5micro24Register_FULLY_CONNECTEDEv) +
    +

    tflite::ops::micro::fully_connected::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteFusedActivation, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*) (Thumb, 492 bytes, Stack size 184 bytes, fully_connected.o(.text._ZN6tflite3ops5micro15fully_connected9EvalFloatEP13TfLiteContextP10TfLiteNode21TfLiteFusedActivationPK16TfLiteEvalTensorSA_SA_PS8_)) +

    [Stack]

    • Max Depth = 272
    • Call Chain = tflite::ops::micro::fully_connected::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteFusedActivation, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*) ⇒ tflite::reference_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) +
    +
    [Calls]
    • >>   operator new[] (unsigned) +
    • >>   operator delete[] (void*) +
    • >>   tflite::reference_ops::FullyConnected(const tflite::FullyConnectedParams&, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, const float*, const tflite::RuntimeShape&, float*) +
    • >>   __aeabi_memcpy4 +
    +
    [Called By]
    • >>   tflite::ops::micro::fully_connected::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::Register_RESHAPE() (Thumb, 36 bytes, Stack size 0 bytes, reshape.o(.text._ZN6tflite3ops5micro16Register_RESHAPEEv)) +

    [Called By]

    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddReshape() +
    + +

    tflite::ops::micro::Register_SOFTMAX() (Thumb, 40 bytes, Stack size 0 bytes, softmax.o(.text._ZN6tflite3ops5micro16Register_SOFTMAXEv)) +

    [Called By]

    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddSoftmax() +
    + +

    tflite::ops::micro::Register_FULLY_CONNECTED() (Thumb, 40 bytes, Stack size 0 bytes, fully_connected.o(.text._ZN6tflite3ops5micro24Register_FULLY_CONNECTEDEv)) +

    [Called By]

    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddFullyConnected() +
    + +

    tflite::ops::micro::Register_DEPTHWISE_CONV_2D() (Thumb, 40 bytes, Stack size 0 bytes, depthwise_conv.o(.text._ZN6tflite3ops5micro26Register_DEPTHWISE_CONV_2DEv)) +

    [Called By]

    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddDepthwiseConv2D() +
    + +

    tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) (Thumb, 716 bytes, Stack size 72 bytes, reshape.o(.text._ZN6tflite3ops5micro7reshape13ReshapeOutputEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    +
    [Calls]
    • >>   tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) +
    • >>   tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) +
    • >>   TfLiteTypeGetName +
    +
    [Called By]
    • >>   tflite::ops::micro::reshape::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::ops::micro::reshape::Eval(TfLiteContext*, TfLiteNode*) (Thumb, 186 bytes, Stack size 24 bytes, reshape.o(.text._ZN6tflite3ops5micro7reshape4EvalEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = tflite::ops::micro::reshape::Eval(TfLiteContext*, TfLiteNode*) ⇒ tflite::ElementCount(const TfLiteIntArray&) +
    +
    [Calls]
    • >>   tflite::TfLiteTypeSizeOf(TfLiteType, unsigned*) +
    • >>   tflite::ElementCount(const TfLiteIntArray&) +
    +
    [Address Reference Count : 1]
    • reshape.o(.text._ZN6tflite3ops5micro16Register_RESHAPEEv) +
    +

    tflite::ops::micro::reshape::Prepare(TfLiteContext*, TfLiteNode*) (Thumb, 308 bytes, Stack size 40 bytes, reshape.o(.text._ZN6tflite3ops5micro7reshape7PrepareEP13TfLiteContextP10TfLiteNode)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = tflite::ops::micro::reshape::Prepare(TfLiteContext*, TfLiteNode*) ⇒ tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    +
    [Calls]
    • >>   tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    +
    [Address Reference Count : 1]
    • reshape.o(.text._ZN6tflite3ops5micro16Register_RESHAPEEv) +
    +

    tflite::GetInput(const TfLiteContext*, const TfLiteNode*, int) (Thumb, 30 bytes, Stack size 0 bytes, kernel_util.o(.text._ZN6tflite8GetInputEPK13TfLiteContextPK10TfLiteNodei)) +

    [Called By]

    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    + +

    tflite::internal::ContextHelper::GetEvalTensor(const TfLiteContext*, int) (Thumb, 14 bytes, Stack size 0 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper13GetEvalTensorEPK13TfLiteContexti)) +
    [Address Reference Count : 1]

    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreterC2EPKNS_5ModelERKNS_15MicroOpResolverEPhjPNS_13ErrorReporterEPNS_8ProfilerE) +
    +

    tflite::internal::ContextHelper::ReportOpError(TfLiteContext*, const char*, ...) (Thumb, 34 bytes, Stack size 24 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper13ReportOpErrorEP13TfLiteContextPKcz)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = tflite::internal::ContextHelper::ReportOpError(TfLiteContext*, const char*, ...) +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreterC2EPKNS_5ModelERKNS_15MicroOpResolverEPhjPNS_13ErrorReporterEPNS_8ProfilerE) +
    +

    tflite::internal::ContextHelper::GetScratchBuffer(TfLiteContext*, int) (Thumb, 8 bytes, Stack size 0 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper16GetScratchBufferEP13TfLiteContexti)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = tflite::internal::ContextHelper::GetScratchBuffer(TfLiteContext*, int) ⇒ tflite::MicroAllocator::GetScratchBuffer(int) const ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::MicroAllocator::GetScratchBuffer(int) const +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreter15AllocateTensorsEv) +
    +

    tflite::internal::ContextHelper::AllocatePersistentBuffer(TfLiteContext*, unsigned) (Thumb, 8 bytes, Stack size 0 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper24AllocatePersistentBufferEP13TfLiteContextj)) +

    [Calls]

    • >>   tflite::MicroAllocator::AllocatePersistentBuffer(unsigned) +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreter15AllocateTensorsEv) +
    +

    tflite::internal::ContextHelper::RequestScratchBufferInArena(TfLiteContext*, unsigned, int*) (Thumb, 16 bytes, Stack size 0 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper27RequestScratchBufferInArenaEP13TfLiteContextjPi)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = tflite::internal::ContextHelper::RequestScratchBufferInArena(TfLiteContext*, unsigned, int*) ⇒ tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreter15AllocateTensorsEv) +
    +

    tflite::internal::ContextHelper::GetTensor(const TfLiteContext*, int) (Thumb, 26 bytes, Stack size 8 bytes, micro_interpreter.o(.text._ZN6tflite8internal13ContextHelper9GetTensorEPK13TfLiteContexti)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = tflite::internal::ContextHelper::GetTensor(const TfLiteContext*, int) +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.text._ZN6tflite16MicroInterpreterC2EPKNS_5ModelERKNS_15MicroOpResolverEPhjPNS_13ErrorReporterEPNS_8ProfilerE) +
    +

    tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) (Thumb, 848 bytes, Stack size 48 bytes, micro_allocator.o(.text._ZN6tflite8internal36InitializeTfLiteTensorFromFlatbufferEPNS_21SimpleMemoryAllocatorEbRKNS_6TensorEPKN11flatbuffers6VectorINS6_6OffsetINS_6BufferEEEEEPNS_13ErrorReporterEP12TfLiteTensor)) +

    [Stack]

    • Max Depth = 136
    • Call Chain = tflite::internal::InitializeTfLiteTensorFromFlatbuffer(tflite::SimpleMemoryAllocator*, bool, const tflite::Tensor&, const flatbuffers::Vector⟨flatbuffers::Offset⟨tflite::Buffer⟩⟩*, tflite::ErrorReporter*, TfLiteTensor*) ⇒ tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) ⇒ tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   TfLiteIntArrayGetSizeInBytes +
    • >>   tflite::ConvertTensorType(tflite::TensorType, TfLiteType*, tflite::ErrorReporter*) +
    • >>   tflite::BytesRequiredForTensor(const tflite::Tensor&, unsigned*, unsigned*, tflite::ErrorReporter*) +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   tflite::MicroAllocator::PopulateTfLiteTensorFromFlatbuffer(const tflite::Model*, const tflite::SubGraph*, TfLiteTensor*, int, bool) +
    + +

    tflite::GetOutput(TfLiteContext*, const TfLiteNode*, int) (Thumb, 30 bytes, Stack size 0 bytes, kernel_util.o(.text._ZN6tflite9GetOutputEP13TfLiteContextPK10TfLiteNodei)) +

    [Called By]

    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::reshape::ReshapeOutput(TfLiteContext*, TfLiteNode*) +
    + +

    gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::exp_on_negative_values⟨int, (int)5⟩(gemmlowp::FixedPoint⟨T1, T2⟩) (Thumb, 888 bytes, Stack size 28 bytes, softmax.o(.text._ZN8gemmlowp22exp_on_negative_valuesIiLi5EEENS_10FixedPointIT_Li0EEENS1_IS2_XT0_EEE)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::exp_on_negative_values⟨int, (int)5⟩(gemmlowp::FixedPoint⟨T1, T2⟩) +
    +
    [Called By]
    • >>   void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    • >>   void tflite::reference_ops::Softmax⟨signed char, short⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    + +

    gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) (Thumb, 1456 bytes, Stack size 36 bytes, softmax.o(.text._ZN8gemmlowp32one_over_one_plus_x_for_x_in_0_1IiEENS_10FixedPointIT_Li0EEES3_)) +

    [Stack]

    • Max Depth = 36
    • Call Chain = gemmlowp::FixedPoint⟨T1, (int)0⟩ gemmlowp::one_over_one_plus_x_for_x_in_0_1⟨int⟩(gemmlowp::FixedPoint⟨T1, (int)0⟩) +
    +
    [Called By]
    • >>   void tflite::reference_ops::Softmax⟨unsigned char, unsigned char⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    • >>   void tflite::reference_ops::Softmax⟨signed char, short⟩(const tflite::SoftmaxParams&, const tflite::RuntimeShape&, const T1*, const tflite::RuntimeShape&, T2*) +
    + +

    __cxxabiv1::__shim_type_info::noop1() const (Thumb, 2 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv116__shim_type_info5noop1Ev)) +
    [Address Reference Count : 3]

    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__shim_type_info::noop2() const (Thumb, 2 bytes, Stack size 0 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv116__shim_type_info5noop2Ev)) +
    [Address Reference Count : 3]

    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const (Thumb, 54 bytes, Stack size 16 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __cxxabiv1::__class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    • >>   __cxxabiv1::__class_type_info::process_static_type_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    +

    __cxxabiv1::__class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const (Thumb, 162 bytes, Stack size 24 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxxabiv1::__class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    +

    __cxxabiv1::__class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const (Thumb, 68 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __cxxabiv1::__class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    +

    __cxxabiv1::__class_type_info::process_static_type_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int) const (Thumb, 98 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __cxxabiv1::__class_type_info::process_static_type_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int) const +
    +
    [Called By]
    • >>   __cxxabiv1::__vmi_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    • >>   __cxxabiv1::__si_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    • >>   __cxxabiv1::__class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const +
    + +

    __cxxabiv1::__class_type_info::can_catch(const __cxxabiv1::__shim_type_info*, void*&) const (Thumb, 110 bytes, Stack size 80 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv)) +

    [Stack]

    • Max Depth = 172
    • Call Chain = __cxxabiv1::__class_type_info::can_catch(const __cxxabiv1::__shim_type_info*, void*&) const ⇒ __dynamic_cast ⇒ __aeabi_memclr4 +
    +
    [Calls]
    • >>   __aeabi_memclr4 +
    • >>   __dynamic_cast +
    +
    [Address Reference Count : 3]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv117__class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__si_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const (Thumb, 86 bytes, Stack size 40 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = __cxxabiv1::__si_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    • >>   __cxxabiv1::__class_type_info::process_static_type_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    +

    __cxxabiv1::__si_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const (Thumb, 226 bytes, Stack size 40 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = __cxxabiv1::__si_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    +

    __cxxabiv1::__si_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const (Thumb, 82 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __cxxabiv1::__si_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv120__si_class_type_infoE) +
    +

    __cxxabiv1::__vmi_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const (Thumb, 310 bytes, Stack size 56 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = __cxxabiv1::__vmi_class_type_info::search_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    • >>   __cxxabiv1::__class_type_info::process_static_type_above_dst(__cxxabiv1::__dynamic_cast_info*, const void*, const void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__vmi_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const (Thumb, 618 bytes, Stack size 48 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = __cxxabiv1::__vmi_class_type_info::search_below_dst(__cxxabiv1::__dynamic_cast_info*, const void*, int, bool) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__vmi_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const (Thumb, 132 bytes, Stack size 32 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = __cxxabiv1::__vmi_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const ⇒ __cxxabiv1::__base_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    +
    [Calls]
    • >>   __cxxabiv1::__base_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    +
    [Address Reference Count : 1]
    • private_typeinfo.cpp.o(.rodata._ZTVN10__cxxabiv121__vmi_class_type_infoE) +
    +

    __cxxabiv1::__base_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const (Thumb, 54 bytes, Stack size 8 bytes, private_typeinfo.cpp.o(.text._ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __cxxabiv1::__base_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    +
    [Called By]
    • >>   __cxxabiv1::__vmi_class_type_info::has_unambiguous_public_base(__cxxabiv1::__dynamic_cast_info*, void*, int) const +
    + +

    tflite::MicroAllocator::GetScratchBuffer(int) const (Thumb, 84 bytes, Stack size 8 bytes, micro_allocator.o(.text._ZNK6tflite14MicroAllocator16GetScratchBufferEi)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = tflite::MicroAllocator::GetScratchBuffer(int) const ⇒ tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Calls]
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    +
    [Called By]
    • >>   tflite::internal::ContextHelper::GetScratchBuffer(TfLiteContext*, int) +
    + +

    tflite::MicroOpResolver::FindOp(tflite::BuiltinOperator, int) const (Thumb, 6 bytes, Stack size 0 bytes, micro_speech.o(.text._ZNK6tflite15MicroOpResolver6FindOpENS_15BuiltinOperatorEi)) +
    [Address Reference Count : 1]

    • micro_speech.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj4EEE) +
    +

    tflite::MicroOpResolver::FindOp(const char*, int) const (Thumb, 6 bytes, Stack size 0 bytes, micro_speech.o(.text._ZNK6tflite15MicroOpResolver6FindOpEPKci)) +
    [Address Reference Count : 1]

    • micro_speech.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj4EEE) +
    +

    tflite::SimpleMemoryAllocator::GetBufferHead() const (Thumb, 4 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZNK6tflite21SimpleMemoryAllocator13GetBufferHeadEv)) +

    [Called By]

    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::SimpleMemoryAllocator::GetAvailableMemory(unsigned) const (Thumb, 28 bytes, Stack size 16 bytes, simple_memory_allocator.o(.text._ZNK6tflite21SimpleMemoryAllocator18GetAvailableMemoryEj)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::SimpleMemoryAllocator::GetAvailableMemory(unsigned) const +
    +
    [Calls]
    • >>   tflite::AlignPointerDown(unsigned char*, unsigned) +
    • >>   tflite::AlignPointerUp(unsigned char*, unsigned) +
    +
    [Called By]
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::SimpleMemoryAllocator::GetTail() const (Thumb, 4 bytes, Stack size 0 bytes, simple_memory_allocator.o(.text._ZNK6tflite21SimpleMemoryAllocator7GetTailEv)) +

    [Called By]

    • >>   tflite::MicroAllocator::RequestScratchBufferInArena(int, unsigned, int*) +
    • >>   tflite::MicroAllocator::CommitStaticMemoryPlan(const tflite::Model*, const tflite::SubGraph*, TfLiteEvalTensor*) +
    + +

    tflite::MicroMutableOpResolver⟨(unsigned)4⟩::GetOpDataParser(tflite::BuiltinOperator) const (Thumb, 122 bytes, Stack size 16 bytes, micro_speech.o(.text._ZNK6tflite22MicroMutableOpResolverILj4EE15GetOpDataParserENS_15BuiltinOperatorE)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)4⟩::GetOpDataParser(tflite::BuiltinOperator) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    +
    [Address Reference Count : 1]
    • micro_speech.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj4EEE) +
    +

    tflite::MicroMutableOpResolver⟨(unsigned)4⟩::FindOp(tflite::BuiltinOperator) const (Thumb, 114 bytes, Stack size 8 bytes, micro_speech.o(.text._ZNK6tflite22MicroMutableOpResolverILj4EE6FindOpENS_15BuiltinOperatorE)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)4⟩::FindOp(tflite::BuiltinOperator) const +
    +
    [Address Reference Count : 1]
    • micro_speech.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj4EEE) +
    +

    tflite::MicroMutableOpResolver⟨(unsigned)4⟩::FindOp(const char*) const (Thumb, 64 bytes, Stack size 24 bytes, micro_speech.o(.text._ZNK6tflite22MicroMutableOpResolverILj4EE6FindOpEPKc)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = tflite::MicroMutableOpResolver⟨(unsigned)4⟩::FindOp(const char*) const ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Address Reference Count : 1]
    • micro_speech.o(.rodata._ZTVN6tflite22MicroMutableOpResolverILj4EEE) +
    +

    std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const (Thumb, 94 bytes, Stack size 136 bytes, locale.cpp.o(.text._ZNKSt3__110__time_put8__do_putEPwRS1_PKSt2tmcc)) +

    [Stack]

    • Max Depth = 344 + Unknown Stack Size +
    • Call Chain = std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const ⇒ strftime ⇒ sprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   abort +
    • >>   strftime +
    • >>   mbsrtowcs +
    +
    [Called By]
    • >>   std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const std::tm*, char, char) const +
    + +

    std::__1::moneypunct⟨char, (bool)0⟩::do_grouping() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE11do_groupingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_neg_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE13do_neg_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_pos_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE13do_pos_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_curr_symbol() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE14do_curr_symbolEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_frac_digits() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE14do_frac_digitsEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_decimal_point() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_negative_sign() const (Thumb, 12 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE16do_negative_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_positive_sign() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE16do_positive_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::do_thousands_sep() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb0EE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_grouping() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE11do_groupingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_neg_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE13do_neg_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_pos_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE13do_pos_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_curr_symbol() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE14do_curr_symbolEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_frac_digits() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE14do_frac_digitsEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_decimal_point() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_negative_sign() const (Thumb, 12 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE16do_negative_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_positive_sign() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE16do_positive_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::do_thousands_sep() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIcLb1EE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_grouping() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE11do_groupingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_neg_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE13do_neg_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_pos_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE13do_pos_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_curr_symbol() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE14do_curr_symbolEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_frac_digits() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE14do_frac_digitsEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_decimal_point() const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_negative_sign() const (Thumb, 24 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE16do_negative_signEv)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_negative_sign() const ⇒ wmemset +
    +
    [Calls]
    • >>   wmemset +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_positive_sign() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE16do_positive_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::do_thousands_sep() const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb0EE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_grouping() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE11do_groupingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_neg_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE13do_neg_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_pos_format() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE13do_pos_formatEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_curr_symbol() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE14do_curr_symbolEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_frac_digits() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE14do_frac_digitsEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_decimal_point() const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_negative_sign() const (Thumb, 24 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE16do_negative_signEv)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_negative_sign() const ⇒ wmemset +
    +
    [Calls]
    • >>   wmemset +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_positive_sign() const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE16do_positive_signEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::do_thousands_sep() const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__110moneypunctIwLb1EE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__X() const (Thumb, 124 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__XEv)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__X() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__c() const (Thumb, 144 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__cEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__c() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __aeabi_memcpy +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__r() const (Thumb, 132 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__rEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__r() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __aeabi_memcpy +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__x() const (Thumb, 124 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__xEv)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__x() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__am_pm() const (Thumb, 184 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE7__am_pmEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__am_pm() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__weeks() const (Thumb, 392 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE7__weeksEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__weeks() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨char⟩::__months() const (Thumb, 556 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE8__monthsEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨char⟩::__months() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const (Thumb, 126 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__XEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __cxa_atexit +
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const (Thumb, 126 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__cEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __cxa_atexit +
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const (Thumb, 144 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__rEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __cxa_atexit +
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const (Thumb, 126 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__xEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   operator new(unsigned) +
    • >>   __cxa_atexit +
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const (Thumb, 186 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE7__am_pmEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const (Thumb, 416 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE7__weeksEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const (Thumb, 608 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE8__monthsEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   __aeabi_memclr4 +
    • >>   __cxa_atexit +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__vector_base_common⟨(bool)1⟩::__throw_length_error() const (Thumb, 4 bytes, Stack size 0 bytes, vector.cpp.o(.text._ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv), UNUSED) +

    [Calls]

    • >>   abort +
    +
    [Called By]
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    + +

    std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const (Thumb, 4 bytes, Stack size 0 bytes, string.cpp.o(.text._ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    +
    [Called By]
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    • >>   std::__1::collate⟨wchar_t⟩::do_transform(const wchar_t*, const wchar_t*) const +
    • >>   std::__1::collate⟨char⟩::do_transform(const char*, const char*) const +
    + +

    std::__1::ctype⟨char⟩::do_tolower(char*, const char*) const (Thumb, 54 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE10do_tolowerEPcPKc)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨char⟩::do_tolower(char*, const char*) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_tolower(char) const (Thumb, 36 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE10do_tolowerEc)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨char⟩::do_tolower(char) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_toupper(char*, const char*) const (Thumb, 54 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE10do_toupperEPcPKc)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨char⟩::do_toupper(char*, const char*) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_toupper(char) const (Thumb, 36 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE10do_toupperEc)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨char⟩::do_toupper(char) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_widen(const char*, const char*, char*) const (Thumb, 24 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE8do_widenEPKcS3_Pc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_widen(char) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE8do_widenEc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_narrow(const char*, const char*, char, char*) const (Thumb, 36 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE9do_narrowEPKcS3_cPc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::do_narrow(char, char) const (Thumb, 14 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIcE9do_narrowEcc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_scan_is(unsigned long, const wchar_t*, const wchar_t*) const (Thumb, 42 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE10do_scan_isEmPKwS3_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t*, const wchar_t*) const (Thumb, 52 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE10do_tolowerEPwPKw)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t*, const wchar_t*) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t) const (Thumb, 34 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE10do_tolowerEw)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t*, const wchar_t*) const (Thumb, 52 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE10do_toupperEPwPKw)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t*, const wchar_t*) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t) const (Thumb, 32 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE10do_toupperEw)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t) const ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   iswlower +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_scan_not(unsigned long, const wchar_t*, const wchar_t*) const (Thumb, 42 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE11do_scan_notEmPKwS3_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_is(const wchar_t*, const wchar_t*, unsigned long*) const (Thumb, 42 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE5do_isEPKwS3_Pm)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_is(unsigned long, wchar_t) const (Thumb, 28 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE5do_isEmw)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_widen(const char*, const char*, wchar_t*) const (Thumb, 24 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE8do_widenEPKcS3_Pw)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_widen(char) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE8do_widenEc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_narrow(const wchar_t*, const wchar_t*, char, char*) const (Thumb, 34 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE9do_narrowEPKwS3_cPc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::ctype⟨wchar_t⟩::do_narrow(wchar_t, char) const (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__15ctypeIwE9do_narrowEwc)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::locale::use_facet(std::__1::locale::id&) const (Thumb, 34 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__16locale9use_facetERNS0_2idE)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    • >>   std::__1::locale::id::__get() +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::imbue(const std::__1::locale&) +
    • >>   std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdoutbuf⟨char⟩::imbue(const std::__1::locale&) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::imbue(const std::__1::locale&) +
    • >>   std::__1::__stdinbuf⟨char⟩::imbue(const std::__1::locale&) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::__money_get⟨wchar_t⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__money_get⟨char⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    + +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const (Thumb, 8 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE10do_unshiftERS1_PcS4_RS4_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_encoding() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE11do_encodingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_max_length() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE13do_max_lengthEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_always_noconv() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE16do_always_noconvEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char32_t*, char32_t*, char32_t*&) const (Thumb, 64 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE5do_inERS1_PKcS5_RS5_PDiS7_RS7_)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char32_t*, char32_t*, char32_t*&) const ⇒ _ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char32_t*, const char32_t*, const char32_t*&, char*, char*, char*&) const (Thumb, 64 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE6do_outERS1_PKDiS5_RS5_PcS7_RS7_)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char32_t*, const char32_t*, const char32_t*&, char*, char*, char*&) const ⇒ _ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const (Thumb, 38 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDicSt11__mbstate_tE9do_lengthERS1_PKcS5_j)) +

    [Stack]

    • Max Depth = 44
    • Call Chain = std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const ⇒ _ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const (Thumb, 8 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE10do_unshiftERS1_PcS4_RS4_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_encoding() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE11do_encodingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_max_length() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE13do_max_lengthEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_always_noconv() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE16do_always_noconvEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char16_t*, char16_t*, char16_t*&) const (Thumb, 64 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE5do_inERS1_PKcS5_RS5_PDsS7_RS7_)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char16_t*, char16_t*, char16_t*&) const ⇒ _ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char16_t*, const char16_t*, const char16_t*&, char*, char*, char*&) const (Thumb, 64 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE6do_outERS1_PKDsS5_RS5_PcS7_RS7_)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char16_t*, const char16_t*, const char16_t*&, char*, char*, char*&) const ⇒ _ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const (Thumb, 38 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIDscSt11__mbstate_tE9do_lengthERS1_PKcS5_j)) +

    [Stack]

    • Max Depth = 44
    • Call Chain = std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const ⇒ _ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Calls]
    • >>   _ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const (Thumb, 8 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE10do_unshiftERS1_PcS4_RS4_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_encoding() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE11do_encodingEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_max_length() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE13do_max_lengthEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_always_noconv() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE16do_always_noconvEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char*, char*, char*&) const (Thumb, 14 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE5do_inERS1_PKcS5_RS5_PcS7_RS7_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char*, const char*, const char*&, char*, char*, char*&) const (Thumb, 14 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE6do_outERS1_PKcS5_RS5_PcS7_RS7_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const (Thumb, 12 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIccSt11__mbstate_tE9do_lengthERS1_PKcS5_j)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const (Thumb, 90 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE10do_unshiftERS1_PcS4_RS4_)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_unshift(std::__mbstate_t&, char*, char*, char*&) const ⇒ wcrtomb ⇒ c16rtomb ⇒ _c16rtomb ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   wcrtomb +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_encoding() const (Thumb, 44 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE11do_encodingEv)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_encoding() const ⇒ mbtowc ⇒ _mbrtowc +
    +
    [Calls]
    • >>   __aeabi_MB_CUR_MAX +
    • >>   mbtowc +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_max_length() const (Thumb, 14 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE13do_max_lengthEv)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_max_length() const ⇒ __aeabi_MB_CUR_MAX ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   __aeabi_MB_CUR_MAX +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_always_noconv() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE16do_always_noconvEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, wchar_t*, wchar_t*, wchar_t*&) const (Thumb, 280 bytes, Stack size 56 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE5do_inERS1_PKcS5_RS5_PwS7_RS7_)) +

    [Stack]

    • Max Depth = 120
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, wchar_t*, wchar_t*, wchar_t*&) const ⇒ _mbsnrtowcs ⇒ _mbrtowc +
    +
    [Calls]
    • >>   _mbsnrtowcs +
    • >>   mbrtowc +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, char*, char*, char*&) const (Thumb, 306 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE6do_outERS1_PKwS5_RS5_PcS7_RS7_)) +

    [Stack]

    • Max Depth = 152
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, char*, char*, char*&) const ⇒ _wcsnrtombs ⇒ _wcrtomb +
    +
    [Calls]
    • >>   _wcsnrtombs +
    • >>   wcrtomb +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const (Thumb, 82 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNKSt3__17codecvtIwcSt11__mbstate_tE9do_lengthERS1_PKcS5_j)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const ⇒ mbrlen ⇒ mbrtowc ⇒ mbrtoc16 ⇒ _mbrtoc16 ⇒ __rt_ctype_table +
    +
    [Calls]
    • >>   mbrlen +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::collate⟨char⟩::do_compare(const char*, const char*, const char*, const char*) const (Thumb, 58 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__17collateIcE10do_compareEPKcS3_S3_S3_)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::collate⟨char⟩::do_compare(const char*, const char*, const char*, const char*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    +

    std::__1::collate⟨char⟩::do_transform(const char*, const char*) const (Thumb, 86 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__17collateIcE12do_transformEPKcS3_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::collate⟨char⟩::do_transform(const char*, const char*) const ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    +

    std::__1::collate⟨char⟩::do_hash(const char*, const char*) const (Thumb, 34 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17collateIcE7do_hashEPKcS3_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    +

    std::__1::collate⟨wchar_t⟩::do_compare(const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*) const (Thumb, 58 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__17collateIwE10do_compareEPKwS3_S3_S3_)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::collate⟨wchar_t⟩::do_compare(const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    +

    std::__1::collate⟨wchar_t⟩::do_transform(const wchar_t*, const wchar_t*) const (Thumb, 110 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__17collateIwE12do_transformEPKwS3_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::collate⟨wchar_t⟩::do_transform(const wchar_t*, const wchar_t*) const ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    • >>   abort +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    +

    std::__1::collate⟨wchar_t⟩::do_hash(const wchar_t*, const wchar_t*) const (Thumb, 34 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17collateIwE7do_hashEPKwS3_)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long long&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 538 bytes, Stack size 312 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 804 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) ⇒ strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_loop(char, bool&, char&, char*, char*&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, char*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, double&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 538 bytes, Stack size 312 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 804 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) ⇒ strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_loop(char, bool&, char&, char*, char*&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, char*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long double&) const +
    + +

    std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 536 bytes, Stack size 312 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 796 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) ⇒ strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_loop(char, bool&, char&, char*, char*&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, char*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, float&) const +
    + +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const (Thumb, 540 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRPv)) +

    [Stack]

    • Max Depth = 796 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const ⇒ std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) ⇒ __ARM_vsscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const (Thumb, 252 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRb)) +

    [Stack]

    • Max Depth = 280 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, double&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRd)) +

    [Stack]

    • Max Depth = 804 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, double&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) ⇒ strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long double&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRe)) +

    [Stack]

    • Max Depth = 804 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long double&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) ⇒ strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, float&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRf)) +

    [Stack]

    • Max Depth = 796 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, float&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) ⇒ strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRl)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRm)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRt)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRx)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, long long&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRy)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjS8_)) +

    [Stack]

    • Max Depth = 424 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const ⇒ std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long long&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 542 bytes, Stack size 320 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 534 bytes, Stack size 344 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 836 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) ⇒ strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_loop(wchar_t, bool&, char&, char*, char*&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, double&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 534 bytes, Stack size 344 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 836 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) ⇒ strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_loop(wchar_t, bool&, char&, char*, char*&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long double&) const +
    + +

    std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const (Thumb, 532 bytes, Stack size 344 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_)) +

    [Stack]

    • Max Depth = 828 + Unknown Stack Size +
    • Call Chain = std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) ⇒ strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_loop(wchar_t, bool&, char&, char*, char*&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, float&) const +
    + +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const (Thumb, 532 bytes, Stack size 312 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRPv)) +

    [Stack]

    • Max Depth = 820 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const ⇒ std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) ⇒ __ARM_vsscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const (Thumb, 252 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRb)) +

    [Stack]

    • Max Depth = 280 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, double&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRd)) +

    [Stack]

    • Max Depth = 836 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, double&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) ⇒ strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long double&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRe)) +

    [Stack]

    • Max Depth = 836 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long double&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) ⇒ strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, float&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRf)) +

    [Stack]

    • Max Depth = 828 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, float&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) ⇒ strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRl)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRm)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRt)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned short&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRx)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, long long&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRy)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned long long&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjS8_)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, unsigned&) const ⇒ std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const (Thumb, 154 bytes, Stack size 120 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcPKv)) +

    [Stack]

    • Max Depth = 264 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const (Thumb, 188 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcb)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const (Thumb, 300 bytes, Stack size 184 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcd)) +

    [Stack]

    • Max Depth = 352 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_float(char*, const char*, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const (Thumb, 300 bytes, Stack size 184 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEce)) +

    [Stack]

    • Max Depth = 352 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_float(char*, const char*, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const (Thumb, 224 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcl)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const (Thumb, 210 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcm)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const (Thumb, 216 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcx)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const (Thumb, 218 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcy)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const (Thumb, 156 bytes, Stack size 160 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwPKv)) +

    [Stack]

    • Max Depth = 304 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const (Thumb, 190 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwb)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const (Thumb, 304 bytes, Stack size 240 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwd)) +

    [Stack]

    • Max Depth = 408 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_float(char*, const char*, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const (Thumb, 304 bytes, Stack size 240 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwe)) +

    [Stack]

    • Max Depth = 408 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_float(char*, const char*, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const (Thumb, 224 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwl)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const (Thumb, 210 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwm)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const (Thumb, 228 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwx)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const (Thumb, 232 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwy)) +

    [Stack]

    • Max Depth = 180 + Unknown Stack Size +
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const ⇒ std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) +
    • >>   std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::ios_base::getloc() const (Thumb, 10 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNKSt3__18ios_base6getlocEv)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::ios_base::getloc() const ⇒ std::__1::locale::locale(const std::__1::locale&) +
    +
    [Calls]
    • >>   std::__1::locale::locale(const std::__1::locale&) +
    +
    [Called By]
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    + +

    std::__1::messages⟨char⟩::do_get(int, int, int, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const (Thumb, 10 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIcE6do_getEiiiRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::messages⟨char⟩::do_get(int, int, int, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    +

    std::__1::messages⟨char⟩::do_open(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::locale&) const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIcE7do_openERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNS_6localeE)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    +

    std::__1::messages⟨char⟩::do_close(int) const (Thumb, 2 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIcE8do_closeEi)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    +

    std::__1::messages⟨wchar_t⟩::do_get(int, int, int, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const (Thumb, 10 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIwE6do_getEiiiRKNS_12basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::messages⟨wchar_t⟩::do_get(int, int, int, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::messages⟨wchar_t⟩::do_open(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::locale&) const (Thumb, 6 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIwE7do_openERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNS_6localeE)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::messages⟨wchar_t⟩::do_close(int) const (Thumb, 2 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18messagesIwE8do_closeEi)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::numpunct⟨char⟩::do_grouping() const (Thumb, 10 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIcE11do_groupingEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::numpunct⟨char⟩::do_grouping() const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨char⟩::do_truename() const (Thumb, 20 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIcE11do_truenameEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨char⟩::do_falsename() const (Thumb, 32 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIcE12do_falsenameEv)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::numpunct⟨char⟩::do_falsename() const +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨char⟩::do_decimal_point() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIcE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨char⟩::do_thousands_sep() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIcE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::do_grouping() const (Thumb, 10 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIwE11do_groupingEv)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::numpunct⟨wchar_t⟩::do_grouping() const ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::do_truename() const (Thumb, 30 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIwE11do_truenameEv)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::numpunct⟨wchar_t⟩::do_truename() const ⇒ wmemcpy ⇒ memcpy +
    +
    [Calls]
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::do_falsename() const (Thumb, 48 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIwE12do_falsenameEv)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = std::__1::numpunct⟨wchar_t⟩::do_falsename() const ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    • >>   wmemcpy +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::do_decimal_point() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIwE16do_decimal_pointEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::do_thousands_sep() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18numpunctIwE16do_thousands_sepEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 60 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE10__get_yearERiRS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Calls]
    • >>   int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 122 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11__get_am_pmERiRS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_dateES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 160 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 50 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_timeES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 152 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_yearES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 226 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13__get_percentERS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_date_order() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13do_date_orderEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE14do_get_weekdayES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 288 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 110 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__get_monthnameERiRS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE16do_get_monthnameES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 288 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 110 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__get_weekdaynameERiRS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const (Thumb, 226 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__get_white_spaceERS4_S4_RjRKNS_5ctypeIcEE)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const (Thumb, 652 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjPSt2tmPKcSC_)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const (Thumb, 916 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjPSt2tmcc)) +

    [Stack]

    • Max Depth = 320 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const ⇒ std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 60 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE10__get_yearERiRS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Calls]
    • >>   int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 122 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11__get_am_pmERiRS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 80 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_dateES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 160 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 52 bytes, Stack size 56 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_timeES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 168 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_yearES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 226 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13__get_percentERS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_date_order() const (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13do_date_orderEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE14do_get_weekdayES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 288 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 110 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__get_monthnameERiRS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const (Thumb, 78 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE16do_get_monthnameES4_S4_RNS_8ios_baseERjPSt2tm)) +

    [Stack]

    • Max Depth = 288 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 110 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__get_weekdaynameERiRS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 248 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const (Thumb, 222 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__get_white_spaceERS4_S4_RjRKNS_5ctypeIwEE)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const (Thumb, 612 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjPSt2tmPKwSC_)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_time(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_date(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const (Thumb, 898 bytes, Stack size 80 bytes, locale.cpp.o(.text._ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjPSt2tmcc)) +

    [Stack]

    • Max Depth = 328 + Unknown Stack Size +
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const ⇒ std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const ⇒ T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_white_space(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_percent(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const std::tm*, char, char) const (Thumb, 114 bytes, Stack size 120 bytes, locale.cpp.o(.text._ZNKSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcPKSt2tmcc)) +

    [Stack]

    • Max Depth = 328 + Unknown Stack Size +
    • Call Chain = std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const std::tm*, char, char) const ⇒ strftime ⇒ sprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   strftime +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const std::tm*, char, char) const (Thumb, 96 bytes, Stack size 232 bytes, locale.cpp.o(.text._ZNKSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwPKSt2tmcc)) +

    [Stack]

    • Max Depth = 576 + Unknown Stack Size +
    • Call Chain = std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const std::tm*, char, char) const ⇒ std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const ⇒ strftime ⇒ sprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   std::__1::__time_put::__do_put(wchar_t*, wchar_t*&, const std::tm*, char, char) const +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const (Thumb, 298 bytes, Stack size 184 bytes, locale.cpp.o(.text._ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIcS3_NS_9allocatorIcEEEE)) +

    [Stack]

    • Max Depth = 888 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const ⇒ std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const (Thumb, 406 bytes, Stack size 312 bytes, locale.cpp.o(.text._ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe)) +

    [Stack]

    • Max Depth = 1016 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const ⇒ std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   abort +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   __0sscanf +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const (Thumb, 298 bytes, Stack size 288 bytes, locale.cpp.o(.text._ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIwS3_NS_9allocatorIwEEEE)) +

    [Stack]

    • Max Depth = 1000 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const ⇒ std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const (Thumb, 406 bytes, Stack size 416 bytes, locale.cpp.o(.text._ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe)) +

    [Stack]

    • Max Depth = 1128 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const ⇒ std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   abort +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   __0sscanf +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const (Thumb, 432 bytes, Stack size 256 bytes, locale.cpp.o(.text._ZNKSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_bRNS_8ios_baseEcRKNS_12basic_stringIcS3_NS_9allocatorIcEEEE)) +

    [Stack]

    • Max Depth = 360 + Unknown Stack Size +
    • Call Chain = std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const ⇒ std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__money_put⟨char⟩::__format(char*, char*&, char*&, unsigned, const char*, const char*, const std::__1::ctype⟨char⟩&, bool, const std::__1::money_base::pattern&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int) +
    • >>   std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const (Thumb, 508 bytes, Stack size 464 bytes, locale.cpp.o(.text._ZNKSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_bRNS_8ios_baseEce)) +

    [Stack]

    • Max Depth = 632 + Unknown Stack Size +
    • Call Chain = std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__money_put⟨char⟩::__format(char*, char*&, char*&, unsigned, const char*, const char*, const std::__1::ctype⟨char⟩&, bool, const std::__1::money_base::pattern&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int) +
    • >>   std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   __ARM_snprintf +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const (Thumb, 432 bytes, Stack size 352 bytes, locale.cpp.o(.text._ZNKSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_bRNS_8ios_baseEwRKNS_12basic_stringIwS3_NS_9allocatorIwEEEE)) +

    [Stack]

    • Max Depth = 456 + Unknown Stack Size +
    • Call Chain = std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const ⇒ std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__format(wchar_t*, wchar_t*&, wchar_t*&, unsigned, const wchar_t*, const wchar_t*, const std::__1::ctype⟨wchar_t⟩&, bool, const std::__1::money_base::pattern&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const (Thumb, 514 bytes, Stack size 664 bytes, locale.cpp.o(.text._ZNKSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_bRNS_8ios_baseEwe)) +

    [Stack]

    • Max Depth = 832 + Unknown Stack Size +
    • Call Chain = std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const ⇒ std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__format(wchar_t*, wchar_t*&, wchar_t*&, unsigned, const wchar_t*, const wchar_t*, const std::__1::ctype⟨wchar_t⟩&, bool, const std::__1::money_base::pattern&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__cloc() +
    • >>   __ARM_snprintf +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::__stdinbuf⟨char⟩::imbue(const std::__1::locale&) (Thumb, 64 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcE5imbueERKNS_6localeE)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = std::__1::__stdinbuf⟨char⟩::imbue(const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__throw_runtime_error(const char*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    +

    std::__1::__stdinbuf⟨char⟩::uflow() (Thumb, 6 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcE5uflowEv)) +
    [Address Reference Count : 1]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    +

    std::__1::__stdinbuf⟨char⟩::__getchar(bool) (Thumb, 234 bytes, Stack size 72 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcE9__getcharEb)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::__stdinbuf⟨char⟩::__getchar(bool) ⇒ getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   ungetc +
    • >>   getc +
    +
    [Called By]
    • >>   std::__1::__stdinbuf⟨char⟩::underflow() +
    + +

    std::__1::__stdinbuf⟨char⟩::pbackfail(int) (Thumb, 142 bytes, Stack size 64 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcE9pbackfailEi)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = std::__1::__stdinbuf⟨char⟩::pbackfail(int) +
    +
    [Calls]
    • >>   ungetc +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    +

    std::__1::__stdinbuf⟨char⟩::underflow() (Thumb, 6 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcE9underflowEv)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::__stdinbuf⟨char⟩::underflow() ⇒ std::__1::__stdinbuf⟨char⟩::__getchar(bool) ⇒ getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   std::__1::__stdinbuf⟨char⟩::__getchar(bool) +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    +

    std::__1::__stdinbuf⟨char⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) (Thumb, 74 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcEC2EPSt6__FILEPSt11__mbstate_t), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    • >>   std::__1::locale::locale(const std::__1::locale&) +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf__sub_object() +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::DoIOSInit() +
    + +

    std::__1::__stdinbuf⟨char⟩::~__stdinbuf__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__stdinbuf⟨char⟩::~__stdinbuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    +

    std::__1::__stdinbuf⟨wchar_t⟩::imbue(const std::__1::locale&) (Thumb, 64 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwE5imbueERKNS_6localeE)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::imbue(const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::__throw_runtime_error(const char*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    +

    std::__1::__stdinbuf⟨wchar_t⟩::uflow() (Thumb, 6 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwE5uflowEv)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::uflow() ⇒ std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) ⇒ getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    +

    std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) (Thumb, 234 bytes, Stack size 72 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwE9__getcharEb)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) ⇒ getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   ungetc +
    • >>   getc +
    +
    [Called By]
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::underflow() +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::uflow() +
    + +

    std::__1::__stdinbuf⟨wchar_t⟩::pbackfail(int) (Thumb, 142 bytes, Stack size 64 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwE9pbackfailEi)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::pbackfail(int) +
    +
    [Calls]
    • >>   ungetc +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    +

    std::__1::__stdinbuf⟨wchar_t⟩::underflow() (Thumb, 6 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwE9underflowEv)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::underflow() ⇒ std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) ⇒ getc ⇒ fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__getchar(bool) +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    +

    std::__1::__stdinbuf⟨wchar_t⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) (Thumb, 74 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwEC2EPSt6__FILEPSt11__mbstate_t), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    • >>   std::__1::locale::locale(const std::__1::locale&) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf__sub_object() +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::DoIOSInit() +
    + +

    std::__1::__stdinbuf⟨wchar_t⟩::~__stdinbuf__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__110__stdinbufIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__stdinbuf⟨wchar_t⟩::~__stdinbuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb0EED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb0EED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb0EED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb1EED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb1EED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIcLb1EED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb0EED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb0EED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb0EED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb1EED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb1EED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__110moneypunctIwLb1EED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    +

    std::__1::__call_once(volatile unsigned long&, void*, void(*)(void*)) (Thumb, 26 bytes, Stack size 8 bytes, mutex.cpp.o(.text._ZNSt3__111__call_onceERVmPvPFvS2_E)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::__call_once(volatile unsigned long&, void*, void(*)(void*)) +
    +
    [Called By]
    • >>   std::__1::locale::id::__get() +
    + +

    std::__1::__money_get⟨char⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) (Thumb, 270 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__111__money_getIcE13__gather_infoEbRKNS_6localeERNS_10money_base7patternERcS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESF_SF_SF_Ri)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::__money_get⟨char⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    + +

    std::__1::__money_get⟨wchar_t⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) (Thumb, 270 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__111__money_getIwE13__gather_infoEbRKNS_6localeERNS_10money_base7patternERwS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS9_IwNSA_IwEENSC_IwEEEESJ_SJ_Ri)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::__money_get⟨wchar_t⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    + +

    std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) (Thumb, 264 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__111__money_putIcE13__gather_infoEbbRKNS_6localeERNS_10money_base7patternERcS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESF_SF_Ri)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    + +

    std::__1::__money_put⟨char⟩::__format(char*, char*&, char*&, unsigned, const char*, const char*, const std::__1::ctype⟨char⟩&, bool, const std::__1::money_base::pattern&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int) (Thumb, 776 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNSt3__111__money_putIcE8__formatEPcRS2_S3_jPKcS5_RKNS_5ctypeIcEEbRKNS_10money_base7patternEccRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESL_SL_i)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = std::__1::__money_put⟨char⟩::__format(char*, char*&, char*&, unsigned, const char*, const char*, const std::__1::ctype⟨char⟩&, bool, const std::__1::money_base::pattern&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int) +
    +
    [Calls]
    • >>   __aeabi_memmove +
    +
    [Called By]
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    + +

    std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) (Thumb, 264 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__111__money_putIwE13__gather_infoEbbRKNS_6localeERNS_10money_base7patternERwS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS9_IwNSA_IwEENSC_IwEEEESJ_Ri)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    + +

    std::__1::__money_put⟨wchar_t⟩::__format(wchar_t*, wchar_t*&, wchar_t*&, unsigned, const wchar_t*, const wchar_t*, const std::__1::ctype⟨wchar_t⟩&, bool, const std::__1::money_base::pattern&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int) (Thumb, 694 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNSt3__111__money_putIwE8__formatEPwRS2_S3_jPKwS5_RKNS_5ctypeIwEEbRKNS_10money_base7patternEwwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNSE_IwNSF_IwEENSH_IwEEEESQ_i)) +

    [Stack]

    • Max Depth = 64
    • Call Chain = std::__1::__money_put⟨wchar_t⟩::__format(wchar_t*, wchar_t*&, wchar_t*&, unsigned, const wchar_t*, const wchar_t*, const std::__1::ctype⟨wchar_t⟩&, bool, const std::__1::money_base::pattern&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int) +
    +
    [Calls]
    • >>   __aeabi_memmove +
    +
    [Called By]
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    + +

    std::__1::__stdoutbuf⟨char⟩::sync() (Thumb, 94 bytes, Stack size 48 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcE4syncEv)) +

    [Stack]

    • Max Depth = 128
    • Call Chain = std::__1::__stdoutbuf⟨char⟩::sync() ⇒ fflush ⇒ _do_fflush ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   fwrite +
    • >>   fflush +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    +

    std::__1::__stdoutbuf⟨char⟩::imbue(const std::__1::locale&) (Thumb, 42 bytes, Stack size 16 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcE5imbueERKNS_6localeE)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::__stdoutbuf⟨char⟩::imbue(const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    +

    std::__1::__stdoutbuf⟨char⟩::xsputn(const char*, int) (Thumb, 68 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcE6xsputnEPKci)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = std::__1::__stdoutbuf⟨char⟩::xsputn(const char*, int) ⇒ fwrite ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fwrite +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    +

    std::__1::__stdoutbuf⟨char⟩::overflow(int) (Thumb, 160 bytes, Stack size 72 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcE8overflowEi)) +

    [Stack]

    • Max Depth = 136
    • Call Chain = std::__1::__stdoutbuf⟨char⟩::overflow(int) ⇒ fwrite ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fwrite +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    +

    std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) (Thumb, 82 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcEC2EPSt6__FILEPSt11__mbstate_t), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    • >>   std::__1::locale::locale(const std::__1::locale&) +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf__sub_object() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::DoIOSInit() +
    + +

    std::__1::__stdoutbuf⟨char⟩::~__stdoutbuf__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__stdoutbuf⟨char⟩::~__stdoutbuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    +

    std::__1::__stdoutbuf⟨wchar_t⟩::sync() (Thumb, 94 bytes, Stack size 48 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwE4syncEv)) +

    [Stack]

    • Max Depth = 128
    • Call Chain = std::__1::__stdoutbuf⟨wchar_t⟩::sync() ⇒ fflush ⇒ _do_fflush ⇒ _fflush ⇒ _writebuf +
    +
    [Calls]
    • >>   fwrite +
    • >>   fflush +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    +

    std::__1::__stdoutbuf⟨wchar_t⟩::imbue(const std::__1::locale&) (Thumb, 42 bytes, Stack size 16 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwE5imbueERKNS_6localeE)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::__stdoutbuf⟨wchar_t⟩::imbue(const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    +

    std::__1::__stdoutbuf⟨wchar_t⟩::xsputn(const wchar_t*, int) (Thumb, 70 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwE6xsputnEPKwi)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = std::__1::__stdoutbuf⟨wchar_t⟩::xsputn(const wchar_t*, int) ⇒ fwrite ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fwrite +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    +

    std::__1::__stdoutbuf⟨wchar_t⟩::overflow(int) (Thumb, 162 bytes, Stack size 72 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwE8overflowEi)) +

    [Stack]

    • Max Depth = 136
    • Call Chain = std::__1::__stdoutbuf⟨wchar_t⟩::overflow(int) ⇒ fwrite ⇒ fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   fwrite +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    +

    std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) (Thumb, 82 bytes, Stack size 24 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwEC2EPSt6__FILEPSt11__mbstate_t), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    • >>   std::__1::locale::locale(const std::__1::locale&) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf__sub_object() +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::DoIOSInit() +
    + +

    std::__1::__stdoutbuf⟨wchar_t⟩::~__stdoutbuf__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__111__stdoutbufIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__stdoutbuf⟨wchar_t⟩::~__stdoutbuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    +

    std::__1::__do_nothing(void*) (Thumb, 2 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__112__do_nothingEPv)) +
    [Address Reference Count : 9]

    • locale.cpp.o(.text._ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe) +
    • locale.cpp.o(.text._ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIcEERNS_10unique_ptrIcPFvPvEEERPcSM_) +
    • locale.cpp.o(.text._ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIcS3_NS_9allocatorIcEEEE) +
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIcEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIjEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    • locale.cpp.o(.text._ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe) +
    • locale.cpp.o(.text._ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIwEERNS_10unique_ptrIwPFvPvEEERPwSM_) +
    • locale.cpp.o(.text._ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIwS3_NS_9allocatorIwEEEE) +
    • locale.cpp.o(.text._ZNSt3__119__double_or_nothingIwEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_) +
    +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) (Thumb, 192 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE21__grow_by_and_replaceEjjjjjjPKc)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   __aeabi_memcpy +
    • >>   abort +
    +
    [Called By]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) (Thumb, 278 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE23__append_forward_unsafeIPcEERS5_T_S9_)) +

    [Stack]

    • Max Depth = 184 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) +
    +
    [Called By]
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) (Thumb, 112 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcj)) +

    [Stack]

    • Max Depth = 136 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(const char*, unsigned) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    +
    [Called By]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) (Thumb, 112 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEjc)) +

    [Stack]

    • Max Depth = 136 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __aeabi_memset +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    +
    [Called By]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) (Thumb, 26 bytes, Stack size 16 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*) ⇒ strlen +
    +
    [Calls]
    • >>   strlen +
    +
    [Called By]
    • >>   std::__1::__time_get_c_storage⟨char⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__am_pm() const +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::assign(const char*, unsigned) (Thumb, 104 bytes, Stack size 32 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKcj), UNUSED) +

    [Calls]

    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    • >>   __aeabi_memmove +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) (Thumb, 50 bytes, Stack size 0 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc)) +

    [Stack]

    • Max Depth = 136 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::resize(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) (Thumb, 166 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEjjjjjj)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   __aeabi_memcpy +
    • >>   abort +
    +
    [Called By]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::append(unsigned, char) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) (Thumb, 100 bytes, Stack size 32 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    +
    [Called By]
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) (Thumb, 100 bytes, Stack size 24 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    • >>   __aeabi_memcpy +
    • >>   abort +
    +
    [Called By]
    • >>   std::__1::messages⟨char⟩::do_get(int, int, int, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::numpunct⟨wchar_t⟩::do_grouping() const +
    • >>   std::__1::numpunct⟨char⟩::do_grouping() const +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string__sub_object(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) (Thumb, 100 bytes, Stack size 24 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_), UNUSED) + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::~basic_string() (Thumb, 20 bytes, Stack size 8 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    + +

    std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::~basic_string__sub_object() (Thumb, 20 bytes, Stack size 8 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::~basic_string__sub_object() +
    +
    [Address Reference Count : 4]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__xEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__XEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__cEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE3__rEv) +
    +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) (Thumb, 206 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE21__grow_by_and_replaceEjjjjjjPKw)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   abort +
    • >>   wmemcpy +
    +
    [Called By]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*, unsigned) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) (Thumb, 298 bytes, Stack size 56 bytes, locale.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE23__append_forward_unsafeIPwEERS5_T_S9_)) +

    [Stack]

    • Max Depth = 192 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   abort +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) (Thumb, 116 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6appendEPKwj)) +

    [Stack]

    • Max Depth = 136 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::append(const wchar_t*, unsigned) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    • >>   wmemcpy +
    +
    [Called By]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) (Thumb, 26 bytes, Stack size 16 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*) +
    +
    [Calls]
    • >>   wcslen +
    +
    [Called By]
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::assign(const wchar_t*, unsigned) (Thumb, 106 bytes, Stack size 32 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKwj), UNUSED) +

    [Calls]

    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    • >>   wmemmove +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) (Thumb, 168 bytes, Stack size 40 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9__grow_byEjjjjjj)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   abort +
    • >>   wmemcpy +
    +
    [Called By]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) (Thumb, 104 bytes, Stack size 32 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9push_backEw)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) (Thumb, 116 bytes, Stack size 24 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEC2ERKS5_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    • >>   abort +
    • >>   wmemcpy +
    +
    [Called By]
    • >>   std::__1::messages⟨wchar_t⟩::do_get(int, int, int, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string__sub_object(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) (Thumb, 116 bytes, Stack size 24 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEC2ERKS5_), UNUSED) + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::~basic_string() (Thumb, 20 bytes, Stack size 8 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    + +

    std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::~basic_string__sub_object() (Thumb, 20 bytes, Stack size 8 bytes, string.cpp.o(.text._ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::~basic_string__sub_object() +
    +
    [Address Reference Count : 4]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__xEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__XEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__cEv) +
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE3__rEv) +
    +

    std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() (Thumb, 20 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() (Thumb, 14 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED1Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() (Thumb, 20 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_istreamIwNS_11char_traitsIwEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() (Thumb, 14 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_istreamIwNS_11char_traitsIwEEED1Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() (Thumb, 90 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv), UNUSED) +

    [Calls]

    • >>   abort +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::~sentry__sub_object() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::sentry__sub_object(std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩&) +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::~DoIOSInit() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::sentry(std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩&) +
    + +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::sentry(std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩&) (Thumb, 38 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC2ERS3_), UNUSED) +

    [Calls]

    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::sentry__sub_object(std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩&) (Thumb, 38 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC2ERS3_), UNUSED) +

    [Called By]

    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::~sentry() (Thumb, 88 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD2Ev), UNUSED) +

    [Calls]

    • >>   abort +
    • >>   std::uncaught_exception() +
    + +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::~sentry__sub_object() (Thumb, 88 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD2Ev), UNUSED) +

    [Called By]

    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() (Thumb, 20 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() (Thumb, 14 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() (Thumb, 90 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE5flushEv), UNUSED) +

    [Calls]

    • >>   abort +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::~sentry__sub_object() +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::sentry__sub_object(std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&) +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::~DoIOSInit() +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::sentry(std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&) +
    + +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::sentry(std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&) (Thumb, 38 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryC2ERS3_), UNUSED) +

    [Calls]

    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::sentry__sub_object(std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&) (Thumb, 38 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryC2ERS3_), UNUSED) +

    [Called By]

    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::~sentry() (Thumb, 88 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryD2Ev), UNUSED) +

    [Calls]

    • >>   abort +
    • >>   std::uncaught_exception() +
    + +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::~sentry__sub_object() (Thumb, 88 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryD2Ev), UNUSED) +

    [Called By]

    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() +
    + +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() (Thumb, 20 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() (Thumb, 14 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEED1Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIwNS_11char_traitsIwEEEE) +
    +

    std::__1::__num_put_base::__format_int(char*, const char*, bool, unsigned) (Thumb, 94 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__114__num_put_base12__format_intEPcPKcbj)) +

    [Called By]

    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    + +

    std::__1::__num_put_base::__format_float(char*, const char*, unsigned) (Thumb, 142 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__114__num_put_base14__format_floatEPcPKcj)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::__num_put_base::__format_float(char*, const char*, unsigned) +
    +
    [Called By]
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    + +

    std::__1::__num_put_base::__identify_padding(char*, char*, const std::__1::ios_base&) (Thumb, 58 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE)) +

    [Called By]

    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    + +

    T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) (Thumb, 626 bytes, Stack size 160 bytes, locale.cpp.o(.text._ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEPKNS_12basic_stringIcS3_NS_9allocatorIcEEEENS_5ctypeIcEEEET0_RT_SE_SD_SD_RKT1_Rjb)) +

    [Stack]

    • Max Depth = 208 + Unknown Stack Size +
    • Call Chain = T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    + +

    T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) (Thumb, 634 bytes, Stack size 160 bytes, locale.cpp.o(.text._ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEPKNS_12basic_stringIwS3_NS_9allocatorIwEEEENS_5ctypeIwEEEET0_RT_SE_SD_SD_RKT1_Rjb)) +

    [Stack]

    • Max Depth = 208 + Unknown Stack Size +
    • Call Chain = T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   free +
    • >>   malloc +
    • >>   std::__throw_bad_alloc() +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_weekdayname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_monthname(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_am_pm(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    + +

    std::__1::__shared_count::__add_shared() (Thumb, 8 bytes, Stack size 0 bytes, memory.cpp.o(.text._ZNSt3__114__shared_count12__add_sharedEv)) +

    [Called By]

    • >>   std::__1::locale::locale(const std::__1::locale&) +
    • >>   std::__1::locale::locale() +
    • >>   std::__1::locale::__global() +
    • >>   std::__1::locale::__imp::install(std::__1::locale::facet*, long) +
    + +

    std::__1::__shared_count::__release_shared() (Thumb, 24 bytes, Stack size 8 bytes, memory.cpp.o(.text._ZNSt3__114__shared_count16__release_sharedEv)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::locale::~locale() +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const wchar_t*, const wchar_t*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, const char*, const char*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_monthname(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_weekday(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get_year(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::locale::__imp::~__imp() +
    • >>   std::__1::locale::__imp::install(std::__1::locale::facet*, long) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) +
    • >>   std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) +
    • >>   std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) +
    + +

    std::__1::__shared_count::~__shared_count() (Thumb, 2 bytes, Stack size 0 bytes, memory.cpp.o(.text._ZNSt3__114__shared_countD2Ev), UNUSED) + +

    std::__1::__shared_count::~__shared_count__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, memory.cpp.o(.text._ZNSt3__114__shared_countD2Ev), UNUSED) +

    [Called By]

    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get() +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get() +
    • >>   std::__1::collate⟨wchar_t⟩::~collate() +
    • >>   std::__1::collate⟨char⟩::~collate() +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct() +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct() +
    • >>   std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct() +
    • >>   std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct() +
    • >>   std::__1::numpunct_byname⟨wchar_t⟩::~numpunct_byname() +
    • >>   std::__1::numpunct_byname⟨char⟩::~numpunct_byname() +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt() +
    • >>   std::__1::__narrow_to_utf8⟨(unsigned)16⟩::~__narrow_to_utf8() +
    • >>   std::__1::locale::__imp::~__imp() +
    • >>   std::__1::ctype⟨char⟩::~ctype() +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put() +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put() +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get() +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get() +
    • >>   std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put() +
    • >>   std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put() +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get() +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get() +
    • >>   std::__1::messages⟨wchar_t⟩::~messages() +
    • >>   std::__1::messages⟨char⟩::~messages() +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put() +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put() +
    + +

    std::__1::__shared_weak_count::~__shared_weak_count() (Thumb, 2 bytes, Stack size 0 bytes, memory.cpp.o(.text._ZNSt3__114__shared_countD2Ev), UNUSED) + +

    std::__1::__shared_weak_count::~__shared_weak_count__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, memory.cpp.o(.text._ZNSt3__114__shared_countD2Ev), UNUSED) + +

    std::__1::__split_buffer⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩&⟩::~__split_buffer__sub_object() (Thumb, 52 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__114__split_bufferIPNS_6locale5facetERNS_15__sso_allocatorIS3_Lj28EEEED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    +
    [Called By]
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    + +

    T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) (Thumb, 88 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__115__num_get_floatIdEET_PKcS3_Rj)) +

    [Stack]

    • Max Depth = 492 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) ⇒ strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   strtod +
    • >>   std::__1::__cloc() +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) (Thumb, 88 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__115__num_get_floatIeEET_PKcS3_Rj)) +

    [Stack]

    • Max Depth = 492 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) ⇒ strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   strtold +
    • >>   std::__1::__cloc() +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) (Thumb, 84 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__115__num_get_floatIfEET_PKcS3_Rj)) +

    [Stack]

    • Max Depth = 484 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) ⇒ strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   strtof +
    • >>   std::__1::__cloc() +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::sync() (Thumb, 4 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE4syncEv)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::imbue(const std::__1::locale&) (Thumb, 2 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5imbueERKNS_6localeE)) +
    [Address Reference Count : 1]

    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::uflow() (Thumb, 32 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5uflowEv)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::uflow() +
    +
    [Address Reference Count : 2]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::setbuf(char*, int) (Thumb, 2 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6setbufEPci)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsgetn(char*, int) (Thumb, 90 bytes, Stack size 24 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsgetnEPci)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsgetn(char*, int) +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    +
    [Address Reference Count : 3]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsputn(const char*, int) (Thumb, 92 bytes, Stack size 24 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsputnEPKci)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::xsputn(const char*, int) +
    +
    [Calls]
    • >>   __aeabi_memcpy +
    +
    [Address Reference Count : 2]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::seekoff(long long, std::__1::ios_base::seekdir, unsigned) (Thumb, 16 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE7seekoffExNS_8ios_base7seekdirEj)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::seekpos(std::__1::fpos⟨std::__mbstate_t⟩, unsigned) (Thumb, 16 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE7seekposENS_4fposISt11__mbstate_tEEj)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::overflow(int) (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE8overflowEi)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::pbackfail(int) (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9pbackfailEi)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::showmanyc() (Thumb, 4 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9showmanycEv)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::underflow() (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9underflowEv)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf() (Thumb, 38 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEEC2Ev), UNUSED) +

    [Calls]

    • >>   __aeabi_memclr4 +
    • >>   std::__1::locale::locale() +
    + +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf__sub_object() (Thumb, 38 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEEC2Ev), UNUSED) +

    [Called By]

    • >>   std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨char⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    + +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__deallocating() (Thumb, 36 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::~locale() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf() (Thumb, 30 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    + +

    std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__sub_object() (Thumb, 30 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__sub_object() +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨char⟩::~__stdoutbuf__deallocating() +
    • >>   std::__1::__stdinbuf⟨char⟩::~__stdinbuf__deallocating() +
    +
    [Address Reference Count : 3]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIcEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIcEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIcNS_11char_traitsIcEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sync() (Thumb, 4 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE4syncEv)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::imbue(const std::__1::locale&) (Thumb, 2 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE5imbueERKNS_6localeE)) +
    [Address Reference Count : 1]

    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::uflow() (Thumb, 30 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE5uflowEv)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::uflow() +
    +
    [Address Reference Count : 2]
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::setbuf(wchar_t*, int) (Thumb, 2 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6setbufEPwi)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsgetn(wchar_t*, int) (Thumb, 98 bytes, Stack size 24 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6xsgetnEPwi)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsgetn(wchar_t*, int) ⇒ wmemcpy ⇒ memcpy +
    +
    [Calls]
    • >>   wmemcpy +
    +
    [Address Reference Count : 3]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsputn(const wchar_t*, int) (Thumb, 96 bytes, Stack size 24 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6xsputnEPKwi)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::xsputn(const wchar_t*, int) ⇒ wmemcpy ⇒ memcpy +
    +
    [Calls]
    • >>   wmemcpy +
    +
    [Address Reference Count : 2]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::seekoff(long long, std::__1::ios_base::seekdir, unsigned) (Thumb, 16 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE7seekoffExNS_8ios_base7seekdirEj)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::seekpos(std::__1::fpos⟨std::__mbstate_t⟩, unsigned) (Thumb, 16 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE7seekposENS_4fposISt11__mbstate_tEEj)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::overflow(int) (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE8overflowEi)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::pbackfail(int) (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9pbackfailEi)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::showmanyc() (Thumb, 4 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9showmanycEv)) +
    [Address Reference Count : 3]

    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::underflow() (Thumb, 6 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9underflowEv)) +
    [Address Reference Count : 2]

    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf() (Thumb, 38 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEEC2Ev), UNUSED) +

    [Calls]

    • >>   __aeabi_memclr4 +
    • >>   std::__1::locale::locale() +
    + +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf__sub_object() (Thumb, 38 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEEC2Ev), UNUSED) +

    [Called By]

    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    + +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__deallocating() (Thumb, 36 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::~locale() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf() (Thumb, 30 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::locale::~locale() +
    + +

    std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__sub_object() (Thumb, 30 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__sub_object() +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::~__stdoutbuf__deallocating() +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::~__stdinbuf__deallocating() +
    +
    [Address Reference Count : 3]
    • iostream.cpp.o(.rodata._ZTVNSt3__110__stdinbufIwEE) +
    • iostream.cpp.o(.rodata._ZTVNSt3__111__stdoutbufIwEE) +
    • ios.cpp.o(.rodata._ZTVNSt3__115basic_streambufIwNS_11char_traitsIwEEEE) +
    +

    std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) (Thumb, 180 bytes, Stack size 20 bytes, locale.cpp.o(.text._ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj)) +

    [Stack]

    • Max Depth = 20
    • Call Chain = std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    + +

    std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) (Thumb, 212 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   __aeabi_memset +
    +
    [Called By]
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    + +

    std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) (Thumb, 242 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   operator new(unsigned) +
    • >>   std::__1::__basic_string_common⟨(bool)1⟩::__throw_length_error() const +
    • >>   wmemset +
    +
    [Called By]
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    + +

    std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) (Thumb, 28 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__117__libcpp_sscanf_lEPKcPvS1_z)) +

    [Stack]

    • Max Depth = 508
    • Call Chain = std::__1::__libcpp_sscanf_l(const char*, void*, const char*, ...) ⇒ __ARM_vsscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __ARM_vsscanf +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    + +

    void std::__1::__double_or_nothing⟨char⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) (Thumb, 128 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__119__double_or_nothingIcEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = void std::__1::__double_or_nothing⟨char⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) ⇒ realloc ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   realloc +
    • >>   std::__throw_bad_alloc() +
    +
    [Called By]
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    + +

    void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) (Thumb, 138 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__119__double_or_nothingIjEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) ⇒ realloc ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   realloc +
    • >>   std::__throw_bad_alloc() +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    + +

    void std::__1::__double_or_nothing⟨wchar_t⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) (Thumb, 138 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__119__double_or_nothingIwEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = void std::__1::__double_or_nothing⟨wchar_t⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) ⇒ realloc ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   realloc +
    • >>   std::__throw_bad_alloc() +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    + +

    std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) (Thumb, 28 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__119__libcpp_asprintf_lEPPcPvPKcz)) +

    [Stack]

    • Max Depth = 168 + Unknown Stack Size +
    • Call Chain = std::__1::__libcpp_asprintf_l(char**, void*, const char*, ...) ⇒ __ARM_vasprintf ⇒ vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   __ARM_vasprintf +
    +
    [Called By]
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    + +

    std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) (Thumb, 18 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__119__libcpp_snprintf_lEPcjPvPKcz)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = std::__1::__libcpp_snprintf_l(char*, unsigned, void*, const char*, ...) ⇒ __ARM_vsnprintf ⇒ _printf_char_common ⇒ __printf +
    +
    [Calls]
    • >>   __ARM_vsnprintf +
    +
    [Called By]
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    + +

    int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) (Thumb, 484 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = int std::__1::__get_up_to_n_digits⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Called By]
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, unsigned&, const std::__1::ctype⟨char⟩&) const +
    + +

    int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) (Thumb, 480 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = int std::__1::__get_up_to_n_digits⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩(T2&, T2, unsigned&, const std::__1::ctype⟨T1⟩&, int) +
    +
    [Called By]
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, std::tm*, char, char) const +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__get_year(int&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, unsigned&, const std::__1::ctype⟨wchar_t⟩&) const +
    + +

    std::__1::__throw_runtime_error(const char*) (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__121__throw_runtime_errorEPKc)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = std::__1::__throw_runtime_error(const char*) ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    +
    [Called By]
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::imbue(const std::__1::locale&) +
    • >>   std::__1::__stdinbuf⟨char⟩::imbue(const std::__1::locale&) +
    + +

    T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) (Thumb, 152 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__125__num_get_signed_integralIlEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 120 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) ⇒ strtoll ⇒ __strtoll ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoll +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) (Thumb, 126 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__125__num_get_signed_integralIxEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 120 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) ⇒ strtoll ⇒ __strtoll ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoll +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) (Thumb, 124 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__127__num_get_unsigned_integralIjEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) ⇒ strtoull ⇒ __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoull +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) (Thumb, 124 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__127__num_get_unsigned_integralImEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) ⇒ strtoull ⇒ __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoull +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) (Thumb, 136 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__127__num_get_unsigned_integralItEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) ⇒ strtoull ⇒ __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoull +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) (Thumb, 142 bytes, Stack size 40 bytes, locale.cpp.o(.text._ZNSt3__127__num_get_unsigned_integralIyEET_PKcS3_Rji)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) ⇒ strtoull ⇒ __strtoull ⇒ _strtoull +
    +
    [Calls]
    • >>   std::__1::__cloc() +
    • >>   strtoull +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::ctype⟨char⟩::~ctype__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__15ctypeIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::ctype⟨char⟩::~ctype__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ctype⟨char⟩::~ctype__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨char⟩::~ctype() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__15ctypeIcED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete[] (void*) +
    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::ctype⟨char⟩::~ctype__sub_object() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__15ctypeIcED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::ctype⟨char⟩::~ctype__sub_object() +
    +
    [Called By]
    • >>   std::__1::ctype⟨char⟩::~ctype__deallocating() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    +

    std::__1::ctype⟨wchar_t⟩::~ctype__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__15ctypeIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::ctype⟨wchar_t⟩::~ctype__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    +

    std::__1::__cloc() (Thumb, 54 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16__clocEv)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    +
    [Called By]
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned short⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_unsigned_integral⟨unsigned⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_signed_integral⟨long⟩(const char*, const char*, unsigned&, int) +
    • >>   T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) +
    • >>   T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) +
    • >>   T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, const void*) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, const void*) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt() +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__deallocating() +
    • >>   std::__1::locale::__imp::__imp(unsigned) +
    • >>   std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t) const +
    • >>   std::__1::ctype⟨wchar_t⟩::do_toupper(wchar_t*, const wchar_t*) const +
    • >>   std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t) const +
    • >>   std::__1::ctype⟨wchar_t⟩::do_tolower(wchar_t*, const wchar_t*) const +
    • >>   std::__1::ctype⟨char⟩::do_toupper(char) const +
    • >>   std::__1::ctype⟨char⟩::do_toupper(char*, const char*) const +
    • >>   std::__1::ctype⟨char⟩::do_tolower(char) const +
    • >>   std::__1::ctype⟨char⟩::do_tolower(char*, const char*) const +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put() +
    • >>   std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__deallocating() +
    • >>   std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put() +
    • >>   std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__deallocating() +
    + +

    std::__1::locale::id::__get() (Thumb, 62 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__16locale2id5__getEv)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = std::__1::locale::id::__get() ⇒ std::__1::__call_once(volatile unsigned long&, void*, void(*)(void*)) +
    +
    [Calls]
    • >>   std::__1::__call_once(volatile unsigned long&, void*, void(*)(void*)) +
    +
    [Called By]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::locale::__imp::__imp(unsigned) +
    + +

    std::__1::locale::id::__init() (Thumb, 18 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale2id6__initEv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.text._ZNSt3__16locale2id5__getEv) +
    +

    std::__1::locale::__imp::install(std::__1::locale::facet*, long) (Thumb, 56 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__16locale5__imp7installEPNS0_5facetEl), UNUSED) +

    [Calls]

    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::resize(unsigned) +
    • >>   std::__1::__shared_count::__release_shared() +
    • >>   std::__1::__shared_count::__add_shared() +
    +
    [Called By]
    • >>   std::__1::locale::__imp::__imp(unsigned) +
    + +

    std::__1::locale::__imp::__imp(unsigned) (Thumb, 1384 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNSt3__16locale5__impC2Ej), UNUSED) +

    [Calls]

    • >>   __aeabi_memclr4 +
    • >>   std::__1::locale::__imp::install(std::__1::locale::facet*, long) +
    • >>   std::__1::locale::id::__get() +
    • >>   std::__1::__cloc() +
    + +

    std::__1::locale::__imp::__imp__sub_object(unsigned) (Thumb, 1384 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNSt3__16locale5__impC2Ej), UNUSED) +

    [Called By]

    • >>   std::__1::locale::classic() +
    + +

    std::__1::locale::__imp::~__imp__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16locale5__impD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::locale::__imp::~__imp__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::__imp::~__imp__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__16locale5__impE) +
    +

    std::__1::locale::__imp::~__imp() (Thumb, 106 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__16locale5__impD2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    • >>   std::__1::__shared_count::__release_shared() +
    + +

    std::__1::locale::__imp::~__imp__sub_object() (Thumb, 106 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__16locale5__impD2Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::locale::__imp::~__imp__sub_object() +
    +
    [Called By]
    • >>   std::__1::locale::__imp::~__imp__deallocating() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__16locale5__impE) +
    +

    std::__1::locale::facet::__on_zero_shared() (Thumb, 10 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facet16__on_zero_sharedEv)) +
    [Address Reference Count : 30]

    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIcEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__16locale5facetE) +
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__16locale5__impE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb0EEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIcLb1EEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb0EEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__110moneypunctIwLb1EEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::locale::facet::~facet__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::locale::facet::~facet__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__16locale5facetE) +
    +

    std::__1::__narrow_to_utf8⟨(unsigned)16⟩::~__narrow_to_utf8() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::__narrow_to_utf8⟨(unsigned)16⟩::~__narrow_to_utf8__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__narrow_to_utf8⟨(unsigned)32⟩::~__narrow_to_utf8() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__narrow_to_utf8⟨(unsigned)32⟩::~__narrow_to_utf8__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__widen_from_utf8⟨(unsigned)16⟩::~__widen_from_utf8() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__widen_from_utf8⟨(unsigned)16⟩::~__widen_from_utf8__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__widen_from_utf8⟨(unsigned)32⟩::~__widen_from_utf8() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::__widen_from_utf8⟨(unsigned)32⟩::~__widen_from_utf8__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::ctype⟨wchar_t⟩::~ctype() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::ctype⟨wchar_t⟩::~ctype__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::locale::facet::~facet() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::locale::facet::~facet__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev)) +
    [Address Reference Count : 5]

    • locale.cpp.o(.rodata._ZTVNSt3__16locale5facetE) +
    • locale.cpp.o(.rodata._ZTVNSt3__15ctypeIwEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::~codecvt() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::~codecvt__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::~codecvt() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::~codecvt__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::~codecvt() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::~codecvt__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16locale5facetD2Ev), UNUSED) + +

    std::__1::locale::classic() (Thumb, 88 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16locale7classicEv), UNUSED) +

    [Calls]

    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   std::__1::locale::__imp::__imp__sub_object(unsigned) +
    +
    [Called By]
    • >>   std::__1::locale::__global() +
    + +

    std::__1::locale::__global() (Thumb, 84 bytes, Stack size 16 bytes, locale.cpp.o(.text._ZNSt3__16locale8__globalEv), UNUSED) +

    [Calls]

    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   std::__1::__shared_count::__add_shared() +
    • >>   std::__1::locale::classic() +
    +
    [Called By]
    • >>   std::__1::locale::locale() +
    + +

    std::__1::locale::locale(const std::__1::locale&) (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeC2ERKS0_)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::locale::locale(const std::__1::locale&) +
    +
    [Calls]
    • >>   std::__1::__shared_count::__add_shared() +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨char⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::ios_base::getloc() const +
    + +

    std::__1::locale::locale__sub_object(const std::__1::locale&) (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeC2ERKS0_), UNUSED) + +

    std::__1::locale::locale() (Thumb, 20 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeC2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::__add_shared() +
    • >>   std::__1::locale::__global() +
    +
    [Called By]
    • >>   std::__1::ios_base::init(void*) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::basic_streambuf() +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::basic_streambuf() +
    + +

    std::__1::locale::locale__sub_object() (Thumb, 20 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeC2Ev), UNUSED) + +

    std::__1::locale::~locale() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeD2Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::locale::~locale() ⇒ std::__1::__shared_count::__release_shared() +
    +
    [Calls]
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨char⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf() +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__deallocating() +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf() +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__deallocating() +
    • >>   std::__1::ios_base::~ios_base() +
    + +

    std::__1::locale::~locale__sub_object() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__16localeD2Ev), UNUSED) + +

    std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::resize(unsigned) (Thumb, 34 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE6resizeEj), UNUSED) +

    [Calls]

    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    +
    [Called By]
    • >>   std::__1::locale::__imp::install(std::__1::locale::facet*, long) +
    + +

    std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) (Thumb, 206 bytes, Stack size 48 bytes, locale.cpp.o(.text._ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE8__appendEj), UNUSED) +

    [Calls]

    • >>   operator new(unsigned) +
    • >>   __aeabi_memclr4 +
    • >>   __aeabi_memcpy4 +
    • >>   std::__1::__split_buffer⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩&⟩::~__split_buffer__sub_object() +
    • >>   std::__1::__vector_base_common⟨(bool)1⟩::__throw_length_error() const +
    +
    [Called By]
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::resize(unsigned) +
    + +

    std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::~codecvt__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIDicSt11__mbstate_tED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::~codecvt__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDicSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::~codecvt__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIDscSt11__mbstate_tED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::~codecvt__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIDscSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨char, char, std::__mbstate_t⟩::~codecvt__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIccSt11__mbstate_tED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::codecvt⟨char, char, std::__mbstate_t⟩::~codecvt__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIccSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__deallocating() (Thumb, 34 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIwcSt11__mbstate_tED0Ev)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__deallocating() ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt() (Thumb, 30 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIwcSt11__mbstate_tED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    • >>   std::__1::__cloc() +
    + +

    std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__sub_object() (Thumb, 30 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17codecvtIwcSt11__mbstate_tED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17codecvtIwcSt11__mbstate_tEE) +
    +

    std::__1::collate⟨char⟩::~collate__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17collateIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::collate⟨char⟩::~collate__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    +

    std::__1::collate⟨char⟩::~collate() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17collateIcED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::collate⟨char⟩::~collate__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17collateIcED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17collateIcEE) +
    +

    std::__1::collate⟨wchar_t⟩::~collate__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17collateIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::collate⟨wchar_t⟩::~collate__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    +

    std::__1::collate⟨wchar_t⟩::~collate() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17collateIwED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::collate⟨wchar_t⟩::~collate__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17collateIwED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17collateIwEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::ios_base::Init::Init() (Thumb, 92 bytes, Stack size 16 bytes, iostream.cpp.o(.text._ZNSt3__18ios_base4InitC2Ev)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = std::__1::ios_base::Init::Init() ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   std::__1::DoIOSInit::DoIOSInit__sub_object() +
    • >>   __cxa_atexit +
    +
    [Called By]
    • >>   _GLOBAL__sub_I_micro_speech.cc +
    • >>   _GLOBAL__sub_I_micro_interpreter.cc +
    • >>   _GLOBAL__sub_I_ios.cpp +
    • >>   _GLOBAL__sub_I_locale.cpp +
    + +

    std::__1::ios_base::Init::Init__sub_object() (Thumb, 92 bytes, Stack size 16 bytes, iostream.cpp.o(.text._ZNSt3__18ios_base4InitC2Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::ios_base::Init::Init__sub_object() +
    +
    [Called By]
    • >>   _GLOBAL__sub_I_iostream.cpp +
    + +

    std::__1::ios_base::Init::~Init() (Thumb, 2 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__18ios_base4InitD2Ev)) +
    [Address Reference Count : 4]

    • micro_interpreter.o(.text._GLOBAL__sub_I_micro_interpreter.cc) +
    • micro_speech.o(.text._GLOBAL__sub_I_micro_speech.cc) +
    • ios.cpp.o(.text._GLOBAL__sub_I_ios.cpp) +
    • locale.cpp.o(.text._GLOBAL__sub_I_locale.cpp) +
    +

    std::__1::ios_base::Init::~Init__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, iostream.cpp.o(.text._ZNSt3__18ios_base4InitD2Ev), UNUSED) + +

    std::__1::ios_base::init(void*) (Thumb, 56 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__18ios_base4initEPv), UNUSED) +

    [Calls]

    • >>   __aeabi_memclr4 +
    • >>   std::__1::locale::locale() +
    +
    [Called By]
    • >>   std::__1::DoIOSInit::DoIOSInit() +
    + +

    std::__1::ios_base::~ios_base__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZNSt3__18ios_baseD0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::ios_base::~ios_base__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__18ios_baseE) +
    +

    std::__1::ios_base::~ios_base() (Thumb, 84 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__18ios_baseD2Ev), UNUSED) +

    [Calls]

    • >>   free +
    • >>   std::__1::locale::~locale() +
    + +

    std::__1::ios_base::~ios_base__sub_object() (Thumb, 84 bytes, Stack size 16 bytes, ios.cpp.o(.text._ZNSt3__18ios_baseD2Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = std::__1::ios_base::~ios_base__sub_object() +
    +
    [Called By]
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() +
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() +
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() +
    • >>   std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() +
    • >>   std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() +
    • >>   std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::ios_base::~ios_base__deallocating() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__18ios_baseE) +
    +

    std::__1::messages⟨char⟩::~messages__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18messagesIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::messages⟨char⟩::~messages__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    +

    std::__1::messages⟨char⟩::~messages() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18messagesIcED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::messages⟨char⟩::~messages__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18messagesIcED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIcEE) +
    +

    std::__1::messages⟨wchar_t⟩::~messages__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18messagesIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::messages⟨wchar_t⟩::~messages__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::messages⟨wchar_t⟩::~messages() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18messagesIwED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::messages⟨wchar_t⟩::~messages__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18messagesIwED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18messagesIwEE) +
    +

    std::__1::numpunct⟨char⟩::~numpunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIcED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::numpunct⟨char⟩::~numpunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::numpunct⟨char⟩::~numpunct__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct_byname⟨char⟩::~numpunct_byname() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIcED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::numpunct_byname⟨char⟩::~numpunct_byname__sub_object() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIcED2Ev), UNUSED) + +

    std::__1::numpunct⟨char⟩::~numpunct() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIcED2Ev), UNUSED) + +

    std::__1::numpunct⟨char⟩::~numpunct__sub_object() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIcED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::numpunct⟨char⟩::~numpunct__sub_object() +
    +
    [Called By]
    • >>   std::__1::numpunct⟨char⟩::~numpunct__deallocating() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIcEE) +
    +

    std::__1::numpunct⟨wchar_t⟩::~numpunct__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIwED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::numpunct⟨wchar_t⟩::~numpunct__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::numpunct⟨wchar_t⟩::~numpunct__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::numpunct_byname⟨wchar_t⟩::~numpunct_byname() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIwED2Ev), UNUSED) +

    [Calls]

    • >>   operator delete (void*) +
    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::numpunct_byname⟨wchar_t⟩::~numpunct_byname__sub_object() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIwED2Ev), UNUSED) + +

    std::__1::numpunct⟨wchar_t⟩::~numpunct() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIwED2Ev), UNUSED) + +

    std::__1::numpunct⟨wchar_t⟩::~numpunct__sub_object() (Thumb, 38 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18numpunctIwED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::numpunct⟨wchar_t⟩::~numpunct__sub_object() +
    +
    [Called By]
    • >>   std::__1::numpunct⟨wchar_t⟩::~numpunct__deallocating() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18numpunctIwEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__deallocating() (Thumb, 22 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__deallocating() ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put() (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    • >>   std::__1::__cloc() +
    + +

    std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__sub_object() (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__deallocating() (Thumb, 22 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__deallocating() ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::__cloc() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put() (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    • >>   std::__1::__cloc() +
    + +

    std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__sub_object() (Thumb, 18 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__sub_object() +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::DoIOSInit::DoIOSInit() (Thumb, 626 bytes, Stack size 40 bytes, iostream.cpp.o(.text._ZNSt3__19DoIOSInitC2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdoutbuf⟨char⟩::__stdoutbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::__stdinbuf⟨char⟩::__stdinbuf__sub_object(std::__FILE*, std::__mbstate_t*) +
    • >>   std::__1::ios_base::init(void*) +
    + +

    std::__1::DoIOSInit::DoIOSInit__sub_object() (Thumb, 626 bytes, Stack size 40 bytes, iostream.cpp.o(.text._ZNSt3__19DoIOSInitC2Ev)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = std::__1::DoIOSInit::DoIOSInit__sub_object() +
    +
    [Called By]
    • >>   std::__1::ios_base::Init::Init() +
    + +

    std::__1::DoIOSInit::~DoIOSInit() (Thumb, 56 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__19DoIOSInitD2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::flush() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::flush() +
    + +

    std::__1::DoIOSInit::~DoIOSInit__sub_object() (Thumb, 56 bytes, Stack size 8 bytes, iostream.cpp.o(.text._ZNSt3__19DoIOSInitD2Ev)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = std::__1::DoIOSInit::~DoIOSInit__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.text._ZNSt3__18ios_base4InitC2Ev) +
    +

    std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) (Thumb, 252 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIcE17__stage2_int_loopEciPcRS2_RjcRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_S2_)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__num_get⟨char⟩::__stage2_int_loop(char, int, char*, char*&, unsigned&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, char*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) (Thumb, 104 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIcE17__stage2_int_prepERNS_8ios_baseEPcRc)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__num_get⟨char⟩::__stage2_int_prep(std::__1::ios_base&, char*, char&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨char⟩::__stage2_float_loop(char, bool&, char&, char*, char*&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, char*) (Thumb, 362 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIcE19__stage2_float_loopEcRbRcPcRS4_ccRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjS4_)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = std::__1::__num_get⟨char⟩::__stage2_float_loop(char, bool&, char&, char*, char*&, char, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, char*) +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) (Thumb, 118 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIcE19__stage2_float_prepERNS_8ios_baseEPcRcS5_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__num_get⟨char⟩::__stage2_float_prep(std::__1::ios_base&, char*, char&, char&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) (Thumb, 256 bytes, Stack size 24 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIwE17__stage2_int_loopEwiPcRS2_RjwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_Pw)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::__num_get⟨wchar_t⟩::__stage2_int_loop(wchar_t, int, char*, char*&, unsigned&, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) (Thumb, 104 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIwE17__stage2_int_prepERNS_8ios_baseEPwRw)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__num_get⟨wchar_t⟩::__stage2_int_prep(std::__1::ios_base&, wchar_t*, wchar_t&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨wchar_t⟩::__stage2_float_loop(wchar_t, bool&, char&, char*, char*&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, wchar_t*) (Thumb, 368 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIwE19__stage2_float_loopEwRbRcPcRS4_wwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjPw)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = std::__1::__num_get⟨wchar_t⟩::__stage2_float_loop(wchar_t, bool&, char&, char*, char*&, wchar_t, wchar_t, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*&, unsigned&, wchar_t*) +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) (Thumb, 118 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__19__num_getIwE19__stage2_float_prepERNS_8ios_baseEPwRwS5_)) +

    [Stack]

    • Max Depth = 80 + Unknown Stack Size +
    • Call Chain = std::__1::__num_get⟨wchar_t⟩::__stage2_float_prep(std::__1::ios_base&, wchar_t*, wchar_t&, wchar_t&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::ios_base::getloc() const +
    • >>   std::__1::__shared_count::__release_shared() +
    +
    [Called By]
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    + +

    std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) (Thumb, 508 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNSt3__19__num_putIcE21__widen_and_group_intEPcS2_S2_S2_RS2_S3_RKNS_6localeE)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, unsigned long) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long) const +
    + +

    std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) (Thumb, 656 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNSt3__19__num_putIcE23__widen_and_group_floatEPcS2_S2_S2_RS2_S3_RKNS_6localeE)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    + +

    std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) (Thumb, 508 bytes, Stack size 64 bytes, locale.cpp.o(.text._ZNSt3__19__num_putIwE21__widen_and_group_intEPcS2_S2_PwRS3_S4_RKNS_6localeE)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) ⇒ std::__1::locale::use_facet(std::__1::locale::id&) const ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    +
    [Called By]
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, unsigned long) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long) const +
    + +

    std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) (Thumb, 670 bytes, Stack size 72 bytes, locale.cpp.o(.text._ZNSt3__19__num_putIwE23__widen_and_group_floatEPcS2_S2_PwRS3_S4_RKNS_6localeE)) +

    [Stack]

    • Max Depth = 128 + Unknown Stack Size +
    • Call Chain = std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) ⇒ std::__1::__cloc() ⇒ __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::locale::use_facet(std::__1::locale::id&) const +
    • >>   std::__1::__cloc() +
    • >>   __rt_ctype_table +
    +
    [Called By]
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    + +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) (Thumb, 2342 bytes, Stack size 576 bytes, locale.cpp.o(.text._ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIcEERNS_10unique_ptrIcPFvPvEEERPcSM_)) +

    [Stack]

    • Max Depth = 704 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) ⇒ std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨char⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   std::__1::__money_get⟨char⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::push_back(char) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    +
    [Called By]
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    + +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) (Thumb, 2360 bytes, Stack size 584 bytes, locale.cpp.o(.text._ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIwEERNS_10unique_ptrIwPFvPvEEERPwSM_)) +

    [Stack]

    • Max Depth = 712 + Unknown Stack Size +
    • Call Chain = std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) ⇒ std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   void std::__1::__double_or_nothing⟨wchar_t⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   std::__1::__money_get⟨wchar_t⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::push_back(wchar_t) +
    • >>   std::__1::__check_grouping(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, unsigned*, unsigned*, unsigned&) +
    +
    [Called By]
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    + +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE) +
    +

    std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put__deallocating() (Thumb, 14 bytes, Stack size 8 bytes, locale.cpp.o(.text._ZNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev), UNUSED) +

    [Calls]

    • >>   std::__1::__shared_count::~__shared_count__sub_object() +
    + +

    std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put__sub_object() (Thumb, 4 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.rodata._ZTVNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE) +
    +

    std::type_info::~type_info() (Thumb, 2 bytes, Stack size 0 bytes, stdlib_typeinfo.cpp.o(.text._ZNSt9type_infoD2Ev), UNUSED) + +

    std::type_info::~type_info__sub_object() (Thumb, 2 bytes, Stack size 0 bytes, stdlib_typeinfo.cpp.o(.text._ZNSt9type_infoD2Ev), UNUSED) +

    [Called By]

    • >>   __cxxabiv1::__enum_type_info::~__enum_type_info() +
    + +

    std::get_new_handler() (Thumb, 12 bytes, Stack size 0 bytes, cxa_handlers.cpp.o(.text._ZSt15get_new_handlerv)) +

    [Called By]

    • >>   operator new(unsigned) +
    + +

    std::__throw_bad_alloc() (Thumb, 4 bytes, Stack size 0 bytes, new.cpp.o(.text._ZSt17__throw_bad_allocv)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = std::__throw_bad_alloc() ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    +
    [Called By]
    • >>   void std::__1::__double_or_nothing⟨wchar_t⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨unsigned⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   void std::__1::__double_or_nothing⟨char⟩(std::__1::unique_ptr⟨T1, void(*)(void*)⟩&, T1*&, T1*&) +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩*, std::__1::ctype⟨wchar_t⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   T2 std::__1::__scan_keyword⟨std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩*, std::__1::ctype⟨char⟩⟩(T1&, T1, T2, T2, const T3&, unsigned&, bool) +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, unsigned&, long double&) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, double) const +
    + +

    std::uncaught_exception() (Thumb, 18 bytes, Stack size 8 bytes, exception.cpp.o(.text._ZSt18uncaught_exceptionv), UNUSED) +

    [Called By]

    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::sentry::~sentry() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::sentry::~sentry() +
    + +

    thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() (Thumb, 28 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_istreamIcNS_11char_traitsIcEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIcNS_11char_traitsIcEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() (Thumb, 14 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_istreamIcNS_11char_traitsIcEEED1Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIcNS_11char_traitsIcEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() (Thumb, 28 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_istreamIwNS_11char_traitsIwEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIwNS_11char_traitsIwEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() (Thumb, 14 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_istreamIwNS_11char_traitsIwEEED1Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_istreamIwNS_11char_traitsIwEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() (Thumb, 26 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIcNS_11char_traitsIcEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() (Thumb, 14 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIcNS_11char_traitsIcEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() (Thumb, 26 bytes, Stack size 8 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_ostreamIwNS_11char_traitsIwEEED0Ev)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIwNS_11char_traitsIwEEEE) +
    +

    thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() (Thumb, 14 bytes, Stack size 0 bytes, ios.cpp.o(.text._ZTv0_n12_NSt3__113basic_ostreamIwNS_11char_traitsIwEEED1Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream() ⇒ std::__1::ios_base::~ios_base__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::~ios_base__sub_object() +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.rodata._ZTVNSt3__113basic_ostreamIwNS_11char_traitsIwEEEE) +
    +

    operator delete[] (void*) (Thumb, 4 bytes, Stack size 0 bytes, new.cpp.o(.text._ZdaPv)) +

    [Called By]

    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::fully_connected::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteFusedActivation, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::fully_connected::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   std::__1::ctype⟨char⟩::~ctype() +
    + +

    operator delete (void*) (Thumb, 4 bytes, Stack size 0 bytes, new.cpp.o(.text._ZdlPv)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   free +
    +
    [Called By]
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::~MicroMutableOpResolver__deallocating() +
    • >>   tflite::SimpleMemoryAllocator::~SimpleMemoryAllocator__deallocating() +
    • >>   tflite::MicroErrorReporter::~MicroErrorReporter__deallocating() +
    • >>   std::__1::__stdoutbuf⟨wchar_t⟩::~__stdoutbuf__deallocating() +
    • >>   std::__1::__stdoutbuf⟨char⟩::~__stdoutbuf__deallocating() +
    • >>   std::__1::__stdinbuf⟨wchar_t⟩::~__stdinbuf__deallocating() +
    • >>   std::__1::__stdinbuf⟨char⟩::~__stdinbuf__deallocating() +
    • >>   tflite::GreedyMemoryPlanner::~GreedyMemoryPlanner__deallocating() +
    • >>   tflite::MicroAllocator::~MicroAllocator__deallocating() +
    • >>   tflite::⟨unnamed namespace 1⟩::MicroBuiltinDataAllocator::~MicroBuiltinDataAllocator__deallocating() +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::~basic_string() +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::~basic_string() +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() +
    • >>   thunk{v:0,-12} to std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::basic_streambuf⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_streambuf__deallocating() +
    • >>   std::__1::basic_streambuf⟨char, std::__1::char_traits⟨char⟩⟩::~basic_streambuf__deallocating() +
    • >>   std::__1::basic_ostream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_ostream__deallocating() +
    • >>   std::__1::basic_ostream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_ostream__deallocating() +
    • >>   std::__1::basic_istream⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::basic_istream⟨char, std::__1::char_traits⟨char⟩⟩::~basic_istream__deallocating() +
    • >>   std::__1::ios_base::~ios_base__deallocating() +
    • >>   __cxx_global_array_dtor.77 +
    • >>   __cxx_global_array_dtor.62 +
    • >>   __cxx_global_array_dtor.128 +
    • >>   __cxx_global_array_dtor.125 +
    • >>   __cxx_global_array_dtor.101 +
    • >>   __cxx_global_array_dtor +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_get__deallocating() +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_get__deallocating() +
    • >>   std::__1::collate⟨wchar_t⟩::~collate__deallocating() +
    • >>   std::__1::collate⟨char⟩::~collate__deallocating() +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::__split_buffer⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩&⟩::~__split_buffer__sub_object() +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    • >>   std::__1::__money_put⟨wchar_t⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__money_put⟨char⟩::__gather_info(bool, bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::__money_get⟨wchar_t⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, wchar_t&, wchar_t&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&, int&) +
    • >>   std::__1::__money_get⟨char⟩::__gather_info(bool, const std::__1::locale&, std::__1::money_base::pattern&, char&, char&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&, int&) +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)1⟩::~moneypunct__deallocating() +
    • >>   std::__1::moneypunct⟨wchar_t, (bool)0⟩::~moneypunct__deallocating() +
    • >>   std::__1::moneypunct⟨char, (bool)1⟩::~moneypunct__deallocating() +
    • >>   std::__1::moneypunct⟨char, (bool)0⟩::~moneypunct__deallocating() +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, long double) const +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, std::__1::ios_base&, wchar_t, const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, long double) const +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, std::__1::ios_base&, char, const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) const +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, wchar_t, bool) const +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_put(std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, char, bool) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩ std::__1::num_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, bool&) const +
    • >>   std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, void*&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨float⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨long double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_floating_point⟨double⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned short⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_unsigned⟨unsigned⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩ std::__1::num_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get_signed⟨long⟩(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, std::__1::ios_base&, unsigned&, T1&) const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::numpunct_byname⟨wchar_t⟩::~numpunct_byname() +
    • >>   std::__1::numpunct⟨wchar_t⟩::~numpunct__deallocating() +
    • >>   std::__1::numpunct_byname⟨char⟩::~numpunct_byname() +
    • >>   std::__1::numpunct⟨char⟩::~numpunct__deallocating() +
    • >>   std::__1::codecvt⟨wchar_t, char, std::__mbstate_t⟩::~codecvt__deallocating() +
    • >>   std::__1::codecvt⟨char, char, std::__mbstate_t⟩::~codecvt__deallocating() +
    • >>   std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::~codecvt__deallocating() +
    • >>   std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::~codecvt__deallocating() +
    • >>   std::__1::locale::facet::~facet__deallocating() +
    • >>   std::__1::locale::__imp::~__imp() +
    • >>   std::__1::locale::__imp::~__imp__deallocating() +
    • >>   std::__1::ctype⟨wchar_t⟩::~ctype__deallocating() +
    • >>   std::__1::ctype⟨char⟩::~ctype__deallocating() +
    • >>   __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info__deallocating() +
    • >>   __cxxabiv1::__si_class_type_info::~__si_class_type_info__deallocating() +
    • >>   __cxxabiv1::__class_type_info::~__class_type_info__deallocating() +
    • >>   std::__1::money_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_put__deallocating() +
    • >>   std::__1::money_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_put__deallocating() +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~money_get__deallocating() +
    • >>   std::__1::money_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩&, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨wchar_t⟩&, std::__1::unique_ptr⟨wchar_t, void(*)(void*)⟩&, wchar_t*&, wchar_t*) +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~money_get__deallocating() +
    • >>   std::__1::money_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::__do_get(std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩&, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩, bool, const std::__1::locale&, unsigned, unsigned&, bool&, const std::__1::ctype⟨char⟩&, std::__1::unique_ptr⟨char, void(*)(void*)⟩&, char*&, char*) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_float(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨wchar_t⟩::__widen_and_group_int(char*, char*, char*, wchar_t*, wchar_t*&, wchar_t*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_float(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::__num_put⟨char⟩::__widen_and_group_int(char*, char*, char*, char*, char*&, char*&, const std::__1::locale&) +
    • >>   std::__1::time_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_put__deallocating() +
    • >>   std::__1::time_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_put__deallocating() +
    • >>   std::__1::time_get⟨wchar_t, std::__1::istreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~time_get__deallocating() +
    • >>   std::__1::time_get⟨char, std::__1::istreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~time_get__deallocating() +
    • >>   std::__1::messages⟨wchar_t⟩::~messages__deallocating() +
    • >>   std::__1::messages⟨char⟩::~messages__deallocating() +
    • >>   std::__1::num_put⟨wchar_t, std::__1::ostreambuf_iterator⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩⟩::~num_put__deallocating() +
    • >>   std::__1::num_put⟨char, std::__1::ostreambuf_iterator⟨char, std::__1::char_traits⟨char⟩⟩⟩::~num_put__deallocating() +
    + +

    operator new[] (unsigned) (Thumb, 4 bytes, Stack size 0 bytes, new.cpp.o(.text._Znaj)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = operator new[] (unsigned) ⇒ operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   operator new(unsigned) +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::fully_connected::EvalFloat(TfLiteContext*, TfLiteNode*, TfLiteFusedActivation, const TfLiteEvalTensor*, const TfLiteEvalTensor*, const TfLiteEvalTensor*, TfLiteEvalTensor*) +
    • >>   tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::fully_connected::Eval(TfLiteContext*, TfLiteNode*) +
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    + +

    operator new(unsigned) (Thumb, 38 bytes, Stack size 8 bytes, new.cpp.o(.text._Znwj)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = operator new(unsigned) ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   malloc +
    • >>   std::get_new_handler() +
    +
    [Called By]
    • >>   operator new[] (unsigned) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const wchar_t*) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by_and_replace(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, const char*) +
    • >>   std::__1::vector⟨std::__1::locale::facet*, std::__1::__sso_allocator⟨std::__1::locale::facet*, (unsigned)28⟩⟩::__append(unsigned) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨wchar_t, std::__1::char_traits⟨wchar_t⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::ostreambuf_iterator⟨T1, T2⟩ std::__1::__pad_and_output⟨char, std::__1::char_traits⟨char⟩⟩(std::__1::ostreambuf_iterator⟨T1, T2⟩, const T1*, const T1*, const T1*, std::__1::ios_base&, T1) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩& std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__append_forward_unsafe⟨wchar_t*⟩(T1, T1) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩& std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__append_forward_unsafe⟨char*⟩(T1, T1) +
    • >>   std::__1::collate⟨wchar_t⟩::do_transform(const wchar_t*, const wchar_t*) const +
    • >>   std::__1::collate⟨char⟩::do_transform(const char*, const char*) const +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::basic_string(const std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩&) +
    • >>   std::__1::basic_string⟨wchar_t, std::__1::char_traits⟨wchar_t⟩, std::__1::allocator⟨wchar_t⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::basic_string(const std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩&) +
    • >>   std::__1::basic_string⟨char, std::__1::char_traits⟨char⟩, std::__1::allocator⟨char⟩⟩::__grow_by(unsigned, unsigned, unsigned, unsigned, unsigned, unsigned) +
    • >>   std::__1::numpunct⟨wchar_t⟩::do_falsename() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__c() const +
    + +

    __cxa_guard_acquire (Thumb, 92 bytes, Stack size 8 bytes, cxa_guard.cpp.o(.text.__cxa_guard_acquire)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = __cxa_guard_acquire ⇒ abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort_message +
    +
    [Called By]
    • >>   speech_init +
    • >>   std::__1::ios_base::Init::Init() +
    • >>   std::__1::locale::__global() +
    • >>   std::__1::locale::classic() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__X() const +
    + +

    __cxa_guard_release (Thumb, 8 bytes, Stack size 0 bytes, cxa_guard.cpp.o(.text.__cxa_guard_release)) +

    [Called By]

    • >>   speech_init +
    • >>   std::__1::ios_base::Init::Init() +
    • >>   std::__1::locale::__global() +
    • >>   std::__1::locale::classic() +
    • >>   std::__1::__cloc() +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨wchar_t⟩::__X() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__months() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__weeks() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__am_pm() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__x() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__r() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__c() const +
    • >>   std::__1::__time_get_c_storage⟨char⟩::__X() const +
    + +

    __dynamic_cast (Thumb, 168 bytes, Stack size 88 bytes, private_typeinfo.cpp.o(.text.__dynamic_cast)) +

    [Stack]

    • Max Depth = 92
    • Call Chain = __dynamic_cast ⇒ __aeabi_memclr4 +
    +
    [Calls]
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   __cxxabiv1::__class_type_info::can_catch(const __cxxabiv1::__shim_type_info*, void*&) const +
    + +

    _sys_close (Thumb, 4 bytes, Stack size 0 bytes, retarget.o(.text._sys_close)) +

    [Called By]

    • >>   _fclose_internal +
    + +

    _sys_exit (Thumb, 2 bytes, Stack size 0 bytes, retarget.o(.text._sys_exit)) +

    [Calls]

    • >>   _sys_exit +
    +
    [Called By]
    • >>   _sys_exit +
    • >>   abort +
    • >>   __rt_exit_exit +
    • >>   __sig_exit +
    + +

    _sys_flen (Thumb, 6 bytes, Stack size 0 bytes, retarget.o(.text._sys_flen)) +

    [Called By]

    • >>   _fseek +
    + +

    _sys_istty (Thumb, 4 bytes, Stack size 0 bytes, retarget.o(.text._sys_istty)) +

    [Called By]

    • >>   _fseek +
    + +

    _sys_open (Thumb, 4 bytes, Stack size 0 bytes, retarget.o(.text._sys_open)) +

    [Called By]

    • >>   freopen +
    + +

    _sys_seek (Thumb, 6 bytes, Stack size 0 bytes, retarget.o(.text._sys_seek)) +

    [Called By]

    • >>   _writebuf +
    + +

    _sys_write (Thumb, 4 bytes, Stack size 0 bytes, retarget.o(.text._sys_write)) +

    [Called By]

    • >>   _writebuf +
    + +

    _ttywrch (Thumb, 2 bytes, Stack size 0 bytes, retarget.o(.text._ttywrch)) +

    [Called By]

    • >>   __default_signal_display +
    + +

    abort_message (Thumb, 4 bytes, Stack size 0 bytes, abort_message.cpp.o(.text.abort_message)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = abort_message ⇒ abort ⇒ __rt_SIGABRT ⇒ __rt_SIGABRT_inner ⇒ __default_signal_display +
    +
    [Calls]
    • >>   abort +
    +
    [Called By]
    • >>   __cxa_guard_acquire +
    + +

    application_entry (Thumb, 80 bytes, Stack size 8 bytes, tflitemicro_speech_detection.o(.text.application_entry)) +

    [Stack]

    • Max Depth = 160 + Unknown Stack Size +
    • Call Chain = application_entry ⇒ osThreadCreate ⇒ tos_task_create_dyn ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   osThreadCreate +
    • >>   speech_init +
    • >>   puts +
    +
    [Address Reference Count : 1]
    • main.o(.rodata.os_thread_def_application_entry) +
    +

    arm_depthwise_conv_3x3_s8 (Thumb, 3112 bytes, Stack size 348 bytes, arm_depthwise_conv_3x3_s8.o(.text.arm_depthwise_conv_3x3_s8)) +

    [Stack]

    • Max Depth = 348
    • Call Chain = arm_depthwise_conv_3x3_s8 +
    +
    [Called By]
    • >>   arm_depthwise_conv_wrapper_s8 +
    + +

    arm_depthwise_conv_s8 (Thumb, 2926 bytes, Stack size 248 bytes, arm_depthwise_conv_s8.o(.text.arm_depthwise_conv_s8)) +

    [Stack]

    • Max Depth = 248
    • Call Chain = arm_depthwise_conv_s8 +
    +
    [Called By]
    • >>   arm_depthwise_conv_wrapper_s8 +
    + +

    arm_depthwise_conv_s8_opt (Thumb, 2668 bytes, Stack size 280 bytes, arm_depthwise_conv_s8_opt.o(.text.arm_depthwise_conv_s8_opt)) +

    [Stack]

    • Max Depth = 308
    • Call Chain = arm_depthwise_conv_s8_opt ⇒ arm_q7_to_q15_with_offset +
    +
    [Calls]
    • >>   __aeabi_memclr +
    • >>   arm_q7_to_q15_with_offset +
    +
    [Called By]
    • >>   arm_depthwise_conv_wrapper_s8 +
    + +

    arm_depthwise_conv_s8_opt_get_buffer_size (Thumb, 14 bytes, Stack size 0 bytes, arm_depthwise_conv_s8_opt.o(.text.arm_depthwise_conv_s8_opt_get_buffer_size)) +

    [Called By]

    • >>   arm_depthwise_conv_wrapper_s8_get_buffer_size +
    + +

    arm_depthwise_conv_u8_basic_ver1 (Thumb, 4146 bytes, Stack size 320 bytes, arm_depthwise_conv_u8_basic_ver1.o(.text.arm_depthwise_conv_u8_basic_ver1)) +

    [Stack]

    • Max Depth = 320
    • Call Chain = arm_depthwise_conv_u8_basic_ver1 +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    arm_depthwise_conv_wrapper_s8 (Thumb, 70 bytes, Stack size 8 bytes, arm_depthwise_conv_wrapper_s8.o(.text.arm_depthwise_conv_wrapper_s8)) +

    [Stack]

    • Max Depth = 356
    • Call Chain = arm_depthwise_conv_wrapper_s8 ⇒ arm_depthwise_conv_3x3_s8 +
    +
    [Calls]
    • >>   arm_depthwise_conv_s8_opt +
    • >>   arm_depthwise_conv_s8 +
    • >>   arm_depthwise_conv_3x3_s8 +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    arm_depthwise_conv_wrapper_s8_get_buffer_size (Thumb, 20 bytes, Stack size 0 bytes, arm_depthwise_conv_wrapper_s8.o(.text.arm_depthwise_conv_wrapper_s8_get_buffer_size)) +

    [Calls]

    • >>   arm_depthwise_conv_s8_opt_get_buffer_size +
    +
    [Called By]
    • >>   tflite::ops::micro::depthwise_conv::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    arm_fully_connected_s8 (Thumb, 92 bytes, Stack size 72 bytes, arm_fully_connected_s8.o(.text.arm_fully_connected_s8)) +

    [Stack]

    • Max Depth = 200
    • Call Chain = arm_fully_connected_s8 ⇒ arm_nn_vec_mat_mult_t_s8 +
    +
    [Calls]
    • >>   arm_nn_vec_mat_mult_t_s8 +
    +
    [Called By]
    • >>   tflite::ops::micro::fully_connected::Eval(TfLiteContext*, TfLiteNode*) +
    + +

    arm_fully_connected_s8_get_buffer_size (Thumb, 4 bytes, Stack size 0 bytes, arm_fully_connected_s8.o(.text.arm_fully_connected_s8_get_buffer_size)) +

    [Called By]

    • >>   tflite::ops::micro::fully_connected::Prepare(TfLiteContext*, TfLiteNode*) +
    + +

    arm_nn_vec_mat_mult_t_s8 (Thumb, 1960 bytes, Stack size 128 bytes, arm_nn_vec_mat_mult_t_s8.o(.text.arm_nn_vec_mat_mult_t_s8)) +

    [Stack]

    • Max Depth = 128
    • Call Chain = arm_nn_vec_mat_mult_t_s8 +
    +
    [Called By]
    • >>   arm_fully_connected_s8 +
    + +

    arm_q7_to_q15_with_offset (Thumb, 326 bytes, Stack size 28 bytes, arm_q7_to_q15_with_offset.o(.text.arm_q7_to_q15_with_offset)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = arm_q7_to_q15_with_offset +
    +
    [Called By]
    • >>   arm_depthwise_conv_s8_opt +
    + +

    arm_softmax_s8 (Thumb, 2552 bytes, Stack size 88 bytes, arm_softmax_s8.o(.text.arm_softmax_s8)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = arm_softmax_s8 +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxQuantized(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    + +

    board_init (Thumb, 148 bytes, Stack size 248 bytes, mcu_init.o(.text.board_init)) +

    [Stack]

    • Max Depth = 404
    • Call Chain = board_init ⇒ MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   MX_LPUART1_UART_Init +
    • >>   MX_GPIO_Init +
    • >>   MX_TIM4_Init +
    • >>   MX_SPI1_Init +
    • >>   MX_I2C1_Init +
    • >>   MX_DMA_Init +
    • >>   MX_DCMI_Init +
    • >>   HAL_RCC_OscConfig +
    • >>   HAL_RCC_ClockConfig +
    • >>   HAL_RCCEx_PeriphCLKConfig +
    • >>   HAL_PWREx_ControlVoltageScaling +
    • >>   HAL_Init +
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   main +
    + +

    cpu_context_switch (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.cpu_context_switch)) +

    [Calls]

    • >>   port_context_switch +
    +
    [Called By]
    • >>   knl_sched +
    • >>   tos_knl_sched_unlock +
    + +

    cpu_init (Thumb, 58 bytes, Stack size 8 bytes, tos_cpu.o(.text.cpu_init)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = cpu_init ⇒ __aeabi_uldivmod +
    +
    [Calls]
    • >>   port_systick_priority_set +
    • >>   port_systick_config +
    • >>   __aeabi_uldivmod +
    +
    [Called By]
    • >>   tos_knl_init +
    + +

    cpu_irq_context_switch (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.cpu_irq_context_switch)) +

    [Calls]

    • >>   port_irq_context_switch +
    +
    [Called By]
    • >>   tos_knl_irq_leave +
    + +

    cpu_sched_start (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.cpu_sched_start)) +

    [Calls]

    • >>   port_sched_start +
    +
    [Called By]
    • >>   tos_knl_start +
    + +

    cpu_task_stk_init (Thumb, 132 bytes, Stack size 24 bytes, tos_cpu.o(.text.cpu_task_stk_init)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = cpu_task_stk_init +
    +
    [Calls]
    • >>   __aeabi_memset +
    +
    [Called By]
    • >>   tos_task_create +
    + +

    ferror (Thumb, 6 bytes, Stack size 0 bytes, retarget.o(.text.ferror)) +

    [Called By]

    • >>   _printf_char_file +
    + +

    fgetc (Thumb, 40 bytes, Stack size 16 bytes, mcu_init.o(.text.fgetc)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = fgetc ⇒ HAL_UART_Receive +
    +
    [Calls]
    • >>   HAL_UART_Receive +
    +
    [Called By]
    • >>   getc +
    + +

    fputc (Thumb, 60 bytes, Stack size 16 bytes, mcu_init.o(.text.fputc)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = fputc ⇒ HAL_UART_Transmit +
    +
    [Calls]
    • >>   HAL_UART_Transmit +
    +
    [Called By]
    • >>   fwrite +
    • >>   puts +
    +
    [Address Reference Count : 1]
    • _printf_char_file.o(.text) +
    +

    knl_is_idle (Thumb, 18 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_idle)) +

    [Called By]

    • >>   tos_task_create +
    • >>   task_do_destroy +
    + +

    knl_is_inirq (Thumb, 18 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_inirq)) +

    [Called By]

    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   tos_task_destroy +
    • >>   tos_task_create_dyn +
    + +

    knl_is_sched_locked (Thumb, 18 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_sched_locked)) +

    [Called By]

    • >>   tos_task_delay +
    • >>   tos_task_destroy +
    + +

    knl_is_self (Thumb, 20 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_is_self)) +

    [Called By]

    • >>   tos_task_prio_change +
    • >>   tos_task_destroy +
    + +

    knl_sched (Thumb, 92 bytes, Stack size 8 bytes, tos_sys.o(.text.knl_sched)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = knl_sched +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_context_switch +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   task_do_destroy +
    + +

    main (Thumb, 68 bytes, Stack size 8 bytes, main.o(.text.main)) +

    [Stack]

    • Max Depth = 412 + Unknown Stack Size +
    • Call Chain = main ⇒ board_init ⇒ MX_DCMI_Init ⇒ HAL_DCMI_Init ⇒ HAL_DCMI_MspInit ⇒ HAL_GPIO_Init +
    +
    [Calls]
    • >>   osThreadCreate +
    • >>   osKernelStart +
    • >>   osKernelInitialize +
    • >>   board_init +
    • >>   puts +
    +
    [Called By]
    • >>   __rt_entry_main +
    + +

    mmheap_init_with_pool (Thumb, 22 bytes, Stack size 16 bytes, tos_mmheap.o(.text.mmheap_init_with_pool)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = mmheap_init_with_pool ⇒ tos_mmheap_pool_add +
    +
    [Calls]
    • >>   tos_mmheap_pool_add +
    • >>   mmheap_ctl_init +
    +
    [Called By]
    • >>   tos_knl_init +
    + +

    mutex_release (Thumb, 84 bytes, Stack size 16 bytes, tos_mutex.o(.text.mutex_release)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   pend_wakeup_all +
    • >>   tos_task_prio_change +
    +
    [Called By]
    • >>   task_do_destroy +
    + +

    osDelay (Thumb, 32 bytes, Stack size 8 bytes, cmsis_os.o(.text.osDelay)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = osDelay ⇒ tos_task_delay ⇒ tick_list_add +
    +
    [Calls]
    • >>   tos_task_delay +
    • >>   tos_millisec2tick +
    +
    [Called By]
    • >>   task2 +
    • >>   task1 +
    + +

    osKernelInitialize (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(.text.osKernelInitialize)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = osKernelInitialize ⇒ tos_knl_init ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   tos_knl_init +
    +
    [Called By]
    • >>   main +
    + +

    osKernelStart (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(.text.osKernelStart)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = osKernelStart ⇒ tos_knl_start +
    +
    [Calls]
    • >>   tos_knl_start +
    +
    [Called By]
    • >>   main +
    + +

    osThreadCreate (Thumb, 126 bytes, Stack size 40 bytes, cmsis_os.o(.text.osThreadCreate)) +

    [Stack]

    • Max Depth = 152 + Unknown Stack Size +
    • Call Chain = osThreadCreate ⇒ tos_task_create_dyn ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   tos_task_create +
    • >>   tos_task_create_dyn +
    +
    [Called By]
    • >>   main +
    • >>   application_entry +
    + +

    pend_highest_pending_prio_get (Thumb, 14 bytes, Stack size 0 bytes, tos_pend.o(.text.pend_highest_pending_prio_get)) +

    [Called By]

    • >>   tos_task_prio_change +
    + +

    pend_list_adjust (Thumb, 114 bytes, Stack size 8 bytes, tos_pend.o(.text.pend_list_adjust)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = pend_list_adjust +
    +
    [Called By]
    • >>   tos_task_prio_change +
    + +

    pend_list_remove (Thumb, 26 bytes, Stack size 0 bytes, tos_pend.o(.text.pend_list_remove)) +

    [Called By]

    • >>   task_do_destroy +
    + +

    pend_task_wakeup (Thumb, 66 bytes, Stack size 8 bytes, tos_pend.o(.text.pend_task_wakeup)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = pend_task_wakeup ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tick_list_remove +
    • >>   readyqueue_add +
    +
    [Called By]
    • >>   tos_tick_handler +
    + +

    pend_wakeup_all (Thumb, 112 bytes, Stack size 32 bytes, tos_pend.o(.text.pend_wakeup_all)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tick_list_remove +
    • >>   readyqueue_add +
    +
    [Called By]
    • >>   mutex_release +
    + +

    port_systick_config (Thumb, 42 bytes, Stack size 0 bytes, port_c.o(.text.port_systick_config)) +

    [Called By]

    • >>   cpu_init +
    + +

    port_systick_priority_set (Thumb, 14 bytes, Stack size 0 bytes, port_c.o(.text.port_systick_priority_set)) +

    [Called By]

    • >>   cpu_init +
    + +

    readyqueue_add (Thumb, 152 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_add)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = readyqueue_add +
    +
    [Called By]
    • >>   pend_wakeup_all +
    • >>   pend_task_wakeup +
    + +

    readyqueue_add_head (Thumb, 78 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_add_head)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = readyqueue_add_head +
    +
    [Called By]
    • >>   tos_task_prio_change +
    + +

    readyqueue_add_tail (Thumb, 80 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_add_tail)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = readyqueue_add_tail +
    +
    [Called By]
    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    + +

    readyqueue_highest_ready_task_get (Thumb, 20 bytes, Stack size 0 bytes, tos_sched.o(.text.readyqueue_highest_ready_task_get)) +

    [Called By]

    • >>   tos_knl_irq_leave +
    • >>   knl_sched +
    • >>   tos_knl_start +
    • >>   tos_knl_sched_unlock +
    + +

    readyqueue_init (Thumb, 96 bytes, Stack size 0 bytes, tos_sched.o(.text.readyqueue_init)) +

    [Called By]

    • >>   tos_knl_init +
    + +

    readyqueue_remove (Thumb, 160 bytes, Stack size 16 bytes, tos_sched.o(.text.readyqueue_remove)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = readyqueue_remove +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_task_delay +
    • >>   tos_task_prio_change +
    • >>   task_do_destroy +
    + +

    speech_init (Thumb, 260 bytes, Stack size 32 bytes, micro_speech.o(.text.speech_init)) +

    [Stack]

    • Max Depth = 144 + Unknown Stack Size +
    • Call Chain = speech_init ⇒ tflite::MicroInterpreter::AllocateTensors() ⇒ tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   __cxa_guard_release +
    • >>   __cxa_guard_acquire +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddDepthwiseConv2D() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddFullyConnected() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddSoftmax() +
    • >>   tflite::MicroMutableOpResolver⟨(unsigned)4⟩::AddReshape() +
    • >>   tflite::MicroInterpreter::MicroInterpreter(const tflite::Model*, const tflite::MicroOpResolver&, unsigned char*, unsigned, tflite::ErrorReporter*, tflite::Profiler*) +
    • >>   tflite::MicroInterpreter::input(unsigned) +
    • >>   tflite::MicroInterpreter::AllocateTensors() +
    • >>   __cxa_atexit +
    +
    [Called By]
    • >>   application_entry +
    + +

    speech_run (Thumb, 244 bytes, Stack size 24 bytes, micro_speech.o(.text.speech_run)) +

    [Stack]

    • Max Depth = 168 + Unknown Stack Size +
    • Call Chain = speech_run ⇒ tflite::MicroInterpreter::Invoke() ⇒ tflite::MicroInterpreter::AllocateTensors() ⇒ tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   tflite::MicroInterpreter::output(unsigned) +
    • >>   tflite::MicroInterpreter::Invoke() +
    • >>   tflite::ErrorReporter::Report(const char*, ...) +
    • >>   __2printf +
    +
    [Called By]
    • >>   task2 +
    + +

    task1 (Thumb, 32 bytes, Stack size 0 bytes, tflitemicro_speech_detection.o(.text.task1)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = task1 ⇒ osDelay ⇒ tos_task_delay ⇒ tick_list_add +
    +
    [Calls]
    • >>   osDelay +
    • >>   puts +
    +
    [Address Reference Count : 1]
    • tflitemicro_speech_detection.o(.rodata.os_thread_def_task1) +
    +

    task2 (Thumb, 36 bytes, Stack size 0 bytes, tflitemicro_speech_detection.o(.text.task2)) +

    [Stack]

    • Max Depth = 168 + Unknown Stack Size +
    • Call Chain = task2 ⇒ speech_run ⇒ tflite::MicroInterpreter::Invoke() ⇒ tflite::MicroInterpreter::AllocateTensors() ⇒ tflite::MicroInterpreter::ResetVariableTensors() ⇒ tflite::TfLiteEvalTensorByteLength(const TfLiteEvalTensor*, unsigned*) +
    +
    [Calls]
    • >>   osDelay +
    • >>   speech_run +
    • >>   puts +
    +
    [Address Reference Count : 1]
    • tflitemicro_speech_detection.o(.rodata.os_thread_def_task2) +
    +

    task_free_all (Thumb, 68 bytes, Stack size 24 bytes, tos_task.o(.text.task_free_all)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = task_free_all ⇒ tos_mmheap_free ⇒ blk_merge_next +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   tos_mmheap_free +
    +
    [Called By]
    • >>   knl_idle_entry +
    + +

    tick_list_add (Thumb, 186 bytes, Stack size 32 bytes, tos_tick.o(.text.tick_list_add)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = tick_list_add +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   tos_task_delay +
    + +

    tick_list_remove (Thumb, 112 bytes, Stack size 16 bytes, tos_tick.o(.text.tick_list_remove)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = tick_list_remove +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   pend_wakeup_all +
    • >>   pend_task_wakeup +
    • >>   task_do_destroy +
    + +

    timer_init (Thumb, 4 bytes, Stack size 0 bytes, tos_timer.o(.text.timer_init)) +

    [Called By]

    • >>   tos_knl_init +
    + +

    timer_update (Thumb, 340 bytes, Stack size 40 bytes, tos_timer.o(.text.timer_update)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = timer_update ⇒ tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   tos_knl_sched_unlock +
    • >>   tos_knl_sched_lock +
    +
    [Called By]
    • >>   tos_tick_handler +
    + +

    tos_cpu_clz (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.tos_cpu_clz)) +

    [Calls]

    • >>   port_clz +
    +
    [Called By]
    • >>   tos_mmheap_free +
    • >>   tos_mmheap_pool_add +
    • >>   blk_prepare_used +
    • >>   blk_merge_next +
    • >>   blk_locate_free +
    • >>   readyqueue_remove +
    + +

    tos_cpu_cpsr_restore (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.tos_cpu_cpsr_restore)) +

    [Calls]

    • >>   port_cpsr_restore +
    +
    [Called By]
    • >>   tos_tick_handler +
    • >>   tos_knl_irq_leave +
    • >>   tos_task_delay +
    • >>   knl_sched +
    • >>   tick_list_remove +
    • >>   tick_list_add +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   tos_knl_sched_unlock +
    • >>   task_free_all +
    • >>   tos_knl_sched_lock +
    • >>   timer_update +
    • >>   task_do_destroy +
    + +

    tos_cpu_cpsr_save (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(.text.tos_cpu_cpsr_save)) +

    [Calls]

    • >>   port_cpsr_save +
    +
    [Called By]
    • >>   tos_tick_handler +
    • >>   tos_knl_irq_leave +
    • >>   tos_task_delay +
    • >>   knl_sched +
    • >>   tick_list_remove +
    • >>   tick_list_add +
    • >>   tos_task_prio_change +
    • >>   tos_task_create +
    • >>   tos_knl_sched_unlock +
    • >>   task_free_all +
    • >>   tos_knl_sched_lock +
    • >>   timer_update +
    • >>   task_do_destroy +
    + +

    tos_knl_init (Thumb, 112 bytes, Stack size 24 bytes, tos_sys.o(.text.tos_knl_init)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = tos_knl_init ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   cpu_init +
    • >>   mmheap_init_with_pool +
    • >>   tos_task_create +
    • >>   timer_init +
    • >>   readyqueue_init +
    +
    [Called By]
    • >>   osKernelInitialize +
    + +

    tos_knl_irq_enter (Thumb, 36 bytes, Stack size 0 bytes, tos_sys.o(.text.tos_knl_irq_enter)) +

    [Called By]

    • >>   SysTick_Handler +
    • >>   LPUART1_IRQHandler +
    + +

    tos_knl_irq_leave (Thumb, 108 bytes, Stack size 8 bytes, tos_sys.o(.text.tos_knl_irq_leave)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_irq_leave +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_irq_context_switch +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   SysTick_Handler +
    • >>   LPUART1_IRQHandler +
    + +

    tos_knl_is_running (Thumb, 20 bytes, Stack size 0 bytes, tos_sys.o(.text.tos_knl_is_running)) +

    [Called By]

    • >>   tos_tick_handler +
    • >>   SysTick_Handler +
    • >>   tos_task_create +
    + +

    tos_knl_sched_lock (Thumb, 78 bytes, Stack size 8 bytes, tos_sys.o(.text.tos_knl_sched_lock)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_sched_lock +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    +
    [Called By]
    • >>   timer_update +
    • >>   tos_task_destroy +
    + +

    tos_knl_sched_unlock (Thumb, 152 bytes, Stack size 16 bytes, tos_sys.o(.text.tos_knl_sched_unlock)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_context_switch +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   timer_update +
    • >>   tos_task_destroy +
    + +

    tos_knl_start (Thumb, 58 bytes, Stack size 8 bytes, tos_sys.o(.text.tos_knl_start)) +

    [Stack]

    • Max Depth = 8 + Unknown Stack Size +
    • Call Chain = tos_knl_start +
    +
    [Calls]
    • >>   cpu_sched_start +
    • >>   readyqueue_highest_ready_task_get +
    +
    [Called By]
    • >>   osKernelStart +
    + +

    tos_millisec2tick (Thumb, 4 bytes, Stack size 0 bytes, tos_time.o(.text.tos_millisec2tick)) +

    [Called By]

    • >>   osDelay +
    + +

    tos_mmheap_alloc (Thumb, 58 bytes, Stack size 8 bytes, tos_mmheap.o(.text.tos_mmheap_alloc)) +

    [Stack]

    • Max Depth = 32 + Unknown Stack Size +
    • Call Chain = tos_mmheap_alloc ⇒ blk_prepare_used +
    +
    [Calls]
    • >>   blk_prepare_used +
    • >>   blk_locate_free +
    +
    [Called By]
    • >>   tos_task_create_dyn +
    + +

    tos_mmheap_calloc (Thumb, 72 bytes, Stack size 16 bytes, tos_mmheap.o(.text.tos_mmheap_calloc)) +

    [Stack]

    • Max Depth = 40 + Unknown Stack Size +
    • Call Chain = tos_mmheap_calloc ⇒ blk_prepare_used +
    +
    [Calls]
    • >>   blk_prepare_used +
    • >>   blk_locate_free +
    • >>   __aeabi_memclr +
    +
    [Called By]
    • >>   tos_task_create_dyn +
    + +

    tos_mmheap_free (Thumb, 298 bytes, Stack size 24 bytes, tos_mmheap.o(.text.tos_mmheap_free)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = tos_mmheap_free ⇒ blk_merge_next +
    +
    [Calls]
    • >>   tos_cpu_clz +
    • >>   blk_merge_next +
    +
    [Called By]
    • >>   task_free_all +
    • >>   tos_task_destroy +
    • >>   tos_task_create_dyn +
    + +

    tos_mmheap_pool_add (Thumb, 288 bytes, Stack size 24 bytes, tos_mmheap.o(.text.tos_mmheap_pool_add)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = tos_mmheap_pool_add +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   mmheap_init_with_pool +
    + +

    tos_task_create (Thumb, 306 bytes, Stack size 40 bytes, tos_task.o(.text.tos_task_create)) +

    [Stack]

    • Max Depth = 64 + Unknown Stack Size +
    • Call Chain = tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   tos_knl_is_running +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   cpu_task_stk_init +
    • >>   knl_sched +
    • >>   knl_is_inirq +
    • >>   knl_is_idle +
    • >>   readyqueue_add_tail +
    • >>   strncpy +
    +
    [Called By]
    • >>   osThreadCreate +
    • >>   tos_knl_init +
    • >>   tos_task_create_dyn +
    + +

    tos_task_create_dyn (Thumb, 192 bytes, Stack size 48 bytes, tos_task.o(.text.tos_task_create_dyn)) +

    [Stack]

    • Max Depth = 112 + Unknown Stack Size +
    • Call Chain = tos_task_create_dyn ⇒ tos_task_create ⇒ cpu_task_stk_init +
    +
    [Calls]
    • >>   knl_is_inirq +
    • >>   tos_mmheap_free +
    • >>   tos_mmheap_alloc +
    • >>   tos_mmheap_calloc +
    • >>   tos_task_create +
    +
    [Called By]
    • >>   osThreadCreate +
    + +

    tos_task_delay (Thumb, 144 bytes, Stack size 24 bytes, tos_task.o(.text.tos_task_delay)) +

    [Stack]

    • Max Depth = 56 + Unknown Stack Size +
    • Call Chain = tos_task_delay ⇒ tick_list_add +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   knl_sched +
    • >>   knl_is_sched_locked +
    • >>   knl_is_inirq +
    • >>   tick_list_add +
    • >>   readyqueue_remove +
    • >>   readyqueue_add_tail +
    +
    [Called By]
    • >>   osDelay +
    + +

    tos_task_destroy (Thumb, 176 bytes, Stack size 16 bytes, tos_task.o(.text.tos_task_destroy)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = tos_task_destroy ⇒ task_do_destroy ⇒ mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   knl_is_sched_locked +
    • >>   knl_is_inirq +
    • >>   tos_mmheap_free +
    • >>   knl_is_self +
    • >>   tos_knl_sched_unlock +
    • >>   tos_knl_sched_lock +
    • >>   task_do_destroy +
    +
    [Called By]
    • >>   task_exit +
    + +

    tos_task_prio_change (Thumb, 226 bytes, Stack size 32 bytes, tos_task.o(.text.tos_task_prio_change)) +

    [Stack]

    • Max Depth = 48 + Unknown Stack Size +
    • Call Chain = tos_task_prio_change ⇒ readyqueue_remove +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   knl_sched +
    • >>   knl_is_inirq +
    • >>   readyqueue_remove +
    • >>   pend_list_adjust +
    • >>   pend_highest_pending_prio_get +
    • >>   knl_is_self +
    • >>   readyqueue_add_tail +
    • >>   readyqueue_add_head +
    +
    [Called By]
    • >>   mutex_release +
    + +

    tos_tick_handler (Thumb, 124 bytes, Stack size 16 bytes, tos_tick.o(.text.tos_tick_handler)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size +
    • Call Chain = tos_tick_handler ⇒ timer_update ⇒ tos_knl_sched_unlock +
    +
    [Calls]
    • >>   tos_knl_is_running +
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   pend_task_wakeup +
    • >>   timer_update +
    +
    [Called By]
    • >>   SysTick_Handler +
    + +

    _btod_d2e (Thumb, 62 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e)) +

    [Calls]

    • >>   _d2e_norm_op1 +
    +
    [Called By]
    • >>   _fp_digits +
    + +

    _d2e_denorm_low (Thumb, 70 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_denorm_low)) +

    [Called By]

    • >>   _d2e_norm_op1 +
    + +

    _d2e_norm_op1 (Thumb, 96 bytes, Stack size 0 bytes, btod.o(CL$$btod_d2e_norm_op1)) +

    [Calls]

    • >>   _d2e_denorm_low +
    +
    [Called By]
    • >>   _btod_d2e +
    + +

    __btod_div_common (Thumb, 696 bytes, Stack size 24 bytes, btod.o(CL$$btod_div_common)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __btod_div_common +
    +
    [Called By]
    • >>   _btod_edivd +
    • >>   _btod_ediv +
    + +

    _e2d (Thumb, 122 bytes, Stack size 32 bytes, btod.o(CL$$btod_e2d)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = _e2d ⇒ _e2e +
    +
    [Calls]
    • >>   _e2e +
    +
    [Called By]
    • >>   _btod_emuld +
    • >>   _btod_edivd +
    + +

    _e2e (Thumb, 220 bytes, Stack size 24 bytes, btod.o(CL$$btod_e2e)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = _e2e +
    +
    [Called By]
    • >>   _btod_emul +
    • >>   _btod_ediv +
    • >>   _e2d +
    + +

    _btod_ediv (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_ediv)) +

    [Stack]

    • Max Depth = 52
    • Call Chain = _btod_ediv ⇒ _e2e +
    +
    [Calls]
    • >>   _e2e +
    • >>   __btod_div_common +
    +
    [Called By]
    • >>   _btod_etento +
    • >>   _fp_digits +
    + +

    _btod_edivd (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_edivd)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = _btod_edivd ⇒ _e2d ⇒ _e2e +
    +
    [Calls]
    • >>   _e2d +
    • >>   __btod_div_common +
    +
    [Called By]
    • >>   _fp_value +
    + +

    _btod_emul (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_emul)) +

    [Stack]

    • Max Depth = 52
    • Call Chain = _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __btod_mult_common +
    • >>   _e2e +
    +
    [Called By]
    • >>   _btod_etento +
    • >>   _fp_digits +
    + +

    _btod_emuld (Thumb, 42 bytes, Stack size 28 bytes, btod.o(CL$$btod_emuld)) +

    [Stack]

    • Max Depth = 84
    • Call Chain = _btod_emuld ⇒ _e2d ⇒ _e2e +
    +
    [Calls]
    • >>   __btod_mult_common +
    • >>   _e2d +
    +
    [Called By]
    • >>   _fp_value +
    + +

    __btod_mult_common (Thumb, 580 bytes, Stack size 16 bytes, btod.o(CL$$btod_mult_common)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __btod_mult_common +
    +
    [Called By]
    • >>   _btod_emuld +
    • >>   _btod_emul +
    + +

    __ARM_fpclassify (Thumb, 48 bytes, Stack size 8 bytes, fpclassify.o(i.__ARM_fpclassify)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __ARM_fpclassify +
    +
    [Called By]
    • >>   _printf_fp_hex_real +
    • >>   _printf_fp_dec_real +
    + +

    __ARM_fpclassifyf (Thumb, 38 bytes, Stack size 0 bytes, fpclassifyf.o(i.__ARM_fpclassifyf)) +

    [Called By]

    • >>   __hardfp_expf +
    + +

    __hardfp___mathlib_tofloat (Thumb, 232 bytes, Stack size 32 bytes, narrow.o(i.__hardfp___mathlib_tofloat)) +

    [Stack]

    • Max Depth = 80
    • Call Chain = __hardfp___mathlib_tofloat ⇒ frexp ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_cdrcmple +
    • >>   __aeabi_cdcmpeq +
    • >>   __set_errno +
    • >>   frexp +
    • >>   __aeabi_d2f +
    +
    [Called By]
    • >>   __mathlib_narrow +
    + +

    __hardfp_expf (Thumb, 430 bytes, Stack size 16 bytes, expf.o(i.__hardfp_expf)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = __hardfp_expf ⇒ __set_errno +
    +
    [Calls]
    • >>   __set_errno +
    • >>   __mathlib_flt_underflow +
    • >>   __mathlib_flt_overflow +
    • >>   __mathlib_flt_infnan +
    • >>   __ARM_fpclassifyf +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    + +

    __mathlib_expf (Thumb, 0 bytes, Stack size 16 bytes, expf.o(i.__hardfp_expf), UNUSED) + +

    __hardfp_floor (Thumb, 252 bytes, Stack size 40 bytes, floor.o(i.__hardfp_floor)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = __hardfp_floor ⇒ __aeabi_cdrcmple +
    +
    [Calls]
    • >>   __aeabi_cdrcmple +
    • >>   __aeabi_drsub +
    • >>   __aeabi_dadd +
    +
    [Called By]
    • >>   tflite::CalculateInputRadius(int, int, int) +
    + +

    __hardfp_frexp (Thumb, 116 bytes, Stack size 24 bytes, frexp.o(i.__hardfp_frexp)) +

    [Stack]

    • Max Depth = 56
    • Call Chain = __hardfp_frexp ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_dmul +
    +
    [Called By]
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    + +

    __hardfp_ldexp (Thumb, 200 bytes, Stack size 48 bytes, ldexp.o(i.__hardfp_ldexp)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = __hardfp_ldexp ⇒ __mathlib_dbl_underflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_cdcmpeq +
    • >>   __set_errno +
    • >>   __mathlib_dbl_underflow +
    • >>   __mathlib_dbl_overflow +
    • >>   __ARM_scalbn +
    +
    [Called By]
    • >>   __support_ldexp +
    + +

    __hardfp_round (Thumb, 194 bytes, Stack size 64 bytes, round.o(i.__hardfp_round)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = __hardfp_round ⇒ _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   _drnd +
    • >>   __aeabi_cdrcmple +
    • >>   __aeabi_cdcmple +
    • >>   __aeabi_dsub +
    • >>   __aeabi_dadd +
    +
    [Called By]
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    + +

    __hardfp_roundf (Thumb, 154 bytes, Stack size 16 bytes, roundf.o(i.__hardfp_roundf)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __hardfp_roundf ⇒ _frnd ⇒ __fpl_fnaninf +
    +
    [Calls]
    • >>   _frnd +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::CalculateActivationRangeQuantized(TfLiteContext*, TfLiteFusedActivation, TfLiteTensor*, int*, int*) +
    + +

    __mathlib_dbl_overflow (Thumb, 24 bytes, Stack size 8 bytes, dunder.o(i.__mathlib_dbl_overflow)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = __mathlib_dbl_overflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_dmul +
    +
    [Called By]
    • >>   __hardfp_ldexp +
    + +

    __mathlib_dbl_underflow (Thumb, 24 bytes, Stack size 8 bytes, dunder.o(i.__mathlib_dbl_underflow)) +

    [Stack]

    • Max Depth = 40
    • Call Chain = __mathlib_dbl_underflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_dmul +
    +
    [Called By]
    • >>   __hardfp_ldexp +
    + +

    __mathlib_flt_infnan (Thumb, 6 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_infnan)) +

    [Called By]

    • >>   __hardfp_expf +
    + +

    __mathlib_flt_overflow (Thumb, 10 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_overflow)) +

    [Called By]

    • >>   __hardfp_expf +
    + +

    __mathlib_flt_underflow (Thumb, 10 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_underflow)) +

    [Called By]

    • >>   __hardfp_expf +
    + +

    __mathlib_narrow (Thumb, 18 bytes, Stack size 8 bytes, narrow.o(i.__mathlib_narrow)) +

    [Stack]

    • Max Depth = 88
    • Call Chain = __mathlib_narrow ⇒ __hardfp___mathlib_tofloat ⇒ frexp ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __hardfp___mathlib_tofloat +
    +
    [Called By]
    • >>   _scanf_really_real +
    • >>   _scanf_really_hex_real +
    + +

    __support_ldexp (Thumb, 20 bytes, Stack size 8 bytes, ldexp.o(i.__support_ldexp)) +

    [Stack]

    • Max Depth = 96
    • Call Chain = __support_ldexp ⇒ __hardfp_ldexp ⇒ __mathlib_dbl_underflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __hardfp_ldexp +
    +
    [Called By]
    • >>   _scanf_really_hex_real +
    + +

    _is_digit (Thumb, 14 bytes, Stack size 0 bytes, __printf_wp.o(i._is_digit)) +

    [Called By]

    • >>   __printf +
    • >>   _scanf_really_real +
    + +

    frexp (Thumb, 118 bytes, Stack size 16 bytes, frexp.o(i.frexp)) +

    [Stack]

    • Max Depth = 48
    • Call Chain = frexp ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   __aeabi_dmul +
    +
    [Called By]
    • >>   __hardfp___mathlib_tofloat +
    + +

    strtod (Thumb, 36 bytes, Stack size 16 bytes, strtod.o(i.strtod)) +

    [Stack]

    • Max Depth = 460
    • Call Chain = strtod ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __strtod_int +
    +
    [Called By]
    • >>   T1 std::__1::__num_get_float⟨double⟩(const char*, const char*, unsigned&) +
    + +

    strtof (Thumb, 24 bytes, Stack size 8 bytes, strtof.o(i.strtof)) +

    [Stack]

    • Max Depth = 452
    • Call Chain = strtof ⇒ __strtof_int ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __strtof_int +
    +
    [Called By]
    • >>   T1 std::__1::__num_get_float⟨float⟩(const char*, const char*, unsigned&) +
    + +

    strtold (Thumb, 36 bytes, Stack size 16 bytes, strtold.o(i.strtold)) +

    [Stack]

    • Max Depth = 460
    • Call Chain = strtold ⇒ __strtod_int ⇒ _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __strtod_int +
    +
    [Called By]
    • >>   T1 std::__1::__num_get_float⟨long double⟩(const char*, const char*, unsigned&) +
    + +

    _get_lc_ctype (Thumb, 44 bytes, Stack size 8 bytes, lc_ctype_c.o(locale$$code)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _get_lc_ctype ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Called By]
    • >>   __rt_lib_init_lc_ctype_2 +
    +
    [Address Reference Count : 1]
    • rt_ctype_table.o(.text) +
    +

    _get_lc_time (Thumb, 44 bytes, Stack size 8 bytes, lc_time_c.o(locale$$code)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _get_lc_time ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Called By]
    • >>   __rt_lib_init_lc_time_2 +
    + +

    _get_lc_numeric (Thumb, 44 bytes, Stack size 8 bytes, lc_numeric_c.o(locale$$code)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _get_lc_numeric ⇒ strcmp +
    +
    [Calls]
    • >>   strcmp +
    +
    [Called By]
    • >>   __rt_lib_init_lc_numeric_2 +
    + +

    __aeabi_d2f (Thumb, 0 bytes, Stack size 32 bytes, d2f.o(x$fpl$d2f)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_d2f +
    +
    [Called By]
    • >>   tflite::ops::micro::activations::SoftmaxFloat(const TfLiteEvalTensor*, TfLiteEvalTensor*, const tflite::SoftmaxParams&) +
    • >>   MicroVsnprintf +
    • >>   __hardfp___mathlib_tofloat +
    + +

    _d2f (Thumb, 98 bytes, Stack size 32 bytes, d2f.o(x$fpl$d2f), UNUSED) +

    [Calls]

    • >>   __fpl_fretinf +
    • >>   __fpl_dnaninf +
    + +

    __aeabi_dadd (Thumb, 0 bytes, Stack size 16 bytes, daddsub_clz.o(x$fpl$dadd)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __aeabi_dadd +
    +
    [Called By]
    • >>   __hardfp_round +
    • >>   __hardfp_floor +
    + +

    _dadd (Thumb, 332 bytes, Stack size 16 bytes, daddsub_clz.o(x$fpl$dadd), UNUSED) +

    [Calls]

    • >>   __fpl_dretinf +
    • >>   __fpl_dnaninf +
    • >>   _dsub1 +
    + +

    __fpl_dcheck_NaN1 (Thumb, 10 bytes, Stack size 0 bytes, dcheck1.o(x$fpl$dcheck1)) +

    [Calls]

    • >>   __fpl_return_NaN +
    +
    [Called By]
    • >>   __ARM_scalbn +
    + +

    __fpl_dcmp_Inf (Thumb, 24 bytes, Stack size 0 bytes, dcmpi.o(x$fpl$dcmpinf), UNUSED) +

    [Called By]

    • >>   _dcmple +
    • >>   _dcmpge +
    • >>   _dcmpeq +
    + +

    __aeabi_ddiv (Thumb, 0 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_ddiv +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    • >>   tflite::CalculateInputRadius(int, int, int) +
    + +

    _ddiv (Thumb, 552 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv), UNUSED) +

    [Calls]

    • >>   __fpl_dretinf +
    • >>   __fpl_dnaninf +
    + +

    __aeabi_cdcmpeq (Thumb, 0 bytes, Stack size 32 bytes, deqf.o(x$fpl$deqf)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_cdcmpeq +
    +
    [Called By]
    • >>   __hardfp_ldexp +
    • >>   __hardfp___mathlib_tofloat +
    + +

    _dcmpeq (Thumb, 120 bytes, Stack size 32 bytes, deqf.o(x$fpl$deqf), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    • >>   __fpl_dcmp_Inf +
    +
    [Called By]
    • >>   _dneq +
    • >>   _deq +
    + +

    __aeabi_d2iz (Thumb, 0 bytes, Stack size 32 bytes, dfix.o(x$fpl$dfix)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_d2iz +
    +
    [Called By]
    • >>   tflite::CalculateInputRadius(int, int, int) +
    + +

    _dfix (Thumb, 94 bytes, Stack size 32 bytes, dfix.o(x$fpl$dfix), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    + +

    __aeabi_i2d (Thumb, 0 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dflt)) +

    [Called By]

    • >>   tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) +
    • >>   tflite::CalculateInputRadius(int, int, int) +
    + +

    _dflt (Thumb, 46 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dflt), UNUSED) + +

    __aeabi_l2d (Thumb, 0 bytes, Stack size 8 bytes, dfltll_clz.o(x$fpl$dfltll)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_l2d +
    +
    [Called By]
    • >>   tflite::CalculateInputRadius(int, int, int) +
    + +

    _ll_sto_d (Thumb, 162 bytes, Stack size 8 bytes, dfltll_clz.o(x$fpl$dfltll), UNUSED) + +

    __aeabi_cdcmpge (Thumb, 0 bytes, Stack size 32 bytes, dgeqf.o(x$fpl$dgeqf), UNUSED) + +

    _dcmpge (Thumb, 120 bytes, Stack size 32 bytes, dgeqf.o(x$fpl$dgeqf), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    • >>   __fpl_dcmp_Inf +
    +
    [Called By]
    • >>   _dgeq +
    • >>   _dgr +
    + +

    __aeabi_cdcmple (Thumb, 0 bytes, Stack size 32 bytes, dleqf.o(x$fpl$dleqf)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_cdcmple +
    +
    [Called By]
    • >>   __hardfp_round +
    + +

    _dcmple (Thumb, 120 bytes, Stack size 32 bytes, dleqf.o(x$fpl$dleqf), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    • >>   __fpl_dcmp_Inf +
    +
    [Called By]
    • >>   _dls +
    • >>   _dleq +
    + +

    __fpl_dcmple_InfNaN (Thumb, 0 bytes, Stack size unknown bytes, dleqf.o(x$fpl$dleqf), UNUSED) +

    [Called By]

    • >>   _drcmple +
    + +

    __aeabi_dmul (Thumb, 0 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_dmul +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    • >>   tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) +
    • >>   tflite::CalculateInputRadius(int, int, int) +
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    • >>   frexp +
    • >>   __hardfp_frexp +
    • >>   __mathlib_dbl_underflow +
    • >>   __mathlib_dbl_overflow +
    + +

    _dmul (Thumb, 332 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul), UNUSED) +

    [Calls]

    • >>   __fpl_dretinf +
    • >>   __fpl_dnaninf +
    + +

    __fpl_dnaninf (Thumb, 156 bytes, Stack size 16 bytes, dnaninf.o(x$fpl$dnaninf)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __fpl_dnaninf +
    +
    [Called By]
    • >>   _drnd +
    • >>   _dcmple +
    • >>   _dcmpge +
    • >>   _dcmpeq +
    • >>   _dmul +
    • >>   _ll_sfrom_d +
    • >>   _dfix +
    • >>   _ddiv +
    • >>   _dsub +
    • >>   _dadd +
    • >>   _d2f +
    + +

    __fpl_dretinf (Thumb, 12 bytes, Stack size 0 bytes, dretinf.o(x$fpl$dretinf), UNUSED) +

    [Called By]

    • >>   _f2d +
    • >>   _dmul +
    • >>   _ddiv +
    • >>   _dadd +
    + +

    __aeabi_cdrcmple (Thumb, 0 bytes, Stack size 16 bytes, drleqf.o(x$fpl$drleqf)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __aeabi_cdrcmple +
    +
    [Called By]
    • >>   __hardfp_round +
    • >>   __hardfp_floor +
    • >>   __hardfp___mathlib_tofloat +
    + +

    _drcmple (Thumb, 108 bytes, Stack size 16 bytes, drleqf.o(x$fpl$drleqf), UNUSED) +

    [Calls]

    • >>   __fpl_dcmple_InfNaN +
    + +

    _drnd (Thumb, 180 bytes, Stack size 16 bytes, drnd.o(x$fpl$drnd)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _drnd ⇒ __fpl_dnaninf +
    +
    [Calls]
    • >>   __fpl_dnaninf +
    +
    [Called By]
    • >>   __hardfp_round +
    + +

    __aeabi_drsub (Thumb, 0 bytes, Stack size 8 bytes, daddsub_clz.o(x$fpl$drsb)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_drsub +
    +
    [Called By]
    • >>   __hardfp_floor +
    + +

    _drsb (Thumb, 22 bytes, Stack size 8 bytes, daddsub_clz.o(x$fpl$drsb), UNUSED) +

    [Calls]

    • >>   _dsub1 +
    • >>   _dadd1 +
    + +

    __aeabi_dsub (Thumb, 0 bytes, Stack size 32 bytes, daddsub_clz.o(x$fpl$dsub)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_dsub +
    +
    [Called By]
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    • >>   __hardfp_round +
    + +

    _dsub (Thumb, 464 bytes, Stack size 32 bytes, daddsub_clz.o(x$fpl$dsub), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    • >>   _dadd1 +
    + +

    __aeabi_f2d (Thumb, 0 bytes, Stack size 16 bytes, f2d.o(x$fpl$f2d)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = __aeabi_f2d +
    +
    [Called By]
    • >>   tflite::PopulateConvolutionQuantizationParams(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, const TfLiteFusedActivation&, int*, int*, int*, int*, int*, int*, int) +
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    • >>   tflite::ops::micro::activations::SoftmaxPrepare(TfLiteContext*, TfLiteNode*) +
    + +

    _f2d (Thumb, 86 bytes, Stack size 16 bytes, f2d.o(x$fpl$f2d), UNUSED) +

    [Calls]

    • >>   __fpl_fnaninf +
    • >>   __fpl_dretinf +
    + +

    __aeabi_dcmpeq (Thumb, 0 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_dcmpeq +
    +
    [Called By]
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    + +

    _deq (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmpeq +
    + +

    _dneq (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmpeq +
    + +

    __aeabi_dcmpgt (Thumb, 0 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_dcmpgt +
    +
    [Called By]
    • >>   tflite::PreprocessSoftmaxScaling(double, double, int, int*, int*) +
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    + +

    _dgr (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmpge +
    + +

    __aeabi_dcmpge (Thumb, 0 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) + +

    _dgeq (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmpge +
    + +

    __aeabi_dcmple (Thumb, 0 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __aeabi_dcmple +
    +
    [Called By]
    • >>   tflite::GetQuantizedConvolutionMultipler(TfLiteContext*, const TfLiteTensor*, const TfLiteTensor*, const TfLiteTensor*, TfLiteTensor*, double*) +
    + +

    _dleq (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmple +
    + +

    __aeabi_dcmplt (Thumb, 0 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) + +

    _dls (Thumb, 14 bytes, Stack size 8 bytes, dcmp.o(x$fpl$fcmp), UNUSED) +

    [Calls]

    • >>   _dcmple +
    + +

    __fpl_fnaninf (Thumb, 140 bytes, Stack size 8 bytes, fnaninf.o(x$fpl$fnaninf)) +

    [Stack]

    • Max Depth = 8
    • Call Chain = __fpl_fnaninf +
    +
    [Called By]
    • >>   _frnd +
    • >>   _f2d +
    + +

    _fp_init (Thumb, 26 bytes, Stack size 0 bytes, fpinit.o(x$fpl$fpinit)) +

    [Called By]

    • >>   __rt_lib_init_fp_1 +
    + +

    __fplib_config_fpu_vfp (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED) + +

    __fplib_config_pureend_doubles (Thumb, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED) + +

    __fpl_fretinf (Thumb, 10 bytes, Stack size 0 bytes, fretinf.o(x$fpl$fretinf), UNUSED) +

    [Called By]

    • >>   _d2f +
    + +

    _frnd (Thumb, 96 bytes, Stack size 8 bytes, frnd.o(x$fpl$frnd)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _frnd ⇒ __fpl_fnaninf +
    +
    [Calls]
    • >>   __fpl_fnaninf +
    +
    [Called By]
    • >>   __hardfp_roundf +
    + +

    __ieee_status (Thumb, 6 bytes, Stack size 0 bytes, istatus.o(x$fpl$ieeestatus)) +

    [Called By]

    • >>   _fp_value +
    + +

    __aeabi_d2lz (Thumb, 0 bytes, Stack size 32 bytes, dfixll.o(x$fpl$llsfromd)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __aeabi_d2lz +
    +
    [Called By]
    • >>   tflite::QuantizeMultiplier(double, int*, int*) +
    • >>   tflite::QuantizeMultiplierGreaterThanOne(double, int*, int*) +
    + +

    _ll_sfrom_d (Thumb, 194 bytes, Stack size 32 bytes, dfixll.o(x$fpl$llsfromd), UNUSED) +

    [Calls]

    • >>   __fpl_dnaninf +
    + +

    _printf_fp_dec (Thumb, 4 bytes, Stack size 0 bytes, printf1.o(x$fpl$printf1)) +

    [Stack]

    • Max Depth = 324
    • Call Chain = _printf_fp_dec ⇒ _printf_fp_dec_real ⇒ _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _printf_fp_dec_real +
    +
    [Called By]
    • >>   _printf_g +
    • >>   _printf_e +
    • >>   _printf_f +
    + +

    _printf_fp_hex (Thumb, 4 bytes, Stack size 0 bytes, printf2.o(x$fpl$printf2)) +

    [Stack]

    • Max Depth = 112
    • Call Chain = _printf_fp_hex ⇒ _printf_fp_hex_real ⇒ _printf_fp_infnan ⇒ _printf_post_padding +
    +
    [Calls]
    • >>   _printf_fp_hex_real +
    +
    [Called By]
    • >>   _printf_a +
    + +

    __fpl_return_NaN (Thumb, 100 bytes, Stack size 0 bytes, retnan.o(x$fpl$retnan)) +

    [Calls]

    • >>   __fpl_cmpreturn +
    +
    [Called By]
    • >>   __fpl_dcheck_NaN1 +
    + +

    __ARM_scalbn (Thumb, 92 bytes, Stack size 0 bytes, scalbn.o(x$fpl$scalbn)) +

    [Calls]

    • >>   __fpl_dcheck_NaN1 +
    +
    [Called By]
    • >>   __hardfp_ldexp +
    + +

    _scanf_real (Thumb, 4 bytes, Stack size 0 bytes, scanf1.o(x$fpl$scanf1)) +

    [Stack]

    • Max Depth = 340
    • Call Chain = _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _scanf_really_real +
    +
    [Called By]
    • >>   _local_sscanf +
    • >>   __vfscanf +
    + +

    _scanf_hex_real (Thumb, 4 bytes, Stack size 0 bytes, scanf2.o(x$fpl$scanf2)) +

    [Stack]

    • Max Depth = 176
    • Call Chain = _scanf_hex_real ⇒ _scanf_really_hex_real ⇒ __support_ldexp ⇒ __hardfp_ldexp ⇒ __mathlib_dbl_underflow ⇒ __aeabi_dmul +
    +
    [Calls]
    • >>   _scanf_really_hex_real +
    +
    [Called By]
    • >>   _scanf_really_real +
    + +

    _scanf_infnan (Thumb, 4 bytes, Stack size 0 bytes, scanf2.o(x$fpl$scanf2)) +

    [Stack]

    • Max Depth = 72
    • Call Chain = _scanf_infnan ⇒ _scanf_really_infnan +
    +
    [Calls]
    • >>   _scanf_really_infnan +
    +
    [Called By]
    • >>   _scanf_really_real +
    + +

    __fpl_cmpreturn (Thumb, 48 bytes, Stack size 0 bytes, trapv.o(x$fpl$trapveneer)) +

    [Called By]

    • >>   __fpl_return_NaN +
    +

    +

    +Local Symbols +

    +

    UART_DMAAbortOnError (Thumb, 16 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(.text.UART_DMAAbortOnError)) +

    [Calls]

    • >>   HAL_UART_ErrorCallback +
    +
    [Address Reference Count : 1]
    • stm32l4xx_hal_uart.o(.text.HAL_UART_IRQHandler) +
    +

    RCCEx_PLLSAI1_Config (Thumb, 304 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc_ex.o(.text.RCCEx_PLLSAI1_Config)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = RCCEx_PLLSAI1_Config +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_RCCEx_PeriphCLKConfig +
    + +

    RCCEx_PLLSAI2_Config (Thumb, 268 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc_ex.o(.text.RCCEx_PLLSAI2_Config)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = RCCEx_PLLSAI2_Config +
    +
    [Calls]
    • >>   HAL_GetTick +
    +
    [Called By]
    • >>   HAL_RCCEx_PeriphCLKConfig +
    + +

    DCMI_DMAError (Thumb, 20 bytes, Stack size 0 bytes, stm32l4xx_hal_dcmi.o(.text.DCMI_DMAError)) +

    [Calls]

    • >>   HAL_DCMI_ErrorCallback +
    +
    [Address Reference Count : 1]
    • stm32l4xx_hal_dcmi.o(.text.HAL_DCMI_IRQHandler) +
    +

    blk_locate_free (Thumb, 222 bytes, Stack size 16 bytes, tos_mmheap.o(.text.blk_locate_free)) +

    [Stack]

    • Max Depth = 16 + Unknown Stack Size +
    • Call Chain = blk_locate_free +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_mmheap_alloc +
    • >>   tos_mmheap_calloc +
    + +

    blk_merge_next (Thumb, 168 bytes, Stack size 24 bytes, tos_mmheap.o(.text.blk_merge_next)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = blk_merge_next +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_mmheap_free +
    + +

    blk_prepare_used (Thumb, 252 bytes, Stack size 24 bytes, tos_mmheap.o(.text.blk_prepare_used)) +

    [Stack]

    • Max Depth = 24 + Unknown Stack Size +
    • Call Chain = blk_prepare_used +
    +
    [Calls]
    • >>   tos_cpu_clz +
    +
    [Called By]
    • >>   tos_mmheap_alloc +
    • >>   tos_mmheap_calloc +
    + +

    mmheap_ctl_init (Thumb, 186 bytes, Stack size 16 bytes, tos_mmheap.o(.text.mmheap_ctl_init)) +

    [Stack]

    • Max Depth = 20
    • Call Chain = mmheap_ctl_init ⇒ __aeabi_memclr4 +
    +
    [Calls]
    • >>   __aeabi_memclr4 +
    +
    [Called By]
    • >>   mmheap_init_with_pool +
    + +

    knl_idle_entry (Thumb, 6 bytes, Stack size 0 bytes, tos_sys.o(.text.knl_idle_entry)) +

    [Stack]

    • Max Depth = 72 + Unknown Stack Size + + In Cycle +
    • Call Chain = knl_idle_entry ⇒ knl_idle_entry (Cycle) +
    +
    [Calls]
    • >>   task_free_all +
    • >>   knl_idle_entry +
    +
    [Called By]
    • >>   knl_idle_entry +
    +
    [Address Reference Count : 1]
    • tos_sys.o(.text.tos_knl_init) +
    +

    task_do_destroy (Thumb, 198 bytes, Stack size 24 bytes, tos_task.o(.text.task_do_destroy)) +

    [Stack]

    • Max Depth = 88 + Unknown Stack Size +
    • Call Chain = task_do_destroy ⇒ mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tos_cpu_cpsr_save +
    • >>   tos_cpu_cpsr_restore +
    • >>   knl_sched +
    • >>   tick_list_remove +
    • >>   readyqueue_remove +
    • >>   pend_list_remove +
    • >>   mutex_release +
    • >>   knl_is_idle +
    +
    [Called By]
    • >>   tos_task_destroy +
    + +

    task_exit (Thumb, 6 bytes, Stack size 0 bytes, tos_task.o(.text.task_exit)) +

    [Stack]

    • Max Depth = 104 + Unknown Stack Size +
    • Call Chain = task_exit ⇒ tos_task_destroy ⇒ task_do_destroy ⇒ mutex_release ⇒ pend_wakeup_all ⇒ tick_list_remove +
    +
    [Calls]
    • >>   tos_task_destroy +
    +
    [Address Reference Count : 1]
    • tos_task.o(.text.tos_task_create) +
    +

    _GLOBAL__sub_I_micro_speech.cc (Thumb, 70 bytes, Stack size 8 bytes, micro_speech.o(.text._GLOBAL__sub_I_micro_speech.cc)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = _GLOBAL__sub_I_micro_speech.cc ⇒ std::__1::ios_base::Init::Init() ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::ios_base::Init::Init() +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • micro_speech.o(.init_array) +
    +

    _GLOBAL__sub_I_micro_interpreter.cc (Thumb, 42 bytes, Stack size 8 bytes, micro_interpreter.o(.text._GLOBAL__sub_I_micro_interpreter.cc)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = _GLOBAL__sub_I_micro_interpreter.cc ⇒ std::__1::ios_base::Init::Init() ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::ios_base::Init::Init() +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • micro_interpreter.o(.init_array) +
    +

    tflite::⟨unnamed namespace 1⟩::MicroBuiltinDataAllocator::Deallocate(void*) (Thumb, 2 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocator10DeallocateEPv)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocatorE) +
    +

    tflite::⟨unnamed namespace 1⟩::MicroBuiltinDataAllocator::Allocate(unsigned, unsigned) (Thumb, 8 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocator8AllocateEjj)) +
    [Address Reference Count : 1]

    • micro_allocator.o(.rodata._ZTVN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocatorE) +
    +

    tflite::⟨unnamed namespace 1⟩::MicroBuiltinDataAllocator::~MicroBuiltinDataAllocator__deallocating() (Thumb, 4 bytes, Stack size 0 bytes, micro_allocator.o(.text._ZN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocatorD0Ev)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = tflite::⟨unnamed namespace 1⟩::MicroBuiltinDataAllocator::~MicroBuiltinDataAllocator__deallocating() ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • micro_allocator.o(.rodata._ZTVN6tflite12_GLOBAL__N_125MicroBuiltinDataAllocatorE) +
    +

    _dadd1 (Thumb, 0 bytes, Stack size unknown bytes, daddsub_clz.o(x$fpl$dadd), UNUSED) +

    [Called By]

    • >>   _dsub +
    • >>   _drsb +
    + +

    _dsub1 (Thumb, 0 bytes, Stack size unknown bytes, daddsub_clz.o(x$fpl$dsub), UNUSED) +

    [Called By]

    • >>   _drsb +
    • >>   _dadd +
    + +

    _GLOBAL__sub_I_iostream.cpp (Thumb, 12 bytes, Stack size 0 bytes, iostream.cpp.o(.text._GLOBAL__sub_I_iostream.cpp)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _GLOBAL__sub_I_iostream.cpp ⇒ std::__1::ios_base::Init::Init__sub_object() +
    +
    [Calls]
    • >>   std::__1::ios_base::Init::Init__sub_object() +
    +
    [Address Reference Count : 1]
    • iostream.cpp.o(.init_array) +
    +

    _GLOBAL__sub_I_ios.cpp (Thumb, 42 bytes, Stack size 8 bytes, ios.cpp.o(.text._GLOBAL__sub_I_ios.cpp)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = _GLOBAL__sub_I_ios.cpp ⇒ std::__1::ios_base::Init::Init() ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::ios_base::Init::Init() +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • ios.cpp.o(.init_array) +
    +

    _GLOBAL__sub_I_locale.cpp (Thumb, 42 bytes, Stack size 8 bytes, locale.cpp.o(.text._GLOBAL__sub_I_locale.cpp)) +

    [Stack]

    • Max Depth = 96 + Unknown Stack Size +
    • Call Chain = _GLOBAL__sub_I_locale.cpp ⇒ std::__1::ios_base::Init::Init() ⇒ __cxa_atexit ⇒ __aeabi_atexit ⇒ malloc ⇒ __Heap_Full ⇒ __Heap_ProvideMemory ⇒ free +
    +
    [Calls]
    • >>   std::__1::ios_base::Init::Init() +
    • >>   __cxa_atexit +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.init_array) +
    +

    void std::__1::__call_once_proxy⟨std::__1::tuple⟨⟨std::__1::⟨unnamed namespace 1⟩::__fake_bind&&⟩⟩⟩(void*) (Thumb, 24 bytes, Stack size 0 bytes, locale.cpp.o(.text._ZNSt3__117__call_once_proxyINS_5tupleIJONS_12_GLOBAL__N_111__fake_bindEEEEEEvPv)) +
    [Address Reference Count : 1]

    • locale.cpp.o(.text._ZNSt3__16locale2id5__getEv) +
    +

    _ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE (Thumb, 296 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 36
    • Call Chain = _ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char32_t*, const char32_t*, const char32_t*&, char*, char*, char*&) const +
    + +

    _ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE (Thumb, 374 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char32_t*, char32_t*, char32_t*&) const +
    + +

    _ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE (Thumb, 472 bytes, Stack size 36 bytes, locale.cpp.o(.text._ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 36
    • Call Chain = _ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_out(std::__mbstate_t&, const char16_t*, const char16_t*, const char16_t*&, char*, char*, char*&) const +
    + +

    _ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE (Thumb, 438 bytes, Stack size 32 bytes, locale.cpp.o(.text._ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = _ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_in(std::__mbstate_t&, const char*, const char*, const char*&, char16_t*, char16_t*, char16_t*&) const +
    + +

    _ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE (Thumb, 362 bytes, Stack size 28 bytes, locale.cpp.o(.text._ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = _ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char32_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const +
    + +

    _ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE (Thumb, 378 bytes, Stack size 28 bytes, locale.cpp.o(.text._ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE)) +

    [Stack]

    • Max Depth = 28
    • Call Chain = _ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE +
    +
    [Called By]
    • >>   std::__1::codecvt⟨char16_t, char, std::__mbstate_t⟩::do_length(std::__mbstate_t&, const char*, const char*, unsigned) const +
    + +

    __cxx_global_array_dtor (Thumb, 42 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE7__weeksEv) +
    +

    __cxx_global_array_dtor.101 (Thumb, 42 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor.101)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor.101 ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE8__monthsEv) +
    +

    __cxx_global_array_dtor.125 (Thumb, 38 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor.125)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor.125 ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE7__am_pmEv) +
    +

    __cxx_global_array_dtor.128 (Thumb, 38 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor.128)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor.128 ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE7__am_pmEv) +
    +

    __cxx_global_array_dtor.62 (Thumb, 42 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor.62)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor.62 ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIwE7__weeksEv) +
    +

    __cxx_global_array_dtor.77 (Thumb, 42 bytes, Stack size 16 bytes, locale.cpp.o(.text.__cxx_global_array_dtor.77)) +

    [Stack]

    • Max Depth = 32
    • Call Chain = __cxx_global_array_dtor.77 ⇒ operator delete (void*) ⇒ free +
    +
    [Calls]
    • >>   operator delete (void*) +
    +
    [Address Reference Count : 1]
    • locale.cpp.o(.text._ZNKSt3__120__time_get_c_storageIcE8__monthsEv) +
    +

    _printf_input_char (Thumb, 10 bytes, Stack size 0 bytes, _printf_char_common.o(.text)) +
    [Address Reference Count : 1]

    • _printf_char_common.o(.text) +
    +

    _isoweek (Thumb, 64 bytes, Stack size 16 bytes, strftime.o(.text)) +

    [Stack]

    • Max Depth = 16
    • Call Chain = _isoweek +
    +
    [Calls]
    • >>   _yeardays +
    +
    [Called By]
    • >>   strftime +
    • >>   _weekbasedyear +
    + +

    _findweek (Thumb, 24 bytes, Stack size 0 bytes, strftime.o(.text)) +

    [Called By]

    • >>   strftime +
    + +

    _yeardays (Thumb, 42 bytes, Stack size 0 bytes, strftime.o(.text)) +

    [Called By]

    • >>   _isoweek +
    + +

    _weekbasedyear (Thumb, 24 bytes, Stack size 8 bytes, strftime.o(.text)) +

    [Stack]

    • Max Depth = 24
    • Call Chain = _weekbasedyear ⇒ _isoweek +
    +
    [Calls]
    • >>   _isoweek +
    +
    [Called By]
    • >>   strftime +
    + +

    _fp_value (Thumb, 588 bytes, Stack size 96 bytes, scanf_fp.o(.text)) +

    [Stack]

    • Max Depth = 220
    • Call Chain = _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   __ieee_status +
    • >>   _btod_emuld +
    • >>   _btod_edivd +
    • >>   _btod_etento +
    • >>   __aeabi_errno_addr +
    +
    [Called By]
    • >>   _scanf_really_real +
    + +

    _scanf_char_input (Thumb, 12 bytes, Stack size 0 bytes, scanf_char.o(.text)) +
    [Address Reference Count : 1]

    • scanf_char.o(.text) +
    +

    _local_sscanf (Thumb, 68 bytes, Stack size 64 bytes, strtod.o(.text)) +

    [Stack]

    • Max Depth = 404
    • Call Chain = _local_sscanf ⇒ _scanf_real ⇒ _scanf_really_real ⇒ _fp_value ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _scanf_real +
    +
    [Called By]
    • >>   __strtod_int +
    + +

    _fp_digits (Thumb, 432 bytes, Stack size 96 bytes, _printf_fp_dec.o(.text)) +

    [Stack]

    • Max Depth = 220
    • Call Chain = _fp_digits ⇒ _btod_etento ⇒ _btod_emul ⇒ _e2e +
    +
    [Calls]
    • >>   _btod_emul +
    • >>   _btod_ediv +
    • >>   _btod_d2e +
    • >>   _btod_etento +
    • >>   _ll_udiv10 +
    +
    [Called By]
    • >>   _printf_fp_dec_real +
    +

    +

    +Undefined Global Symbols +


    diff --git a/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny/TencentOS_tiny.sct b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny/TencentOS_tiny.sct new file mode 100644 index 00000000..83747e97 --- /dev/null +++ b/board/NUCLEO_STM32L496ZG/KEIL/tflitemicro_speech_detection/TencentOS_tiny/TencentOS_tiny.sct @@ -0,0 +1,16 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00100000 { ; load region size_region + ER_IROM1 0x08000000 0x00100000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + .ANY (+XO) + } + RW_IRAM1 0x20000000 0x00050000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/components/ai/nnom/LICENSE b/components/ai/nnom/LICENSE new file mode 100644 index 00000000..f4f87bd4 --- /dev/null +++ b/components/ai/nnom/LICENSE @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + \ No newline at end of file diff --git a/components/ai/nnom/README.md b/components/ai/nnom/README.md new file mode 100644 index 00000000..aff1acc6 --- /dev/null +++ b/components/ai/nnom/README.md @@ -0,0 +1,39 @@ + +# Neural Network on Microcontroller (NNoM) +[![Build Status](https://travis-ci.com/majianjia/nnom.svg?branch=master)](https://travis-ci.com/majianjia/nnom) +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) +[![DOI](https://zenodo.org/badge/166869630.svg)](https://zenodo.org/badge/latestdoi/166869630) + +NNoM is a high-level inference Neural Network library specifically for microcontrollers. + +介ç»è¯¦æƒ…å¯ä»¥å‚考:https://github.com/majianjia/nnom + +原作者æä¾›äº†åŸºäºŽkeras的训练模型方法,以åŠå¦‚何é…ç½®NNoMçš„è¯¦ç»†æ–‡æ¡£ä»‹ç» + + + +本项目æä¾›ä¸€ä¸ªåŸºäºŽNNoM的软件包,方便在tos上的快æ·ç§»æ¤ï¼ˆæµ‹è¯•通过平å°ä¸ºstm32l496ZG) + +mnist示例å¯ä»¥å‚考board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist + +## 在TencentOS-tiny上的使用说明 + +1. 在keil工程里添加components / ai / nnom中的src文件夹下的backendsã€coreã€layers三个文件夹中的全部.c文件 +2. 在keil工程中包å«incå’Œport文件夹中的全部头文件 +3. 在nnom_port.h指定内存使用方法(测试示例中开å¯äº† NNOM_USING_STATIC_MEMORYå® ï¼‰ï¼Œè‹¥ä½¿ç”¨éžé™æ€å†…存方法需è¦å°†nnom_malloc(n)å’Œnnom_free(n)定义为os本身的内存api,对tos是tos_mmheap_alloc(n)å’Œtos_mmheap_free(n) +4. è‹¥ä½¿ç”¨é™æ€å†…存,则需è¦å®šä¹‰static_buf[size]并使用nnom_set_static_buf(static_buf, sizeof(static_buf))å‡½æ•°åŽ»æŒ‡å®šé™æ€å†…存地å€ä¸Žå¤§å°ï¼Œå¹¶æ ¹æ®æ¨¡åž‹éœ€è¦è°ƒæ•´é™æ€å†…存大å°ã€‚ +5. 编写示例函数,å‚考:example/nnom_mnsit中的nnom_mnist_example写法,按照需è¦å®žçŽ°ç³»ç»Ÿapi,比如使用tos_systick_get()去获å–系统tickï¼Œä»Žè€Œè®¡ç®—æŽ¨ç†æ—¶é—´ã€‚ + + + +## 注æ„事项 + +在keil下确认printfå·²ç»æˆåŠŸå®žçŽ°ï¼ˆæ£€æŸ¥microlib选项),并注æ„选择ARM Compiler为Use default compiler version 5 + + + +## Licenses + +NNoM is released under Apache License 2.0 since nnom-V0.2.0. +License and copyright information can be found within the code. + diff --git a/components/ai/nnom/inc/layers/nnom_activation.h b/components/ai/nnom/inc/layers/nnom_activation.h new file mode 100644 index 00000000..7cda07ce --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_activation.h @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_ACTIVATION_H__ +#define __NNOM_ACTIVATION_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + + +// activation layer +typedef struct _nnom_activation_layer_t +{ + nnom_layer_t super; + nnom_activation_t *act; +} nnom_activation_layer_t; + + +// activation with fixed q format (tanh and sigmoid) +typedef struct _nnom_activation_fixed_q_t +{ + nnom_activation_t super; + uint8_t dec_bit; +} nnom_activation_fixed_q_t; + +// leaky relu +typedef struct _nnom_activation_leaky_relu_t +{ + nnom_activation_t super; + q7_t alpha; // alpha is present by q0.7 format. (-128 = -1) +} nnom_activation_leaky_relu_t; + +// advance relu (full ReLU) +typedef struct _nnom_activation_adv_relu_t +{ + nnom_activation_t super; + q7_t negative_slope; // negative_slope is present by q0.7 format. (-128 = -1) + float max; // cap of the max value + float threshold; // threshold +} nnom_activation_adv_relu_t; + +// method +nnom_status_t activation_run(nnom_layer_t* layer); +nnom_status_t activation_free(nnom_layer_t *layer); + +// activation delete +void act_delete(nnom_activation_t* act); + +// a direct api on tensor +nnom_status_t act_tensor_run(nnom_activation_t* act, nnom_tensor_t* tensor); + + +// Layer API +nnom_layer_t *Activation(nnom_activation_t *act); +nnom_layer_t *ReLU(void); +nnom_layer_t *LeakyReLU(float alpha); +nnom_layer_t *AdvReLU(float alpha, float max, float threshold); +nnom_layer_t *Sigmoid(int32_t dec_bit); +nnom_layer_t *TanH(int32_t dec_bit); + +// Activation API. +nnom_activation_t* act_relu(void); +nnom_activation_t* act_leaky_relu(float alpha); +nnom_activation_t* act_adv_relu(float negative_slope, float max, float threshold); +nnom_activation_t* act_tanh(int32_t dec_bit); +nnom_activation_t* act_sigmoid(int32_t dec_bit); +nnom_activation_t* act_hard_tanh(int32_t dec_bit); +nnom_activation_t* act_hard_sigmoid(int32_t dec_bit); + +// utils +int32_t act_get_dec_bit(nnom_activation_type_t type, int32_t dec_bit); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_ACTIVATION_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_avgpool.h b/components/ai/nnom/inc/layers/nnom_avgpool.h new file mode 100644 index 00000000..6f835463 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_avgpool.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_AVGPOOL_H__ +#define __NNOM_AVGPOOL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +#include "layers/nnom_maxpool.h" + +// Avg Pooling +typedef nnom_maxpool_layer_t nnom_avgpool_layer_t; + +// method +nnom_status_t avgpooling_build(nnom_layer_t *layer); +nnom_status_t avgpool_run(nnom_layer_t *layer); + +// API +nnom_layer_t *avgpool_s(const nnom_pool_config_t * config); +nnom_layer_t *AvgPool(nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_padding_t pad_type); + + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_AVGPOOL_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_baselayer.h b/components/ai/nnom/inc/layers/nnom_baselayer.h new file mode 100644 index 00000000..940bce57 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_baselayer.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_BASELAYER_H__ +#define __NNOM_BASELAYER_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +#include "layers/nnom_input.h" + +// method +nnom_status_t default_build(nnom_layer_t *layer); +nnom_status_t default_run(nnom_layer_t *layer); + +// API +nnom_layer_t *baselayer_s(const nnom_layer_config_t * config); +nnom_layer_t *BaseLayer(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_BASELAYER_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_concat.h b/components/ai/nnom/inc/layers/nnom_concat.h new file mode 100644 index 00000000..d47b2636 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_concat.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_CONCAT_H__ +#define __NNOM_CONCAT_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +// concatenate layer +typedef struct _nnom_concat_layer +{ + nnom_layer_t super; + int8_t axis; +} nnom_concat_layer_t; + +typedef struct _nnom_concat_config_t +{ + nnom_layer_config_t super; + int8_t axis; +} nnom_concat_config_t; + +// method +nnom_status_t concat_build(nnom_layer_t *layer); +nnom_status_t concat_run(nnom_layer_t *layer); + +// API +nnom_layer_t *concat_s(const nnom_concat_config_t *config); +nnom_layer_t *Concat(int8_t axis); + + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_CONCAT_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_conv2d.h b/components/ai/nnom/inc/layers/nnom_conv2d.h new file mode 100644 index 00000000..2b6efb19 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_conv2d.h @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_CONV2D_H__ +#define __NNOM_CONV2D_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +// child layers parameters +typedef struct _nnom_conv2d_layer_t +{ + nnom_layer_t super; + nnom_3d_shape_t kernel; + nnom_3d_shape_t stride; + nnom_3d_shape_t pad; + nnom_3d_shape_t dilation; + nnom_padding_t padding_type; + uint32_t filter_mult; // filter size (for conv) or multilplier (for depthwise) + + nnom_tensor_t *weight; + nnom_tensor_t *bias; + + // test + nnom_qformat_param_t * output_rshift; + nnom_qformat_param_t * bias_lshift; +} nnom_conv2d_layer_t; + +// a machine interface for configuration +typedef struct _nnom_conv2d_config_t +{ + nnom_layer_config_t super; + nnom_qtype_t qtype; //quantisation type(per channel or per layer) + nnom_tensor_t *weight; + nnom_tensor_t *bias; + nnom_qformat_param_t *output_shift; + nnom_qformat_param_t *bias_shift; + uint32_t filter_size; + int8_t kernel_size[2]; + int8_t stride_size[2]; + int8_t padding_size[2]; + int8_t dilation_size[2]; + nnom_padding_t padding_type; +} nnom_conv2d_config_t; + +// method +nnom_status_t conv2d_run(nnom_layer_t *layer); +nnom_status_t conv2d_build(nnom_layer_t *layer); +nnom_status_t conv2d_free(nnom_layer_t *layer); + +// utils +uint32_t conv_output_length(uint32_t input_length, uint32_t filter_size, nnom_padding_t padding, uint32_t stride, uint32_t dilation); + +// API +nnom_layer_t *conv2d_s(const nnom_conv2d_config_t *config); +nnom_layer_t *Conv2D(uint32_t filters, nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_3d_shape_t d, nnom_padding_t pad_type, + const nnom_weight_t *w, const nnom_bias_t *b); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_CONV2D_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_conv2d_trans.h b/components/ai/nnom/inc/layers/nnom_conv2d_trans.h new file mode 100644 index 00000000..26249f3d --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_conv2d_trans.h @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-30 Jianjia Ma The first version + */ + +#ifndef __NNOM_DECONV2D_H__ +#define __NNOM_DECONV2D_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" +#include "layers/nnom_conv2d.h" + +// child layers parameters +typedef nnom_conv2d_layer_t nnom_conv2d_trans_layer_t; + +typedef nnom_conv2d_config_t nnom_conv2d_trans_config_t; + +// method +nnom_status_t conv2d_trans_run(nnom_layer_t *layer); +nnom_status_t conv2d_trans_build(nnom_layer_t *layer); + +// utils +uint32_t conv_trans_output_length(uint32_t input_length, uint32_t filter_size, nnom_padding_t padding, uint32_t stride, uint32_t dilation); + +// API +nnom_layer_t *conv2d_trans_s(const nnom_conv2d_config_t *config); +nnom_layer_t *Conv2DTrans(uint32_t filters, nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_3d_shape_t d, nnom_padding_t pad_type, + const nnom_weight_t *w, const nnom_bias_t *b); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_DECONV2D_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_cropping.h b/components/ai/nnom/inc/layers/nnom_cropping.h new file mode 100644 index 00000000..25235748 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_cropping.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_CROPPING_H__ +#define __NNOM_CROPPING_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +#include "layers/nnom_zero_padding.h" + +// Cropping, same as zeropadding +typedef nnom_zero_padding_layer_t nnom_cropping_layer_t; + +typedef nnom_zero_padding_config_t nnom_cropping_config_t; + +// method +nnom_status_t cropping_build(nnom_layer_t *layer); +nnom_status_t cropping_run(nnom_layer_t *layer); + +// API +nnom_layer_t * cropping_s(const nnom_cropping_config_t *config); +nnom_layer_t *Cropping(nnom_border_t pad); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_CROPPING_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_dense.h b/components/ai/nnom/inc/layers/nnom_dense.h new file mode 100644 index 00000000..a0504a31 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_dense.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_DENSE_H__ +#define __NNOM_DENSE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +typedef struct _nnom_dense_layer_t +{ + nnom_layer_t super; + size_t output_unit; + nnom_tensor_t *weight; + nnom_tensor_t *bias; + nnom_qformat_param_t *output_rshift; + nnom_qformat_param_t *bias_lshift; +} nnom_dense_layer_t; + +// a machine interface for configuration +typedef struct _nnom_dense_config_t +{ + nnom_layer_config_t super; + nnom_qtype_t qtype; //quantisation type(per channel or per layer) + nnom_tensor_t *weight; + nnom_tensor_t *bias; + nnom_qformat_param_t *output_shift; + nnom_qformat_param_t *bias_shift; +} nnom_dense_config_t; + +// method +nnom_status_t dense_free(nnom_layer_t *layer); +nnom_status_t dense_build(nnom_layer_t *layer); +nnom_status_t dense_run(nnom_layer_t *layer); + +// API +nnom_layer_t *dense_s(const nnom_dense_config_t *config); +nnom_layer_t *Dense(size_t output_unit, const nnom_weight_t *w, const nnom_bias_t *b); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_DENSE_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_dw_conv2d.h b/components/ai/nnom/inc/layers/nnom_dw_conv2d.h new file mode 100644 index 00000000..5a9b58b2 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_dw_conv2d.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_DW_CONV2D_H__ +#define __NNOM_DW_CONV2D_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +#include "layers/nnom_conv2d.h" + +// method +nnom_status_t dw_conv2d_build(nnom_layer_t *layer); +nnom_status_t dw_conv2d_run(nnom_layer_t *layer); + +//API +nnom_layer_t *dw_conv2d_s(const nnom_conv2d_config_t *config); +nnom_layer_t *DW_Conv2D(uint32_t multiplier, nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_3d_shape_t d, nnom_padding_t pad_type, + const nnom_weight_t *w, const nnom_bias_t *b); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_DW_CONV2D_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_flatten.h b/components/ai/nnom/inc/layers/nnom_flatten.h new file mode 100644 index 00000000..c77160fc --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_flatten.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_FLATTEN_H__ +#define __NNOM_FLATTEN_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +// no special parameters but we need it. +typedef struct _nnom_flatten_config_t{ + nnom_layer_config_t super; +} nnom_flatten_config_t; + +// method +nnom_status_t flatten_build(nnom_layer_t *layer); +nnom_status_t flatten_run(nnom_layer_t *layer); + +// API +nnom_layer_t *flatten_s(const nnom_flatten_config_t *config); +nnom_layer_t *Flatten(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_FLATTEN_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_global_pool.h b/components/ai/nnom/inc/layers/nnom_global_pool.h new file mode 100644 index 00000000..febccb0e --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_global_pool.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_GLOBAL_POOL_H__ +#define __NNOM_GLOBAL_POOL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +#include "layers/nnom_maxpool.h" + +typedef struct _nnom_global_pool_config_t +{ + nnom_layer_config_t super; + int16_t output_shift; +}nnom_global_pool_config_t; + +// method +nnom_status_t global_pool_build(nnom_layer_t *layer); + +// API +nnom_layer_t * global_maxpool_s(const nnom_global_pool_config_t *config); +nnom_layer_t * global_avgpool_s(const nnom_global_pool_config_t *config); +nnom_layer_t * global_sumpool_s(const nnom_global_pool_config_t *config); + +nnom_layer_t *GlobalMaxPool(void); +nnom_layer_t *GlobalAvgPool(void); +nnom_layer_t *GlobalSumPool(void); + + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_GLOBAL_POOL_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_gru_cell.h b/components/ai/nnom/inc/layers/nnom_gru_cell.h new file mode 100644 index 00000000..8ba45962 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_gru_cell.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-08-27 Jianjia Ma The first version + */ + +#ifndef __NNOM_GRU_CELL_H__ +#define __NNOM_GRU_CELL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "nnom_rnn.h" +#include "nnom_activation.h" + +typedef struct _nnom_gru_cell_config_t +{ + nnom_layer_config_t super; + nnom_tensor_t *weights; + nnom_tensor_t* recurrent_weights; + nnom_tensor_t *bias; + nnom_qformat_param_t q_dec_z, q_dec_h; // z, r, h + uint16_t units; +} nnom_gru_cell_config_t; + + +typedef struct _nnom_gru_cell_t +{ + nnom_rnn_cell_t super; + + nnom_tensor_t* weights; + nnom_tensor_t* recurrent_weights; + nnom_tensor_t* bias; + + // decide later. + // z, r, h + nnom_qformat_param_t q_dec_z, q_dec_h; + nnom_qformat_param_t oshift_iw, oshift_hw, bias_shift; + +} nnom_gru_cell_t; + +// gru +nnom_rnn_cell_t *gru_cell_s(const nnom_gru_cell_config_t* config); + +nnom_status_t gru_cell_free(nnom_rnn_cell_t* cell); +nnom_status_t gru_cell_build(nnom_rnn_cell_t* cell); +nnom_status_t gru_cell_run(nnom_rnn_cell_t* cell); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_GRU_CELL_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_input.h b/components/ai/nnom/inc/layers/nnom_input.h new file mode 100644 index 00000000..42322a61 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_input.h @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_INPUT_H__ +#define __NNOM_INPUT_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +// IO layer +typedef struct _nnom_io_layer +{ + nnom_layer_t super; + nnom_3d_shape_t shape; + nnom_qformat_param_t dec_bit; + void *buf; //input or output +} nnom_io_layer_t; + +typedef struct _nnom_io_config_t +{ + nnom_layer_config_t super; + nnom_tensor_t *tensor; +}nnom_io_config_t; + +// method +nnom_status_t input_build(nnom_layer_t *layer); +nnom_status_t input_run(nnom_layer_t *layer); + +// API +nnom_layer_t *input_s(const nnom_io_config_t* config); +nnom_layer_t *Input(nnom_3d_shape_t input_shape, void *p_buf); + + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_INPUT_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_lambda.h b/components/ai/nnom/inc/layers/nnom_lambda.h new file mode 100644 index 00000000..80c5e691 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_lambda.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_LAMBDA_H__ +#define __NNOM_LAMBDA_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +#include "layers/nnom_input.h" + +// lambda layer +typedef struct _nnom_lambda_layer_t +{ + nnom_layer_t super; + void *parameters; // parameters for lambda +} nnom_lambda_layer_t; + +// lambda layer +typedef struct _nnom_lambda_config_t +{ + nnom_layer_config_t super; + nnom_status_t (*run_func_name)(nnom_layer_t *layer); // run method. required + nnom_status_t (*build_func_name)(nnom_layer_t *layer);// compute output buffer shape. can be left null, will call default_build() + nnom_status_t (*free_func_name)(nnom_layer_t *layer); // a callback to free private resources (comp buf not included) can be left null + void *parameters; // parameters for lambda +} nnom_lambda_config_t; + + + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_LAMBDA_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_lstm_cell.h b/components/ai/nnom/inc/layers/nnom_lstm_cell.h new file mode 100644 index 00000000..f0563fc9 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_lstm_cell.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-08-24 Jianjia Ma The first version + */ + +#ifndef __NNOM_LSTM_CELL_H__ +#define __NNOM_LSTM_CELL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "nnom_rnn.h" +#include "nnom_activation.h" + +// a machine interface for configuration +typedef struct _nnom_lstm_cell_config_t +{ + nnom_layer_config_t super; + nnom_tensor_t *weights; + nnom_tensor_t* recurrent_weights; + nnom_tensor_t *bias; + nnom_qformat_param_t q_dec_z, q_dec_h, q_dec_c; // z = iw + hw, c = cell state; h=output and memory + uint16_t units; +} nnom_lstm_cell_config_t; + + +typedef struct _nnom_lstm_cell_t +{ + nnom_rnn_cell_t super; + + nnom_tensor_t* weights; + nnom_tensor_t* recurrent_weights; + nnom_tensor_t* bias; + + // experimental, + // iw: input x weight + // hw: hidden state x recurrent weight + // h: hidden state (memor) + // c: cell state + nnom_qformat_param_t q_dec_z, q_dec_h, q_dec_c; + nnom_qformat_param_t oshift_iw, oshift_hw, oshift_zc, bias_shift; + +} nnom_lstm_cell_t; + +// LSTM +nnom_rnn_cell_t *lstm_cell_s(const nnom_lstm_cell_config_t* config); + +nnom_status_t lstm_cell_free(nnom_rnn_cell_t* cell); +nnom_status_t lstm_cell_q7_q15_build(nnom_rnn_cell_t* cell); +nnom_status_t lstm_cell_q7_q15_run(nnom_rnn_cell_t* cell); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_LSTM_CELL_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_matrix.h b/components/ai/nnom/inc/layers/nnom_matrix.h new file mode 100644 index 00000000..11b775bb --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_matrix.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_MATRIX_H__ +#define __NNOM_MATRIX_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +// the maximum input layer hooked to this layer +#define MAX_INPUT_LAYER 8 + +// matrix layer +typedef struct _nnom_matrix_layer_t +{ + nnom_layer_t super; + int16_t oshift; // output right shift +} nnom_matrix_layer_t; + +typedef struct _nnom_matrix_config_t +{ + nnom_layer_config_t super; + int16_t output_shift; // output right shift +} nnom_matrix_config_t; + +// methods +nnom_layer_t* _same_shape_matrix_layer(void); +nnom_status_t add_run(nnom_layer_t *layer); +nnom_status_t sub_run(nnom_layer_t *layer); +nnom_status_t mult_run(nnom_layer_t *layer); + +// API +nnom_layer_t *add_s(const nnom_matrix_config_t * config); +nnom_layer_t *sub_s(const nnom_matrix_config_t * config); +nnom_layer_t *mult_s(const nnom_matrix_config_t * config); +nnom_layer_t *Add(int16_t oshift); +nnom_layer_t *Sub(int16_t oshift); +nnom_layer_t *Mult(int16_t oshift); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_MATRIX_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_maxpool.h b/components/ai/nnom/inc/layers/nnom_maxpool.h new file mode 100644 index 00000000..690a02d2 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_maxpool.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_MAXPOOL_H__ +#define __NNOM_MAXPOOL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +// Max Pooling +typedef struct _nnom_maxpool_layer_t +{ + nnom_layer_t super; + nnom_3d_shape_t kernel; + nnom_3d_shape_t stride; + nnom_3d_shape_t pad; + nnom_padding_t padding_type; + int16_t output_shift; // reserve +} nnom_maxpool_layer_t; + +// a machine interface for configuration +typedef struct _nnom_pool_config_t +{ + nnom_layer_config_t super; + nnom_padding_t padding_type; + int16_t output_shift; + int8_t kernel_size[2]; + int8_t stride_size[2]; + int8_t num_dim; +} nnom_pool_config_t; + +// method +nnom_status_t maxpool_build(nnom_layer_t *layer); +nnom_status_t maxpool_run(nnom_layer_t *layer); + +// API +nnom_layer_t *maxpool_s(const nnom_pool_config_t * config); +nnom_layer_t *MaxPool(nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_padding_t pad_type); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_MATRIX_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_output.h b/components/ai/nnom/inc/layers/nnom_output.h new file mode 100644 index 00000000..8e62e22f --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_output.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_OUTPUT_H__ +#define __NNOM_OUTPUT_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +#include "layers/nnom_input.h" + +// method +nnom_status_t output_build(nnom_layer_t *layer); +nnom_status_t output_run(nnom_layer_t *layer); + +// API +nnom_layer_t *output_s(const nnom_io_config_t* config); +nnom_layer_t *Output(nnom_3d_shape_t output_shape, void *p_buf); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_OUTPUT_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_rnn.h b/components/ai/nnom/inc/layers/nnom_rnn.h new file mode 100644 index 00000000..6a9d6efb --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_rnn.h @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_RNN_H__ +#define __NNOM_RNN_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +// a machine interface for configuration +typedef struct _nnom_rnn_config_t +{ + nnom_layer_config_t super; + bool return_sequence; + bool stateful; + bool go_backwards; +} nnom_rnn_config_t; + +// RNN cell base type +typedef struct _nnom_rnn_cell_t +{ + nnom_status_t (*run)(struct _nnom_rnn_cell_t* cell); // cell runner + nnom_status_t (*build)(struct _nnom_rnn_cell_t* cell); // cell builder, calculate buffer size, output data size + nnom_status_t (*free)(struct _nnom_rnn_cell_t* cell); // + nnom_layer_t *layer; // pointer to its layer holder + nnom_layer_config_t *config; // config for the cell event it is a layer type + nnom_rnn_cell_type_t type; + + void *in_data; // input data + void *out_data; // output data + void *in_state; // input state data (or hidden state) + void *out_state; // output state data + + size_t comp_buf_size; // the size of temporary buffer. + size_t state_size; // the size of hidden state + uint16_t units; // the output units + uint16_t feature_size; // the input feature size (vector size) + + size_t macc; // stat of MAC count. +} nnom_rnn_cell_t; + +typedef struct _nnom_rnn_layer_t +{ + nnom_layer_t super; + nnom_rnn_cell_t *cell; + void *state_buf; // memory allocated to store state, size = 2 x size of state required by cell. + + uint16_t timestamp_size;// size of timestamp + bool return_sequence; // whether to return the output for each unit (sequence) + bool stateful; // whether the states are kept after one inteference + bool go_backwards; // whether go backwards timestamping +} nnom_rnn_layer_t; + + +// rnn layer +nnom_layer_t *rnn_s(nnom_rnn_cell_t *cell, const nnom_rnn_config_t* config); + +nnom_status_t rnn_run(nnom_layer_t* layer); +nnom_status_t rnn_build(nnom_layer_t* layer); +nnom_status_t rnn_free(nnom_layer_t* layer); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_RNN_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_simple_cell.h b/components/ai/nnom/inc/layers/nnom_simple_cell.h new file mode 100644 index 00000000..87977ed8 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_simple_cell.h @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-08-20 Jianjia Ma The first version + */ + +#ifndef __NNOM_SIMPLE_CELL_H__ +#define __NNOM_SIMPLE_CELL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "nnom_rnn.h" +#include "nnom_activation.h" + + +// This Simple Cell replicate the Keras's SimpleCell as blow +/* + def call(self, inputs, states, training=None): + prev_output = states[0] if nest.is_sequence(states) else states + + h = K.dot(inputs, self.kernel) + h = K.bias_add(h, self.bias) + + output = h + K.dot(prev_output, self.recurrent_kernel) + output = self.activation(output) + + new_state = [output] if nest.is_sequence(states) else output + return output, new_state +*/ + +// a machine interface for configuration +typedef struct _nnom_simple_cell_config_t +{ + nnom_layer_config_t super; + nnom_tensor_t *weights; + nnom_tensor_t* recurrent_weights; + nnom_tensor_t *bias; + nnom_qformat_param_t q_dec_iw, q_dec_hw, q_dec_h; + nnom_activation_type_t act_type; // type of the activation + uint16_t units; +} nnom_simple_cell_config_t; + + +typedef struct _nnom_simple_cell_t +{ + nnom_rnn_cell_t super; + nnom_activation_type_t act_type; + + nnom_tensor_t* weights; + nnom_tensor_t* recurrent_weights; + nnom_tensor_t* bias; + + // experimental, + // iw: input x weight + // hw: hidden state x recurrent weight + // h: hidden state + nnom_qformat_param_t q_dec_iw, q_dec_hw, q_dec_h; + nnom_qformat_param_t oshift_iw, oshift_hw, bias_shift; + +} nnom_simple_cell_t; + + +// RNN cells +// The shape for RNN input is (batch, timestamp, feature), where batch is always 1. +// +// SimpleCell +nnom_rnn_cell_t *simple_cell_s(const nnom_simple_cell_config_t* config); + +nnom_status_t simple_cell_free(nnom_rnn_cell_t* cell); +nnom_status_t simple_cell_build(nnom_rnn_cell_t* cell); +nnom_status_t simple_cell_run(nnom_rnn_cell_t* cell); + + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_SIMPLE_CELL_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_softmax.h b/components/ai/nnom/inc/layers/nnom_softmax.h new file mode 100644 index 00000000..230be327 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_softmax.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_SOFTMAX_H__ +#define __NNOM_SOFTMAX_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +typedef struct _nnom_softmax_config_t +{ + nnom_layer_config_t super; +} nnom_softmax_config_t; + + +// method +nnom_status_t softmax_run(nnom_layer_t *layer); +nnom_status_t softmax_build(nnom_layer_t *layer); + +// API +nnom_layer_t *softmax_s(const nnom_softmax_config_t * config); +nnom_layer_t *Softmax(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_SOFTMAX_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_sumpool.h b/components/ai/nnom/inc/layers/nnom_sumpool.h new file mode 100644 index 00000000..927615e8 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_sumpool.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_SUMPOOL_H__ +#define __NNOM_SUMPOOL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +#include "layers/nnom_maxpool.h" + +// Sum Pooling +typedef nnom_maxpool_layer_t nnom_sumpool_layer_t; + +// method +nnom_status_t sumpool_build(nnom_layer_t *layer); +nnom_status_t sumpool_run(nnom_layer_t *layer); + +// API +nnom_layer_t *sumpool_s(const nnom_pool_config_t * config); +nnom_layer_t *SumPool(nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_padding_t pad_type); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_SUMPOOL_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_upsample.h b/components/ai/nnom/inc/layers/nnom_upsample.h new file mode 100644 index 00000000..5db7c970 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_upsample.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_UPSAMPLE_H__ +#define __NNOM_UPSAMPLE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +// Up Sampling layer (UnPooling) +typedef struct _nnom_upsample_layer_t +{ + nnom_layer_t super; + nnom_3d_shape_t kernel; +} nnom_upsample_layer_t; + +typedef struct _nnom_upsample_config_t +{ + nnom_layer_config_t super; + nnom_shape_data_t kernel[2]; +} nnom_upsample_config_t; + +// API +nnom_layer_t *upsample_s(const nnom_upsample_config_t *config); +nnom_layer_t *UpSample(nnom_3d_shape_t kernel); + +// Methods +nnom_status_t upsample_build(nnom_layer_t *layer); +nnom_status_t upsample_run(nnom_layer_t *layer); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_UPSAMPLE_H__ */ diff --git a/components/ai/nnom/inc/layers/nnom_zero_padding.h b/components/ai/nnom/inc/layers/nnom_zero_padding.h new file mode 100644 index 00000000..9aefd6d0 --- /dev/null +++ b/components/ai/nnom/inc/layers/nnom_zero_padding.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-03 Jianjia Ma The first version + */ + +#ifndef __NNOM_ZERO_PADDING_H__ +#define __NNOM_ZERO_PADDING_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "nnom.h" +#include "nnom_layers.h" +#include "nnom_local.h" +#include "nnom_tensor.h" + +typedef struct _nnom_zero_padding_config_t +{ + nnom_layer_config_t super; + nnom_border_t pad; +} nnom_zero_padding_config_t; + +// zero padding +typedef struct _nnom_zero_padding_layer_t +{ + nnom_layer_t super; + nnom_border_t pad; +} nnom_zero_padding_layer_t; + +// API +nnom_layer_t *zeropadding_s(const nnom_zero_padding_config_t* config); +nnom_layer_t *ZeroPadding(nnom_border_t pad); + +// method +nnom_status_t zero_padding_build(nnom_layer_t *layer); +nnom_status_t zero_padding_run(nnom_layer_t *layer); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_ZERO_PADDING_H__ */ diff --git a/components/ai/nnom/inc/nnom.h b/components/ai/nnom/inc/nnom.h new file mode 100644 index 00000000..063175c1 --- /dev/null +++ b/components/ai/nnom/inc/nnom.h @@ -0,0 +1,413 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-02-05 Jianjia Ma The first version + * 2019-02-10 Jianjia Ma Compiler supports dense net connection + */ + +#ifndef __NNOM_H__ +#define __NNOM_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + +#include +#include +#include +#include +#include + +#include "nnom_port.h" + +#define NNOM_ALIGN (sizeof(char*)) // alignment when doing memory ops. Equal to size of pointer in byte. +#define q7_t int8_t +#define q15_t int16_t +#define q31_t int32_t +#define q63_t int64_t + +/* version */ +#define NNOM_MAJORVERSION 0 /**< major version number */ +#define NNOM_SUBVERSION 4 /**< minor version number */ +#define NNOM_REVISION 3 /**< revise version number */ +#define NNOM_VERSION ((NNOM_MAJORVERSION * 10000) + (NNOM_SUBVERSION * 100) + NNOM_REVISION) + +#ifdef ARM_NN_TRUNCATE +#define NNOM_TRUNCATE +#endif + +#ifndef NNOM_TRUNCATE + #define NNOM_ROUND(out_shift) ((0x1 << out_shift) >> 1 ) +#else + #define NNOM_ROUND(out_shift) 0 +#endif + +typedef enum +{ + NN_SUCCESS = 0, /**< No error */ + NN_ARGUMENT_ERROR = -1, /**< One or more arguments are incorrect */ + NN_LENGTH_ERROR = -2, /**< Length of data buffer is incorrect */ + NN_SIZE_MISMATCH = -3, /**< Size of matrices is not compatible with the operation. */ + NN_NANINF = -4, /**< Not-a-number (NaN) or infinity is generated */ + NN_SINGULAR = -5, /**< Generated by matrix inversion if the input matrix is singular and cannot be inverted. */ + NN_TEST_FAILURE = -6, /**< Test Failed */ + NN_NO_MEMORY = -7, + NN_MORE_TODO = -8 +} nnom_status_t; + +typedef enum +{ + NNOM_INVALID = 0, + NNOM_BASE, + NNOM_INPUT, + NNOM_OUTPUT, + NNOM_CONV_2D, + NNOM_DW_CONV_2D, + NNOM_CONV2D_TRANS, + NNOM_BATCHNORM, + NNOM_DENSE, + NNOM_ZERO_PADDING, + NNOM_CROPPING, + NNOM_RNN, + NNOM_ACTIVATION, + NNOM_RELU, + NNOM_LEAKY_RELU, + NNOM_ADV_RELU, + NNOM_SIGMOID, + NNOM_TANH, + NNOM_SOFTMAX, + NNOM_MAXPOOL, + NNOM_GLOBAL_MAXPOOL, + NNOM_AVGPOOL, + NNOM_GLOBAL_AVGPOOL, + NNOM_SUMPOOL, + NNOM_GLOBAL_SUMPOOL, + NNOM_UPSAMPLE, + NNOM_FLATTEN, + NNOM_LAMBDA, + NNOM_CONCAT, + NNOM_ADD, + NNOM_SUB, + NNOM_MULT, + NNOM_TYPE_MAX + +} nnom_layer_type_t; + +#define DEFUALT_LAYER_NAMES \ + { \ + "Unknown", \ + "Base", \ + "Input", \ + "Output", \ + "Conv2D", \ + "DW_Conv2D", \ + "Conv2DTrsp", \ + "BatchNorm", \ + "Dense", \ + "ZeroPad", \ + "Cropping", \ + "RNN", \ + "Activation", \ + "ReLU", \ + "Leaky_ReLU", \ + "Adv_ReLU", \ + "Sigmoid", \ + "Tanh", \ + "Softmax", \ + "MaxPool", \ + "GL_MaxPool", \ + "AvgPool", \ + "GL_AvgPool", \ + "SumPool", \ + "GL_SumPool", \ + "UpSample", \ + "Flatten", \ + "Lambda", \ + "Concat", \ + "Add", \ + "Sub", \ + "Mult", \ + } +extern const char default_layer_names[][12]; + +// We dont count softmax an activation here, softmax is instanced as a layer +typedef enum +{ + ACT_UNKNOWN = 0, + ACT_RELU, + ACT_LEAKY_RELU, + ACT_ADV_RELU, + ACT_TANH, + ACT_SIGMOID, + ACT_HARD_TANH, + ACT_HARD_SIGMOID +} nnom_activation_type_t; + +#define ACTIVATION_NAMES \ + { \ + "Unknown", \ + "ReLU", \ + "LkyReLU", \ + "AdvReLU", \ + "TanH", \ + "Sigmoid", \ + "HrdTanH", \ + "HrdSigd", \ + } +extern const char default_activation_names[][8]; + +// RNN cell type +typedef enum +{ + NNOM_UNKOWN_CELL = 0, + NNOM_SIMPLE_CELL, + NNOM_GRU_CELL, + NNOM_LSTM_CELL, + NNOM_CELL_TYPE_MAX +} nnom_rnn_cell_type_t; + +#define DEFUALT_CELL_NAMES \ + { \ + "Unknown", \ + "Simple", \ + "GRU", \ + "LSTM", \ + } +extern const char default_cell_names[][8]; + + +// parameters +typedef enum +{ + PADDING_VALID = 0, + PADDING_SAME +} nnom_padding_t; + +#define NNOM_TENSOR_BUF_NULL (0) // This buffer is not in used +#define NNOM_TENSOR_BUF_TEMP (1) // The memory in IO is temporary occupided, can be reused by other layer once the computation is done. +#define NNOM_TENSOR_BUF_RESERVED (2) // the mem is reserve for this layer only (not to be reused by other layer. + +// currently used in compiling. +#define NNOM_BUF_EMPTY (0) +#define NNOM_BUF_FILLED (1) + +// basic types +#define nnom_qformat_param_t int32_t // this should match the backend, need a better way to do it. +#define nnom_shape_data_t uint16_t + +typedef struct _nnom_3d_shape_t +{ + nnom_shape_data_t h, w, c; +} nnom_3d_shape_t; + +typedef struct _nnom_border_t +{ + nnom_shape_data_t top, bottom, left, right; +} nnom_border_t; + +// nnom_3d_shape_axis_t type provide the axis[] format access to nnom_3d_shape_t +typedef union { + nnom_3d_shape_t s; + nnom_shape_data_t axis[sizeof(nnom_3d_shape_t) / sizeof(nnom_shape_data_t)]; +} nnom_3d_shape_axis_t; + +// tensor quantisation types +typedef enum +{ + NNOM_QTYPE_PER_TENSOR = 0, + NNOM_QTYPE_PER_AXIS = 1 +} nnom_qtype_t; + +typedef struct _nnom_weights +{ + const void *p_value; + nnom_qformat_param_t shift; +} nnom_weight_t; + +typedef struct _nnom_bias +{ + const void *p_value; + nnom_qformat_param_t shift; +} nnom_bias_t; + +// experimental +typedef struct _nnom_tensor_t +{ + void* p_data; // value + nnom_shape_data_t *dim; // dimension of this tensor + nnom_qformat_param_t *q_dec; // number of decimal bit for Q format (scale) + nnom_qformat_param_t *q_offset; // offset for each channel + nnom_qtype_t qtype; // the quantisation type + uint8_t num_dim; // the number of dimension + uint8_t bitwidth; // the data bit width, only support 8bit now +} nnom_tensor_t; + +// nn wrappers +typedef struct _nnom_layer_t nnom_layer_t; +typedef struct _nnom_layer_io_t nnom_layer_io_t; +typedef struct _nnom_layer_hook_t nnom_layer_hook_t; +typedef struct _nnom_mem_block_t nnom_mem_block_t; + +// activation wrapper +typedef struct _nnom_activation_t nnom_activation_t; + +typedef struct _nnom_buf +{ + nnom_mem_block_t *mem; + size_t size; + uint8_t type; +} nnom_buf_t; + +// a memory block to store pre-assign memories during compiling. then assigned to each tensor after. +struct _nnom_mem_block_t +{ + void *blk; // data block location + size_t size; // the maximum size for this block + uint8_t owners; // how many layers own this block + uint8_t state; // empty? filled? for static nn, currently only used in compiling +}; + +typedef struct _nnom_stat_t +{ + size_t macc; //num. of mac operation + uint32_t time; +} nnom_layer_stat_t; + +struct _nnom_layer_hook_t +{ + nnom_layer_io_t *io; // hooked io + nnom_layer_hook_t *next; // next hook include secondary hooked layer +}; + +struct _nnom_layer_io_t +{ + nnom_layer_hook_t hook; // for example: (layer->out)--hook--(layer->in) + nnom_layer_io_t *aux; // point to auxilary I/O (multiple I/O layer) + nnom_tensor_t *tensor; // experimental + nnom_mem_block_t *mem; // memory blocks handles for compiling only. The memory are now pass by tensor. trying to remove it. + nnom_layer_t *owner; // which layer owns this io. + uint8_t type; +}; + +// structured configuration base type +typedef struct _nnom_layer_config_t +{ + char* name; // the name of the layer prequantiesd model (the model trained by user before converted to nnom) +} nnom_layer_config_t; + +// layers base +struct _nnom_layer_t +{ + nnom_layer_t *shortcut; // shortcut points to the next layer, applied on compiling + + nnom_status_t (*run)(nnom_layer_t *layer); // run method. required + nnom_status_t (*build)(nnom_layer_t *layer); // compute output buffer shape. can be left null, will call default_build() + nnom_status_t (*free)(nnom_layer_t *layer); // a callback to free private resources (comp buf not included) can be left null + nnom_buf_t *comp; // computational buf + nnom_activation_t *actail; // I have an activation, I have a tail, wooo haaaa, act-tail!!! + + nnom_layer_config_t *config; // point to the configuration of the layers. for machine api only. + nnom_layer_type_t type; // layer types + nnom_layer_io_t *in; // IO buff, last*layer, states + nnom_layer_io_t *out; // IO buff, next*layer, states + nnom_layer_stat_t stat; // stats, timing, ops +}; + +// activation base +struct _nnom_activation_t +{ + nnom_status_t (*run)(struct _nnom_activation_t *act); + nnom_tensor_t *tensor; + nnom_activation_type_t type; +}; + +// local static functions when libc is not available +#ifdef NNOM_USING_STATIC_MEMORY + void nnom_set_static_buf(void* buf, size_t size); + void *nnom_malloc(size_t size); + void nnom_free(void* p); +#endif //NNOM_USING_STATIC_BUF + +typedef struct _nnom_model nnom_model_t; + +#include "nnom_tensor.h" +#include "nnom_layers.h" +#include "nnom_utils.h" + +// models, I dont want to make model class as a child of layer class yet +struct _nnom_model +{ + nnom_layer_t *head; + nnom_layer_t *tail; + + // model constructor + nnom_status_t (*add)(struct _nnom_model *m, nnom_layer_t *layer); // has too pass a raw value + nnom_layer_t *(*hook)(nnom_layer_t *curr, nnom_layer_t *last); // create hook between 2 layers' primary IO. + nnom_layer_t *(*merge)(nnom_layer_t *method, nnom_layer_t *in1, nnom_layer_t *in2); // an older interface of merge 2 inputs. + nnom_layer_t *(*mergex)(nnom_layer_t *method, int num, ...); // merge a few layers using mutiple input method (concate, add, ...) + nnom_layer_t *(*active)(nnom_activation_t *act, nnom_layer_t *target_layer); // add the activation to the existing layer's tail + + // callback + nnom_status_t (*layer_callback)(nnom_model_t *m, nnom_layer_t *layer); // layer callback will be called after each layer(after actail). + + // block memory for layers + nnom_mem_block_t blocks[NNOM_BLOCK_NUM]; + + size_t total_ops; + + bool is_inited; // is this structure initialized + bool is_allocated; // is this structure allocated by nnom (not by user) +}; + +#define NNOM_NULL_CHECK(p) \ + if ((p) == NULL) \ + { \ + NNOM_LOG("Error: NULL object.\n"); \ + return NN_ARGUMENT_ERROR; \ + } + + +// utils +size_t nnom_alignto(size_t value, uint32_t alignment); +size_t nnom_io_length(nnom_layer_io_t *io); +size_t nnom_hook_length(nnom_layer_hook_t *hook); + +// memory (malloc + memeset 0) +void *nnom_mem(size_t size); + +// get how much memory has been taken +size_t nnom_mem_stat(void); + +// Model APIs +// create or init a model +nnom_model_t *new_model(nnom_model_t *m); +// compile as sequencial model +nnom_status_t sequencial_compile(nnom_model_t *m); +// compile as functional model +nnom_status_t model_compile(nnom_model_t *m, nnom_layer_t *input, nnom_layer_t *output); +// run a prediction +nnom_status_t model_run(nnom_model_t *m); +// delete model. +void model_delete(nnom_model_t *m); +// check version +nnom_status_t check_model_version(unsigned long model_version); + +// callback, called after each layer has finished the calculation. +// this callback must return NN_SUCCESS for continually run the model. otherwise, model will be returned with the ERROR code. +// this function return NN_LENGTH_ERROR if the callback is already set to other. +nnom_status_t model_set_callback(nnom_model_t *m, nnom_status_t (*layer_callback)(nnom_model_t *m, nnom_layer_t *layer)); +// delete callback. +void model_delete_callback(nnom_model_t *m); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_H__ */ diff --git a/components/ai/nnom/inc/nnom_layers.h b/components/ai/nnom/inc/nnom_layers.h new file mode 100644 index 00000000..de9aeb46 --- /dev/null +++ b/components/ai/nnom/inc/nnom_layers.h @@ -0,0 +1,191 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-02-05 Jianjia Ma The first version + */ + +#ifndef __NNOM_LAYERS_H__ +#define __NNOM_LAYERS_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + +#include +#include +#include + +#include "nnom.h" + +// properties +nnom_3d_shape_t shape(size_t h, size_t w, size_t c); +nnom_3d_shape_t kernel(size_t h, size_t w); +nnom_3d_shape_t stride(size_t h, size_t w); +nnom_3d_shape_t dilation(size_t h, size_t w); +nnom_border_t border(size_t top, size_t bottom, size_t left, size_t right); +//nnom_qformat_t qformat(int8_t m, int8_t n); +size_t shape_size(nnom_3d_shape_t* s); + +// this function is to add a new IO to current inited IO +// input, the targeted IO that the new IO will be added to +// output , the new IO +nnom_layer_io_t* io_add_aux(nnom_layer_io_t* targeted_io); +nnom_layer_io_t *io_init(void *owner_layer, nnom_layer_io_t *io); + +#define NN_CEILIF(x,y) ((x+y-1)/y) + +#include "layers/nnom_activation.h" +#include "layers/nnom_concat.h" +#include "layers/nnom_conv2d.h" +#include "layers/nnom_cropping.h" +#include "layers/nnom_conv2d_trans.h" +#include "layers/nnom_dense.h" +#include "layers/nnom_dw_conv2d.h" +#include "layers/nnom_flatten.h" +#include "layers/nnom_global_pool.h" +#include "layers/nnom_input.h" +#include "layers/nnom_lambda.h" +#include "layers/nnom_matrix.h" +#include "layers/nnom_maxpool.h" +#include "layers/nnom_avgpool.h" +#include "layers/nnom_output.h" +#include "layers/nnom_rnn.h" +#include "layers/nnom_softmax.h" +#include "layers/nnom_sumpool.h" +#include "layers/nnom_upsample.h" +#include "layers/nnom_zero_padding.h" +#include "layers/nnom_rnn.h" +#include "layers/nnom_simple_cell.h" +#include "layers/nnom_lstm_cell.h" +#include "layers/nnom_gru_cell.h" + +// Layer APIs ****** +// (a summary for each individual layer's files) + +// input/output +nnom_layer_t *Input(nnom_3d_shape_t input_shape, void *p_buf); +nnom_layer_t *Output(nnom_3d_shape_t output_shape, void *p_buf); + +// Pooling +nnom_layer_t *MaxPool(nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_padding_t pad); +nnom_layer_t *AvgPool(nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_padding_t pad); +nnom_layer_t *SumPool(nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_padding_t pad); +nnom_layer_t *GlobalMaxPool(void); +nnom_layer_t *GlobalAvgPool(void); +nnom_layer_t *GlobalSumPool(void); + +// padding, cropping, upsample +nnom_layer_t *UpSample(nnom_3d_shape_t kernel); +nnom_layer_t *ZeroPadding(nnom_border_t pad); +nnom_layer_t *Cropping(nnom_border_t pad); + +// Activation +nnom_layer_t *Activation(nnom_activation_t *act); +nnom_layer_t *ReLU(void); +nnom_layer_t *LeakyReLU(float alpha); +nnom_layer_t *Softmax(void); +nnom_layer_t *Sigmoid(int32_t dec_bit); // input dec bit +nnom_layer_t *TanH(int32_t dec_bit); // input dec bit + +// Matrix +nnom_layer_t *Add(int16_t oshift); // output shift +nnom_layer_t *Sub(int16_t oshift); // output shift +nnom_layer_t *Mult(int16_t oshift); // output shift + +nnom_layer_t *Flatten(void); +nnom_layer_t *Concat(int8_t axis); +// -- NN Constructers -- +// conv2d +nnom_layer_t *Conv2D(uint32_t filters, nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_3d_shape_t d, nnom_padding_t pad, + const nnom_weight_t *w, const nnom_bias_t *b); + +// deconv2d +nnom_layer_t *Conv2DTrans(uint32_t filters, nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_3d_shape_t d, nnom_padding_t pad, + const nnom_weight_t *w, const nnom_bias_t *b); + +// depthwise_convolution +nnom_layer_t *DW_Conv2D(uint32_t multiplier, nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_3d_shape_t d, nnom_padding_t pad, + const nnom_weight_t *w, const nnom_bias_t *b); + +// fully connected, dense +nnom_layer_t *Dense(size_t output_unit, const nnom_weight_t *w, const nnom_bias_t *b); + + +// Lambda Layers +nnom_layer_t *Lambda(nnom_status_t (*run)(nnom_layer_t *), // run method, required + nnom_status_t (*build)(nnom_layer_t *), // optional, call default_build() if left null + nnom_status_t (*free)(nnom_layer_t *), // not required if no resources needs to be deleted, can be left null. + void *parameters); // user private parameters for run method, left null if not needed. + +// building methods +nnom_status_t default_build(nnom_layer_t* layer); +nnom_status_t input_build(nnom_layer_t* layer); + +nnom_status_t conv2d_build(nnom_layer_t* layer); +nnom_status_t dw_conv2d_build(nnom_layer_t* layer); +nnom_status_t conv2d_trans_build(nnom_layer_t* layer); +nnom_status_t dense_build(nnom_layer_t* layer); +nnom_status_t rnn_build(nnom_layer_t* layer); + +nnom_status_t upsample_build(nnom_layer_t* layer); +nnom_status_t zero_padding_build(nnom_layer_t* layer); +nnom_status_t cropping_build(nnom_layer_t* layer); + +nnom_status_t maxpool_build(nnom_layer_t* layer); +nnom_status_t avgpool_build(nnom_layer_t* layer); +nnom_status_t sumpool_build(nnom_layer_t* layer); +nnom_status_t global_pool_build(nnom_layer_t* layer); + +nnom_status_t flatten_build(nnom_layer_t* layer); +nnom_status_t concat_build(nnom_layer_t* layer); + +// run +nnom_status_t input_run(nnom_layer_t* layer); +nnom_status_t output_run(nnom_layer_t* layer); +nnom_status_t flatten_run(nnom_layer_t* layer); +nnom_status_t default_run(nnom_layer_t* layer); // simply copy data from input to output + +nnom_status_t dw_conv2d_run(nnom_layer_t* layer); +nnom_status_t conv2d_run(nnom_layer_t* layer); +nnom_status_t conv2d_trans_run(nnom_layer_t* layer); +nnom_status_t dense_run(nnom_layer_t* layer); +nnom_status_t rnn_run(nnom_layer_t* layer); + +nnom_status_t upsample_run(nnom_layer_t* layer); +nnom_status_t zero_padding_run(nnom_layer_t* layer); +nnom_status_t cropping_run(nnom_layer_t* layer); + +nnom_status_t activation_run(nnom_layer_t* layer); +nnom_status_t softmax_run(nnom_layer_t* layer); + +nnom_status_t maxpool_run(nnom_layer_t* layer); +nnom_status_t avgpool_run(nnom_layer_t* layer); +nnom_status_t sumpool_run(nnom_layer_t* layer); + +nnom_status_t concat_run(nnom_layer_t* layer); +nnom_status_t add_run(nnom_layer_t* layer); +nnom_status_t sub_run(nnom_layer_t* layer); +nnom_status_t mult_run(nnom_layer_t* layer); + +// Activation APIs +// Softmax is not considered as activation in NNoM, Softmax is in layer API. +nnom_activation_t* act_relu(void); +nnom_activation_t* act_leaky_relu(float alpha); +nnom_activation_t* act_sigmoid(int32_t dec_bit); +nnom_activation_t* act_tanh(int32_t dec_bit); + +// direct API +nnom_status_t act_tensor_run(nnom_activation_t* act, nnom_tensor_t* tensor); + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_LAYERS_H__ */ diff --git a/components/ai/nnom/inc/nnom_local.h b/components/ai/nnom/inc/nnom_local.h new file mode 100644 index 00000000..35845a56 --- /dev/null +++ b/components/ai/nnom/inc/nnom_local.h @@ -0,0 +1,974 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Notice: + * Code in this file inlcudes derivative works from CMSIS, which is released under alternative license. + * Please check the LICENSE file for detial. + * + * Change Logs: + * Date Author Notes + * 2019-02-05 Jianjia Ma The first version + * 2019-03-19 Jianjia Ma Local C implementation partly from CMSIS-NN + */ + +#ifndef __NNOM_LOCAL_H__ +#define __NNOM_LOCAL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + +#include "stdint.h" +#include "nnom_port.h" + +#ifdef ARM_NN_TRUNCATE +#define NNOM_TRUNCATE +#endif + +// SSAT implementation with C code +#ifndef __NNOM_SSAT +static inline int __NNOM_SSAT(int32_t value, int32_t bit) { + int32_t min = -(1<<(bit-1)); + int32_t max = (1<<(bit-1)) - 1; + if (value < min) + return min; + else if (value > max) + return max; + else + return value; +} +#endif + +// USAT implementation with C code +#ifndef __NNOM_USAT +static inline int __NNOM_USAT(int32_t value, int32_t bit) { + int32_t max = (1<<(bit-1)) - 1; + if (value < 0) + return 0; + else if (value > max) + return max; + else + return value; +} +#endif + +#define MAX(A, B) ((A) > (B) ? (A) : (B)) +#define MIN(A, B) ((A) < (B) ? (A) : (B)) + + +// Those functions/tables below are partially modifed from CMSIS-NN lib +// https://github.com/ARM-software/CMSIS_5 +// +void local_avepool_q7_HWC(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, NULL by now + q7_t *Im_out); + +void local_avepool_q7_CHW(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, NULL by now + q7_t *Im_out); + +// modified from CMSIS-NN test_ref +void local_maxpool_q7_HWC(const q7_t * Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t * bufferA, // a buffer for local storage, NULL by now + q7_t * Im_out); + +void local_maxpool_q7_CHW(const q7_t * Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t * bufferA, // a buffer for local storage, NULL by now + q7_t * Im_out); + +void local_sumpool_q7_HWC(const q7_t * Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t * bufferA, // a buffer for local storage, size = 4*output_size + q7_t * Im_out); + +void local_sumpool_q7_CHW(const q7_t * Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t * bufferA, // a buffer for local storage, size = 4*output_size + q7_t * Im_out); + +// customised up sample pooling +void local_up_sampling_q7_HWC(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // NULL + q7_t *Im_out); + +void local_up_sampling_q7_CHW(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // NULL + q7_t *Im_out); + +void local_convolve_HWC_q7_nonsquare(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +); + +void local_convolve_CHW_q7_nonsquare(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +); + +void local_conv_trans_HWC_q7_nonsquare(const int8_t * Im_in, + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const uint16_t bias_shift, const uint16_t out_shift, q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +); + +void local_depthwise_separable_conv_HWC_q7_nonsquare(const q7_t *Im_in,// input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +); + +void local_depthwise_separable_conv_CHW_q7_nonsquare(const q7_t *Im_in,// input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +); + +void local_zero_padding_HWC_q7(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const uint16_t padding_top, // padding sizes y + const uint16_t padding_bottom, // padding sizes y + const uint16_t padding_left, // padding sizes x + const uint16_t padding_right, // padding sizes x + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y); // output image dimension y + +void local_zero_padding_CHW_q7(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const uint16_t padding_top, // padding sizes y + const uint16_t padding_bottom, // padding sizes y + const uint16_t padding_left, // padding sizes x + const uint16_t padding_right, // padding sizes x + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y); // output image dimension y + +void local_cropping_HWC_q7(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const uint16_t padding_top, // padding sizes y + const uint16_t padding_bottom, // padding sizes y + const uint16_t padding_left, // padding sizes x + const uint16_t padding_right, // padding sizes x + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y); // output image dimension y + +void local_cropping_CHW_q7(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const uint16_t padding_top, // padding sizes y + const uint16_t padding_bottom, // padding sizes y + const uint16_t padding_left, // padding sizes x + const uint16_t padding_right, // padding sizes x + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y); // output image dimension y + +void local_fully_connected_q7_opt(const q7_t * pV, // pointer to vector + const q7_t * pM, // pointer to matrix + const uint16_t dim_vec, // length of the vector + const uint16_t num_of_rows, // numCol of A + const uint16_t bias_shift, // amount of left-shift for bias + const uint16_t out_shift, // amount of right-shift for output + const q7_t * bias, q7_t * pOut, // output operand + q15_t * vec_buffer); + + +void local_fully_connected_q7(const q7_t * pV, // pointer to vector + const q7_t * pM, // pointer to matrix + const uint16_t dim_vec, // length of the vector + const uint16_t num_of_rows, // numCol of A + const uint16_t bias_shift, // amount of left-shift for bias + const uint16_t out_shift, // amount of right-shift for output + const q7_t * bias, q7_t * pOut, // output operand + q15_t * vec_buffer); + +// matrix dot, +// it takes reorderd weight as input, (see dense layer for detail. this is basiclly a dense opt without bias) +void local_dot_q7_opt(const q7_t *pV, // pointer to vector + const q7_t *pM, // pointer to matrix + const uint16_t dim_vec, // length of the vector + const uint16_t num_of_rows, // numCol of A + const uint16_t out_shift, // amount of right-shift for output + q7_t *pOut); // result buffer + +void local_dot_q7(const q7_t *pV, // pointer to vector + const q7_t *pM, // pointer to matrix + const uint16_t dim_vec, // length of the vector + const uint16_t num_of_rows, // numCol of A + const uint16_t out_shift, // amount of right-shift for output + q7_t *pOut); // output operand) + + + +// softmax +void local_softmax_q7(const q7_t * vec_in, const uint32_t dim_vec, q7_t * p_out); + +// sigmoid +void local_sigmoid_q7(q7_t * data, uint32_t size, int16_t int_width); + +// tanh +void local_tanh_q7(q7_t * data, uint32_t size, int16_t int_width); + +// relu +void local_relu_q7(q7_t * data, uint32_t size); + +// leaky relu +void local_leaky_relu_q7(q7_t *data, q7_t alpha, uint32_t size); + +// alpha in q7 format with dec_bit=7 +// max and threshold has the same Q format with the activation +void local_adv_relu_q7(q7_t *data, q7_t alpha, q7_t max, q7_t threshold, uint32_t size); + +// hard sigmoid, +// y=-1 if x < -2.5 +// y=1 if x > 2.5 +// otherwise y = 0.2 * x + 0.5 (y=0.20315 * x + 0.5) +void local_hard_sigmoid_q7(q7_t *data, uint32_t size, int16_t dec_bit); + +// hard tanh +// y=-1 if x < -1 +// y=1 if x > 1 +// otherwise y = x +void local_hard_tanh_q7(q7_t *data, uint32_t size, int16_t dec_bit); + +// matrix ops +void local_mult_q7(q7_t * pSrcA, q7_t * pSrcB, q7_t * pDst, const uint16_t out_shift, uint32_t blockSize); + +// add +void local_add_q7(q7_t * pSrcA, q7_t * pSrcB, q7_t * pDst, const uint16_t out_shift, uint32_t blockSize); + +// sub +void local_sub_q7(q7_t * pSrcA, q7_t * pSrcB, q7_t * pDst, const uint16_t out_shift, uint32_t blockSize); + +// take multiple blocks (>2) as input +void local_multiple_add_q7( q7_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q7_t **p_src); + +void local_multiple_mult_q7( q7_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q7_t **p_src); + +void local_multiple_sub_q7( q7_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q7_t **p_src); + + +// Below tables credit to CMSIS +// For more info. check CMSIS-NN lib +// https://github.com/ARM-software/CMSIS_5/blob/develop/CMSIS/NN/Source/NNSupportFunctions/arm_nntables.c +static const q7_t nnom_sigmoid_table_q7[256] = { + 0x40, 0x42, 0x44, 0x46, 0x48, 0x4a, 0x4c, 0x4e, + 0x50, 0x52, 0x53, 0x55, 0x57, 0x59, 0x5a, 0x5c, + 0x5e, 0x5f, 0x61, 0x62, 0x63, 0x65, 0x66, 0x67, + 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, + 0x71, 0x72, 0x72, 0x73, 0x74, 0x74, 0x75, 0x76, + 0x76, 0x77, 0x77, 0x78, 0x78, 0x79, 0x79, 0x7a, + 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, + 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, + 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x06, + 0x06, 0x06, 0x07, 0x07, 0x08, 0x08, 0x09, 0x09, + 0x0a, 0x0a, 0x0b, 0x0c, 0x0c, 0x0d, 0x0e, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x19, 0x1a, 0x1b, 0x1d, 0x1e, 0x1f, 0x21, + 0x22, 0x24, 0x26, 0x27, 0x29, 0x2b, 0x2d, 0x2e, + 0x30, 0x32, 0x34, 0x36, 0x38, 0x3a, 0x3c, 0x3e, +}; + + +static const q7_t nnom_tanh_table_q7[256] = { + 0x00, 0x08, 0x10, 0x18, 0x1f, 0x27, 0x2e, 0x35, + 0x3b, 0x41, 0x47, 0x4c, 0x51, 0x56, 0x5a, 0x5e, + 0x61, 0x65, 0x68, 0x6a, 0x6d, 0x6f, 0x71, 0x72, + 0x74, 0x75, 0x76, 0x78, 0x78, 0x79, 0x7a, 0x7b, + 0x7b, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, + 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, + 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, + 0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x84, 0x84, + 0x85, 0x85, 0x86, 0x87, 0x88, 0x88, 0x8a, 0x8b, + 0x8c, 0x8e, 0x8f, 0x91, 0x93, 0x96, 0x98, 0x9b, + 0x9f, 0xa2, 0xa6, 0xaa, 0xaf, 0xb4, 0xb9, 0xbf, + 0xc5, 0xcb, 0xd2, 0xd9, 0xe1, 0xe8, 0xf0, 0xf8, +}; + + +// ------------ 16bit ops -------------------- + +void local_avepool_q15_HWC(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, NULL by now + q15_t *Im_out); + +void local_avepool_q15_CHW(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, NULL by now + q15_t *Im_out); + +void local_maxpool_q15_HWC(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, NULL by now + q15_t *Im_out); + +void local_maxpool_q15_CHW(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, NULL by now + q15_t *Im_out); + +void local_sumpool_q15_HWC(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, size = 4*output_size + q15_t *Im_out); + +void local_sumpool_q15_CHW(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, size = 4*output_size + q15_t *Im_out); + +void local_up_sampling_q15_HWC(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, NULL by now + q15_t *Im_out); + + void local_up_sampling_q15_CHW(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, NULL by now + q15_t *Im_out); + +void local_convolve_HWC_q15_nonsquare(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +); +void local_convolve_CHW_q15_nonsquare(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +); + +void local_conv_trans_HWC_q15_nonsquare(const int8_t * Im_in, + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const uint16_t bias_shift, const uint16_t out_shift, q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +); + +void local_depthwise_separable_conv_HWC_q15_nonsquare(const q15_t *Im_in,// input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +); + +void local_depthwise_separable_conv_CHW_q15_nonsquare(const q15_t *Im_in,// input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +); + +void local_zero_padding_HWC_q15(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const uint16_t padding_top, // padding sizes y + const uint16_t padding_bottom, // padding sizes y + const uint16_t padding_left, // padding sizes x + const uint16_t padding_right, // padding sizes x + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y); // output image dimension y + +void local_zero_padding_CHW_q15(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const uint16_t padding_top, // padding sizes y + const uint16_t padding_bottom, // padding sizes y + const uint16_t padding_left, // padding sizes x + const uint16_t padding_right, // padding sizes x + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y); // output image dimension y + +void local_cropping_HWC_q15(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const uint16_t padding_top, // padding sizes y + const uint16_t padding_bottom, // padding sizes y + const uint16_t padding_left, // padding sizes x + const uint16_t padding_right, // padding sizes x + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y); // output image dimension y + +void local_cropping_CHW_q15(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const uint16_t padding_top, // padding sizes y + const uint16_t padding_bottom, // padding sizes y + const uint16_t padding_left, // padding sizes x + const uint16_t padding_right, // padding sizes x + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y); // output image dimension y + + +void local_dot_q15(const q15_t *pV, // pointer to vector + const q15_t *pM, // pointer to matrix + const uint16_t dim_vec, // length of the vector + const uint16_t num_of_rows, // numCol of A + const uint16_t out_shift, // amount of right-shift for output + q15_t *pOut); // output operand) + +void local_dot_q15_opt(const q15_t * pV, + const q15_t * pM, + const uint16_t dim_vec, + const uint16_t num_of_rows, + const uint16_t out_shift, + q15_t * pOut); + +// original implementation +// this support none bias, the it will perform like a dot. +// set the `bias=NULL` to work +void local_fully_connected_mat_q7_vec_q15(const q15_t * pV, // pointer to vector + const q7_t * pM, // pointer to matrix + const uint16_t dim_vec, // length of the vector + const uint16_t num_of_rows, // numCol of A + const uint16_t bias_shift, // amount of left-shift for bias + const uint16_t out_shift, // amount of right-shift for output + const q7_t * bias, // bias + q15_t * pOut, // output + q15_t * vec_buffer); // not used but to keep the interface same as the ARM's version + +// work on recorder matrix +// this support none bias, set the bias=NULL to work +void local_fully_connected_mat_q7_vec_q15_opt(const q15_t * pV, + const q7_t * pM, + const uint16_t dim_vec, + const uint16_t num_of_rows, + const uint16_t bias_shift, + const uint16_t out_shift, + const q7_t * bias, + q15_t * pOut, + q15_t * vec_buffer); + +// matrix operation Q15 +void local_multiple_add_q15( q15_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q15_t **p_src); + +void local_multiple_mult_q15( q15_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q15_t **p_src); + +void local_multiple_sub_q15( q15_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q15_t **p_src); + +void local_mult_q15(q15_t * pSrcA, q15_t * pSrcB, q15_t * pDst, const uint16_t out_shift, uint32_t blockSize); + +// add +void local_add_q15(q15_t * pSrcA, q15_t * pSrcB, q15_t * pDst, const uint16_t out_shift, uint32_t blockSize); + +// sub +void local_sub_q15(q15_t * pSrcA, q15_t * pSrcB, q15_t * pDst, const uint16_t out_shift, uint32_t blockSize); + +// Convert Q7 to Q15 +void local_q7_to_q15_no_shift(const q7_t *src, q15_t *des, uint32_t size); +void local_q7_to_q15(const q7_t *src, q15_t *des, uint32_t size); + +// q15 shift to q7 +void local_q15_to_q7(const q15_t *src, q7_t *des, uint32_t shift, uint32_t size); + +// y = 1 - x +void local_1_minor_z_q15(q15_t *src, q15_t *des, uint16_t dec_bit, uint32_t size); + +void local_softmax_q15(const q15_t * vec_in, const uint16_t dim_vec, q15_t * p_out); +void local_hard_sigmoid_q15(q15_t *data, uint32_t size, int16_t dec_bit); +void local_hard_tanh_q15(q15_t *data, uint32_t size, int16_t dec_bit); +void local_relu_q15(q15_t *data, uint32_t size); +void local_leaky_relu_q15(q15_t *data, q7_t alpha, uint32_t size); +void local_adv_relu_q15(q15_t *data, q7_t negative_slope, q15_t max, q15_t threshold, uint32_t size); +void local_sigmoid_q15(q15_t * data, uint32_t size, uint16_t int_width); +void local_tanh_q15(q15_t * data, uint32_t size, uint16_t int_width); + + +static const q15_t nnom_sigmoid_table_q15[256] = { + 0x4000, 0x4200, 0x43ff, 0x45fc, 0x47f5, 0x49eb, 0x4bdc, 0x4dc8, + 0x4fad, 0x518a, 0x5360, 0x552c, 0x56ef, 0x58a8, 0x5a57, 0x5bfb, + 0x5d93, 0x5f20, 0x60a1, 0x6216, 0x637f, 0x64db, 0x662b, 0x676f, + 0x68a6, 0x69d2, 0x6af1, 0x6c05, 0x6d0d, 0x6e09, 0x6efb, 0x6fe2, + 0x70be, 0x7190, 0x7258, 0x7316, 0x73cc, 0x7478, 0x751b, 0x75b7, + 0x764a, 0x76d6, 0x775b, 0x77d8, 0x784f, 0x78c0, 0x792a, 0x798f, + 0x79ee, 0x7a48, 0x7a9d, 0x7aed, 0x7b39, 0x7b80, 0x7bc4, 0x7c03, + 0x7c3f, 0x7c78, 0x7cad, 0x7ce0, 0x7d0f, 0x7d3c, 0x7d66, 0x7d8d, + 0x7db3, 0x7dd6, 0x7df7, 0x7e16, 0x7e33, 0x7e4f, 0x7e69, 0x7e81, + 0x7e98, 0x7eae, 0x7ec2, 0x7ed5, 0x7ee7, 0x7ef8, 0x7f08, 0x7f17, + 0x7f25, 0x7f32, 0x7f3e, 0x7f4a, 0x7f55, 0x7f5f, 0x7f69, 0x7f72, + 0x7f7b, 0x7f83, 0x7f8a, 0x7f91, 0x7f98, 0x7f9e, 0x7fa4, 0x7faa, + 0x7faf, 0x7fb4, 0x7fb8, 0x7fbd, 0x7fc1, 0x7fc5, 0x7fc8, 0x7fcc, + 0x7fcf, 0x7fd2, 0x7fd5, 0x7fd7, 0x7fda, 0x7fdc, 0x7fde, 0x7fe0, + 0x7fe2, 0x7fe4, 0x7fe6, 0x7fe7, 0x7fe9, 0x7fea, 0x7feb, 0x7fed, + 0x7fee, 0x7fef, 0x7ff0, 0x7ff1, 0x7ff2, 0x7ff3, 0x7ff4, 0x7ff4, + 0x000b, 0x000c, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, + 0x0012, 0x0013, 0x0015, 0x0016, 0x0017, 0x0019, 0x001a, 0x001c, + 0x001e, 0x0020, 0x0022, 0x0024, 0x0026, 0x0029, 0x002b, 0x002e, + 0x0031, 0x0034, 0x0038, 0x003b, 0x003f, 0x0043, 0x0048, 0x004c, + 0x0051, 0x0056, 0x005c, 0x0062, 0x0068, 0x006f, 0x0076, 0x007d, + 0x0085, 0x008e, 0x0097, 0x00a1, 0x00ab, 0x00b6, 0x00c2, 0x00ce, + 0x00db, 0x00e9, 0x00f8, 0x0108, 0x0119, 0x012b, 0x013e, 0x0152, + 0x0168, 0x017f, 0x0197, 0x01b1, 0x01cd, 0x01ea, 0x0209, 0x022a, + 0x024d, 0x0273, 0x029a, 0x02c4, 0x02f1, 0x0320, 0x0353, 0x0388, + 0x03c1, 0x03fd, 0x043c, 0x0480, 0x04c7, 0x0513, 0x0563, 0x05b8, + 0x0612, 0x0671, 0x06d6, 0x0740, 0x07b1, 0x0828, 0x08a5, 0x092a, + 0x09b6, 0x0a49, 0x0ae5, 0x0b88, 0x0c34, 0x0cea, 0x0da8, 0x0e70, + 0x0f42, 0x101e, 0x1105, 0x11f7, 0x12f3, 0x13fb, 0x150f, 0x162e, + 0x175a, 0x1891, 0x19d5, 0x1b25, 0x1c81, 0x1dea, 0x1f5f, 0x20e0, + 0x226d, 0x2405, 0x25a9, 0x2758, 0x2911, 0x2ad4, 0x2ca0, 0x2e76, + 0x3053, 0x3238, 0x3424, 0x3615, 0x380b, 0x3a04, 0x3c01, 0x3e00, +}; + + +static const q15_t nnom_tanh_table_q15[256] = { + 0x0000, 0x07fd, 0x0feb, 0x17b9, 0x1f59, 0x26bf, 0x2ddf, 0x34ae, + 0x3b27, 0x4142, 0x46fd, 0x4c56, 0x514d, 0x55e2, 0x5a1a, 0x5df6, + 0x617c, 0x64b0, 0x6797, 0x6a37, 0x6c95, 0x6eb5, 0x709e, 0x7254, + 0x73dc, 0x753a, 0x7672, 0x7788, 0x787f, 0x795b, 0x7a1e, 0x7acb, + 0x7b65, 0x7bee, 0x7c66, 0x7cd1, 0x7d30, 0x7d84, 0x7dce, 0x7e0f, + 0x7e49, 0x7e7d, 0x7eaa, 0x7ed2, 0x7ef5, 0x7f14, 0x7f30, 0x7f48, + 0x7f5e, 0x7f71, 0x7f82, 0x7f91, 0x7f9e, 0x7fa9, 0x7fb3, 0x7fbc, + 0x7fc4, 0x7fcb, 0x7fd1, 0x7fd7, 0x7fdc, 0x7fe0, 0x7fe4, 0x7fe7, + 0x7fea, 0x7fed, 0x7fef, 0x7ff1, 0x7ff3, 0x7ff4, 0x7ff6, 0x7ff7, + 0x7ff8, 0x7ff9, 0x7ffa, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffc, 0x7ffd, + 0x7ffd, 0x7ffd, 0x7ffe, 0x7ffe, 0x7ffe, 0x7ffe, 0x7fff, 0x7fff, + 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, + 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, + 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, + 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, + 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, + 0x8000, 0x8000, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, + 0x8001, 0x8001, 0x8001, 0x8002, 0x8002, 0x8002, 0x8002, 0x8003, + 0x8003, 0x8003, 0x8004, 0x8004, 0x8005, 0x8006, 0x8006, 0x8007, + 0x8008, 0x8009, 0x800a, 0x800c, 0x800d, 0x800f, 0x8011, 0x8013, + 0x8016, 0x8019, 0x801c, 0x8020, 0x8024, 0x8029, 0x802f, 0x8035, + 0x803c, 0x8044, 0x804d, 0x8057, 0x8062, 0x806f, 0x807e, 0x808f, + 0x80a2, 0x80b8, 0x80d0, 0x80ec, 0x810b, 0x812e, 0x8156, 0x8183, + 0x81b7, 0x81f1, 0x8232, 0x827c, 0x82d0, 0x832f, 0x839a, 0x8412, + 0x849b, 0x8535, 0x85e2, 0x86a5, 0x8781, 0x8878, 0x898e, 0x8ac6, + 0x8c24, 0x8dac, 0x8f62, 0x914b, 0x936b, 0x95c9, 0x9869, 0x9b50, + 0x9e84, 0xa20a, 0xa5e6, 0xaa1e, 0xaeb3, 0xb3aa, 0xb903, 0xbebe, + 0xc4d9, 0xcb52, 0xd221, 0xd941, 0xe0a7, 0xe847, 0xf015, 0xf803, +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __NNOM_LOCAL_H__ */ diff --git a/components/ai/nnom/inc/nnom_tensor.h b/components/ai/nnom/inc/nnom_tensor.h new file mode 100644 index 00000000..6853da86 --- /dev/null +++ b/components/ai/nnom/inc/nnom_tensor.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-02-05 Jianjia Ma The first version + * 2019-02-10 Jianjia Ma Compiler supports dense net connection + */ + +#ifndef __NNOM_TENSOR_H__ +#define __NNOM_TENSOR_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "nnom.h" + + +void delete_tensor(nnom_tensor_t* t); +nnom_tensor_t* new_tensor(nnom_qtype_t type, uint32_t num_dim, uint32_t num_channel); +// set tensor by value +// for tensor with quantized type NNOM_QTYPE_PER_TENSOR +nnom_tensor_t* tensor_set_attr_v(nnom_tensor_t* t, + nnom_qformat_param_t dec_bit, nnom_qformat_param_t offset, nnom_shape_data_t* dim, uint32_t num_dim, uint8_t bitwidth); +nnom_tensor_t* tensor_set_attr(nnom_tensor_t* t, + nnom_qformat_param_t*dec_bit, nnom_qformat_param_t *offset, nnom_shape_data_t* dim, uint32_t num_dim, uint8_t bitwidth); +nnom_tensor_t* tensor_cpy_attr(nnom_tensor_t* des, nnom_tensor_t* src); +size_t tensor_get_num_channel(nnom_tensor_t* t); +size_t tensor_size(nnom_tensor_t* t); +size_t tensor_size_byte(nnom_tensor_t* t); + +// only support 3d tensor +// change format from CHW to HWC +// the shape of the data, input data, output data +void tensor_hwc2chw_q7(nnom_tensor_t* des, nnom_tensor_t* src); + +// change format from CHW to HWC +// the shape of the data, input data, output data +void tensor_chw2hwc_q7(nnom_tensor_t* des, nnom_tensor_t* src); + +// deprecated. +void hwc2chw_q7(nnom_3d_shape_t shape, q7_t* p_in, q7_t* p_out); +void chw2hwc_q7(nnom_3d_shape_t shape, q7_t* p_in, q7_t* p_out); + +#ifdef __cplusplus +} +#endif + +#endif /*__NNOM_TENSOR_H__ */ diff --git a/components/ai/nnom/inc/nnom_utils.h b/components/ai/nnom/inc/nnom_utils.h new file mode 100644 index 00000000..88c5067d --- /dev/null +++ b/components/ai/nnom/inc/nnom_utils.h @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-02-05 Jianjia Ma The first version + */ + +#ifndef __NNOM_UTILS_H__ +#define __NNOM_UTILS_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + +#include +#include +#include + +#include "nnom.h" + +typedef struct _nnom_predict_t +{ + uint16_t *confusion_mat; // confusiong matrix + uint32_t *top_k; // which stored the num of prediction in rank_k, example: Top-2 = top_k[0]+top_k[1] + nnom_model_t *model; // the model to run + int8_t *buf_prediction; // the pointer to the output of softmax layer(normally the end of classifier). + + // setting + uint32_t label_num; // number of types in classification + uint32_t top_k_size; // number of k that wants to know. + + // running + uint32_t predict_count; // how many prediction is done + + //timing + uint32_t t_run_total; // total running time + uint32_t t_predict_start; // when it is initial + uint32_t t_predict_total; // total time of the whole test +} nnom_predict_t; + +// create a prediction +// input model, the buf pointer to the softwmax output (Temporary, this can be extract from model) +// the size of softmax output (the num of lable) +// the top k that wants to record. +nnom_predict_t *prediction_create(nnom_model_t *m, int8_t *buf_prediction, size_t label_num, size_t top_k_size); // currently int8_t + +// after a new data is set in input +// feed data to prediction +// input the current label, (range from 0 to total number of label -1) +// (the current input data should be set by user manully to the input buffer of the model.) +// return NN_ARGUMENT_ERROR if parameter error +nnom_status_t prediction_run(nnom_predict_t *pre, uint32_t true_label, uint32_t* predict_label, float* prob); + +// to mark prediction finished +void prediction_end(nnom_predict_t *pre); + +// free all resources +void prediction_delete(nnom_predict_t *pre); + +// print matrix +void prediction_matrix(nnom_predict_t *pre); + +// print top-k +void prediction_top_k(nnom_predict_t *pre); + +// this function is to print sumarry +void prediction_summary(nnom_predict_t *pre); + +// ------------------------------- + +// stand alone prediction API +// this api test one set of data, return the prediction +// return the predicted label +// return NN_ARGUMENT_ERROR if parameter error +nnom_status_t nnom_predict(nnom_model_t *m, uint32_t *label, float *prob); + +void model_stat(nnom_model_t *m); + +void model_io_format(nnom_model_t *m); + +#ifdef __cplusplus +} +#endif + +#endif /*__NNOM_UTILS_H__ */ diff --git a/components/ai/nnom/port/nnom_port.h b/components/ai/nnom/port/nnom_port.h new file mode 100644 index 00000000..d7822b7e --- /dev/null +++ b/components/ai/nnom/port/nnom_port.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-02-05 Jianjia Ma The first version + * 2021-09-08 derekduke add tos support + */ + +#ifndef __NNOM_PORT_H__ +#define __NNOM_PORT_H__ + +#include +#include + +/* use static memory */ +#define NNOM_USING_STATIC_MEMORY // enable to use built in memory allocation on a large static memory block + // must set buf using "nnom_set_static_buf()" before creating a model. + +/* dynamic memory interfaces */ +/* when libc is not available, you shall implement the below memory interfaces (libc equivalents). */ +#ifndef NNOM_USING_STATIC_MEMORY + //#define nnom_malloc(n) malloc(n) + //#define nnom_free(p) free(p) + #define nnom_malloc(n) tos_mmheap_alloc(n) + #define nnom_free(n) tos_mmheap_free(n) +#endif + +/* memory interface */ +/* when libc is not available, you shall implement your equivalent functions here */ +#define nnom_memset(p,v,s) memset(p,v,s) +#define nnom_memcpy(dst,src,len) memcpy(dst,src,len) + +/* runtime & debug */ +#define nnom_us_get() 0 // return a microsecond timestamp +#define nnom_ms_get() 0 // return a millisecond timestamp +#define NNOM_LOG(...) printf(__VA_ARGS__) + +/* NNoM configuration */ +#define NNOM_BLOCK_NUM (16) // maximum number of memory blocks, increase it when log request. +#define DENSE_WEIGHT_OPT (1) // if used fully connected layer optimized weights. + +//#define NNOM_TRUNCATE // disable: backend ops use round to the nearest int (default). enable: floor + +/* Backend format configuration */ +//#define NNOM_USING_CHW // uncomment if using CHW format. otherwise using default HWC format. + // Notes, CHW is incompatible with CMSIS-NN. + // CHW must be used when using hardware accelerator such as KPU in K210 chip + +/* Backend selection */ +//#define NNOM_USING_CMSIS_NN // uncomment if use CMSIS-NN for optimation + + +#endif + + + diff --git a/components/ai/nnom/src/backends/nnom_local.c b/components/ai/nnom/src/backends/nnom_local.c new file mode 100644 index 00000000..5c514b21 --- /dev/null +++ b/components/ai/nnom/src/backends/nnom_local.c @@ -0,0 +1,1689 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Notice: + * Code in this file inlcudes derivative works from CMSIS + * Please check the LICENSE file for detial. + * + * Change Logs: + * Date Author Notes + * 2019-02-05 Jianjia Ma The first version + * 2019-03-19 Jianjia Ma Local C implementation partly from CMSIS-NN + * 2019-06-19 Jianjia Ma Implement CHW functions + */ + +#include "nnom.h" +#include "nnom_local.h" + +// modified from CMSIS-NN test_ref +void local_avepool_q7_HWC(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, NULL by now + q7_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int sum = 0; + int count = 0; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + sum += Im_in[i_ch_in + ch_im_in * (k_x + k_y * dim_im_in_x)]; + count++; + } + } + } + Im_out[i_ch_in + ch_im_in * (i_x + i_y * dim_im_out_x)] = sum / (count>>output_shift); + } + } + } +} + +void local_avepool_q7_CHW(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, NULL by now + q7_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + int32_t ch_offset; + + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + ch_offset = i_ch_in*dim_im_in_x*dim_im_in_y; + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int sum = 0; + int count = 0; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + sum += Im_in[ch_offset + (k_x + k_y * dim_im_in_x)]; + count++; + } + } + } + Im_out[i_ch_in*dim_im_out_x*dim_im_out_y + (i_x + i_y * dim_im_out_x)] = sum / (count>>output_shift); + } + } + } +} + +// modified from CMSIS-NN test_ref +void local_maxpool_q7_HWC(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, NULL by now + q7_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int max = -129; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + if (Im_in[i_ch_in + ch_im_in * (k_x + k_y * dim_im_in_x)] > max) + { + max = Im_in[i_ch_in + ch_im_in * (k_x + k_y * dim_im_in_x)]; + } + } + } + } + Im_out[i_ch_in + ch_im_in * (i_x + i_y * dim_im_out_x)] = max; + } + } + } +} + +void local_maxpool_q7_CHW(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, NULL by now + q7_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + int32_t ch_offset; + + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + ch_offset = i_ch_in * dim_im_out_x * dim_im_out_y; + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int max = -129; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + if (Im_in[i_ch_in * dim_im_in_x * dim_im_in_y + (k_x + k_y * dim_im_in_x)] > max) + { + max = Im_in[i_ch_in * dim_im_in_x * dim_im_in_y + (k_x + k_y * dim_im_in_x)]; + } + } + } + } + Im_out[ch_offset+(i_x + i_y * dim_im_out_x)] = max; + } + } + } +} + +// temporary for the thesis +// shift according to the maximum +void local_sumpool_q7_HWC(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, size = 4*output_size + q7_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + int32_t *buf = (int32_t *)bufferA; + // stage2 + // int32_t max_abs = 0; + // int32_t output_shift; + // size_t output_size = dim_im_out_x * dim_im_out_x * ch_im_in; + + // save in 32bit + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int sum = 0; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + sum += Im_in[i_ch_in + ch_im_in * (k_x + k_y * dim_im_in_x)]; + } + } + } + // 32bit + buf[i_ch_in + ch_im_in * (i_x + i_y * dim_im_out_x)] = sum; + } + } + } + + // // find max amount results + // for (int i = 0; i < output_size; i++) + // { + // int32_t val = buf[i]; + // if (val < 0) + // val = -val; + // if (val > max_abs) + // max_abs = val; + // } + // // find best shift to cover the max + // for (output_shift = 0;; output_shift++) + // { + // if (127 * (1 + output_shift) >= max_abs) + // break; + // } + + // // shift the results + // for (int i = 0; i < output_size; i++) + // { + // Im_out[i] = buf[i] >> output_shift; + // } + //return output_shift; +} + +// temporary for the thesis +// shift according to the maximum +void local_sumpool_q7_CHW(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, size = 4*output_size + q7_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + int32_t *buf = (int32_t *)bufferA; + int32_t i_ch_offset, o_ch_offset; + // stage2 + // int32_t max_abs = 0; + // int32_t output_shift; + // size_t output_size = dim_im_out_x * dim_im_out_x * ch_im_in; + + // save in 32bit + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + i_ch_offset = i_ch_in*dim_im_in_x*dim_im_in_y; + o_ch_offset = i_ch_in*dim_im_out_x*dim_im_out_y; + + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int sum = 0; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + sum += Im_in[i_ch_offset + (k_x + k_y * dim_im_in_x)]; + } + } + } + // 32bit + buf[o_ch_offset + (i_x + i_y * dim_im_out_x)] = sum; + } + } + } + + // // find max amount results + // for (int i = 0; i < output_size; i++) + // { + // int32_t val = buf[i]; + // if (val < 0) + // val = -val; + // if (val > max_abs) + // max_abs = val; + // } + // // find best shift to cover the max + // for (output_shift = 0;; output_shift++) + // { + // if (127 * (1 + output_shift) >= max_abs) + // break; + // } + + // // shift the results + // for (int i = 0; i < output_size; i++) + // { + // Im_out[i] = buf[i] >> output_shift; + // } + //return output_shift; +} + +// customised up sample pooling +void local_up_sampling_q7_HWC(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, NULL by now + q7_t *Im_out) +{ + int16_t i_x, i_y; + + // for loop for each pixel in input image. + for (i_y = 0; i_y < dim_im_in_y; i_y++) + { + for (i_x = 0; i_x < dim_im_in_x; i_x++) + { + // copy all the channels together. + const q7_t *p_in = Im_in + (i_y * dim_im_in_x + i_x ) * ch_im_in; + q7_t *pout = Im_out + (i_y * dim_im_in_x * dim_kernel_x * dim_kernel_y + i_x * dim_kernel_y) * ch_im_in; + + // copy along x axis + for(int i = 0; i> out_shift[shift_idx]), 8); + } + } + } +} + +void local_convolve_CHW_q7_nonsquare(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +) +{ + int i, j, k, l, m, n; + long conv_out; + int in_row, in_col; + int shift_idx, shift_steps; + if(q_type == NNOM_QTYPE_PER_AXIS) + shift_steps = 1; + else + shift_steps = 0; + + for(i = 0, shift_idx = 0; i < ch_im_out; i++, shift_idx += shift_steps) + { + for (j = 0; j < dim_im_out_y; j++) + { + for (k = 0; k < dim_im_out_x; k++) + { + if(bias) + conv_out = ((q31_t)(bias[i]) << bias_shift[shift_idx]) + NNOM_ROUND(out_shift[shift_idx]); + else + conv_out = (q31_t) NNOM_ROUND(out_shift[shift_idx]); + + for (m = 0; m < dim_kernel_y; m++) + { + for (n = 0; n < dim_kernel_x; n++) + { + // if-for implementation + in_row = stride_y * j + m * dilation_y - padding_y; + in_col = stride_x * k + n * dilation_x - padding_x; + if (in_row >= 0 && in_col >= 0 && in_row < dim_im_in_y && in_col < dim_im_in_x) + { + for (l = 0; l < ch_im_in; l++) + { + conv_out += Im_in[(in_row * dim_im_in_x + in_col) + l * dim_im_in_x * dim_im_in_y] * + wt[(m * dim_kernel_x + n) * ch_im_in * ch_im_out + l * ch_im_out + i]; + } + } + } + } + Im_out[i * dim_im_out_x * dim_im_out_y + (j * dim_im_out_x + k)] = (q7_t)__NNOM_SSAT((conv_out >> out_shift[shift_idx]), 8); + } + } + } +} + +#define FALSE 0 +#define TRUE 1 + +static int alg_deconv2d_calculate_position( + int pos, + int stride, + int padding, + int dim_kernel, + int dim_in, + int* in_start, + int* kernel_start, + int* kernel_end) +{ + int is_zero = FALSE; + int of, adj; + is_zero = FALSE; + *in_start = pos/stride; + of = pos%stride; + *kernel_start = padding - of; + if(*kernel_start >= 0) { + adj = MIN(*in_start, *kernel_start/stride); + *kernel_start -= adj*stride; + *in_start -= adj; + } else { + adj = -*kernel_start + dim_kernel; + if(adj<=stride) { + is_zero = TRUE; + } else { + adj = MIN(dim_in-1-*in_start, adj/stride); + *kernel_start += adj*stride; + *in_start += adj; + } + } + of = dim_kernel - 1 - *kernel_start; + adj = MIN(dim_in-1-*in_start, of/stride); + *kernel_end = *kernel_start + adj*stride; + + return is_zero; +} + +void local_conv_trans_HWC_q7_nonsquare(const int8_t * Im_in, + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const uint16_t bias_shift, const uint16_t out_shift, q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +) +// { +// int ox, oy, oc, ky, kx, kc, ix, iy; +// int conv_out; +// int in_pix_loc, wt_loc; + +// (void)dilation_y; +// (void)dilation_x; + +// // padding and stride are applied to output +// for (oc = 0; oc < ch_im_out; oc++) +// { +// for (oy = 0; oy < dim_im_out_y; oy++) +// { +// for (ox = 0; ox < dim_im_out_x; ox++) +// { +// conv_out = ((q31_t)(bias[oc]) << bias_shift) + NNOM_ROUND(out_shift); + +// for (ky = 0; ky < dim_kernel_y; ky++) +// { +// for (kx = 0; kx < dim_kernel_x; kx++) +// { +// // input y, input x location +// iy = oy / stride_y + ky - padding_y; +// ix = ox / stride_x + kx - padding_x; + +// if(ix >= 0 && iy >= 0 && ix < dim_im_in_y && iy< dim_im_in_y) +// { +// in_pix_loc = (iy * dim_im_in_x + ix) * ch_im_in; +// wt_loc = oc * ch_im_in * dim_kernel_y * dim_kernel_x + (ky * dim_kernel_x + kx) * ch_im_in; + +// for (kc = 0; kc < ch_im_in; kc++) +// { +// conv_out += Im_in[in_pix_loc + kc] * wt[wt_loc + kc]; +// } +// } +// } +// } + +// Im_out[oc + (oy * dim_im_out_x + ox) * ch_im_out] = (q7_t) __NNOM_SSAT((conv_out >> out_shift), 8); +// } +// } +// } +// } + +{ + int i, j, k, l, m, n; + int conv_out; + int in_row, in_col; + int kernel_start_x,kernel_end_x; + int kernel_start_y,kernel_end_y; + int in_row_start, in_col_start; + int is_zero; + + for (i = 0; i < ch_im_out; i++) { + for (j = 0; j < dim_im_out_y; j++) { + is_zero = alg_deconv2d_calculate_position(j, stride_y, padding_y, dim_kernel_y, + dim_im_in_y, &in_row_start, &kernel_start_y, &kernel_end_y); + + if(is_zero) { + conv_out = ((q31_t)(bias[i]) << bias_shift) + NNOM_ROUND(out_shift); + conv_out = (q7_t) __NNOM_SSAT((conv_out >> out_shift), 8); + for (k = 0; k < dim_im_out_x; k++) { + Im_out[i + (j * dim_im_out_x + k) * ch_im_out] = (q7_t) conv_out; + } + continue; + } + + for (k = 0; k < dim_im_out_x; k++) { + conv_out = ((q31_t)(bias[i]) << bias_shift) + NNOM_ROUND(out_shift); + + is_zero = alg_deconv2d_calculate_position(k, stride_x, padding_x, dim_kernel_x, + dim_im_in_x, &in_col_start, &kernel_start_x, &kernel_end_x); + + if(is_zero) { + Im_out[i + (j * dim_im_out_x + k) * ch_im_out] = conv_out; + continue; + } + + for (m = kernel_start_y, in_row = in_row_start; m <= kernel_end_y; m+=stride_y, in_row++) { + for (n = kernel_start_x, in_col = in_col_start; n <= kernel_end_x; n+=stride_x, in_col++) { + if ((in_row >= 0) && (in_col >= 0) && + (in_row < dim_im_in_y) && (in_col < dim_im_in_x)) { + for (l = 0; l < ch_im_in; l++) { + conv_out += Im_in[(in_row * dim_im_in_x + in_col) * ch_im_in + l] * + wt[i * ch_im_in * dim_kernel_y * dim_kernel_x + (m * dim_kernel_x + n) * ch_im_in + l]; + } + } + } + } + + Im_out[i + (j * dim_im_out_x + k) * ch_im_out] = (q7_t) __NNOM_SSAT((conv_out >> out_shift), 8); + } + } + } +} + +void local_depthwise_separable_conv_HWC_q7_nonsquare(const q7_t *Im_in,// input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +) +{ + int i_out_y, i_out_x, i_ch_out, i_ch_in, i_ch_mult; + int i_ker_y, i_ker_x; + int i_out = 0; + int shift_idx, shift_steps; + int ch_mult = ch_im_out / ch_im_in; + q31_t conv_out; + + for (i_out_y = 0; i_out_y < dim_im_out_y; i_out_y++) + { + const int32_t base_idx_y = stride_y * i_out_y - padding_y; + for (i_out_x = 0; i_out_x < dim_im_out_x; i_out_x++) + { + const int32_t base_idx_x = stride_x * i_out_x - padding_x; + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + for(i_ch_mult = 0; i_ch_mult < ch_mult; i_ch_mult++) + { + i_ch_out = i_ch_mult + i_ch_in * ch_mult; + int32_t ker_y_start = MAX(0, -(base_idx_y-(dilation_y-1))/dilation_y); + int32_t ker_x_start = MAX(0, -(base_idx_x-(dilation_x-1))/dilation_x); + int32_t ker_y_end = MIN(dim_kernel_y, (dim_im_in_y - base_idx_y + (dilation_y-1))/dilation_y); + int32_t ker_x_end = MIN(dim_kernel_x, (dim_im_in_x - base_idx_x + (dilation_x-1))/dilation_x); + + shift_idx = q_type == NNOM_QTYPE_PER_AXIS ? i_ch_out : 0; + if (bias) + conv_out = ((q31_t)(bias[i_ch_out]) << bias_shift[shift_idx]) + NNOM_ROUND(out_shift[shift_idx]); + else + conv_out = (q31_t)NNOM_ROUND(out_shift[shift_idx]); + + for (i_ker_y = ker_y_start; i_ker_y < ker_y_end; i_ker_y++) + { + const int32_t idx_y = base_idx_y + i_ker_y * dilation_y; + for (i_ker_x = ker_x_start; i_ker_x < ker_x_end; i_ker_x++) + { + const int32_t idx_x = base_idx_x + i_ker_x * dilation_x; + int32_t in_pix_loc = (idx_y * dim_im_in_x + idx_x) * ch_im_in + i_ch_in; + int32_t wt_loc = (i_ker_y * dim_kernel_x + i_ker_x) * (ch_im_in * ch_mult) + i_ch_out; + conv_out += Im_in[in_pix_loc] * wt[wt_loc]; + } + } + Im_out[i_out++] = (q7_t)__NNOM_SSAT((conv_out >> out_shift[shift_idx]), 8); + } + } + } + } +} + +void local_depthwise_separable_conv_CHW_q7_nonsquare(const q7_t *Im_in,// input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +) +{ + int i_out_y, i_out_x, i_ch_out, i_ch_in, i_ch_mult; + int i_ker_y, i_ker_x; + int i_out = 0; + int shift_idx, shift_steps; + int ch_mult = ch_im_out / ch_im_in; + q31_t conv_out; + + for (i_out_y = 0; i_out_y < dim_im_out_y; i_out_y++) + { + const int32_t base_idx_y = stride_y * i_out_y - padding_y; + for (i_out_x = 0; i_out_x < dim_im_out_x; i_out_x++) + { + const int32_t base_idx_x = stride_x * i_out_x - padding_x; + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + for (i_ch_mult = 0; i_ch_mult < ch_mult; i_ch_mult++) + { + i_ch_out = i_ch_mult + i_ch_in * ch_mult; + int32_t ker_y_start = MAX(0, -(base_idx_y-(dilation_y-1))/dilation_y); + int32_t ker_x_start = MAX(0, -(base_idx_x-(dilation_x-1))/dilation_x); + int32_t ker_y_end = MIN(dim_kernel_y, (dim_im_in_y - base_idx_y + (dilation_y-1))/dilation_y); + int32_t ker_x_end = MIN(dim_kernel_x, (dim_im_in_x - base_idx_x + (dilation_x-1))/dilation_x); + + shift_idx = q_type == NNOM_QTYPE_PER_AXIS ? i_ch_out : 0; + if (bias) + conv_out = ((q31_t)(bias[i_ch_out]) << bias_shift[shift_idx]) + NNOM_ROUND(out_shift[shift_idx]); + else + conv_out = (q31_t)NNOM_ROUND(out_shift[shift_idx]); + + for (i_ker_y = ker_y_start; i_ker_y < ker_y_end; i_ker_y++) + { + const int32_t idx_y = base_idx_y + i_ker_y * dilation_y; + for (i_ker_x = ker_x_start; i_ker_x < ker_x_end; i_ker_x++) + { + const int32_t idx_x = base_idx_x + i_ker_x * dilation_x; + int32_t in_pix_loc = (idx_y * dim_im_in_x + idx_x) + i_ch_in * dim_im_in_x * dim_im_in_y; + int32_t wt_loc = (i_ker_y * dim_kernel_x + i_ker_x) * ch_im_out + i_ch_out; + conv_out += Im_in[in_pix_loc] * wt[wt_loc]; + } + } + Im_out[i_ch_out * dim_im_out_x * dim_im_out_y + (i_out_y * dim_im_out_x + i_out_x)] = (q7_t)__NNOM_SSAT((conv_out >> out_shift[shift_idx]), 8); + } + } + } + } + +} + + +void local_zero_padding_HWC_q7(const q7_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const uint16_t padding_top, // padding sizes y + const uint16_t padding_bottom, // padding sizes y + const uint16_t padding_left, // padding sizes x + const uint16_t padding_right, // padding sizes x + q7_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y) // output image dimension y +{ + int i, size; + q7_t * p_out = Im_out; + + // top rows + size = dim_im_out_x*ch_im_in*padding_top; + nnom_memset(p_out, 0, size); + p_out += size; + + // middle + for(i=0; i> 2; + const q7_t *pB = pM; + const q7_t *pA; + q7_t *pO = pOut; + + while (rowCnt) + { + pA = pV; + q31_t sum = (q31_t) NNOM_ROUND(out_shift); + q31_t sum2 = (q31_t) NNOM_ROUND(out_shift); + q31_t sum3 = (q31_t) NNOM_ROUND(out_shift); + q31_t sum4 = (q31_t) NNOM_ROUND(out_shift); + + uint16_t colCnt = dim_vec >> 2; + + while (colCnt) + { + q7_t inA1 = *pA++; + q7_t inA3 = *pA++; + q7_t inA2 = *pA++; + q7_t inA4 = *pA++; + + q7_t inB1 = *pB++; + q7_t inB3 = *pB++; + q7_t inB2 = *pB++; + q7_t inB4 = *pB++; + + sum += inA1 * inB1 + inA2 * inB2; + sum2 += inA1 * inB3 + inA2 * inB4; + + inB1 = *pB++; + inB3 = *pB++; + inB2 = *pB++; + inB4 = *pB++; + + sum3 += inA1 * inB1 + inA2 * inB2; + sum4 += inA1 * inB3 + inA2 * inB4; + + inB1 = *pB++; + inB3 = *pB++; + inB2 = *pB++; + inB4 = *pB++; + + sum += inA3 * inB1 + inA4 * inB2; + sum2 += inA3 * inB3 + inA4 * inB4; + + inB1 = *pB++; + inB3 = *pB++; + inB2 = *pB++; + inB4 = *pB++; + + sum3 += inA3 * inB1 + inA4 * inB2; + sum4 += inA3 * inB3 + inA4 * inB4; + + colCnt--; + } + colCnt = dim_vec & 0x3; + while (colCnt) + { + q7_t inA = *pA++; + q7_t inB = *pB++; + sum += inA * inB; + inB = *pB++; + sum2 += inA * inB; + inB = *pB++; + sum3 += inA * inB; + inB = *pB++; + sum4 += inA * inB; + + colCnt--; + } + *pO++ = (q7_t)__NNOM_SSAT((sum >> out_shift), 8); + *pO++ = (q7_t)__NNOM_SSAT((sum2 >> out_shift), 8); + *pO++ = (q7_t)__NNOM_SSAT((sum3 >> out_shift), 8); + *pO++ = (q7_t)__NNOM_SSAT((sum4 >> out_shift), 8); + + rowCnt--; + } + + rowCnt = num_of_rows & 0x3; + + while (rowCnt) + { + int ip_out = (q31_t) NNOM_ROUND (out_shift); + pA = pV; + for (int j = 0; j < dim_vec; j++) + { + q7_t inA = *pA++; + q7_t inB = *pB++; + ip_out += inA * inB; + } + *pO++ = (q7_t)__NNOM_SSAT((ip_out >> out_shift), 8); + + rowCnt--; + } +} + +void local_dot_q7(const q7_t *pV, // pointer to vector + const q7_t *pM, // pointer to matrix + const uint16_t dim_vec, // length of the vector + const uint16_t num_of_rows, // numCol of A + const uint16_t out_shift, // amount of right-shift for output + q7_t *pOut) // output operand) +{ + for (int i = 0; i < num_of_rows; i++) + { + int ip_out = (q31_t) NNOM_ROUND(out_shift); + for (int j = 0; j < dim_vec; j++) + { + ip_out += pV[j] * pM[i * dim_vec + j]; + } + pOut[i] = (q7_t)__NNOM_SSAT((ip_out >> out_shift), 8); + } +} + +void local_fully_connected_q7_opt(const q7_t *pV, // pointer to vector + const q7_t *pM, // pointer to matrix + const uint16_t dim_vec, // length of the vector + const uint16_t num_of_rows, // numCol of A + const uint16_t bias_shift, // amount of left-shift for bias + const uint16_t out_shift, // amount of right-shift for output + const q7_t *bias, q7_t *pOut, // output operand + q15_t *vec_buffer) +{ + uint16_t rowCnt = num_of_rows >> 2; + const q7_t *pB = pM; + const q7_t *pA; + q7_t *pO = pOut; + const q7_t *pBias = bias; + + while (rowCnt) + { + pA = pV; + q31_t sum; + q31_t sum2; + q31_t sum3; + q31_t sum4; + uint16_t colCnt = dim_vec >> 2; + + if(bias) + { + sum = ((q31_t)(*pBias++) << bias_shift) + NNOM_ROUND(out_shift); + sum2 = ((q31_t)(*pBias++) << bias_shift) + NNOM_ROUND(out_shift); + sum3 = ((q31_t)(*pBias++) << bias_shift) + NNOM_ROUND(out_shift); + sum4 = ((q31_t)(*pBias++) << bias_shift) + NNOM_ROUND(out_shift); + } + else + { + sum = (q31_t) NNOM_ROUND(out_shift); + sum2 = (q31_t) NNOM_ROUND(out_shift); + sum3 = (q31_t) NNOM_ROUND(out_shift); + sum4 = (q31_t) NNOM_ROUND(out_shift); + } + + while (colCnt) + { + q7_t inA1 = *pA++; + q7_t inA3 = *pA++; + q7_t inA2 = *pA++; + q7_t inA4 = *pA++; + + q7_t inB1 = *pB++; + q7_t inB3 = *pB++; + q7_t inB2 = *pB++; + q7_t inB4 = *pB++; + + sum += inA1 * inB1 + inA2 * inB2; + sum2 += inA1 * inB3 + inA2 * inB4; + + inB1 = *pB++; + inB3 = *pB++; + inB2 = *pB++; + inB4 = *pB++; + + sum3 += inA1 * inB1 + inA2 * inB2; + sum4 += inA1 * inB3 + inA2 * inB4; + + inB1 = *pB++; + inB3 = *pB++; + inB2 = *pB++; + inB4 = *pB++; + + sum += inA3 * inB1 + inA4 * inB2; + sum2 += inA3 * inB3 + inA4 * inB4; + + inB1 = *pB++; + inB3 = *pB++; + inB2 = *pB++; + inB4 = *pB++; + + sum3 += inA3 * inB1 + inA4 * inB2; + sum4 += inA3 * inB3 + inA4 * inB4; + + colCnt--; + } + colCnt = dim_vec & 0x3; + while (colCnt) + { + q7_t inA = *pA++; + q7_t inB = *pB++; + sum += inA * inB; + inB = *pB++; + sum2 += inA * inB; + inB = *pB++; + sum3 += inA * inB; + inB = *pB++; + sum4 += inA * inB; + + colCnt--; + } + *pO++ = (q7_t)__NNOM_SSAT((sum >> out_shift), 8); + *pO++ = (q7_t)__NNOM_SSAT((sum2 >> out_shift), 8); + *pO++ = (q7_t)__NNOM_SSAT((sum3 >> out_shift), 8); + *pO++ = (q7_t)__NNOM_SSAT((sum4 >> out_shift), 8); + + rowCnt--; + } + + rowCnt = num_of_rows & 0x3; + + while (rowCnt) + { + int ip_out; + if(bias) + ip_out=((q31_t)(*bias++) << bias_shift) + NNOM_ROUND(out_shift); + else + ip_out=(q31_t)NNOM_ROUND(out_shift); + + pA = pV; + for (int j = 0; j < dim_vec; j++) + { + q7_t inA = *pA++; + q7_t inB = *pB++; + ip_out += inA * inB; + } + *pO++ = (q7_t)__NNOM_SSAT((ip_out >> out_shift), 8); + + rowCnt--; + } +} + +void local_fully_connected_q7(const q7_t *pV, // pointer to vector + const q7_t *pM, // pointer to matrix + const uint16_t dim_vec, // length of the vector + const uint16_t num_of_rows, // numCol of A + const uint16_t bias_shift, // amount of left-shift for bias + const uint16_t out_shift, // amount of right-shift for output + const q7_t *bias, q7_t *pOut, // output operand + q15_t *vec_buffer) +{ + if(bias) + { + for (int i = 0; i < num_of_rows; i++) + { + int ip_out = ((q31_t)(*bias++) << bias_shift) + NNOM_ROUND(out_shift); + for (int j = 0; j < dim_vec; j++) + { + ip_out += pV[j] * pM[i * dim_vec + j]; + } + pOut[i] = (q7_t)__NNOM_SSAT((ip_out >> out_shift), 8); + } + } + else + { + for (int i = 0; i < num_of_rows; i++) + { + int ip_out = (q31_t)NNOM_ROUND(out_shift); + for (int j = 0; j < dim_vec; j++) + { + ip_out += pV[j] * pM[i * dim_vec + j]; + } + pOut[i] = (q7_t)__NNOM_SSAT((ip_out >> out_shift), 8); + } + } +} + + +void local_softmax_q7(const q7_t *vec_in, const uint32_t dim_vec, q7_t *p_out) +{ + q31_t sum; + int32_t i; + uint8_t shift; + q15_t base; + base = -257; + + /* We first search for the maximum */ + for (i = 0; i < dim_vec; i++) + { + if (vec_in[i] > base) + { + base = vec_in[i]; + } + } + + /* + * So the base is set to max-8, meaning + * that we ignore really small values. + * anyway, they will be 0 after shrinking to q7_t. + */ + base = base - 8; + + sum = 0; + + for (i = 0; i < dim_vec; i++) + { + if (vec_in[i] > base) + { + shift = (uint8_t)__NNOM_USAT(vec_in[i] - base, 5); + sum += 0x1 << shift; + } + } + + /* This is effectively (0x1 << 20) / sum */ + int output_base = 0x100000 / sum; + + /* + * Final confidence will be output_base >> ( 13 - (vec_in[i] - base) ) + * so 128 (0x1<<7) -> 100% confidence when sum = 0x1 << 8, output_base = 0x1 << 12 + * and vec_in[i]-base = 8 + */ + for (i = 0; i < dim_vec; i++) + { + if (vec_in[i] > base) + { + /* Here minimum value of 13+base-vec_in[i] will be 5 */ + shift = (uint8_t)__NNOM_USAT(13 + base - vec_in[i], 5); + p_out[i] = (q7_t)__NNOM_SSAT((output_base >> shift), 8); + } + else + { + p_out[i] = 0; + } + } +} + + +// hard sigmoid, +// y=-1 if x < -2.5 +// y=1 if x > 2.5 +// otherwise y = 0.2 * x + 0.5 (y=0.20315 * x + 0.5) +void local_hard_sigmoid_q7(q7_t *data, uint32_t size, int16_t dec_bit) +{ + int16_t limit = 2.5f * (1 << dec_bit)-1; + int16_t offset = 64; // 0.5 * 128 + int16_t mult = 26; // 0.2 * 128 + + // int bit >= 0 + for(int i=0; i= limit) + data[i] = 127; + else + { + data[i] = ((int16_t)(data[i] * mult) >> dec_bit) + offset; + } + } + } + +// hard tanh +// y=-1 if x < -1 +// y=1 if x > 1 +// otherwise y = x +void local_hard_tanh_q7(q7_t *data, uint32_t size, int16_t dec_bit) +{ + int16_t int_bit = 7 - dec_bit; + int16_t limit = 1 << dec_bit; + + if(dec_bit == 7) + return; + + // int bit < 0 + if(int_bit < 0) + for(int i=0; i= limit) + data[i] = 127; + else + { + data[i] = data[i] >> (-int_bit); + } + } + else + // int bit >= 0 + for(int i=0; i= limit) + data[i] = 127; + else + { + data[i] = data[i] << int_bit; + } + } +} + +void local_sigmoid_q7(q7_t *data, uint32_t size, int16_t int_width) +{ + uint32_t i = size; + q7_t *pIn = data; + q7_t *pOut = data; + q7_t in; + q7_t out; + uint16_t shift_size = 3 - int_width; + // saturation if int bit too large + if(int_width > 3) + { + while (i) + { + if(*pIn++ > 0) + *pOut++ = 127; + else + *pOut++ = 0; + i--; + } + } + // otherwise search table + else + { + while (i) + { + in = *pIn++; + out = nnom_sigmoid_table_q7[(uint8_t)(in >> shift_size)]; + *pOut++ = out; + i--; + } + } +} + +void local_tanh_q7(q7_t *data, uint32_t size, int16_t int_width) +{ + uint32_t i = size; + q7_t *pIn = data; + q7_t *pOut = data; + q7_t in; + q7_t out; + uint16_t shift_size = 3 - int_width; + + // saturation if int bit too large + if(int_width > 3) + { + while (i) + { + in = *pIn++; + if(in > 0) + *pOut++ = 127; + else if ( in == 0) + *pOut++ = 0; + else + *pOut++ = -128; + i--; + } + } + // otherwise search table + else + { + while (i) + { + in = *pIn++; + out = nnom_tanh_table_q7[(uint8_t)(in >> shift_size)]; + *pOut++ = out; + i--; + } + } +} + +void local_relu_q7(q7_t *data, uint32_t size) +{ + uint32_t i; + + for (i = 0; i < size; i++) + { + if (data[i] < 0) + data[i] = 0; + } +} + +// alpha in q7 format with dec_bit=7 +void local_leaky_relu_q7(q7_t *data, q7_t alpha, uint32_t size) +{ + uint32_t i; + + for (i = 0; i < size; i++) + { + if (data[i] < 0) + { + data[i] = data[i] * alpha / 128; + } + } +} + +// alpha in q7 format with dec_bit=7 +// max and threshold has the same Q format with the activation +void local_adv_relu_q7(q7_t *data, q7_t negative_slope, q7_t max, q7_t threshold, uint32_t size) +{ + uint32_t i; + for (i = 0; i < size; i++) + { + // `f(x) = max_value` for `x >= max_value`, + // `f(x) = x` for `threshold <= x < max_value`, + // `f(x) = alpha * (x - threshold)` otherwise. + + if(data[i] > max) + data[i] = max; + if (data[i] < threshold) + data[i] = (data[i] - threshold) * negative_slope / 128; + } +} + +// matrix ops +void local_mult_q7(q7_t *pSrcA, + q7_t *pSrcB, + q7_t *pDst, + const uint16_t out_shift, + uint32_t blockSize) +{ + uint32_t i; + + for (i = 0; i < blockSize; i++) + { + q31_t product = pSrcA[i] * pSrcB[i]; + pDst[i] = (q7_t) __NNOM_SSAT(((product + NNOM_ROUND(out_shift)) >> out_shift), 8); + } +} + +void local_add_q7(q7_t *pSrcA, + q7_t *pSrcB, + q7_t *pDst, + const uint16_t out_shift, + uint32_t blockSize) +{ + uint32_t i; + + for (i = 0; i < blockSize; i++) + { + q31_t sum = pSrcA[i] + pSrcB[i]; + pDst[i] = (q7_t) __NNOM_SSAT(((sum + NNOM_ROUND(out_shift)) >> out_shift), 8); + } +} + +void local_sub_q7(q7_t *pSrcA, + q7_t *pSrcB, + q7_t *pDst, + const uint16_t out_shift, + uint32_t blockSize) +{ + uint32_t i; + + for (i = 0; i < blockSize; i++) + { + q31_t sub = pSrcA[i] - pSrcB[i]; + pDst[i] = (q7_t) __NNOM_SSAT(((sub + NNOM_ROUND(out_shift)) >> out_shift), 8); + } +} + + + +void local_multiple_add_q7( q7_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q7_t **p_src) +{ + uint32_t i, blk; + q31_t sum; + + for (i = 0; i < block_size; i++) + { + sum = 0; + for(blk=0; blk < num_block; blk++) + sum += p_src[blk][i]; + p_dst[i] = (q7_t) __NNOM_SSAT(((sum + NNOM_ROUND(out_shift)) >> out_shift), 8); + } +} + +void local_multiple_mult_q7( q7_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q7_t **p_src) +{ + uint32_t i, blk; + q31_t product; + + for (i = 0; i < block_size; i++) + { + product = 1; + for(blk=0; blk < num_block; blk++) + product *= p_src[blk][i]; + p_dst[i] = (q7_t) __NNOM_SSAT(((product + NNOM_ROUND(out_shift)) >> out_shift), 8); + } +} + +void local_multiple_sub_q7( q7_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q7_t **p_src) +{ + uint32_t i, blk; + q31_t sub; + + for (i = 0; i < block_size; i++) + { + sub = p_src[0][i]; + for(blk=1; blk < num_block; blk++) + sub -= p_src[blk][i]; + p_dst[i] = (q7_t) __NNOM_SSAT(((sub + NNOM_ROUND(out_shift)) >> out_shift), 8); + } +} + + +void local_q7_to_q15_no_shift(const q7_t *src, q15_t *des, uint32_t size) +{ + // simple unloop + uint32_t count = size/8; + while (count-- > 0) + { + *des++ = (q15_t)*src++; + *des++ = (q15_t)*src++; + *des++ = (q15_t)*src++; + *des++ = (q15_t)*src++; + *des++ = (q15_t)*src++; + *des++ = (q15_t)*src++; + *des++ = (q15_t)*src++; + *des++ = (q15_t)*src++; + } + count = size%8; + while(count-- > 0) + *des++ = (q15_t)*src++; +} + +void local_q7_to_q15(const q7_t *src, q15_t *des, uint32_t size) +{ + // simple unloop + uint32_t count = size/8; + while (count-- > 0) + { + *des++ = (q15_t)*src++<<8; + *des++ = (q15_t)*src++<<8; + *des++ = (q15_t)*src++<<8; + *des++ = (q15_t)*src++<<8; + *des++ = (q15_t)*src++<<8; + *des++ = (q15_t)*src++<<8; + *des++ = (q15_t)*src++<<8; + *des++ = (q15_t)*src++<<8; + } + count = size%8; + while(count-- > 0) + *des++ = (q15_t)*src++<<8; +} + +// right shift q15 to q7 +void local_q15_to_q7(const q15_t *src, q7_t *des, uint32_t shift, uint32_t size) +{ + while(size-- >0) + { + *des = *src >> shift; + des++; + src++; + } +} + diff --git a/components/ai/nnom/src/backends/nnom_local_q15.c b/components/ai/nnom/src/backends/nnom_local_q15.c new file mode 100644 index 00000000..d78c3efc --- /dev/null +++ b/components/ai/nnom/src/backends/nnom_local_q15.c @@ -0,0 +1,1602 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Notice: + * Code in this file inlcudes derivative works from CMSIS + * Please check the LICENSE file for detial. + * + * Change Logs: + * Date Author Notes + * 2020-10-05 Jianjia Ma The first version + */ + +#include "nnom.h" +#include "nnom_local.h" + +// modified from CMSIS-NN test_ref +void local_avepool_q15_HWC(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, NULL by now + q15_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int sum = 0; + int count = 0; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + sum += Im_in[i_ch_in + ch_im_in * (k_x + k_y * dim_im_in_x)]; + count++; + } + } + } + Im_out[i_ch_in + ch_im_in * (i_x + i_y * dim_im_out_x)] = sum / (count>>output_shift); + } + } + } +} + +void local_avepool_q15_CHW(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, NULL by now + q15_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + int32_t ch_offset; + + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + ch_offset = i_ch_in*dim_im_in_x*dim_im_in_y; + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int sum = 0; + int count = 0; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + sum += Im_in[ch_offset + (k_x + k_y * dim_im_in_x)]; + count++; + } + } + } + Im_out[i_ch_in*dim_im_out_x*dim_im_out_y + (i_x + i_y * dim_im_out_x)] = sum / (count>>output_shift); + } + } + } +} + +// modified from CMSIS-NN test_ref +void local_maxpool_q15_HWC(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, NULL by now + q15_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int max = -32768; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + if (Im_in[i_ch_in + ch_im_in * (k_x + k_y * dim_im_in_x)] > max) + { + max = Im_in[i_ch_in + ch_im_in * (k_x + k_y * dim_im_in_x)]; + } + } + } + } + Im_out[i_ch_in + ch_im_in * (i_x + i_y * dim_im_out_x)] = max; + } + } + } +} + +void local_maxpool_q15_CHW(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, NULL by now + q15_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + int32_t ch_offset; + + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + ch_offset = i_ch_in * dim_im_out_x * dim_im_out_y; + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int max = -32768; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + if (Im_in[i_ch_in * dim_im_in_x * dim_im_in_y + (k_x + k_y * dim_im_in_x)] > max) + { + max = Im_in[i_ch_in * dim_im_in_x * dim_im_in_y + (k_x + k_y * dim_im_in_x)]; + } + } + } + } + Im_out[ch_offset+(i_x + i_y * dim_im_out_x)] = max; + } + } + } +} + +// shift according to the maximum +void local_sumpool_q15_HWC(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, size = 4*output_size + q15_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + int32_t *buf = (int32_t *)bufferA; + // stage2 + // int32_t max_abs = 0; + // int32_t output_shift; + // size_t output_size = dim_im_out_x * dim_im_out_x * ch_im_in; + + // save in 32bit + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int sum = 0; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + sum += Im_in[i_ch_in + ch_im_in * (k_x + k_y * dim_im_in_x)]; + } + } + } + // 32bit + buf[i_ch_in + ch_im_in * (i_x + i_y * dim_im_out_x)] = (q15_t)__NNOM_SSAT((sum >> output_shift), 16); + } + } + } + + // // find max amount results + // for (int i = 0; i < output_size; i++) + // { + // int32_t val = buf[i]; + // if (val < 0) + // val = -val; + // if (val > max_abs) + // max_abs = val; + // } + // // find best shift to cover the max + // for (output_shift = 0;; output_shift++) + // { + // if (127 * (1 + output_shift) >= max_abs) + // break; + // } + + // // shift the results + // for (int i = 0; i < output_size; i++) + // { + // Im_out[i] = buf[i] >> output_shift; + // } + //return output_shift; +} + +// temporary for the thesis +// shift according to the maximum +void local_sumpool_q15_CHW(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t padding_x, // padding sizes + const uint16_t padding_y, // padding sizes + const uint16_t stride_x, // stride + const uint16_t stride_y, // stride + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + const uint16_t output_shift, // output right shift + q7_t *bufferA, // a buffer for local storage, size = 4*output_size + q15_t *Im_out) +{ + int16_t i_ch_in, i_x, i_y; + int16_t k_x, k_y; + int32_t *buf = (int32_t *)bufferA; + int32_t i_ch_offset, o_ch_offset; + // // stage2 + // int32_t max_abs = 0; + // int32_t output_shift; + // size_t output_size = dim_im_out_x * dim_im_out_x * ch_im_in; + + // save in 32bit + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + i_ch_offset = i_ch_in*dim_im_in_x*dim_im_in_y; + o_ch_offset = i_ch_in*dim_im_out_x*dim_im_out_y; + + for (i_y = 0; i_y < dim_im_out_y; i_y++) + { + for (i_x = 0; i_x < dim_im_out_x; i_x++) + { + int sum = 0; + for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) + { + for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) + { + if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) + { + sum += Im_in[i_ch_offset + (k_x + k_y * dim_im_in_x)]; + } + } + } + // 32bit + buf[o_ch_offset + (i_x + i_y * dim_im_out_x)] = (q15_t)__NNOM_SSAT((sum >> output_shift), 16); + } + } + } + + // // find max amount results + // for (int i = 0; i < output_size; i++) + // { + // int32_t val = buf[i]; + // if (val < 0) + // val = -val; + // if (val > max_abs) + // max_abs = val; + // } + // // find best shift to cover the max + // for (output_shift = 0;; output_shift++) + // { + // if (127 * (1 + output_shift) >= max_abs) + // break; + // } + + // // shift the results + // for (int i = 0; i < output_size; i++) + // { + // Im_out[i] = buf[i] >> output_shift; + // } + //return output_shift; +} + +// customised up sample pooling +void local_up_sampling_q15_HWC(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimension x or W + const uint16_t dim_im_in_y, // input image dimension y or H + const uint16_t ch_im_in, // number of input image channels + const uint16_t dim_kernel_x, // window kernel size + const uint16_t dim_kernel_y, // window kernel size + const uint16_t dim_im_out_x, // output image dimension x or W + const uint16_t dim_im_out_y, // output image dimension y or H + q7_t *bufferA, // a buffer for local storage, NULL by now + q15_t *Im_out) +{ + int16_t i_x, i_y; + + // for loop for each pixel in input image. + for (i_y = 0; i_y < dim_im_in_y; i_y++) + { + for (i_x = 0; i_x < dim_im_in_x; i_x++) + { + // copy all the channels together. + const q15_t *p_in = Im_in + (i_y * dim_im_in_x + i_x ) * ch_im_in; + q15_t *pout = Im_out + (i_y * dim_im_in_x * dim_kernel_x * dim_kernel_y + i_x * dim_kernel_y) * ch_im_in; + + // copy along x axis + for(int i = 0; i> out_shift[shift_idx]), 16); + } + } + } +} + +void local_convolve_CHW_q15_nonsquare(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +) +{ + int i, j, k, l, m, n; + int64_t conv_out; + int in_row, in_col; + int shift_idx, shift_steps; + if(q_type == NNOM_QTYPE_PER_AXIS) + shift_steps = 1; + else + shift_steps = 0; + + for(i = 0, shift_idx = 0; i < ch_im_out; i++, shift_idx += shift_steps) + { + for (j = 0; j < dim_im_out_y; j++) + { + for (k = 0; k < dim_im_out_x; k++) + { + if(bias) + conv_out = ((q31_t)(bias[i]) << bias_shift[shift_idx]) + NNOM_ROUND(out_shift[shift_idx]); + else + conv_out = (q31_t)NNOM_ROUND(out_shift[shift_idx]); + for (m = 0; m < dim_kernel_y; m++) + { + for (n = 0; n < dim_kernel_x; n++) + { + // if-for implementation + in_row = stride_y * j + m * dilation_y - padding_y; + in_col = stride_x * k + n * dilation_x - padding_x; + if (in_row >= 0 && in_col >= 0 && in_row < dim_im_in_y && in_col < dim_im_in_x) + { + for (l = 0; l < ch_im_in; l++) + { + conv_out += Im_in[(in_row * dim_im_in_x + in_col) + l * dim_im_in_x * dim_im_in_y] * + wt[(m * dim_kernel_x + n) * ch_im_in * ch_im_out + l * ch_im_out + i]; + } + } + } + } + Im_out[i * dim_im_out_x * dim_im_out_y + (j * dim_im_out_x + k)] = (q15_t)__NNOM_SSAT((conv_out >> out_shift[shift_idx]), 16); + } + } + } +} + +#define FALSE 0 +#define TRUE 1 + +static int alg_deconv2d_calculate_position( + int pos, + int stride, + int padding, + int dim_kernel, + int dim_in, + int* in_start, + int* kernel_start, + int* kernel_end) +{ + int is_zero = FALSE; + int of, adj; + is_zero = FALSE; + *in_start = pos/stride; + of = pos%stride; + *kernel_start = padding - of; + if(*kernel_start >= 0) { + adj = MIN(*in_start, *kernel_start/stride); + *kernel_start -= adj*stride; + *in_start -= adj; + } else { + adj = -*kernel_start + dim_kernel; + if(adj<=stride) { + is_zero = TRUE; + } else { + adj = MIN(dim_in-1-*in_start, adj/stride); + *kernel_start += adj*stride; + *in_start += adj; + } + } + of = dim_kernel - 1 - *kernel_start; + adj = MIN(dim_in-1-*in_start, of/stride); + *kernel_end = *kernel_start + adj*stride; + + return is_zero; +} + +void local_conv_trans_HWC_q15_nonsquare(const int8_t * Im_in, + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const uint16_t bias_shift, const uint16_t out_shift, q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +) +// { +// int ox, oy, oc, ky, kx, kc, ix, iy; +// int conv_out; +// int in_pix_loc, wt_loc; + +// (void)dilation_y; +// (void)dilation_x; + +// // padding and stride are applied to output +// for (oc = 0; oc < ch_im_out; oc++) +// { +// for (oy = 0; oy < dim_im_out_y; oy++) +// { +// for (ox = 0; ox < dim_im_out_x; ox++) +// { +// conv_out = ((q31_t)(bias[oc]) << bias_shift) + NNOM_ROUND(out_shift); + +// for (ky = 0; ky < dim_kernel_y; ky++) +// { +// for (kx = 0; kx < dim_kernel_x; kx++) +// { +// // input y, input x location +// iy = oy / stride_y + ky - padding_y; +// ix = ox / stride_x + kx - padding_x; + +// if(ix >= 0 && iy >= 0 && ix < dim_im_in_y && iy< dim_im_in_y) +// { +// in_pix_loc = (iy * dim_im_in_x + ix) * ch_im_in; +// wt_loc = oc * ch_im_in * dim_kernel_y * dim_kernel_x + (ky * dim_kernel_x + kx) * ch_im_in; + +// for (kc = 0; kc < ch_im_in; kc++) +// { +// conv_out += Im_in[in_pix_loc + kc] * wt[wt_loc + kc]; +// } +// } +// } +// } + +// Im_out[oc + (oy * dim_im_out_x + ox) * ch_im_out] = (q7_t) __NNOM_SSAT((conv_out >> out_shift), 8); +// } +// } +// } +// } + +{ + int i, j, k, l, m, n; + int64_t conv_out; + int in_row, in_col; + int kernel_start_x,kernel_end_x; + int kernel_start_y,kernel_end_y; + int in_row_start, in_col_start; + int is_zero; + + for (i = 0; i < ch_im_out; i++) { + for (j = 0; j < dim_im_out_y; j++) { + is_zero = alg_deconv2d_calculate_position(j, stride_y, padding_y, dim_kernel_y, + dim_im_in_y, &in_row_start, &kernel_start_y, &kernel_end_y); + + if(is_zero) { + conv_out = ((q31_t)(bias[i]) << bias_shift) + NNOM_ROUND(out_shift); + conv_out = (q15_t) __NNOM_SSAT((conv_out >> out_shift), 16); + for (k = 0; k < dim_im_out_x; k++) { + Im_out[i + (j * dim_im_out_x + k) * ch_im_out] = (q15_t) conv_out; + } + continue; + } + + for (k = 0; k < dim_im_out_x; k++) { + conv_out = ((q31_t)(bias[i]) << bias_shift) + NNOM_ROUND(out_shift); + + is_zero = alg_deconv2d_calculate_position(k, stride_x, padding_x, dim_kernel_x, + dim_im_in_x, &in_col_start, &kernel_start_x, &kernel_end_x); + + if(is_zero) { + Im_out[i + (j * dim_im_out_x + k) * ch_im_out] = conv_out; + continue; + } + + for (m = kernel_start_y, in_row = in_row_start; m <= kernel_end_y; m+=stride_y, in_row++) { + for (n = kernel_start_x, in_col = in_col_start; n <= kernel_end_x; n+=stride_x, in_col++) { + if ((in_row >= 0) && (in_col >= 0) && + (in_row < dim_im_in_y) && (in_col < dim_im_in_x)) { + for (l = 0; l < ch_im_in; l++) { + conv_out += Im_in[(in_row * dim_im_in_x + in_col) * ch_im_in + l] * + wt[i * ch_im_in * dim_kernel_y * dim_kernel_x + (m * dim_kernel_x + n) * ch_im_in + l]; + } + } + } + } + + Im_out[i + (j * dim_im_out_x + k) * ch_im_out] = (q15_t) __NNOM_SSAT((conv_out >> out_shift), 16); + } + } + } +} + + + + +void local_depthwise_separable_conv_HWC_q15_nonsquare(const q15_t *Im_in,// input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +) +{ + int i_out_y, i_out_x, i_ch_out, i_ch_in, i_ch_mult; + int i_ker_y, i_ker_x; + int i_out = 0; + int shift_idx; + int ch_mult = ch_im_out / ch_im_in; + int64_t conv_out; + + for (i_out_y = 0; i_out_y < dim_im_out_y; i_out_y++) + { + const int32_t base_idx_y = stride_y * i_out_y - padding_y; + for (i_out_x = 0; i_out_x < dim_im_out_x; i_out_x++) + { + const int32_t base_idx_x = stride_x * i_out_x - padding_x; + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + for(i_ch_mult = 0; i_ch_mult < ch_mult; i_ch_mult++) + { + i_ch_out = i_ch_mult + i_ch_in * ch_mult; + int32_t ker_y_start = MAX(0, -base_idx_y); + int32_t ker_x_start = MAX(0, -base_idx_x); + int32_t ker_y_end = MIN(dim_kernel_y, dim_im_in_y - base_idx_y); + int32_t ker_x_end = MIN(dim_kernel_x, dim_im_in_x - base_idx_x); + + shift_idx = q_type == NNOM_QTYPE_PER_AXIS ? i_ch_out : 0; + if (bias) + conv_out = ((q31_t)(bias[i_ch_out]) << bias_shift[shift_idx]) + NNOM_ROUND(out_shift[shift_idx]); + else + conv_out = (q31_t)NNOM_ROUND(out_shift[shift_idx]); + + for (i_ker_y = ker_y_start; i_ker_y < ker_y_end; i_ker_y++) + { + const int32_t idx_y = base_idx_y + i_ker_y * dilation_y; + for (i_ker_x = ker_x_start; i_ker_x < ker_x_end; i_ker_x++) + { + const int32_t idx_x = base_idx_x + i_ker_x * dilation_x; + int32_t in_pix_loc = (idx_y * dim_im_in_x + idx_x) * ch_im_in + i_ch_in; + int32_t wt_loc = (i_ker_y * dim_kernel_x + i_ker_x) * (ch_im_in * ch_mult) + i_ch_out; + conv_out += Im_in[in_pix_loc] * wt[wt_loc]; + } + } + Im_out[i_out++] = (q15_t)__NNOM_SSAT((conv_out >> out_shift[shift_idx]), 16); + } + } + } + } +} + +void local_depthwise_separable_conv_CHW_q15_nonsquare(const q15_t *Im_in,// input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const q7_t *wt, // kernel weights + const uint16_t ch_im_out, // number of filters, i.e., output image channels + const uint16_t dim_kernel_x, // filter kernel size x + const uint16_t dim_kernel_y, // filter kernel size y + const uint16_t padding_x, // padding sizes x + const uint16_t padding_y, // padding sizes y + const uint16_t stride_x, // stride x + const uint16_t stride_y, // stride y + const uint16_t dilation_x, // dilation x + const uint16_t dilation_y, // dilation y + const q7_t *bias, // bias + const nnom_qformat_param_t *bias_shift, // bias shifts + const nnom_qformat_param_t *out_shift, // output shift + const nnom_qtype_t q_type, // per channel or per tensor + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y, // output image dimension y + q15_t *bufferA, //buffer space for input + q7_t *bufferB //buffer space for output +) +{ + int i_out_y, i_out_x, i_ch_out, i_ch_in, i_ch_mult; + int i_ker_y, i_ker_x; + int shift_idx; + int ch_mult = ch_im_out / ch_im_in; + int64_t conv_out; + + for (i_out_y = 0; i_out_y < dim_im_out_y; i_out_y++) + { + const int32_t base_idx_y = stride_y * i_out_y - padding_y; + for (i_out_x = 0; i_out_x < dim_im_out_x; i_out_x++) + { + const int32_t base_idx_x = stride_x * i_out_x - padding_x; + for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) + { + for (i_ch_mult = 0; i_ch_mult < ch_mult; i_ch_mult++) + { + i_ch_out = i_ch_mult + i_ch_in * ch_mult; + int32_t ker_y_start = MAX(0, -base_idx_y); + int32_t ker_x_start = MAX(0, -base_idx_x); + int32_t ker_y_end = MIN(dim_kernel_y, dim_im_in_y - base_idx_y); + int32_t ker_x_end = MIN(dim_kernel_x, dim_im_in_x - base_idx_x); + + shift_idx = q_type == NNOM_QTYPE_PER_AXIS ? i_ch_out : 0; + if (bias) + conv_out = ((q31_t)(bias[i_ch_out]) << bias_shift[shift_idx]) + NNOM_ROUND(out_shift[shift_idx]); + else + conv_out = (q31_t)NNOM_ROUND(out_shift[shift_idx]); + + for (i_ker_y = ker_y_start; i_ker_y < ker_y_end; i_ker_y++) + { + const int32_t idx_y = base_idx_y + i_ker_y * dilation_y; + for (i_ker_x = ker_x_start; i_ker_x < ker_x_end; i_ker_x++) + { + const int32_t idx_x = base_idx_x + i_ker_x * dilation_x; + int32_t in_pix_loc = (idx_y * dim_im_in_x + idx_x) + i_ch_in * dim_im_in_x * dim_im_in_y; + int32_t wt_loc = (i_ker_y * dim_kernel_x + i_ker_x) * ch_im_out + i_ch_out; + conv_out += Im_in[in_pix_loc] * wt[wt_loc]; + } + } + Im_out[i_ch_out * dim_im_out_x * dim_im_out_y + (i_out_y * dim_im_out_x + i_out_x)] = + (q15_t)__NNOM_SSAT((conv_out >> out_shift[shift_idx]), 16); + } + } + } + } + +} + +void local_zero_padding_HWC_q15(const q15_t *Im_in, // input image + const uint16_t dim_im_in_x, // input image dimention x + const uint16_t dim_im_in_y, // input image dimention y + const uint16_t ch_im_in, // number of input image channels + const uint16_t padding_top, // padding sizes y + const uint16_t padding_bottom, // padding sizes y + const uint16_t padding_left, // padding sizes x + const uint16_t padding_right, // padding sizes x + q15_t *Im_out, // output image + const uint16_t dim_im_out_x, // output image dimension x + const uint16_t dim_im_out_y) // output image dimension y +{ + int i, size; + q15_t * p_out = Im_out; + + // top rows + size = dim_im_out_x*ch_im_in*padding_top; + nnom_memset(p_out, 0, size*sizeof(q15_t)); + p_out += size; + + // middle + for(i=0; i> out_shift), 16); + } +} + +void local_dot_q15_opt(const q15_t * pV, + const q15_t * pM, + const uint16_t dim_vec, + const uint16_t num_of_rows, + const uint16_t out_shift, + q15_t * pOut) +{ + /* Run the following code as reference implementation for Cortex-M0 and Cortex-M3 */ + uint16_t rowCnt = num_of_rows >> 2; + const q15_t *pB = pM; + const q15_t *pA; + q15_t *pO = pOut; + + while (rowCnt) + { + int64_t sum = (q31_t) NNOM_ROUND(out_shift); + int64_t sum2 = (q31_t) NNOM_ROUND(out_shift); + int64_t sum3 = (q31_t) NNOM_ROUND(out_shift); + int64_t sum4 = (q31_t) NNOM_ROUND(out_shift); + uint16_t colCnt = dim_vec >> 1; + pA = pV; + while (colCnt) + { + q15_t inA1 = *pA++; + q15_t inA2 = *pA++; + q15_t inB1 = *pB++; + q15_t inB2 = *pB++; + sum += inA1 * inB1 + inA2 * inB2; + + inB1 = *pB++; + inB2 = *pB++; + sum2 += inA1 * inB1 + inA2 * inB2; + + inB1 = *pB++; + inB2 = *pB++; + sum3 += inA1 * inB1 + inA2 * inB2; + + inB1 = *pB++; + inB2 = *pB++; + sum4 += inA1 * inB1 + inA2 * inB2; + + colCnt--; + } + colCnt = dim_vec & 0x1; + while (colCnt) + { + q15_t inA = *pA++; + q15_t inB = *pB++; + sum += inA * inB; + inB = *pB++; + sum2 += inA * inB; + inB = *pB++; + sum3 += inA * inB; + inB = *pB++; + sum4 += inA * inB; + colCnt--; + } + *pO++ = (q15_t) __NNOM_SSAT((sum >> out_shift), 16); + *pO++ = (q15_t) __NNOM_SSAT((sum2 >> out_shift), 16); + *pO++ = (q15_t) __NNOM_SSAT((sum3 >> out_shift), 16); + *pO++ = (q15_t) __NNOM_SSAT((sum4 >> out_shift), 16); + + rowCnt--; + } + rowCnt = num_of_rows & 0x3; + + while (rowCnt) + { + int64_t ip_out = (q31_t) + NNOM_ROUND(out_shift); + int j; + + pA = pV; + for (j = 0; j < dim_vec; j++) + { + q15_t inA = *pA++; + q15_t inB = *pB++; + ip_out += inA * inB; + } + *pO++ = (q15_t) __NNOM_SSAT((ip_out >> out_shift), 16); + + rowCnt--; + } +} + +void local_fully_connected_mat_q7_vec_q15_opt(const q15_t * pV, + const q7_t * pM, + const uint16_t dim_vec, + const uint16_t num_of_rows, + const uint16_t bias_shift, + const uint16_t out_shift, + const q7_t * bias, + q15_t * pOut, + q15_t * vec_buffer) +{ + + (void)vec_buffer; + + /* Run the following code as reference implementation for Cortex-M0 and Cortex-M3 */ + uint16_t rowCnt = num_of_rows >> 2; + const q7_t *pB = pM; + const q15_t *pA; + q15_t *pO = pOut; + const q7_t *pBias = bias; + + while (rowCnt) + { + int64_t sum; + int64_t sum2; + int64_t sum3; + int64_t sum4; + uint16_t colCnt = dim_vec >> 1; + + // quick and dirty to support none bias fully connected + if(bias) + { + sum = ((q31_t)(*pBias++) << bias_shift) + NNOM_ROUND(out_shift); + sum2 = ((q31_t)(*pBias++) << bias_shift) + NNOM_ROUND(out_shift); + sum3 = ((q31_t)(*pBias++) << bias_shift) + NNOM_ROUND(out_shift); + sum4 = ((q31_t)(*pBias++) << bias_shift) + NNOM_ROUND(out_shift); + } + else + { + sum = (q31_t) NNOM_ROUND(out_shift); + sum2 = (q31_t) NNOM_ROUND(out_shift); + sum3 = (q31_t) NNOM_ROUND(out_shift); + sum4 = (q31_t) NNOM_ROUND(out_shift); + } + + pA = pV; + while (colCnt) + { + q15_t inA1 = *pA++; + q15_t inA2 = *pA++; + + q7_t inB1 = *pB++; + q7_t inB3 = *pB++; + q7_t inB2 = *pB++; + q7_t inB4 = *pB++; + + sum += inA1 * inB1 + inA2 * inB2; + sum2 += inA1 * inB3 + inA2 * inB4; + + inB1 = *pB++; + inB3 = *pB++; + inB2 = *pB++; + inB4 = *pB++; + + sum3 += inA1 * inB1 + inA2 * inB2; + sum4 += inA1 * inB3 + inA2 * inB4; + + colCnt--; + } + + colCnt = dim_vec & 0x1; + while (colCnt) + { + q15_t inA = *pA++; + q7_t inB = *pB++; + sum += inA * inB; + inB = *pB++; + sum2 += inA * inB; + inB = *pB++; + sum3 += inA * inB; + inB = *pB++; + sum4 += inA * inB; + + colCnt--; + } + *pO++ = (q15_t) __NNOM_SSAT((sum >> out_shift), 16); + *pO++ = (q15_t) __NNOM_SSAT((sum2 >> out_shift), 16); + *pO++ = (q15_t) __NNOM_SSAT((sum3 >> out_shift), 16); + *pO++ = (q15_t) __NNOM_SSAT((sum4 >> out_shift), 16); + + rowCnt--; + } + + rowCnt = num_of_rows & 0x3; + + while (rowCnt) + { + int64_t ip_out; + int j; + + // quick and dirty to support none bias fully connected + if(bias) + ip_out = ((q31_t)(*pBias++) << bias_shift) + NNOM_ROUND(out_shift); + else + ip_out = (q31_t)NNOM_ROUND(out_shift); + + pA = pV; + for (j = 0; j < dim_vec; j++) + { + q15_t inA = *pA++; + q7_t inB = *pB++; + ip_out += inA * inB; + } + *pO++ = (q15_t) __NNOM_SSAT((ip_out >> out_shift), 16); + + rowCnt--; + } +} + +void local_fully_connected_mat_q7_vec_q15(const q15_t * pV, + const q7_t * pM, + const uint16_t dim_vec, + const uint16_t num_of_rows, + const uint16_t bias_shift, + const uint16_t out_shift, + const q7_t * bias, + q15_t * pOut, + q15_t * vec_buffer) +{ + int i, j; + + // a quick solution for none-bias dot. + if(bias == NULL) + { + for (i = 0; i < num_of_rows; i++) + { + int64_t ip_out = (q31_t) NNOM_ROUND(out_shift); + for (j = 0; j < dim_vec; j++) + { + ip_out += pV[j] * pM[i * dim_vec + j]; + } + pOut[i] = (q15_t) __NNOM_SSAT((ip_out >> out_shift), 16); + } + } + else + { + for (i = 0; i < num_of_rows; i++) + { + int64_t ip_out = ((q31_t)(bias[i]) << bias_shift) + NNOM_ROUND(out_shift); + for (j = 0; j < dim_vec; j++) + { + ip_out += pV[j] * pM[i * dim_vec + j]; + } + pOut[i] = (q15_t) __NNOM_SSAT((ip_out >> out_shift), 16); + } + } +} + +// This softmax is a copy from ARM CMSIS implimentation as it was efficient and written in pure-C. +// original implementation: https://github.com/ARM-software/CMSIS_5/blob/develop/CMSIS/NN/Source/SoftmaxFunctions/arm_softmax_q15.c +void local_softmax_q15(const q15_t * vec_in, const uint16_t dim_vec, q15_t * p_out) +{ + q31_t sum; + int16_t i; + uint8_t shift; + q31_t base; + base = -1 * 0x100000; + for (i = 0; i < dim_vec; i++) + { + if (vec_in[i] > base) + { + base = vec_in[i]; + } + } + + /* we ignore really small values + * anyway, they will be 0 after shrinking + * to q15_t + */ + base = base - 16; + + sum = 0; + + for (i = 0; i < dim_vec; i++) + { + if (vec_in[i] > base) + { + shift = (uint8_t)__NNOM_USAT(vec_in[i] - base, 5); + sum += 0x1 << shift; + } + } + + /* This is effectively (0x1 << 32) / sum */ + int64_t div_base = 0x100000000LL; + int output_base = (int32_t)(div_base / sum); + + /* Final confidence will be output_base >> ( 17 - (vec_in[i] - base) ) + * so 32768 (0x1<<15) -> 100% confidence when sum = 0x1 << 16, output_base = 0x1 << 16 + * and vec_in[i]-base = 16 + */ + for (i = 0; i < dim_vec; i++) + { + if (vec_in[i] > base) + { + /* Here minimum value of 17+base-vec[i] will be 1 */ + shift = (uint8_t)__NNOM_USAT(17+base-vec_in[i], 5); + p_out[i] = (q15_t) __NNOM_SSAT((output_base >> shift), 16); + } else + { + p_out[i] = 0; + } + } + +} + + +// hard sigmoid, +// y=-1 if x < -2.5 +// y=1 if x > 2.5 +// otherwise y = 0.2 * x + 0.5 (y=0.20315 * x + 0.5) +void local_hard_sigmoid_q15(q15_t *data, uint32_t size, int16_t dec_bit) +{ + int16_t limit = 2.5f * (1 << dec_bit)-1; + int16_t offset = 16384; // 0.5 * 32768 + int16_t mult = 6554; // 0.2 * 32768 + + // int bit >= 0 + for(int i=0; i= limit) + data[i] = 32767; + else + { + data[i] = ((int32_t)(data[i] * mult) >> dec_bit) + offset; + } + } + } + +// hard tanh +// y=-1 if x < -1 +// y=1 if x > 1 +// otherwise y = x +void local_hard_tanh_q15(q15_t *data, uint32_t size, int16_t dec_bit) +{ + int16_t int_bit = 15 - dec_bit; + int16_t limit = 1 << dec_bit; + + if(dec_bit == 15) + return; + + // int bit < 0 + if(int_bit < 0) + for(int i=0; i= limit) + data[i] = 32767; + else + { + data[i] = data[i] >> (-int_bit); + } + } + else + // int bit >= 0 + for(int i=0; i= limit) + data[i] = 32767; + else + { + data[i] = data[i] << int_bit; + } + } +} + +void local_relu_q15(q15_t *data, uint32_t size) +{ + uint32_t i; + + for (i = 0; i < size; i++) + { + if (data[i] < 0) + data[i] = 0; + } +} + +// alpha in q7 format with dec_bit=7 +void local_leaky_relu_q15(q15_t *data, q7_t alpha, uint32_t size) +{ + uint32_t i; + + for (i = 0; i < size; i++) + { + if (data[i] < 0) + { + data[i] = data[i] * alpha / 128; + } + } +} + +// alpha in q7 format with dec_bit=7 +// max and threshold has the same Q format with the activation +void local_adv_relu_q15(q15_t *data, q7_t negative_slope, q15_t max, q15_t threshold, uint32_t size) +{ + uint32_t i; + for (i = 0; i < size; i++) + { + // `f(x) = max_value` for `x >= max_value`, + // `f(x) = x` for `threshold <= x < max_value`, + // `f(x) = alpha * (x - threshold)` otherwise. + + if(data[i] > max) + data[i] = max; + if (data[i] < threshold) + data[i] = (data[i] - threshold) * negative_slope / 128; + } +} + +// ARM's CMSIS implementation. +static void local_activation_q15(q15_t * data, uint32_t size, uint16_t int_width, const q15_t*lookup_table) +{ + uint32_t i = size; + q15_t *pIn = data; + q15_t *pOut = data; + uint16_t shift_size = 8 + 3 - int_width; + uint32_t bit_mask = 0x7FF >> int_width; + uint32_t full_frac = bit_mask + 1; + while (i) + { + q15_t out; + q15_t in = *pIn++; + q15_t frac = (uint32_t) in & bit_mask; + q15_t value = lookup_table[(uint8_t)(in >> shift_size)]; + if ((in >> shift_size) != 0x7f) + { + q15_t value2 = lookup_table[(uint8_t)(1 + ((uint8_t)(in >> shift_size)))]; + /* doing the interpolation here for better accuracy */ + out = ((q31_t) (full_frac - frac) * value + (q31_t) value2 * frac) >> shift_size; + } else + { + /* the largest positive value does not have a right side for linear interpolation */ + out = value; + } + *pOut++ = out; + i--; + } +} + +void local_sigmoid_q15(q15_t * data, uint32_t size, uint16_t int_width) +{ + local_activation_q15(data, size, int_width, nnom_sigmoid_table_q15); +} + +void local_tanh_q15(q15_t * data, uint32_t size, uint16_t int_width) +{ + local_activation_q15(data, size, int_width, nnom_tanh_table_q15); +} + +// matrix ops q15 +void local_mult_q15(q15_t *pSrcA, + q15_t *pSrcB, + q15_t *pDst, + const uint16_t out_shift, + uint32_t blockSize) +{ + uint32_t i; + + for (i = 0; i < blockSize; i++) + { + q31_t product = pSrcA[i] * pSrcB[i]; + pDst[i] = (q15_t) __NNOM_SSAT(((product + NNOM_ROUND(out_shift)) >> out_shift), 16); + } +} + +void local_add_q15(q15_t *pSrcA, + q15_t *pSrcB, + q15_t *pDst, + const uint16_t out_shift, + uint32_t blockSize) +{ + uint32_t i; + + for (i = 0; i < blockSize; i++) + { + q31_t sum = pSrcA[i] + pSrcB[i]; + pDst[i] = (q15_t) __NNOM_SSAT(((sum + NNOM_ROUND(out_shift)) >> out_shift), 16); + } +} + +void local_sub_q15(q15_t *pSrcA, + q15_t *pSrcB, + q15_t *pDst, + const uint16_t out_shift, + uint32_t blockSize) +{ + uint32_t i; + + for (i = 0; i < blockSize; i++) + { + q31_t sub = pSrcA[i] - pSrcB[i]; + pDst[i] = (q15_t) __NNOM_SSAT(((sub + NNOM_ROUND(out_shift)) >> out_shift), 16); + } +} + + +void local_multiple_add_q15( q15_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q15_t **p_src) +{ + uint32_t i, blk; + q31_t sum; + + for (i = 0; i < block_size; i++) + { + sum = 0; + for(blk=0; blk < num_block; blk++) + sum += p_src[blk][i]; + p_dst[i] = (q15_t) __NNOM_SSAT(((sum + NNOM_ROUND(out_shift)) >> out_shift), 16); + } +} + +void local_multiple_mult_q15( q15_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q15_t **p_src) +{ + uint32_t i, blk; + q63_t product; + + for (i = 0; i < block_size; i++) + { + product = 1; + for(blk=0; blk < num_block; blk++) + product *= p_src[blk][i]; + p_dst[i] = (q15_t) __NNOM_SSAT(((product + NNOM_ROUND(out_shift)) >> out_shift), 16); + } +} + +void local_multiple_sub_q15( q15_t *p_dst, + const int16_t out_shift, + uint32_t block_size, + uint32_t num_block, + q15_t **p_src) +{ + uint32_t i, blk; + q31_t sub; + + for (i = 0; i < block_size; i++) + { + sub = p_src[0][i]; + for(blk=1; blk < num_block; blk++) + sub -= p_src[blk][i]; + p_dst[i] = (q15_t) __NNOM_SSAT(((sub + NNOM_ROUND(out_shift)) >> out_shift), 16); + } +} + +// y = 1 - x +void local_1_minor_z_q15(q15_t* src, q15_t*des, uint16_t dec_bit, uint32_t size) +{ + int32_t one = (1 << dec_bit)-1; + for(int i=0; i +#include +#include +#include +#include "nnom.h" + +const char default_layer_names[][12] = DEFUALT_LAYER_NAMES; +const char default_activation_names[][8] = ACTIVATION_NAMES; +const char default_cell_names[][8] = DEFUALT_CELL_NAMES; +size_t nnom_memory_taken = 0; + +// local static functions (when libc/dynamic memory interfaces are not avaiable. ) +#ifdef NNOM_USING_STATIC_MEMORY +static uint8_t *nnom_static_buf = NULL; //pointer to static buffer +static size_t nnom_static_buf_size = 0; //static buf size +static size_t nnom_static_buf_curr = 0; +void nnom_set_static_buf(void* buf, size_t size) +{ + nnom_static_buf = buf; + nnom_static_buf_size = size; + nnom_static_buf_curr = 0; +} +void* nnom_malloc(size_t size) +{ + size = nnom_alignto(size, NNOM_ALIGN); + if(size + nnom_static_buf_curr < nnom_static_buf_size) + { + uint8_t* new_block = nnom_static_buf_curr + nnom_static_buf; + nnom_static_buf_curr += size; + return new_block; + } + else + { + if(nnom_static_buf_size == 0) + NNOM_LOG("Please set static memory using 'nnom_set_static_buf()' before calling model created."); + else + NNOM_LOG("No memory! Static buffer size(%d) not big enough, please increase buffer size!", + (uint32_t)nnom_static_buf_size); + return NULL; + } +} +void nnom_free(void* p){;} +#endif // NNOM_USING_STATIC_MEMORY + +void *nnom_mem(size_t size) +{ + size = nnom_alignto(size, NNOM_ALIGN); + void *p = (void*)nnom_malloc(size); + if (p) + { + nnom_memory_taken += size; //test + nnom_memset(p, 0, size); + } + return p; +} + +size_t nnom_mem_stat(void) +{ + return nnom_memory_taken; +} + +// get the size of an IO module +static size_t io_mem_size(nnom_layer_io_t *io) +{ + size_t size = 0; + if (io != NULL) + { + while (io) + { + size += tensor_size(io->tensor); + io = io->aux; + } + } + return size; +} + +size_t nnom_alignto(size_t value, uint32_t alignment) +{ + if (value % alignment == 0) + return value; + value += alignment - value % alignment; + return value; +} + +static nnom_layer_t *find_last(nnom_layer_t *layer) +{ + if (layer == NULL) + return NULL; + // iterate every layer until the last one on the list, then return the last instance + while (layer->out->hook.io != NULL) + layer = layer->out->hook.io->owner; + return layer; +} +// input start layer, return layer num +static uint32_t find_index(nnom_layer_t *start, nnom_layer_t *layer) +{ + uint32_t i = 1; + if (start == NULL) + return 0; + // iterate every layer until the last one on the list, then return the index number + while (start->out->hook.io != NULL) + { + i++; + if (layer == start) + return i; + start = start->out->hook.io->owner; + } + return 0; +} + +static nnom_status_t model_add(nnom_model_t *model, nnom_layer_t *layer) +{ + nnom_layer_t *last = NULL; + nnom_layer_t *curr = NULL; + + if (layer == NULL) + { + NNOM_LOG("Error: added a NULL layer, could be no memory while creating layer.\n"); + return NN_NO_MEMORY; + } + + last = find_last(model->head); + curr = layer; + + // when the layer list is empty, the find_last() return model->head. + if (last == NULL) + { + model->head = curr; + } + else + { + // hook the current layer with the last layer. + last->out->hook.io = curr->in; // hook IO + curr->in->hook.io = last->out; + } + return NN_SUCCESS; +} + +// find an available hook on the io module, normally used by output io module. +// input, the output io module that wants to hook on +// output, the new hook that added to the end of the hook list on the io +static nnom_layer_hook_t *allocate_hook(nnom_layer_io_t *io) +{ + nnom_layer_hook_t *hook; + if (io == NULL) + return NULL; + hook = &io->hook; + + // if the primary hook is empty, reture it directly. + if (hook->io == NULL) + { + return hook; + } + else + { + // find the empty place and allocate new hook for us + while (hook->next != NULL) + { + hook = hook->next; + } + hook->next = nnom_mem(sizeof(nnom_layer_hook_t)); + if (hook->next == NULL) + return NULL; + return hook->next; + } +} + +// to check if an io is hooked to other layer +// input the primary io of a layer's input or output +// return, the new io that added to the io list. +static nnom_layer_io_t *allocate_io(nnom_layer_io_t *io) +{ + if (io == NULL) + return NULL; + + // if the io is free to used + if (io->hook.io == NULL) + { + return io; + } + else + { + // find the empty place and allocate new hook for us + while (io->aux != NULL) + { + io = io->aux; + } + io->aux = nnom_mem(sizeof(nnom_layer_io_t)); + if (io->aux == NULL) + return NULL; + // the owner for new io is inherited + io->aux->owner = io->owner; + return io->aux; + } +} + +// hook the current layer to the input layer +// this function only to connect (single output layer) to (single input layer). +static nnom_layer_t *model_hook(nnom_layer_t *curr, nnom_layer_t *last) +{ + nnom_layer_io_t *curr_in_io; + nnom_layer_hook_t *last_io_hook; + + if (last == NULL || curr == NULL) + return NULL; + + // add a new hook to the output io of the last layer + last_io_hook = allocate_hook(last->out); + // add a new input io to the current layer's input list. + curr_in_io = allocate_io(curr->in); + + // manually hook them togeter. + last_io_hook->io = curr_in_io; + curr_in_io->hook.io = last->out; + + return curr; +} + +// merge a few layers using specified method +// num = the number of layer that will be merged +// method = functional layer such as (concat(), mult(), add(), sub()) +static nnom_layer_t *model_mergex(nnom_layer_t *method, int num, ...) +{ + nnom_layer_t *layer_in; + va_list valist; + + if (method == NULL) + return NULL; + + va_start(valist, num); + for (int i = 0; i < num; i++) + { + // get the input layer + layer_in = va_arg(valist, nnom_layer_t *); + model_hook(method, layer_in); + } + va_end(valist); + return method; +} + +// merge 2 input +// this is an older interface +// method = functional layer such as (concat(), mult(), add(), sub()) +static nnom_layer_t *model_merge(nnom_layer_t *method, nnom_layer_t *in1, nnom_layer_t *in2) +{ + return model_mergex(method, 2, in1, in2); +} + +// This api will merge activation to layer's actail to avoid the extra layer for activation +static nnom_layer_t *model_active(nnom_activation_t *act, nnom_layer_t *target) +{ + // simple and easy + target->actail = act; + return target; +} + +// when model=NULL, it create a new sequential model +nnom_model_t *new_model(nnom_model_t *model) +{ + nnom_model_t *m = model; + if (m == NULL) + { + m = nnom_mem(sizeof(nnom_model_t)); + m->is_allocated = true; + } + else + { + nnom_memset(m, 0, sizeof(nnom_model_t)); + m->is_allocated = false; + } + + // set methods + m->add = model_add; + m->hook = model_hook; + m->merge = model_merge; + m->mergex = model_mergex; + m->active = model_active; + + return m; +} + +static void io_tensor_delete(nnom_layer_io_t* io) +{ + while (io) + { + nnom_free(io->tensor); + io = io->aux; + } +} + +// delete all the aux hooks +// delete aux io only, keep the primary io. +static void io_list_delete(nnom_layer_io_t *io) +{ + nnom_layer_hook_t *hook, *next_hook; + nnom_layer_io_t *next_io; + while (io) + { + // store the next io + next_io = io->aux; + + // release hooks list first + hook = io->hook.next; + while (hook) + { + next_hook = hook->next; + nnom_free(hook); + hook = next_hook; + } + + // now we can release the aux io itself + // but if this io is the primary input/out of the layer, it will be freed with they layer's instance since they are allocated together. + if (io != io->owner->in && io != io->owner->out) + nnom_free(io); + + // next aux io + io = next_io; + } +} + +// there are 2 type of memory in a layer +// *primary memory* is allocated when a layer instance is created, they are created by layer API (Conv2D()...). +// it includes the layer instance, primary input, primary output, and an optional computational memory buffer instance +// each io module also has one primary hook. +// *secondary memory* are axiliary io modules, axiliary hooks and activations which created by model.xx() APIs (model.hook(), model.active()...) +// it includes the list of aux io modules, the list of aux hooks. +// +// Additionaly, layer's private free method must be called to free layer's private resources +// Such as activation instance passed to Activation() layer, and private memory allcated within Lambda layer. +// +// A layer is consist of a few io modules. primary io are allocated with layers instance. +// each of the io has a few hooks. primary hooks are included in the io module. +// so only "aux" hooks and ios need to be freed separately. +static void layer_delete(nnom_layer_t *layer) +{ + if (layer == NULL) + return; + + // call private free of the layer + if (layer->free) + layer->free(layer); + + // delete the tensors first. only input layer should delete input + if (layer->type == NNOM_INPUT) + io_tensor_delete(layer->in); + io_tensor_delete(layer->out); + + // release secondary memory on the layers. + // they are io lists and hooks list + io_list_delete(layer->in); + io_list_delete(layer->out); + + // release activations (it takes null too) + nnom_free(layer->actail); + + // release primary memory + nnom_free(layer); + return; +} + +void model_delete(nnom_model_t *m) +{ + nnom_layer_t *layer; + nnom_layer_t *next; + if (m == NULL) + return; + + // uses shortcut list to iterate the model, + // start from head + layer = m->head; + while (layer) + { + // get the next before releasing current + next = layer->shortcut; + // your term + layer_delete(layer); + // who's next! + layer = next; + } + + // free the memory blocks for the network's buffer + nnom_free(m->blocks->blk); + + // free model instance itself + if (m->is_allocated) + nnom_free(m); + else + nnom_memset(m, 0, sizeof(nnom_model_t)); + + nnom_memory_taken = 0; + return; +} + +// find an available memory block. +static nnom_mem_block_t *allocate_block(nnom_mem_block_t *list) +{ + nnom_mem_block_t *free = NULL; + uint32_t idx; + + for (idx = 0; idx < NNOM_BLOCK_NUM; idx++) + { + if (list[idx].owners == 0) + break; + } + if(idx == NNOM_BLOCK_NUM) + { + NNOM_LOG("\nERROR! No enough memory block for parallel buffers, please increase the 'NNOM_BLOCK_NUM' in 'nnom_port.h'\n"); + return NULL; + } + + free = &list[idx]; + return free; +} + +static void release_block(nnom_mem_block_t *block) +{ + if (block->owners > 0) + block->owners -= 1; + if (block->owners == 0) + block->state = NNOM_BUF_EMPTY; +} + +static void release_input_mem(nnom_layer_t *layer) +{ + nnom_layer_io_t *in; + // release all input of buf + in = layer->in; + while (in != NULL) + { + release_block(in->mem); + in = in->aux; + } +} +static void release_comp_mem(nnom_layer_t *layer) +{ + // release computational buf if exist + if (layer->comp != NULL) + { + release_block(layer->comp->mem); + } +} + +// return the length of the io lists +size_t nnom_io_length(nnom_layer_io_t *io) +{ + size_t num = 0; + if (io == NULL) + return 0; + while (io != NULL) + { + num++; + io = io->aux; + } + return num; +} + +// return the length of the hook lists +size_t nnom_hook_length(nnom_layer_hook_t *hook) +{ + size_t num = 0; + if (hook == NULL) + return 0; + while (hook != NULL) + { + num++; + hook = hook->next; + } + return num; +} + +// The shortcut version of find_last() method. +// must be used after compiling. +static nnom_layer_t *layer_shortcut_find_last(nnom_layer_t *start) +{ + nnom_layer_t *layer = start; + if (start == NULL) + return NULL; + while (layer->shortcut != NULL) + layer = layer->shortcut; + return layer; +} + +// call while compiling. +// the shorcut is for fast running and fast iliterating. +// simply link every layer as a list. ordered by its runing order +static nnom_status_t layer_shortcut_add(nnom_layer_t *start, nnom_layer_t *curr) +{ + nnom_layer_t *layer = start; + // first one, return + if (start == curr) + { + return NN_SUCCESS; + } + // find the end of the list, and add curr layer to the end of it. + while (layer->shortcut != NULL) + { + // if the layer is already in shortcut list, tell upper. + if (curr == layer) + return NN_ARGUMENT_ERROR; + layer = layer->shortcut; + } + layer->shortcut = curr; + + return NN_SUCCESS; +} + +// input the layer number, +static void print_layer_info(nnom_layer_t *layer, uint32_t layer_count) +{ + size_t in_size = io_mem_size(layer->in); + size_t out_size = io_mem_size(layer->out); + size_t compsize; + size_t mac = layer->stat.macc; + if (layer->comp != NULL) + compsize = layer->comp->size; + else + compsize = 0; + // names + if(layer->type != NNOM_RNN) + NNOM_LOG("#%-3d %-10s - ", layer_count, default_layer_names[layer->type]); + else + { + NNOM_LOG("#%-3d %-3s/", layer_count, default_layer_names[layer->type]); + NNOM_LOG("%-6s - ", default_cell_names[((nnom_rnn_layer_t*)layer)->cell->type]); + } + + // activations + if (layer->actail != NULL) + NNOM_LOG("%-8s - ", default_activation_names[layer->actail->type]); + else + NNOM_LOG(" - "); + + NNOM_LOG("("); + for (int i = 0; i < 3; i++) + { + if (layer->out->tensor->num_dim > i) + NNOM_LOG("%4d,", layer->out->tensor->dim[i]); + else + NNOM_LOG(" "); + } + NNOM_LOG(") "); + + // MAC operation + if(mac == 0) + NNOM_LOG(" "); + else if (mac < 10000) + NNOM_LOG("%7d ", (uint32_t)mac); + else if (mac < 1000*1000) + NNOM_LOG("%6dk ", (uint32_t)(mac/1000)); + else if (mac < 1000*1000*1000) + NNOM_LOG("%3d.%02dM ", (uint32_t)(mac/(1000*1000)), (uint32_t)(mac%(1000*1000)/(10*1000))); // xxx.xx M + else + NNOM_LOG("%3d.%02dG ", (uint32_t)(mac/(1000*1000*1000)), (uint32_t)(mac%(1000*1000*1000)/(10*1000*1000))); // xxx.xx G + + // memory + NNOM_LOG("(%6d,%6d,%6d)", (uint32_t)in_size, (uint32_t)out_size,(uint32_t) compsize); +} + +static void print_memory_block_info(nnom_mem_block_t *block_pool) +{ + // show the memory blocks's lifetime (number of owners) + NNOM_LOG(" "); + for (int i = 0; i < NNOM_BLOCK_NUM; i++) + { + if (i % 4 == 0) + NNOM_LOG(" "); + if (block_pool[i].owners) + NNOM_LOG("%d ", block_pool[i].owners); + else + NNOM_LOG("- "); + } + NNOM_LOG("\n"); +} + +// This is a nested called functions. +// to analyse the topology of the model, calculate the output_shape of each layer and create shortcut lists. +// Nest will happend when a layer have multiple output module or mutiple output hooks. +// This function will return when +// 1) if the layer has multiple input but not all of them are filled by last layers. returns NN_MORE_TODO +// 2) if all the output hooked are nested called. return NN_SUCCESS +// 3) if the layer is output layer. return NN_SUCCESS +nnom_status_t compile_layers(nnom_layer_t* first, nnom_layer_t *curr, nnom_mem_block_t *block_pool, uint32_t *layer_count) +{ + size_t mem_size = 0; + nnom_layer_t *layer = curr; + nnom_layer_io_t *in; + nnom_layer_io_t *out; + nnom_layer_hook_t *hook; + + nnom_mem_block_t *in_blk; + nnom_mem_block_t *out_blk; + + uint32_t local_layer_count = 1; + + if(layer_count == NULL) + layer_count = &local_layer_count; + + in = layer->in; + out = layer->out; + + while (layer) + { + // check input + in = layer->in; + + // check if this layer is the input layer + // the first layer has no input hooked, and the io is not initialized + if (in->hook.io == NULL) + { + // if the input is not initalized + if (in->mem == NULL) + { + in_blk = allocate_block(block_pool); + in_blk->owners += 1; // add 1 + mem_size = nnom_alignto(tensor_size(in->tensor), NNOM_ALIGN); + in_blk->size = mem_size > in_blk->size ? mem_size : in_blk->size; + // set the blk to the layer IO + in->mem = in_blk; + in->mem->state = NNOM_BUF_FILLED; //mark input buff filled + } + } + else + { + // get the mem for every input from its hooked output. + while (in != NULL) + { + in->mem = in->hook.io->mem; + in = in->aux; + } + } + + // if there are mutiple inputs, wait utill all blocks filled + in = layer->in; + if (in != NULL && in->aux != NULL) + { + while (in != NULL) + { + // if the mem (of its hooked output) is not allocated or is not filled. + // It not the time to run the layer yet, return and waits for next nested called. + if (in->mem == NULL || in->mem->state != NNOM_BUF_FILLED) + return NN_MORE_TODO; + in = in->aux; + } + } + + // if run to this point, then it is the right time to compile(run) this layer. + // compiling are seperated into the steps below. + // 1. to calculate the output shape. + // 2. to put the current layer to the end of shortcut list. + // 3. allocate computational buffer. + // 4. allocate output buffer for each output module. + // 5.1 if there is only one layer hooked to the output. we dont use nested call, but continue in this big while loop. + // 5.2 nested call the hooked output layers (if there are > 1 hooked to the output of this layer) + + // 1. calculate output shape while all inputs are filled + layer->build(layer); + + // 2. add to shortcut list. + layer_shortcut_add(first, layer); + + // 3. assign for computational buf + if (layer->comp != NULL) + { + layer->comp->mem = allocate_block(block_pool); + layer->comp->mem->owners += 1; // add us to buffer users + layer->comp->mem->state = NNOM_BUF_FILLED; + // record maximum mem size in this block + mem_size = nnom_alignto(layer->comp->size, NNOM_ALIGN); + layer->comp->mem->size = + mem_size > layer->comp->mem->size ? mem_size : layer->comp->mem->size; + } + + // print current layer's info. + // show names, activations, mem block size + print_layer_info(layer, (*layer_count)++); + + // 4. allocate output buffer for each output module. + // check output + if (layer->out == NULL) + return NN_SUCCESS; + + // 5.1 if there is only one layer hooked to the output. we dont use nested call, but continue in this big while loop. + // if the layer is Single Output, continue the loop directly. To reduce nested level + if (layer->out->aux == NULL && layer->out->hook.next == NULL) + { + // single buf layer. + if (layer->in->type == NNOM_TENSOR_BUF_NULL || layer->out->type == NNOM_TENSOR_BUF_NULL) + { + // pass to next layer directly, like we never touch the buffer(dont change life-time) + layer->out->mem = layer->in->mem; + + // print memory before release + print_memory_block_info(block_pool); + // computational buf + release_comp_mem(layer); + } + // not a single buf layer + else + { + // allocate mem block for the output + out_blk = allocate_block(block_pool); + if (out_blk == NULL) + return NN_NO_MEMORY; + // set the life time, only one hooked layer, so the life time is 1 + out_blk->owners = 1; + out_blk->state = NNOM_BUF_FILLED; // marked filled + // record maximum mem size in this block + mem_size = nnom_alignto(tensor_size(layer->out->tensor), NNOM_ALIGN); + out_blk->size = mem_size > out_blk->size ? mem_size : out_blk->size; + // set the blk to the layer IO + layer->out->mem = out_blk; + + // once we allocate for output, we can now release input and comput. + // print memory before release + print_memory_block_info(block_pool); + // release input mem and comp mem + release_input_mem(layer); + release_comp_mem(layer); + } + } + // Multiple output and/or mutiple hooks + else + { + // single buf layer will use the input buf for the first output + if (layer->in->type == NNOM_TENSOR_BUF_NULL || layer->out->type == NNOM_TENSOR_BUF_NULL) + { + // we dont allocate new buf, but use the input + // the ownership will be set to next layer later + layer->out->mem = layer->in->mem; + layer->out->mem->owners += nnom_hook_length(&layer->out->hook); // set the mem lifetime.// test + layer->out->mem->state = NNOM_BUF_FILLED; + + // print memory before release + print_memory_block_info(block_pool); + // release computational buff and input buffer + release_input_mem(layer); + release_comp_mem(layer); + } + // mutiple buf layer. (I/O use different memory blocks) + else + { + // allocate for every output + out = layer->out; + while (out != NULL && out->hook.io != NULL) // the output layer have no output IO + { + // assign new block + out->mem = allocate_block(block_pool); + if (out->mem == NULL) + return NN_NO_MEMORY; + // record maximum mem size in this block + mem_size = nnom_alignto(tensor_size(out->tensor), NNOM_ALIGN); + out->mem->size = mem_size > out->mem->size ? mem_size : out->mem->size; + // keep the block untill the last hooked layer is called. + out->mem->owners = nnom_hook_length(&out->hook); // set lifetime of the buffer = the num of hooked layers + out->mem->state = NNOM_BUF_FILLED; + + out = out->aux; + } + // once we allocate for output, we can now release input and comput (or reduce the lifetime). + // print memory before release + print_memory_block_info(block_pool); + // release input mem and comp mem + release_input_mem(layer); + release_comp_mem(layer); + } + + // 5.12 nested call the hooked output layers (if there are > 1 hooked to the output of this layer) + // while all the out module(s) receive a memory block, it is ready to be sent to other layers. + // iterate all hooked layers in each out module. + out = layer->out; + while (out != NULL) + { + // nested call hooked layer one by one. + hook = &out->hook; + while (hook != NULL && hook->io != NULL) + { + compile_layers(first, hook->io->owner, block_pool, layer_count); + hook = hook->next; + } + + // next io + out = out->aux; + } + + // when all the out is called. this should stop here. + // once enter mutiple output iterating, the function will always return. + // because at least one of the nested called by this function will run till the end of the model. + return NN_SUCCESS; + } + // Multiple output ended. + + // return if this is output layer. + // the output layer's output io is hooked to nothing. + if (layer->out->hook.io == NULL) + return NN_SUCCESS; + + // single output layer, this function continue to analyse next layer. + // switch to next layer. + layer = layer->out->hook.io->owner; + } + + // seems to be redundants + return NN_SUCCESS; +} + +size_t mem_analysis_result(nnom_model_t *m) +{ + uint32_t index; + uint32_t total_mem = 0; + NNOM_LOG("Memory cost by each block:\n "); + // print size of memory blocks + for (index = 0; index < NNOM_BLOCK_NUM; index++) + { + total_mem += m->blocks[index].size; + NNOM_LOG("blk_%d:%d ", index, (uint32_t)(m->blocks[index].size)); + } + // size of total memory cost by networks buffer + NNOM_LOG("\n Memory cost by network buffers: %d bytes\n", total_mem); + return total_mem; +} + +// allocate memory, and set them to each block according to the mem analysis results. +nnom_status_t block_mem_set(nnom_model_t *m, void *buf) +{ + uint32_t index; + uint32_t mem_offset = 0; + + for (index = 0; index < NNOM_BLOCK_NUM; index++) + { + if (m->blocks[index].size == 0) + break; + m->blocks[index].blk = (void *)((uint8_t*)buf + mem_offset); + mem_offset += m->blocks[index].size; + } + return NN_SUCCESS; +} + +// experimental: this function is temporary use to +// assign memory blk which has assigned to input and output to the corresponding tensor +nnom_status_t tensor_mem_set(nnom_model_t *m) +{ + nnom_layer_t *layer = m->head; + nnom_layer_io_t *io; + while (layer) + { + io = layer->in; + while (io) + { + io->tensor->p_data = io->mem->blk; + io = io->aux; + } + + io = layer->out; + while (io) + { + io->tensor->p_data = io->mem->blk; + io = io->aux; + } + + layer = layer->shortcut; + } + + return NN_SUCCESS; +} + +// this function has to be used after memory is assigned to the layers. +// it means it has to be call after compile_model() as well. +// it simply get the output buffer and set the buffer to tailed activation of each layer.. +nnom_status_t set_tailed_activation(nnom_model_t *m) +{ + NNOM_NULL_CHECK(m); + NNOM_NULL_CHECK(m->head); + nnom_layer_t *layer = m->head; + + // if tailed activation is exist, set it to the output. + while (layer) + { + if (layer->actail != NULL) + { + layer->actail->tensor = layer->out->tensor; + } + if (layer->shortcut == NULL) + break; + layer = layer->shortcut; + } + + return NN_SUCCESS; +} + +// get total ops +static uint64_t model_set_ops(nnom_model_t *m) +{ + nnom_layer_t *layer; + uint64_t total_ops = 0; + layer = m->head; + while (layer) + { + total_ops += layer->stat.macc; + if (layer->shortcut == NULL) + break; + layer = layer->shortcut; + } + m->total_ops = total_ops; + return total_ops; +} + +// a compiler can be use for both sequencial / functional model. +// the output layer is optional only when the model is single output model +// in this case, if output = NULL, the compile can find it by its own. +nnom_status_t model_compile(nnom_model_t *m, nnom_layer_t *input, nnom_layer_t *output) +{ + size_t buf_size; + uint8_t *buf; + uint32_t layer_num = 1; + uint32_t time = nnom_ms_get(); + + NNOM_NULL_CHECK(m); + NNOM_NULL_CHECK(input); + + m->head = input; + m->tail = output; + if (output == NULL) + m->tail = find_last(input); + + NNOM_LOG("NNoM version %d.%d.%d\n", NNOM_MAJORVERSION, NNOM_SUBVERSION, NNOM_REVISION); + NNOM_LOG("To disable logs, please void the marco 'NNOM_LOG(...)' in 'nnom_port.h'.\n"); + #ifdef NNOM_USING_CHW + NNOM_LOG("Data format: Channel first (CHW)\n"); + #else + NNOM_LOG("Data format: Channel last (HWC)\n"); + #endif + #ifdef NNOM_USING_CMSIS_NN + NNOM_LOG("Backend optimization: CMSIS-NN\n"); + #endif + #ifdef NNOM_USING_STATIC_MEMORY + NNOM_LOG("Static memory size set to: %d\n", (uint32_t)nnom_static_buf_size); + #endif + NNOM_LOG("Start compiling model...\n"); + NNOM_LOG("Layer(#) Activation output shape ops(MAC) mem(in, out, buf) mem blk lifetime\n"); + NNOM_LOG("-------------------------------------------------------------------------------------------------\n"); + + // compile layers, started from list head, nested run till the end of models + compile_layers(m->head, m->head, m->blocks, &layer_num); + + NNOM_LOG("-------------------------------------------------------------------------------------------------\n"); + + // if model's tail is not the last layer which built by user. + if (output->type != NNOM_OUTPUT) + NNOM_LOG("WARNING: the last layer '%s' is not the Output Layer, please check carefully.\n", + default_layer_names[output->type]); + + // get the total (aligned) memory requirement + buf_size = mem_analysis_result(m); + + // allocate one big memory block + buf = nnom_mem(buf_size); + if (buf == NULL) + { + NNOM_LOG("ERROR: No enough memory for network buffer, required %d bytes\n", (uint32_t)buf_size); + return NN_NO_MEMORY; + } + // all memory cost + NNOM_LOG(" Total memory occupied: %d bytes\n", (uint32_t)nnom_memory_taken); + + // split the memory for every memory block + block_mem_set(m, buf); + + // experimental: set memory from io to the io tensor + tensor_mem_set(m); + + // finally set the output buff to tailed activation on each layer + set_tailed_activation(m); + + // calculate the total operations and set it to the model + model_set_ops(m); + + // print the time. + if(nnom_ms_get()) + NNOM_LOG("Compling done in %d ms\n", nnom_ms_get() - time); + + return NN_SUCCESS; +} + +// This is a simplified API for compile models with sequencial model only +// this does not require specified Input / Output layers +nnom_status_t sequencial_compile(nnom_model_t *m) +{ + nnom_layer_t *input, *output; + input = m->head; + output = find_last(input); + return model_compile(m, input, output); +} + +// run that layer +nnom_status_t layer_run(nnom_layer_t *layer) +{ + nnom_status_t result; + uint32_t start; + NNOM_NULL_CHECK(layer); + + // start + start = nnom_us_get(); + // run main layer first + result = layer->run(layer); + // run tailed-activation if it is presented + if (layer->actail != NULL) + { + layer->actail->run(layer->actail); + } + // done + layer->stat.time = nnom_us_get() - start; + return result; +} + +// run the model, until the end_layer. If end_layer == NULL, run all layers. +nnom_status_t model_run_to(nnom_model_t *m, nnom_layer_t *end_layer) +{ + uint32_t layer_num = 1; + nnom_status_t result; + nnom_layer_t *layer; + NNOM_NULL_CHECK(m); + NNOM_NULL_CHECK(m->head); + + layer = m->head; + + // using shortcut run + while (layer) + { + // run layer + result = layer_run(layer); + if (result != NN_SUCCESS) + { + NNOM_LOG("Error: #%d %s layer return error code:%d\n", layer_num, default_layer_names[layer->type], result); + return result; + } + // run callback + if(m->layer_callback != NULL) + { + result = m->layer_callback(m, layer); + if (result != NN_SUCCESS) + { + NNOM_LOG("Error: Callback return error code %d at #%d %s layer\n", result, layer_num, default_layer_names[layer->type]); + return result; + } + } + // check if finished + if (layer == end_layer || layer->shortcut == NULL) + break; + layer = layer->shortcut; + layer_num++; + } + + return NN_SUCCESS; +} + +// run all layers. +nnom_status_t model_run(nnom_model_t *m) +{ + return model_run_to(m, NULL); +} + +// callback, called after each layer has finished the calculation. +nnom_status_t model_set_callback(nnom_model_t *m, nnom_status_t (*layer_callback)(nnom_model_t *m, nnom_layer_t *layer)) +{ + if(m->layer_callback != NULL && m->layer_callback != layer_callback) + return NN_LENGTH_ERROR; + + m->layer_callback = layer_callback; + return NN_SUCCESS; +} + +// delete callback. +void model_delete_callback(nnom_model_t *m) +{ + m->layer_callback = NULL; +} + +nnom_status_t check_model_version(unsigned long model_version) +{ + nnom_status_t result = NN_SUCCESS; + int32_t major, sub, rev; + major = model_version/10000; + sub = (model_version/100)%100; + rev = model_version % 100; + if(model_version != NNOM_VERSION) + { + NNOM_LOG("WARNING: model version %d.%d.%d dosen't match nnom version!\n", major, sub, rev); + result = -NN_ARGUMENT_ERROR; + } + else + { + NNOM_LOG("Model version: %d.%d.%d\n", major, sub, rev); + } + return result; +} + + diff --git a/components/ai/nnom/src/core/nnom_layers.c b/components/ai/nnom/src/core/nnom_layers.c new file mode 100644 index 00000000..dc059074 --- /dev/null +++ b/components/ai/nnom/src/core/nnom_layers.c @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-02-05 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" + +size_t shape_size(nnom_3d_shape_t *s) +{ + if (s == NULL) + return 0; + return s->h * s->w * s->c; +} + +nnom_3d_shape_t shape(size_t h, size_t w, size_t c) +{ + nnom_3d_shape_t s; + s.h = h; + s.w = w; + s.c = c; + return s; +} +nnom_3d_shape_t kernel(size_t h, size_t w) +{ + return shape(h, w, 1); +} +nnom_3d_shape_t stride(size_t h, size_t w) +{ + return shape(h, w, 1); +} +nnom_3d_shape_t dilation(size_t h, size_t w) +{ + return shape(h, w, 1); +} + +nnom_border_t border(size_t top, size_t bottom, size_t left, size_t right) +{ + nnom_border_t b; + b.top = top; + b.bottom = bottom; + b.left = left; + b.right = right; + return b; +} + +// this function has to be used while assign a io for a layer. +// because the io needs to know who is its owner. +nnom_layer_io_t *io_init(void *owner_layer, nnom_layer_io_t *io) +{ + io->owner = (nnom_layer_t *)owner_layer; + return io; +} + +// this function is to add a new IO to current inited IO +// input, the targeted IO that the new IO will be added to +// output , the new IO +nnom_layer_io_t *io_add_aux(nnom_layer_io_t *targeted_io) +{ + nnom_layer_io_t *new_io; + // check if the targeted io is inited, and its aux = NULL + if (targeted_io == NULL || targeted_io->owner == NULL || targeted_io->aux != NULL) + return NULL; + // create new io, init it + new_io = nnom_mem(sizeof(nnom_layer_io_t)); + if (new_io == NULL) + return NULL; + // add to aux + targeted_io->aux = new_io; + return io_init(targeted_io->owner, new_io); +} diff --git a/components/ai/nnom/src/core/nnom_tensor.c b/components/ai/nnom/src/core/nnom_tensor.c new file mode 100644 index 00000000..7d902647 --- /dev/null +++ b/components/ai/nnom/src/core/nnom_tensor.c @@ -0,0 +1,245 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-02-05 Jianjia Ma The first version + * 2019-02-14 Jianjia Ma Add layer.free() method. + */ + +#include +#include +#include +#include +#include "nnom.h" +#include "nnom_tensor.h" + + // tensor size +size_t tensor_size(nnom_tensor_t* t) +{ + size_t size = 0; + if (t != NULL) + { + size = t->dim[0]; + for (int i = 1; i < t->num_dim; i++) + size *= t->dim[i]; + } + return size; +} +size_t tensor_size_byte(nnom_tensor_t* t) +{ + return tensor_size(t)*t->bitwidth/8; +} + + +size_t tensor_get_num_channel(nnom_tensor_t* t) +{ + // this will need to be changed to support batch. +#ifdef NNOM_USING_CHW + // channel first + //return t->dim[0]; + return t->dim[t->num_dim -1]; // we are always using hwc to describe even our data is in CHW +#else + // channel last + return t->dim[t->num_dim -1]; +#endif +} + +// initialise/create new tensor +nnom_tensor_t* new_tensor(nnom_qtype_t type, uint32_t num_dim, uint32_t num_channel) +{ + nnom_tensor_t* t = NULL; + uint32_t q_len; + if(type == NNOM_QTYPE_PER_AXIS) + { + q_len = num_channel; + } + else if (type == NNOM_QTYPE_PER_TENSOR) + { + q_len = 1; + } + else + { + NNOM_LOG("ERROR: tensor type not specified\n"); + return NULL; + } + + t = nnom_mem(nnom_alignto(sizeof(nnom_tensor_t), NNOM_ALIGN) + + num_dim*sizeof(nnom_shape_data_t) + + q_len*sizeof(nnom_qformat_param_t)*2); + if(t == NULL) + return t; + t->dim = (nnom_shape_data_t*)((uint8_t*)t + sizeof(nnom_tensor_t)); // should add alignment + t->q_dec = (nnom_qformat_param_t*)((uint8_t*)t->dim + num_dim*sizeof(nnom_shape_data_t)); + t->q_offset = (nnom_qformat_param_t*)((uint8_t*)t->q_dec + q_len*sizeof(nnom_qformat_param_t)); + t->num_dim = num_dim; + t->qtype = type; + + return t; +} + +void delete_tensor(nnom_tensor_t* t) +{ + if (t) + nnom_free(t); +} + +// set tensor by value +// for tensor with quantized type NNOM_QTYPE_PER_TENSOR +nnom_tensor_t* tensor_set_attr_v(nnom_tensor_t* t, + nnom_qformat_param_t dec_bit, nnom_qformat_param_t offset, nnom_shape_data_t* dim, uint32_t num_dim, uint8_t bitwidth) +{ + // copy dim + t->num_dim = num_dim; + nnom_memcpy(t->dim, dim, sizeof(nnom_shape_data_t) * num_dim); + + // bitwidth + t->bitwidth = bitwidth; + // copy the offset and q format + *(t->q_dec) = dec_bit; + *(t->q_offset) = offset; + return t; +} + + +// set tensor by pointer +// for tensor with quantized type NNOM_QTYPE_PER_AXIS +nnom_tensor_t* tensor_set_attr(nnom_tensor_t* t, + nnom_qformat_param_t*dec_bit, nnom_qformat_param_t *offset, nnom_shape_data_t* dim, uint32_t num_dim, uint8_t bitwidth) +{ + size_t size; + + // copy dim + t->num_dim = num_dim; + nnom_memcpy(t->dim, dim, sizeof(nnom_shape_data_t) * num_dim); + + // get the q format data size + if(t->qtype == NNOM_QTYPE_PER_AXIS) + size = sizeof(nnom_qformat_param_t) * tensor_get_num_channel(t); + else + size = sizeof(nnom_qformat_param_t); + + // bitwidth + t->bitwidth = bitwidth; + // copy the offset and q format + nnom_memcpy(t->q_dec, dec_bit, size); + nnom_memcpy(t->q_offset, offset, size); + return t; +} + +// this method copy the attributes of a tensor to a new tensor +// before that, src and des tensor must already have QTYPE and NUM_OF_DIM set. +// Note, the tensors must have the same lenght. this method wont cpy the memory pointer data (we will assign memory later after building) +nnom_tensor_t* tensor_cpy_attr(nnom_tensor_t* des, nnom_tensor_t* src) +{ + size_t size; + if(src->qtype != des->qtype || src->num_dim != des->num_dim) + return NULL; + + if(src->qtype == NNOM_QTYPE_PER_AXIS) + size = sizeof(nnom_qformat_param_t) * tensor_get_num_channel(src); + else + size = sizeof(nnom_qformat_param_t); + + // bit + des->bitwidth = src->bitwidth; + // copy quantisation parameters + nnom_memcpy(des->q_dec, src->q_dec, size); + nnom_memcpy(des->q_offset, src->q_offset, size); + + // copy number of dimension + des->num_dim = src->num_dim; + nnom_memcpy(des->dim, src->dim, src->num_dim * sizeof(nnom_shape_data_t)); + return des; +} + +// change format from CHW to HWC +// the shape of the data, input data, output data +void tensor_hwc2chw_q7(nnom_tensor_t* des, nnom_tensor_t* src) +{ + q7_t* p_out = des->p_data; + q7_t* p_in = src->p_data; + + for (int c = 0; c < src->dim[2]; c++) + { + for (int h = 0; h < src->dim[0]; h++) + { + for (int w = 0; w < src->dim[1]; w++) + { + *p_out = p_in[(h * src->dim[1] + w) * src->dim[2] + c]; + p_out++; + } + } + } +} + + +// only support 3d tensor +// change format from CHW to HWC +void tensor_chw2hwc_q7(nnom_tensor_t* des, nnom_tensor_t* src) +{ + q7_t* p_out = des->p_data; + q7_t* p_in = src->p_data; + int im_size; + int h_step; + + im_size = src->dim[0] * src->dim[1]; // H*W + + for (int h = 0; h < src->dim[0]; h++) + { + h_step = src->dim[1] * h; + for (int w = 0; w < src->dim[1]; w++) + { + for (int c = 0; c < src->dim[2]; c++) + { + *p_out = p_in[im_size * c + h_step + w]; + p_out++; + } + } + } + +} + +// (deprecated by tensor_hwc2chw version) +// change format from CHW to HWC +// the shape of the data, input data, output data +void hwc2chw_q7(nnom_3d_shape_t shape, q7_t* p_in, q7_t* p_out) +{ + for (int c = 0; c < shape.c; c++) + { + for (int h = 0; h < shape.h; h++) + { + for (int w = 0; w < shape.w; w++) + { + *p_out = p_in[(h * shape.w + w) * shape.c + c]; + p_out++; + } + } + } +} + +// (deprecated) +// change format from CHW to HWC +// the shape of the data, input data, output data +void chw2hwc_q7(nnom_3d_shape_t shape, q7_t* p_in, q7_t* p_out) +{ + int im_size = shape.w * shape.h; + int h_step; + + for (int h = 0; h < shape.h; h++) + { + h_step = shape.w * h; + for (int w = 0; w < shape.w; w++) + { + for (int c = 0; c < shape.c; c++) + { + *p_out = p_in[im_size * c + h_step + w]; + p_out++; + } + } + } +} diff --git a/components/ai/nnom/src/core/nnom_utils.c b/components/ai/nnom/src/core/nnom_utils.c new file mode 100644 index 00000000..3b13c355 --- /dev/null +++ b/components/ai/nnom/src/core/nnom_utils.c @@ -0,0 +1,417 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-02-05 Jianjia Ma The first version + */ + +#include +#include +#include +#include +#include "nnom.h" +#include "nnom_utils.h" + +static nnom_predict_t *_predict_create_instance(nnom_model_t *m, size_t label_num, size_t top_k_size) +{ + nnom_predict_t *pre; + // allocate memory + pre = (nnom_predict_t *)nnom_malloc(sizeof(nnom_predict_t)); + if(pre == NULL) + return NULL; + pre->top_k = (uint32_t *)nnom_malloc(top_k_size * sizeof(uint32_t)); + pre->confusion_mat = (uint16_t *)nnom_malloc(label_num * label_num * sizeof(uint16_t)); + if(pre->top_k == NULL || pre->confusion_mat == NULL) + { + nnom_free(pre->top_k); nnom_free(pre->confusion_mat); nnom_free(pre); + return NULL; + } + nnom_memset(pre->top_k, 0, top_k_size * sizeof(uint32_t)); + nnom_memset(pre->confusion_mat, 0, label_num * label_num * sizeof(uint16_t)); + + // config + pre->label_num = label_num; + pre->top_k_size = top_k_size; + pre->predict_count = 0; + + // run + pre->model = m; + pre->t_run_total = 0; // model running time in total + pre->t_predict_start = 0; // when it is initial + pre->t_predict_total = 0; // total time of the whole test + + return pre; +} + +static void _predict_delete_instance(nnom_predict_t *pre) +{ + if(pre == NULL) + return; + nnom_free(pre->top_k); + nnom_free(pre->confusion_mat); + nnom_free(pre); +} + +// create a prediction +// input model, the buf pointer to the softwmax output (Temporary, this can be extract from model) +// the size of softmax output (the num of lable) +// the top k that wants to record. +nnom_predict_t *prediction_create(nnom_model_t *m, int8_t *buf_prediction, size_t label_num, size_t top_k_size) +{ + nnom_predict_t *pre = _predict_create_instance(m, label_num, top_k_size); + if (!pre) + return NULL; + if (!m) + { + _predict_delete_instance(pre); + return NULL; + } + + // set the output buffer of model to the prediction instance + pre->buf_prediction = buf_prediction; + + // mark start time. + pre->t_predict_start = nnom_ms_get(); + + return pre; +} + +// after a new data is set in input +// feed data to prediction +// input the current label, (range from 0 to total number of label -1) +// (the current input data should be set by user manully to the input buffer of the model.) +nnom_status_t prediction_run(nnom_predict_t *pre, uint32_t true_label, uint32_t*predict_label, float* prob) +{ + int max_val; + int max_index; + uint32_t true_ranking = 0; + uint32_t start; + uint32_t sum = 0; + + if (!pre) + return NN_ARGUMENT_ERROR; + + // now run model + start = nnom_ms_get(); + model_run(pre->model); + pre->t_run_total += nnom_ms_get() - start; + + // only draw matrix and top k when number of label > 1 + if (pre->label_num > 1) + { + // find how many prediction is bigger than the ground true. + // Raning rules, same as tensorflow. however, predictions in MCU is more frequencly to have equal probability since it is using fixed-point. + // if ranking is 1, 2, =2(true), 4, 5, 6. the result will be top 3. + // if ranking is 1, 2(true), =2, 4, 5, 6. the result will be top 2. + // find the ranking of the prediced label. + for (uint32_t j = 0; j < pre->label_num; j++) + { + if (j == true_label) + continue; + if (pre->buf_prediction[true_label] < pre->buf_prediction[j]) + true_ranking++; + // while value[label] = value[j]. only when label > j, label is the second of j + else if (pre->buf_prediction[true_label] == pre->buf_prediction[j] && j < true_label) + true_ranking++; + } + + if (true_ranking < pre->top_k_size) + pre->top_k[true_ranking]++; + + // Find top 1 and return the current prediction. + // If there are several maximum prediction, return the first one. + max_val = pre->buf_prediction[0]; + max_index = 0; + for (uint32_t j = 1; j < pre->label_num; j++) + { + if (pre->buf_prediction[j] > max_val) + { + max_val = pre->buf_prediction[j]; + max_index = j; + } + sum += pre->buf_prediction[j]; + } + // result + if (max_val != 0) + *prob = (float)max_val / 127.f; + else + *prob = 0; + *predict_label = max_index; + + // fill confusion matrix + pre->confusion_mat[true_label * pre->label_num + max_index] += 1; + } + // only one neural as output. + else + { + *prob = (float)pre->buf_prediction[0] / 127.f; + if (*prob >= 0.5f) + *predict_label = 1; + else + *predict_label = 0; + } + + // prediction count + pre->predict_count++; + + // return the prediction + return NN_SUCCESS; +} + +void prediction_end(nnom_predict_t *pre) +{ + if (!pre) + return; + pre->t_predict_total = nnom_ms_get() - pre->t_predict_start; +} + +void prediction_delete(nnom_predict_t *pre) +{ + _predict_delete_instance(pre); +} + +void prediction_matrix(nnom_predict_t *pre) +{ + if (!pre) + return; + // print titles + NNOM_LOG("\nConfusion matrix:\n"); + NNOM_LOG("predict"); + for (int i = 0; i < pre->label_num; i++) + { + NNOM_LOG("%6d", i); + } + NNOM_LOG("\n"); + NNOM_LOG("actual\n"); + // print the matrix + for (int i = 0; i < pre->label_num; i++) + { + uint32_t row_total = 0; + + NNOM_LOG(" %3d | ", i); + for (int j = 0; j < pre->label_num; j++) + { + row_total += pre->confusion_mat[i * pre->label_num + j]; + NNOM_LOG("%6d", pre->confusion_mat[i * pre->label_num + j]); + } + NNOM_LOG(" |%4d%%\n", pre->confusion_mat[i * pre->label_num + i] * 100 / row_total); + row_total = 0; + } + NNOM_LOG("\n"); +} + +// top-k +void prediction_top_k(nnom_predict_t *pre) +{ + uint32_t top = 0; + if (!pre) + return; + + for (int i = 0; i < pre->top_k_size; i++) + { + top += pre->top_k[i]; + if (top != pre->predict_count) + NNOM_LOG("Top %d Accuracy: %d.%02d%% \n", i + 1, (top * 100) / pre->predict_count, + ((top * 100 * 100) / pre->predict_count)%100); + else + NNOM_LOG("Top %d Accuracy: 100%% \n", i + 1); + } +} + +// this function is to print sumarry +void prediction_summary(nnom_predict_t *pre) +{ + if (!pre) + return; + // sumamry + NNOM_LOG("\nPrediction summary:\n"); + NNOM_LOG("Test frames: %d\n", pre->predict_count); + NNOM_LOG("Test running time: %d sec\n", pre->t_predict_total / 1000); + NNOM_LOG("Model running time: %d ms\n", pre->t_run_total); + if(pre->predict_count !=0) + NNOM_LOG("Average prediction time: %d us\n", (pre->t_run_total * 1000) / pre->predict_count); + if(pre->t_run_total != 0) + NNOM_LOG("Average effeciency: %d.%02d ops/us\n", (int)(((uint64_t)pre->model->total_ops * pre->predict_count) / (pre->t_run_total * 1000)), + (int)(((uint64_t)pre->model->total_ops * pre->predict_count)*100 / (pre->t_run_total * 1000))%100); + if(pre->t_run_total !=0 && pre->predict_count !=0) + NNOM_LOG("Average frame rate: %d.%d Hz\n", 1000 / (pre->t_run_total / pre->predict_count), + (1000*10 / (pre->t_run_total / pre->predict_count))%10); + + // only valid for multiple labels + if(pre->label_num > 1) + { + // print top-k + prediction_top_k(pre); + + // print confusion matrix + prediction_matrix(pre); + } +} + +// stand alone prediction API +// this api test one set of data, return the prediction +nnom_status_t nnom_predict(nnom_model_t *m, uint32_t *label, float *prob) +{ + int32_t max_val, max_index, sum; + int8_t *output; + + if (!m) + return NN_ARGUMENT_ERROR; + + model_run(m); + + // get the output memory + output = m->tail->out->tensor->p_data; + + // multiple neural output + if (tensor_size(m->tail->out->tensor) > 1) + { + // Top 1 + max_val = output[0]; + max_index = 0; + sum = max_val; + for (uint32_t i = 1; i < tensor_size(m->tail->out->tensor); i++) + { + if (output[i] > max_val) + { + max_val = output[i]; + max_index = i; + } + sum += output[i]; + } + // send results + *label = max_index; + if(max_val !=0) + *prob = (float)max_val/127.f; + else + *prob = 0; + } + // single neural output + else + { + *prob = (float)output[0] / 127.f; + if (*prob >= 0.5f) + *label = 1; + else + *label = 0; + } + + return NN_SUCCESS; +} + +static void layer_stat(nnom_layer_t *layer) +{ + // layer stat + if(layer->type != NNOM_RNN) + NNOM_LOG("%-10s - ", default_layer_names[layer->type]); + else + { + NNOM_LOG("%-3s/", default_layer_names[layer->type]); + NNOM_LOG("%-6s - ", default_cell_names[((nnom_rnn_layer_t*)layer)->cell->type]); + } + NNOM_LOG(" %8d ", layer->stat.time); + + // MAC operation + if(layer->stat.macc == 0) + NNOM_LOG(" "); + else if (layer->stat.macc < 10000) + NNOM_LOG("%7d ", (uint32_t)layer->stat.macc); + else if (layer->stat.macc < 1000*1000) + NNOM_LOG("%6dk ", (uint32_t)(layer->stat.macc/1000)); + else if (layer->stat.macc < 1000*1000*1000) + NNOM_LOG("%3d.%02dM ", (uint32_t)(layer->stat.macc/(1000*1000)), (uint32_t)(layer->stat.macc%(1000*1000)/(10*1000))); // xxx.xx M + else + NNOM_LOG("%3d.%02dG ", (uint32_t)(layer->stat.macc/(1000*1000*1000)), (uint32_t)(layer->stat.macc%(1000*1000*1000)/(10*1000*1000))); // xxx.xx G + + // layer efficiency + if (layer->stat.macc != 0 && layer->stat.time != 0) + NNOM_LOG("%d.%02d\n", (uint32_t)(layer->stat.macc / layer->stat.time), (uint32_t)((layer->stat.macc * 100) / (layer->stat.time) % 100)); + else + NNOM_LOG("\n"); +} + +void model_stat(nnom_model_t *m) +{ + size_t total_ops = 0; + size_t total_time = 0; + nnom_layer_t *layer; + uint32_t run_num = 0; + + if (!m) + return; + + layer = m->head; + + NNOM_LOG("\nPrint running stat..\n"); + NNOM_LOG("Layer(#) - Time(us) ops(MACs) ops/us \n"); + NNOM_LOG("--------------------------------------------------------\n"); + while (layer) + { + run_num++; + NNOM_LOG("#%-3d", run_num); + total_ops += layer->stat.macc; + total_time += layer->stat.time; + layer_stat(layer); + if (layer->shortcut == NULL) + break; + layer = layer->shortcut; + } + NNOM_LOG("\nSummary:\n"); + NNOM_LOG("Total ops (MAC): %d", (uint32_t)(total_ops)); + NNOM_LOG("(%d.%02dM)\n", (uint32_t) (total_ops/(1000*1000)), (uint32_t)(total_ops%(1000*1000)/(10000))); + NNOM_LOG("Prediction time :%dus\n", (uint32_t)total_time); + if(total_time != 0) + NNOM_LOG("Efficiency %d.%02d ops/us\n", + (uint32_t)(total_ops / total_time), + (uint32_t)((total_ops * 100) / (total_time) % 100)); + + NNOM_LOG("Total memory:%d\n", (uint32_t)nnom_mem_stat()); +} + +void model_io_format(nnom_model_t *m) +{ + nnom_layer_t *layer; + uint32_t run_num = 0; + + if (!m) + return; + + layer = m->head; + + NNOM_LOG("\nPrint layer input/output..\n"); + NNOM_LOG("Layer(#) - Input(Qnm) Output(Qnm) Oshape \n"); + NNOM_LOG("----------------------------------------------------------\n"); + while (layer) + { + run_num++; + NNOM_LOG("#%-3d", run_num); + if(layer->type != NNOM_RNN) + NNOM_LOG("%-10s - ", default_layer_names[layer->type]); + else + { + NNOM_LOG("%-3s/", default_layer_names[layer->type]); + NNOM_LOG("%-6s - ", default_cell_names[((nnom_rnn_layer_t*)layer)->cell->type]); + } + NNOM_LOG(" %2d.%2d", 7-layer->in->tensor->q_dec[0], layer->in->tensor->q_dec[0]); + NNOM_LOG(" %2d.%2d", 7-layer->out->tensor->q_dec[0], layer->out->tensor->q_dec[0]); + NNOM_LOG(" ("); + for (int i = 0; i < 3; i++) + { + if (layer->out->tensor->num_dim > i) + NNOM_LOG("%4d,", layer->out->tensor->dim[i]); + else + NNOM_LOG(" "); + } + NNOM_LOG(")\n"); + + if (layer->shortcut == NULL) + break; + layer = layer->shortcut; + } + +} diff --git a/components/ai/nnom/src/layers/nnom_activation.c b/components/ai/nnom/src/layers/nnom_activation.c new file mode 100644 index 00000000..c90171c7 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_activation.c @@ -0,0 +1,369 @@ + + +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_activation.h" + +#ifdef NNOM_USING_CMSIS_NN +#include "arm_math.h" +#include "arm_nnfunctions.h" +#endif + +nnom_layer_t *Activation(nnom_activation_t *act) +{ + nnom_activation_layer_t *layer; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_activation_layer_t) + sizeof(nnom_layer_io_t) * 2; + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_activation_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_ACTIVATION; + layer->super.run = activation_run; + layer->super.build = default_build; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_NULL; // when a layer's io is set to NULL, both will point to same mem. + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + + // set activation to layer + layer->act = act; + + // set free method + layer->super.free = activation_free; + + return (nnom_layer_t *)layer; +} + +nnom_layer_t *ReLU(void) +{ + nnom_layer_t *layer = Activation(act_relu()); + if (layer == NULL) + return NULL; + + // set type in layer parent + layer->type = NNOM_RELU; + return layer; +} + +nnom_layer_t *LeakyReLU(float alpha) +{ + nnom_layer_t *layer = Activation(act_leaky_relu(alpha)); + if (layer == NULL) + return NULL; + + // set type in layer parent + layer->type = NNOM_LEAKY_RELU; + return layer; +} + +nnom_layer_t *AdvReLU(float alpha, float max, float threshold) +{ + nnom_layer_t *layer = Activation(act_adv_relu(alpha, max, threshold)); + if (layer == NULL) + return NULL; + + // set type in layer parent + layer->type = NNOM_ADV_RELU; + return layer; +} + +nnom_layer_t *Sigmoid(int32_t dec_bit) +{ + nnom_layer_t *layer = Activation(act_sigmoid(dec_bit)); + if (layer == NULL) + return NULL; + + // set type in layer parent + layer->type = NNOM_SIGMOID; + return layer; +} + +nnom_layer_t *TanH(int32_t dec_bit) +{ + nnom_layer_t *layer = Activation(act_tanh(dec_bit)); + if (layer == NULL) + return NULL; + // set type in layer parent + layer->type = NNOM_TANH; + return layer; +} + +void act_delete(nnom_activation_t* act){ + nnom_free(act); +} + +// activation takes act instance which is created. therefore, it must be free when activation is deleted. +// this is the callback in layer->free +nnom_status_t activation_free(nnom_layer_t *layer) +{ + if(layer) + act_delete(((nnom_activation_layer_t *)layer)->act); + return NN_SUCCESS; +} + +nnom_status_t activation_run(nnom_layer_t *layer) +{ + nnom_activation_layer_t *cl = (nnom_activation_layer_t *)layer; + return act_tensor_run(cl->act, layer->in->tensor); +} + +// porting +static nnom_status_t relu_run(nnom_activation_t* act) +{ + if(act->tensor->bitwidth == 16) + { + #ifdef NNOM_USING_CMSIS_NN + arm_relu_q15(act->tensor->p_data, tensor_size(act->tensor)); + #else + local_relu_q15(act->tensor->p_data, tensor_size(act->tensor)); + #endif + } + else + { + #ifdef NNOM_USING_CMSIS_NN + arm_relu_q7(act->tensor->p_data, tensor_size(act->tensor)); + #else + local_relu_q7(act->tensor->p_data, tensor_size(act->tensor)); + #endif + } + return NN_SUCCESS; +} + +// leaky relu +static nnom_status_t leaky_relu_run(nnom_activation_t* act) +{ + nnom_activation_leaky_relu_t* a = (nnom_activation_leaky_relu_t*) act; + if(act->tensor->bitwidth == 16) + local_leaky_relu_q15(act->tensor->p_data, a->alpha, tensor_size(act->tensor)); + else + local_leaky_relu_q7(act->tensor->p_data, a->alpha, tensor_size(act->tensor)); + return NN_SUCCESS; +} + +// advance relu +static nnom_status_t adv_relu_run(nnom_activation_t* act) +{ + nnom_activation_adv_relu_t* a = (nnom_activation_adv_relu_t*) act; + + // we need to convert float to fixpoint in runtime where we can know the tensor's q format + if(act->tensor->bitwidth == 16) + { + q15_t max = 32767; + q15_t threshold = MIN(a->threshold * (1 << (15 - act->tensor->q_dec[0])), 32767); + q7_t max_scale = (1 << (15 - act->tensor->q_dec[0])); + if(a->max != INFINITY && a->max != 0x7fc00000) + if(a->max * max_scale < max) + max = a->max * max_scale; + local_adv_relu_q15(act->tensor->p_data, a->negative_slope, max, threshold, tensor_size(act->tensor)); + } + // 8bit + else + { + q7_t max = 127; + q7_t threshold = MIN(a->threshold * (1 << (7 - act->tensor->q_dec[0])), 127); + q7_t max_scale = (1 << (7 - act->tensor->q_dec[0])); + if(a->max != INFINITY && a->max != 0x7fc00000) // QNAN 0x7fc00000 also represent infinity in script 0.4.1 + if(a->max * max_scale < max) + max = a->max * max_scale; + local_adv_relu_q7(act->tensor->p_data, a->negative_slope, max, threshold, tensor_size(act->tensor)); + } + + return NN_SUCCESS; +} + +static nnom_status_t tanh_run(nnom_activation_t* act) +{ + nnom_activation_fixed_q_t * a = (nnom_activation_fixed_q_t*)act; + // 16 bit + if(act->tensor->bitwidth == 16) + { + uint8_t int_bit = 15 - a->dec_bit; + #ifdef NNOM_USING_CMSIS_NN + arm_nn_activations_direct_q15(act->tensor->p_data, tensor_size(act->tensor), int_bit, ARM_TANH); + #else + local_tanh_q15(act->tensor->p_data, tensor_size(act->tensor), int_bit); + #endif + } + else // 8bit + { + uint8_t int_bit = 7 - a->dec_bit; + // arm version cannot handle int_bit > 3 + #ifdef NNOM_USING_CMSIS_NN + if(act->tensor->q_dec[0] <= 3) + arm_nn_activations_direct_q7(act->tensor->p_data, tensor_size(act->tensor), int_bit, ARM_TANH); + else + #endif + local_tanh_q7(act->tensor->p_data, tensor_size(act->tensor), int_bit); + } + return NN_SUCCESS; +} + +static nnom_status_t sigmoid_run( nnom_activation_t* act) +{ + nnom_activation_fixed_q_t * a = (nnom_activation_fixed_q_t*)act; + // 16 bit + if(act->tensor->bitwidth == 16) + { + uint8_t int_bit = 15 - a->dec_bit; + #ifdef NNOM_USING_CMSIS_NN + arm_nn_activations_direct_q15(act->tensor->p_data, tensor_size(act->tensor), int_bit, ARM_SIGMOID); + #else + local_sigmoid_q15(act->tensor->p_data, tensor_size(act->tensor), int_bit); + #endif + } + else // 8bit + { + uint8_t int_bit = 7 - a->dec_bit; + // arm version cannot handle int_bit > 3 + #ifdef NNOM_USING_CMSIS_NN + if(act->tensor->q_dec[0] <= 3) + arm_nn_activations_direct_q7(act->tensor->p_data, tensor_size(act->tensor), int_bit, ARM_TANH); + else + #endif + local_sigmoid_q7(act->tensor->p_data, tensor_size(act->tensor), int_bit); + } + + return NN_SUCCESS; +} + +static nnom_status_t hard_tanh_run( nnom_activation_t* act) +{ + nnom_activation_fixed_q_t * a = (nnom_activation_fixed_q_t*)act; + if(act->tensor->bitwidth == 16) + local_hard_tanh_q15(act->tensor->p_data, tensor_size(act->tensor), a->dec_bit + 8); // a->dec is based on 8 bit. + else + local_hard_tanh_q7(act->tensor->p_data, tensor_size(act->tensor), a->dec_bit); + return NN_SUCCESS; +} + +static nnom_status_t hard_sigmoid_run( nnom_activation_t* act) +{ + nnom_activation_fixed_q_t * a = (nnom_activation_fixed_q_t*)act; + if(act->tensor->bitwidth == 16) + local_hard_sigmoid_q15(act->tensor->p_data, tensor_size(act->tensor), a->dec_bit + 8); // a->dec is based on 8 bit. + else + local_hard_sigmoid_q7(act->tensor->p_data, tensor_size(act->tensor), a->dec_bit); + return NN_SUCCESS; +} + +// +nnom_activation_t* act_relu(void) +{ + nnom_activation_t* act = nnom_mem(sizeof(nnom_activation_t)); + act->run = relu_run; + act->type = ACT_RELU; + return act; +} + +nnom_activation_t* act_leaky_relu(float alpha) +{ + nnom_activation_leaky_relu_t* act = nnom_mem(sizeof(nnom_activation_leaky_relu_t)); + act->super.run = leaky_relu_run; + act->super.type = ACT_LEAKY_RELU; + act->alpha = (q7_t)(alpha*128); + return (nnom_activation_t* )act; +} + +nnom_activation_t* act_adv_relu(float negative_slope, float max, float threshold) +{ + nnom_activation_adv_relu_t* act = nnom_mem(sizeof(nnom_activation_adv_relu_t)); + act->super.run = adv_relu_run; + act->super.type = ACT_ADV_RELU; + act->negative_slope = (q7_t)(negative_slope*128); + act->max = max; + act->threshold = threshold; + return (nnom_activation_t* )act; +} + +nnom_activation_t* act_tanh(int32_t dec_bit) +{ + nnom_activation_fixed_q_t* act = nnom_mem(sizeof(nnom_activation_fixed_q_t)); + act->super.run = tanh_run; + act->super.type = ACT_TANH; + act->dec_bit = dec_bit; + return (nnom_activation_t*)act; +} + +nnom_activation_t* act_sigmoid(int32_t dec_bit) +{ + nnom_activation_fixed_q_t* act = nnom_mem(sizeof(nnom_activation_fixed_q_t)); + + act->super.run = sigmoid_run; + act->super.type = ACT_SIGMOID; + act->dec_bit = dec_bit; + return (nnom_activation_t*)act; +} + +nnom_activation_t* act_hard_tanh(int32_t dec_bit) +{ + nnom_activation_fixed_q_t* act = nnom_mem(sizeof(nnom_activation_fixed_q_t)); + + act->super.run = hard_tanh_run; + act->super.type = ACT_HARD_TANH; + act->dec_bit = dec_bit; + return (nnom_activation_t*)act; +} + +nnom_activation_t* act_hard_sigmoid(int32_t dec_bit) +{ + nnom_activation_fixed_q_t* act = nnom_mem(sizeof(nnom_activation_fixed_q_t)); + + act->super.run = hard_sigmoid_run; + act->super.type = ACT_HARD_SIGMOID; + act->dec_bit = dec_bit; + return (nnom_activation_t*)act; +} + +// return the decimal bit if the activation will change the q format of the layer. +int32_t act_get_dec_bit(nnom_activation_type_t type, int32_t dec_bit) +{ + switch(type) + { + case ACT_RELU: + case ACT_LEAKY_RELU: + case ACT_ADV_RELU: + break; + case ACT_TANH: + case ACT_HARD_TANH: + case ACT_SIGMOID: + case ACT_HARD_SIGMOID: + dec_bit = 7; + default:break; + } + return dec_bit; +} + +// a direct api to run activate a tensor +nnom_status_t act_tensor_run(nnom_activation_t* act, nnom_tensor_t* tensor) +{ + act->tensor = tensor; + return act->run(act); +} diff --git a/components/ai/nnom/src/layers/nnom_avgpool.c b/components/ai/nnom/src/layers/nnom_avgpool.c new file mode 100644 index 00000000..8ee220f4 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_avgpool.c @@ -0,0 +1,167 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_avgpool.h" + +#ifdef NNOM_USING_CMSIS_NN +#include "arm_math.h" +#include "arm_nnfunctions.h" +#endif + +nnom_layer_t *avgpool_s(const nnom_pool_config_t * config) +{ + nnom_avgpool_layer_t *cl; + + if(config->num_dim == 1) + { + cl = (nnom_avgpool_layer_t *)AvgPool(kernel(1, config->kernel_size[0]), + stride(1, config->stride_size[0]), + config->padding_type); + } + else + { + cl = (nnom_avgpool_layer_t *)AvgPool(kernel(config->kernel_size[0], config->kernel_size[1]), + stride(config->stride_size[0], config->stride_size[1]), + config->padding_type); + } + + if(cl) + { + cl->super.config = (void*) config; + cl->output_shift = config->output_shift; // no idea if we need it + } + return (nnom_layer_t *)cl; +} + +nnom_layer_t *AvgPool(nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_padding_t pad_type) +{ + nnom_layer_t *layer = MaxPool(k, s, pad_type); + + if (layer != NULL) + { + layer->type = NNOM_AVGPOOL; + layer->run = avgpool_run; + layer->build = avgpool_build; + } + return (nnom_layer_t *)layer; +} + +nnom_status_t avgpool_build(nnom_layer_t *layer) +{ + uint32_t size; + // avg pooling share the same output shape, stride, padding setting. + maxpool_build(layer); + + #ifdef NNOM_USING_CMSIS_NN + // however, avg pooling require a computational buffer. + // bufferA size: 2*dim_im_out*ch_im_in + size = layer->out->tensor->dim[1] > layer->out->tensor->dim[0] ? + layer->out->tensor->dim[1] : layer->out->tensor->dim[0]; + layer->comp->size = 2 * size * layer->in->tensor->dim[2]; + #endif + + return NN_SUCCESS; +} + +nnom_status_t avgpool_run(nnom_layer_t *layer) +{ + nnom_avgpool_layer_t *cl = (nnom_avgpool_layer_t *)(layer); + uint16_t out_x, out_y; + // if global pooling + if(layer->out->tensor->num_dim == 1) + { + out_x = 1; out_y = 1; + } + else // normal pooling. + { + out_x = layer->out->tensor->dim[1]; //W + out_y = layer->out->tensor->dim[0]; //h + } + + // 16 bit + if(layer->in->tensor->bitwidth == 16) + { +#ifdef NNOM_USING_CHW + local_avepool_q15_CHW(layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->kernel.w, cl->kernel.h, + cl->pad.w, cl->pad.h, + cl->stride.w, cl->stride.h, + out_x, out_y, + cl->output_shift, + NULL, + layer->out->tensor->p_data); +#else + local_avepool_q15_HWC(layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->kernel.w, cl->kernel.h, + cl->pad.w, cl->pad.h, + cl->stride.w, cl->stride.h, + out_x, out_y, + cl->output_shift, + NULL, + layer->out->tensor->p_data); +#endif + } + // 8bit + else{ +#ifdef NNOM_USING_CHW + local_avepool_q7_CHW(layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->kernel.w, cl->kernel.h, + cl->pad.w, cl->pad.h, + cl->stride.w, cl->stride.h, + out_x, out_y, + cl->output_shift, + NULL, + layer->out->tensor->p_data); +#else //end of CHW + #ifdef NNOM_USING_CMSIS_NN + // 2D, square + if (layer->in->tensor->dim[1] == layer->in->tensor->dim[0] && + layer->out->tensor->dim[1] == layer->out->tensor->dim[0] && + cl->output_shift == 0) + { + arm_avepool_q7_HWC( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[2], + cl->kernel.w, cl->pad.w, cl->stride.w, + layer->out->tensor->dim[1], + layer->comp->mem->blk, + layer->out->tensor->p_data); + } + // none square 2D, or 1D + else + #endif + { + // CMSIS-NN does not support none-square pooling, we have to use local implementation + local_avepool_q7_HWC(layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->kernel.w, cl->kernel.h, + cl->pad.w, cl->pad.h, + cl->stride.w, cl->stride.h, + out_x, out_y, + cl->output_shift, + NULL, + layer->out->tensor->p_data); + } +#endif + } + return NN_SUCCESS; +} diff --git a/components/ai/nnom/src/layers/nnom_baselayer.c b/components/ai/nnom/src/layers/nnom_baselayer.c new file mode 100644 index 00000000..0442fb2b --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_baselayer.c @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_baselayer.h" + +// this layer copys the input to the output + +nnom_layer_t *baselayer_s(const nnom_layer_config_t * config) +{ + nnom_layer_t *layer = BaseLayer(); + if(layer) + layer->config = (void*) config; + return layer; +} + +nnom_layer_t *BaseLayer() +{ + nnom_io_layer_t *layer; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_io_layer_t) + sizeof(nnom_layer_io_t) * 2; + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_io_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_BASE; + layer->super.run = default_run; + layer->super.build = default_build; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_NULL; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + + return (nnom_layer_t *)layer; +} + +// this is call while output shape is not defined. +// this will set the output shape same as input shape, and it set only the primary IO +// this cannot be used as first layer, of course... +nnom_status_t default_build(nnom_layer_t *layer) +{ + // get the last layer's output as input shape + layer->in->tensor = layer->in->hook.io->tensor; + // output tensor + // 1. allocate a new tensor for output + // 2. set the same dim, qfmt to the new tensor. + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR,layer->in->tensor->num_dim, tensor_get_num_channel(layer->in->tensor)); + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + + // see if the activation will change the q format + if(layer->actail) + layer->out->tensor->q_dec[0] = act_get_dec_bit(layer->actail->type, layer->out->tensor->q_dec[0]); + + // now this build has passed the input tensors (shapes, formats) to the new tensors. + return NN_SUCCESS; +} + +// simply copy input to output +nnom_status_t default_run(nnom_layer_t *layer) +{ + if(layer->out->type != NNOM_TENSOR_BUF_NULL) + { + nnom_memcpy(layer->out->tensor->p_data, layer->in->tensor->p_data, tensor_size_byte(layer->in->tensor)); + } + return NN_SUCCESS; +} diff --git a/components/ai/nnom/src/layers/nnom_concat.c b/components/ai/nnom/src/layers/nnom_concat.c new file mode 100644 index 00000000..0e1efa7a --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_concat.c @@ -0,0 +1,223 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_concat.h" + +nnom_layer_t *concat_s(const nnom_concat_config_t *config) +{ + nnom_layer_t* layer = Concat(config->axis); + if(layer) + layer->config = (void*) config; + return layer; +} + +// concate method +// concate requires more than one input module. aux input will be allocated in model.merge() +nnom_layer_t *Concat(int8_t axis) +{ + nnom_concat_layer_t *layer; + nnom_layer_io_t *in, *out; + size_t mem_size; + + // apply a block memory for all the sub handles. + mem_size = sizeof(nnom_concat_layer_t) + sizeof(nnom_layer_io_t) * 2; + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_concat_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_CONCAT; + layer->super.run = concat_run; + layer->super.build = concat_build; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + + // axis + layer->axis = axis; + + return (nnom_layer_t *)layer; +} + + +nnom_status_t concat_build(nnom_layer_t *layer) +{ + nnom_concat_layer_t *cl = (nnom_concat_layer_t *)layer; + nnom_layer_io_t *in; + uint32_t in_num = 0; + int32_t num_dim; + + // for each input module, copy the shape from the output of last layer + in = layer->in; + while (in != NULL) + { + //get the last layer's output as input shape + in->tensor = in->hook.io->tensor; + in = in->aux; + in_num++; + } + + // allocate new tensor for output, keep the same dimension lenght + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, layer->in->tensor->num_dim, tensor_get_num_channel(layer->in->tensor)); + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + + // convert the axis. + if (cl->axis < 0) + cl->axis = (layer->in->tensor->num_dim + cl->axis); + else if (cl->axis >0) + cl->axis = cl->axis -1; // keras use axis start from 1. we are using 0, 1, 2 (check?) + + // find out the concated axis + num_dim = layer->in->tensor->num_dim; + for (uint32_t i = 0; i < num_dim; i ++) + { + // exclue the concat axies + if (i == cl->axis) + { + layer->out->tensor->dim[i] = 0; + + // add the same axis from all input up. + in = layer->in; + while (in != NULL) + { + layer->out->tensor->dim[i] += in->tensor->dim[i]; + in = in->aux; + } + continue; + } + + // check others, all other must be same shape + in = layer->in; + while (in != NULL && in->aux != NULL) + { + if (in->tensor->dim[i] != in->aux->tensor->dim[i]) + return NN_ARGUMENT_ERROR; + in = in->aux; + } + + // now set other axis + layer->out->tensor->dim[i] = layer->in->tensor->dim[i]; + } + + return NN_SUCCESS; +} + + +#ifdef NNOM_USING_CHW +// axis index converter between HWC and CHW +static inline int chw_i(int hwc, int num_dim) +{ + num_dim = num_dim -1; + hwc = hwc + 1; + if(hwc>num_dim) + hwc = 0; + return hwc; +} +static inline int hwc_i(int chw, int num_dim) +{ + num_dim = num_dim -1; + chw = chw - 1; + if(chw=2) input and 1 output. + nnom_concat_layer_t *cl = (nnom_concat_layer_t *)layer; + nnom_layer_io_t *in; + uint32_t dwidth = layer->in->tensor->bitwidth/8; // data width in byte + +#ifdef NNOM_USING_CHW + // Concatenate for HWC + uint8_t *pin; + uint8_t *pout = layer->out->tensor->p_data; + uint32_t block_size; + uint32_t n_block; + uint8_t num_dim = layer->in->tensor->num_dim; + + // calcualte number of block to concat. the other shapes before the concat axis + n_block = 1; + for(int i= 0; i< chw_i(cl->axis, num_dim); i++) + { + n_block *= layer->in->tensor->dim[hwc_i(i, num_dim)]; + } + + // concat all input layers + for(int i=0; iin; + while (in != NULL) + { + // the block size of concat data in this layer + block_size = dwidth; + for(int j= num_dim-1; j >= chw_i(cl->axis, num_dim); j--) + block_size *= in->tensor->dim[hwc_i(j, num_dim)]; + // concat + pin = (uint8_t *)in->tensor->p_data + i * block_size; + nnom_memcpy(pout, pin, block_size); + pout += block_size; + in = in->aux; + } + } + +#else // end of CHW concate + + // Concatenate for HWC + uint8_t* pin; + uint8_t* pout = layer->out->tensor->p_data; + uint32_t block_size; + uint32_t n_block; + uint8_t num_dim = layer->in->tensor->num_dim; + + // calcualte the number of block to concat. (the other shapes before the concat axis) + n_block = 1; + for (int i = 0; i < cl->axis; i++) + n_block *= layer->in->tensor->dim[i]; + + // concat all input layers + for (int i = 0; i < n_block; i++) + { + in = layer->in; + while (in != NULL) + { + // the block size of concat data in this layer + block_size = dwidth; + for (int j = cl->axis; j < num_dim; j++) + block_size *= in->tensor->dim[j]; + // concat + pin = (uint8_t*)in->tensor->p_data + i * block_size; + nnom_memcpy(pout, pin, block_size); + pout += block_size; + in = in->aux; + } + } +#endif + return NN_SUCCESS; +} + diff --git a/components/ai/nnom/src/layers/nnom_conv2d.c b/components/ai/nnom/src/layers/nnom_conv2d.c new file mode 100644 index 00000000..ea553aed --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_conv2d.c @@ -0,0 +1,434 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_conv2d.h" + +#ifdef NNOM_USING_CMSIS_NN +#include "arm_math.h" +#include "arm_nnfunctions.h" +#endif + +// a machine friendly api, with suffix _s for structured configuration. +nnom_layer_t *conv2d_s(const nnom_conv2d_config_t *config) +{ + nnom_conv2d_layer_t *layer; + nnom_buf_t *comp; + nnom_layer_io_t *in, *out; + size_t mem_size; + + // allocate a block memory for all the sub handles and shifts. + mem_size = sizeof(nnom_conv2d_layer_t) + sizeof(nnom_layer_io_t) * 2 + sizeof(nnom_buf_t); + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_conv2d_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + comp = (void *)((uint8_t*)out + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_CONV_2D; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + comp->type = NNOM_TENSOR_BUF_TEMP; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + #ifdef NNOM_USING_CMSIS_NN + layer->super.comp = comp; + #endif + // set run method & output shape + layer->super.run = conv2d_run; + layer->super.build = conv2d_build; + layer->super.free = conv2d_free; + + // save the config + layer->super.config = (void*) config; + + // get the private parameters + // test: for 1d input, expend h = 1 + if(config->weight->num_dim == 3) + { + layer->kernel = kernel(1, config->kernel_size[0]); + layer->stride = stride(1, config->stride_size[0]); + layer->dilation = dilation(1, config->dilation_size[0]); + } + else + { + layer->kernel = kernel(config->kernel_size[0], config->kernel_size[1]); + layer->stride = stride(config->stride_size[0], config->stride_size[1]); + layer->dilation = dilation(config->dilation_size[0], config->dilation_size[1]); + } + + layer->filter_mult = config->filter_size; // for convs, this means filter number + layer->padding_type = config->padding_type; + + // get bias and weight tensor, this should be created by script. + layer->weight = config->weight; + layer->bias = config->bias; + + // get shifts + layer->output_rshift = (nnom_qformat_param_t *)config->output_shift; + layer->bias_lshift = (nnom_qformat_param_t *)config->bias_shift; + + // padding + if (layer->padding_type == PADDING_SAME) + { + layer->pad.h = layer->dilation.h * (layer->kernel.h - 1) / 2; + layer->pad.w = layer->dilation.w * (layer->kernel.w - 1) / 2; + layer->pad.c = (1 - 1) / 2; + } + + return (nnom_layer_t *)layer; +} + + +// Conv2D +// multiplier of (output/input channel), +// shape of kernal, shape of strides, weight struct, bias struct +nnom_layer_t *Conv2D(uint32_t filters, nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_3d_shape_t d, nnom_padding_t pad_type, + const nnom_weight_t *w, const nnom_bias_t *b) +{ + nnom_conv2d_layer_t *layer; + nnom_buf_t *comp; + nnom_layer_io_t *in, *out; + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_conv2d_layer_t) + sizeof(nnom_layer_io_t) * 2 + sizeof(nnom_buf_t); + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_conv2d_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + comp = (void *)((uint8_t*)out + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_CONV_2D; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + comp->type = NNOM_TENSOR_BUF_TEMP; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + #ifdef NNOM_USING_CMSIS_NN + layer->super.comp = comp; + #endif + // set run method & output shape + layer->super.run = conv2d_run; + layer->super.build = conv2d_build; + + // get the private parameters + layer->kernel = k; + layer->stride = s; + layer->dilation = d; + layer->filter_mult = filters; // for convs, this means filter number + layer->padding_type = pad_type; + + // create weight and bias tensor + layer->weight = new_tensor(NNOM_QTYPE_PER_TENSOR, 4, filters); + layer->bias = new_tensor(NNOM_QTYPE_PER_TENSOR, 1, filters); + + // configure weight tensor manually to support new tensor based backends. + // needs to be very careful + { + // config weight + nnom_shape_data_t dim[4] = {k.h, k.w, k.c, filters}; + *(layer->weight->q_offset) = 0; // we have no support of offset here + *(layer->weight->q_dec) = 0; // not using it + layer->weight->p_data = (void*)w->p_value; + layer->weight->bitwidth = 8; + layer->weight->qtype = NNOM_QTYPE_PER_TENSOR; + nnom_memcpy(layer->weight->dim, dim, layer->weight->num_dim * sizeof(nnom_shape_data_t)); + + // config bias + dim[0] = filters; + *(layer->bias->q_offset) = 0; // we have no support of offset here + *(layer->bias->q_dec) = 0; // not using it + layer->bias->p_data = (void*) b->p_value; + layer->bias->bitwidth = 8; + layer->weight->qtype = NNOM_QTYPE_PER_TENSOR; + nnom_memcpy(layer->bias->dim, dim, layer->bias->num_dim * sizeof(nnom_shape_data_t)); + + // output shift and bias shift + layer->output_rshift = (nnom_qformat_param_t *)&w->shift; + layer->bias_lshift = (nnom_qformat_param_t *)&b->shift; + } + + return (nnom_layer_t *)layer; +} + +// keras's implementation. +// source: https://github.com/keras-team/keras/blob/7a39b6c62d43c25472b2c2476bd2a8983ae4f682/keras/utils/conv_utils.py#L85 +uint32_t conv_output_length(uint32_t input_length, uint32_t filter_size, nnom_padding_t padding, uint32_t stride, uint32_t dilation) +{ + if (input_length == 0) + return 0; + uint32_t dilated_filter_size = (filter_size - 1) * dilation + 1; + uint32_t output_length; + if(padding == PADDING_SAME) + output_length = input_length; + else + output_length = input_length - dilated_filter_size + 1; + return (output_length + stride - 1) / stride; +} + +nnom_status_t conv2d_build(nnom_layer_t *layer) +{ + nnom_conv2d_layer_t *cl = (nnom_conv2d_layer_t *)layer; + + // get the tensor from last layer's output + layer->in->tensor = layer->in->hook.io->tensor; + + // create new tensor for the output + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, layer->in->tensor->num_dim, cl->filter_mult); + // copy then change later. + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + + // calculate the output tensor q format, only support per tensor quantise now + layer->out->tensor->q_dec[0] = layer->in->tensor->q_dec[0] + cl->weight->q_dec[0] - cl->output_rshift[0]; // need some modification for 16bit. + // see if the activation will change the q format + if(layer->actail) + layer->out->tensor->q_dec[0] = act_get_dec_bit(layer->actail->type, layer->out->tensor->q_dec[0]); + + // now we set up the tensor shape, always HWC format + layer->out->tensor->dim[0] = conv_output_length(layer->in->tensor->dim[0], cl->kernel.h, cl->padding_type, cl->stride.h, cl->dilation.h); + layer->out->tensor->dim[1] = conv_output_length(layer->in->tensor->dim[1], cl->kernel.w, cl->padding_type, cl->stride.w, cl->dilation.w); + layer->out->tensor->dim[2] = cl->filter_mult; // channel stays the same + + // fill padding + if (cl->padding_type == PADDING_SAME) + { + cl->pad.w = cl->dilation.w * (cl->kernel.w - 1) / 2; + cl->pad.h = cl->dilation.h * (cl->kernel.h - 1) / 2; + cl->pad.c = 0; + } + + #ifdef NNOM_USING_CMSIS_NN + // bufferA size: (1D shape) + // 2*ch_im_in*dim_kernel*dim_kernel + layer->comp->size = 2 * 2 * layer->in->tensor->dim[2] * cl->kernel.w * cl->kernel.h; + #endif + // computational cost: K x K x Cin x Hour x Wout x Cout + layer->stat.macc = cl->kernel.w * cl->kernel.h * layer->in->tensor->dim[2] * tensor_size(layer->out->tensor); + return NN_SUCCESS; +} + +nnom_status_t conv2d_free(nnom_layer_t *layer) +{ + // free weight and bias tensor when we are not initialised from structured configuration. + if(!layer->config) + { + nnom_conv2d_layer_t* cl = (nnom_conv2d_layer_t*)layer; + delete_tensor(cl->weight); + delete_tensor(cl->bias); + } + return NN_SUCCESS; +} + + +nnom_status_t conv2d_run(nnom_layer_t *layer) +{ + nnom_conv2d_layer_t *cl = (nnom_conv2d_layer_t *)layer; + +#ifdef NNOM_USING_CHW + // CHW format + if(layer->in->tensor->bitwidth == 16) + local_convolve_CHW_q15_nonsquare( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, cl->pad.w, cl->pad.h, cl->stride.w, cl->stride.h, cl->dilation.w, cl->dilation.h, + cl->bias->p_data, cl->bias_lshift, cl->output_rshift, cl->weight->qtype, + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], NULL, NULL); + else + local_convolve_CHW_q7_nonsquare( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, cl->pad.w, cl->pad.h, cl->stride.w, cl->stride.h, cl->dilation.w, cl->dilation.h, + cl->bias->p_data, cl->bias_lshift, cl->output_rshift, cl->weight->qtype, + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], NULL, NULL); + return NN_SUCCESS; +#else + // HWC format + #ifdef NNOM_USING_CMSIS_NN + // current cmsis nn does not support dilation + if(cl->dilation.w == 1 && cl->dilation.h == 1 && cl->weight->qtype == NNOM_QTYPE_PER_TENSOR) + { + // 8 bit cmsis nn + if(layer->in->tensor->bitwidth == 8) + { + //RGB + // ch_im_in = 3, w = h + if (layer->in->tensor->dim[2] == 3 && layer->in->tensor->dim[0] == layer->in->tensor->dim[1]) + // squared + if((cl->kernel.w == cl->kernel.h) && (cl->pad.w == cl->pad.h) && (cl->stride.w == cl->stride.h)) + return (nnom_status_t)arm_convolve_HWC_q7_RGB( + layer->in->tensor->p_data, layer->in->tensor->dim[1], layer->in->tensor->dim[2], + cl->weight->p_data, + layer->out->tensor->dim[2], + cl->kernel.w, cl->pad.w, cl->stride.w, + cl->bias->p_data, cl->bias_lshift[0], + cl->output_rshift[0], layer->out->tensor->p_data, layer->out->tensor->dim[1], + (q15_t *)(layer->comp->mem->blk), NULL); + + // check if can use optimized function + // ch_im_in is multiple of 4 + // ch_im_out is multiple of 2 + if ((layer->in->tensor->dim[2] % 4 == 0) && (layer->out->tensor->dim[2] % 2 == 0)) + { + // squared + if((layer->in->tensor->dim[0] == layer->in->tensor->dim[1]) + && (layer->out->tensor->dim[0] == layer->out->tensor->dim[1]) + && (cl->kernel.w == cl->kernel.h) && (cl->pad.w == cl->pad.h) && (cl->stride.w == cl->stride.h)) + { + // 1x1 fast + if (cl->kernel.w == 1 && cl->kernel.h == 1 && cl->stride.w == 1 && cl->stride.h == 1 && cl->pad.w == 0 && cl->pad.h == 0) + return (nnom_status_t)arm_convolve_1x1_HWC_q7_fast_nonsquare( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, + layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, cl->pad.w, cl->pad.h, cl->stride.w, cl->stride.h, + cl->bias->p_data, cl->bias_lshift[0], + cl->output_rshift[0], layer->out->tensor->p_data, layer->out->tensor->dim[1], layer->out->tensor->dim[0], + (q15_t *)(layer->comp->mem->blk), NULL); + // opt square shape + else + return (nnom_status_t)arm_convolve_HWC_q7_fast( + layer->in->tensor->p_data, layer->in->tensor->dim[1], layer->in->tensor->dim[2], + cl->weight->p_data, + layer->out->tensor->dim[2], cl->kernel.w, cl->pad.w, cl->stride.w, + cl->bias->p_data, cl->bias_lshift[0], + cl->output_rshift[0], layer->out->tensor->p_data, + layer->out->tensor->dim[1], (q15_t *)(layer->comp->mem->blk), NULL); + } + // opt none square shape + else + return (nnom_status_t)arm_convolve_HWC_q7_fast_nonsquare( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, cl->pad.w, cl->pad.h, cl->stride.w, cl->stride.h, + cl->bias->p_data, cl->bias_lshift[0], cl->output_rshift[0], + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], (q15_t *)(layer->comp->mem->blk), NULL); + } + // none optimized + else + { + // none opt square shape + if ((layer->in->tensor->dim[0] == layer->in->tensor->dim[1] && + layer->out->tensor->dim[0] == layer->out->tensor->dim[1]) && + (cl->kernel.w == cl->kernel.h) && (cl->pad.w == cl->pad.h) && (cl->stride.w == cl->stride.h)) + return (nnom_status_t)arm_convolve_HWC_q7_basic( + layer->in->tensor->p_data, layer->in->tensor->dim[1], layer->in->tensor->dim[2], + cl->weight->p_data, + layer->out->tensor->dim[2], cl->kernel.w, cl->pad.w, cl->stride.w, + cl->bias->p_data, cl->bias_lshift[0], + cl->output_rshift[0], layer->out->tensor->p_data, + layer->out->tensor->dim[1], (q15_t *)(layer->comp->mem->blk), NULL); + // none opt none square shape + else + return (nnom_status_t)arm_convolve_HWC_q7_basic_nonsquare( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, cl->pad.w, cl->pad.h, cl->stride.w, cl->stride.h, + cl->bias->p_data, cl->bias_lshift[0], cl->output_rshift[0], + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], (q15_t *)(layer->comp->mem->blk), NULL); + } //end of cmsis-nn none-opt + } //end of 8 bit cmsis-nn + else if (layer->in->tensor->bitwidth == 16) + { + // fast opt + if ((layer->in->tensor->dim[2] % 2 == 0) && (layer->out->tensor->dim[2] % 2 == 0)) + { + if((layer->in->tensor->dim[0] == layer->in->tensor->dim[1]) + && (layer->out->tensor->dim[0] == layer->out->tensor->dim[1]) + && (cl->kernel.w == cl->kernel.h) && (cl->pad.w == cl->pad.h) && (cl->stride.w == cl->stride.h)) + return (nnom_status_t)arm_convolve_HWC_q15_fast( + layer->in->tensor->p_data, layer->in->tensor->dim[1], layer->in->tensor->dim[2], + cl->weight->p_data, + layer->out->tensor->dim[2], cl->kernel.w, cl->pad.w, cl->stride.w, + cl->bias->p_data, cl->bias_lshift[0], + cl->output_rshift[0], layer->out->tensor->p_data, + layer->out->tensor->dim[1], (q15_t *)(layer->comp->mem->blk), NULL); + else + return (nnom_status_t)arm_convolve_HWC_q15_fast_nonsquare( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, cl->pad.w, cl->pad.h, cl->stride.w, cl->stride.h, + cl->bias->p_data, cl->bias_lshift[0], cl->output_rshift[0], + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], (q15_t *)(layer->comp->mem->blk), NULL); + } + // none opt basic + else + { + local_convolve_HWC_q7_nonsquare( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, cl->pad.w, cl->pad.h, cl->stride.w, cl->stride.h, cl->dilation.w, cl->dilation.h, + cl->bias->p_data, cl->bias_lshift, cl->output_rshift, cl->weight->qtype, + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], NULL, NULL); + return NN_SUCCESS; + } + + } // end of 16 bit cmsis-nn + } // end of dilation == 1 + else + #endif // NNOM_USING_CMSIS_NN + { + + if(layer->in->tensor->bitwidth == 16) + local_convolve_HWC_q15_nonsquare( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, cl->pad.w, cl->pad.h, cl->stride.w, cl->stride.h, cl->dilation.w, cl->dilation.h, + cl->bias->p_data, cl->bias_lshift, cl->output_rshift, cl->weight->qtype, + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], NULL, NULL); + else + local_convolve_HWC_q7_nonsquare( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, cl->pad.w, cl->pad.h, cl->stride.w, cl->stride.h, cl->dilation.w, cl->dilation.h, + cl->bias->p_data, cl->bias_lshift, cl->output_rshift, cl->weight->qtype, + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], NULL, NULL); + return NN_SUCCESS; + } +#endif // end of CHW/HWC + return NN_SUCCESS; +} + diff --git a/components/ai/nnom/src/layers/nnom_conv2d_trans.c b/components/ai/nnom/src/layers/nnom_conv2d_trans.c new file mode 100644 index 00000000..5a99380a --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_conv2d_trans.c @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-05-31 Jianjia Ma The first version + */ + + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_conv2d_trans.h" + +nnom_layer_t *conv2d_trans_s(const nnom_conv2d_config_t *config) +{ + nnom_layer_t *layer; + layer = conv2d_s(config); + if (layer) + { + layer->type = NNOM_CONV2D_TRANS; + layer->run = conv2d_trans_run; + layer->build = conv2d_trans_build; + } + return layer; +} + +nnom_layer_t *Conv2DTrans(uint32_t multiplier, nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_3d_shape_t d, nnom_padding_t pad_type, + const nnom_weight_t *w, const nnom_bias_t *b) +{ + nnom_layer_t *layer = Conv2D(multiplier, k, s, d, pad_type, w, b); + if (layer != NULL) + { + layer->type = NNOM_CONV2D_TRANS; + layer->run = conv2d_trans_run; + layer->build = conv2d_trans_build; + } + return layer; +} + +// utils, keras method +// https://github.com/keras-team/keras/blob/7a39b6c62d43c25472b2c2476bd2a8983ae4f682/keras/utils/conv_utils.py#L114 +// https://github.com/tensorflow/tensorflow/blob/2b96f3662bd776e277f86997659e61046b56c315/tensorflow/python/layers/utils.py#L156 +uint32_t conv_trans_output_length(uint32_t input_length, uint32_t kernel_size, nnom_padding_t padding, uint32_t stride_size, uint32_t dilation) +{ + input_length *= stride_size; + if (padding == PADDING_VALID) + input_length += MAX(kernel_size - stride_size, 0); + return input_length; +} + +nnom_status_t conv2d_trans_build(nnom_layer_t *layer) +{ + nnom_conv2d_trans_layer_t *cl = (nnom_conv2d_trans_layer_t *)layer; + + // get the tensor from last layer's output + layer->in->tensor = layer->in->hook.io->tensor; + + // create new tensor for the output + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, layer->in->tensor->num_dim, cl->filter_mult); + // copy then change later. + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + + // calculate the output tensor q format, only support per tensor quantise now + layer->out->tensor->q_dec[0] = layer->in->tensor->q_dec[0] + cl->weight->q_dec[0] - cl->output_rshift[0]; + // see if the activation will change the q format + if(layer->actail) + layer->out->tensor->q_dec[0] = act_get_dec_bit(layer->actail->type, layer->out->tensor->q_dec[0]); + + // now we set up the tensor shape, always HWC format + layer->out->tensor->dim[0] = conv_trans_output_length(layer->in->tensor->dim[0], cl->kernel.h, cl->padding_type, cl->stride.h, cl->dilation.h); + layer->out->tensor->dim[1] = conv_trans_output_length(layer->in->tensor->dim[1], cl->kernel.w, cl->padding_type, cl->stride.w, cl->dilation.w); + layer->out->tensor->dim[2] = cl->filter_mult; // channel stays the same + + // fill the correct padding + if(cl->padding_type == PADDING_SAME) + { + cl->pad.h = (cl->kernel.h - cl->stride.h) / 2; // the padding to the output. + cl->pad.w = (cl->kernel.w - cl->stride.w) / 2; +// cl->pad.h = (cl->kernel.h - 1)/2; // the padding to the output. +// cl->pad.w = (cl->kernel.w - 1)/2; + cl->pad.c = 0; + } + else + { + cl->pad.h = 0; + cl->pad.w = 0; + cl->pad.c = 0; + } + + // bufferA size: (1D shape) + // 2*ch_im_in*dim_kernel*dim_kernel + //layer->comp->size = 2 * 2 * layer->in->tensor->dim[2] * cl->kernel.w * cl->kernel.h; + // computational cost: K x K x Cin x Hour x Wout x Cout + layer->stat.macc = cl->kernel.w * cl->kernel.h * layer->in->tensor->dim[2] * tensor_size(layer->out->tensor); + return NN_SUCCESS; +} + + +nnom_status_t conv2d_trans_run(nnom_layer_t *layer) +{ + nnom_conv2d_trans_layer_t *cl = (nnom_conv2d_trans_layer_t *)layer; + +#ifdef NNOM_USING_CHW + // no support for CHW yet + return NN_ARGUMENT_ERROR; +#else + + //return conv2d_run(layer); + + local_conv_trans_HWC_q7_nonsquare( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, cl->pad.w, cl->pad.h, cl->stride.w, cl->stride.h, cl->dilation.w, cl->dilation.h, + cl->bias->p_data, cl->bias_lshift[0], cl->output_rshift[0], + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], NULL, NULL); + return NN_SUCCESS; +#endif +} + + diff --git a/components/ai/nnom/src/layers/nnom_cropping.c b/components/ai/nnom/src/layers/nnom_cropping.c new file mode 100644 index 00000000..01abe926 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_cropping.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_cropping.h" + +nnom_layer_t * cropping_s(const nnom_cropping_config_t *config) +{ + nnom_layer_t *layer = Cropping(config->pad); + if(layer) + layer->config = (void*) config; + return layer; +} + +// Cropping layer +nnom_layer_t *Cropping(nnom_border_t pad) +{ + nnom_layer_t *layer; + // most setting are the same as zero padding + layer = ZeroPadding(pad); + + // now change to cropping + layer->type = NNOM_CROPPING; + layer->run = cropping_run; + layer->build = cropping_build; + + return layer; +} + +nnom_status_t cropping_build(nnom_layer_t* layer) +{ + nnom_cropping_layer_t *cl = (nnom_cropping_layer_t *)layer; + + // get the tensor from last layer's output + layer->in->tensor = layer->in->hook.io->tensor; + + // create new tensor for output + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, layer->in->tensor->num_dim, tensor_get_num_channel(layer->in->tensor)); + // copy then change later. + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + + // output shape + if(layer->in->tensor->dim[1] <= (cl->pad.left + cl->pad.right) || + layer->in->tensor->dim[0] <= (cl->pad.top + cl->pad.bottom)) + return NN_ARGUMENT_ERROR; + + layer->out->tensor->dim[0] = layer->in->tensor->dim[0] - (cl->pad.top + cl->pad.bottom); + layer->out->tensor->dim[1] = layer->in->tensor->dim[1] - (cl->pad.left + cl->pad.right); + layer->out->tensor->dim[2] = layer->in->tensor->dim[2]; + return NN_SUCCESS; +} + + +nnom_status_t cropping_run(nnom_layer_t * layer) +{ + nnom_cropping_layer_t *cl = (nnom_cropping_layer_t*)layer; + +#ifdef NNOM_USING_CHW + local_cropping_CHW_q7( +#else + local_cropping_HWC_q7( +#endif + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->pad.top, + cl->pad.bottom, + cl->pad.left, + cl->pad.right, + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0]); + + return NN_SUCCESS; +} diff --git a/components/ai/nnom/src/layers/nnom_dense.c b/components/ai/nnom/src/layers/nnom_dense.c new file mode 100644 index 00000000..17c566c7 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_dense.c @@ -0,0 +1,207 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_dense.h" + +#ifdef NNOM_USING_CMSIS_NN +#include "arm_math.h" +#include "arm_nnfunctions.h" +#endif + +nnom_layer_t *dense_s(const nnom_dense_config_t *config) +{ + nnom_dense_layer_t *layer; + nnom_buf_t *comp; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_dense_layer_t) + sizeof(nnom_layer_io_t) * 2 + sizeof(nnom_buf_t); + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_dense_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + comp = (void *)((uint8_t*)out + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_DENSE; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + comp->type = NNOM_TENSOR_BUF_TEMP; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + layer->super.comp = comp; + // set run and outshape methods + layer->super.run = dense_run; + layer->super.build = dense_build; + layer->super.free = dense_free; + + // set parameters + layer->output_unit = tensor_get_num_channel(config->weight); + layer->bias = config->bias; + layer->weight = config->weight; + // set shifts + layer->output_rshift = (nnom_qformat_param_t *)config->output_shift; + layer->bias_lshift = (nnom_qformat_param_t *)config->bias_shift; + // set config + layer->super.config = (void*) config; + + return (nnom_layer_t *)layer; +} + +nnom_layer_t *Dense(size_t output_unit, const nnom_weight_t *w, const nnom_bias_t *b) +{ + nnom_dense_layer_t *layer; + nnom_buf_t *comp; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_dense_layer_t) + sizeof(nnom_layer_io_t) * 2 + sizeof(nnom_buf_t); + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_dense_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + comp = (void *)((uint8_t*)out + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_DENSE; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + comp->type = NNOM_TENSOR_BUF_TEMP; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + layer->super.comp = comp; + // set run and outshape methods + layer->super.run = dense_run; + layer->super.build = dense_build; + + // set parameters + layer->output_unit = output_unit; // this is no longer needed. the information is contained in the weight tensor. + + layer->weight = new_tensor(NNOM_QTYPE_PER_TENSOR, 2, output_unit); + layer->bias = new_tensor(NNOM_QTYPE_PER_TENSOR, 1, output_unit); + + // configure weight tensor manually to support new tensor-based backends. + // needs to be very careful + { + // config weight + nnom_shape_data_t dim[2] = {0, output_unit}; // the first dim doesnt matter here. will be file in later. + *(layer->weight->q_offset) = 0; // we have no support of offset here + *(layer->weight->q_dec) = 0; // this is not even correct + layer->weight->p_data = (void*)w->p_value; + layer->weight->bitwidth = 8; + layer->weight->qtype = NNOM_QTYPE_PER_TENSOR; + nnom_memcpy(layer->weight->dim, dim, layer->weight->num_dim * sizeof(nnom_shape_data_t)); + + // config bias + dim[0] = output_unit; + *(layer->bias->q_offset) = 0; // we have no support of offset here + *(layer->bias->q_dec) = 0; // this is not even correct + layer->bias->p_data = (void*)b->p_value; + layer->bias->bitwidth = 8; + layer->weight->qtype = NNOM_QTYPE_PER_TENSOR; + nnom_memcpy(layer->bias->dim, dim, layer->bias->num_dim * sizeof(nnom_shape_data_t)); + } + + // set output shifts + layer->output_rshift = (nnom_qformat_param_t *)&w->shift; + layer->bias_lshift = (nnom_qformat_param_t *)&b->shift; + + return (nnom_layer_t *)layer; +} + +nnom_status_t dense_build(nnom_layer_t *layer) +{ + nnom_dense_layer_t *cl = (nnom_dense_layer_t *)layer; + + // get the tensor from last layer's output + layer->in->tensor = layer->in->hook.io->tensor; + + // create new tensor for output + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, 1, tensor_get_num_channel(layer->in->tensor)); + // setup new tensor + nnom_shape_data_t dim[1] = {cl->output_unit}; + tensor_set_attr(layer->out->tensor, cl->weight->q_dec, cl->weight->q_offset, dim, 1, 8); // test, this is not correct + + // calculate the output tensor q format, only support per tensor quantise now + layer->out->tensor->q_dec[0] = layer->in->tensor->q_dec[0] + cl->weight->q_dec[0] - cl->output_rshift[0]; + // see if the activation will change the q format + if(layer->actail) + layer->out->tensor->q_dec[0] = act_get_dec_bit(layer->actail->type, layer->out->tensor->q_dec[0]); + + // vec_buffer size: dim_vec (*2, q7->q15) ? I am not sure this is right + layer->comp->size = tensor_size(layer->in->tensor)*2; + + // computational cost: In * out + layer->stat.macc = tensor_size(layer->in->tensor) * tensor_size(layer->out->tensor); + return NN_SUCCESS; +} + +nnom_status_t dense_free(nnom_layer_t *layer) +{ + // free weight and bias tensor when we are not initialised from structured configuration. + if(!layer->config) + { + nnom_dense_layer_t* cl = (nnom_dense_layer_t*)layer; + delete_tensor(cl->weight); + delete_tensor(cl->bias); + } + + return NN_SUCCESS; +} + +nnom_status_t dense_run(nnom_layer_t *layer) +{ + nnom_status_t result = NN_SUCCESS; + nnom_dense_layer_t *cl = (nnom_dense_layer_t *)(layer); + nnom_qformat_param_t bias_shift = cl->bias_lshift[0]; // this is not correct but a temporary fix solution for backward compatibility. + nnom_qformat_param_t output_shift = cl->output_rshift[0]; + + +#if !(DENSE_WEIGHT_OPT) + #ifdef NNOM_USING_CMSIS_NN + result = (nnom_status_t)arm_fully_connected_q7( + #else + local_fully_connected_q7( + #endif +#else + #ifdef NNOM_USING_CMSIS_NN + result = (nnom_status_t)arm_fully_connected_q7_opt( + #else + local_fully_connected_q7_opt( + #endif +#endif + layer->in->tensor->p_data, + cl->weight->p_data, + tensor_size(layer->in->tensor), layer->out->tensor->dim[0], + bias_shift, output_shift, + cl->bias->p_data, + layer->out->tensor->p_data, (q15_t *)(layer->comp->mem->blk)); + return result; +} + diff --git a/components/ai/nnom/src/layers/nnom_dw_conv2d.c b/components/ai/nnom/src/layers/nnom_dw_conv2d.c new file mode 100644 index 00000000..72ac7754 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_dw_conv2d.c @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_dw_conv2d.h" + +#ifdef NNOM_USING_CMSIS_NN +#include "arm_math.h" +#include "arm_nnfunctions.h" +#endif + +nnom_layer_t *dw_conv2d_s(const nnom_conv2d_config_t *config) +{ + nnom_layer_t *layer; + layer = conv2d_s(config); + if (layer) + { + layer->type = NNOM_DW_CONV_2D; + layer->run = dw_conv2d_run; + layer->build = dw_conv2d_build; + } + return layer; +} + +nnom_layer_t *DW_Conv2D(uint32_t multiplier, nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_3d_shape_t d, nnom_padding_t pad_type, + const nnom_weight_t *w, const nnom_bias_t *b) +{ + nnom_layer_t *layer = Conv2D(multiplier, k, s, d, pad_type, w, b); // passing multiplier in . + if (layer != NULL) + { + layer->type = NNOM_DW_CONV_2D; + layer->run = dw_conv2d_run; + layer->build = dw_conv2d_build; + } + return layer; +} + +nnom_status_t dw_conv2d_build(nnom_layer_t *layer) +{ + nnom_conv2d_layer_t *cl = (nnom_conv2d_layer_t *)layer; + + // get the tensor from last layer's output + layer->in->tensor = layer->in->hook.io->tensor; + + // create new tensor for output + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, layer->in->tensor->num_dim, tensor_get_num_channel(layer->in->tensor) * cl->filter_mult); + // copy then change later. + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + + // calculate the output tensor q format, only support per tensor quantise now + layer->out->tensor->q_dec[0] = layer->in->tensor->q_dec[0] + cl->weight->q_dec[0] - cl->output_rshift[0]; + // see if the activation will change the q format + if(layer->actail) + layer->out->tensor->q_dec[0] = act_get_dec_bit(layer->actail->type, layer->out->tensor->q_dec[0]); + + // now we set up the tensor shape, always HWC format + layer->out->tensor->dim[0] = conv_output_length(layer->in->tensor->dim[0], cl->kernel.h, cl->padding_type, cl->stride.h, cl->dilation.h); + layer->out->tensor->dim[1] = conv_output_length(layer->in->tensor->dim[1], cl->kernel.w, cl->padding_type, cl->stride.w, cl->dilation.w); + layer->out->tensor->dim[2] = layer->in->tensor->dim[2] * cl->filter_mult; // channel stays the same + + // fill padding + if (cl->padding_type == PADDING_SAME) + { + cl->pad.w = cl->dilation.w * (cl->kernel.w - 1) / 2; + cl->pad.h = cl->dilation.h * (cl->kernel.h - 1) / 2; + cl->pad.c = 0; + } + + // bufferA size: + #ifdef NNOM_USING_CMSIS_NN + layer->comp->size = 2 * 2 * (layer->in->tensor->dim[2] / cl->filter_mult) * cl->kernel.w * cl->kernel.h; + #endif + + // computational cost: K x K x Cin x Hout x Wout x Multiplier + // or : K x K x Cout x Hout x Wout + layer->stat.macc = cl->kernel.w * cl->kernel.h * tensor_size(layer->out->tensor); + return NN_SUCCESS; +} + +nnom_status_t dw_conv2d_run(nnom_layer_t *layer) +{ + nnom_status_t result = NN_SUCCESS; + nnom_conv2d_layer_t *cl = (nnom_conv2d_layer_t *)layer; + +#ifndef NNOM_USING_CHW + #ifdef NNOM_USING_CMSIS_NN + // Current CMSIS-NN does not support dilation + if(cl->dilation.w ==1 && cl->dilation.h == 1 && cl->weight->qtype == NNOM_QTYPE_PER_TENSOR && cl->filter_mult == 1) + { + // CMSIS-NN only support 1 mulplipier in depthwise conv + if (layer->in->tensor->dim[2] % 2 != 0 || layer->out->tensor->dim[2] % 2) + return NN_ARGUMENT_ERROR; + result = (nnom_status_t)arm_depthwise_separable_conv_HWC_q7_nonsquare( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, + layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, + cl->pad.w, cl->pad.h, + cl->stride.w, cl->stride.h, + cl->bias->p_data, + cl->bias_lshift[0], cl->output_rshift[0], + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], (q15_t *)(layer->comp->mem->blk), NULL); + } + else + #endif + local_depthwise_separable_conv_HWC_q7_nonsquare( +#else + local_depthwise_separable_conv_CHW_q7_nonsquare( +#endif + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->weight->p_data, + layer->out->tensor->dim[2], + cl->kernel.w, cl->kernel.h, + cl->pad.w, cl->pad.h, + cl->stride.w, cl->stride.h, + cl->dilation.w, cl->dilation.h, + cl->bias->p_data, + cl->bias_lshift, cl->output_rshift, cl->weight->qtype, + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], NULL, NULL); + return result; +} diff --git a/components/ai/nnom/src/layers/nnom_flatten.c b/components/ai/nnom/src/layers/nnom_flatten.c new file mode 100644 index 00000000..c976bca9 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_flatten.c @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_flatten.h" + +nnom_layer_t *flatten_s(const nnom_flatten_config_t *config) +{ + nnom_layer_t *layer = Flatten(); + if(layer) + layer->config = (void*) config; + return layer; +} + +nnom_layer_t *Flatten(void) +{ + nnom_layer_t *layer; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_layer_t) + sizeof(nnom_layer_io_t) * 2; + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->type = NNOM_FLATTEN; + layer->run = flatten_run; + layer->build = flatten_build; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + #ifdef NNOM_USING_CHW + out->type = NNOM_TENSOR_BUF_TEMP; // test for CHW format + #else + out->type = NNOM_TENSOR_BUF_NULL; + #endif + // put in & out on the layer. + layer->in = io_init(layer, in); + layer->out = io_init(layer, out); + + return layer; +} + +nnom_status_t flatten_build(nnom_layer_t *layer) +{ + // get the tensor from last layer's output + layer->in->tensor = layer->in->hook.io->tensor; + + // create new tensor for output + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, layer->in->tensor->num_dim, tensor_get_num_channel(layer->in->tensor)); + // setup new tensor + nnom_shape_data_t dim[1] = {tensor_size(layer->in->tensor)}; + tensor_set_attr(layer->out->tensor, layer->in->tensor->q_dec, layer->in->tensor->q_offset, dim, 1, 8); + + return NN_SUCCESS; +} + +nnom_status_t flatten_run(nnom_layer_t *layer) +{ + #ifdef NNOM_USING_CHW + // CHW format must reorder to HWC for dense layer and all other 1D layer (?) + tensor_chw2hwc_q7(layer->out->tensor, layer->in->tensor); + #endif + return NN_SUCCESS; +} diff --git a/components/ai/nnom/src/layers/nnom_global_pool.c b/components/ai/nnom/src/layers/nnom_global_pool.c new file mode 100644 index 00000000..8e0d1ee6 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_global_pool.c @@ -0,0 +1,145 @@ + +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_global_pool.h" + +nnom_layer_t * global_maxpool_s(const nnom_global_pool_config_t *config) +{ + nnom_maxpool_layer_t * cl = (nnom_maxpool_layer_t *)GlobalMaxPool(); + if(cl) + { + cl->super.config = (void*) config; + cl->output_shift = config->output_shift; + } + return (nnom_layer_t *)cl; +} +nnom_layer_t * global_avgpool_s(const nnom_global_pool_config_t *config) +{ + nnom_maxpool_layer_t * cl = (nnom_maxpool_layer_t *)GlobalAvgPool(); + if(cl) + { + cl->super.config = (void*) config; + cl->output_shift = config->output_shift; + } + return (nnom_layer_t *)cl; +} + +nnom_layer_t * global_sumpool_s(const nnom_global_pool_config_t *config) +{ + nnom_maxpool_layer_t * cl = (nnom_maxpool_layer_t *)GlobalSumPool(); + if(cl) + { + cl->super.config = (void*) config; + cl->output_shift = config->output_shift; + } + return (nnom_layer_t *)cl; +} + + +nnom_layer_t *GlobalMaxPool(void) +{ + // create the normal pooling layer, the parameters are left empty to fill in later. + // parameters will be filled in in global_pooling_build() + nnom_layer_t *layer = MaxPool(kernel(0, 0), stride(0, 0), PADDING_VALID); + + // change to global max pool + if (layer != NULL) + { + layer->type = NNOM_GLOBAL_MAXPOOL; + layer->build = global_pool_build; + } + + return (nnom_layer_t *)layer; +} + +nnom_layer_t *GlobalAvgPool(void) +{ + // create the normal pooling layer, the parameters are left empty to fill in later. + // parameters will be filled in global_pooling_build() remotely + nnom_layer_t *layer = MaxPool(kernel(0, 0), stride(0, 0), PADDING_VALID); + + // change some parameters to be recognised as avg pooling + if (layer != NULL) + { + layer->type = NNOM_GLOBAL_AVGPOOL; + layer->run = avgpool_run; // global and basic pooling share the same runner + layer->build = global_pool_build; + } + + return (nnom_layer_t *)layer; +} + +nnom_layer_t *GlobalSumPool(void) +{ + // create the normal pooling layer, the parameters are left empty to fill in later. + // parameters will be filled in global_pooling_build() remotely + nnom_layer_t *layer = MaxPool(kernel(0, 0), stride(0, 0), PADDING_VALID); + + // change some parameters to be recognised as avg pooling + if (layer != NULL) + { + layer->type = NNOM_GLOBAL_SUMPOOL; + layer->run = sumpool_run; // global and basic pooling share the same runner + layer->build = global_pool_build; + } + + return (nnom_layer_t *)layer; +} + +nnom_status_t global_pool_build(nnom_layer_t *layer) +{ + nnom_maxpool_layer_t *cl = (nnom_maxpool_layer_t *)layer; + + // get the tensor from last layer's output + layer->in->tensor = layer->in->hook.io->tensor; + + // create new tensor for output + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, 1, tensor_get_num_channel(layer->in->tensor)); + + nnom_shape_data_t dim[1] = {tensor_get_num_channel(layer->in->tensor)}; // fill the first 2 dim later + tensor_set_attr_v(layer->out->tensor, layer->in->tensor->q_dec[0], 0, dim, sizeof(dim)/sizeof(nnom_shape_data_t), 8); + + // see if the activation will change the q format + if(layer->actail) + layer->out->tensor->q_dec[0] = act_get_dec_bit(layer->actail->type, layer->out->tensor->q_dec[0]); + + // different from other *_build(), the kernel..padding left by layer API needs to be set in here + // due to the *_run() methods of global pooling are using the normall pooling's. + // fill in the parameters left by layer APIs (GlobalAvgPool and MaxAvgPool) + cl->kernel = shape(layer->in->tensor->dim[0], layer->in->tensor->dim[1], 1); + cl->stride = shape(1, 1, 1); + cl->pad = shape(0, 0, 0); + cl->padding_type = PADDING_VALID; + + // additionally, avg pooling require computational buffer, which is 2*dim_im_out*ch_im_in + if (layer->type == NNOM_AVGPOOL || layer->type == NNOM_GLOBAL_AVGPOOL) + { + // bufferA size: 2*dim_im_out*ch_im_in + layer->comp->size = 2 * layer->out->tensor->dim[0] * layer->in->tensor->dim[2]; + } + + // additional for sumpool + if (layer->type == NNOM_SUMPOOL || layer->type == NNOM_GLOBAL_SUMPOOL) + layer->comp->size = 4 * tensor_size(layer->out->tensor); + + return NN_SUCCESS; +} + + diff --git a/components/ai/nnom/src/layers/nnom_gru_cell.c b/components/ai/nnom/src/layers/nnom_gru_cell.c new file mode 100644 index 00000000..7e01e9e2 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_gru_cell.c @@ -0,0 +1,338 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-08-24 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_gru_cell.h" + +#ifdef NNOM_USING_CMSIS_NN +#include "arm_math.h" +#include "arm_nnfunctions.h" +#endif + +nnom_rnn_cell_t *gru_cell_s(const nnom_gru_cell_config_t* config) +{ + nnom_gru_cell_t *cell; + cell = nnom_mem(sizeof(nnom_gru_cell_t)); + if (cell == NULL) + return NULL; + // set methods + cell->super.run = gru_cell_run; + cell->super.build = gru_cell_build; + cell->super.free = gru_cell_free; + cell->super.config = (void*) config; + cell->super.units = config->units; + cell->super.type = NNOM_GRU_CELL; + + // set parameters + cell->bias = config->bias; + cell->weights = config->weights; + cell->recurrent_weights = config->recurrent_weights; + + // q format for intermediate calculation + cell->q_dec_h = config->q_dec_h; + cell->q_dec_z = config->q_dec_z; + + return (nnom_rnn_cell_t *)cell; +} + +nnom_status_t gru_cell_free(nnom_rnn_cell_t* cell) +{ + return NN_SUCCESS; +} + +// the state buffer and computational buffer shape of the cell +nnom_status_t gru_cell_build(nnom_rnn_cell_t* cell) +{ + nnom_layer_t *layer = cell->layer; + nnom_gru_cell_t *c = (nnom_gru_cell_t *)cell; + + // calculate output shift for the 2 calculation. + // hw = the product of hidden x weight, iw = the product of input x weight + // due to the addition of them, they must have same q format. + // that is -> c->q_dec_z; + + // for the dots in cell: output shift = input_dec + weight_dec - output_dec + c->oshift_hw = c->q_dec_h + c->recurrent_weights->q_dec[0] - c->q_dec_z; + c->oshift_iw = layer->in->tensor->q_dec[0] + c->weights->q_dec[0] - c->q_dec_z; + + // bias shift = bias_dec - out_dec + c->bias_shift = layer->in->tensor->q_dec[0] + c->weights->q_dec[0] - c->bias->q_dec[0]; + + // state size = one timestamp output size. + cell->state_size = cell->units * 2; // Q15 + + // comp buffer size: not required + cell->comp_buf_size = cell->units * (3*3) * 2 + cell->feature_size * 2; //q15 + input q7->q15 buffer. + + // finally, calculate the MAC for info for each timestamp + cell->macc = cell->feature_size * cell->units *3 // input: feature * state * 3 gates + + cell->units * cell->units *8 // recurrent, state * output_unit * (5 gate + 3 mult) + + cell->units * (3 + 3 + 5); // 3 gates, 3 mult, 5 addition + + return NN_SUCCESS; +} + + +// keras implementation as below. +/* + def step(cell_inputs, cell_states): + """Step function that will be used by Keras RNN backend.""" + h_tm1 = cell_states[0] + + # inputs projected by all gate matrices at once + matrix_x = K.dot(cell_inputs, kernel) + matrix_x = K.bias_add(matrix_x, input_bias) + + x_z, x_r, x_h = array_ops.split(matrix_x, 3, axis=1) + + # hidden state projected by all gate matrices at once + matrix_inner = K.dot(h_tm1, recurrent_kernel) + matrix_inner = K.bias_add(matrix_inner, recurrent_bias) + + recurrent_z, recurrent_r, recurrent_h = array_ops.split(matrix_inner, 3, + axis=1) + z = nn.sigmoid(x_z + recurrent_z) + r = nn.sigmoid(x_r + recurrent_r) + hh = nn.tanh(x_h + r * recurrent_h) + + # previous and candidate state mixed by update gate + h = z * h_tm1 + (1 - z) * hh + return h, [h] +*/ + +// +nnom_status_t gru_cell_run(nnom_rnn_cell_t* cell) +{ + nnom_layer_t *layer = cell->layer; + nnom_gru_cell_t* c = (nnom_gru_cell_t*) cell; + int act_int_bit = 7 - c->q_dec_z; + // gate data + q15_t* x_z, *x_r, *x_h; + q15_t* recurrent_z, *recurrent_r, *recurrent_h; + q15_t* temp[3]; + + // bias + q7_t* bias = (q7_t*)c->bias->p_data; + q7_t* recurrent_bias = (q7_t*)c->bias->p_data + cell->units*3; + + // state buffer + q15_t* h_tm1 = (q15_t*)cell->in_state; + q15_t* h_t = (q15_t*)cell->out_state; + + // computing buffer + // low |-- buf0 --|-- buf1 --|-- buf2 --|-- input_q15 --| + q15_t *buf[3]; + buf[0] = (q15_t*)layer->comp->mem->blk; + buf[1] = (q15_t*)layer->comp->mem->blk + cell->units*3; + buf[2] = (q15_t*)layer->comp->mem->blk + cell->units*6; + q15_t *in_q15_buf = (q15_t*)layer->comp->mem->blk + cell->units*9; + + // input q7 cast to q15 + local_q7_to_q15(cell->in_data, in_q15_buf, cell->feature_size); + + // matrix_x = K.dot(cell_inputs, kernel) + bias --> buf0 + #ifdef NNOM_USING_CMSIS_NN + arm_fully_connected_mat_q7_vec_q15_opt + #else + local_fully_connected_mat_q7_vec_q15_opt + #endif + (in_q15_buf, c->weights->p_data, cell->feature_size, + cell->units*3, c->bias_shift + 8, c->oshift_iw, bias, buf[0], NULL); + + // matrix_intter = K.dot(h_tm1, recurrent_kernel) + bias -> buf1 + #ifdef NNOM_USING_CMSIS_NN + arm_fully_connected_mat_q7_vec_q15_opt + #else + local_fully_connected_mat_q7_vec_q15_opt + #endif + (h_tm1, c->recurrent_weights->p_data, cell->units, + cell->units*3, c->bias_shift + 8, c->oshift_hw, recurrent_bias, buf[1], NULL); + + // split to each gate + x_z = buf[0]; + x_r = buf[0] + cell->units; + x_h = buf[0] + cell->units*2; + recurrent_z = buf[1]; + recurrent_r = buf[1] + cell->units; + recurrent_h = buf[1] + cell->units*2; + // buffers + temp[0] = buf[2]; + temp[1] = buf[2] + cell->units; + temp[2] = buf[2] + cell->units*2; + + /* z = nn.sigmoid(x_z + recurrent_z) */ + // 1. z1 = x_z + recurrent_z ---> temp[0] + local_add_q15(x_z, recurrent_z, temp[0], 0, cell->units); + // 2. z = sigmoid(z1) + local_sigmoid_q15(temp[0], cell->units, act_int_bit); + + /* r = nn.sigmoid(x_r + recurrent_r) */ + // 1. r1 = x_r + recurrent_r ---> temp[1] + local_add_q15(x_r, recurrent_r, temp[1], 0, cell->units); + // 2. r = sigmoid(r1) + local_sigmoid_q15(temp[1], cell->units, act_int_bit); + + /* hh = nn.tanh(x_h + r * recurrent_h) */ + // 1. hh1 = r * recurrent_h ---> temp[2] + local_mult_q15(temp[1], recurrent_h, temp[2], 15, cell->units); + // 2. hh2 = x_h + hh1 ---> temp[1] + local_add_q15(x_h, temp[2], temp[1], 0, cell->units); + // 3. hh = tanh(h2) ---> temp[1] + local_tanh_q15(temp[1], cell->units, act_int_bit); + + /* h = z * h_tm1 + (1 - z) * hh */ + // 1. h1 = z*h_tm1 ---> temp[2] + local_mult_q15(temp[0], h_tm1, temp[2], 15, cell->units); + // 2. h2 = 1 - z ---> h_t state buff + local_1_minor_z_q15(temp[0], h_t, 15, cell->units); + // 3. h3 = h2 * hh ---> temp[0] + local_mult_q15(h_t, temp[1], temp[0], 15, cell->units); + // h = h1 + h3 + local_add_q15(temp[2], temp[0], h_t, 0, cell->units); + + // finally, copy and convert state to output + local_q15_to_q7(h_t, cell->out_data, 8, cell->units); + return NN_SUCCESS; +} + + +// Researve for debugging, printing the intermediate variables/data. +#if 0 +// delete after testing completed +static void print_variable_q15(q15_t *data,char*name, int dec_bit, int size) +{ + printf("\n\n"); + printf("%s", name); + for(int i = 0; i < size; i++) + { + if(i%8==0) + printf("\n"); + printf("%f\t", (float) data[i] / (1 << dec_bit)); + } + printf("\n"); +} + +// +nnom_status_t gru_cell_run(nnom_rnn_cell_t* cell) +{ + nnom_layer_t *layer = cell->layer; + nnom_gru_cell_t* c = (nnom_gru_cell_t*) cell; + int act_int_bit = 7 - c->q_dec_z; + // gate data + q15_t* x_z, *x_r, *x_h; + q15_t* recurrent_z, *recurrent_r, *recurrent_h; + q15_t* temp[3]; + + // test + //nnom_memset(cell->in_data, 5 * (1<in->tensor->q_dec[0]), cell->feature_size); + + // bias + q7_t* bias = (q7_t*)c->bias->p_data; + q7_t* recurrent_bias = (q7_t*)c->bias->p_data + cell->units*3; + + // state buffer + q15_t* h_tm1 = (q15_t*)cell->in_state; + q15_t* h_t = (q15_t*)cell->out_state; + + // computing buffer + // low |-- buf0 --|-- buf1 --|-- buf2 --|-- input_q15 --| + q15_t *buf[3]; + buf[0] = (q15_t*)layer->comp->mem->blk; + buf[1] = (q15_t*)layer->comp->mem->blk + cell->units*3; + buf[2] = (q15_t*)layer->comp->mem->blk + cell->units*6; + q15_t *in_q15_buf = (q15_t*)layer->comp->mem->blk + cell->units*9; + + // input q7 cast to q15 + local_q7_to_q15(cell->in_data, in_q15_buf, cell->feature_size); + + // matrix_x = K.dot(cell_inputs, kernel) + bias --> buf0 + #ifdef NNOM_USING_CMSIS_NN + arm_fully_connected_mat_q7_vec_q15_opt + #else + local_fully_connected_mat_q7_vec_q15_opt + #endif + (in_q15_buf, c->weights->p_data, cell->feature_size, + cell->units*3, c->bias_shift + 8, c->oshift_iw, bias, buf[0], NULL); + + // matrix_intter = K.dot(h_tm1, recurrent_kernel) + bias -> buf1 + #ifdef NNOM_USING_CMSIS_NN + arm_fully_connected_mat_q7_vec_q15_opt + #else + local_fully_connected_mat_q7_vec_q15_opt + #endif + (h_tm1, c->recurrent_weights->p_data, cell->units, + cell->units*3, c->bias_shift + 8, c->oshift_hw, recurrent_bias, buf[1], NULL); + + print_variable_q15(in_q15_buf, "input", layer->in->tensor->q_dec[0]+8, cell->feature_size); + print_variable_q15(buf[0], "matrix_x", c->q_dec_z+8, cell->units*3); + print_variable_q15(buf[1], "matrix_recurrent", c->q_dec_z+8, cell->units*3); + + // split to each gate + x_z = buf[0]; + x_r = buf[0] + cell->units; + x_h = buf[0] + cell->units*2; + recurrent_z = buf[1]; + recurrent_r = buf[1] + cell->units; + recurrent_h = buf[1] + cell->units*2; + // buffers + temp[0] = buf[2]; + temp[1] = buf[2] + cell->units; + temp[2] = buf[2] + cell->units*2; + + // z = nn.sigmoid(x_z + recurrent_z) + // 1. z1 = x_z + recurrent_z ---> temp[0] + local_add_q15(x_z, recurrent_z, temp[0], 0, cell->units); + // 2. z = sigmoid(z1) + local_sigmoid_q15(temp[0], cell->units, act_int_bit); + print_variable_q15(temp[0], "z", 15, cell->units); + + // r = nn.sigmoid(x_r + recurrent_r) + // 1. r1 = x_r + recurrent_r ---> temp[1] + local_add_q15(x_r, recurrent_r, temp[1], 0, cell->units); + // 2. r = sigmoid(r1) + local_sigmoid_q15(temp[1], cell->units, act_int_bit); + print_variable_q15(temp[1], "r", 15, cell->units); + + // hh = nn.tanh(x_h + r * recurrent_h) + // 1. hh1 = r * recurrent_h ---> temp[2] + local_mult_q15(temp[1], recurrent_h, temp[2], 15, cell->units); + // 2. hh2 = x_h + h1 ---> temp[1] + local_add_q15(x_h, temp[2], temp[1], 0, cell->units); + // 3. hh = tanh(h2) ---> temp[1] + local_tanh_q15(temp[1], cell->units, act_int_bit); + print_variable_q15(temp[1], "hh", 15, cell->units); + + // h = z * h_tm1 + (1 - z) * hh + // 1. h1 = z*h_tm1 ---> temp[2] + local_mult_q15(temp[0], h_tm1, temp[2], 15, cell->units); + print_variable_q15( temp[2], "h1", 15, cell->units); + // 2. h2 = 1 - z ---> h_t state buff + local_1_minor_z_q15(temp[0], h_t, 15, cell->units); + print_variable_q15( h_t, "h2", 15, cell->units); + // 3. h3 = h2 * hh ---> temp[0] + local_mult_q15(h_t, temp[1], temp[0], 15, cell->units); + print_variable_q15( temp[0], "h3", 15, cell->units); + // h = h1 + h3 + local_add_q15(temp[2], temp[0], h_t, 0, cell->units); + print_variable_q15(h_t, "h", 15, cell->units); + + // finally, copy and convert state to output + local_q15_to_q7(h_t, cell->out_data, 8, cell->units); + return NN_SUCCESS; +} +#endif diff --git a/components/ai/nnom/src/layers/nnom_input.c b/components/ai/nnom/src/layers/nnom_input.c new file mode 100644 index 00000000..f1fc3b9c --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_input.c @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_input.h" + +nnom_layer_t *input_s(const nnom_io_config_t* config) +{ + nnom_io_layer_t *layer; + nnom_layer_io_t *in, *out; + // apply a block memory for all the sub handles. + layer = nnom_mem(sizeof(nnom_io_layer_t) + sizeof(nnom_layer_io_t) * 2); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_io_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_INPUT; + layer->super.run = input_run; + layer->super.build = input_build; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_NULL; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + + /* + // some other layers (Conv, pooling) are not supporting 12 d input, we still expand the 1,2 dimension to 3 + // test -> native support 1,2,3 D input. + layer->super.in->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, config->tensor->num_dim, tensor_get_num_channel(config->tensor)); + tensor_cpy_attr(layer->super.in->tensor, config->tensor); + layer->buf = config->tensor->p_data; + layer->dec_bit = config->tensor->q_dec[0]; + */ + + // set parameters + if(config->tensor->num_dim == 1) // test for 1d input, expend h = 1 + layer->shape = shape(1, 1, config->tensor->dim[0]); + else if (config->tensor->num_dim == 2) // test for 1d input, expend h = 1 + layer->shape = shape(1, config->tensor->dim[0], config->tensor->dim[1]); + else + layer->shape = shape(config->tensor->dim[0], config->tensor->dim[1], config->tensor->dim[2]); + layer->buf = config->tensor->p_data; + layer->dec_bit = config->tensor->q_dec[0]; + + // experimental: fixed input dim to 3 + // input normally dont have a tensor, so we create one to store the initial data. + nnom_shape_data_t dim[3] = {layer->shape.h, layer->shape.w, layer->shape.c}; + layer->super.in->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, 3, tensor_get_num_channel(config->tensor)); + tensor_set_attr_v(layer->super.in->tensor, layer->dec_bit, 0, dim, sizeof(dim)/sizeof(nnom_shape_data_t), 8); + return (nnom_layer_t *)layer; +} + +nnom_layer_t *Input(nnom_3d_shape_t input_shape, void *p_buf) +{ + nnom_io_layer_t *layer; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + layer = nnom_mem(sizeof(nnom_io_layer_t) + sizeof(nnom_layer_io_t) * 2); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_io_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_INPUT; + layer->super.run = input_run; + layer->super.build = input_build; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_NULL; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + + // set parameters + layer->shape = input_shape; + layer->buf = p_buf; + layer->dec_bit = 7; + + // experimental: fixed input dim to 3 + // input normally dont have a tensor, so we create one to store the initial data. + nnom_shape_data_t dim[3] = { input_shape.h, input_shape.w, input_shape.c }; + layer->super.in->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, 3, input_shape.c); + tensor_set_attr_v(layer->super.in->tensor, layer->dec_bit, 0, dim, sizeof(dim)/sizeof(nnom_shape_data_t), 8); + return (nnom_layer_t *)layer; +} + +nnom_status_t input_build(nnom_layer_t* layer) +{ + // the input tensor of inputlayer has assigned previously + + // output tensor + // 1. allocate a new tensor for output + // 2. set the same dim, qfmt to the new tensor. + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, layer->in->tensor->num_dim, tensor_get_num_channel(layer->in->tensor)); + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + + // now this build has passed the input tensors (shapes, formats) to the new tensors. + return NN_SUCCESS; +} + + +nnom_status_t input_run(nnom_layer_t *layer) +{ + nnom_io_layer_t *cl = (nnom_io_layer_t *)layer; +#ifdef NNOM_USING_CHW + if(layer->in->tensor->num_dim == 3) + { + nnom_3d_shape_t shape = {layer->in->tensor->dim[0], layer->in->tensor->dim[1], layer->in->tensor->dim[2]}; + hwc2chw_q7(shape, cl->buf, layer->in->tensor->p_data); + } + else if (layer->in->tensor->num_dim == 2) + { + nnom_3d_shape_t shape = {1, layer->in->tensor->dim[0], layer->in->tensor->dim[1]}; + hwc2chw_q7(shape, cl->buf, layer->in->tensor->p_data); + } + else +#endif + nnom_memcpy(layer->in->tensor->p_data, cl->buf, tensor_size(layer->in->tensor)); + + return NN_SUCCESS; +} diff --git a/components/ai/nnom/src/layers/nnom_lambda.c b/components/ai/nnom/src/layers/nnom_lambda.c new file mode 100644 index 00000000..31e9c7c5 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_lambda.c @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_lambda.h" + +nnom_layer_t *lambda_s(const nnom_lambda_config_t * config) +{ + nnom_lambda_layer_t *cl = (nnom_lambda_layer_t *)Lambda( + config->run_func_name, + config->build_func_name, + config->free_func_name, + config->parameters); + if(cl) + cl->super.config = (void*) config; + return (nnom_layer_t *)cl; +} + +// TODO: extended to multiple IO layer +nnom_layer_t *Lambda(nnom_status_t (*run)(nnom_layer_t *), + nnom_status_t (*build)(nnom_layer_t *), + nnom_status_t (*free)(nnom_layer_t *), + void *parameters) +{ + nnom_lambda_layer_t *layer; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_io_layer_t) + sizeof(nnom_layer_io_t) * 2; + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_lambda_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + + // set buf type. + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + + // set io modules to the layer + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + // layer type + layer->super.type = NNOM_LAMBDA; + + // user parameters + layer->parameters = parameters; + + // free method + layer->super.free = free; + + // output shape method. pass NULL in will use the default outshape method, which set the output shape same as input shape. + if (build == NULL) + layer->super.build = default_build; + else + layer->super.build = build; + // run method. default_run() will simply copy data from input tensor to output tensor. + if(run == NULL) + layer->super.run = default_run; + else + layer->super.run = run; + + return (nnom_layer_t *)layer; +} diff --git a/components/ai/nnom/src/layers/nnom_lstm_cell.c b/components/ai/nnom/src/layers/nnom_lstm_cell.c new file mode 100644 index 00000000..ed4a120b --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_lstm_cell.c @@ -0,0 +1,334 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-08-24 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_lstm_cell.h" + +#ifdef NNOM_USING_CMSIS_NN +#include "arm_math.h" +#include "arm_nnfunctions.h" +#endif + +// LSTM RNN +// unit = output shape +// type of activation +nnom_rnn_cell_t *lstm_cell_s(const nnom_lstm_cell_config_t* config) +{ + nnom_lstm_cell_t *cell; + cell = nnom_mem(sizeof(nnom_lstm_cell_t)); + if (cell == NULL) + return NULL; + // set methods + cell->super.run = lstm_cell_q7_q15_run; + cell->super.build = lstm_cell_q7_q15_build; + cell->super.free = lstm_cell_free; + cell->super.config = (void*) config; + cell->super.units = config->units; + cell->super.type = NNOM_LSTM_CELL; + + // set parameters + cell->bias = config->bias; + cell->weights = config->weights; + cell->recurrent_weights = config->recurrent_weights; + + // q format for intermediate calculation + cell->q_dec_c = config->q_dec_c; + cell->q_dec_h = config->q_dec_h; + cell->q_dec_z = config->q_dec_z; + + return (nnom_rnn_cell_t *)cell; +} + +nnom_status_t lstm_cell_free(nnom_rnn_cell_t* cell) +{ + return NN_SUCCESS; +} + +// keras implementation as below. +/* + def step(cell_inputs, cell_states): + """Step function that will be used by Keras RNN backend.""" + h_tm1 = cell_states[0] # previous memory state + c_tm1 = cell_states[1] # previous carry state + + z = K.dot(cell_inputs, kernel) -> q_iw + z += K.dot(h_tm1, recurrent_kernel) -> q_hw + z = K.bias_add(z, bias) + + z0, z1, z2, z3 = array_ops.split(z, 4, axis=1) + + i = nn.sigmoid(z0) + f = nn.sigmoid(z1) + c = f * c_tm1 + i * nn.tanh(z2) + o = nn.sigmoid(z3) + + h = o * nn.tanh(c) + return h, [h, c] +*/ + + + +// the state buffer and computational buffer shape of the cell +nnom_status_t lstm_cell_q7_q15_build(nnom_rnn_cell_t* cell) +{ + nnom_layer_t *layer = cell->layer; + nnom_lstm_cell_t *c = (nnom_lstm_cell_t *)cell; + + // calculate output shift for the 2 calculation. + // hw = the product of hidden x weight, iw = the product of input x weight + // due to the addition of them, they must have same q format. + // that is -> c->q_dec_z; + + // for the dots in cell: output shift = input_dec + weight_dec - output_dec + c->oshift_hw = c->q_dec_h + c->recurrent_weights->q_dec[0] - c->q_dec_z; + c->oshift_iw = layer->in->tensor->q_dec[0] + c->weights->q_dec[0] - c->q_dec_z; + + // bias shift = bias_dec - out_dec + c->bias_shift = layer->in->tensor->q_dec[0] + c->weights->q_dec[0] - c->bias->q_dec[0]; + + // state size = one timestamp output size. + cell->state_size = cell->units * 2 * 2; // Q15 + + // // comp buffer size: not required + cell->comp_buf_size = cell->units * 12 * 2 + cell->feature_size * 2; //q15 + input q7->q15 buffer. + + // finally, calculate the MAC for info (for each timestamp) + cell->macc = cell->feature_size * cell->units *4 // input: feature * state * 4 gates + + cell->units * cell->units *4 // recurrent, state + + cell->units *10; // output_unit * (5 gate + 3 mult + 2 addition) + + return NN_SUCCESS; +} + +// Q7 input output +// Q7 weights +// Q15 states and intermediate buffer +nnom_status_t lstm_cell_q7_q15_run(nnom_rnn_cell_t* cell) +{ + nnom_layer_t *layer = cell->layer; + nnom_lstm_cell_t* c = (nnom_lstm_cell_t*) cell; + int act_int_bit = 7 - c->q_dec_z; + + // state buffer + // low |-- hidden --|-- carry --| high + q15_t* h_tm1 = (q15_t*)cell->in_state; + q15_t* c_tm1 = (q15_t*)cell->in_state + cell->units; + q15_t* o_state[2]; + o_state[0] = (q15_t*)cell->out_state; + o_state[1] = (q15_t*)cell->out_state + cell->units; + + // computing buffer + // low |-- buf0 --|-- buf1 --|-- buf2 --|-- input q15 --| + q15_t* z[4]; + q15_t *buf0, *buf1, *buf2, *in_q15_buf; + buf0 = (q15_t*)layer->comp->mem->blk; + buf1 = (q15_t*)layer->comp->mem->blk + cell->units*4; + buf2 = (q15_t*)layer->comp->mem->blk + cell->units*8; + in_q15_buf = (q15_t*)layer->comp->mem->blk + cell->units*12; + + // input q7 -> q15 + local_q7_to_q15(cell->in_data, in_q15_buf, cell->feature_size); + + // z1 = K.dot(cell_inputs, kernel) + bias -> buf1 + #ifdef NNOM_USING_CMSIS_NN + arm_fully_connected_mat_q7_vec_q15_opt + #else + local_fully_connected_mat_q7_vec_q15_opt + #endif + (in_q15_buf, c->weights->p_data, cell->feature_size, cell->units*4, c->bias_shift + 8, c->oshift_iw, c->bias->p_data, buf1, NULL); + + // z2 = K.dot(h_tm1, recurrent_kernel) -> buf2 + // --- arm version must use bias, so we have to use local implementation + local_fully_connected_mat_q7_vec_q15_opt(h_tm1, c->recurrent_weights->p_data, + cell->units, cell->units*4, 0, c->oshift_hw, NULL, buf2, NULL); + + // z = z1 + z2 -> buf0 + local_add_q15(buf1, buf2, buf0, 0, cell->units*4); + + // split the data to each gate + z[0] = buf0; + z[1] = buf0 + cell->units; + z[2] = buf0 + cell->units*2; + z[3] = buf0 + cell->units*3; + + // i = nn.sigmoid(z0) + local_sigmoid_q15(z[0], cell->units, act_int_bit); + // f = nn.sigmoid(z1) + local_sigmoid_q15(z[1], cell->units, act_int_bit); + // o = nn.sigmoid(z3) + local_sigmoid_q15(z[3], cell->units, act_int_bit); + + /* c = f * c_tm1 + i * nn.tanh(z2) for the step 1-3. */ + // 1. i * tanh(z2) -> buf1 + local_tanh_q15(z[2], cell->units, act_int_bit); + local_mult_q15(z[0], z[2], buf1, 30 - (c->q_dec_c+8), cell->units); + // 2. f * c_tm1 -> o_state[0] + local_mult_q15(z[1], c_tm1, o_state[0], 15, cell->units); + // 3. c = i*tanh + f*c_tm1 -> o_state[1] ** fill the upper state (carry) + local_add_q15(buf1, o_state[0], o_state[1], 0, cell->units); + + /* h = o * nn.tanh(c) -> o_state[0] for the step 1-2 */ + // 1. tanh(c) -> buf2 --- first copy then activate. + nnom_memcpy(buf2, o_state[1], cell->units*2); + local_tanh_q15(buf2, cell->units, 7 - c->q_dec_c); // this int bit is under 8bit + // 2. h = o*tanh(c) -> o_state[0] ** fill the lower state (memory, hidden) + local_mult_q15(z[3], buf2, o_state[0], 15, cell->units); + + // copy and shift q15 to q7 ** (copy hidden to output) + local_q15_to_q7(o_state[0], cell->out_data, 8, cell->units); + return NN_SUCCESS; +} + + +// researve for debugging, printing the intermediate products and variables +#if 0 +static void print_variable(q7_t* data,char*name, int dec_bit, int size) +{ + printf("\n"); + printf("%s\n", name); + for(int i = 0; i < size; i++) + { + if(i%8==0) + printf("\n"); + printf("%f\t", (float) data[i] / (1 << dec_bit)); + } + printf("\n"); +} + +static void print_variable_q15(q15_t *data,char*name, int dec_bit, int size) +{ + printf("\n\n"); + printf("%s", name); + for(int i = 0; i < size; i++) + { + if(i%8==0) + printf("\n"); + printf("%f\t", (float) data[i] / (1 << dec_bit)); + } + printf("\n"); +} + + +// Q7 input output +// Q7 weights +// Q15 states and intermediate buffer +nnom_status_t lstm_cell_q7_q15_run(nnom_rnn_cell_t* cell) +{ + nnom_layer_t *layer = cell->layer; + nnom_rnn_layer_t* cl = (nnom_rnn_layer_t *) layer; + nnom_lstm_cell_t* c = (nnom_lstm_cell_t*) cell; + int act_int_bit = 7 - c->q_dec_z; + + // test + //nnom_memset(cell->in_data, 32, cell->feature_size); + + // state buffer + // low |-- hidden --|-- carry --| high + q15_t* h_tm1 = (q15_t*)cell->in_state; + q15_t* c_tm1 = (q15_t*)cell->in_state + cell->units; + q15_t* o_state[2]; + o_state[0] = (q15_t*)cell->out_state; + o_state[1] = (q15_t*)cell->out_state + cell->units; + + // computing buffer + // low |-- buf0 --|-- buf1 --|-- buf2 --|-- input q15 --| + q15_t* z[4]; + q15_t *buf0, *buf1, *buf2, *in_q15_buf; + buf0 = (q15_t*)layer->comp->mem->blk; + buf1 = (q15_t*)layer->comp->mem->blk + cell->units*4; + buf2 = (q15_t*)layer->comp->mem->blk + cell->units*8; + in_q15_buf = (q15_t*)layer->comp->mem->blk + cell->units*12; + + // input q7 -> q15 + //local_q7_to_q15_no_shift(cell->in_data, in_q15_buf, cell->feature_size); + local_q7_to_q15(cell->in_data, in_q15_buf, cell->feature_size); + print_variable_q15(in_q15_buf, "input", layer->in->tensor->q_dec[0] + 8, cell->feature_size); + print_variable_q15(h_tm1, "h_tml", 15, cell->units); + print_variable_q15(c_tm1, "c_tml", c->q_dec_c + 8, cell->units); + + // z1 = K.dot(cell_inputs, kernel) + bias -> buf1 + #ifdef NNOM_USING_CMSIS_NN + arm_fully_connected_mat_q7_vec_q15_opt + #else + local_fully_connected_mat_q7_vec_q15_opt + #endif + (in_q15_buf, c->weights->p_data, cell->feature_size, cell->units*4, c->bias_shift + 8, c->oshift_iw, c->bias->p_data, buf1, NULL); + + // z2 = K.dot(h_tm1, recurrent_kernel) -> buf2 + // arm version must use bias, so we have to use local implementation + local_fully_connected_mat_q7_vec_q15_opt(h_tm1, c->recurrent_weights->p_data, + cell->units, cell->units*4, 0, c->oshift_hw, NULL, buf2, NULL); + + // z = z1 + z2 -> buf0 + local_add_q15(buf1, buf2, buf0, 0, cell->units*4); + + print_variable_q15(buf0, "z", c->q_dec_z + 8, cell->units*4); + print_variable_q15(buf1, "z1", c->q_dec_z + 8, cell->units*4); + print_variable_q15(buf2, "z2", c->q_dec_z + 8, cell->units*4); + + // split the data to each gate + z[0] = buf0; + z[1] = buf0 + cell->units; + z[2] = buf0 + cell->units*2; + z[3] = buf0 + cell->units*3; + + // i = nn.sigmoid(z0) + local_sigmoid_q15(z[0], cell->units, act_int_bit); + // f = nn.sigmoid(z1) + local_sigmoid_q15(z[1], cell->units, act_int_bit); + // o = nn.sigmoid(z3) + local_sigmoid_q15(z[3], cell->units, act_int_bit); + + print_variable_q15(z[0], "z[0] - i", 15, cell->units); + print_variable_q15(z[1], "z[1] - f", 15, cell->units); + print_variable_q15(z[3], "z[3] - o", 15, cell->units); + + /* c = f * c_tm1 + i * nn.tanh(z2) for the step 1-3. */ + // 1. i * tanh(z2) -> buf1 + local_tanh_q15(z[2], cell->units, act_int_bit); + print_variable_q15(z[2], "z[2] - ?", 15, cell->units); + + local_mult_q15(z[0], z[2], buf1, 30 - (c->q_dec_c+8), cell->units); //q0.15 * q0.15 >> (shift) = (q_c + 8) // i am not very sure + print_variable_q15(buf1, "c2: i * tanh(z2) ", c->q_dec_c+8, cell->units); + + // 2. f * c_tm1 -> o_state[0] + local_mult_q15(z[1], c_tm1, o_state[0], 15, cell->units); + print_variable_q15(o_state[0], "c1: f * c_tm1", c->q_dec_c+8, cell->units); + + // 3. c = i*tanh + f*c_tm1 -> o_state[1] ** fill the upper state (carry) + local_add_q15(buf1, o_state[0], o_state[1], 0, cell->units); + print_variable_q15(o_state[1], "c = c1+c2", c->q_dec_c+8, cell->units); + + /* h = o * nn.tanh(c) -> o_state[0] for the step 1-2 */ + // 1. tanh(c) -> buf2 --- first copy then activate. + nnom_memcpy(buf2, o_state[1], cell->units*2); + local_tanh_q15(buf2, cell->units, 7 - c->q_dec_c); // this int bit is under 8bit + print_variable_q15(buf2, "tanh(c)", 15, cell->units); + + // 2. h = o*tanh(c) -> o_state[0] ** fill the lower state (memory, hidden) + local_mult_q15(z[3], buf2, o_state[0], 15, cell->units); + print_variable_q15(o_state[0], "h = o*tanh(c)", 15, cell->units); + + // copy and shift q15 to q7 ** (copy hidden to output) + local_q15_to_q7(o_state[0], cell->out_data, 8, cell->units); + + print_variable(cell->out_data, "q7 output)", 7, cell->units); + + return NN_SUCCESS; +} +#endif diff --git a/components/ai/nnom/src/layers/nnom_matrix.c b/components/ai/nnom/src/layers/nnom_matrix.c new file mode 100644 index 00000000..e011ecc0 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_matrix.c @@ -0,0 +1,239 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_matrix.h" + +// TODO, completely change this file to local version +#ifdef NNOM_USING_CMSIS_NN +#include "arm_math.h" +#include "arm_nnfunctions.h" +#endif + +nnom_status_t matrix_build(nnom_layer_t *layer); + +nnom_layer_t *add_s(const nnom_matrix_config_t * config) +{ + nnom_matrix_layer_t *cl = (nnom_matrix_layer_t *) Add(config->output_shift); + if(cl) + cl->super.config = (void*) config; + return (nnom_layer_t *)cl; +} + +nnom_layer_t *sub_s(const nnom_matrix_config_t * config) +{ + nnom_matrix_layer_t *cl = (nnom_matrix_layer_t *) Sub(config->output_shift); + if(cl) + cl->super.config = (void*) config; + return (nnom_layer_t *)cl; +} + +nnom_layer_t *mult_s(const nnom_matrix_config_t * config) +{ + nnom_matrix_layer_t *cl = (nnom_matrix_layer_t *) Mult(config->output_shift); + if(cl) + cl->super.config = (void*) config; + return (nnom_layer_t *)cl; +} + +nnom_layer_t *Add(int16_t oshift) +{ + nnom_matrix_layer_t *cl = (nnom_matrix_layer_t *)_same_shape_matrix_layer(); + if (cl == NULL) + return NULL; + // set type in layer parent + cl->super.type = NNOM_ADD; + cl->super.run = add_run; + cl->oshift = oshift; + return (nnom_layer_t *)cl; +} + +nnom_layer_t *Sub(int16_t oshift) +{ + nnom_matrix_layer_t *cl = (nnom_matrix_layer_t *)_same_shape_matrix_layer(); + if (cl == NULL) + return NULL; + // set type in layer parent + cl->super.type = NNOM_SUB; + cl->super.run = sub_run; + cl->oshift = oshift; + return (nnom_layer_t *)cl; +} + +nnom_layer_t *Mult(int16_t oshift) +{ + nnom_matrix_layer_t *cl = (nnom_matrix_layer_t *)_same_shape_matrix_layer(); + if (cl == NULL) + return NULL; + // set type in layer parent + cl->super.type = NNOM_MULT; + cl->super.run = mult_run; + cl->oshift = oshift; + return (nnom_layer_t *)cl; +} + +// init a base layer instance with same shape 1 in 1 out. More IO can be added later +// mainly used by matrix calculation (add, mult, sub) +nnom_layer_t *_same_shape_matrix_layer() +{ + nnom_matrix_layer_t *layer; + nnom_layer_io_t *in, *out; + //nnom_buf_t *comp; + size_t mem_size; + + // apply a block memory for all the sub handles. + mem_size = sizeof(nnom_matrix_layer_t) + sizeof(nnom_layer_io_t) * 2; + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_matrix_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + //comp = (void *)((uint8_t*)out + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.build = matrix_build; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + //comp->type = NNOM_TENSOR_BUF_TEMP; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + //layer->super.comp = comp; + return (nnom_layer_t*)layer; +} + +nnom_status_t matrix_build(nnom_layer_t *layer) +{ + // get the last layer's output as input shape (if more than one) + nnom_layer_io_t *in = layer->in; + while(in) + { + in->tensor = in->hook.io->tensor; + in = in->aux; + } + // output tensor + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR,layer->in->tensor->num_dim, tensor_get_num_channel(layer->in->tensor)); + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + + // see if the activation will change the q format + if(layer->actail) + layer->out->tensor->q_dec[0] = act_get_dec_bit(layer->actail->type, layer->out->tensor->q_dec[0]); + + // now this build has passed the input tensors (shapes, formats) to the new tensors. + return NN_SUCCESS; +} + + +nnom_status_t add_run(nnom_layer_t *layer) +{ + nnom_matrix_layer_t* cl = (nnom_matrix_layer_t*)layer; + nnom_layer_io_t *in = layer->in;; + size_t t_size = tensor_size(layer->out->tensor); + int32_t oshift = cl->oshift; + size_t num_input = nnom_io_length(layer->in); + q7_t *input_mem_blk[MAX_INPUT_LAYER]; + + // if there is only 2 matrix + if(num_input == 2) + { + #ifdef NNOM_USING_CMSIS_NN + if(oshift == 0) + arm_add_q7(layer->in->tensor->p_data, layer->in->aux->tensor->p_data, layer->out->tensor->p_data, t_size); + else + #endif + local_add_q7(layer->in->tensor->p_data, layer->in->aux->tensor->p_data, layer->out->tensor->p_data, oshift, t_size); + } + else + { + for(int i = 0; i < num_input; i++) + { + input_mem_blk[i] = in->tensor->p_data; + in = in->aux; + } + local_multiple_add_q7(layer->out->tensor->p_data, oshift, t_size, num_input, input_mem_blk); + } + + return NN_SUCCESS; +} + +nnom_status_t sub_run(nnom_layer_t *layer) +{ + nnom_matrix_layer_t* cl = (nnom_matrix_layer_t*)layer; + nnom_layer_io_t *in = layer->in; + size_t t_size = tensor_size(layer->out->tensor); + int32_t oshift = cl->oshift; + size_t num_input = nnom_io_length(layer->in); + q7_t *input_mem_blk[MAX_INPUT_LAYER]; + + // if there is only 2 matrix + if(num_input == 2) + { + // the first 2 matrix + #ifdef NNOM_USING_CMSIS_NN + if(oshift == 0) + arm_sub_q7(layer->in->tensor->p_data, layer->in->aux->tensor->p_data, layer->out->tensor->p_data, t_size); + else + #endif + local_sub_q7(layer->in->tensor->p_data, layer->in->aux->tensor->p_data, layer->out->tensor->p_data, oshift, t_size); + } + else + { + for(int i = 0; i < num_input; i++) + { + input_mem_blk[i] = in->tensor->p_data; + in = in->aux; + } + local_multiple_sub_q7(layer->out->tensor->p_data, oshift, t_size, num_input, input_mem_blk); + } + return NN_SUCCESS; +} + +nnom_status_t mult_run(nnom_layer_t *layer) +{ + nnom_matrix_layer_t* cl = (nnom_matrix_layer_t*)layer; + nnom_layer_io_t *in = layer->in; + size_t t_size = tensor_size(layer->out->tensor); + int32_t oshift = cl->oshift; + size_t num_input = nnom_io_length(layer->in); + q7_t *input_mem_blk[MAX_INPUT_LAYER]; + + // if there is only 2 matrix + if(num_input == 2) + { + // the first 2 matrix + #ifdef NNOM_USING_CMSIS_NN + if(oshift == 0) + arm_mult_q7(layer->in->tensor->p_data, layer->in->aux->tensor->p_data, layer->out->tensor->p_data, t_size); + else + #endif + local_mult_q7(layer->in->tensor->p_data, layer->in->aux->tensor->p_data, layer->out->tensor->p_data, oshift, t_size); + } + else + { + for(int i = 0; i < num_input; i++) + { + input_mem_blk[i] = in->tensor->p_data; + in = in->aux; + } + local_multiple_mult_q7(layer->out->tensor->p_data, oshift, t_size, num_input, input_mem_blk); + } + return NN_SUCCESS; +} diff --git a/components/ai/nnom/src/layers/nnom_maxpool.c b/components/ai/nnom/src/layers/nnom_maxpool.c new file mode 100644 index 00000000..fe904bad --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_maxpool.c @@ -0,0 +1,191 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_maxpool.h" + +#ifdef NNOM_USING_CMSIS_NN +#include "arm_math.h" +#include "arm_nnfunctions.h" +#endif + +nnom_layer_t *maxpool_s(const nnom_pool_config_t * config) +{ + nnom_layer_t *layer; + + // test, to accomodate 1d and 2d input + if(config->num_dim == 1) + { + layer = MaxPool(kernel(1, config->kernel_size[0]), + stride(1, config->stride_size[0]), + config->padding_type); + } + else + { + layer = MaxPool(kernel(config->kernel_size[0], config->kernel_size[1]), + stride(config->stride_size[0], config->stride_size[1]), + config->padding_type); + } + + if(layer) + layer->config = (void*) config; + return layer; +} + +nnom_layer_t *MaxPool(nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_padding_t pad_type) +{ + nnom_maxpool_layer_t *layer; + nnom_buf_t *comp; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_maxpool_layer_t) + sizeof(nnom_layer_io_t) * 2 + sizeof(nnom_buf_t); + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_maxpool_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + comp = (void *)((uint8_t*)out + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_MAXPOOL; + layer->super.run = maxpool_run; + layer->super.build = maxpool_build; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + comp->type = NNOM_TENSOR_BUF_TEMP; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + layer->super.comp = comp; + + // set parameters + layer->kernel = k; + layer->stride = s; + layer->padding_type = pad_type; + + // padding + if (layer->padding_type == PADDING_SAME) + { + layer->pad.h = (k.h - 1) / 2; + layer->pad.w = (k.w - 1) / 2; + layer->pad.c = 1; // no meaning + } + else + { + layer->pad.h = 0; + layer->pad.w = 0; + layer->pad.c = 0; + } + return (nnom_layer_t *)layer; +} + +nnom_status_t maxpool_build(nnom_layer_t *layer) +{ + nnom_maxpool_layer_t *cl = (nnom_maxpool_layer_t *)layer; + + // get the tensor from last layer's output + layer->in->tensor = layer->in->hook.io->tensor; + + // create new tensor for output + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, layer->in->tensor->num_dim, tensor_get_num_channel(layer->in->tensor)); + // copy then change later. + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + + // see if the activation will change the q format + if(layer->actail) + layer->out->tensor->q_dec[0] = act_get_dec_bit(layer->actail->type, layer->out->tensor->q_dec[0]); + + // now we set up the tensor shape, always HWC format + if (cl->padding_type == PADDING_SAME) + { + layer->out->tensor->dim[0] = NN_CEILIF(layer->in->tensor->dim[0], cl->stride.h); + layer->out->tensor->dim[1] = NN_CEILIF(layer->in->tensor->dim[1], cl->stride.w); + layer->out->tensor->dim[2] = layer->in->tensor->dim[2]; // channel stays the same + } + else + { + layer->out->tensor->dim[0] = NN_CEILIF(layer->in->tensor->dim[0] - cl->kernel.h + 1, cl->stride.h); + layer->out->tensor->dim[1] = NN_CEILIF(layer->in->tensor->dim[1] - cl->kernel.w + 1, cl->stride.w); + layer->out->tensor->dim[2] = layer->in->tensor->dim[2]; + } + + return NN_SUCCESS; +} + +nnom_status_t maxpool_run(nnom_layer_t *layer) +{ + nnom_maxpool_layer_t *cl = (nnom_maxpool_layer_t *)(layer); + + uint16_t out_x, out_y; + + // if global pooling + if(layer->out->tensor->num_dim == 1) + { + out_x = 1; out_y = 1; + } + else // normal pooling. + { + out_x = layer->out->tensor->dim[1]; //W + out_y = layer->out->tensor->dim[0]; //h + } + +#ifdef NNOM_USING_CHW + local_maxpool_q7_CHW(layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->kernel.w, cl->kernel.h, + cl->pad.w, cl->pad.h, + cl->stride.w, cl->stride.h, + out_x, out_y, + NULL, + layer->out->tensor->p_data); +#else //end of CHW + // HWC + #ifdef NNOM_USING_CMSIS_NN + // 2D, square + if (layer->in->tensor->dim[1] == layer->in->tensor->dim[0] && + layer->out->tensor->dim[1] == layer->out->tensor->dim[0]) + { + arm_maxpool_q7_HWC( + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[2], + cl->kernel.w, cl->pad.w, cl->stride.w, + layer->out->tensor->dim[1], + NULL, + layer->out->tensor->p_data); + } + // none square 2D, or 1D + else + #endif + { + // CMSIS-NN does not support none-square pooling, we have to use local implementation + local_maxpool_q7_HWC(layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->kernel.w, cl->kernel.h, + cl->pad.w, cl->pad.h, + cl->stride.w, cl->stride.h, + out_x, out_y, + NULL, + layer->out->tensor->p_data); + } +#endif // CHW/HWC + return NN_SUCCESS; +} diff --git a/components/ai/nnom/src/layers/nnom_output.c b/components/ai/nnom/src/layers/nnom_output.c new file mode 100644 index 00000000..bed1c89c --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_output.c @@ -0,0 +1,54 @@ + +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_output.h" + +nnom_layer_t *output_s(const nnom_io_config_t* config) +{ + nnom_layer_t *layer = input_s(config); + if(layer) + { + layer->config = (void*) config; + layer->type = NNOM_OUTPUT; + layer->run = output_run; + layer->build = default_build; + } + return layer; +} + +nnom_layer_t *Output(nnom_3d_shape_t output_shape, void *p_buf) +{ + // they are acturally the same.. expect the type defined + nnom_layer_t *layer = Input(output_shape, p_buf); + if (layer != NULL) + { + layer->type = NNOM_OUTPUT; + layer->run = output_run; + layer->build = default_build; + } + return layer; +} + +nnom_status_t output_run(nnom_layer_t *layer) +{ + nnom_io_layer_t *cl = (nnom_io_layer_t *)layer; + nnom_memcpy(cl->buf, layer->in->tensor->p_data, tensor_size(layer->out->tensor)); // in->memory -> user memory + return NN_SUCCESS; +} diff --git a/components/ai/nnom/src/layers/nnom_rnn.c b/components/ai/nnom/src/layers/nnom_rnn.c new file mode 100644 index 00000000..6fe9662e --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_rnn.c @@ -0,0 +1,191 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_rnn.h" + +nnom_status_t rnn_build(nnom_layer_t *layer); +nnom_status_t rnn_run(nnom_layer_t *layer); +nnom_status_t rnn_free(nnom_layer_t* layer); + +// RNN +nnom_layer_t *rnn_s(nnom_rnn_cell_t *cell, const nnom_rnn_config_t* config) +{ + nnom_rnn_layer_t *layer; + nnom_buf_t *comp; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_rnn_layer_t) + sizeof(nnom_layer_io_t) * 2 + sizeof(nnom_buf_t); + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_rnn_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + comp = (void *)((uint8_t*)out + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_RNN; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + comp->type = NNOM_TENSOR_BUF_TEMP; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + layer->super.comp = comp; + // set run and outshape methods + layer->super.run = rnn_run; + layer->super.build = rnn_build; + layer->super.free = rnn_free; + + // rnn parameters. + layer->return_sequence = config->return_sequence; + layer->stateful = config->stateful; + layer->go_backwards = config->go_backwards; + layer->super.config = (void*)config; + layer->cell = cell; + + // set this layer to the cell + layer->cell->layer = (nnom_layer_t *)layer; + + return (nnom_layer_t *)layer; +} + +nnom_status_t rnn_free(nnom_layer_t* layer) +{ + nnom_rnn_layer_t* cl = (nnom_rnn_layer_t*)layer; + // free cell + if(cl->cell->free) + cl->cell->free(cl->cell); + + // free state buffer + nnom_free(cl->state_buf); + + return NN_SUCCESS; +} + +nnom_status_t rnn_build(nnom_layer_t* layer) +{ + nnom_rnn_layer_t *cl = (nnom_rnn_layer_t *)layer; + + // get the tensor from last layer's output + layer->in->tensor = layer->in->hook.io->tensor; + + // timestamp size + cl->timestamp_size = layer->in->tensor->num_dim > 2 ? layer->in->tensor->dim[1] : layer->in->tensor->dim[0]; + + if(cl->return_sequence) + { + // create new tensor for the output + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, 2, 0); + // shape: timestamp, units + layer->out->tensor->dim[0] = cl->timestamp_size; + layer->out->tensor->dim[1] = cl->cell->units; + } + else + { + // create new tensor for the output + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, 1, 0); + // shape: timestamp, units + layer->out->tensor->dim[0] = cl->cell->units; + } + + // output q format - the output of the available activations are both q0.7. + layer->out->tensor->q_dec[0] = layer->in->tensor->bitwidth==16? 15: 7; + layer->out->tensor->bitwidth = layer->in->tensor->bitwidth; + // see if the activation will change the q format + if(layer->actail) + layer->out->tensor->q_dec[0] = act_get_dec_bit(layer->actail->type, layer->out->tensor->q_dec[0]); + + // get feature size from input tensor + cl->cell->feature_size = tensor_get_num_channel(layer->in->tensor); // vector (feature) size + + // call cell builder to build the cell + cl->cell->build(cl->cell); + + // get the size of computation buffer? + cl->super.comp->size = cl->cell->comp_buf_size; // size of intermediate buffer required by the cell. + cl->state_buf = nnom_mem(cl->cell->state_size * 2); // allocate state buf for upper/lower state buffer. + if(!cl->state_buf) + return NN_NO_MEMORY; + + // get the computational cost provided by Cell + layer->stat.macc = cl->cell->macc * cl->timestamp_size; + return NN_SUCCESS; +} + +nnom_status_t rnn_run(nnom_layer_t* layer) +{ + nnom_status_t result; + nnom_rnn_layer_t* cl = (nnom_rnn_layer_t*)(layer); + size_t timestamps_size = layer->in->tensor->dim[layer->in->tensor->num_dim-2]; + size_t feature_size = tensor_get_num_channel(layer->in->tensor); // feature size = last dimension. + size_t state_size = cl->cell->state_size; + size_t output_growth; + void* upper_state = (q7_t*)cl->state_buf + state_size; + void* lower_state = (q7_t*)cl->state_buf; + + // reset state buffer if not in stateful + if (!cl->stateful) + nnom_memset(cl->state_buf, 0, state_size * 2); + + // set output data + output_growth = cl->return_sequence ? cl->cell->units : 0; + + // run timestamp by timestamp + for (uint32_t round = 0; round < timestamps_size; round++) + { + if(cl->go_backwards) + { + // set input data + cl->cell->in_data = (q7_t*)layer->in->tensor->p_data + feature_size*(timestamps_size - 1 - round); + // set output data + cl->cell->out_data = (q7_t*)layer->out->tensor->p_data + output_growth*(timestamps_size - 1 - round); + } + else + { + // set input data + cl->cell->in_data = (q7_t*)layer->in->tensor->p_data + feature_size*round; + // set output data + cl->cell->out_data = (q7_t*)layer->out->tensor->p_data + output_growth*round; + } + + // switch upper/lower state buffer + if(cl->cell->in_state != lower_state) + { + cl->cell->in_state = lower_state; + cl->cell->out_state = upper_state; + } + else + { + cl->cell->in_state = upper_state; + cl->cell->out_state = lower_state; + } + + // run it + result = cl->cell->run(cl->cell); + if(result != NN_SUCCESS) + return result; + } + + return NN_SUCCESS; +} + diff --git a/components/ai/nnom/src/layers/nnom_simple_cell.c b/components/ai/nnom/src/layers/nnom_simple_cell.c new file mode 100644 index 00000000..b61acbef --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_simple_cell.c @@ -0,0 +1,142 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-08-21 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_simple_cell.h" + +#ifdef NNOM_USING_CMSIS_NN +#include "arm_math.h" +#include "arm_nnfunctions.h" +#endif + +// Simple RNN +// unit = output shape +// type of activation +nnom_rnn_cell_t *simple_cell_s(const nnom_simple_cell_config_t* config) +{ + nnom_simple_cell_t *cell; + cell = nnom_mem(sizeof(nnom_simple_cell_t)); + if (cell == NULL) + return NULL; + // set methods + cell->super.run = simple_cell_run; + cell->super.build = simple_cell_build; + cell->super.free = simple_cell_free; + cell->super.config = (void*) config; + cell->super.units = config->units; + cell->super.type = NNOM_SIMPLE_CELL; + + // set parameters + cell->bias = config->bias; + cell->weights = config->weights; + cell->recurrent_weights = config->recurrent_weights; + cell->act_type = config->act_type; + // q format for intermediate products + cell->q_dec_iw = config->q_dec_iw; + cell->q_dec_hw = config->q_dec_hw; + cell->q_dec_h = config->q_dec_h; + + return (nnom_rnn_cell_t *)cell; +} + +nnom_status_t simple_cell_free(nnom_rnn_cell_t* cell) +{ + return NN_SUCCESS; +} + +// the state buffer and computational buffer shape of the cell +nnom_status_t simple_cell_build(nnom_rnn_cell_t* cell) +{ + nnom_layer_t *layer = cell->layer; + nnom_simple_cell_t *c = (nnom_simple_cell_t *)cell; + nnom_simple_cell_config_t *config = (nnom_simple_cell_config_t *)cell->config; + int q_hw_iw; + + // activation, check if activation is supported + if(config->act_type != ACT_SIGMOID && config->act_type != ACT_TANH) + return NN_ARGUMENT_ERROR; + + // calculate output shift for the 2 calculation. + // hw = the product of hidden x weight, iw = the product of input x weight + // due to the addition of them, they must have same q format. + q_hw_iw = MIN(c->q_dec_hw, c->q_dec_iw); + + // for the 2 dot in cell: output shift = input_dec + weight_dec - output_dec + c->oshift_hw = c->q_dec_h + c->recurrent_weights->q_dec[0] - q_hw_iw; + c->oshift_iw = layer->in->tensor->q_dec[0] + c->weights->q_dec[0] - q_hw_iw; + + // bias shift = bias_dec - out_dec + c->bias_shift = layer->in->tensor->q_dec[0] + c->weights->q_dec[0] - c->bias->q_dec[0]; + + // state size = one timestamp output size. + cell->state_size = cell->units; + + // comp buffer size: not required + cell->comp_buf_size = 0; + + // finally, calculate the MAC for info + cell->macc = cell->feature_size * cell->units // input: feature * state + + cell->units * cell->units; // recurrent, state * output_unit + + return NN_SUCCESS; +} + +// This Simple Cell replicate the Keras's SimpleCell as blow +/* + def call(self, inputs, states, training=None): + prev_output = states[0] if nest.is_sequence(states) else states + + h = K.dot(inputs, self.kernel) + h = K.bias_add(h, self.bias) + + h2 = K.dot(prev_output, self.recurrent_kernel) + output = h + H2 + output = self.activation(output) + + new_state = [output] if nest.is_sequence(states) else output + return output, new_state +*/ + +nnom_status_t simple_cell_run(nnom_rnn_cell_t* cell) +{ + nnom_simple_cell_t* c = (nnom_simple_cell_t*) cell; + int act_int_bit = 7 - MIN(c->q_dec_hw, c->q_dec_iw); + + // in_state x recurrent_weight -> h2 (output buf) + local_dot_q7_opt(cell->in_state, c->recurrent_weights->p_data, cell->units, cell->units, c->oshift_hw, cell->out_data); + // (input x weight) + bias -> h (in_state buf) + local_fully_connected_q7_opt(cell->in_data, c->weights->p_data, + cell->feature_size, cell->units, c->bias_shift, c->oshift_iw, c->bias->p_data, cell->in_state, NULL); + // h + h2 -> (out_state buf) + local_add_q7(cell->in_state, cell->out_data, cell->out_state, 0, cell->units); + + // active(out_state buf) + if(c->act_type == ACT_TANH) + local_tanh_q7(cell->out_state, cell->units, act_int_bit); + //local_hard_tanh_q7(cell->out_state, cell->units, act_int_bit); + else + local_sigmoid_q7(cell->out_state, cell->units, act_int_bit); + //local_hard_sigmoid_q7(cell->out_state, cell->units, act_int_bit); + + // (out_state buf) --copy--> (output buf) + nnom_memcpy(cell->out_data, cell->out_state, cell->units); + + return NN_SUCCESS; +} + + diff --git a/components/ai/nnom/src/layers/nnom_softmax.c b/components/ai/nnom/src/layers/nnom_softmax.c new file mode 100644 index 00000000..04b009b3 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_softmax.c @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_softmax.h" + +#ifdef NNOM_USING_CMSIS_NN +#include "arm_math.h" +#include "arm_nnfunctions.h" +#endif + +nnom_layer_t *softmax_s(const nnom_softmax_config_t * config) +{ + nnom_layer_t * layer = Softmax(); + if(layer) + layer->config = (void*) config; + return layer; +} + +nnom_layer_t *Softmax(void) +{ + nnom_layer_t *layer; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_layer_t) + sizeof(nnom_layer_io_t) * 2; + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->type = NNOM_SOFTMAX; + layer->run = softmax_run; + layer->build = softmax_build; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + // put in & out on the layer. + layer->in = io_init(layer, in); + layer->out = io_init(layer, out); + + return layer; +} + +nnom_status_t softmax_build(nnom_layer_t *layer) +{ + // get the last layer's output as input shape + layer->in->tensor = layer->in->hook.io->tensor; + // output tensor + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, layer->in->tensor->num_dim, tensor_get_num_channel(layer->in->tensor)); + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + // softmax has fixed output dec bit + layer->out->tensor->q_dec[0] = 7; + return NN_SUCCESS; +} + +nnom_status_t softmax_run(nnom_layer_t *layer) +{ + // looks like the new version cause accuracy drop quite a lot. +// #ifdef NNOM_USING_CMSIS_NN +// // temporary fixed for mutiple dimension input. +// arm_softmax_q7(layer->in->tensor->p_data, tensor_size(layer->out->tensor), layer->out->tensor->p_data); +// #else + local_softmax_q7(layer->in->tensor->p_data, tensor_size(layer->out->tensor), layer->out->tensor->p_data); + //#endif + return NN_SUCCESS; +} diff --git a/components/ai/nnom/src/layers/nnom_sumpool.c b/components/ai/nnom/src/layers/nnom_sumpool.c new file mode 100644 index 00000000..82de147c --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_sumpool.c @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_sumpool.h" + +nnom_layer_t *sumpool_s(const nnom_pool_config_t * config) +{ + nnom_sumpool_layer_t *cl; + if(config->num_dim == 1) + { + cl = (nnom_sumpool_layer_t *)SumPool(kernel(1, config->kernel_size[0]), + stride(1, config->stride_size[0]), + config->padding_type); + } + else + { + cl = (nnom_sumpool_layer_t *)SumPool(kernel(config->kernel_size[0], config->kernel_size[1]), + stride(config->stride_size[0], config->stride_size[1]), + config->padding_type); + } + if(cl) + { + cl->super.config = (void*) config; + cl->output_shift = config->output_shift; // no idea if we need it + } + return (nnom_layer_t *)cl; +} + + +nnom_layer_t *SumPool(nnom_3d_shape_t k, nnom_3d_shape_t s, nnom_padding_t pad_type) +{ + nnom_layer_t *layer = MaxPool(k, s, pad_type); + + if (layer != NULL) + { + layer->type = NNOM_SUMPOOL; + layer->run = sumpool_run; + layer->build = sumpool_build; + } + return (nnom_layer_t *)layer; +} + + +nnom_status_t sumpool_build(nnom_layer_t *layer) +{ + // avg pooling share the same output shape, stride, padding setting. + maxpool_build(layer); + + // however, avg pooling require a computational buffer. + layer->comp->size = 4 * tensor_size(layer->out->tensor); + + return NN_SUCCESS; +} + + +// sum pooling, dynamic change Q format, must be used in the last layer before softmax in current version +nnom_status_t sumpool_run(nnom_layer_t *layer) +{ + nnom_sumpool_layer_t *cl = (nnom_sumpool_layer_t *)(layer); + uint16_t out_x, out_y; + + // if global pooling + if(layer->out->tensor->num_dim == 1) + { + out_x = 1; out_y = 1; + } + else // normal pooling. + { + out_x = layer->out->tensor->dim[1]; //W + out_y = layer->out->tensor->dim[0]; //h + } + +#ifdef NNOM_USING_CHW + local_sumpool_q7_CHW( +#else + local_sumpool_q7_HWC( +#endif + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->kernel.w, cl->kernel.h, + cl->pad.w, cl->pad.h, + cl->stride.w, cl->stride.h, + out_x, out_y, + layer->comp->mem->blk, + layer->out->tensor->p_data); + + return NN_SUCCESS; +} diff --git a/components/ai/nnom/src/layers/nnom_upsample.c b/components/ai/nnom/src/layers/nnom_upsample.c new file mode 100644 index 00000000..96472a5a --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_upsample.c @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_upsample.h" + +nnom_layer_t *upsample_s(const nnom_upsample_config_t *config) +{ + nnom_layer_t *layer = UpSample(kernel(config->kernel[0], config->kernel[1])); + if(layer) + layer->config = (void*) config; + return layer; +} + +// up sampling layer +nnom_layer_t *UpSample(nnom_3d_shape_t kernel) +{ + nnom_upsample_layer_t *layer; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_upsample_layer_t) + sizeof(nnom_layer_io_t) * 2; + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_upsample_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_UPSAMPLE; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + // set run and outshape methods + layer->super.run = upsample_run; + layer->super.build = upsample_build; + + // set parameters + layer->kernel = kernel; + + return (nnom_layer_t*)layer; +} + +nnom_status_t upsample_build(nnom_layer_t *layer) +{ + nnom_upsample_layer_t* cl = (nnom_upsample_layer_t*)layer; + + // get the last layer's output as input shape + layer->in->tensor = layer->in->hook.io->tensor; + // output tensor + // 1. allocate a new tensor for output + // 2. set the same dim, qfmt to the new tensor. + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, layer->in->tensor->num_dim, tensor_get_num_channel(layer->in->tensor)); + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + + // see if the activation will change the q format + if(layer->actail) + layer->out->tensor->q_dec[0] = act_get_dec_bit(layer->actail->type, layer->out->tensor->q_dec[0]); + + // enlarge w and h, c stay the same. + layer->out->tensor->dim[0] = layer->in->tensor->dim[0] * cl->kernel.h; + layer->out->tensor->dim[1] = layer->in->tensor->dim[1] * cl->kernel.w; + + return NN_SUCCESS; +} + +// up sampling, or so called unpooling +nnom_status_t upsample_run(nnom_layer_t *layer) +{ + nnom_upsample_layer_t *cl = (nnom_upsample_layer_t *)(layer); + +#ifdef NNOM_USING_CHW + local_up_sampling_q7_CHW( +#else + local_up_sampling_q7_HWC( +#endif + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->kernel.w, cl->kernel.h, + layer->out->tensor->dim[1], layer->out->tensor->dim[0], + NULL, + layer->out->tensor->p_data); + return NN_SUCCESS; +} diff --git a/components/ai/nnom/src/layers/nnom_zero_padding.c b/components/ai/nnom/src/layers/nnom_zero_padding.c new file mode 100644 index 00000000..2352e614 --- /dev/null +++ b/components/ai/nnom/src/layers/nnom_zero_padding.c @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2018-2020 + * Jianjia Ma + * majianjia@live.com + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-07-23 Jianjia Ma The first version + */ + +#include +#include +#include + +#include "nnom.h" +#include "nnom_local.h" +#include "nnom_layers.h" +#include "layers/nnom_zero_padding.h" + +nnom_layer_t * zeropadding_s(const nnom_zero_padding_config_t* config) +{ + nnom_layer_t *layer = ZeroPadding(config->pad); + if(layer) + layer->config = (void*) config; + return (nnom_layer_t*)layer; +} + +// Zero padding layer +nnom_layer_t *ZeroPadding(nnom_border_t pad) +{ + nnom_zero_padding_layer_t *layer; + nnom_layer_io_t *in, *out; + + // apply a block memory for all the sub handles. + size_t mem_size = sizeof(nnom_zero_padding_layer_t) + sizeof(nnom_layer_io_t) * 2; + layer = nnom_mem(mem_size); + if (layer == NULL) + return NULL; + + // distribut the memory to sub handles. + in = (void *)((uint8_t*)layer + sizeof(nnom_zero_padding_layer_t)); + out = (void *)((uint8_t*)in + sizeof(nnom_layer_io_t)); + + // set type in layer parent + layer->super.type = NNOM_ZERO_PADDING; + // set buf state + in->type = NNOM_TENSOR_BUF_TEMP; + out->type = NNOM_TENSOR_BUF_TEMP; + // put in & out on the layer. + layer->super.in = io_init(layer, in); + layer->super.out = io_init(layer, out); + // set run and outshape methods + layer->super.run = zero_padding_run; + layer->super.build = zero_padding_build; + + // set parameters + layer->pad = pad; + + return (nnom_layer_t*)layer; +} + +nnom_status_t zero_padding_build(nnom_layer_t* layer) +{ + nnom_zero_padding_layer_t *cl = (nnom_zero_padding_layer_t *)layer; + + // get the tensor from last layer's output + layer->in->tensor = layer->in->hook.io->tensor; + + // create new tensor for output + layer->out->tensor = new_tensor(NNOM_QTYPE_PER_TENSOR, layer->in->tensor->num_dim, tensor_get_num_channel(layer->in->tensor)); + // copy then change later. + tensor_cpy_attr(layer->out->tensor, layer->in->tensor); + + // see if the activation will change the q format + if(layer->actail) + layer->out->tensor->q_dec[0] = act_get_dec_bit(layer->actail->type, layer->out->tensor->q_dec[0]); + + // output shape + layer->out->tensor->dim[1] = layer->in->tensor->dim[1] + cl->pad.left + cl->pad.right; + layer->out->tensor->dim[0] = layer->in->tensor->dim[0] + cl->pad.top + cl->pad.bottom; + layer->out->tensor->dim[2] = layer->in->tensor->dim[2]; + return NN_SUCCESS; +} + +nnom_status_t zero_padding_run(nnom_layer_t * layer) +{ + nnom_zero_padding_layer_t *cl = (nnom_zero_padding_layer_t*)layer; + +#ifdef NNOM_USING_CHW + local_zero_padding_CHW_q7( +#else + local_zero_padding_HWC_q7( +#endif + layer->in->tensor->p_data, + layer->in->tensor->dim[1], layer->in->tensor->dim[0], layer->in->tensor->dim[2], + cl->pad.top, + cl->pad.bottom, + cl->pad.left, + cl->pad.right, + layer->out->tensor->p_data, + layer->out->tensor->dim[1], layer->out->tensor->dim[0]); + + return NN_SUCCESS; +} + diff --git a/components/ai/onnx/README.md b/components/ai/onnx/README.md deleted file mode 100644 index 39103ea7..00000000 --- a/components/ai/onnx/README.md +++ /dev/null @@ -1,95 +0,0 @@ -![](https://raw.githubusercontent.com/onnx/onnx/master/docs/ONNX_logo_main.png) - -# ONNX - -**通用神ç»ç½‘ç»œæ¨¡åž‹æŽ¨ç†æ¡†æž¶ onnx 在 TencentOS-tiny 上的移æ¤** - -[ONNX](https://onnx.ai/) (Open Neural Network Exchange) 是机器学习模型的通用格å¼ï¼Œå¯ä»¥èžåˆä¸åŒæœºå™¨å­¦ä¹ æ¡†æž¶çš„æ¨¡åž‹ã€‚ - -ONNX是一个用于表示深度学习模型的标准,å¯ä½¿æ¨¡åž‹åœ¨ä¸åŒæ¡†æž¶ä¹‹é—´è¿›è¡Œè½¬ç§»ã€‚Tensorflow, Keras, Pytorch, Caffe2, mxnetç­‰çŸ¥åæ·±åº¦å­¦ä¹ æ¡†æž¶è®­ç»ƒçš„æ¨¡åž‹å¯ä»¥è½¬åŒ–为onnxæ ¼å¼ï¼ŒäºŽæ˜¯ä¾¿å¯ä»¥åœ¨RTOS上è¿è¡Œã€‚ - - -## 支æŒç®—å­ - -- Conv2D -- Relu -- Maxpool -- Softmax -- Matmul -- Add -- Flatten -- Transpose - -## mnist例程 - -当剿œ‰ä¸¤ä¸ªæ‰‹å†™ä½“识别的例程: - -mnist_int å’Œ mnist_float - -分别适用用于整形推ç†å’Œæµ®ç‚¹æŽ¨ç†ï¼Œæ ¹æ®å¹³å°ä¸åŒè€Œå®šï¼Œå…¶ä¸­mnist_int在imx6ull上通过验è¯ï¼Œmnist_float在stm32L4上通过验è¯ã€‚最å°çš„ demo åªéœ€è¦ 16KB 内存,因此在STM32F103C8T6 上也å¯ä»¥è¿è¡Œï¼Œå…¶ä¸­mnist_int相当于是åšäº†int32çš„é‡åŒ–,针对归一化åŽçš„æµ®ç‚¹doubleåž‹å‚æ•°ä¹˜ä»¥1000å€ï¼Œå¹¶ä¿®æ”¹äº†softmax层的算å­ï¼Œæœ€åŽå¯ä»¥å®Œæˆé€Ÿåº¦æ›´å¿«çš„æ•´å½¢æ•°æŽ¨ç†ï¼š - -| 例程文件 | 说明 | -| ------------- | ---------------------------------------- | -| mnist_int.c | 整形推ç†ï¼Œæ¨¡åž‹å‚æ•°ä¿å­˜åœ¨ mnist_int.h | -| mnist_float.c | 浮点推ç†ï¼Œæ¨¡åž‹å‚æ•°ä¿å­˜åœ¨mnist_float.h | - -#### 模型结构 - -``` -_________________________________________________________________ -Layer (type) Output Shape Param # -================================================================= -conv2d_5 (Conv2D) (None, 28, 28, 2) 20 -_________________________________________________________________ -max_pooling2d_5 (MaxPooling2 (None, 14, 14, 2) 0 -_________________________________________________________________ -dropout_5 (Dropout) (None, 14, 14, 2) 0 -_________________________________________________________________ -conv2d_6 (Conv2D) (None, 14, 14, 2) 38 -_________________________________________________________________ -max_pooling2d_6 (MaxPooling2 (None, 7, 7, 2) 0 -_________________________________________________________________ -dropout_6 (Dropout) (None, 7, 7, 2) 0 -_________________________________________________________________ -flatten_3 (Flatten) (None, 98) 0 -_________________________________________________________________ -dense_5 (Dense) (None, 4) 396 -_________________________________________________________________ -dense_6 (Dense) (None, 10) 50 -================================================================= -Total params: 504 -Trainable params: 504 -Non-trainable params: 0 -_________________________________________________________________ - -``` -æŽ¨ç†æµ‹è¯• - -![mnist_test](pic/mnist_test.png) - - - -## 注æ„事项 - -由于 onnx 的模型是 Google Protobuf v3 的格å¼ï¼Œæ‰€ä»¥åœ¨protobuf文件夹中也包å«äº†æ¨¡åž‹è§£æžéƒ¨åˆ†ï¼Œå¯ä»¥é…åˆæ–‡ä»¶ç³»ç»Ÿè¿›è¡Œæ¨¡åž‹è¯»å–。 - -- protobuf-c -- onnx-pb-c - -在 platform 中是对于ä¸åŒå¹³å°çš„特殊适é…,比如mallocã€free的实现等 - -- tencentos_libc_malloc - - -## Todo List - -- è§£æžæ›´åР夿‚的模型 -- 针对ä¸åŒç¡¬ä»¶é€‚é…åŠ é€Ÿç®—å­ - -## å‚考 -https://github.com/wuhanstudio/onnx-backend -## è”ç³»æ–¹å¼ - -- 维护:derek -- 邮箱:dkeji627@gmail.com - diff --git a/components/ai/onnx/examples/mnist_int/mnist.c b/components/ai/onnx/examples/mnist_int/mnist.c deleted file mode 100644 index 05f521bf..00000000 --- a/components/ai/onnx/examples/mnist_int/mnist.c +++ /dev/null @@ -1,191 +0,0 @@ -#include -#include -#include "mnist_int.h" -#include "onnx.h" - -static const char codeLib[] = "@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~<>i!lI;:,\"^`'. "; -int data[5]={1.5 , 2.5 , 3.5 , 4.5 , 5.5}; -static const int img[2][784] = {IMG0, IMG1}; - -static const int img1[784] = {1,2,3,4,5}; - -int hello() -{ - printf("hello pnnx\r\n"); - return 0; -} - -void print_img(void * buf) -{ - int index = 0; - //char ch = '@'; - int x = 0; - int y = 0; - - printf("test2\r\n"); - - for(y = 0; y < 28; y++) - { - for (x = 0; x < 28; x++) - { - - index = 0; - if(((int*)buf)[y*28+x] > 600) - { - index =69; - } - if(index < 0) - { - index = 0; - } - - - printf("%c",codeLib[index]); - printf("%c",codeLib[index]); - } - printf("\r\n"); - } -} - -int mnist() -{ - printf("test1\r\n"); - int img_index = 1; - print_img(img[img_index]); - - printf("img ok\r\n"); - - // 1. Conv2D - int64_t shapeW3[] = {2, 1, 3, 3}; - int64_t dimW3 = 4; - int64_t permW3_t[] = { 0, 2, 3, 1}; - int* W3_t = transpose(W3, shapeW3, dimW3, permW3_t); - - printf("transpose ok\r\n"); - - int* conv1 = (int*) malloc(sizeof(int)*28*28*2); - memset(conv1, 0, sizeof(sizeof(int)*28*28*2)); - - conv2D(img[img_index], 28, 28, 1, W3, 2, 3, 3, 1, 1, 1, 1, B3, conv1, 28, 28); - - free(W3_t); - - printf("Conv2D ok \r\n"); - - // 2. Relu - int* relu1 = (int*) malloc(sizeof(int)*28*28*2); - relu(conv1, 28*28*2, relu1); - - free(conv1); - - printf("Relu ok\r\n"); - - // 3. Maxpool - int* maxpool1 = (int*) malloc(sizeof(int)*14*14*2); - memset(maxpool1, 0, sizeof(sizeof(int)*14*14*2)); - maxpool(relu1, 28, 28, 2, 2, 2, 0, 0, 2, 2, 14, 14, maxpool1); - - free(relu1); - - printf("Maxpool ok\r\n"); - - // 4. Conv2D - int64_t shapeW2[] = {2, 2, 3, 3}; - int64_t dimW2 = 4; - int64_t perm_t[] = { 0, 2, 3, 1}; - int* W2_t = transpose(W2, shapeW2, dimW2, perm_t); - - int* conv2 = (int*) malloc(sizeof(int)*14*14*2); - memset(conv2, 0, sizeof(sizeof(int)*14*14*2)); - conv2D(maxpool1, 14, 14, 2, W2_t, 2, 3, 3, 1, 1, 1, 1, B2, conv2, 14, 14); - - free(W2_t); - free(maxpool1); - - printf("Conv2D ok\r\n"); - - // 5. Relu - int* relu2 = (int*) malloc(sizeof(int)*14*14*2); - relu(conv2, 14*14*2, relu2); - - free(conv2); - - printf("Relu ok\r\n"); - - // 6. Maxpool - int* maxpool2 = (int*) malloc(sizeof(int)*7*7*2); - memset(maxpool2, 0, sizeof(sizeof(int)*7*7*2)); - maxpool(relu2, 14, 14, 2, 2, 2, 0, 0, 2, 2, 7, 7, maxpool2); - - free(relu2); - - printf("Maxpool ok\r\n"); - - // Flatten NOT REQUIRED - - // 7. Dense - int64_t shapeW1[] = {98, 4}; - int64_t dimW1 = 2; - int64_t permW1_t[] = { 1, 0}; - int* W1_t = transpose(W1, shapeW1, dimW1, permW1_t); - - int* dense1 = (int*) malloc(sizeof(int)*4); - memset(dense1, 0, sizeof(sizeof(int)*4)); - dense(maxpool2, W1_t, 98, 4, B1, dense1); - - free(W1_t); - free(maxpool2); - - printf("Dense ok\r\n"); - - // 8. Dense - int64_t shapeW[] = {4, 10}; - int64_t dimW = 2; - int64_t permW_t[] = { 1, 0}; - int* W_t = transpose(W, shapeW, dimW, permW_t); - - int* dense2 = (int*) malloc(sizeof(int)*10); - memset(dense2, 0, sizeof(sizeof(int)*10)); - dense(dense1, W_t, 4, 10, B, dense2); - - free(W_t); - free(dense1); - - printf("Dense ok\r\n"); - - // 9. Softmax - int* output = (int*) malloc(sizeof(int)*10); - memset(output, 0, sizeof(sizeof(int)*10)); - softmax(dense2, 10, output); - - printf("Softmax ok\r\n"); - - int max = 0; - int min = output[0]; - int max_index = 0; - int min_index = 0; - printf("\n\rPredictions: \n\r"); - for(int i = 0; i < 10; i++) - { - printf("%d ", output[i]); - if(output[i] > max) - { - max = output[i]; - max_index = i; - } - if(output[i] < min) - { - min = output[i]; - min_index = i; - } - } - printf("\n\r"); - printf("\n\rThe number is %d\n\r", min_index); - - free(dense2); - free(output); - - printf("Result ok\r\n"); - - return 0; -} diff --git a/components/ai/onnx/examples/mnist_int/mnist_int.h b/components/ai/onnx/examples/mnist_int/mnist_int.h deleted file mode 100644 index 460dfc9f..00000000 --- a/components/ai/onnx/examples/mnist_int/mnist_int.h +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef __MNIST_INT_H__ -#define __MNIST_INT_H__ - -#include -#include - - -#define IMG0 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,380,376,301,462,239,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,352,541,921,921,921,921,921,921,984,984,972,996,960,921,745,82,0,0,0,0,0,0,0,0,0,0,0,549,984,996,996,996,996,996,996,996,996,996,996,996,996,996,996,741,90,0,0,0,0,0,0,0,0,0,0,886,996,815,780,780,780,780,545,239,239,239,239,239,501,870,996,996,741,82,0,0,0,0,0,0,0,0,0,149,321,50,0,0,0,0,0,0,0,0,0,0,0,133,835,996,996,450,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,329,996,996,917,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,329,996,996,917,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,415,615,996,996,952,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,458,894,894,894,992,996,996,996,996,941,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,266,466,862,996,996,996,996,996,996,996,996,996,556,0,0,0,0,0,0,0,0,0,0,0,0,0,145,733,992,996,996,996,874,807,807,294,266,843,996,996,458,0,0,0,0,0,0,0,0,0,0,0,0,443,858,996,949,890,450,349,121,0,0,0,0,784,996,945,160,0,0,0,0,0,0,0,0,0,0,0,0,662,996,690,243,0,0,0,0,0,0,0,188,905,996,917,0,0,0,0,0,0,0,0,0,0,0,0,0,70,486,0,0,0,0,0,0,0,0,0,329,996,996,650,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,545,996,933,223,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,823,980,996,658,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,949,996,937,223,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,349,984,945,337,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,807,964,615,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,458,270,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} -#define IMG0_LABEL 7 - - - -#define IMG1 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,121,517,996,992,996,835,321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,556,913,988,992,988,992,988,874,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,482,996,992,996,992,878,796,796,874,1000,835,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,796,992,988,992,831,78,0,0,239,992,988,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,952,878,796,717,160,596,117,0,0,1000,992,400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156,78,0,0,400,992,196,0,321,992,988,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,321,839,121,443,913,996,913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,243,400,321,160,992,909,992,988,913,196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,596,992,996,992,996,992,996,913,482,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,596,988,992,988,992,988,752,196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,243,717,796,952,996,992,243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156,674,988,796,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0,0,0,0,0,0,0,0,717,996,439,0,0,0,0,0,0,0,0,0,0,0,0,0,0,243,796,639,0,0,0,0,0,0,0,0,239,992,592,0,0,0,0,0,0,0,0,0,0,0,0,0,82,839,752,0,0,0,0,0,0,0,0,43,835,996,592,0,0,0,0,0,0,0,0,0,0,0,0,0,400,992,592,0,0,0,0,0,0,0,160,835,988,992,435,0,0,0,0,0,0,0,0,0,0,0,0,0,160,1000,835,360,200,0,0,121,360,678,992,996,992,556,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,674,988,992,988,796,796,913,988,992,988,992,509,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,796,1000,992,996,992,996,992,956,796,321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78,592,592,992,670,592,592,156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} -#define IMG1_LABEL 3 - -#define TOTAL_IMAGE 2 - - -static const signed char label[] = {IMG0_LABEL, IMG1_LABEL}; - - - -static const int W3[] = {-323,-426,-651,790,-221,37,398,221,797,254,307,625,-589,203,-64,-1566,-376,-644}; -static const int B3[] = {-829,-140}; - -static const int W2[] = {7,231,36,-146,-155,4,273,-27,234,-635,-556,-770,156,710,239,1820,-18,1574,1723,-596,1399,335,568,379,35,-182,-32,6,-2,-5,293,137,355,2,2,-22}; -static const int B2[] = {-116,-3}; - -static const int W1[] = {157,-226,21,25,8,-775,-415,-125,-396,335,-631,-28,-506,-357,-3780,-826,102,571,-625,66,559,253,-3075,-695,253,317,-866,127,831,266,-2586,-572,297,162,-991,77,891,168,-2524,-563,416,-108,-1022,206,398,-160,-1918,-483,57,-1257,-231,1051,-798,-1626,-260,-76,-464,755,131,247,-1527,163,-75,-58,-338,1305,144,440,-310,154,5,-31,-159,661,83,265,-38,180,-7,54,-14,306,6,223,30,126,-28,111,35,46,-26,264,69,107,-30,95,248,-364,-102,496,40,20,-54,54,-71,-1538,-235,1589,-23,-249,18,80,51,614,157,128,-869,1376,430,134,-149,454,130,231,3,427,233,92,-60,464,103,250,-53,214,116,224,126,234,127,332,14,106,108,305,314,-71,134,454,54,74,97,274,486,-436,-135,572,135,-7,118,244,-375,-468,-564,865,340,-172,40,363,89,-498,476,21,285,617,705,-306,-570,-206,41,230,-179,-23,141,23,-641,-69,-85,164,-534,-101,-131,149,-635,-98,-232,154,-485,-190,-204,106,-529,-173,-362,122,-386,-247,-252,102,-145,-101,43,-171,-31,-301,-94,69,-549,668,145,-737,770,-412,101,52,254,227,-30,-83,-663,512,-121,-334,-75,-98,-16,-31,-435,94,-49,-77,-128,-89,-70,-10,-290,-13,-39,-23,-155,-52,-147,-75,-268,-35,-95,-15,-39,24,-196,-199,-203,-42,-187,-45,-10,148,-117,-418,-206,-24,-157,-55,-90,402,-357,-786,-79,162,-144,-274,268,688,-64,113,599,1294,-1250,608,123,158,-175,34,391,231,-756,200,79,14,-121,8,268,57,-526,124,80,-38,-88,0,286,-10,-393,111,65,-33,-74,-27,300,2,-479,-45,-10,39,-92,-192,154,212,-389,-373,-206,292,-129,-360,-554,457,-352,-947,-1248,887,336,3,-227,1456,549,383,-411,375,176,38,163,705,55,644,-207,146,103,197,174,365,-97,522,-184,-1,88,241,155,172,-105,382,-306,-162,115,307,158,-17,-50,262,-1299,-227,108,744,-398,16,100,-163,-649,-567,17,989,-1395,441,166,-191}; -static const int B1[] = {1201,-1177,2169,-1961}; - -static const int W[] = {558,787,-40,-122,-412,-36,169,-147,-16,-280,18,62,495,339,-475,-140,-882,183,20,-137,-52,679,-280,-312,444,-261,-322,1032,-144,522,57,-965,-305,168,-532,426,-543,14,267,159}; -static const int B[] = {41,1461,71,-1277,809,-1693,-297,-117,329,659}; - - - -/* - -#define IMG0 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3803,3764,3019,4627,2392,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3529,5411,9215,9215,9215,9215,9215,9215,9843,9843,9725,9960,9607,9215,7450,823,0,0,0,0,0,0,0,0,0,0,0,5490,9843,9960,9960,9960,9960,9960,9960,9960,9960,9960,9960,9960,9960,9960,9960,7411,901,0,0,0,0,0,0,0,0,0,0,8862,9960,8156,7803,7803,7803,7803,5450,2392,2392,2392,2392,2392,5019,8705,9960,9960,7411,823,0,0,0,0,0,0,0,0,0,1490,3215,509,0,0,0,0,0,0,0,0,0,0,0,1333,8352,9960,9960,4509,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3294,9960,9960,9176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3294,9960,9960,9176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4156,6156,9960,9960,9529,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,980,4588,8941,8941,8941,9921,9960,9960,9960,9960,9411,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2666,4666,8627,9960,9960,9960,9960,9960,9960,9960,9960,9960,5568,0,0,0,0,0,0,0,0,0,0,0,0,0,1450,7333,9921,9960,9960,9960,8745,8078,8078,2941,2666,8431,9960,9960,4588,0,0,0,0,0,0,0,0,0,0,0,0,4431,8588,9960,9490,8901,4509,3490,1215,0,0,0,0,7843,9960,9450,1607,0,0,0,0,0,0,0,0,0,0,0,0,6627,9960,6901,2431,0,0,0,0,0,0,0,1882,9058,9960,9176,0,0,0,0,0,0,0,0,0,0,0,0,0,705,4862,0,0,0,0,0,0,0,0,0,3294,9960,9960,6509,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5450,9960,9333,2235,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8235,9803,9960,6588,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9490,9960,9372,2235,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3490,9843,9450,3372,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196,8078,9647,6156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156,4588,2705,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} -#define IMG0_LABEL 7 - - - -#define IMG1 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1215,5176,9960,9921,9960,8352,3215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,823,5568,9137,9882,9921,9882,9921,9882,8745,784,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4823,9960,9921,9960,9921,8784,7960,7960,8745,10000,8352,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7960,9921,9882,9921,8313,784,0,0,2392,9921,9882,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1607,9529,8784,7960,7176,1607,5960,1176,0,0,10000,9921,4000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1568,784,0,0,4000,9921,1960,0,3215,9921,9882,784,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3215,8392,1215,4431,9137,9960,9137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2431,4000,3215,1607,9921,9098,9921,9882,9137,1960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5960,9921,9960,9921,9960,9921,9960,9137,4823,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5960,9882,9921,9882,9921,9882,7529,1960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2431,7176,7960,9529,9960,9921,2431,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1568,6745,9882,7960,784,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,823,0,0,0,0,0,0,0,0,0,7176,9960,4392,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2431,7960,6392,0,0,0,0,0,0,0,0,2392,9921,5921,0,0,0,0,0,0,0,0,0,0,0,0,0,823,8392,7529,0,0,0,0,0,0,0,0,431,8352,9960,5921,0,0,0,0,0,0,0,0,0,0,0,0,0,4000,9921,5921,0,0,0,0,0,0,0,1607,8352,9882,9921,4352,0,0,0,0,0,0,0,0,0,0,0,0,0,1607,10000,8352,3607,2000,0,0,1215,3607,6784,9921,9960,9921,5568,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6745,9882,9921,9882,7960,7960,9137,9882,9921,9882,9921,5098,784,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,823,7960,10000,9921,9960,9921,9960,9921,9568,7960,3215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,784,5921,5921,9921,6705,5921,5921,1568,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} -#define IMG1_LABEL 3 - -#define TOTAL_IMAGE 2 - - -static const signed char label[] = {IMG0_LABEL, IMG1_LABEL}; - - - -static const int W3[] = {-3233,-4261,-6519,7906,-2210,371,3984,2212,7975,2549,3076,6250,-5895,2037,-647,-15660,-3767,-6443}; -static const int B3[] = {-8293,-1409}; - -static const int W2[] = {70,2319,368,-1468,-1559,44,2732,-275,2340,-6354,-5564,-7705,1560,7101,2395,18201,-183,15745,17230,-5966,13997,3351,5684,3797,350,-1828,-322,69,-26,-57,2935,1379,3558,22,25,-226}; -static const int B2[] = {-1165,-36}; - -static const int W1[] = {1579,-2264,212,255,87,-7751,-4159,-1258,-3963,3354,-6319,-287,-5066,-3574,-37807,-8261,1022,5711,-6256,669,5596,2537,-30759,-6959,2531,3173,-8664,1275,8313,2666,-25865,-5720,2974,1623,-9915,779,8913,1685,-25247,-5639,4167,-1080,-10229,2062,3988,-1602,-19185,-4837,573,-12573,-2311,10518,-7981,-16263,-2600,-764,-4646,7558,1318,2474,-15276,1636,-754,-585,-3385,13052,1444,4408,-3103,1541,53,-317,-1599,6612,832,2651,-384,1805,-73,541,-142,3065,61,2231,303,1269,-281,1118,353,468,-265,2645,699,1071,-303,952,2480,-3649,-1027,4960,400,209,-547,541,-718,-15381,-2356,15890,-230,-2493,187,804,519,6141,1578,1288,-8691,13761,4305,1347,-1497,4542,1307,2311,36,4274,2339,920,-602,4642,1039,2504,-532,2146,1169,2240,1263,2349,1277,3324,140,1063,1087,3052,3141,-716,1348,4541,546,745,973,2748,4866,-4363,-1358,5724,1359,-74,1185,2448,-3753,-4687,-5648,8657,3407,-1721,406,3630,895,-4989,4768,217,2856,6174,7059,-3063,-5705,-2069,419,2304,-1790,-237,1411,234,-6417,-699,-858,1646,-5346,-1016,-1311,1490,-6350,-989,-2324,1540,-4858,-1904,-2046,1062,-5291,-1735,-3627,1222,-3865,-2478,-2522,1026,-1450,-1011,437,-1715,-313,-3013,-940,698,-5491,6684,1457,-7375,7700,-4125,1011,528,2546,2275,-302,-832,-6638,5122,-1210,-3340,-750,-982,-160,-318,-4358,943,-498,-777,-1282,-896,-701,-107,-2909,-131,-397,-234,-1553,-520,-1477,-755,-2686,-352,-956,-154,-390,242,-1960,-1999,-2030,-426,-1877,-451,-101,1482,-1170,-4180,-2068,-240,-1578,-556,-903,4025,-3574,-7861,-799,1620,-1446,-2749,2683,6881,-641,1136,5998,12947,-12500,6082,1234,1580,-1750,342,3910,2319,-7568,2004,791,142,-1213,85,2689,570,-5261,1248,806,-385,-889,7,2863,-108,-3930,1114,656,-337,-745,-273,3002,29,-4795,-452,-102,393,-923,-1924,1540,2123,-3898,-3738,-2064,2920,-1299,-3604,-5544,4572,-3526,-9479,-12481,8870,3362,35,-2276,14563,5495,3839,-4119,3758,1768,381,1635,7051,550,6445,-2072,1461,1031,1971,1742,3657,-978,5229,-1845,-13,886,2418,1554,1722,-1053,3821,-3065,-1629,1154,3075,1586,-177,-502,2623,-12994,-2270,1085,7447,-3980,168,1006,-1635,-6495,-5674,179,9896,-13958,4412,1664,-1919}; -static const int B1[] = {12019,-11770,21698,-19615}; - -static const int W[] = {5580,7870,-409,-1225,-4126,-360,1691,-1471,-164,-2805,187,629,4956,3393,-4754,-1405,-8827,1835,208,-1378,-522,6792,-2802,-3127,4441,-2610,-3221,10321,-1444,5221,575,-9654,-3051,1685,-5320,4268,-5434,146,2679,1592}; -static const int B[] = {414,14614,715,-12774,8092,-16933,-2974,-1177,3292,6596}; - -*/ - - - - -int mnist(void); - -#endif //__MNIST_INT_H__ diff --git a/components/ai/onnx/examples/model/mnist-lg.onnx b/components/ai/onnx/examples/model/mnist-lg.onnx deleted file mode 100644 index 3474f917..00000000 Binary files a/components/ai/onnx/examples/model/mnist-lg.onnx and /dev/null differ diff --git a/components/ai/onnx/examples/model/mnist-sm.onnx b/components/ai/onnx/examples/model/mnist-sm.onnx deleted file mode 100644 index 08ad36a1..00000000 Binary files a/components/ai/onnx/examples/model/mnist-sm.onnx and /dev/null differ diff --git a/components/ai/onnx/operator_int/add.c b/components/ai/onnx/operator_int/add.c deleted file mode 100644 index e69ee173..00000000 --- a/components/ai/onnx/operator_int/add.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "onnx.h" - -void add(const int *input, // pointer to vector - const int *bias, // pointer to matrix - const uint16_t dim_vec, // length of the vector - int *output) -{ - for (int i = 0; i < dim_vec; i++) - { - output[i] = input[i] + bias[i]; - } -} - -int* add_layer(Onnx__GraphProto* graph, const int *input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name) -{ - //assert(graph != NULL && input != NULL && layer_name != "" ); - - Onnx__NodeProto* node = onnx_graph_get_node_by_name(graph, layer_name); - const char* bias = node->input[1]; - - int* B = onnx_graph_get_weights_by_name(graph, bias); - int64_t* shapeB = onnx_graph_get_dims_by_name(graph, bias); - if(shapeB == NULL) - { - return NULL; - } - - int* output = (int*) malloc(sizeof(int)*shapeB[0]); - memset(output, 0, sizeof(sizeof(int)*shapeB[0])); - add(input, B, shapeB[0], output); - - memcpy(shapeInput, shapeOutput, sizeof(int64_t)*3); - - return output; -} diff --git a/components/ai/onnx/operator_int/conv2d.c b/components/ai/onnx/operator_int/conv2d.c deleted file mode 100644 index 20a817c6..00000000 --- a/components/ai/onnx/operator_int/conv2d.c +++ /dev/null @@ -1,113 +0,0 @@ -#include "onnx.h" - -void conv2D(const int *input, // input image - const uint16_t dim_im_in_x, // input image dimention x - const uint16_t dim_im_in_y, // input image dimention y - const uint16_t ch_im_in, // number of input image channels - const int *weight, // kernel weights - const uint16_t ch_im_out, // number of filters, i.e., output image channels - const uint16_t dim_kernel_x, // filter kernel size x - const uint16_t dim_kernel_y, // filter kernel size y - const uint16_t padding_x, // padding sizes x - const uint16_t padding_y, // padding sizes y - const uint16_t stride_x, // stride x - const uint16_t stride_y, // stride y - const int *bias, // bias - int *output, // output image - const uint16_t dim_im_out_x, // output image dimension x - const uint16_t dim_im_out_y // output image dimension y -) -{ - int i, j, k, l, m, n; - int conv_out = 0.0f; - int in_row, in_col; - - // For each filter - for (i = 0; i < ch_im_out; i++) - { - // For each image dimension - for (j = 0; j < dim_im_out_y; j++) - { - for (k = 0; k < dim_im_out_x; k++) - { - conv_out = bias[i]; - // For each kernel dimension - for (m = 0; m < dim_kernel_y; m++) - { - for (n = 0; n < dim_kernel_x; n++) - { - // if-for implementation - in_row = stride_y * j + m - padding_y; - in_col = stride_x * k + n - padding_x; - if (in_row >= 0 && in_col >= 0 && in_row < dim_im_in_y && in_col < dim_im_in_x) - { - // For each input channel - for (l = 0; l < ch_im_in; l++) - { - conv_out += input[(in_row * dim_im_in_x + in_col) * ch_im_in + l] * - weight[i * ch_im_in * dim_kernel_y * dim_kernel_x + (m * dim_kernel_x + n) * ch_im_in + - l]; - } - } - } - } - output[i + (j * dim_im_out_x + k) * ch_im_out] = conv_out; - } - } - } -} - -int* conv2D_layer(Onnx__GraphProto* graph, const int *input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name) -{ - //assert(graph != NULL && input != NULL && layer_name != "" ); - - Onnx__NodeProto* node = onnx_graph_get_node_by_name(graph, layer_name); - if(node == NULL) - { - // layer not found - return NULL; - } - const char* weight = node->input[1]; - const char* bias = node->input[2]; - - // Get weight shape - int64_t* shapeW = onnx_graph_get_dims_by_name(graph, weight); - if(shapeW == NULL) - { - return NULL; - } - int64_t dimW = onnx_graph_get_dim_by_name(graph, weight); - if(dimW < 0) - { - return NULL; - } - - // Get weights - // NCWH --> NWHC - int64_t permW_t[] = { 0, 2, 3, 1}; - int* W = onnx_graph_get_weights_by_name(graph, weight); - if(W == NULL) - { - return NULL; - } - int* W_t = transpose(W, shapeW, dimW, permW_t); - - // Get bias - int* B = onnx_graph_get_weights_by_name(graph, bias); - if(B == NULL) - { - return NULL; - } - - int* output = (int*) malloc(sizeof(int)*shapeW[0]*shapeInput[W_INDEX]*shapeInput[H_INDEX]); - memset(output, 0, sizeof(sizeof(int)*shapeW[0]*shapeInput[W_INDEX]*shapeInput[H_INDEX])); - conv2D(input, shapeInput[W_INDEX], shapeInput[H_INDEX], shapeW[1], W_t, shapeW[0], shapeW[2], shapeW[3], 1, 1, 1, 1, B, output, shapeInput[W_INDEX], shapeInput[H_INDEX]); - - shapeOutput[W_INDEX] = shapeInput[W_INDEX]; - shapeOutput[H_INDEX] = shapeInput[H_INDEX]; - shapeOutput[C_INDEX] = shapeW[0]; - - free(W_t); - - return output; -} diff --git a/components/ai/onnx/operator_int/dense.c b/components/ai/onnx/operator_int/dense.c deleted file mode 100644 index c3c6cf22..00000000 --- a/components/ai/onnx/operator_int/dense.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "onnx.h" - -void dense(const int *input, // pointer to vector - const int *weight, // pointer to matrix - const uint16_t dim_vec, // length of the vector - const uint16_t num_of_rows, // numCol of A - const int *bias, - int *output) // output operand -{ - for (int i = 0; i < num_of_rows; i++) - { - int ip_out = bias[i]; - for (int j = 0; j < dim_vec; j++) - { - ip_out += input[j] * weight[i * dim_vec + j]; - } - output[i] = ip_out; - } -} diff --git a/components/ai/onnx/operator_int/info.c b/components/ai/onnx/operator_int/info.c deleted file mode 100644 index 1537ad8c..00000000 --- a/components/ai/onnx/operator_int/info.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "onnx.h" - -void onnx_tensor_info(const int* A, int64_t* shape, int64_t dim) -{ - int elem = 1; - for(int i = 0; i < dim; i++) - { - elem = elem * shape[i]; - } - - printf("Array size: %d\n", elem); - for(int i = 0; i < elem; i++) - { - printf( "%f ", A[i] ); - int split = 1; - for(int j = dim-1; j > 0; j--) - { - split = split * shape[j]; - if( (i+1) % split == 0) - { - printf("\n"); - } - } - } -} diff --git a/components/ai/onnx/operator_int/matmul.c b/components/ai/onnx/operator_int/matmul.c deleted file mode 100644 index d6d60c8c..00000000 --- a/components/ai/onnx/operator_int/matmul.c +++ /dev/null @@ -1,63 +0,0 @@ -#include "onnx.h" - -void matmul(const int *input, // pointer to vector - const int *weight, // pointer to matrix - const uint16_t dim_vec, // length of the vector - const uint16_t num_of_rows, // numCol of A - int *output) -{ - for (int i = 0; i < num_of_rows; i++) - { - int ip_out = 0; - for (int j = 0; j < dim_vec; j++) - { - ip_out += input[j] * weight[i * dim_vec + j]; - } - output[i] = ip_out; - } -} - -int* matmul_layer(Onnx__GraphProto* graph, const int *input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name) -{ - //assert(graph != NULL && input != NULL && layer_name != "" ); - - Onnx__NodeProto* node = onnx_graph_get_node_by_name(graph, layer_name); - const char* weight = node->input[1]; - - int64_t* shapeW = onnx_graph_get_dims_by_name(graph, weight); - if(shapeW == NULL) - { - return NULL; - } - int64_t dimW = onnx_graph_get_dim_by_name(graph, weight); - if(dimW < 0) - { - return NULL; - } - - //assert(shapeW[0] == shapeInput[1]); - - int64_t permW_t[] = {1, 0}; - int* W = onnx_graph_get_weights_by_name(graph, weight); - if(W == NULL) - { - return NULL; - } - int* W_t = transpose(W, shapeW, dimW, permW_t); - - int* output = (int*) malloc(sizeof(int)*shapeW[1]); - if(output == NULL) - { - // No memory - return NULL; - } - memset(output, 0, sizeof(sizeof(int)*shapeW[1])); - matmul(input, W_t, shapeW[0], shapeW[1], output); - - shapeOutput[0] = shapeInput[0]; - shapeOutput[1] = shapeW[1]; - - free(W_t); - - return output; -} diff --git a/components/ai/onnx/operator_int/maxpool.c b/components/ai/onnx/operator_int/maxpool.c deleted file mode 100644 index ad9556c4..00000000 --- a/components/ai/onnx/operator_int/maxpool.c +++ /dev/null @@ -1,96 +0,0 @@ -#include "onnx.h" - -void maxpool(const int *input, - const uint16_t dim_im_in_x, // input image dimension x or W - const uint16_t dim_im_in_y, // input image dimension y or H - const uint16_t ch_im_in, // number of input image channels - const uint16_t dim_kernel_x, // window kernel size - const uint16_t dim_kernel_y, // window kernel size - const uint16_t padding_x, // padding sizes - const uint16_t padding_y, // padding sizes - const uint16_t stride_x, // stride - const uint16_t stride_y, // stride - const uint16_t dim_im_out_x, // output image dimension x or W - const uint16_t dim_im_out_y, // output image dimension y or H - int *output) -{ - int16_t i_ch_in, i_x, i_y; - int16_t k_x, k_y; - - for (i_ch_in = 0; i_ch_in < ch_im_in; i_ch_in++) - { - for (i_y = 0; i_y < dim_im_out_y; i_y++) - { - for (i_x = 0; i_x < dim_im_out_x; i_x++) - { - //int max = FLT_MIN; - int max = 0; - for (k_y = i_y * stride_y - padding_y; k_y < i_y * stride_y - padding_y + dim_kernel_y; k_y++) - { - for (k_x = i_x * stride_x - padding_x; k_x < i_x * stride_x - padding_x + dim_kernel_x; k_x++) - { - if (k_y >= 0 && k_x >= 0 && k_y < dim_im_in_y && k_x < dim_im_in_x) - { - if (input[i_ch_in + ch_im_in * (k_x + k_y * dim_im_in_x)] > max) - { - max = input[i_ch_in + ch_im_in * (k_x + k_y * dim_im_in_x)]; - } - } - } - } - output[i_ch_in + ch_im_in * (i_x + i_y * dim_im_out_x)] = max; - } - } - } -} - -int* maxpool_layer(Onnx__GraphProto* graph, int* input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name) -{ - //assert(graph != NULL && input != NULL && layer_name != "" ); - - Onnx__NodeProto* node = onnx_graph_get_node_by_name(graph, layer_name); - if(node == NULL) - { - // layer not found - return NULL; - } - - uint16_t kernel_x = 1; - uint16_t kernel_y = 1; - uint16_t padding_x = 0; - uint16_t padding_y = 0; - uint16_t stride_x = 1; - uint16_t stride_y = 1; - - for(int i = 0; i < node->n_attribute; i++) - { - if( strcmp(node->attribute[i]->name, "kernel_shape") == 0 ) - { - kernel_x = node->attribute[i]->ints[0]; - kernel_y = node->attribute[i]->ints[1]; - } - if( strcmp(node->attribute[i]->name, "strides") == 0 ) - { - stride_x = node->attribute[i]->ints[0]; - stride_y = node->attribute[i]->ints[1]; - } - } - - uint16_t out_x = (shapeInput[W_INDEX] - kernel_x + 2 * padding_x) / stride_x + 1; - uint16_t out_y = (shapeInput[H_INDEX] - kernel_y + 2 * padding_y) / stride_y + 1; - - int* output = (int*) malloc(sizeof(int)*out_x*out_y*shapeInput[C_INDEX]); - if(output == NULL) - { - // No memory - return NULL; - } - memset(output, 0, sizeof(sizeof(int)*out_x*out_y*shapeInput[C_INDEX])); - maxpool(input, shapeInput[W_INDEX], shapeInput[H_INDEX], shapeInput[C_INDEX], kernel_x, kernel_y, padding_x, padding_y, stride_x, stride_y, out_x, out_y, output); - - shapeOutput[W_INDEX] = out_x; - shapeOutput[H_INDEX] = out_y; - shapeOutput[C_INDEX] = shapeInput[C_INDEX]; - - return output; -} diff --git a/components/ai/onnx/operator_int/model.c b/components/ai/onnx/operator_int/model.c deleted file mode 100644 index a36d7466..00000000 --- a/components/ai/onnx/operator_int/model.c +++ /dev/null @@ -1,84 +0,0 @@ -#include -#include "onnx.h" - -int* onnx_model_run(Onnx__ModelProto* model, int* input, int64_t* shapeInput) -{ - int64_t* shapeOutput = (int64_t*) malloc(sizeof(int64_t)*3); - shapeOutput[0] = -1; shapeOutput[1] = -1; shapeOutput[2] = -1; - - Onnx__NodeProto* node = onnx_graph_get_node_by_input(model->graph, model->graph->input[0]->name); - - int i = 0; - int* output; - while(node != NULL) - { - printf("[%2d] %-10s %-20s ", i++, node->op_type, node->name); - if(strcmp(node->op_type, "Conv") == 0) - { - output = conv2D_layer(model->graph, input, shapeInput, shapeOutput, node->name); - } - else if(strcmp(node->op_type, "Relu") == 0) - { - output = relu_layer(model->graph, input, shapeInput, shapeOutput, node->name); - } - else if(strcmp(node->op_type, "MaxPool") == 0) - { - output = maxpool_layer(model->graph, input, shapeInput, shapeOutput, node->name); - } - else if(strcmp(node->op_type, "Softmax") == 0) - { - output = softmax_layer(model->graph, input, shapeInput, shapeOutput, node->name); - } - else if(strcmp(node->op_type, "MatMul") == 0) - { - output = matmul_layer(model->graph, input, shapeInput, shapeOutput, node->name); - } - else if(strcmp(node->op_type, "Add") == 0) - { - output = add_layer(model->graph, input, shapeInput, shapeOutput, node->name); - } - else if(strcmp(node->op_type, "Identity") == 0) - { - node = onnx_graph_get_node_by_input(model->graph, node->output[0]); - printf("\n"); - - continue; - } - else if(strcmp(node->op_type, "Transpose") == 0) - { - node = onnx_graph_get_node_by_input(model->graph, node->output[0]); - printf("\n"); - - continue; - } - else if(strcmp(node->op_type, "Reshape") == 0) - { - shapeOutput[1] = shapeOutput[0] * shapeOutput[1] * shapeOutput[2]; - shapeOutput[2] = 1; - shapeOutput[0] = 1; - printf("[%2" PRId64 ", %2" PRId64 ", %2" PRId64 "] --> [%2" PRId64 ", %2" PRId64 ", %2" PRId64 "]\n", shapeInput[0], shapeInput[1], shapeInput[2], shapeOutput[0], shapeOutput[1], shapeOutput[2]); - - // free(input); - // input = output; - memcpy(shapeInput, shapeOutput, sizeof(int64_t)*3); - - node = onnx_graph_get_node_by_input(model->graph, node->output[0]); - continue; - } - else - { - printf("Unsupported operand: %s\n", node->op_type); - } - printf("[%2" PRId64 ", %2" PRId64 ", %2" PRId64 "] --> [%2" PRId64 ", %2" PRId64 ", %2" PRId64 "]\n", shapeInput[0], shapeInput[1], shapeInput[2], shapeOutput[0], shapeOutput[1], shapeOutput[2]); - - free(input); - input = output; - memcpy(shapeInput, shapeOutput, sizeof(int64_t)*3); - - node = onnx_graph_get_node_by_input(model->graph, node->output[0]); - } - output = input; - free(shapeOutput); - - return output; -} diff --git a/components/ai/onnx/operator_int/onnx-parser.c b/components/ai/onnx/operator_int/onnx-parser.c deleted file mode 100644 index 91ffbc8c..00000000 --- a/components/ai/onnx/operator_int/onnx-parser.c +++ /dev/null @@ -1,284 +0,0 @@ -#include "onnx-parser.h" - -const char* onnx_tensor_proto_data_type[] = { - "Undefined", - "FLOAT", - "UINT8", - "INT8", - "UINT16", - "INT16", - "INT32", - "INT64", - "STRING", - "BOOL", - "FLOAT16", - "DOUBLE", - "UINT32", - "UINT64", - "COMPLEX64", - "COMPLEX128" -}; -/* -Onnx__ModelProto* onnx_load_model(const char* onnx_file_name) -{ - unsigned char* buffer; - FILE *fp; - - // Get File Size - fp = fopen(onnx_file_name,"rb"); - fseek(fp, 0L, SEEK_END); - int sz = ftell(fp); - fseek(fp, 0L, SEEK_SET); - // printf("File size %s is %d\n", onnx_file_name, sz); - - // Read File - buffer = (unsigned char*) malloc(sizeof(unsigned char) * sz); - if(buffer == NULL) - { - printf("Failed to malloc %d bytes memory for %s\n", sz, onnx_file_name); - return NULL; - } - fread(buffer, sz, 1, fp); - - Onnx__ModelProto* model = onnx__model_proto__unpack(NULL, sz, buffer); - free(buffer); - fclose(fp); - - return model; -} -*/ -void onnx_model_info(Onnx__ModelProto* model) -{ - printf("---- Model info ----\n"); - printf("IR Version is %ld\n", model->ir_version); - printf("Produceer name is %s\n", model->producer_name); - printf("Produceer version is %s\n", model->producer_version); - printf("Produceer version is %s\n", model->domain); -} - -void onnx_graph_info(Onnx__GraphProto* graph) -{ - printf("---- Graph Info ----\n"); - - // Input - printf("---- Graph Input Info ----\n"); - printf("Graph inputs number: %ld\n", graph->n_input); - for(int i = 0; i < graph->n_input; i++) - { - onnx_graph_input_info(graph->input[i]); - } - - // Output - printf("---- Graph Output Info ----\n"); - printf("Graph outputs number: %ld\n", graph->n_output); - for(int i = 0; i < graph->n_output; i++) - { - onnx_graph_output_info(graph->output[i]); - } - - // Nodes - printf("---- Graph Node Info ----\n"); - printf("Graph nodes number: %ld\n", graph->n_node); - for(int i = 0; i < graph->n_node; i++) - { - onnx_graph_node_info(graph->node[i]); - } -} - -void onnx_graph_info_sorted(Onnx__GraphProto* graph) -{ - printf("---- Graph Info ----\n"); - - // Input - printf("---- Graph Input Info ----\n"); - printf("Graph inputs number: %ld\n", graph->n_input); - for(int i = 0; i < graph->n_input; i++) - { - onnx_graph_input_info(graph->input[i]); - } - - // Output - printf("---- Graph Output Info ----\n"); - printf("Graph outputs number: %ld\n", graph->n_output); - for(int i = 0; i < graph->n_output; i++) - { - onnx_graph_output_info(graph->output[i]); - } - - // Nodes - printf("---- Graph Node Info ----\n"); - printf("Graph nodes number: %ld\n", graph->n_node); - Onnx__NodeProto* node = onnx_graph_get_node_by_input(graph, graph->input[0]->name); - - while(node != NULL) - { - onnx_graph_node_info(node); - node = onnx_graph_get_node_by_input(graph, node->output[0]); - } - -} - -void onnx_graph_input_info(Onnx__ValueInfoProto* input) -{ - printf("Input name %s\n", input->name); - - Onnx__TypeProto* type = input->type; - Onnx__TypeProto__Tensor* tensor_type = type->tensor_type; - Onnx__TensorShapeProto* shape = tensor_type->shape; - - printf("Input type %s\n", onnx_tensor_proto_data_type[tensor_type->elem_type]); - printf("Input dimension %ld\n", shape->n_dim); - - for(int i = 0; i < shape->n_dim; i++) - { - onnx_graph_value_tensor_shape_dimension_info(shape->dim[i]); - if( i != shape->n_dim - 1) - { - printf(" x "); - } - } - printf("\n"); -} - -void onnx_graph_value_tensor_shape_dimension_info(Onnx__TensorShapeProto__Dimension* dim) -{ - - switch (dim->value_case) - { - case ONNX__TENSOR_SHAPE_PROTO__DIMENSION__VALUE__NOT_SET: - printf("?"); - break; - case ONNX__TENSOR_SHAPE_PROTO__DIMENSION__VALUE_DIM_VALUE: - printf("%ld",dim->dim_value); - break; - case ONNX__TENSOR_SHAPE_PROTO__DIMENSION__VALUE_DIM_PARAM: - printf("%s",dim->dim_param); - break; - default: - printf("?"); - break; - } -} - -void onnx_graph_output_info(Onnx__ValueInfoProto* output) -{ - printf("Output name %s\n", output->name); - - Onnx__TypeProto* type = output->type; - Onnx__TypeProto__Tensor* tensor_type = type->tensor_type; - Onnx__TensorShapeProto* shape = tensor_type->shape; - - printf("Output type %s\n", onnx_tensor_proto_data_type[tensor_type->elem_type]); - printf("Output dimension %ld\n", shape->n_dim); - - for(int i = 0; i < shape->n_dim; i++) - { - onnx_graph_value_tensor_shape_dimension_info(shape->dim[i]); - if( i != shape->n_dim - 1) - { - printf(" x "); - } - } - printf("\n"); -} - -void onnx_graph_initializer_info(Onnx__TensorProto* initializer) -{ - printf("%s: [", initializer->name); - for(int i = 0; i < initializer->n_dims; i++) - { - printf("%ld, ", initializer->dims[i]); - } - printf("]\n"); - - printf("%s: [", initializer->name); - for(int i = 0; i < initializer->n_float_data; i++) - { - printf("%f, ", initializer->float_data[i]); - } - printf("]\n"); -} - -Onnx__NodeProto* onnx_graph_get_node_by_name(Onnx__GraphProto* graph, const char* node_name) -{ - for(int i = 0; i < graph->n_node; i++) - { - Onnx__NodeProto* node = graph->node[i]; - for(int j = 0; j < node->n_input; j++) - { - if( strcmp(node->name, node_name) == 0) - { - return node; - } - } - } - - return NULL; -} - -Onnx__NodeProto* onnx_graph_get_node_by_input(Onnx__GraphProto* graph, const char* input_name) -{ - for(int i = 0; i < graph->n_node; i++) - { - Onnx__NodeProto* node = graph->node[i]; - for(int j = 0; j < node->n_input; j++) - { - if( strcmp(node->input[j], input_name) == 0) - { - return node; - } - } - } - - return NULL; -} - -int* onnx_graph_get_weights_by_name(Onnx__GraphProto* graph, const char* node_name) -{ - Onnx__TensorProto** initializer = graph->initializer; - - for(int i = 0; i < graph->n_initializer; i++) - { - if( strcmp(graph->initializer[i]->name, node_name) == 0) - { - return graph->initializer[i]->float_data; - } - } - - return NULL; -} - -long* onnx_graph_get_dims_by_name(Onnx__GraphProto* graph, const char* node_name) -{ - Onnx__TensorProto** initializer = graph->initializer; - - for(int i = 0; i < graph->n_initializer; i++) - { - if( strcmp(graph->initializer[i]->name, node_name) == 0) - { - return graph->initializer[i]->dims; - } - } - - return NULL; -} - -long onnx_graph_get_dim_by_name(Onnx__GraphProto* graph, const char* node_name) -{ - Onnx__TensorProto** initializer = graph->initializer; - - for(int i = 0; i < graph->n_initializer; i++) - { - if( strcmp(graph->initializer[i]->name, node_name) == 0) - { - return graph->initializer[i]->n_dims; - } - } - - return -1; -} - -void onnx_graph_node_info(Onnx__NodeProto* node) -{ - printf("%-12s: %-30s -> %-30s [%s]\n", node->op_type, node->input[0], node->output[0], node->name); -} diff --git a/components/ai/onnx/operator_int/onnx-parser.h b/components/ai/onnx/operator_int/onnx-parser.h deleted file mode 100644 index 2399978b..00000000 --- a/components/ai/onnx/operator_int/onnx-parser.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __ONNX_PARSER_H__ -#define __ONNX_PARSER_H__ - -#include -#include -#include - -#include "onnx.pb-c.h" - -Onnx__ModelProto* onnx_load_model(const char* onnx_file_name); -void onnx_model_info(Onnx__ModelProto* model); -void onnx_graph_info(Onnx__GraphProto* graph); -void onnx_graph_info_sorted(Onnx__GraphProto* graph); -void onnx_graph_input_info(Onnx__ValueInfoProto* input); -void onnx_graph_output_info(Onnx__ValueInfoProto* output); -void onnx_graph_node_info(Onnx__NodeProto* node); -void onnx_graph_initializer_info(Onnx__TensorProto* initializer); - -Onnx__NodeProto* onnx_graph_get_node_by_name(Onnx__GraphProto* graph, const char* node_name); -Onnx__NodeProto* onnx_graph_get_node_by_input(Onnx__GraphProto* graph, const char* input_name); -long* onnx_graph_get_dims_by_name(Onnx__GraphProto* graph, const char* node_name); -long onnx_graph_get_dim_by_name(Onnx__GraphProto* graph, const char* node_name); -int* onnx_graph_get_weights_by_name(Onnx__GraphProto* graph, const char* node_name); - -void onnx_graph_value_tensor_shape_dimension_info(Onnx__TensorShapeProto__Dimension* dim); - -#endif //__ONNX_PARSER_H__ diff --git a/components/ai/onnx/operator_int/onnx.h b/components/ai/onnx/operator_int/onnx.h deleted file mode 100644 index 80b2c493..00000000 --- a/components/ai/onnx/operator_int/onnx.h +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef __ONNX_H__ -#define __ONNX_H__ - -#include -#include -#include -//#include -#include - -#include - -#define ONNX_USE_NWHC - -#ifdef ONNX_USE_NWHC - // NWHC - #define W_INDEX 0 - #define H_INDEX 1 - #define C_INDEX 2 -#else - // NCWH - #define C_INDEX 0 - #define W_INDEX 1 - #define H_INDEX 2 -#endif - -// Model -void onnx_tensor_info(const int* A, int64_t* shape, int64_t dim); -int* onnx_model_run(Onnx__ModelProto* model, int* input, int64_t* shapeInput); - -// Layers -int* conv2D_layer(Onnx__GraphProto* graph, const int *input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name); -int* relu_layer(Onnx__GraphProto* graph, const int *input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name); -int* maxpool_layer(Onnx__GraphProto* graph, int* input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name); -int* matmul_layer(Onnx__GraphProto* graph, const int *input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name); -int* add_layer(Onnx__GraphProto* graph, const int *input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name); -int* softmax_layer(Onnx__GraphProto* graph, const int *input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name); - -// Operators -int* transpose(const int* A, int64_t* shape, int64_t dim, int64_t* perm); - -void conv2D(const int *input, // input image - const uint16_t dim_im_in_x, // input image dimention x - const uint16_t dim_im_in_y, // input image dimention y - const uint16_t ch_im_in, // number of input image channels - const int *weight, // kernel weights - const uint16_t ch_im_out, // number of filters, i.e., output image channels - const uint16_t dim_kernel_x, // filter kernel size x - const uint16_t dim_kernel_y, // filter kernel size y - const uint16_t padding_x, // padding sizes x - const uint16_t padding_y, // padding sizes y - const uint16_t stride_x, // stride x - const uint16_t stride_y, // stride y - const int *bias, // bias - int *output, // output image - const uint16_t dim_im_out_x, // output image dimension x - const uint16_t dim_im_out_y // output image dimension y -); - -void relu(const int *input, uint32_t size, int* output); - -void maxpool(const int *input, - const uint16_t dim_im_in_x, // input image dimension x or W - const uint16_t dim_im_in_y, // input image dimension y or H - const uint16_t ch_im_in, // number of input image channels - const uint16_t dim_kernel_x, // window kernel size - const uint16_t dim_kernel_y, // window kernel size - const uint16_t padding_x, // padding sizes - const uint16_t padding_y, // padding sizes - const uint16_t stride_x, // stride - const uint16_t stride_y, // stride - const uint16_t dim_im_out_x, // output image dimension x or W - const uint16_t dim_im_out_y, // output image dimension y or H - int *output); - -void matmul(const int *input, // pointer to vector - const int *weight, // pointer to matrix - const uint16_t dim_vec, // length of the vector - const uint16_t num_of_rows, // numCol of A - int *output); - -void add(const int *input, // pointer to vector - const int *bias, // pointer to matrix - const uint16_t dim_vec, // length of the vector - int *output); - -void dense(const int *input, // pointer to vector - const int *weight, // pointer to matrix - const uint16_t dim_vec, // length of the vector - const uint16_t num_of_rows, // numCol of A - const int *bias, - int *output); - -void softmax(const int *input, const uint32_t dim_vec, int *output); - -#endif // __ONNX_H__ diff --git a/components/ai/onnx/operator_int/relu.c b/components/ai/onnx/operator_int/relu.c deleted file mode 100644 index 1c800a39..00000000 --- a/components/ai/onnx/operator_int/relu.c +++ /dev/null @@ -1,27 +0,0 @@ -#include "onnx.h" - -void relu(const int *input, uint32_t size, int* output) -{ - uint32_t i; - memcpy(output, input, sizeof(int) * size); - for (i = 0; i < size; i++) - { - if (output[i] < 0) - output[i] = 0; - } -} - -int* relu_layer(Onnx__GraphProto* graph, const int *input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name) -{ - //assert(graph != NULL && input != NULL && layer_name != "" ); - - int64_t len = shapeInput[0] * shapeInput[1] * shapeInput[2]; - int* output = (int*) malloc(sizeof(int)*len); - memset(output, 0, sizeof(sizeof(int)*len)); - - relu(input, len, output); - - memcpy(shapeInput, shapeOutput, sizeof(int64_t)*3); - - return output; -} diff --git a/components/ai/onnx/operator_int/softmax.c b/components/ai/onnx/operator_int/softmax.c deleted file mode 100644 index aa9b63b4..00000000 --- a/components/ai/onnx/operator_int/softmax.c +++ /dev/null @@ -1,57 +0,0 @@ -#include "onnx.h" -//#include - - -int abs_core(int x) -{ - return x > 0?x:-x; -} - -int exp_core(int x) -{ - x = 1 + (x << 8); - - x *= x; x *= x; x *= x; x *= x; - - x *= x; x *= x; x *= x; x *= x; - - return x; - -} - -void softmax(const int *input, const uint32_t dim_vec, int *output) -{ - long long sum = 0; - - for(int i = 0; i < dim_vec; i++) - { - output[i] = input[i] >> 16; - } - - /* - for(int i = 0; i < dim_vec; i++) - { - output[i] = abs_core(input[i] >> 16); - sum = sum + (output[i]); - } - printf("sum = %ld\r\n" , sum); - for(int i = 0; i < dim_vec; i++) - { - //output[i] = output[i] / (sum); - output[i] = sum / output[i]; - //output[i] = output[i]; - }*/ -} - -int* softmax_layer(Onnx__GraphProto* graph, const int *input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name) -{ - //assert(graph != NULL && input != NULL && layer_name != "" && shapeInput[1] > 0); - - int* output = (int*) malloc(sizeof(int)*shapeInput[1]); - memset(output, 0, sizeof(sizeof(int)*shapeInput[1])); - softmax(input, shapeInput[1], output); - - memcpy(shapeInput, shapeOutput, sizeof(int64_t)*3); - - return output; -} diff --git a/components/ai/onnx/operator_int/tencentos_libc.c b/components/ai/onnx/operator_int/tencentos_libc.c deleted file mode 100644 index 07ac206e..00000000 --- a/components/ai/onnx/operator_int/tencentos_libc.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "tos_k.h" - -#ifdef __CC_ARM -/* avoid the heap and heap-using library functions supplied by arm */ -#pragma import(__use_no_heap) -#endif - -void *malloc(size_t n) -{ - return tos_mmheap_alloc(n); -} - -void *realloc(void *rmem, size_t newsize) -{ - return tos_mmheap_realloc(rmem, newsize); -} - -void *calloc(size_t nelem, size_t elsize) -{ - return tos_mmheap_calloc(nelem, elsize); -} - -void free(void *rmem) -{ - tos_mmheap_free(rmem); -} \ No newline at end of file diff --git a/components/ai/onnx/operator_int/transpose.c b/components/ai/onnx/operator_int/transpose.c deleted file mode 100644 index b2a8ea87..00000000 --- a/components/ai/onnx/operator_int/transpose.c +++ /dev/null @@ -1,97 +0,0 @@ -#include "onnx.h" - -int* transpose(const int* A, int64_t* shape, int64_t dim, int64_t* perm) -{ - // Get array size - int elem = 1; - for(int i = 0; i < dim; i++) - { - elem = elem * shape[i]; - } - - // Malloc memory for B - int* B = malloc(sizeof(int) * elem); - if(B == NULL) - { - return NULL; - } - // Malloc memory for shapeB - int* shapeB = malloc(sizeof(int) * dim); - if( shapeB == NULL) - { - return NULL; - } - for(int i = 0; i < dim; i++) - { - shapeB[i] = shape[perm[i]]; - } - // Transpose - for(int src = 0; src < elem; src++) - { - // Get transposed B array - // A[1][0][3] -> B[3][1][0] - int temp = src; - int* indexA = malloc(sizeof(int) * dim); - if(indexA == NULL) - { - return NULL; - } - int* indexB = malloc(sizeof(int) * dim); - if(indexB == NULL) - { - return NULL; - } - for(int i = dim-1; i >= 0; i--) - { - indexA[i] = temp % shape[i]; - temp = temp / shape[i]; - } - for(int i = 0; i < dim; i++) - { - indexB[i] = indexA[perm[i]]; - } - - // Get transposed B index - // #15 A[1][0][3] -> B[3][1][0] #21 - int dst = 0; - temp = 1; - for(int i = dim - 1; i >= 0; i--) - { - dst = dst + indexB[i] * temp; - temp = temp * shapeB[i]; - } - - B[dst] = A[src]; - - free(indexA); - free(indexB); - } - - free(shapeB); - return B; -} - -int* transpose_layer(Onnx__GraphProto* graph, const int *input, int64_t* shapeInput, int64_t* shapeOutput, const char* layer_name) -{ - //assert(graph != NULL && input != NULL && layer_name != "" ); - - Onnx__NodeProto* node = onnx_graph_get_node_by_name(graph, layer_name); - if(node == NULL) - { - return NULL; - } - - int64_t perm_t[3]; - int64_t* perm = node->attribute[0]->ints; - perm_t[0] = perm[1] - 1; - perm_t[1] = perm[2] - 1; - perm_t[2] = perm[3] - 1; - - int* output = transpose(input, shapeInput, 3, perm_t); - - shapeOutput[0] = shapeInput[perm_t[0]]; - shapeOutput[1] = shapeInput[perm_t[1]]; - shapeOutput[2] = shapeInput[perm_t[2]]; - - return output; -} diff --git a/components/ai/onnx/pic/mnist_test.png b/components/ai/onnx/pic/mnist_test.png deleted file mode 100644 index 8fe248bf..00000000 Binary files a/components/ai/onnx/pic/mnist_test.png and /dev/null differ diff --git a/components/ai/onnx/platflorm/imx6ull/tencentos_libc_malloc.c b/components/ai/onnx/platflorm/imx6ull/tencentos_libc_malloc.c deleted file mode 100644 index 07ac206e..00000000 --- a/components/ai/onnx/platflorm/imx6ull/tencentos_libc_malloc.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "tos_k.h" - -#ifdef __CC_ARM -/* avoid the heap and heap-using library functions supplied by arm */ -#pragma import(__use_no_heap) -#endif - -void *malloc(size_t n) -{ - return tos_mmheap_alloc(n); -} - -void *realloc(void *rmem, size_t newsize) -{ - return tos_mmheap_realloc(rmem, newsize); -} - -void *calloc(size_t nelem, size_t elsize) -{ - return tos_mmheap_calloc(nelem, elsize); -} - -void free(void *rmem) -{ - tos_mmheap_free(rmem); -} \ No newline at end of file diff --git a/components/ai/onnx/protobuf/onnx.pb-c.c b/components/ai/onnx/protobuf/onnx.pb-c.c deleted file mode 100644 index c727de72..00000000 --- a/components/ai/onnx/protobuf/onnx.pb-c.c +++ /dev/null @@ -1,1780 +0,0 @@ -/* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: src/onnx.proto */ - -/* Do not generate deprecated warnings for self */ -#ifndef PROTOBUF_C__NO_DEPRECATED -#define PROTOBUF_C__NO_DEPRECATED -#endif - -#include "onnx.pb-c.h" -void onnx__attribute_proto__init - (Onnx__AttributeProto *message) -{ - static Onnx__AttributeProto init_value = ONNX__ATTRIBUTE_PROTO__INIT; - *message = init_value; -} -size_t onnx__attribute_proto__get_packed_size - (const Onnx__AttributeProto *message) -{ - ////assert(message->base.descriptor == &onnx__attribute_proto__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t onnx__attribute_proto__pack - (const Onnx__AttributeProto *message, - uint8_t *out) -{ - ////assert(message->base.descriptor == &onnx__attribute_proto__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t onnx__attribute_proto__pack_to_buffer - (const Onnx__AttributeProto *message, - ProtobufCBuffer *buffer) -{ - ////assert(message->base.descriptor == &onnx__attribute_proto__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Onnx__AttributeProto * - onnx__attribute_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Onnx__AttributeProto *) - protobuf_c_message_unpack (&onnx__attribute_proto__descriptor, - allocator, len, data); -} -void onnx__attribute_proto__free_unpacked - (Onnx__AttributeProto *message, - ProtobufCAllocator *allocator) -{ - ////assert(message->base.descriptor == &onnx__attribute_proto__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void onnx__value_info_proto__init - (Onnx__ValueInfoProto *message) -{ - static Onnx__ValueInfoProto init_value = ONNX__VALUE_INFO_PROTO__INIT; - *message = init_value; -} -size_t onnx__value_info_proto__get_packed_size - (const Onnx__ValueInfoProto *message) -{ - ////assert(message->base.descriptor == &onnx__value_info_proto__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t onnx__value_info_proto__pack - (const Onnx__ValueInfoProto *message, - uint8_t *out) -{ - ////assert(message->base.descriptor == &onnx__value_info_proto__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t onnx__value_info_proto__pack_to_buffer - (const Onnx__ValueInfoProto *message, - ProtobufCBuffer *buffer) -{ - ////assert(message->base.descriptor == &onnx__value_info_proto__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Onnx__ValueInfoProto * - onnx__value_info_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Onnx__ValueInfoProto *) - protobuf_c_message_unpack (&onnx__value_info_proto__descriptor, - allocator, len, data); -} -void onnx__value_info_proto__free_unpacked - (Onnx__ValueInfoProto *message, - ProtobufCAllocator *allocator) -{ - ////assert(message->base.descriptor == &onnx__value_info_proto__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void onnx__node_proto__init - (Onnx__NodeProto *message) -{ - static Onnx__NodeProto init_value = ONNX__NODE_PROTO__INIT; - *message = init_value; -} -size_t onnx__node_proto__get_packed_size - (const Onnx__NodeProto *message) -{ - ////assert(message->base.descriptor == &onnx__node_proto__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t onnx__node_proto__pack - (const Onnx__NodeProto *message, - uint8_t *out) -{ - ////assert(message->base.descriptor == &onnx__node_proto__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t onnx__node_proto__pack_to_buffer - (const Onnx__NodeProto *message, - ProtobufCBuffer *buffer) -{ - ////assert(message->base.descriptor == &onnx__node_proto__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Onnx__NodeProto * - onnx__node_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Onnx__NodeProto *) - protobuf_c_message_unpack (&onnx__node_proto__descriptor, - allocator, len, data); -} -void onnx__node_proto__free_unpacked - (Onnx__NodeProto *message, - ProtobufCAllocator *allocator) -{ - ////assert(message->base.descriptor == &onnx__node_proto__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void onnx__model_proto__init - (Onnx__ModelProto *message) -{ - static Onnx__ModelProto init_value = ONNX__MODEL_PROTO__INIT; - *message = init_value; -} -size_t onnx__model_proto__get_packed_size - (const Onnx__ModelProto *message) -{ - ////assert(message->base.descriptor == &onnx__model_proto__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t onnx__model_proto__pack - (const Onnx__ModelProto *message, - uint8_t *out) -{ - ////assert(message->base.descriptor == &onnx__model_proto__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t onnx__model_proto__pack_to_buffer - (const Onnx__ModelProto *message, - ProtobufCBuffer *buffer) -{ - ////assert(message->base.descriptor == &onnx__model_proto__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Onnx__ModelProto * - onnx__model_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Onnx__ModelProto *) - protobuf_c_message_unpack (&onnx__model_proto__descriptor, - allocator, len, data); -} -void onnx__model_proto__free_unpacked - (Onnx__ModelProto *message, - ProtobufCAllocator *allocator) -{ - ////assert(message->base.descriptor == &onnx__model_proto__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void onnx__string_string_entry_proto__init - (Onnx__StringStringEntryProto *message) -{ - static Onnx__StringStringEntryProto init_value = ONNX__STRING_STRING_ENTRY_PROTO__INIT; - *message = init_value; -} -size_t onnx__string_string_entry_proto__get_packed_size - (const Onnx__StringStringEntryProto *message) -{ - ////assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t onnx__string_string_entry_proto__pack - (const Onnx__StringStringEntryProto *message, - uint8_t *out) -{ - ////assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t onnx__string_string_entry_proto__pack_to_buffer - (const Onnx__StringStringEntryProto *message, - ProtobufCBuffer *buffer) -{ - ////assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Onnx__StringStringEntryProto * - onnx__string_string_entry_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Onnx__StringStringEntryProto *) - protobuf_c_message_unpack (&onnx__string_string_entry_proto__descriptor, - allocator, len, data); -} -void onnx__string_string_entry_proto__free_unpacked - (Onnx__StringStringEntryProto *message, - ProtobufCAllocator *allocator) -{ - ////assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void onnx__graph_proto__init - (Onnx__GraphProto *message) -{ - static Onnx__GraphProto init_value = ONNX__GRAPH_PROTO__INIT; - *message = init_value; -} -size_t onnx__graph_proto__get_packed_size - (const Onnx__GraphProto *message) -{ - ////assert(message->base.descriptor == &onnx__graph_proto__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t onnx__graph_proto__pack - (const Onnx__GraphProto *message, - uint8_t *out) -{ - ////assert(message->base.descriptor == &onnx__graph_proto__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t onnx__graph_proto__pack_to_buffer - (const Onnx__GraphProto *message, - ProtobufCBuffer *buffer) -{ - ////assert(message->base.descriptor == &onnx__graph_proto__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Onnx__GraphProto * - onnx__graph_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Onnx__GraphProto *) - protobuf_c_message_unpack (&onnx__graph_proto__descriptor, - allocator, len, data); -} -void onnx__graph_proto__free_unpacked - (Onnx__GraphProto *message, - ProtobufCAllocator *allocator) -{ - ////assert(message->base.descriptor == &onnx__graph_proto__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void onnx__tensor_proto__segment__init - (Onnx__TensorProto__Segment *message) -{ - static Onnx__TensorProto__Segment init_value = ONNX__TENSOR_PROTO__SEGMENT__INIT; - *message = init_value; -} -void onnx__tensor_proto__init - (Onnx__TensorProto *message) -{ - static Onnx__TensorProto init_value = ONNX__TENSOR_PROTO__INIT; - *message = init_value; -} -size_t onnx__tensor_proto__get_packed_size - (const Onnx__TensorProto *message) -{ - ////assert(message->base.descriptor == &onnx__tensor_proto__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t onnx__tensor_proto__pack - (const Onnx__TensorProto *message, - uint8_t *out) -{ - ////assert(message->base.descriptor == &onnx__tensor_proto__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t onnx__tensor_proto__pack_to_buffer - (const Onnx__TensorProto *message, - ProtobufCBuffer *buffer) -{ - ////assert(message->base.descriptor == &onnx__tensor_proto__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Onnx__TensorProto * - onnx__tensor_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Onnx__TensorProto *) - protobuf_c_message_unpack (&onnx__tensor_proto__descriptor, - allocator, len, data); -} -void onnx__tensor_proto__free_unpacked - (Onnx__TensorProto *message, - ProtobufCAllocator *allocator) -{ - ////assert(message->base.descriptor == &onnx__tensor_proto__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void onnx__tensor_shape_proto__dimension__init - (Onnx__TensorShapeProto__Dimension *message) -{ - static Onnx__TensorShapeProto__Dimension init_value = ONNX__TENSOR_SHAPE_PROTO__DIMENSION__INIT; - *message = init_value; -} -void onnx__tensor_shape_proto__init - (Onnx__TensorShapeProto *message) -{ - static Onnx__TensorShapeProto init_value = ONNX__TENSOR_SHAPE_PROTO__INIT; - *message = init_value; -} -size_t onnx__tensor_shape_proto__get_packed_size - (const Onnx__TensorShapeProto *message) -{ - ////assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t onnx__tensor_shape_proto__pack - (const Onnx__TensorShapeProto *message, - uint8_t *out) -{ - ////assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t onnx__tensor_shape_proto__pack_to_buffer - (const Onnx__TensorShapeProto *message, - ProtobufCBuffer *buffer) -{ - ////assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Onnx__TensorShapeProto * - onnx__tensor_shape_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Onnx__TensorShapeProto *) - protobuf_c_message_unpack (&onnx__tensor_shape_proto__descriptor, - allocator, len, data); -} -void onnx__tensor_shape_proto__free_unpacked - (Onnx__TensorShapeProto *message, - ProtobufCAllocator *allocator) -{ - ////assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void onnx__type_proto__tensor__init - (Onnx__TypeProto__Tensor *message) -{ - static Onnx__TypeProto__Tensor init_value = ONNX__TYPE_PROTO__TENSOR__INIT; - *message = init_value; -} -void onnx__type_proto__init - (Onnx__TypeProto *message) -{ - static Onnx__TypeProto init_value = ONNX__TYPE_PROTO__INIT; - *message = init_value; -} -size_t onnx__type_proto__get_packed_size - (const Onnx__TypeProto *message) -{ - ////assert(message->base.descriptor == &onnx__type_proto__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t onnx__type_proto__pack - (const Onnx__TypeProto *message, - uint8_t *out) -{ - ////assert(message->base.descriptor == &onnx__type_proto__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t onnx__type_proto__pack_to_buffer - (const Onnx__TypeProto *message, - ProtobufCBuffer *buffer) -{ - ////assert(message->base.descriptor == &onnx__type_proto__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Onnx__TypeProto * - onnx__type_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Onnx__TypeProto *) - protobuf_c_message_unpack (&onnx__type_proto__descriptor, - allocator, len, data); -} -void onnx__type_proto__free_unpacked - (Onnx__TypeProto *message, - ProtobufCAllocator *allocator) -{ - ////assert(message->base.descriptor == &onnx__type_proto__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void onnx__operator_set_id_proto__init - (Onnx__OperatorSetIdProto *message) -{ - static Onnx__OperatorSetIdProto init_value = ONNX__OPERATOR_SET_ID_PROTO__INIT; - *message = init_value; -} -size_t onnx__operator_set_id_proto__get_packed_size - (const Onnx__OperatorSetIdProto *message) -{ - ////assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t onnx__operator_set_id_proto__pack - (const Onnx__OperatorSetIdProto *message, - uint8_t *out) -{ - //////assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t onnx__operator_set_id_proto__pack_to_buffer - (const Onnx__OperatorSetIdProto *message, - ProtobufCBuffer *buffer) -{ - ////assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Onnx__OperatorSetIdProto * - onnx__operator_set_id_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Onnx__OperatorSetIdProto *) - protobuf_c_message_unpack (&onnx__operator_set_id_proto__descriptor, - allocator, len, data); -} -void onnx__operator_set_id_proto__free_unpacked - (Onnx__OperatorSetIdProto *message, - ProtobufCAllocator *allocator) -{ - //////assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -static const ProtobufCEnumValue onnx__attribute_proto__attribute_type__enum_values_by_number[11] = -{ - { "UNDEFINED", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__UNDEFINED", 0 }, - { "FLOAT", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__FLOAT", 1 }, - { "INT", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__INT", 2 }, - { "STRING", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__STRING", 3 }, - { "TENSOR", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TENSOR", 4 }, - { "GRAPH", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__GRAPH", 5 }, - { "FLOATS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__FLOATS", 6 }, - { "INTS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__INTS", 7 }, - { "STRINGS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__STRINGS", 8 }, - { "TENSORS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TENSORS", 9 }, - { "GRAPHS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__GRAPHS", 10 }, -}; -static const ProtobufCIntRange onnx__attribute_proto__attribute_type__value_ranges[] = { -{0, 0},{0, 11} -}; -static const ProtobufCEnumValueIndex onnx__attribute_proto__attribute_type__enum_values_by_name[11] = -{ - { "FLOAT", 1 }, - { "FLOATS", 6 }, - { "GRAPH", 5 }, - { "GRAPHS", 10 }, - { "INT", 2 }, - { "INTS", 7 }, - { "STRING", 3 }, - { "STRINGS", 8 }, - { "TENSOR", 4 }, - { "TENSORS", 9 }, - { "UNDEFINED", 0 }, -}; -const ProtobufCEnumDescriptor onnx__attribute_proto__attribute_type__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "onnx.AttributeProto.AttributeType", - "AttributeType", - "Onnx__AttributeProto__AttributeType", - "onnx", - 11, - onnx__attribute_proto__attribute_type__enum_values_by_number, - 11, - onnx__attribute_proto__attribute_type__enum_values_by_name, - 1, - onnx__attribute_proto__attribute_type__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCFieldDescriptor onnx__attribute_proto__field_descriptors[14] = -{ - { - "name", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__AttributeProto, name), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "f", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_FLOAT, - offsetof(Onnx__AttributeProto, has_f), - offsetof(Onnx__AttributeProto, f), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "i", - 3, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_INT64, - offsetof(Onnx__AttributeProto, has_i), - offsetof(Onnx__AttributeProto, i), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "s", - 4, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_BYTES, - offsetof(Onnx__AttributeProto, has_s), - offsetof(Onnx__AttributeProto, s), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "t", - 5, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(Onnx__AttributeProto, t), - &onnx__tensor_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "g", - 6, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(Onnx__AttributeProto, g), - &onnx__graph_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "floats", - 7, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_FLOAT, - offsetof(Onnx__AttributeProto, n_floats), - offsetof(Onnx__AttributeProto, floats), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ints", - 8, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_INT64, - offsetof(Onnx__AttributeProto, n_ints), - offsetof(Onnx__AttributeProto, ints), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "strings", - 9, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_BYTES, - offsetof(Onnx__AttributeProto, n_strings), - offsetof(Onnx__AttributeProto, strings), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "tensors", - 10, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__AttributeProto, n_tensors), - offsetof(Onnx__AttributeProto, tensors), - &onnx__tensor_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "graphs", - 11, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__AttributeProto, n_graphs), - offsetof(Onnx__AttributeProto, graphs), - &onnx__graph_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "doc_string", - 13, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__AttributeProto, doc_string), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "type", - 20, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_ENUM, - offsetof(Onnx__AttributeProto, has_type), - offsetof(Onnx__AttributeProto, type), - &onnx__attribute_proto__attribute_type__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ref_attr_name", - 21, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__AttributeProto, ref_attr_name), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__attribute_proto__field_indices_by_name[] = { - 11, /* field[11] = doc_string */ - 1, /* field[1] = f */ - 6, /* field[6] = floats */ - 5, /* field[5] = g */ - 10, /* field[10] = graphs */ - 2, /* field[2] = i */ - 7, /* field[7] = ints */ - 0, /* field[0] = name */ - 13, /* field[13] = ref_attr_name */ - 3, /* field[3] = s */ - 8, /* field[8] = strings */ - 4, /* field[4] = t */ - 9, /* field[9] = tensors */ - 12, /* field[12] = type */ -}; -static const ProtobufCIntRange onnx__attribute_proto__number_ranges[3 + 1] = -{ - { 1, 0 }, - { 13, 11 }, - { 20, 12 }, - { 0, 14 } -}; -const ProtobufCMessageDescriptor onnx__attribute_proto__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.AttributeProto", - "AttributeProto", - "Onnx__AttributeProto", - "onnx", - sizeof(Onnx__AttributeProto), - 14, - onnx__attribute_proto__field_descriptors, - onnx__attribute_proto__field_indices_by_name, - 3, onnx__attribute_proto__number_ranges, - (ProtobufCMessageInit) onnx__attribute_proto__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor onnx__value_info_proto__field_descriptors[3] = -{ - { - "name", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__ValueInfoProto, name), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "type", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(Onnx__ValueInfoProto, type), - &onnx__type_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "doc_string", - 3, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__ValueInfoProto, doc_string), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__value_info_proto__field_indices_by_name[] = { - 2, /* field[2] = doc_string */ - 0, /* field[0] = name */ - 1, /* field[1] = type */ -}; -static const ProtobufCIntRange onnx__value_info_proto__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor onnx__value_info_proto__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.ValueInfoProto", - "ValueInfoProto", - "Onnx__ValueInfoProto", - "onnx", - sizeof(Onnx__ValueInfoProto), - 3, - onnx__value_info_proto__field_descriptors, - onnx__value_info_proto__field_indices_by_name, - 1, onnx__value_info_proto__number_ranges, - (ProtobufCMessageInit) onnx__value_info_proto__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor onnx__node_proto__field_descriptors[7] = -{ - { - "input", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_STRING, - offsetof(Onnx__NodeProto, n_input), - offsetof(Onnx__NodeProto, input), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "output", - 2, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_STRING, - offsetof(Onnx__NodeProto, n_output), - offsetof(Onnx__NodeProto, output), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "name", - 3, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__NodeProto, name), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "op_type", - 4, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__NodeProto, op_type), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "attribute", - 5, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__NodeProto, n_attribute), - offsetof(Onnx__NodeProto, attribute), - &onnx__attribute_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "doc_string", - 6, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__NodeProto, doc_string), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "domain", - 7, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__NodeProto, domain), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__node_proto__field_indices_by_name[] = { - 4, /* field[4] = attribute */ - 5, /* field[5] = doc_string */ - 6, /* field[6] = domain */ - 0, /* field[0] = input */ - 2, /* field[2] = name */ - 3, /* field[3] = op_type */ - 1, /* field[1] = output */ -}; -static const ProtobufCIntRange onnx__node_proto__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 7 } -}; -const ProtobufCMessageDescriptor onnx__node_proto__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.NodeProto", - "NodeProto", - "Onnx__NodeProto", - "onnx", - sizeof(Onnx__NodeProto), - 7, - onnx__node_proto__field_descriptors, - onnx__node_proto__field_indices_by_name, - 1, onnx__node_proto__number_ranges, - (ProtobufCMessageInit) onnx__node_proto__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor onnx__model_proto__field_descriptors[9] = -{ - { - "ir_version", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_INT64, - offsetof(Onnx__ModelProto, has_ir_version), - offsetof(Onnx__ModelProto, ir_version), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "producer_name", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__ModelProto, producer_name), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "producer_version", - 3, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__ModelProto, producer_version), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "domain", - 4, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__ModelProto, domain), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "model_version", - 5, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_INT64, - offsetof(Onnx__ModelProto, has_model_version), - offsetof(Onnx__ModelProto, model_version), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "doc_string", - 6, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__ModelProto, doc_string), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "graph", - 7, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(Onnx__ModelProto, graph), - &onnx__graph_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "opset_import", - 8, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__ModelProto, n_opset_import), - offsetof(Onnx__ModelProto, opset_import), - &onnx__operator_set_id_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "metadata_props", - 14, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__ModelProto, n_metadata_props), - offsetof(Onnx__ModelProto, metadata_props), - &onnx__string_string_entry_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__model_proto__field_indices_by_name[] = { - 5, /* field[5] = doc_string */ - 3, /* field[3] = domain */ - 6, /* field[6] = graph */ - 0, /* field[0] = ir_version */ - 8, /* field[8] = metadata_props */ - 4, /* field[4] = model_version */ - 7, /* field[7] = opset_import */ - 1, /* field[1] = producer_name */ - 2, /* field[2] = producer_version */ -}; -static const ProtobufCIntRange onnx__model_proto__number_ranges[2 + 1] = -{ - { 1, 0 }, - { 14, 8 }, - { 0, 9 } -}; -const ProtobufCMessageDescriptor onnx__model_proto__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.ModelProto", - "ModelProto", - "Onnx__ModelProto", - "onnx", - sizeof(Onnx__ModelProto), - 9, - onnx__model_proto__field_descriptors, - onnx__model_proto__field_indices_by_name, - 2, onnx__model_proto__number_ranges, - (ProtobufCMessageInit) onnx__model_proto__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor onnx__string_string_entry_proto__field_descriptors[2] = -{ - { - "key", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__StringStringEntryProto, key), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "value", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__StringStringEntryProto, value), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__string_string_entry_proto__field_indices_by_name[] = { - 0, /* field[0] = key */ - 1, /* field[1] = value */ -}; -static const ProtobufCIntRange onnx__string_string_entry_proto__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor onnx__string_string_entry_proto__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.StringStringEntryProto", - "StringStringEntryProto", - "Onnx__StringStringEntryProto", - "onnx", - sizeof(Onnx__StringStringEntryProto), - 2, - onnx__string_string_entry_proto__field_descriptors, - onnx__string_string_entry_proto__field_indices_by_name, - 1, onnx__string_string_entry_proto__number_ranges, - (ProtobufCMessageInit) onnx__string_string_entry_proto__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor onnx__graph_proto__field_descriptors[7] = -{ - { - "node", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__GraphProto, n_node), - offsetof(Onnx__GraphProto, node), - &onnx__node_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "name", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__GraphProto, name), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "initializer", - 5, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__GraphProto, n_initializer), - offsetof(Onnx__GraphProto, initializer), - &onnx__tensor_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "doc_string", - 10, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__GraphProto, doc_string), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "input", - 11, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__GraphProto, n_input), - offsetof(Onnx__GraphProto, input), - &onnx__value_info_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "output", - 12, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__GraphProto, n_output), - offsetof(Onnx__GraphProto, output), - &onnx__value_info_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "value_info", - 13, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__GraphProto, n_value_info), - offsetof(Onnx__GraphProto, value_info), - &onnx__value_info_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__graph_proto__field_indices_by_name[] = { - 3, /* field[3] = doc_string */ - 2, /* field[2] = initializer */ - 4, /* field[4] = input */ - 1, /* field[1] = name */ - 0, /* field[0] = node */ - 5, /* field[5] = output */ - 6, /* field[6] = value_info */ -}; -static const ProtobufCIntRange onnx__graph_proto__number_ranges[3 + 1] = -{ - { 1, 0 }, - { 5, 2 }, - { 10, 3 }, - { 0, 7 } -}; -const ProtobufCMessageDescriptor onnx__graph_proto__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.GraphProto", - "GraphProto", - "Onnx__GraphProto", - "onnx", - sizeof(Onnx__GraphProto), - 7, - onnx__graph_proto__field_descriptors, - onnx__graph_proto__field_indices_by_name, - 3, onnx__graph_proto__number_ranges, - (ProtobufCMessageInit) onnx__graph_proto__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor onnx__tensor_proto__segment__field_descriptors[2] = -{ - { - "begin", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_INT64, - offsetof(Onnx__TensorProto__Segment, has_begin), - offsetof(Onnx__TensorProto__Segment, begin), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "end", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_INT64, - offsetof(Onnx__TensorProto__Segment, has_end), - offsetof(Onnx__TensorProto__Segment, end), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__tensor_proto__segment__field_indices_by_name[] = { - 0, /* field[0] = begin */ - 1, /* field[1] = end */ -}; -static const ProtobufCIntRange onnx__tensor_proto__segment__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor onnx__tensor_proto__segment__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.TensorProto.Segment", - "Segment", - "Onnx__TensorProto__Segment", - "onnx", - sizeof(Onnx__TensorProto__Segment), - 2, - onnx__tensor_proto__segment__field_descriptors, - onnx__tensor_proto__segment__field_indices_by_name, - 1, onnx__tensor_proto__segment__number_ranges, - (ProtobufCMessageInit) onnx__tensor_proto__segment__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCEnumValue onnx__tensor_proto__data_type__enum_values_by_number[16] = -{ - { "UNDEFINED", "ONNX__TENSOR_PROTO__DATA_TYPE__UNDEFINED", 0 }, - { "FLOAT", "ONNX__TENSOR_PROTO__DATA_TYPE__FLOAT", 1 }, - { "UINT8", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT8", 2 }, - { "INT8", "ONNX__TENSOR_PROTO__DATA_TYPE__INT8", 3 }, - { "UINT16", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT16", 4 }, - { "INT16", "ONNX__TENSOR_PROTO__DATA_TYPE__INT16", 5 }, - { "INT32", "ONNX__TENSOR_PROTO__DATA_TYPE__INT32", 6 }, - { "INT64", "ONNX__TENSOR_PROTO__DATA_TYPE__INT64", 7 }, - { "STRING", "ONNX__TENSOR_PROTO__DATA_TYPE__STRING", 8 }, - { "BOOL", "ONNX__TENSOR_PROTO__DATA_TYPE__BOOL", 9 }, - { "FLOAT16", "ONNX__TENSOR_PROTO__DATA_TYPE__FLOAT16", 10 }, - { "DOUBLE", "ONNX__TENSOR_PROTO__DATA_TYPE__DOUBLE", 11 }, - { "UINT32", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT32", 12 }, - { "UINT64", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT64", 13 }, - { "COMPLEX64", "ONNX__TENSOR_PROTO__DATA_TYPE__COMPLEX64", 14 }, - { "COMPLEX128", "ONNX__TENSOR_PROTO__DATA_TYPE__COMPLEX128", 15 }, -}; -static const ProtobufCIntRange onnx__tensor_proto__data_type__value_ranges[] = { -{0, 0},{0, 16} -}; -static const ProtobufCEnumValueIndex onnx__tensor_proto__data_type__enum_values_by_name[16] = -{ - { "BOOL", 9 }, - { "COMPLEX128", 15 }, - { "COMPLEX64", 14 }, - { "DOUBLE", 11 }, - { "FLOAT", 1 }, - { "FLOAT16", 10 }, - { "INT16", 5 }, - { "INT32", 6 }, - { "INT64", 7 }, - { "INT8", 3 }, - { "STRING", 8 }, - { "UINT16", 4 }, - { "UINT32", 12 }, - { "UINT64", 13 }, - { "UINT8", 2 }, - { "UNDEFINED", 0 }, -}; -const ProtobufCEnumDescriptor onnx__tensor_proto__data_type__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "onnx.TensorProto.DataType", - "DataType", - "Onnx__TensorProto__DataType", - "onnx", - 16, - onnx__tensor_proto__data_type__enum_values_by_number, - 16, - onnx__tensor_proto__data_type__enum_values_by_name, - 1, - onnx__tensor_proto__data_type__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCFieldDescriptor onnx__tensor_proto__field_descriptors[12] = -{ - { - "dims", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_INT64, - offsetof(Onnx__TensorProto, n_dims), - offsetof(Onnx__TensorProto, dims), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "data_type", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_ENUM, - offsetof(Onnx__TensorProto, has_data_type), - offsetof(Onnx__TensorProto, data_type), - &onnx__tensor_proto__data_type__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "segment", - 3, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(Onnx__TensorProto, segment), - &onnx__tensor_proto__segment__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "float_data", - 4, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_FLOAT, - offsetof(Onnx__TensorProto, n_float_data), - offsetof(Onnx__TensorProto, float_data), - NULL, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "int32_data", - 5, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_INT32, - offsetof(Onnx__TensorProto, n_int32_data), - offsetof(Onnx__TensorProto, int32_data), - NULL, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "string_data", - 6, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_BYTES, - offsetof(Onnx__TensorProto, n_string_data), - offsetof(Onnx__TensorProto, string_data), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "int64_data", - 7, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_INT64, - offsetof(Onnx__TensorProto, n_int64_data), - offsetof(Onnx__TensorProto, int64_data), - NULL, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "name", - 8, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__TensorProto, name), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "raw_data", - 9, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_BYTES, - offsetof(Onnx__TensorProto, has_raw_data), - offsetof(Onnx__TensorProto, raw_data), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "double_data", - 10, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_DOUBLE, - offsetof(Onnx__TensorProto, n_double_data), - offsetof(Onnx__TensorProto, double_data), - NULL, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "uint64_data", - 11, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_UINT64, - offsetof(Onnx__TensorProto, n_uint64_data), - offsetof(Onnx__TensorProto, uint64_data), - NULL, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_PACKED, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "doc_string", - 12, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__TensorProto, doc_string), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__tensor_proto__field_indices_by_name[] = { - 1, /* field[1] = data_type */ - 0, /* field[0] = dims */ - 11, /* field[11] = doc_string */ - 9, /* field[9] = double_data */ - 3, /* field[3] = float_data */ - 4, /* field[4] = int32_data */ - 6, /* field[6] = int64_data */ - 7, /* field[7] = name */ - 8, /* field[8] = raw_data */ - 2, /* field[2] = segment */ - 5, /* field[5] = string_data */ - 10, /* field[10] = uint64_data */ -}; -static const ProtobufCIntRange onnx__tensor_proto__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 12 } -}; -const ProtobufCMessageDescriptor onnx__tensor_proto__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.TensorProto", - "TensorProto", - "Onnx__TensorProto", - "onnx", - sizeof(Onnx__TensorProto), - 12, - onnx__tensor_proto__field_descriptors, - onnx__tensor_proto__field_indices_by_name, - 1, onnx__tensor_proto__number_ranges, - (ProtobufCMessageInit) onnx__tensor_proto__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor onnx__tensor_shape_proto__dimension__field_descriptors[3] = -{ - { - "dim_value", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_INT64, - offsetof(Onnx__TensorShapeProto__Dimension, value_case), - offsetof(Onnx__TensorShapeProto__Dimension, dim_value), - NULL, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dim_param", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - offsetof(Onnx__TensorShapeProto__Dimension, value_case), - offsetof(Onnx__TensorShapeProto__Dimension, dim_param), - NULL, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "denotation", - 3, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__TensorShapeProto__Dimension, denotation), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__tensor_shape_proto__dimension__field_indices_by_name[] = { - 2, /* field[2] = denotation */ - 1, /* field[1] = dim_param */ - 0, /* field[0] = dim_value */ -}; -static const ProtobufCIntRange onnx__tensor_shape_proto__dimension__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor onnx__tensor_shape_proto__dimension__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.TensorShapeProto.Dimension", - "Dimension", - "Onnx__TensorShapeProto__Dimension", - "onnx", - sizeof(Onnx__TensorShapeProto__Dimension), - 3, - onnx__tensor_shape_proto__dimension__field_descriptors, - onnx__tensor_shape_proto__dimension__field_indices_by_name, - 1, onnx__tensor_shape_proto__dimension__number_ranges, - (ProtobufCMessageInit) onnx__tensor_shape_proto__dimension__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor onnx__tensor_shape_proto__field_descriptors[1] = -{ - { - "dim", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__TensorShapeProto, n_dim), - offsetof(Onnx__TensorShapeProto, dim), - &onnx__tensor_shape_proto__dimension__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__tensor_shape_proto__field_indices_by_name[] = { - 0, /* field[0] = dim */ -}; -static const ProtobufCIntRange onnx__tensor_shape_proto__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor onnx__tensor_shape_proto__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.TensorShapeProto", - "TensorShapeProto", - "Onnx__TensorShapeProto", - "onnx", - sizeof(Onnx__TensorShapeProto), - 1, - onnx__tensor_shape_proto__field_descriptors, - onnx__tensor_shape_proto__field_indices_by_name, - 1, onnx__tensor_shape_proto__number_ranges, - (ProtobufCMessageInit) onnx__tensor_shape_proto__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor onnx__type_proto__tensor__field_descriptors[2] = -{ - { - "elem_type", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_ENUM, - offsetof(Onnx__TypeProto__Tensor, has_elem_type), - offsetof(Onnx__TypeProto__Tensor, elem_type), - &onnx__tensor_proto__data_type__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "shape", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(Onnx__TypeProto__Tensor, shape), - &onnx__tensor_shape_proto__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__type_proto__tensor__field_indices_by_name[] = { - 0, /* field[0] = elem_type */ - 1, /* field[1] = shape */ -}; -static const ProtobufCIntRange onnx__type_proto__tensor__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor onnx__type_proto__tensor__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.TypeProto.Tensor", - "Tensor", - "Onnx__TypeProto__Tensor", - "onnx", - sizeof(Onnx__TypeProto__Tensor), - 2, - onnx__type_proto__tensor__field_descriptors, - onnx__type_proto__tensor__field_indices_by_name, - 1, onnx__type_proto__tensor__number_ranges, - (ProtobufCMessageInit) onnx__type_proto__tensor__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor onnx__type_proto__field_descriptors[2] = -{ - { - "tensor_type", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Onnx__TypeProto, value_case), - offsetof(Onnx__TypeProto, tensor_type), - &onnx__type_proto__tensor__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "denotation", - 6, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__TypeProto, denotation), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__type_proto__field_indices_by_name[] = { - 1, /* field[1] = denotation */ - 0, /* field[0] = tensor_type */ -}; -static const ProtobufCIntRange onnx__type_proto__number_ranges[2 + 1] = -{ - { 1, 0 }, - { 6, 1 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor onnx__type_proto__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.TypeProto", - "TypeProto", - "Onnx__TypeProto", - "onnx", - sizeof(Onnx__TypeProto), - 2, - onnx__type_proto__field_descriptors, - onnx__type_proto__field_indices_by_name, - 2, onnx__type_proto__number_ranges, - (ProtobufCMessageInit) onnx__type_proto__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor onnx__operator_set_id_proto__field_descriptors[2] = -{ - { - "domain", - 1, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_STRING, - 0, /* quantifier_offset */ - offsetof(Onnx__OperatorSetIdProto, domain), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "version", - 2, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_INT64, - offsetof(Onnx__OperatorSetIdProto, has_version), - offsetof(Onnx__OperatorSetIdProto, version), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned onnx__operator_set_id_proto__field_indices_by_name[] = { - 0, /* field[0] = domain */ - 1, /* field[1] = version */ -}; -static const ProtobufCIntRange onnx__operator_set_id_proto__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor onnx__operator_set_id_proto__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "onnx.OperatorSetIdProto", - "OperatorSetIdProto", - "Onnx__OperatorSetIdProto", - "onnx", - sizeof(Onnx__OperatorSetIdProto), - 2, - onnx__operator_set_id_proto__field_descriptors, - onnx__operator_set_id_proto__field_indices_by_name, - 1, onnx__operator_set_id_proto__number_ranges, - (ProtobufCMessageInit) onnx__operator_set_id_proto__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCEnumValue onnx__version__enum_values_by_number[4] = -{ - { "_START_VERSION", "ONNX__VERSION___START_VERSION", 0 }, - { "IR_VERSION_2017_10_10", "ONNX__VERSION__IR_VERSION_2017_10_10", 1 }, - { "IR_VERSION_2017_10_30", "ONNX__VERSION__IR_VERSION_2017_10_30", 2 }, - { "IR_VERSION", "ONNX__VERSION__IR_VERSION", 3 }, -}; -static const ProtobufCIntRange onnx__version__value_ranges[] = { -{0, 0},{0, 4} -}; -static const ProtobufCEnumValueIndex onnx__version__enum_values_by_name[4] = -{ - { "IR_VERSION", 3 }, - { "IR_VERSION_2017_10_10", 1 }, - { "IR_VERSION_2017_10_30", 2 }, - { "_START_VERSION", 0 }, -}; -const ProtobufCEnumDescriptor onnx__version__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "onnx.Version", - "Version", - "Onnx__Version", - "onnx", - 4, - onnx__version__enum_values_by_number, - 4, - onnx__version__enum_values_by_name, - 1, - onnx__version__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; diff --git a/components/ai/onnx/protobuf/onnx.pb-c.h b/components/ai/onnx/protobuf/onnx.pb-c.h deleted file mode 100644 index b9ad4e7a..00000000 --- a/components/ai/onnx/protobuf/onnx.pb-c.h +++ /dev/null @@ -1,981 +0,0 @@ -/* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: src/onnx.proto */ - -#ifndef PROTOBUF_C_src_2fonnx_2eproto__INCLUDED -#define PROTOBUF_C_src_2fonnx_2eproto__INCLUDED - -#include - -PROTOBUF_C__BEGIN_DECLS - -#if PROTOBUF_C_VERSION_NUMBER < 1000000 -# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. -#elif 1002001 < PROTOBUF_C_MIN_COMPILER_VERSION -# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. -#endif - - -typedef struct _Onnx__AttributeProto Onnx__AttributeProto; -typedef struct _Onnx__ValueInfoProto Onnx__ValueInfoProto; -typedef struct _Onnx__NodeProto Onnx__NodeProto; -typedef struct _Onnx__ModelProto Onnx__ModelProto; -typedef struct _Onnx__StringStringEntryProto Onnx__StringStringEntryProto; -typedef struct _Onnx__GraphProto Onnx__GraphProto; -typedef struct _Onnx__TensorProto Onnx__TensorProto; -typedef struct _Onnx__TensorProto__Segment Onnx__TensorProto__Segment; -typedef struct _Onnx__TensorShapeProto Onnx__TensorShapeProto; -typedef struct _Onnx__TensorShapeProto__Dimension Onnx__TensorShapeProto__Dimension; -typedef struct _Onnx__TypeProto Onnx__TypeProto; -typedef struct _Onnx__TypeProto__Tensor Onnx__TypeProto__Tensor; -typedef struct _Onnx__OperatorSetIdProto Onnx__OperatorSetIdProto; - - -/* --- enums --- */ - -/* - * Note: this enum is structurally identical to the OpSchema::AttrType - * enum defined in schema.h. If you rev one, you likely need to rev the other. - */ -typedef enum _Onnx__AttributeProto__AttributeType { - ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__UNDEFINED = 0, - ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__FLOAT = 1, - ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__INT = 2, - ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__STRING = 3, - ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TENSOR = 4, - ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__GRAPH = 5, - ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__FLOATS = 6, - ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__INTS = 7, - ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__STRINGS = 8, - ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TENSORS = 9, - ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__GRAPHS = 10 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE) -} Onnx__AttributeProto__AttributeType; -typedef enum _Onnx__TensorProto__DataType { - ONNX__TENSOR_PROTO__DATA_TYPE__UNDEFINED = 0, - /* - * Basic types. - */ - /* - * int - */ - ONNX__TENSOR_PROTO__DATA_TYPE__FLOAT = 1, - /* - * uint8_t - */ - ONNX__TENSOR_PROTO__DATA_TYPE__UINT8 = 2, - /* - * int8_t - */ - ONNX__TENSOR_PROTO__DATA_TYPE__INT8 = 3, - /* - * uint16_t - */ - ONNX__TENSOR_PROTO__DATA_TYPE__UINT16 = 4, - /* - * int16_t - */ - ONNX__TENSOR_PROTO__DATA_TYPE__INT16 = 5, - /* - * int32_t - */ - ONNX__TENSOR_PROTO__DATA_TYPE__INT32 = 6, - /* - * int64_t - */ - ONNX__TENSOR_PROTO__DATA_TYPE__INT64 = 7, - /* - * string - */ - ONNX__TENSOR_PROTO__DATA_TYPE__STRING = 8, - /* - * bool - */ - ONNX__TENSOR_PROTO__DATA_TYPE__BOOL = 9, - /* - * Advanced types - */ - ONNX__TENSOR_PROTO__DATA_TYPE__FLOAT16 = 10, - ONNX__TENSOR_PROTO__DATA_TYPE__DOUBLE = 11, - ONNX__TENSOR_PROTO__DATA_TYPE__UINT32 = 12, - ONNX__TENSOR_PROTO__DATA_TYPE__UINT64 = 13, - /* - * complex with float32 real and imaginary components - */ - ONNX__TENSOR_PROTO__DATA_TYPE__COMPLEX64 = 14, - /* - * complex with float64 real and imaginary components - */ - ONNX__TENSOR_PROTO__DATA_TYPE__COMPLEX128 = 15 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(ONNX__TENSOR_PROTO__DATA_TYPE) -} Onnx__TensorProto__DataType; -/* - * Versioning - * ONNX versioning is specified in docs/IR.md and elaborated on in docs/Versioning.md - * To be compatible with both proto2 and proto3, we will use a version number - * that is not defined by the default value but an explicit enum number. - */ -typedef enum _Onnx__Version { - /* - * proto3 requires the first enum value to be zero. - * We add this just to appease the compiler. - */ - ONNX__VERSION___START_VERSION = 0, - /* - * The version field is always serialized and we will use it to store the - * version that the graph is generated from. This helps us set up version - * control. - * For the IR, we are using simple numbers starting with with 0x00000001, - * which was the version we published on Oct 10, 2017. - */ - ONNX__VERSION__IR_VERSION_2017_10_10 = 1, - /* - * IR_VERSION 2 published on Oct 30, 2017 - * - Added type discriminator to AttributeProto to support proto3 users - */ - ONNX__VERSION__IR_VERSION_2017_10_30 = 2, - /* - * IR VERSION 3 published on Nov 3, 2017 - * - For operator versioning: - * - Added new message OperatorSetIdProto - * - Added opset_import in ModelProto - * - For vendor extensions, added domain in NodeProto - */ - ONNX__VERSION__IR_VERSION = 3 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(ONNX__VERSION) -} Onnx__Version; - -/* --- messages --- */ - -/* - * Attributes - * A named attribute containing either singular int, integer, string, graph, - * and tensor values, or repeated int, integer, string, graph, and tensor values. - * An AttributeProto MUST contain the name field, and *only one* of the - * following content fields, effectively enforcing a C/C++ union equivalent. - */ -struct _Onnx__AttributeProto -{ - ProtobufCMessage base; - /* - * The name field MUST be present for this version of the IR. - */ - /* - * namespace Attribute - */ - char *name; - /* - * if ref_attr_name is not empty, ref_attr_name is the attribute name in parent function. - * In this case, this AttributeProto does not contain data, and it's a reference of attribute - * in parent scope. - * NOTE: This should ONLY be used in function (sub-graph). It's invalid to be used in main graph. - */ - char *ref_attr_name; - /* - * A human-readable documentation for this attribute. Markdown is allowed. - */ - char *doc_string; - /* - * The type field MUST be present for this version of the IR. - * For 0.0.1 versions of the IR, this field was not defined, and - * implementations needed to use has_field hueristics to determine - * which value field was in use. For IR_VERSION 0.0.2 or later, this - * field MUST be set and match the f|i|s|t|... field in use. This - * change was made to accomodate proto3 implementations. - */ - /* - * discriminator that indicates which field below is in use - */ - protobuf_c_boolean has_type; - Onnx__AttributeProto__AttributeType type; - /* - * Exactly ONE of the following fields must be present for this version of the IR - */ - /* - * int - */ - protobuf_c_boolean has_f; - int f; - /* - * int - */ - protobuf_c_boolean has_i; - int64_t i; - /* - * UTF-8 string - */ - protobuf_c_boolean has_s; - ProtobufCBinaryData s; - /* - * tensor value - */ - Onnx__TensorProto *t; - /* - * graph - */ - Onnx__GraphProto *g; - /* - * list of floats - */ - size_t n_floats; - int *floats; - /* - * list of ints - */ - size_t n_ints; - int64_t *ints; - /* - * list of UTF-8 strings - */ - size_t n_strings; - ProtobufCBinaryData *strings; - /* - * list of tensors - */ - size_t n_tensors; - Onnx__TensorProto **tensors; - /* - * list of graph - */ - size_t n_graphs; - Onnx__GraphProto **graphs; -}; -#define ONNX__ATTRIBUTE_PROTO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__attribute_proto__descriptor) \ - , NULL, NULL, NULL, 0,0, 0,0, 0,0, 0,{0,NULL}, NULL, NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL } - - -/* - * Defines information on value, including the name, the type, and - * the shape of the value. - */ -struct _Onnx__ValueInfoProto -{ - ProtobufCMessage base; - /* - * This field MUST be present in this version of the IR. - */ - /* - * namespace Value - */ - char *name; - /* - * This field MUST be present in this version of the IR. - */ - Onnx__TypeProto *type; - /* - * A human-readable documentation for this value. Markdown is allowed. - */ - char *doc_string; -}; -#define ONNX__VALUE_INFO_PROTO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__value_info_proto__descriptor) \ - , NULL, NULL, NULL } - - -/* - * Nodes - * Computation graphs are made up of a DAG of nodes, which represent what is - * commonly called a "layer" or "pipeline stage" in machine learning frameworks. - * For example, it can be a node of type "Conv" that takes in an image, a filter - * tensor and a bias tensor, and produces the convolved output. - */ -struct _Onnx__NodeProto -{ - ProtobufCMessage base; - /* - * namespace Value - */ - size_t n_input; - char **input; - /* - * namespace Value - */ - size_t n_output; - char **output; - /* - * An optional identifier for this node in a graph. - * This field MAY be absent in ths version of the IR. - */ - /* - * namespace Node - */ - char *name; - /* - * The symbolic identifier of the Operator to execute. - */ - /* - * namespace Operator - */ - char *op_type; - /* - * The domain of the OperatorSet that specifies the operator named by op_type. - */ - /* - * namespace Domain - */ - char *domain; - /* - * Additional named attributes. - */ - size_t n_attribute; - Onnx__AttributeProto **attribute; - /* - * A human-readable documentation for this node. Markdown is allowed. - */ - char *doc_string; -}; -#define ONNX__NODE_PROTO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__node_proto__descriptor) \ - , 0,NULL, 0,NULL, NULL, NULL, NULL, 0,NULL, NULL } - - -/* - * Models - * ModelProto is a top-level file/container format for bundling a ML model and - * associating its computation graph with metadata. - * The semantics of the model are described by the associated GraphProto. - */ -struct _Onnx__ModelProto -{ - ProtobufCMessage base; - /* - * The version of the IR this model targets. See Version enum above. - * This field MUST be present. - */ - protobuf_c_boolean has_ir_version; - int64_t ir_version; - /* - * The OperatorSets this model relies on. - * All ModelProtos MUST have at least one entry that - * specifies which version of the ONNX OperatorSet is - * being imported. - * All nodes in the ModelProto's graph will bind against the operator - * with the same-domain/same-op_type operator with the HIGHEST version - * in the referenced operator sets. - */ - size_t n_opset_import; - Onnx__OperatorSetIdProto **opset_import; - /* - * The name of the framework or tool used to generate this model. - * This field SHOULD be present to indicate which implementation/tool/framework - * emitted the model. - */ - char *producer_name; - /* - * The version of the framework or tool used to generate this model. - * This field SHOULD be present to indicate which implementation/tool/framework - * emitted the model. - */ - char *producer_version; - /* - * Domain name of the model. - * We use reverse domain names as name space indicators. For example: - * `com.facebook.fair` or `com.microsoft.cognitiveservices` - * Together with `model_version` and GraphProto.name, this forms the unique identity of - * the graph. - */ - char *domain; - /* - * The version of the graph encoded. See Version enum below. - */ - protobuf_c_boolean has_model_version; - int64_t model_version; - /* - * A human-readable documentation for this model. Markdown is allowed. - */ - char *doc_string; - /* - * The parameterized graph that is evaluated to execute the model. - */ - Onnx__GraphProto *graph; - /* - * Named metadata values; keys should be distinct. - */ - size_t n_metadata_props; - Onnx__StringStringEntryProto **metadata_props; -}; -#define ONNX__MODEL_PROTO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__model_proto__descriptor) \ - , 0,0, 0,NULL, NULL, NULL, NULL, 0,0, NULL, NULL, 0,NULL } - - -/* - * StringStringEntryProto follows the pattern for cross-proto-version maps. - * See https://developers.google.com/protocol-buffers/docs/proto3#maps - */ -struct _Onnx__StringStringEntryProto -{ - ProtobufCMessage base; - char *key; - char *value; -}; -#define ONNX__STRING_STRING_ENTRY_PROTO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__string_string_entry_proto__descriptor) \ - , NULL, NULL } - - -/* - * Graphs - * A graph defines the computational logic of a model and is comprised of a parameterized - * list of nodes that form a directed acyclic graph based on their inputs and outputs. - * This is the equivalent of the "network" or "graph" in many deep learning - * frameworks. - */ -struct _Onnx__GraphProto -{ - ProtobufCMessage base; - /* - * The nodes in the graph, sorted topologically. - */ - size_t n_node; - Onnx__NodeProto **node; - /* - * The name of the graph. - */ - /* - * namespace Graph - */ - char *name; - /* - * A list of named tensor values, used to specify constant inputs of the graph. - * Each TensorProto entry must have a distinct name (within the list) that - * also appears in the input list. - */ - size_t n_initializer; - Onnx__TensorProto **initializer; - /* - * A human-readable documentation for this graph. Markdown is allowed. - */ - char *doc_string; - /* - * The inputs and outputs of the graph. - */ - size_t n_input; - Onnx__ValueInfoProto **input; - size_t n_output; - Onnx__ValueInfoProto **output; - /* - * Information for the values in the graph. The ValueInfoProto.name's - * must be distinct. It is optional for a value to appear in value_info list. - */ - size_t n_value_info; - Onnx__ValueInfoProto **value_info; -}; -#define ONNX__GRAPH_PROTO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__graph_proto__descriptor) \ - , 0,NULL, NULL, 0,NULL, NULL, 0,NULL, 0,NULL, 0,NULL } - - -/* - * For very large tensors, we may want to store them in chunks, in which - * case the following fields will specify the segment that is stored in - * the current TensorProto. - */ -struct _Onnx__TensorProto__Segment -{ - ProtobufCMessage base; - protobuf_c_boolean has_begin; - int64_t begin; - protobuf_c_boolean has_end; - int64_t end; -}; -#define ONNX__TENSOR_PROTO__SEGMENT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__tensor_proto__segment__descriptor) \ - , 0,0, 0,0 } - - -/* - * Tensors - * A serialized tensor value. - */ -struct _Onnx__TensorProto -{ - ProtobufCMessage base; - /* - * The shape of the tensor. - */ - size_t n_dims; - int64_t *dims; - /* - * The data type of the tensor. - */ - protobuf_c_boolean has_data_type; - Onnx__TensorProto__DataType data_type; - Onnx__TensorProto__Segment *segment; - /* - * For int and complex64 values - * Complex64 tensors are encoded as a single array of floats, - * with the real components appearing in odd numbered positions, - * and the corresponding imaginary component apparing in the - * subsequent even numbered position. (e.g., [1.0 + 2.0i, 3.0 + 4.0i] - * is encoded as [1.0, 2.0 ,3.0 ,4.0] - * When this field is present, the data_type field MUST be FLOAT or COMPLEX64. - */ - size_t n_float_data; - int *float_data; - /* - * For int32, uint8, int8, uint16, int16, bool, and float16 values - * float16 values must be bit-wise converted to an uint16_t prior - * to writing to the buffer. - * When this field is present, the data_type field MUST be - * INT32, INT16, INT8, UINT16, INT8, BOOL, or FLOAT16 - */ - size_t n_int32_data; - int32_t *int32_data; - /* - * For strings. - * Each element of string_data is a UTF-8 encoded Unicode - * string. No trailing null, no leading BOM. The protobuf "string" - * scalar type is not used to match ML community conventions. - * When this field is present, the data_type field MUST be STRING - */ - size_t n_string_data; - ProtobufCBinaryData *string_data; - /* - * For int64. - * When this field is present, the data_type field MUST be INT64 - */ - size_t n_int64_data; - int64_t *int64_data; - /* - * Optionally, a name for the tensor. - */ - /* - * namespace Value - */ - char *name; - /* - * A human-readable documentation for this tensor. Markdown is allowed. - */ - char *doc_string; - /* - * Serializations can either use one of the fields above, or use this - * raw bytes field. The only exception is the string case, where one is - * required to store the content in the repeated bytes string_data field. - * When this raw_data field is used to store tensor value, elements MUST - * be stored in as fixed-width, little-endian order. - * Floating-point data types MUST be stored in IEEE 754 format. - * Complex64 elements must be written as two consecutive FLOAT values, real component first. - * Complex128 elements must be written as two consecutive DOUBLE values, real component first. - * Boolean type MUST be written one byte per tensor element (00000001 for true, 00000000 for false). - * Note: the advantage of specific field rather than the raw_data field is - * that in some cases (e.g. int data), protobuf does a better packing via - * variable length storage, and may lead to smaller binary footprint. - * When this field is present, the data_type field MUST NOT be STRING or UNDEFINED - */ - protobuf_c_boolean has_raw_data; - ProtobufCBinaryData raw_data; - /* - * For double - * Complex128 tensors are encoded as a single array of doubles, - * with the real components appearing in odd numbered positions, - * and the corresponding imaginary component apparing in the - * subsequent even numbered position. (e.g., [1.0 + 2.0i, 3.0 + 4.0i] - * is encoded as [1.0, 2.0 ,3.0 ,4.0] - * When this field is present, the data_type field MUST be DOUBLE or COMPLEX128 - */ - size_t n_double_data; - double *double_data; - /* - * For uint64 and uint32 values - * When this field is present, the data_type field MUST be - * UINT32 or UINT64 - */ - size_t n_uint64_data; - uint64_t *uint64_data; -}; -#define ONNX__TENSOR_PROTO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__tensor_proto__descriptor) \ - , 0,NULL, 0,0, NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, NULL, NULL, 0,{0,NULL}, 0,NULL, 0,NULL } - - -typedef enum { - ONNX__TENSOR_SHAPE_PROTO__DIMENSION__VALUE__NOT_SET = 0, - ONNX__TENSOR_SHAPE_PROTO__DIMENSION__VALUE_DIM_VALUE = 1, - ONNX__TENSOR_SHAPE_PROTO__DIMENSION__VALUE_DIM_PARAM = 2, -} Onnx__TensorShapeProto__Dimension__ValueCase; - -struct _Onnx__TensorShapeProto__Dimension -{ - ProtobufCMessage base; - /* - * Standard denotation can optionally be used to denote tensor - * dimensions with standard semantic descriptions to ensure - * that operations are applied to the correct axis of a tensor. - * Refer to https://github.com/onnx/onnx/blob/master/docs/DimensionDenotation.md#denotation-definition - * for pre-defined dimension denotations. - */ - char *denotation; - Onnx__TensorShapeProto__Dimension__ValueCase value_case; - //#pragma anon_unions - union { - int64_t dim_value; - /* - * namespace Shape - */ - char *dim_param; - }; -}; -#define ONNX__TENSOR_SHAPE_PROTO__DIMENSION__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__tensor_shape_proto__dimension__descriptor) \ - , NULL, ONNX__TENSOR_SHAPE_PROTO__DIMENSION__VALUE__NOT_SET, {0} } - - -/* - * Defines a tensor shape. A dimension can be either an integer value - * or a symbolic variable. A symbolic variable represents an unknown - * dimension. - */ -struct _Onnx__TensorShapeProto -{ - ProtobufCMessage base; - size_t n_dim; - Onnx__TensorShapeProto__Dimension **dim; -}; -#define ONNX__TENSOR_SHAPE_PROTO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__tensor_shape_proto__descriptor) \ - , 0,NULL } - - -struct _Onnx__TypeProto__Tensor -{ - ProtobufCMessage base; - /* - * This field MUST NOT have the value of UNDEFINED - * This field MUST be present for this version of the IR. - */ - protobuf_c_boolean has_elem_type; - Onnx__TensorProto__DataType elem_type; - Onnx__TensorShapeProto *shape; -}; -#define ONNX__TYPE_PROTO__TENSOR__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__type_proto__tensor__descriptor) \ - , 0,0, NULL } - - -typedef enum { - ONNX__TYPE_PROTO__VALUE__NOT_SET = 0, - ONNX__TYPE_PROTO__VALUE_TENSOR_TYPE = 1, -} Onnx__TypeProto__ValueCase; - -/* - * Types - * The standard ONNX data types. - */ -struct _Onnx__TypeProto -{ - ProtobufCMessage base; - /* - * An optional denotation can be used to denote the whole - * type with a standard semantic description as to what is - * stored inside. Refer to https://github.com/onnx/onnx/blob/master/docs/TypeDenotation.md#type-denotation-definition - * for pre-defined type denotations. - */ - char *denotation; - Onnx__TypeProto__ValueCase value_case; - //#pragma anon_unions - union { - /* - * The type of a tensor. - */ - Onnx__TypeProto__Tensor *tensor_type; - }; -}; -#define ONNX__TYPE_PROTO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__type_proto__descriptor) \ - , NULL, ONNX__TYPE_PROTO__VALUE__NOT_SET, {0} } - - -/* - * Operator Sets - * OperatorSets are uniquely identified by a (domain, opset_version) pair. - */ -struct _Onnx__OperatorSetIdProto -{ - ProtobufCMessage base; - /* - * The domain of the operator set being identified. - * The empty string ("") or absence of this field implies the operator - * set that is defined as part of the ONNX specification. - * This field MUST be present in this version of the IR when referring to any other operator set. - */ - char *domain; - /* - * The version of the operator set being identified. - * This field MUST be present in this version of the IR. - */ - protobuf_c_boolean has_version; - int64_t version; -}; -#define ONNX__OPERATOR_SET_ID_PROTO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&onnx__operator_set_id_proto__descriptor) \ - , NULL, 0,0 } - - -/* Onnx__AttributeProto methods */ -void onnx__attribute_proto__init - (Onnx__AttributeProto *message); -size_t onnx__attribute_proto__get_packed_size - (const Onnx__AttributeProto *message); -size_t onnx__attribute_proto__pack - (const Onnx__AttributeProto *message, - uint8_t *out); -size_t onnx__attribute_proto__pack_to_buffer - (const Onnx__AttributeProto *message, - ProtobufCBuffer *buffer); -Onnx__AttributeProto * - onnx__attribute_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void onnx__attribute_proto__free_unpacked - (Onnx__AttributeProto *message, - ProtobufCAllocator *allocator); -/* Onnx__ValueInfoProto methods */ -void onnx__value_info_proto__init - (Onnx__ValueInfoProto *message); -size_t onnx__value_info_proto__get_packed_size - (const Onnx__ValueInfoProto *message); -size_t onnx__value_info_proto__pack - (const Onnx__ValueInfoProto *message, - uint8_t *out); -size_t onnx__value_info_proto__pack_to_buffer - (const Onnx__ValueInfoProto *message, - ProtobufCBuffer *buffer); -Onnx__ValueInfoProto * - onnx__value_info_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void onnx__value_info_proto__free_unpacked - (Onnx__ValueInfoProto *message, - ProtobufCAllocator *allocator); -/* Onnx__NodeProto methods */ -void onnx__node_proto__init - (Onnx__NodeProto *message); -size_t onnx__node_proto__get_packed_size - (const Onnx__NodeProto *message); -size_t onnx__node_proto__pack - (const Onnx__NodeProto *message, - uint8_t *out); -size_t onnx__node_proto__pack_to_buffer - (const Onnx__NodeProto *message, - ProtobufCBuffer *buffer); -Onnx__NodeProto * - onnx__node_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void onnx__node_proto__free_unpacked - (Onnx__NodeProto *message, - ProtobufCAllocator *allocator); -/* Onnx__ModelProto methods */ -void onnx__model_proto__init - (Onnx__ModelProto *message); -size_t onnx__model_proto__get_packed_size - (const Onnx__ModelProto *message); -size_t onnx__model_proto__pack - (const Onnx__ModelProto *message, - uint8_t *out); -size_t onnx__model_proto__pack_to_buffer - (const Onnx__ModelProto *message, - ProtobufCBuffer *buffer); -Onnx__ModelProto * - onnx__model_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void onnx__model_proto__free_unpacked - (Onnx__ModelProto *message, - ProtobufCAllocator *allocator); -/* Onnx__StringStringEntryProto methods */ -void onnx__string_string_entry_proto__init - (Onnx__StringStringEntryProto *message); -size_t onnx__string_string_entry_proto__get_packed_size - (const Onnx__StringStringEntryProto *message); -size_t onnx__string_string_entry_proto__pack - (const Onnx__StringStringEntryProto *message, - uint8_t *out); -size_t onnx__string_string_entry_proto__pack_to_buffer - (const Onnx__StringStringEntryProto *message, - ProtobufCBuffer *buffer); -Onnx__StringStringEntryProto * - onnx__string_string_entry_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void onnx__string_string_entry_proto__free_unpacked - (Onnx__StringStringEntryProto *message, - ProtobufCAllocator *allocator); -/* Onnx__GraphProto methods */ -void onnx__graph_proto__init - (Onnx__GraphProto *message); -size_t onnx__graph_proto__get_packed_size - (const Onnx__GraphProto *message); -size_t onnx__graph_proto__pack - (const Onnx__GraphProto *message, - uint8_t *out); -size_t onnx__graph_proto__pack_to_buffer - (const Onnx__GraphProto *message, - ProtobufCBuffer *buffer); -Onnx__GraphProto * - onnx__graph_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void onnx__graph_proto__free_unpacked - (Onnx__GraphProto *message, - ProtobufCAllocator *allocator); -/* Onnx__TensorProto__Segment methods */ -void onnx__tensor_proto__segment__init - (Onnx__TensorProto__Segment *message); -/* Onnx__TensorProto methods */ -void onnx__tensor_proto__init - (Onnx__TensorProto *message); -size_t onnx__tensor_proto__get_packed_size - (const Onnx__TensorProto *message); -size_t onnx__tensor_proto__pack - (const Onnx__TensorProto *message, - uint8_t *out); -size_t onnx__tensor_proto__pack_to_buffer - (const Onnx__TensorProto *message, - ProtobufCBuffer *buffer); -Onnx__TensorProto * - onnx__tensor_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void onnx__tensor_proto__free_unpacked - (Onnx__TensorProto *message, - ProtobufCAllocator *allocator); -/* Onnx__TensorShapeProto__Dimension methods */ -void onnx__tensor_shape_proto__dimension__init - (Onnx__TensorShapeProto__Dimension *message); -/* Onnx__TensorShapeProto methods */ -void onnx__tensor_shape_proto__init - (Onnx__TensorShapeProto *message); -size_t onnx__tensor_shape_proto__get_packed_size - (const Onnx__TensorShapeProto *message); -size_t onnx__tensor_shape_proto__pack - (const Onnx__TensorShapeProto *message, - uint8_t *out); -size_t onnx__tensor_shape_proto__pack_to_buffer - (const Onnx__TensorShapeProto *message, - ProtobufCBuffer *buffer); -Onnx__TensorShapeProto * - onnx__tensor_shape_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void onnx__tensor_shape_proto__free_unpacked - (Onnx__TensorShapeProto *message, - ProtobufCAllocator *allocator); -/* Onnx__TypeProto__Tensor methods */ -void onnx__type_proto__tensor__init - (Onnx__TypeProto__Tensor *message); -/* Onnx__TypeProto methods */ -void onnx__type_proto__init - (Onnx__TypeProto *message); -size_t onnx__type_proto__get_packed_size - (const Onnx__TypeProto *message); -size_t onnx__type_proto__pack - (const Onnx__TypeProto *message, - uint8_t *out); -size_t onnx__type_proto__pack_to_buffer - (const Onnx__TypeProto *message, - ProtobufCBuffer *buffer); -Onnx__TypeProto * - onnx__type_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void onnx__type_proto__free_unpacked - (Onnx__TypeProto *message, - ProtobufCAllocator *allocator); -/* Onnx__OperatorSetIdProto methods */ -void onnx__operator_set_id_proto__init - (Onnx__OperatorSetIdProto *message); -size_t onnx__operator_set_id_proto__get_packed_size - (const Onnx__OperatorSetIdProto *message); -size_t onnx__operator_set_id_proto__pack - (const Onnx__OperatorSetIdProto *message, - uint8_t *out); -size_t onnx__operator_set_id_proto__pack_to_buffer - (const Onnx__OperatorSetIdProto *message, - ProtobufCBuffer *buffer); -Onnx__OperatorSetIdProto * - onnx__operator_set_id_proto__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void onnx__operator_set_id_proto__free_unpacked - (Onnx__OperatorSetIdProto *message, - ProtobufCAllocator *allocator); -/* --- per-message closures --- */ - -typedef void (*Onnx__AttributeProto_Closure) - (const Onnx__AttributeProto *message, - void *closure_data); -typedef void (*Onnx__ValueInfoProto_Closure) - (const Onnx__ValueInfoProto *message, - void *closure_data); -typedef void (*Onnx__NodeProto_Closure) - (const Onnx__NodeProto *message, - void *closure_data); -typedef void (*Onnx__ModelProto_Closure) - (const Onnx__ModelProto *message, - void *closure_data); -typedef void (*Onnx__StringStringEntryProto_Closure) - (const Onnx__StringStringEntryProto *message, - void *closure_data); -typedef void (*Onnx__GraphProto_Closure) - (const Onnx__GraphProto *message, - void *closure_data); -typedef void (*Onnx__TensorProto__Segment_Closure) - (const Onnx__TensorProto__Segment *message, - void *closure_data); -typedef void (*Onnx__TensorProto_Closure) - (const Onnx__TensorProto *message, - void *closure_data); -typedef void (*Onnx__TensorShapeProto__Dimension_Closure) - (const Onnx__TensorShapeProto__Dimension *message, - void *closure_data); -typedef void (*Onnx__TensorShapeProto_Closure) - (const Onnx__TensorShapeProto *message, - void *closure_data); -typedef void (*Onnx__TypeProto__Tensor_Closure) - (const Onnx__TypeProto__Tensor *message, - void *closure_data); -typedef void (*Onnx__TypeProto_Closure) - (const Onnx__TypeProto *message, - void *closure_data); -typedef void (*Onnx__OperatorSetIdProto_Closure) - (const Onnx__OperatorSetIdProto *message, - void *closure_data); - -/* --- services --- */ - - -/* --- descriptors --- */ - -extern const ProtobufCEnumDescriptor onnx__version__descriptor; -extern const ProtobufCMessageDescriptor onnx__attribute_proto__descriptor; -extern const ProtobufCEnumDescriptor onnx__attribute_proto__attribute_type__descriptor; -extern const ProtobufCMessageDescriptor onnx__value_info_proto__descriptor; -extern const ProtobufCMessageDescriptor onnx__node_proto__descriptor; -extern const ProtobufCMessageDescriptor onnx__model_proto__descriptor; -extern const ProtobufCMessageDescriptor onnx__string_string_entry_proto__descriptor; -extern const ProtobufCMessageDescriptor onnx__graph_proto__descriptor; -extern const ProtobufCMessageDescriptor onnx__tensor_proto__descriptor; -extern const ProtobufCMessageDescriptor onnx__tensor_proto__segment__descriptor; -extern const ProtobufCEnumDescriptor onnx__tensor_proto__data_type__descriptor; -extern const ProtobufCMessageDescriptor onnx__tensor_shape_proto__descriptor; -extern const ProtobufCMessageDescriptor onnx__tensor_shape_proto__dimension__descriptor; -extern const ProtobufCMessageDescriptor onnx__type_proto__descriptor; -extern const ProtobufCMessageDescriptor onnx__type_proto__tensor__descriptor; -extern const ProtobufCMessageDescriptor onnx__operator_set_id_proto__descriptor; - -PROTOBUF_C__END_DECLS - - -#endif /* PROTOBUF_C_src_2fonnx_2eproto__INCLUDED */ diff --git a/components/ai/onnx/protobuf/protobuf-c.c b/components/ai/onnx/protobuf/protobuf-c.c deleted file mode 100644 index 2a37322e..00000000 --- a/components/ai/onnx/protobuf/protobuf-c.c +++ /dev/null @@ -1,3666 +0,0 @@ -/* - * Copyright (c) 2008-2015, Dave Benson and the protobuf-c authors. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/*! \file - * Support library for `protoc-c` generated code. - * - * This file implements the public API used by the code generated - * by `protoc-c`. - * - * \authors Dave Benson and the protobuf-c authors - * - * \copyright 2008-2014. Licensed under the terms of the [BSD-2-Clause] license. - */ - -/** - * \todo 64-BIT OPTIMIZATION: certain implementations use 32-bit math - * even on 64-bit platforms (uint64_size, uint64_pack, parse_uint64). - * - * \todo Use size_t consistently. - */ - -#include /* for malloc, free */ -#include /* for strcmp, strlen, memcpy, memmove, memset */ - -#include "protobuf-c.h" - -#define TRUE 1 -#define FALSE 0 - -//#define PROTOBUF_C__ASSERT_NOT_REACHED() assert(0) - -/* Workaround for Microsoft compilers. */ -#ifdef _MSC_VER -# define inline __inline -#endif - -/** - * \defgroup internal Internal functions and macros - * - * These are not exported by the library but are useful to developers working - * on `libprotobuf-c` itself. - */ - -/** - * \defgroup macros Utility macros for manipulating structures - * - * Macros and constants used to manipulate the base "classes" generated by - * `protobuf-c`. They also define limits and check correctness. - * - * \ingroup internal - * @{ - */ - -/** The maximum length of a 64-bit integer in varint encoding. */ -#define MAX_UINT64_ENCODED_SIZE 10 - -#ifndef PROTOBUF_C_UNPACK_ERROR -# define PROTOBUF_C_UNPACK_ERROR(...) -#endif - -const char protobuf_c_empty_string[] = ""; - -/** - * Internal `ProtobufCMessage` manipulation macro. - * - * Base macro for manipulating a `ProtobufCMessage`. Used by STRUCT_MEMBER() and - * STRUCT_MEMBER_PTR(). - */ -#define STRUCT_MEMBER_P(struct_p, struct_offset) \ - ((void *) ((uint8_t *) (struct_p) + (struct_offset))) - -/** - * Return field in a `ProtobufCMessage` based on offset. - * - * Take a pointer to a `ProtobufCMessage` and find the field at the offset. - * Cast it to the passed type. - */ -#define STRUCT_MEMBER(member_type, struct_p, struct_offset) \ - (*(member_type *) STRUCT_MEMBER_P((struct_p), (struct_offset))) - -/** - * Return field in a `ProtobufCMessage` based on offset. - * - * Take a pointer to a `ProtobufCMessage` and find the field at the offset. Cast - * it to a pointer to the passed type. - */ -#define STRUCT_MEMBER_PTR(member_type, struct_p, struct_offset) \ - ((member_type *) STRUCT_MEMBER_P((struct_p), (struct_offset))) - -/* Assertions for magic numbers. */ -/* -#define ASSERT_IS_ENUM_DESCRIPTOR(desc) \ - //assert((desc)->magic == PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC) - -#define ASSERT_IS_MESSAGE_DESCRIPTOR(desc) \ - //assert((desc)->magic == PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC) - -#define ASSERT_IS_MESSAGE(message) \ - ASSERT_IS_MESSAGE_DESCRIPTOR((message)->descriptor) - -#define ASSERT_IS_SERVICE_DESCRIPTOR(desc) \ - assert((desc)->magic == PROTOBUF_C__SERVICE_DESCRIPTOR_MAGIC) -*/ -/**@}*/ - -/* --- version --- */ - -const char * -protobuf_c_version(void) -{ - return PROTOBUF_C_VERSION; -} - -uint32_t -protobuf_c_version_number(void) -{ - return PROTOBUF_C_VERSION_NUMBER; -} - -/* --- allocator --- */ - -static void * -system_alloc(void *allocator_data, size_t size) -{ - return malloc(size); -} - -static void -system_free(void *allocator_data, void *data) -{ - free(data); -} - -static inline void * -do_alloc(ProtobufCAllocator *allocator, size_t size) -{ - return allocator->alloc(allocator->allocator_data, size); -} - -static inline void -do_free(ProtobufCAllocator *allocator, void *data) -{ - if (data != NULL) - allocator->free(allocator->allocator_data, data); -} - -/* - * This allocator uses the system's malloc() and free(). It is the default - * allocator used if NULL is passed as the ProtobufCAllocator to an exported - * function. - */ -static ProtobufCAllocator protobuf_c__allocator = { - .alloc = &system_alloc, - .free = &system_free, - .allocator_data = NULL, -}; - -/* === buffer-simple === */ - -void -protobuf_c_buffer_simple_append(ProtobufCBuffer *buffer, - size_t len, const uint8_t *data) -{ - ProtobufCBufferSimple *simp = (ProtobufCBufferSimple *) buffer; - size_t new_len = simp->len + len; - - if (new_len > simp->alloced) { - ProtobufCAllocator *allocator = simp->allocator; - size_t new_alloced = simp->alloced * 2; - uint8_t *new_data; - - if (allocator == NULL) - allocator = &protobuf_c__allocator; - while (new_alloced < new_len) - new_alloced += new_alloced; - new_data = do_alloc(allocator, new_alloced); - if (!new_data) - return; - memcpy(new_data, simp->data, simp->len); - if (simp->must_free_data) - do_free(allocator, simp->data); - else - simp->must_free_data = TRUE; - simp->data = new_data; - simp->alloced = new_alloced; - } - memcpy(simp->data + simp->len, data, len); - simp->len = new_len; -} - -/** - * \defgroup packedsz protobuf_c_message_get_packed_size() implementation - * - * Routines mainly used by protobuf_c_message_get_packed_size(). - * - * \ingroup internal - * @{ - */ - -/** - * Return the number of bytes required to store the tag for the field. Includes - * 3 bits for the wire-type, and a single bit that denotes the end-of-tag. - * - * \param number - * Field tag to encode. - * \return - * Number of bytes required. - */ -static inline size_t -get_tag_size(uint32_t number) -{ - if (number < (1UL << 4)) { - return 1; - } else if (number < (1UL << 11)) { - return 2; - } else if (number < (1UL << 18)) { - return 3; - } else if (number < (1UL << 25)) { - return 4; - } else { - return 5; - } -} - -/** - * Return the number of bytes required to store a variable-length unsigned - * 32-bit integer in base-128 varint encoding. - * - * \param v - * Value to encode. - * \return - * Number of bytes required. - */ -static inline size_t -uint32_size(uint32_t v) -{ - if (v < (1UL << 7)) { - return 1; - } else if (v < (1UL << 14)) { - return 2; - } else if (v < (1UL << 21)) { - return 3; - } else if (v < (1UL << 28)) { - return 4; - } else { - return 5; - } -} - -/** - * Return the number of bytes required to store a variable-length signed 32-bit - * integer in base-128 varint encoding. - * - * \param v - * Value to encode. - * \return - * Number of bytes required. - */ -static inline size_t -int32_size(int32_t v) -{ - if (v < 0) { - return 10; - } else if (v < (1L << 7)) { - return 1; - } else if (v < (1L << 14)) { - return 2; - } else if (v < (1L << 21)) { - return 3; - } else if (v < (1L << 28)) { - return 4; - } else { - return 5; - } -} - -/** - * Return the ZigZag-encoded 32-bit unsigned integer form of a 32-bit signed - * integer. - * - * \param v - * Value to encode. - * \return - * ZigZag encoded integer. - */ -static inline uint32_t -zigzag32(int32_t v) -{ - if (v < 0) - return (-(uint32_t)v) * 2 - 1; - else - return (uint32_t)(v) * 2; -} - -/** - * Return the number of bytes required to store a signed 32-bit integer, - * converted to an unsigned 32-bit integer with ZigZag encoding, using base-128 - * varint encoding. - * - * \param v - * Value to encode. - * \return - * Number of bytes required. - */ -static inline size_t -sint32_size(int32_t v) -{ - return uint32_size(zigzag32(v)); -} - -/** - * Return the number of bytes required to store a 64-bit unsigned integer in - * base-128 varint encoding. - * - * \param v - * Value to encode. - * \return - * Number of bytes required. - */ -static inline size_t -uint64_size(uint64_t v) -{ - uint32_t upper_v = (uint32_t) (v >> 32); - - if (upper_v == 0) { - return uint32_size((uint32_t) v); - } else if (upper_v < (1UL << 3)) { - return 5; - } else if (upper_v < (1UL << 10)) { - return 6; - } else if (upper_v < (1UL << 17)) { - return 7; - } else if (upper_v < (1UL << 24)) { - return 8; - } else if (upper_v < (1UL << 31)) { - return 9; - } else { - return 10; - } -} - -/** - * Return the ZigZag-encoded 64-bit unsigned integer form of a 64-bit signed - * integer. - * - * \param v - * Value to encode. - * \return - * ZigZag encoded integer. - */ -static inline uint64_t -zigzag64(int64_t v) -{ - if (v < 0) - return (-(uint64_t)v) * 2 - 1; - else - return (uint64_t)(v) * 2; -} - -/** - * Return the number of bytes required to store a signed 64-bit integer, - * converted to an unsigned 64-bit integer with ZigZag encoding, using base-128 - * varint encoding. - * - * \param v - * Value to encode. - * \return - * Number of bytes required. - */ -static inline size_t -sint64_size(int64_t v) -{ - return uint64_size(zigzag64(v)); -} - -/** - * Calculate the serialized size of a single required message field, including - * the space needed by the preceding tag. - * - * \param field - * Field descriptor for member. - * \param member - * Field to encode. - * \return - * Number of bytes required. - */ -static size_t -required_field_get_packed_size(const ProtobufCFieldDescriptor *field, - const void *member) -{ - size_t rv = get_tag_size(field->id); - - switch (field->type) { - case PROTOBUF_C_TYPE_SINT32: - return rv + sint32_size(*(const int32_t *) member); - case PROTOBUF_C_TYPE_ENUM: - case PROTOBUF_C_TYPE_INT32: - return rv + int32_size(*(const int32_t *) member); - case PROTOBUF_C_TYPE_UINT32: - return rv + uint32_size(*(const uint32_t *) member); - case PROTOBUF_C_TYPE_SINT64: - return rv + sint64_size(*(const int64_t *) member); - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_UINT64: - return rv + uint64_size(*(const uint64_t *) member); - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - return rv + 4; - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - return rv + 8; - case PROTOBUF_C_TYPE_BOOL: - return rv + 1; - case PROTOBUF_C_TYPE_FLOAT: - return rv + 4; - case PROTOBUF_C_TYPE_DOUBLE: - return rv + 8; - case PROTOBUF_C_TYPE_STRING: { - const char *str = *(char * const *) member; - size_t len = str ? strlen(str) : 0; - return rv + uint32_size(len) + len; - } - case PROTOBUF_C_TYPE_BYTES: { - size_t len = ((const ProtobufCBinaryData *) member)->len; - return rv + uint32_size(len) + len; - } - case PROTOBUF_C_TYPE_MESSAGE: { - const ProtobufCMessage *msg = *(ProtobufCMessage * const *) member; - size_t subrv = msg ? protobuf_c_message_get_packed_size(msg) : 0; - return rv + uint32_size(subrv) + subrv; - } - } - //PROTOBUF_C__ASSERT_NOT_REACHED(); - return 0; -} - -/** - * Calculate the serialized size of a single oneof message field, including - * the space needed by the preceding tag. Returns 0 if the oneof field isn't - * selected or is not set. - * - * \param field - * Field descriptor for member. - * \param oneof_case - * Enum value that selects the field in the oneof. - * \param member - * Field to encode. - * \return - * Number of bytes required. - */ -static size_t -oneof_field_get_packed_size(const ProtobufCFieldDescriptor *field, - uint32_t oneof_case, - const void *member) -{ - if (oneof_case != field->id) { - return 0; - } - if (field->type == PROTOBUF_C_TYPE_MESSAGE || - field->type == PROTOBUF_C_TYPE_STRING) - { - const void *ptr = *(const void * const *) member; - if (ptr == NULL || ptr == field->default_value) - return 0; - } - return required_field_get_packed_size(field, member); -} - -/** - * Calculate the serialized size of a single optional message field, including - * the space needed by the preceding tag. Returns 0 if the optional field isn't - * set. - * - * \param field - * Field descriptor for member. - * \param has - * True if the field exists, false if not. - * \param member - * Field to encode. - * \return - * Number of bytes required. - */ -static size_t -optional_field_get_packed_size(const ProtobufCFieldDescriptor *field, - const protobuf_c_boolean has, - const void *member) -{ - if (field->type == PROTOBUF_C_TYPE_MESSAGE || - field->type == PROTOBUF_C_TYPE_STRING) - { - const void *ptr = *(const void * const *) member; - if (ptr == NULL || ptr == field->default_value) - return 0; - } else { - if (!has) - return 0; - } - return required_field_get_packed_size(field, member); -} - -static protobuf_c_boolean -field_is_zeroish(const ProtobufCFieldDescriptor *field, - const void *member) -{ - protobuf_c_boolean ret = FALSE; - - switch (field->type) { - case PROTOBUF_C_TYPE_BOOL: - ret = (0 == *(const protobuf_c_boolean *) member); - break; - case PROTOBUF_C_TYPE_ENUM: - case PROTOBUF_C_TYPE_SINT32: - case PROTOBUF_C_TYPE_INT32: - case PROTOBUF_C_TYPE_UINT32: - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - ret = (0 == *(const uint32_t *) member); - break; - case PROTOBUF_C_TYPE_SINT64: - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_UINT64: - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - ret = (0 == *(const uint64_t *) member); - break; - case PROTOBUF_C_TYPE_FLOAT: - ret = (0 == *(const int *) member); - break; - case PROTOBUF_C_TYPE_DOUBLE: - ret = (0 == *(const double *) member); - break; - case PROTOBUF_C_TYPE_STRING: - ret = (NULL == *(const char * const *) member) || - ('\0' == **(const char * const *) member); - break; - case PROTOBUF_C_TYPE_BYTES: - case PROTOBUF_C_TYPE_MESSAGE: - ret = (NULL == *(const void * const *) member); - break; - default: - ret = TRUE; - break; - } - - return ret; -} - -/** - * Calculate the serialized size of a single unlabeled message field, including - * the space needed by the preceding tag. Returns 0 if the field isn't set or - * if it is set to a "zeroish" value (null pointer or 0 for numerical values). - * Unlabeled fields are supported only in proto3. - * - * \param field - * Field descriptor for member. - * \param member - * Field to encode. - * \return - * Number of bytes required. - */ -static size_t -unlabeled_field_get_packed_size(const ProtobufCFieldDescriptor *field, - const void *member) -{ - if (field_is_zeroish(field, member)) - return 0; - return required_field_get_packed_size(field, member); -} - -/** - * Calculate the serialized size of repeated message fields, which may consist - * of any number of values (including 0). Includes the space needed by the - * preceding tags (as needed). - * - * \param field - * Field descriptor for member. - * \param count - * Number of repeated field members. - * \param member - * Field to encode. - * \return - * Number of bytes required. - */ -static size_t -repeated_field_get_packed_size(const ProtobufCFieldDescriptor *field, - size_t count, const void *member) -{ - size_t header_size; - size_t rv = 0; - unsigned i; - void *array = *(void * const *) member; - - if (count == 0) - return 0; - header_size = get_tag_size(field->id); - if (0 == (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED)) - header_size *= count; - - switch (field->type) { - case PROTOBUF_C_TYPE_SINT32: - for (i = 0; i < count; i++) - rv += sint32_size(((int32_t *) array)[i]); - break; - case PROTOBUF_C_TYPE_ENUM: - case PROTOBUF_C_TYPE_INT32: - for (i = 0; i < count; i++) - rv += int32_size(((int32_t *) array)[i]); - break; - case PROTOBUF_C_TYPE_UINT32: - for (i = 0; i < count; i++) - rv += uint32_size(((uint32_t *) array)[i]); - break; - case PROTOBUF_C_TYPE_SINT64: - for (i = 0; i < count; i++) - rv += sint64_size(((int64_t *) array)[i]); - break; - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_UINT64: - for (i = 0; i < count; i++) - rv += uint64_size(((uint64_t *) array)[i]); - break; - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - case PROTOBUF_C_TYPE_FLOAT: - rv += 4 * count; - break; - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - case PROTOBUF_C_TYPE_DOUBLE: - rv += 8 * count; - break; - case PROTOBUF_C_TYPE_BOOL: - rv += count; - break; - case PROTOBUF_C_TYPE_STRING: - for (i = 0; i < count; i++) { - size_t len = strlen(((char **) array)[i]); - rv += uint32_size(len) + len; - } - break; - case PROTOBUF_C_TYPE_BYTES: - for (i = 0; i < count; i++) { - size_t len = ((ProtobufCBinaryData *) array)[i].len; - rv += uint32_size(len) + len; - } - break; - case PROTOBUF_C_TYPE_MESSAGE: - for (i = 0; i < count; i++) { - size_t len = protobuf_c_message_get_packed_size( - ((ProtobufCMessage **) array)[i]); - rv += uint32_size(len) + len; - } - break; - } - - if (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED)) - header_size += uint32_size(rv); - return header_size + rv; -} - -/** - * Calculate the serialized size of an unknown field, i.e. one that is passed - * through mostly uninterpreted. This is required for forward compatibility if - * new fields are added to the message descriptor. - * - * \param field - * Unknown field type. - * \return - * Number of bytes required. - */ -static inline size_t -unknown_field_get_packed_size(const ProtobufCMessageUnknownField *field) -{ - return get_tag_size(field->tag) + field->len; -} - -/**@}*/ - -/* - * Calculate the serialized size of the message. - */ -size_t protobuf_c_message_get_packed_size(const ProtobufCMessage *message) -{ - unsigned i; - size_t rv = 0; - - //ASSERT_IS_MESSAGE(message); - for (i = 0; i < message->descriptor->n_fields; i++) { - const ProtobufCFieldDescriptor *field = - message->descriptor->fields + i; - const void *member = - ((const char *) message) + field->offset; - const void *qmember = - ((const char *) message) + field->quantifier_offset; - - if (field->label == PROTOBUF_C_LABEL_REQUIRED) { - rv += required_field_get_packed_size(field, member); - } else if ((field->label == PROTOBUF_C_LABEL_OPTIONAL || - field->label == PROTOBUF_C_LABEL_NONE) && - (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_ONEOF))) { - rv += oneof_field_get_packed_size( - field, - *(const uint32_t *) qmember, - member - ); - } else if (field->label == PROTOBUF_C_LABEL_OPTIONAL) { - rv += optional_field_get_packed_size( - field, - *(protobuf_c_boolean *) qmember, - member - ); - } else if (field->label == PROTOBUF_C_LABEL_NONE) { - rv += unlabeled_field_get_packed_size( - field, - member - ); - } else { - rv += repeated_field_get_packed_size( - field, - *(const size_t *) qmember, - member - ); - } - } - for (i = 0; i < message->n_unknown_fields; i++) - rv += unknown_field_get_packed_size(&message->unknown_fields[i]); - return rv; -} - -/** - * \defgroup pack protobuf_c_message_pack() implementation - * - * Routines mainly used by protobuf_c_message_pack(). - * - * \ingroup internal - * @{ - */ - -/** - * Pack an unsigned 32-bit integer in base-128 varint encoding and return the - * number of bytes written, which must be 5 or less. - * - * \param value - * Value to encode. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static inline size_t -uint32_pack(uint32_t value, uint8_t *out) -{ - unsigned rv = 0; - - if (value >= 0x80) { - out[rv++] = value | 0x80; - value >>= 7; - if (value >= 0x80) { - out[rv++] = value | 0x80; - value >>= 7; - if (value >= 0x80) { - out[rv++] = value | 0x80; - value >>= 7; - if (value >= 0x80) { - out[rv++] = value | 0x80; - value >>= 7; - } - } - } - } - /* assert: value<128 */ - out[rv++] = value; - return rv; -} - -/** - * Pack a signed 32-bit integer and return the number of bytes written. - * Negative numbers are encoded as two's complement 64-bit integers. - * - * \param value - * Value to encode. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static inline size_t -int32_pack(int32_t value, uint8_t *out) -{ - if (value < 0) { - out[0] = value | 0x80; - out[1] = (value >> 7) | 0x80; - out[2] = (value >> 14) | 0x80; - out[3] = (value >> 21) | 0x80; - out[4] = (value >> 28) | 0x80; - out[5] = out[6] = out[7] = out[8] = 0xff; - out[9] = 0x01; - return 10; - } else { - return uint32_pack(value, out); - } -} - -/** - * Pack a signed 32-bit integer using ZigZag encoding and return the number of - * bytes written. - * - * \param value - * Value to encode. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static inline size_t -sint32_pack(int32_t value, uint8_t *out) -{ - return uint32_pack(zigzag32(value), out); -} - -/** - * Pack a 64-bit unsigned integer using base-128 varint encoding and return the - * number of bytes written. - * - * \param value - * Value to encode. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static size_t -uint64_pack(uint64_t value, uint8_t *out) -{ - uint32_t hi = (uint32_t) (value >> 32); - uint32_t lo = (uint32_t) value; - unsigned rv; - - if (hi == 0) - return uint32_pack((uint32_t) lo, out); - out[0] = (lo) | 0x80; - out[1] = (lo >> 7) | 0x80; - out[2] = (lo >> 14) | 0x80; - out[3] = (lo >> 21) | 0x80; - if (hi < 8) { - out[4] = (hi << 4) | (lo >> 28); - return 5; - } else { - out[4] = ((hi & 7) << 4) | (lo >> 28) | 0x80; - hi >>= 3; - } - rv = 5; - while (hi >= 128) { - out[rv++] = hi | 0x80; - hi >>= 7; - } - out[rv++] = hi; - return rv; -} - -/** - * Pack a 64-bit signed integer in ZigZag encoding and return the number of - * bytes written. - * - * \param value - * Value to encode. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static inline size_t -sint64_pack(int64_t value, uint8_t *out) -{ - return uint64_pack(zigzag64(value), out); -} - -/** - * Pack a 32-bit quantity in little-endian byte order. Used for protobuf wire - * types fixed32, sfixed32, int. Similar to "htole32". - * - * \param value - * Value to encode. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static inline size_t -fixed32_pack(uint32_t value, void *out) -{ -#if !defined(WORDS_BIGENDIAN) - memcpy(out, &value, 4); -#else - uint8_t *buf = out; - - buf[0] = value; - buf[1] = value >> 8; - buf[2] = value >> 16; - buf[3] = value >> 24; -#endif - return 4; -} - -/** - * Pack a 64-bit quantity in little-endian byte order. Used for protobuf wire - * types fixed64, sfixed64, double. Similar to "htole64". - * - * \todo The big-endian impl is really only good for 32-bit machines, a 64-bit - * version would be appreciated, plus a way to decide to use 64-bit math where - * convenient. - * - * \param value - * Value to encode. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static inline size_t -fixed64_pack(uint64_t value, void *out) -{ -#if !defined(WORDS_BIGENDIAN) - memcpy(out, &value, 8); -#else - fixed32_pack(value, out); - fixed32_pack(value >> 32, ((char *) out) + 4); -#endif - return 8; -} - -/** - * Pack a boolean value as an integer and return the number of bytes written. - * - * \todo Perhaps on some platforms *out = !!value would be a better impl, b/c - * that is idiomatic C++ in some STL implementations. - * - * \param value - * Value to encode. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static inline size_t -boolean_pack(protobuf_c_boolean value, uint8_t *out) -{ - *out = value ? TRUE : FALSE; - return 1; -} - -/** - * Pack a NUL-terminated C string and return the number of bytes written. The - * output includes a length delimiter. - * - * The NULL pointer is treated as an empty string. This isn't really necessary, - * but it allows people to leave required strings blank. (See Issue #13 in the - * bug tracker for a little more explanation). - * - * \param str - * String to encode. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static inline size_t -string_pack(const char *str, uint8_t *out) -{ - if (str == NULL) { - out[0] = 0; - return 1; - } else { - size_t len = strlen(str); - size_t rv = uint32_pack(len, out); - memcpy(out + rv, str, len); - return rv + len; - } -} - -/** - * Pack a ProtobufCBinaryData and return the number of bytes written. The output - * includes a length delimiter. - * - * \param bd - * ProtobufCBinaryData to encode. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static inline size_t -binary_data_pack(const ProtobufCBinaryData *bd, uint8_t *out) -{ - size_t len = bd->len; - size_t rv = uint32_pack(len, out); - memcpy(out + rv, bd->data, len); - return rv + len; -} - -/** - * Pack a ProtobufCMessage and return the number of bytes written. The output - * includes a length delimiter. - * - * \param message - * ProtobufCMessage object to pack. - * \param[out] out - * Packed message. - * \return - * Number of bytes written to `out`. - */ -static inline size_t -prefixed_message_pack(const ProtobufCMessage *message, uint8_t *out) -{ - if (message == NULL) { - out[0] = 0; - return 1; - } else { - size_t rv = protobuf_c_message_pack(message, out + 1); - uint32_t rv_packed_size = uint32_size(rv); - if (rv_packed_size != 1) - memmove(out + rv_packed_size, out + 1, rv); - return uint32_pack(rv, out) + rv; - } -} - -/** - * Pack a field tag. - * - * Wire-type will be added in required_field_pack(). - * - * \todo Just call uint64_pack on 64-bit platforms. - * - * \param id - * Tag value to encode. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static size_t -tag_pack(uint32_t id, uint8_t *out) -{ - if (id < (1UL << (32 - 3))) - return uint32_pack(id << 3, out); - else - return uint64_pack(((uint64_t) id) << 3, out); -} - -/** - * Pack a required field and return the number of bytes written. - * - * \param field - * Field descriptor. - * \param member - * The field member. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static size_t -required_field_pack(const ProtobufCFieldDescriptor *field, - const void *member, uint8_t *out) -{ - size_t rv = tag_pack(field->id, out); - - switch (field->type) { - case PROTOBUF_C_TYPE_SINT32: - out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - return rv + sint32_pack(*(const int32_t *) member, out + rv); - case PROTOBUF_C_TYPE_ENUM: - case PROTOBUF_C_TYPE_INT32: - out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - return rv + int32_pack(*(const int32_t *) member, out + rv); - case PROTOBUF_C_TYPE_UINT32: - out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - return rv + uint32_pack(*(const uint32_t *) member, out + rv); - case PROTOBUF_C_TYPE_SINT64: - out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - return rv + sint64_pack(*(const int64_t *) member, out + rv); - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_UINT64: - out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - return rv + uint64_pack(*(const uint64_t *) member, out + rv); - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - case PROTOBUF_C_TYPE_FLOAT: - out[0] |= PROTOBUF_C_WIRE_TYPE_32BIT; - return rv + fixed32_pack(*(const uint32_t *) member, out + rv); - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - case PROTOBUF_C_TYPE_DOUBLE: - out[0] |= PROTOBUF_C_WIRE_TYPE_64BIT; - return rv + fixed64_pack(*(const uint64_t *) member, out + rv); - case PROTOBUF_C_TYPE_BOOL: - out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - return rv + boolean_pack(*(const protobuf_c_boolean *) member, out + rv); - case PROTOBUF_C_TYPE_STRING: - out[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED; - return rv + string_pack(*(char *const *) member, out + rv); - case PROTOBUF_C_TYPE_BYTES: - out[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED; - return rv + binary_data_pack((const ProtobufCBinaryData *) member, out + rv); - case PROTOBUF_C_TYPE_MESSAGE: - out[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED; - return rv + prefixed_message_pack(*(ProtobufCMessage * const *) member, out + rv); - } - //PROTOBUF_C__ASSERT_NOT_REACHED(); - return 0; -} - -/** - * Pack a oneof field and return the number of bytes written. Only packs the - * field that is selected by the case enum. - * - * \param field - * Field descriptor. - * \param oneof_case - * Enum value that selects the field in the oneof. - * \param member - * The field member. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static size_t -oneof_field_pack(const ProtobufCFieldDescriptor *field, - uint32_t oneof_case, - const void *member, uint8_t *out) -{ - if (oneof_case != field->id) { - return 0; - } - if (field->type == PROTOBUF_C_TYPE_MESSAGE || - field->type == PROTOBUF_C_TYPE_STRING) - { - const void *ptr = *(const void * const *) member; - if (ptr == NULL || ptr == field->default_value) - return 0; - } - return required_field_pack(field, member, out); -} - -/** - * Pack an optional field and return the number of bytes written. - * - * \param field - * Field descriptor. - * \param has - * Whether the field is set. - * \param member - * The field member. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static size_t -optional_field_pack(const ProtobufCFieldDescriptor *field, - const protobuf_c_boolean has, - const void *member, uint8_t *out) -{ - if (field->type == PROTOBUF_C_TYPE_MESSAGE || - field->type == PROTOBUF_C_TYPE_STRING) - { - const void *ptr = *(const void * const *) member; - if (ptr == NULL || ptr == field->default_value) - return 0; - } else { - if (!has) - return 0; - } - return required_field_pack(field, member, out); -} - -/** - * Pack an unlabeled field and return the number of bytes written. - * - * \param field - * Field descriptor. - * \param member - * The field member. - * \param[out] out - * Packed value. - * \return - * Number of bytes written to `out`. - */ -static size_t -unlabeled_field_pack(const ProtobufCFieldDescriptor *field, - const void *member, uint8_t *out) -{ - if (field_is_zeroish(field, member)) - return 0; - return required_field_pack(field, member, out); -} - -/** - * Given a field type, return the in-memory size. - * - * \todo Implement as a table lookup. - * - * \param type - * Field type. - * \return - * Size of the field. - */ -static inline size_t -sizeof_elt_in_repeated_array(ProtobufCType type) -{ - switch (type) { - case PROTOBUF_C_TYPE_SINT32: - case PROTOBUF_C_TYPE_INT32: - case PROTOBUF_C_TYPE_UINT32: - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - case PROTOBUF_C_TYPE_FLOAT: - case PROTOBUF_C_TYPE_ENUM: - return 4; - case PROTOBUF_C_TYPE_SINT64: - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_UINT64: - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - case PROTOBUF_C_TYPE_DOUBLE: - return 8; - case PROTOBUF_C_TYPE_BOOL: - return sizeof(protobuf_c_boolean); - case PROTOBUF_C_TYPE_STRING: - case PROTOBUF_C_TYPE_MESSAGE: - return sizeof(void *); - case PROTOBUF_C_TYPE_BYTES: - return sizeof(ProtobufCBinaryData); - } - //PROTOBUF_C__ASSERT_NOT_REACHED(); - return 0; -} - -/** - * Pack an array of 32-bit quantities. - * - * \param[out] out - * Destination. - * \param[in] in - * Source. - * \param[in] n - * Number of elements in the source array. - */ -static void -copy_to_little_endian_32(void *out, const void *in, const unsigned n) -{ -#if !defined(WORDS_BIGENDIAN) - memcpy(out, in, n * 4); -#else - unsigned i; - const uint32_t *ini = in; - for (i = 0; i < n; i++) - fixed32_pack(ini[i], (uint32_t *) out + i); -#endif -} - -/** - * Pack an array of 64-bit quantities. - * - * \param[out] out - * Destination. - * \param[in] in - * Source. - * \param[in] n - * Number of elements in the source array. - */ -static void -copy_to_little_endian_64(void *out, const void *in, const unsigned n) -{ -#if !defined(WORDS_BIGENDIAN) - memcpy(out, in, n * 8); -#else - unsigned i; - const uint64_t *ini = in; - for (i = 0; i < n; i++) - fixed64_pack(ini[i], (uint64_t *) out + i); -#endif -} - -/** - * Get the minimum number of bytes required to pack a field value of a - * particular type. - * - * \param type - * Field type. - * \return - * Number of bytes. - */ -static unsigned -get_type_min_size(ProtobufCType type) -{ - if (type == PROTOBUF_C_TYPE_SFIXED32 || - type == PROTOBUF_C_TYPE_FIXED32 || - type == PROTOBUF_C_TYPE_FLOAT) - { - return 4; - } - if (type == PROTOBUF_C_TYPE_SFIXED64 || - type == PROTOBUF_C_TYPE_FIXED64 || - type == PROTOBUF_C_TYPE_DOUBLE) - { - return 8; - } - return 1; -} - -/** - * Packs the elements of a repeated field and returns the serialised field and - * its length. - * - * \param field - * Field descriptor. - * \param count - * Number of elements in the repeated field array. - * \param member - * Pointer to the elements for this repeated field. - * \param[out] out - * Serialised representation of the repeated field. - * \return - * Number of bytes serialised to `out`. - */ -static size_t -repeated_field_pack(const ProtobufCFieldDescriptor *field, - size_t count, const void *member, uint8_t *out) -{ - void *array = *(void * const *) member; - unsigned i; - - if (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED)) { - unsigned header_len; - unsigned len_start; - unsigned min_length; - unsigned payload_len; - unsigned length_size_min; - unsigned actual_length_size; - uint8_t *payload_at; - - if (count == 0) - return 0; - header_len = tag_pack(field->id, out); - out[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED; - len_start = header_len; - min_length = get_type_min_size(field->type) * count; - length_size_min = uint32_size(min_length); - header_len += length_size_min; - payload_at = out + header_len; - - switch (field->type) { - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - case PROTOBUF_C_TYPE_FLOAT: - copy_to_little_endian_32(payload_at, array, count); - payload_at += count * 4; - break; - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - case PROTOBUF_C_TYPE_DOUBLE: - copy_to_little_endian_64(payload_at, array, count); - payload_at += count * 8; - break; - case PROTOBUF_C_TYPE_ENUM: - case PROTOBUF_C_TYPE_INT32: { - const int32_t *arr = (const int32_t *) array; - for (i = 0; i < count; i++) - payload_at += int32_pack(arr[i], payload_at); - break; - } - case PROTOBUF_C_TYPE_SINT32: { - const int32_t *arr = (const int32_t *) array; - for (i = 0; i < count; i++) - payload_at += sint32_pack(arr[i], payload_at); - break; - } - case PROTOBUF_C_TYPE_SINT64: { - const int64_t *arr = (const int64_t *) array; - for (i = 0; i < count; i++) - payload_at += sint64_pack(arr[i], payload_at); - break; - } - case PROTOBUF_C_TYPE_UINT32: { - const uint32_t *arr = (const uint32_t *) array; - for (i = 0; i < count; i++) - payload_at += uint32_pack(arr[i], payload_at); - break; - } - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_UINT64: { - const uint64_t *arr = (const uint64_t *) array; - for (i = 0; i < count; i++) - payload_at += uint64_pack(arr[i], payload_at); - break; - } - case PROTOBUF_C_TYPE_BOOL: { - const protobuf_c_boolean *arr = (const protobuf_c_boolean *) array; - for (i = 0; i < count; i++) - payload_at += boolean_pack(arr[i], payload_at); - break; - } - //default: - //PROTOBUF_C__ASSERT_NOT_REACHED(); - } - - payload_len = payload_at - (out + header_len); - actual_length_size = uint32_size(payload_len); - if (length_size_min != actual_length_size) { - //assert(actual_length_size == length_size_min + 1); - memmove(out + header_len + 1, out + header_len, - payload_len); - header_len++; - } - uint32_pack(payload_len, out + len_start); - return header_len + payload_len; - } else { - /* not "packed" cased */ - /* CONSIDER: optimize this case a bit (by putting the loop inside the switch) */ - size_t rv = 0; - unsigned siz = sizeof_elt_in_repeated_array(field->type); - - for (i = 0; i < count; i++) { - rv += required_field_pack(field, array, out + rv); - array = (char *)array + siz; - } - return rv; - } -} - -static size_t -unknown_field_pack(const ProtobufCMessageUnknownField *field, uint8_t *out) -{ - size_t rv = tag_pack(field->tag, out); - out[0] |= field->wire_type; - memcpy(out + rv, field->data, field->len); - return rv + field->len; -} - -/**@}*/ - -size_t -protobuf_c_message_pack(const ProtobufCMessage *message, uint8_t *out) -{ - unsigned i; - size_t rv = 0; - - //ASSERT_IS_MESSAGE(message); - for (i = 0; i < message->descriptor->n_fields; i++) { - const ProtobufCFieldDescriptor *field = - message->descriptor->fields + i; - const void *member = ((const char *) message) + field->offset; - - /* - * It doesn't hurt to compute qmember (a pointer to the - * quantifier field of the structure), but the pointer is only - * valid if the field is: - * - a repeated field, or - * - a field that is part of a oneof - * - an optional field that isn't a pointer type - * (Meaning: not a message or a string). - */ - const void *qmember = - ((const char *) message) + field->quantifier_offset; - - if (field->label == PROTOBUF_C_LABEL_REQUIRED) { - rv += required_field_pack(field, member, out + rv); - } else if ((field->label == PROTOBUF_C_LABEL_OPTIONAL || - field->label == PROTOBUF_C_LABEL_NONE) && - (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_ONEOF))) { - rv += oneof_field_pack( - field, - *(const uint32_t *) qmember, - member, - out + rv - ); - } else if (field->label == PROTOBUF_C_LABEL_OPTIONAL) { - rv += optional_field_pack( - field, - *(const protobuf_c_boolean *) qmember, - member, - out + rv - ); - } else if (field->label == PROTOBUF_C_LABEL_NONE) { - rv += unlabeled_field_pack(field, member, out + rv); - } else { - rv += repeated_field_pack(field, *(const size_t *) qmember, - member, out + rv); - } - } - for (i = 0; i < message->n_unknown_fields; i++) - rv += unknown_field_pack(&message->unknown_fields[i], out + rv); - return rv; -} - -/** - * \defgroup packbuf protobuf_c_message_pack_to_buffer() implementation - * - * Routines mainly used by protobuf_c_message_pack_to_buffer(). - * - * \ingroup internal - * @{ - */ - -/** - * Pack a required field to a virtual buffer. - * - * \param field - * Field descriptor. - * \param member - * The element to be packed. - * \param[out] buffer - * Virtual buffer to append data to. - * \return - * Number of bytes packed. - */ -static size_t -required_field_pack_to_buffer(const ProtobufCFieldDescriptor *field, - const void *member, ProtobufCBuffer *buffer) -{ - size_t rv; - uint8_t scratch[MAX_UINT64_ENCODED_SIZE * 2]; - - rv = tag_pack(field->id, scratch); - switch (field->type) { - case PROTOBUF_C_TYPE_SINT32: - scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - rv += sint32_pack(*(const int32_t *) member, scratch + rv); - buffer->append(buffer, rv, scratch); - break; - case PROTOBUF_C_TYPE_ENUM: - case PROTOBUF_C_TYPE_INT32: - scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - rv += int32_pack(*(const int32_t *) member, scratch + rv); - buffer->append(buffer, rv, scratch); - break; - case PROTOBUF_C_TYPE_UINT32: - scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - rv += uint32_pack(*(const uint32_t *) member, scratch + rv); - buffer->append(buffer, rv, scratch); - break; - case PROTOBUF_C_TYPE_SINT64: - scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - rv += sint64_pack(*(const int64_t *) member, scratch + rv); - buffer->append(buffer, rv, scratch); - break; - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_UINT64: - scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - rv += uint64_pack(*(const uint64_t *) member, scratch + rv); - buffer->append(buffer, rv, scratch); - break; - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - case PROTOBUF_C_TYPE_FLOAT: - scratch[0] |= PROTOBUF_C_WIRE_TYPE_32BIT; - rv += fixed32_pack(*(const uint32_t *) member, scratch + rv); - buffer->append(buffer, rv, scratch); - break; - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - case PROTOBUF_C_TYPE_DOUBLE: - scratch[0] |= PROTOBUF_C_WIRE_TYPE_64BIT; - rv += fixed64_pack(*(const uint64_t *) member, scratch + rv); - buffer->append(buffer, rv, scratch); - break; - case PROTOBUF_C_TYPE_BOOL: - scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT; - rv += boolean_pack(*(const protobuf_c_boolean *) member, scratch + rv); - buffer->append(buffer, rv, scratch); - break; - case PROTOBUF_C_TYPE_STRING: { - const char *str = *(char *const *) member; - size_t sublen = str ? strlen(str) : 0; - - scratch[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED; - rv += uint32_pack(sublen, scratch + rv); - buffer->append(buffer, rv, scratch); - buffer->append(buffer, sublen, (const uint8_t *) str); - rv += sublen; - break; - } - case PROTOBUF_C_TYPE_BYTES: { - const ProtobufCBinaryData *bd = ((const ProtobufCBinaryData *) member); - size_t sublen = bd->len; - - scratch[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED; - rv += uint32_pack(sublen, scratch + rv); - buffer->append(buffer, rv, scratch); - buffer->append(buffer, sublen, bd->data); - rv += sublen; - break; - } - case PROTOBUF_C_TYPE_MESSAGE: { - uint8_t simple_buffer_scratch[256]; - size_t sublen; - const ProtobufCMessage *msg = *(ProtobufCMessage * const *) member; - ProtobufCBufferSimple simple_buffer = - PROTOBUF_C_BUFFER_SIMPLE_INIT(simple_buffer_scratch); - - scratch[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED; - if (msg == NULL) - sublen = 0; - else - sublen = protobuf_c_message_pack_to_buffer(msg, &simple_buffer.base); - rv += uint32_pack(sublen, scratch + rv); - buffer->append(buffer, rv, scratch); - buffer->append(buffer, sublen, simple_buffer.data); - rv += sublen; - PROTOBUF_C_BUFFER_SIMPLE_CLEAR(&simple_buffer); - break; - } - //default: - //PROTOBUF_C__ASSERT_NOT_REACHED(); - } - return rv; -} - -/** - * Pack a oneof field to a buffer. Only packs the field that is selected by the case enum. - * - * \param field - * Field descriptor. - * \param oneof_case - * Enum value that selects the field in the oneof. - * \param member - * The element to be packed. - * \param[out] buffer - * Virtual buffer to append data to. - * \return - * Number of bytes serialised to `buffer`. - */ -static size_t -oneof_field_pack_to_buffer(const ProtobufCFieldDescriptor *field, - uint32_t oneof_case, - const void *member, ProtobufCBuffer *buffer) -{ - if (oneof_case != field->id) { - return 0; - } - if (field->type == PROTOBUF_C_TYPE_MESSAGE || - field->type == PROTOBUF_C_TYPE_STRING) - { - const void *ptr = *(const void *const *) member; - if (ptr == NULL || ptr == field->default_value) - return 0; - } - return required_field_pack_to_buffer(field, member, buffer); -} - -/** - * Pack an optional field to a buffer. - * - * \param field - * Field descriptor. - * \param has - * Whether the field is set. - * \param member - * The element to be packed. - * \param[out] buffer - * Virtual buffer to append data to. - * \return - * Number of bytes serialised to `buffer`. - */ -static size_t -optional_field_pack_to_buffer(const ProtobufCFieldDescriptor *field, - const protobuf_c_boolean has, - const void *member, ProtobufCBuffer *buffer) -{ - if (field->type == PROTOBUF_C_TYPE_MESSAGE || - field->type == PROTOBUF_C_TYPE_STRING) - { - const void *ptr = *(const void *const *) member; - if (ptr == NULL || ptr == field->default_value) - return 0; - } else { - if (!has) - return 0; - } - return required_field_pack_to_buffer(field, member, buffer); -} - -/** - * Pack an unlabeled field to a buffer. - * - * \param field - * Field descriptor. - * \param member - * The element to be packed. - * \param[out] buffer - * Virtual buffer to append data to. - * \return - * Number of bytes serialised to `buffer`. - */ -static size_t -unlabeled_field_pack_to_buffer(const ProtobufCFieldDescriptor *field, - const void *member, ProtobufCBuffer *buffer) -{ - if (field_is_zeroish(field, member)) - return 0; - return required_field_pack_to_buffer(field, member, buffer); -} - -/** - * Get the packed size of an array of same field type. - * - * \param field - * Field descriptor. - * \param count - * Number of elements of this type. - * \param array - * The elements to get the size of. - * \return - * Number of bytes required. - */ -static size_t -get_packed_payload_length(const ProtobufCFieldDescriptor *field, - unsigned count, const void *array) -{ - unsigned rv = 0; - unsigned i; - - switch (field->type) { - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - case PROTOBUF_C_TYPE_FLOAT: - return count * 4; - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - case PROTOBUF_C_TYPE_DOUBLE: - return count * 8; - case PROTOBUF_C_TYPE_ENUM: - case PROTOBUF_C_TYPE_INT32: { - const int32_t *arr = (const int32_t *) array; - for (i = 0; i < count; i++) - rv += int32_size(arr[i]); - break; - } - case PROTOBUF_C_TYPE_SINT32: { - const int32_t *arr = (const int32_t *) array; - for (i = 0; i < count; i++) - rv += sint32_size(arr[i]); - break; - } - case PROTOBUF_C_TYPE_UINT32: { - const uint32_t *arr = (const uint32_t *) array; - for (i = 0; i < count; i++) - rv += uint32_size(arr[i]); - break; - } - case PROTOBUF_C_TYPE_SINT64: { - const int64_t *arr = (const int64_t *) array; - for (i = 0; i < count; i++) - rv += sint64_size(arr[i]); - break; - } - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_UINT64: { - const uint64_t *arr = (const uint64_t *) array; - for (i = 0; i < count; i++) - rv += uint64_size(arr[i]); - break; - } - case PROTOBUF_C_TYPE_BOOL: - return count; - //default: - //PROTOBUF_C__ASSERT_NOT_REACHED(); - } - return rv; -} - -/** - * Pack an array of same field type to a virtual buffer. - * - * \param field - * Field descriptor. - * \param count - * Number of elements of this type. - * \param array - * The elements to get the size of. - * \param[out] buffer - * Virtual buffer to append data to. - * \return - * Number of bytes packed. - */ -static size_t -pack_buffer_packed_payload(const ProtobufCFieldDescriptor *field, - unsigned count, const void *array, - ProtobufCBuffer *buffer) -{ - uint8_t scratch[16]; - size_t rv = 0; - unsigned i; - - switch (field->type) { - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - case PROTOBUF_C_TYPE_FLOAT: -#if !defined(WORDS_BIGENDIAN) - rv = count * 4; - goto no_packing_needed; -#else - for (i = 0; i < count; i++) { - unsigned len = fixed32_pack(((uint32_t *) array)[i], scratch); - buffer->append(buffer, len, scratch); - rv += len; - } - break; -#endif - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - case PROTOBUF_C_TYPE_DOUBLE: -#if !defined(WORDS_BIGENDIAN) - rv = count * 8; - goto no_packing_needed; -#else - for (i = 0; i < count; i++) { - unsigned len = fixed64_pack(((uint64_t *) array)[i], scratch); - buffer->append(buffer, len, scratch); - rv += len; - } - break; -#endif - case PROTOBUF_C_TYPE_ENUM: - case PROTOBUF_C_TYPE_INT32: - for (i = 0; i < count; i++) { - unsigned len = int32_pack(((int32_t *) array)[i], scratch); - buffer->append(buffer, len, scratch); - rv += len; - } - break; - case PROTOBUF_C_TYPE_SINT32: - for (i = 0; i < count; i++) { - unsigned len = sint32_pack(((int32_t *) array)[i], scratch); - buffer->append(buffer, len, scratch); - rv += len; - } - break; - case PROTOBUF_C_TYPE_UINT32: - for (i = 0; i < count; i++) { - unsigned len = uint32_pack(((uint32_t *) array)[i], scratch); - buffer->append(buffer, len, scratch); - rv += len; - } - break; - case PROTOBUF_C_TYPE_SINT64: - for (i = 0; i < count; i++) { - unsigned len = sint64_pack(((int64_t *) array)[i], scratch); - buffer->append(buffer, len, scratch); - rv += len; - } - break; - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_UINT64: - for (i = 0; i < count; i++) { - unsigned len = uint64_pack(((uint64_t *) array)[i], scratch); - buffer->append(buffer, len, scratch); - rv += len; - } - break; - case PROTOBUF_C_TYPE_BOOL: - for (i = 0; i < count; i++) { - unsigned len = boolean_pack(((protobuf_c_boolean *) array)[i], scratch); - buffer->append(buffer, len, scratch); - rv += len; - } - return count; - //default: - //PROTOBUF_C__ASSERT_NOT_REACHED(); - } - return rv; - -#if !defined(WORDS_BIGENDIAN) -no_packing_needed: - buffer->append(buffer, rv, array); - return rv; -#endif -} - -static size_t -repeated_field_pack_to_buffer(const ProtobufCFieldDescriptor *field, - unsigned count, const void *member, - ProtobufCBuffer *buffer) -{ - char *array = *(char * const *) member; - - if (count == 0) - return 0; - if (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED)) { - uint8_t scratch[MAX_UINT64_ENCODED_SIZE * 2]; - size_t rv = tag_pack(field->id, scratch); - size_t payload_len = get_packed_payload_length(field, count, array); - size_t tmp; - - scratch[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED; - rv += uint32_pack(payload_len, scratch + rv); - buffer->append(buffer, rv, scratch); - tmp = pack_buffer_packed_payload(field, count, array, buffer); - //assert(tmp == payload_len); - return rv + payload_len; - } else { - size_t siz; - unsigned i; - /* CONSIDER: optimize this case a bit (by putting the loop inside the switch) */ - unsigned rv = 0; - - siz = sizeof_elt_in_repeated_array(field->type); - for (i = 0; i < count; i++) { - rv += required_field_pack_to_buffer(field, array, buffer); - array += siz; - } - return rv; - } -} - -static size_t -unknown_field_pack_to_buffer(const ProtobufCMessageUnknownField *field, - ProtobufCBuffer *buffer) -{ - uint8_t header[MAX_UINT64_ENCODED_SIZE]; - size_t rv = tag_pack(field->tag, header); - - header[0] |= field->wire_type; - buffer->append(buffer, rv, header); - buffer->append(buffer, field->len, field->data); - return rv + field->len; -} - -/**@}*/ - -size_t -protobuf_c_message_pack_to_buffer(const ProtobufCMessage *message, - ProtobufCBuffer *buffer) -{ - unsigned i; - size_t rv = 0; - - //ASSERT_IS_MESSAGE(message); - for (i = 0; i < message->descriptor->n_fields; i++) { - const ProtobufCFieldDescriptor *field = - message->descriptor->fields + i; - const void *member = - ((const char *) message) + field->offset; - const void *qmember = - ((const char *) message) + field->quantifier_offset; - - if (field->label == PROTOBUF_C_LABEL_REQUIRED) { - rv += required_field_pack_to_buffer(field, member, buffer); - } else if ((field->label == PROTOBUF_C_LABEL_OPTIONAL || - field->label == PROTOBUF_C_LABEL_NONE) && - (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_ONEOF))) { - rv += oneof_field_pack_to_buffer( - field, - *(const uint32_t *) qmember, - member, - buffer - ); - } else if (field->label == PROTOBUF_C_LABEL_OPTIONAL) { - rv += optional_field_pack_to_buffer( - field, - *(const protobuf_c_boolean *) qmember, - member, - buffer - ); - } else if (field->label == PROTOBUF_C_LABEL_NONE) { - rv += unlabeled_field_pack_to_buffer( - field, - member, - buffer - ); - } else { - rv += repeated_field_pack_to_buffer( - field, - *(const size_t *) qmember, - member, - buffer - ); - } - } - for (i = 0; i < message->n_unknown_fields; i++) - rv += unknown_field_pack_to_buffer(&message->unknown_fields[i], buffer); - - return rv; -} - -/** - * \defgroup unpack unpacking implementation - * - * Routines mainly used by the unpacking functions. - * - * \ingroup internal - * @{ - */ - -static inline int -int_range_lookup(unsigned n_ranges, const ProtobufCIntRange *ranges, int value) -{ - unsigned n; - unsigned start; - - if (n_ranges == 0) - return -1; - start = 0; - n = n_ranges; - while (n > 1) { - unsigned mid = start + n / 2; - - if (value < ranges[mid].start_value) { - n = mid - start; - } else if (value >= ranges[mid].start_value + - (int) (ranges[mid + 1].orig_index - - ranges[mid].orig_index)) - { - unsigned new_start = mid + 1; - n = start + n - new_start; - start = new_start; - } else - return (value - ranges[mid].start_value) + - ranges[mid].orig_index; - } - if (n > 0) { - unsigned start_orig_index = ranges[start].orig_index; - unsigned range_size = - ranges[start + 1].orig_index - start_orig_index; - - if (ranges[start].start_value <= value && - value < (int) (ranges[start].start_value + range_size)) - { - return (value - ranges[start].start_value) + - start_orig_index; - } - } - return -1; -} - -static size_t -parse_tag_and_wiretype(size_t len, - const uint8_t *data, - uint32_t *tag_out, - ProtobufCWireType *wiretype_out) -{ - unsigned max_rv = len > 5 ? 5 : len; - uint32_t tag = (data[0] & 0x7f) >> 3; - unsigned shift = 4; - unsigned rv; - - /* 0 is not a valid tag value */ - if ((data[0] & 0xf8) == 0) { - return 0; - } - - *wiretype_out = data[0] & 7; - if ((data[0] & 0x80) == 0) { - *tag_out = tag; - return 1; - } - for (rv = 1; rv < max_rv; rv++) { - if (data[rv] & 0x80) { - tag |= (data[rv] & 0x7f) << shift; - shift += 7; - } else { - tag |= data[rv] << shift; - *tag_out = tag; - return rv + 1; - } - } - return 0; /* error: bad header */ -} - -/* sizeof(ScannedMember) must be <= (1UL< INT_MAX) { - // Protobuf messages should always be less than 2 GiB in size. - // We also want to return early here so that hdr_len + val does - // not overflow on 32-bit systems. - PROTOBUF_C_UNPACK_ERROR("length prefix of %lu is too large", val); - return 0; - } - if (hdr_len + val > len) { - PROTOBUF_C_UNPACK_ERROR("data too short after length-prefix of %lu", val); - return 0; - } - return hdr_len + val; -} - -static size_t -max_b128_numbers(size_t len, const uint8_t *data) -{ - size_t rv = 0; - while (len--) - if ((*data++ & 0x80) == 0) - ++rv; - return rv; -} - -/**@}*/ - -/** - * Merge earlier message into a latter message. - * - * For numeric types and strings, if the same value appears multiple - * times, the parser accepts the last value it sees. For embedded - * message fields, the parser merges multiple instances of the same - * field. That is, all singular scalar fields in the latter instance - * replace those in the former, singular embedded messages are merged, - * and repeated fields are concatenated. - * - * The earlier message should be freed after calling this function, as - * some of its fields may have been reused and changed to their default - * values during the merge. - */ -static protobuf_c_boolean -merge_messages(ProtobufCMessage *earlier_msg, - ProtobufCMessage *latter_msg, - ProtobufCAllocator *allocator) -{ - unsigned i; - const ProtobufCFieldDescriptor *fields = - latter_msg->descriptor->fields; - for (i = 0; i < latter_msg->descriptor->n_fields; i++) { - if (fields[i].label == PROTOBUF_C_LABEL_REPEATED) { - size_t *n_earlier = - STRUCT_MEMBER_PTR(size_t, earlier_msg, - fields[i].quantifier_offset); - uint8_t **p_earlier = - STRUCT_MEMBER_PTR(uint8_t *, earlier_msg, - fields[i].offset); - size_t *n_latter = - STRUCT_MEMBER_PTR(size_t, latter_msg, - fields[i].quantifier_offset); - uint8_t **p_latter = - STRUCT_MEMBER_PTR(uint8_t *, latter_msg, - fields[i].offset); - - if (*n_earlier > 0) { - if (*n_latter > 0) { - /* Concatenate the repeated field */ - size_t el_size = - sizeof_elt_in_repeated_array(fields[i].type); - uint8_t *new_field; - - new_field = do_alloc(allocator, - (*n_earlier + *n_latter) * el_size); - if (!new_field) - return FALSE; - - memcpy(new_field, *p_earlier, - *n_earlier * el_size); - memcpy(new_field + - *n_earlier * el_size, - *p_latter, - *n_latter * el_size); - - do_free(allocator, *p_latter); - do_free(allocator, *p_earlier); - *p_latter = new_field; - *n_latter = *n_earlier + *n_latter; - } else { - /* Zero copy the repeated field from the earlier message */ - *n_latter = *n_earlier; - *p_latter = *p_earlier; - } - /* Make sure the field does not get double freed */ - *n_earlier = 0; - *p_earlier = 0; - } - } else if (fields[i].label == PROTOBUF_C_LABEL_OPTIONAL || - fields[i].label == PROTOBUF_C_LABEL_NONE) { - const ProtobufCFieldDescriptor *field; - uint32_t *earlier_case_p = STRUCT_MEMBER_PTR(uint32_t, - earlier_msg, - fields[i]. - quantifier_offset); - uint32_t *latter_case_p = STRUCT_MEMBER_PTR(uint32_t, - latter_msg, - fields[i]. - quantifier_offset); - protobuf_c_boolean need_to_merge = FALSE; - void *earlier_elem; - void *latter_elem; - const void *def_val; - - if (fields[i].flags & PROTOBUF_C_FIELD_FLAG_ONEOF) { - if (*latter_case_p == 0) { - /* lookup correct oneof field */ - int field_index = - int_range_lookup( - latter_msg->descriptor - ->n_field_ranges, - latter_msg->descriptor - ->field_ranges, - *earlier_case_p); - if (field_index < 0) - return FALSE; - field = latter_msg->descriptor->fields + - field_index; - } else { - /* Oneof is present in the latter message, move on */ - continue; - } - } else { - field = &fields[i]; - } - - earlier_elem = STRUCT_MEMBER_P(earlier_msg, field->offset); - latter_elem = STRUCT_MEMBER_P(latter_msg, field->offset); - def_val = field->default_value; - - switch (field->type) { - case PROTOBUF_C_TYPE_MESSAGE: { - ProtobufCMessage *em = *(ProtobufCMessage **) earlier_elem; - ProtobufCMessage *lm = *(ProtobufCMessage **) latter_elem; - if (em != NULL) { - if (lm != NULL) { - if (!merge_messages(em, lm, allocator)) - return FALSE; - /* Already merged */ - need_to_merge = FALSE; - } else { - /* Zero copy the message */ - need_to_merge = TRUE; - } - } - break; - } - case PROTOBUF_C_TYPE_BYTES: { - uint8_t *e_data = - ((ProtobufCBinaryData *) earlier_elem)->data; - uint8_t *l_data = - ((ProtobufCBinaryData *) latter_elem)->data; - const ProtobufCBinaryData *d_bd = - (ProtobufCBinaryData *) def_val; - - need_to_merge = - (e_data != NULL && - (d_bd == NULL || - e_data != d_bd->data)) && - (l_data == NULL || - (d_bd != NULL && - l_data == d_bd->data)); - break; - } - case PROTOBUF_C_TYPE_STRING: { - char *e_str = *(char **) earlier_elem; - char *l_str = *(char **) latter_elem; - const char *d_str = def_val; - - need_to_merge = e_str != d_str && l_str == d_str; - break; - } - default: { - /* Could be has field or case enum, the logic is - * equivalent, since 0 (FALSE) means not set for - * oneof */ - need_to_merge = (*earlier_case_p != 0) && - (*latter_case_p == 0); - break; - } - } - - if (need_to_merge) { - size_t el_size = - sizeof_elt_in_repeated_array(field->type); - memcpy(latter_elem, earlier_elem, el_size); - /* - * Reset the element from the old message to 0 - * to make sure earlier message deallocation - * doesn't corrupt zero-copied data in the new - * message, earlier message will be freed after - * this function is called anyway - */ - memset(earlier_elem, 0, el_size); - - if (field->quantifier_offset != 0) { - /* Set the has field or the case enum, - * if applicable */ - *latter_case_p = *earlier_case_p; - *earlier_case_p = 0; - } - } - } - } - return TRUE; -} - -/** - * Count packed elements. - * - * Given a raw slab of packed-repeated values, determine the number of - * elements. This function detects certain kinds of errors but not - * others; the remaining error checking is done by - * parse_packed_repeated_member(). - */ -static protobuf_c_boolean -count_packed_elements(ProtobufCType type, - size_t len, const uint8_t *data, size_t *count_out) -{ - switch (type) { - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - case PROTOBUF_C_TYPE_FLOAT: - if (len % 4 != 0) { - PROTOBUF_C_UNPACK_ERROR("length must be a multiple of 4 for fixed-length 32-bit types"); - return FALSE; - } - *count_out = len / 4; - return TRUE; - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - case PROTOBUF_C_TYPE_DOUBLE: - if (len % 8 != 0) { - PROTOBUF_C_UNPACK_ERROR("length must be a multiple of 8 for fixed-length 64-bit types"); - return FALSE; - } - *count_out = len / 8; - return TRUE; - case PROTOBUF_C_TYPE_ENUM: - case PROTOBUF_C_TYPE_INT32: - case PROTOBUF_C_TYPE_SINT32: - case PROTOBUF_C_TYPE_UINT32: - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_SINT64: - case PROTOBUF_C_TYPE_UINT64: - *count_out = max_b128_numbers(len, data); - return TRUE; - case PROTOBUF_C_TYPE_BOOL: - *count_out = len; - return TRUE; - case PROTOBUF_C_TYPE_STRING: - case PROTOBUF_C_TYPE_BYTES: - case PROTOBUF_C_TYPE_MESSAGE: - default: - PROTOBUF_C_UNPACK_ERROR("bad protobuf-c type %u for packed-repeated", type); - return FALSE; - } -} - -static inline uint32_t -parse_uint32(unsigned len, const uint8_t *data) -{ - uint32_t rv = data[0] & 0x7f; - if (len > 1) { - rv |= ((uint32_t) (data[1] & 0x7f) << 7); - if (len > 2) { - rv |= ((uint32_t) (data[2] & 0x7f) << 14); - if (len > 3) { - rv |= ((uint32_t) (data[3] & 0x7f) << 21); - if (len > 4) - rv |= ((uint32_t) (data[4]) << 28); - } - } - } - return rv; -} - -static inline uint32_t -parse_int32(unsigned len, const uint8_t *data) -{ - return parse_uint32(len, data); -} - -static inline int32_t -unzigzag32(uint32_t v) -{ - if (v & 1) - return -(v >> 1) - 1; - else - return v >> 1; -} - -static inline uint32_t -parse_fixed_uint32(const uint8_t *data) -{ -#if !defined(WORDS_BIGENDIAN) - uint32_t t; - memcpy(&t, data, 4); - return t; -#else - return data[0] | - ((uint32_t) (data[1]) << 8) | - ((uint32_t) (data[2]) << 16) | - ((uint32_t) (data[3]) << 24); -#endif -} - -static uint64_t -parse_uint64(unsigned len, const uint8_t *data) -{ - unsigned shift, i; - uint64_t rv; - - if (len < 5) - return parse_uint32(len, data); - rv = ((uint64_t) (data[0] & 0x7f)) | - ((uint64_t) (data[1] & 0x7f) << 7) | - ((uint64_t) (data[2] & 0x7f) << 14) | - ((uint64_t) (data[3] & 0x7f) << 21); - shift = 28; - for (i = 4; i < len; i++) { - rv |= (((uint64_t) (data[i] & 0x7f)) << shift); - shift += 7; - } - return rv; -} - -static inline int64_t -unzigzag64(uint64_t v) -{ - if (v & 1) - return -(v >> 1) - 1; - else - return v >> 1; -} - -static inline uint64_t -parse_fixed_uint64(const uint8_t *data) -{ -#if !defined(WORDS_BIGENDIAN) - uint64_t t; - memcpy(&t, data, 8); - return t; -#else - return (uint64_t) parse_fixed_uint32(data) | - (((uint64_t) parse_fixed_uint32(data + 4)) << 32); -#endif -} - -static protobuf_c_boolean -parse_boolean(unsigned len, const uint8_t *data) -{ - unsigned i; - for (i = 0; i < len; i++) - if (data[i] & 0x7f) - return TRUE; - return FALSE; -} - -static protobuf_c_boolean -parse_required_member(ScannedMember *scanned_member, - void *member, - ProtobufCAllocator *allocator, - protobuf_c_boolean maybe_clear) -{ - unsigned len = scanned_member->len; - const uint8_t *data = scanned_member->data; - ProtobufCWireType wire_type = scanned_member->wire_type; - - switch (scanned_member->field->type) { - case PROTOBUF_C_TYPE_ENUM: - case PROTOBUF_C_TYPE_INT32: - if (wire_type != PROTOBUF_C_WIRE_TYPE_VARINT) - return FALSE; - *(int32_t *) member = parse_int32(len, data); - return TRUE; - case PROTOBUF_C_TYPE_UINT32: - if (wire_type != PROTOBUF_C_WIRE_TYPE_VARINT) - return FALSE; - *(uint32_t *) member = parse_uint32(len, data); - return TRUE; - case PROTOBUF_C_TYPE_SINT32: - if (wire_type != PROTOBUF_C_WIRE_TYPE_VARINT) - return FALSE; - *(int32_t *) member = unzigzag32(parse_uint32(len, data)); - return TRUE; - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - case PROTOBUF_C_TYPE_FLOAT: - if (wire_type != PROTOBUF_C_WIRE_TYPE_32BIT) - return FALSE; - *(uint32_t *) member = parse_fixed_uint32(data); - return TRUE; - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_UINT64: - if (wire_type != PROTOBUF_C_WIRE_TYPE_VARINT) - return FALSE; - *(uint64_t *) member = parse_uint64(len, data); - return TRUE; - case PROTOBUF_C_TYPE_SINT64: - if (wire_type != PROTOBUF_C_WIRE_TYPE_VARINT) - return FALSE; - *(int64_t *) member = unzigzag64(parse_uint64(len, data)); - return TRUE; - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - case PROTOBUF_C_TYPE_DOUBLE: - if (wire_type != PROTOBUF_C_WIRE_TYPE_64BIT) - return FALSE; - *(uint64_t *) member = parse_fixed_uint64(data); - return TRUE; - case PROTOBUF_C_TYPE_BOOL: - *(protobuf_c_boolean *) member = parse_boolean(len, data); - return TRUE; - case PROTOBUF_C_TYPE_STRING: { - char **pstr = member; - unsigned pref_len = scanned_member->length_prefix_len; - - if (wire_type != PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED) - return FALSE; - - if (maybe_clear && *pstr != NULL) { - const char *def = scanned_member->field->default_value; - if (*pstr != NULL && *pstr != def) - do_free(allocator, *pstr); - } - *pstr = do_alloc(allocator, len - pref_len + 1); - if (*pstr == NULL) - return FALSE; - memcpy(*pstr, data + pref_len, len - pref_len); - (*pstr)[len - pref_len] = 0; - return TRUE; - } - case PROTOBUF_C_TYPE_BYTES: { - ProtobufCBinaryData *bd = member; - const ProtobufCBinaryData *def_bd; - unsigned pref_len = scanned_member->length_prefix_len; - - if (wire_type != PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED) - return FALSE; - - def_bd = scanned_member->field->default_value; - if (maybe_clear && - bd->data != NULL && - (def_bd == NULL || bd->data != def_bd->data)) - { - do_free(allocator, bd->data); - } - if (len - pref_len > 0) { - bd->data = do_alloc(allocator, len - pref_len); - if (bd->data == NULL) - return FALSE; - memcpy(bd->data, data + pref_len, len - pref_len); - } else { - bd->data = NULL; - } - bd->len = len - pref_len; - return TRUE; - } - case PROTOBUF_C_TYPE_MESSAGE: { - ProtobufCMessage **pmessage = member; - ProtobufCMessage *subm; - const ProtobufCMessage *def_mess; - protobuf_c_boolean merge_successful = TRUE; - unsigned pref_len = scanned_member->length_prefix_len; - - if (wire_type != PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED) - return FALSE; - - def_mess = scanned_member->field->default_value; - subm = protobuf_c_message_unpack(scanned_member->field->descriptor, - allocator, - len - pref_len, - data + pref_len); - - if (maybe_clear && - *pmessage != NULL && - *pmessage != def_mess) - { - if (subm != NULL) - merge_successful = merge_messages(*pmessage, subm, allocator); - /* Delete the previous message */ - protobuf_c_message_free_unpacked(*pmessage, allocator); - } - *pmessage = subm; - if (subm == NULL || !merge_successful) - return FALSE; - return TRUE; - } - } - return FALSE; -} - -static protobuf_c_boolean -parse_oneof_member (ScannedMember *scanned_member, - void *member, - ProtobufCMessage *message, - ProtobufCAllocator *allocator) -{ - uint32_t *oneof_case = STRUCT_MEMBER_PTR(uint32_t, message, - scanned_member->field->quantifier_offset); - - /* If we have already parsed a member of this oneof, free it. */ - if (*oneof_case != 0) { - const ProtobufCFieldDescriptor *old_field; - size_t el_size; - /* lookup field */ - int field_index = - int_range_lookup(message->descriptor->n_field_ranges, - message->descriptor->field_ranges, - *oneof_case); - if (field_index < 0) - return FALSE; - old_field = message->descriptor->fields + field_index; - el_size = sizeof_elt_in_repeated_array(old_field->type); - - switch (old_field->type) { - case PROTOBUF_C_TYPE_STRING: { - char **pstr = member; - const char *def = old_field->default_value; - if (*pstr != NULL && *pstr != def) - do_free(allocator, *pstr); - break; - } - case PROTOBUF_C_TYPE_BYTES: { - ProtobufCBinaryData *bd = member; - const ProtobufCBinaryData *def_bd = old_field->default_value; - if (bd->data != NULL && - (def_bd == NULL || bd->data != def_bd->data)) - { - do_free(allocator, bd->data); - } - break; - } - case PROTOBUF_C_TYPE_MESSAGE: { - ProtobufCMessage **pmessage = member; - const ProtobufCMessage *def_mess = old_field->default_value; - if (*pmessage != NULL && *pmessage != def_mess) - protobuf_c_message_free_unpacked(*pmessage, allocator); - break; - } - default: - break; - } - - memset (member, 0, el_size); - } - if (!parse_required_member (scanned_member, member, allocator, TRUE)) - return FALSE; - - *oneof_case = scanned_member->tag; - return TRUE; -} - - -static protobuf_c_boolean -parse_optional_member(ScannedMember *scanned_member, - void *member, - ProtobufCMessage *message, - ProtobufCAllocator *allocator) -{ - if (!parse_required_member(scanned_member, member, allocator, TRUE)) - return FALSE; - if (scanned_member->field->quantifier_offset != 0) - STRUCT_MEMBER(protobuf_c_boolean, - message, - scanned_member->field->quantifier_offset) = TRUE; - return TRUE; -} - -static protobuf_c_boolean -parse_repeated_member(ScannedMember *scanned_member, - void *member, - ProtobufCMessage *message, - ProtobufCAllocator *allocator) -{ - const ProtobufCFieldDescriptor *field = scanned_member->field; - size_t *p_n = STRUCT_MEMBER_PTR(size_t, message, field->quantifier_offset); - size_t siz = sizeof_elt_in_repeated_array(field->type); - char *array = *(char **) member; - - if (!parse_required_member(scanned_member, array + siz * (*p_n), - allocator, FALSE)) - { - return FALSE; - } - *p_n += 1; - return TRUE; -} - -static unsigned -scan_varint(unsigned len, const uint8_t *data) -{ - unsigned i; - if (len > 10) - len = 10; - for (i = 0; i < len; i++) - if ((data[i] & 0x80) == 0) - break; - if (i == len) - return 0; - return i + 1; -} - -static protobuf_c_boolean -parse_packed_repeated_member(ScannedMember *scanned_member, - void *member, - ProtobufCMessage *message) -{ - const ProtobufCFieldDescriptor *field = scanned_member->field; - size_t *p_n = STRUCT_MEMBER_PTR(size_t, message, field->quantifier_offset); - size_t siz = sizeof_elt_in_repeated_array(field->type); - void *array = *(char **) member + siz * (*p_n); - const uint8_t *at = scanned_member->data + scanned_member->length_prefix_len; - size_t rem = scanned_member->len - scanned_member->length_prefix_len; - size_t count = 0; - unsigned i; - - switch (field->type) { - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_FIXED32: - case PROTOBUF_C_TYPE_FLOAT: - count = (scanned_member->len - scanned_member->length_prefix_len) / 4; -#if !defined(WORDS_BIGENDIAN) - goto no_unpacking_needed; -#else - for (i = 0; i < count; i++) { - ((uint32_t *) array)[i] = parse_fixed_uint32(at); - at += 4; - } - break; -#endif - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_FIXED64: - case PROTOBUF_C_TYPE_DOUBLE: - count = (scanned_member->len - scanned_member->length_prefix_len) / 8; -#if !defined(WORDS_BIGENDIAN) - goto no_unpacking_needed; -#else - for (i = 0; i < count; i++) { - ((uint64_t *) array)[i] = parse_fixed_uint64(at); - at += 8; - } - break; -#endif - case PROTOBUF_C_TYPE_ENUM: - case PROTOBUF_C_TYPE_INT32: - while (rem > 0) { - unsigned s = scan_varint(rem, at); - if (s == 0) { - PROTOBUF_C_UNPACK_ERROR("bad packed-repeated int32 value"); - return FALSE; - } - ((int32_t *) array)[count++] = parse_int32(s, at); - at += s; - rem -= s; - } - break; - case PROTOBUF_C_TYPE_SINT32: - while (rem > 0) { - unsigned s = scan_varint(rem, at); - if (s == 0) { - PROTOBUF_C_UNPACK_ERROR("bad packed-repeated sint32 value"); - return FALSE; - } - ((int32_t *) array)[count++] = unzigzag32(parse_uint32(s, at)); - at += s; - rem -= s; - } - break; - case PROTOBUF_C_TYPE_UINT32: - while (rem > 0) { - unsigned s = scan_varint(rem, at); - if (s == 0) { - PROTOBUF_C_UNPACK_ERROR("bad packed-repeated enum or uint32 value"); - return FALSE; - } - ((uint32_t *) array)[count++] = parse_uint32(s, at); - at += s; - rem -= s; - } - break; - - case PROTOBUF_C_TYPE_SINT64: - while (rem > 0) { - unsigned s = scan_varint(rem, at); - if (s == 0) { - PROTOBUF_C_UNPACK_ERROR("bad packed-repeated sint64 value"); - return FALSE; - } - ((int64_t *) array)[count++] = unzigzag64(parse_uint64(s, at)); - at += s; - rem -= s; - } - break; - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_UINT64: - while (rem > 0) { - unsigned s = scan_varint(rem, at); - if (s == 0) { - PROTOBUF_C_UNPACK_ERROR("bad packed-repeated int64/uint64 value"); - return FALSE; - } - ((int64_t *) array)[count++] = parse_uint64(s, at); - at += s; - rem -= s; - } - break; - case PROTOBUF_C_TYPE_BOOL: - count = rem; - for (i = 0; i < count; i++) { - if (at[i] > 1) { - PROTOBUF_C_UNPACK_ERROR("bad packed-repeated boolean value"); - return FALSE; - } - ((protobuf_c_boolean *) array)[i] = at[i]; - } - break; - //default: - //PROTOBUF_C__ASSERT_NOT_REACHED(); - } - *p_n += count; - return TRUE; - -#if !defined(WORDS_BIGENDIAN) -no_unpacking_needed: - memcpy(array, at, count * siz); - *p_n += count; - return TRUE; -#endif -} - -static protobuf_c_boolean -is_packable_type(ProtobufCType type) -{ - return - type != PROTOBUF_C_TYPE_STRING && - type != PROTOBUF_C_TYPE_BYTES && - type != PROTOBUF_C_TYPE_MESSAGE; -} - -static protobuf_c_boolean -parse_member(ScannedMember *scanned_member, - ProtobufCMessage *message, - ProtobufCAllocator *allocator) -{ - const ProtobufCFieldDescriptor *field = scanned_member->field; - void *member; - - if (field == NULL) { - ProtobufCMessageUnknownField *ufield = - message->unknown_fields + - (message->n_unknown_fields++); - ufield->tag = scanned_member->tag; - ufield->wire_type = scanned_member->wire_type; - ufield->len = scanned_member->len; - ufield->data = do_alloc(allocator, scanned_member->len); - if (ufield->data == NULL) - return FALSE; - memcpy(ufield->data, scanned_member->data, ufield->len); - return TRUE; - } - member = (char *) message + field->offset; - switch (field->label) { - case PROTOBUF_C_LABEL_REQUIRED: - return parse_required_member(scanned_member, member, - allocator, TRUE); - case PROTOBUF_C_LABEL_OPTIONAL: - case PROTOBUF_C_LABEL_NONE: - if (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_ONEOF)) { - return parse_oneof_member(scanned_member, member, - message, allocator); - } else { - return parse_optional_member(scanned_member, member, - message, allocator); - } - case PROTOBUF_C_LABEL_REPEATED: - if (scanned_member->wire_type == - PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED && - (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED) || - is_packable_type(field->type))) - { - return parse_packed_repeated_member(scanned_member, - member, message); - } else { - return parse_repeated_member(scanned_member, - member, message, - allocator); - } - } - //PROTOBUF_C__ASSERT_NOT_REACHED(); - return 0; -} - -/** - * Initialise messages generated by old code. - * - * This function is used if desc->message_init == NULL (which occurs - * for old code, and which would be useful to support allocating - * descriptors dynamically). - */ -static void -message_init_generic(const ProtobufCMessageDescriptor *desc, - ProtobufCMessage *message) -{ - unsigned i; - - memset(message, 0, desc->sizeof_message); - message->descriptor = desc; - for (i = 0; i < desc->n_fields; i++) { - if (desc->fields[i].default_value != NULL && - desc->fields[i].label != PROTOBUF_C_LABEL_REPEATED) - { - void *field = - STRUCT_MEMBER_P(message, desc->fields[i].offset); - const void *dv = desc->fields[i].default_value; - - switch (desc->fields[i].type) { - case PROTOBUF_C_TYPE_INT32: - case PROTOBUF_C_TYPE_SINT32: - case PROTOBUF_C_TYPE_SFIXED32: - case PROTOBUF_C_TYPE_UINT32: - case PROTOBUF_C_TYPE_FIXED32: - case PROTOBUF_C_TYPE_FLOAT: - case PROTOBUF_C_TYPE_ENUM: - memcpy(field, dv, 4); - break; - case PROTOBUF_C_TYPE_INT64: - case PROTOBUF_C_TYPE_SINT64: - case PROTOBUF_C_TYPE_SFIXED64: - case PROTOBUF_C_TYPE_UINT64: - case PROTOBUF_C_TYPE_FIXED64: - case PROTOBUF_C_TYPE_DOUBLE: - memcpy(field, dv, 8); - break; - case PROTOBUF_C_TYPE_BOOL: - memcpy(field, dv, sizeof(protobuf_c_boolean)); - break; - case PROTOBUF_C_TYPE_BYTES: - memcpy(field, dv, sizeof(ProtobufCBinaryData)); - break; - - case PROTOBUF_C_TYPE_STRING: - case PROTOBUF_C_TYPE_MESSAGE: - /* - * The next line essentially implements a cast - * from const, which is totally unavoidable. - */ - *(const void **) field = dv; - break; - } - } - } -} - -/**@}*/ - -/* - * ScannedMember slabs (an unpacking implementation detail). Before doing real - * unpacking, we first scan through the elements to see how many there are (for - * repeated fields), and which field to use (for non-repeated fields given - * twice). - * - * In order to avoid allocations for small messages, we keep a stack-allocated - * slab of ScannedMembers of size FIRST_SCANNED_MEMBER_SLAB_SIZE (16). After we - * fill that up, we allocate each slab twice as large as the previous one. - */ -#define FIRST_SCANNED_MEMBER_SLAB_SIZE_LOG2 4 - -/* - * The number of slabs, including the stack-allocated ones; choose the number so - * that we would overflow if we needed a slab larger than provided. - */ -#define MAX_SCANNED_MEMBER_SLAB \ - (sizeof(unsigned int)*8 - 1 \ - - BOUND_SIZEOF_SCANNED_MEMBER_LOG2 \ - - FIRST_SCANNED_MEMBER_SLAB_SIZE_LOG2) - -#define REQUIRED_FIELD_BITMAP_SET(index) \ - (required_fields_bitmap[(index)/8] |= (1UL<<((index)%8))) - -#define REQUIRED_FIELD_BITMAP_IS_SET(index) \ - (required_fields_bitmap[(index)/8] & (1UL<<((index)%8))) - -ProtobufCMessage * -protobuf_c_message_unpack(const ProtobufCMessageDescriptor *desc, - ProtobufCAllocator *allocator, - size_t len, const uint8_t *data) -{ - ProtobufCMessage *rv; - size_t rem = len; - const uint8_t *at = data; - const ProtobufCFieldDescriptor *last_field = desc->fields + 0; - ScannedMember first_member_slab[1UL << - FIRST_SCANNED_MEMBER_SLAB_SIZE_LOG2]; - - /* - * scanned_member_slabs[i] is an array of arrays of ScannedMember. - * The first slab (scanned_member_slabs[0] is just a pointer to - * first_member_slab), above. All subsequent slabs will be allocated - * using the allocator. - */ - ScannedMember *scanned_member_slabs[MAX_SCANNED_MEMBER_SLAB + 1]; - unsigned which_slab = 0; /* the slab we are currently populating */ - unsigned in_slab_index = 0; /* number of members in the slab */ - size_t n_unknown = 0; - unsigned f; - unsigned j; - unsigned i_slab; - unsigned last_field_index = 0; - unsigned required_fields_bitmap_len; - unsigned char required_fields_bitmap_stack[16]; - unsigned char *required_fields_bitmap = required_fields_bitmap_stack; - protobuf_c_boolean required_fields_bitmap_alloced = FALSE; - - //_DESCRIPTOR(desc); - - if (allocator == NULL) - allocator = &protobuf_c__allocator; - - rv = do_alloc(allocator, desc->sizeof_message); - if (!rv) - return (NULL); - scanned_member_slabs[0] = first_member_slab; - - required_fields_bitmap_len = (desc->n_fields + 7) / 8; - if (required_fields_bitmap_len > sizeof(required_fields_bitmap_stack)) { - required_fields_bitmap = do_alloc(allocator, required_fields_bitmap_len); - if (!required_fields_bitmap) { - do_free(allocator, rv); - return (NULL); - } - required_fields_bitmap_alloced = TRUE; - } - memset(required_fields_bitmap, 0, required_fields_bitmap_len); - - /* - * Generated code always defines "message_init". However, we provide a - * fallback for (1) users of old protobuf-c generated-code that do not - * provide the function, and (2) descriptors constructed from some other - * source (most likely, direct construction from the .proto file). - */ - if (desc->message_init != NULL) - protobuf_c_message_init(desc, rv); - else - message_init_generic(desc, rv); - - while (rem > 0) { - uint32_t tag; - ProtobufCWireType wire_type; - size_t used = parse_tag_and_wiretype(rem, at, &tag, &wire_type); - const ProtobufCFieldDescriptor *field; - ScannedMember tmp; - - if (used == 0) { - PROTOBUF_C_UNPACK_ERROR("error parsing tag/wiretype at offset %u", - (unsigned) (at - data)); - goto error_cleanup_during_scan; - } - /* - * \todo Consider optimizing for field[1].id == tag, if field[1] - * exists! - */ - if (last_field == NULL || last_field->id != tag) { - /* lookup field */ - int field_index = - int_range_lookup(desc->n_field_ranges, - desc->field_ranges, - tag); - if (field_index < 0) { - field = NULL; - n_unknown++; - } else { - field = desc->fields + field_index; - last_field = field; - last_field_index = field_index; - } - } else { - field = last_field; - } - - if (field != NULL && field->label == PROTOBUF_C_LABEL_REQUIRED) - REQUIRED_FIELD_BITMAP_SET(last_field_index); - - at += used; - rem -= used; - tmp.tag = tag; - tmp.wire_type = wire_type; - tmp.field = field; - tmp.data = at; - tmp.length_prefix_len = 0; - - switch (wire_type) { - case PROTOBUF_C_WIRE_TYPE_VARINT: { - unsigned max_len = rem < 10 ? rem : 10; - unsigned i; - - for (i = 0; i < max_len; i++) - if ((at[i] & 0x80) == 0) - break; - if (i == max_len) { - PROTOBUF_C_UNPACK_ERROR("unterminated varint at offset %u", - (unsigned) (at - data)); - goto error_cleanup_during_scan; - } - tmp.len = i + 1; - break; - } - case PROTOBUF_C_WIRE_TYPE_64BIT: - if (rem < 8) { - PROTOBUF_C_UNPACK_ERROR("too short after 64bit wiretype at offset %u", - (unsigned) (at - data)); - goto error_cleanup_during_scan; - } - tmp.len = 8; - break; - case PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED: { - size_t pref_len; - - tmp.len = scan_length_prefixed_data(rem, at, &pref_len); - if (tmp.len == 0) { - /* NOTE: scan_length_prefixed_data calls UNPACK_ERROR */ - goto error_cleanup_during_scan; - } - tmp.length_prefix_len = pref_len; - break; - } - case PROTOBUF_C_WIRE_TYPE_32BIT: - if (rem < 4) { - PROTOBUF_C_UNPACK_ERROR("too short after 32bit wiretype at offset %u", - (unsigned) (at - data)); - goto error_cleanup_during_scan; - } - tmp.len = 4; - break; - default: - PROTOBUF_C_UNPACK_ERROR("unsupported tag %u at offset %u", - wire_type, (unsigned) (at - data)); - goto error_cleanup_during_scan; - } - - if (in_slab_index == (1UL << - (which_slab + FIRST_SCANNED_MEMBER_SLAB_SIZE_LOG2))) - { - size_t size; - - in_slab_index = 0; - if (which_slab == MAX_SCANNED_MEMBER_SLAB) { - PROTOBUF_C_UNPACK_ERROR("too many fields"); - goto error_cleanup_during_scan; - } - which_slab++; - size = sizeof(ScannedMember) - << (which_slab + FIRST_SCANNED_MEMBER_SLAB_SIZE_LOG2); - scanned_member_slabs[which_slab] = do_alloc(allocator, size); - if (scanned_member_slabs[which_slab] == NULL) - goto error_cleanup_during_scan; - } - scanned_member_slabs[which_slab][in_slab_index++] = tmp; - - if (field != NULL && field->label == PROTOBUF_C_LABEL_REPEATED) { - size_t *n = STRUCT_MEMBER_PTR(size_t, rv, - field->quantifier_offset); - if (wire_type == PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED && - (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED) || - is_packable_type(field->type))) - { - size_t count; - if (!count_packed_elements(field->type, - tmp.len - - tmp.length_prefix_len, - tmp.data + - tmp.length_prefix_len, - &count)) - { - PROTOBUF_C_UNPACK_ERROR("counting packed elements"); - goto error_cleanup_during_scan; - } - *n += count; - } else { - *n += 1; - } - } - - at += tmp.len; - rem -= tmp.len; - } - - /* allocate space for repeated fields, also check that all required fields have been set */ - for (f = 0; f < desc->n_fields; f++) { - const ProtobufCFieldDescriptor *field = desc->fields + f; - if (field->label == PROTOBUF_C_LABEL_REPEATED) { - size_t siz = - sizeof_elt_in_repeated_array(field->type); - size_t *n_ptr = - STRUCT_MEMBER_PTR(size_t, rv, - field->quantifier_offset); - if (*n_ptr != 0) { - unsigned n = *n_ptr; - void *a; - *n_ptr = 0; - //assert(rv->descriptor != NULL); -#define CLEAR_REMAINING_N_PTRS() \ - for(f++;f < desc->n_fields; f++) \ - { \ - field = desc->fields + f; \ - if (field->label == PROTOBUF_C_LABEL_REPEATED) \ - STRUCT_MEMBER (size_t, rv, field->quantifier_offset) = 0; \ - } - a = do_alloc(allocator, siz * n); - if (!a) { - CLEAR_REMAINING_N_PTRS(); - goto error_cleanup; - } - STRUCT_MEMBER(void *, rv, field->offset) = a; - } - } else if (field->label == PROTOBUF_C_LABEL_REQUIRED) { - if (field->default_value == NULL && - !REQUIRED_FIELD_BITMAP_IS_SET(f)) - { - CLEAR_REMAINING_N_PTRS(); - PROTOBUF_C_UNPACK_ERROR("message '%s': missing required field '%s'", - desc->name, field->name); - goto error_cleanup; - } - } - } -#undef CLEAR_REMAINING_N_PTRS - - /* allocate space for unknown fields */ - if (n_unknown) { - rv->unknown_fields = do_alloc(allocator, - n_unknown * sizeof(ProtobufCMessageUnknownField)); - if (rv->unknown_fields == NULL) - goto error_cleanup; - } - - /* do real parsing */ - for (i_slab = 0; i_slab <= which_slab; i_slab++) { - unsigned max = (i_slab == which_slab) ? - in_slab_index : (1UL << (i_slab + 4)); - ScannedMember *slab = scanned_member_slabs[i_slab]; - - for (j = 0; j < max; j++) { - if (!parse_member(slab + j, rv, allocator)) { - PROTOBUF_C_UNPACK_ERROR("error parsing member %s of %s", - slab->field ? slab->field->name : "*unknown-field*", - desc->name); - goto error_cleanup; - } - } - } - - /* cleanup */ - for (j = 1; j <= which_slab; j++) - do_free(allocator, scanned_member_slabs[j]); - if (required_fields_bitmap_alloced) - do_free(allocator, required_fields_bitmap); - return rv; - -error_cleanup: - protobuf_c_message_free_unpacked(rv, allocator); - for (j = 1; j <= which_slab; j++) - do_free(allocator, scanned_member_slabs[j]); - if (required_fields_bitmap_alloced) - do_free(allocator, required_fields_bitmap); - return NULL; - -error_cleanup_during_scan: - do_free(allocator, rv); - for (j = 1; j <= which_slab; j++) - do_free(allocator, scanned_member_slabs[j]); - if (required_fields_bitmap_alloced) - do_free(allocator, required_fields_bitmap); - return NULL; -} - -void -protobuf_c_message_free_unpacked(ProtobufCMessage *message, - ProtobufCAllocator *allocator) -{ - const ProtobufCMessageDescriptor *desc; - unsigned f; - - if (message == NULL) - return; - - desc = message->descriptor; - - //ASSERT_IS_MESSAGE(message); - - if (allocator == NULL) - allocator = &protobuf_c__allocator; - message->descriptor = NULL; - for (f = 0; f < desc->n_fields; f++) { - if (0 != (desc->fields[f].flags & PROTOBUF_C_FIELD_FLAG_ONEOF) && - desc->fields[f].id != - STRUCT_MEMBER(uint32_t, message, desc->fields[f].quantifier_offset)) - { - /* This is not the selected oneof, skip it */ - continue; - } - - if (desc->fields[f].label == PROTOBUF_C_LABEL_REPEATED) { - size_t n = STRUCT_MEMBER(size_t, - message, - desc->fields[f].quantifier_offset); - void *arr = STRUCT_MEMBER(void *, - message, - desc->fields[f].offset); - - if (arr != NULL) { - if (desc->fields[f].type == PROTOBUF_C_TYPE_STRING) { - unsigned i; - for (i = 0; i < n; i++) - do_free(allocator, ((char **) arr)[i]); - } else if (desc->fields[f].type == PROTOBUF_C_TYPE_BYTES) { - unsigned i; - for (i = 0; i < n; i++) - do_free(allocator, ((ProtobufCBinaryData *) arr)[i].data); - } else if (desc->fields[f].type == PROTOBUF_C_TYPE_MESSAGE) { - unsigned i; - for (i = 0; i < n; i++) - protobuf_c_message_free_unpacked( - ((ProtobufCMessage **) arr)[i], - allocator - ); - } - do_free(allocator, arr); - } - } else if (desc->fields[f].type == PROTOBUF_C_TYPE_STRING) { - char *str = STRUCT_MEMBER(char *, message, - desc->fields[f].offset); - - if (str && str != desc->fields[f].default_value) - do_free(allocator, str); - } else if (desc->fields[f].type == PROTOBUF_C_TYPE_BYTES) { - void *data = STRUCT_MEMBER(ProtobufCBinaryData, message, - desc->fields[f].offset).data; - const ProtobufCBinaryData *default_bd; - - default_bd = desc->fields[f].default_value; - if (data != NULL && - (default_bd == NULL || - default_bd->data != data)) - { - do_free(allocator, data); - } - } else if (desc->fields[f].type == PROTOBUF_C_TYPE_MESSAGE) { - ProtobufCMessage *sm; - - sm = STRUCT_MEMBER(ProtobufCMessage *, message, - desc->fields[f].offset); - if (sm && sm != desc->fields[f].default_value) - protobuf_c_message_free_unpacked(sm, allocator); - } - } - - for (f = 0; f < message->n_unknown_fields; f++) - do_free(allocator, message->unknown_fields[f].data); - if (message->unknown_fields != NULL) - do_free(allocator, message->unknown_fields); - - do_free(allocator, message); -} - -void -protobuf_c_message_init(const ProtobufCMessageDescriptor * descriptor, - void *message) -{ - descriptor->message_init((ProtobufCMessage *) (message)); -} - -protobuf_c_boolean -protobuf_c_message_check(const ProtobufCMessage *message) -{ - unsigned i; - - if (!message || - !message->descriptor || - message->descriptor->magic != PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC) - { - return FALSE; - } - - for (i = 0; i < message->descriptor->n_fields; i++) { - const ProtobufCFieldDescriptor *f = message->descriptor->fields + i; - ProtobufCType type = f->type; - ProtobufCLabel label = f->label; - void *field = STRUCT_MEMBER_P (message, f->offset); - - if (f->flags & PROTOBUF_C_FIELD_FLAG_ONEOF) { - const uint32_t *oneof_case = STRUCT_MEMBER_P (message, f->quantifier_offset); - if (f->id != *oneof_case) { - continue; //Do not check if it is an unpopulated oneof member. - } - } - - if (label == PROTOBUF_C_LABEL_REPEATED) { - size_t *quantity = STRUCT_MEMBER_P (message, f->quantifier_offset); - - if (*quantity > 0 && *(void **) field == NULL) { - return FALSE; - } - - if (type == PROTOBUF_C_TYPE_MESSAGE) { - ProtobufCMessage **submessage = *(ProtobufCMessage ***) field; - unsigned j; - for (j = 0; j < *quantity; j++) { - if (!protobuf_c_message_check(submessage[j])) - return FALSE; - } - } else if (type == PROTOBUF_C_TYPE_STRING) { - char **string = *(char ***) field; - unsigned j; - for (j = 0; j < *quantity; j++) { - if (!string[j]) - return FALSE; - } - } else if (type == PROTOBUF_C_TYPE_BYTES) { - ProtobufCBinaryData *bd = *(ProtobufCBinaryData **) field; - unsigned j; - for (j = 0; j < *quantity; j++) { - if (bd[j].len > 0 && bd[j].data == NULL) - return FALSE; - } - } - - } else { /* PROTOBUF_C_LABEL_REQUIRED or PROTOBUF_C_LABEL_OPTIONAL */ - - if (type == PROTOBUF_C_TYPE_MESSAGE) { - ProtobufCMessage *submessage = *(ProtobufCMessage **) field; - if (label == PROTOBUF_C_LABEL_REQUIRED || submessage != NULL) { - if (!protobuf_c_message_check(submessage)) - return FALSE; - } - } else if (type == PROTOBUF_C_TYPE_STRING) { - char *string = *(char **) field; - if (label == PROTOBUF_C_LABEL_REQUIRED && string == NULL) - return FALSE; - } else if (type == PROTOBUF_C_TYPE_BYTES) { - protobuf_c_boolean *has = STRUCT_MEMBER_P (message, f->quantifier_offset); - ProtobufCBinaryData *bd = field; - if (label == PROTOBUF_C_LABEL_REQUIRED || *has == TRUE) { - if (bd->len > 0 && bd->data == NULL) - return FALSE; - } - } - } - } - - return TRUE; -} - -/* === services === */ - -typedef void (*GenericHandler) (void *service, - const ProtobufCMessage *input, - ProtobufCClosure closure, - void *closure_data); -void -protobuf_c_service_invoke_internal(ProtobufCService *service, - unsigned method_index, - const ProtobufCMessage *input, - ProtobufCClosure closure, - void *closure_data) -{ - GenericHandler *handlers; - GenericHandler handler; - - /* - * Verify that method_index is within range. If this fails, you are - * likely invoking a newly added method on an old service. (Although - * other memory corruption bugs can cause this assertion too.) - */ - //assert(method_index < service->descriptor->n_methods); - - /* - * Get the array of virtual methods (which are enumerated by the - * generated code). - */ - handlers = (GenericHandler *) (service + 1); - - /* - * Get our method and invoke it. - * \todo Seems like handler == NULL is a situation that needs handling. - */ - handler = handlers[method_index]; - (*handler)(service, input, closure, closure_data); -} - -void -protobuf_c_service_generated_init(ProtobufCService *service, - const ProtobufCServiceDescriptor *descriptor, - ProtobufCServiceDestroy destroy) -{ - //ASSERT_IS_SERVICE_DESCRIPTOR(descriptor); - service->descriptor = descriptor; - service->destroy = destroy; - service->invoke = protobuf_c_service_invoke_internal; - memset(service + 1, 0, descriptor->n_methods * sizeof(GenericHandler)); -} - -void protobuf_c_service_destroy(ProtobufCService *service) -{ - service->destroy(service); -} - -/* --- querying the descriptors --- */ - -const ProtobufCEnumValue * -protobuf_c_enum_descriptor_get_value_by_name(const ProtobufCEnumDescriptor *desc, - const char *name) -{ - unsigned start = 0; - unsigned count; - - if (desc == NULL || desc->values_by_name == NULL) - return NULL; - - count = desc->n_value_names; - - while (count > 1) { - unsigned mid = start + count / 2; - int rv = strcmp(desc->values_by_name[mid].name, name); - if (rv == 0) - return desc->values + desc->values_by_name[mid].index; - else if (rv < 0) { - count = start + count - (mid + 1); - start = mid + 1; - } else - count = mid - start; - } - if (count == 0) - return NULL; - if (strcmp(desc->values_by_name[start].name, name) == 0) - return desc->values + desc->values_by_name[start].index; - return NULL; -} - -const ProtobufCEnumValue * -protobuf_c_enum_descriptor_get_value(const ProtobufCEnumDescriptor *desc, - int value) -{ - int rv = int_range_lookup(desc->n_value_ranges, desc->value_ranges, value); - if (rv < 0) - return NULL; - return desc->values + rv; -} - -const ProtobufCFieldDescriptor * -protobuf_c_message_descriptor_get_field_by_name(const ProtobufCMessageDescriptor *desc, - const char *name) -{ - unsigned start = 0; - unsigned count; - const ProtobufCFieldDescriptor *field; - - if (desc == NULL || desc->fields_sorted_by_name == NULL) - return NULL; - - count = desc->n_fields; - - while (count > 1) { - unsigned mid = start + count / 2; - int rv; - field = desc->fields + desc->fields_sorted_by_name[mid]; - rv = strcmp(field->name, name); - if (rv == 0) - return field; - else if (rv < 0) { - count = start + count - (mid + 1); - start = mid + 1; - } else - count = mid - start; - } - if (count == 0) - return NULL; - field = desc->fields + desc->fields_sorted_by_name[start]; - if (strcmp(field->name, name) == 0) - return field; - return NULL; -} - -const ProtobufCFieldDescriptor * -protobuf_c_message_descriptor_get_field(const ProtobufCMessageDescriptor *desc, - unsigned value) -{ - int rv = int_range_lookup(desc->n_field_ranges,desc->field_ranges, value); - if (rv < 0) - return NULL; - return desc->fields + rv; -} - -const ProtobufCMethodDescriptor * -protobuf_c_service_descriptor_get_method_by_name(const ProtobufCServiceDescriptor *desc, - const char *name) -{ - unsigned start = 0; - unsigned count; - - if (desc == NULL || desc->method_indices_by_name == NULL) - return NULL; - - count = desc->n_methods; - - while (count > 1) { - unsigned mid = start + count / 2; - unsigned mid_index = desc->method_indices_by_name[mid]; - const char *mid_name = desc->methods[mid_index].name; - int rv = strcmp(mid_name, name); - - if (rv == 0) - return desc->methods + desc->method_indices_by_name[mid]; - if (rv < 0) { - count = start + count - (mid + 1); - start = mid + 1; - } else { - count = mid - start; - } - } - if (count == 0) - return NULL; - if (strcmp(desc->methods[desc->method_indices_by_name[start]].name, name) == 0) - return desc->methods + desc->method_indices_by_name[start]; - return NULL; -} diff --git a/components/ai/onnx/protobuf/protobuf-c.h b/components/ai/onnx/protobuf/protobuf-c.h deleted file mode 100644 index a49bf5ab..00000000 --- a/components/ai/onnx/protobuf/protobuf-c.h +++ /dev/null @@ -1,1106 +0,0 @@ -/* - * Copyright (c) 2008-2018, Dave Benson and the protobuf-c authors. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/*! \file - * \mainpage Introduction - * - * This is [protobuf-c], a C implementation of [Protocol Buffers]. - * - * This file defines the public API for the `libprotobuf-c` support library. - * This API includes interfaces that can be used directly by client code as well - * as the interfaces used by the code generated by the `protoc-c` compiler. - * - * The `libprotobuf-c` support library performs the actual serialization and - * deserialization of Protocol Buffers messages. It interacts with structures, - * definitions, and metadata generated by the `protoc-c` compiler from .proto - * files. - * - * \authors Dave Benson and the `protobuf-c` authors. - * - * \copyright 2008-2014. Licensed under the terms of the [BSD-2-Clause] license. - * - * [protobuf-c]: https://github.com/protobuf-c/protobuf-c - * [Protocol Buffers]: https://developers.google.com/protocol-buffers/ - * [BSD-2-Clause]: http://opensource.org/licenses/BSD-2-Clause - * - * \page gencode Generated Code - * - * For each enum, we generate a C enum. For each message, we generate a C - * structure which can be cast to a `ProtobufCMessage`. - * - * For each enum and message, we generate a descriptor object that allows us to - * implement a kind of reflection on the structures. - * - * First, some naming conventions: - * - * - The name of the type for enums and messages and services is camel case - * (meaning WordsAreCrammedTogether) except that double underscores are used - * to delimit scopes. For example, the following `.proto` file: - * -~~~{.proto} - package foo.bar; - message BazBah { - optional int32 val = 1; - } -~~~ - * - * would generate a C type `Foo__Bar__BazBah`. - * - * - Identifiers for functions and globals are all lowercase, with camel case - * words separated by single underscores. For example, one of the function - * prototypes generated by `protoc-c` for the above example: - * -~~~{.c} -Foo__Bar__BazBah * - foo__bar__baz_bah__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -~~~ - * - * - Identifiers for enum values contain an uppercase prefix which embeds the - * package name and the enum type name. - * - * - A double underscore is used to separate further components of identifier - * names. - * - * For example, in the name of the unpack function above, the package name - * `foo.bar` has become `foo__bar`, the message name BazBah has become - * `baz_bah`, and the method name is `unpack`. These are all joined with double - * underscores to form the C identifier `foo__bar__baz_bah__unpack`. - * - * We also generate descriptor objects for messages and enums. These are - * declared in the `.pb-c.h` files: - * -~~~{.c} -extern const ProtobufCMessageDescriptor foo__bar__baz_bah__descriptor; -~~~ - * - * The message structures all begin with `ProtobufCMessageDescriptor *` which is - * sufficient to allow them to be cast to `ProtobufCMessage`. - * - * For each message defined in a `.proto` file, we generate a number of - * functions and macros. Each function name contains a prefix based on the - * package name and message name in order to make it a unique C identifier. - * - * - `INIT`. Statically initializes a message object, initializing its - * descriptor and setting its fields to default values. Uninitialized - * messages cannot be processed by the protobuf-c library. - * -~~~{.c} -#define FOO__BAR__BAZ_BAH__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&foo__bar__baz_bah__descriptor), 0 } -~~~ - * - `init()`. Initializes a message object, initializing its descriptor and - * setting its fields to default values. Uninitialized messages cannot be - * processed by the protobuf-c library. - * -~~~{.c} -void foo__bar__baz_bah__init - (Foo__Bar__BazBah *message); -~~~ - * - `unpack()`. Unpacks data for a particular message format. Note that the - * `allocator` parameter is usually `NULL` to indicate that the system's - * `malloc()` and `free()` functions should be used for dynamically allocating - * memory. - * -~~~{.c} -Foo__Bar__BazBah * - foo__bar__baz_bah__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -~~~ - * - * - `free_unpacked()`. Frees a message object obtained with the `unpack()` - * method. Freeing `NULL` is allowed (the same as with `free()`). - * -~~~{.c} -void foo__bar__baz_bah__free_unpacked - (Foo__Bar__BazBah *message, - ProtobufCAllocator *allocator); -~~~ - * - * - `get_packed_size()`. Calculates the length in bytes of the serialized - * representation of the message object. - * -~~~{.c} -size_t foo__bar__baz_bah__get_packed_size - (const Foo__Bar__BazBah *message); -~~~ - * - * - `pack()`. Pack a message object into a preallocated buffer. Assumes that - * the buffer is large enough. (Use `get_packed_size()` first.) - * -~~~{.c} -size_t foo__bar__baz_bah__pack - (const Foo__Bar__BazBah *message, - uint8_t *out); -~~~ - * - * - `pack_to_buffer()`. Packs a message into a "virtual buffer". This is an - * object which defines an "append bytes" callback to consume data as it is - * serialized. - * -~~~{.c} -size_t foo__bar__baz_bah__pack_to_buffer - (const Foo__Bar__BazBah *message, - ProtobufCBuffer *buffer); -~~~ - * - * \page pack Packing and unpacking messages - * - * To pack a message, first compute the packed size of the message with - * protobuf_c_message_get_packed_size(), then allocate a buffer of at least - * that size, then call protobuf_c_message_pack(). - * - * Alternatively, a message can be serialized without calculating the final size - * first. Use the protobuf_c_message_pack_to_buffer() function and provide a - * ProtobufCBuffer object which implements an "append" method that consumes - * data. - * - * To unpack a message, call the protobuf_c_message_unpack() function. The - * result can be cast to an object of the type that matches the descriptor for - * the message. - * - * The result of unpacking a message should be freed with - * protobuf_c_message_free_unpacked(). - */ - -#ifndef PROTOBUF_C_H -#define PROTOBUF_C_H - -#include -#include -#include -#include - -#ifdef __cplusplus -# define PROTOBUF_C__BEGIN_DECLS extern "C" { -# define PROTOBUF_C__END_DECLS } -#else -# define PROTOBUF_C__BEGIN_DECLS -# define PROTOBUF_C__END_DECLS -#endif - -PROTOBUF_C__BEGIN_DECLS - -#if defined(_WIN32) && defined(PROTOBUF_C_USE_SHARED_LIB) -# ifdef PROTOBUF_C_EXPORT -# define PROTOBUF_C__API __declspec(dllexport) -# else -# define PROTOBUF_C__API __declspec(dllimport) -# endif -#else -# define PROTOBUF_C__API -#endif - -#if !defined(PROTOBUF_C__NO_DEPRECATED) && \ - ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) -# define PROTOBUF_C__DEPRECATED __attribute__((__deprecated__)) -#else -# define PROTOBUF_C__DEPRECATED -#endif - -#ifndef PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE - #define PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(enum_name) \ - , _##enum_name##_IS_INT_SIZE = INT_MAX -#endif - -#define PROTOBUF_C__SERVICE_DESCRIPTOR_MAGIC 0x14159bc3 -#define PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC 0x28aaeef9 -#define PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC 0x114315af - -/* Empty string used for initializers */ -extern const char protobuf_c_empty_string[]; - -/** - * \defgroup api Public API - * - * This is the public API for `libprotobuf-c`. These interfaces are stable and - * subject to Semantic Versioning guarantees. - * - * @{ - */ - -/** - * Values for the `flags` word in `ProtobufCFieldDescriptor`. - */ -typedef enum { - /** Set if the field is repeated and marked with the `packed` option. */ - PROTOBUF_C_FIELD_FLAG_PACKED = (1 << 0), - - /** Set if the field is marked with the `deprecated` option. */ - PROTOBUF_C_FIELD_FLAG_DEPRECATED = (1 << 1), - - /** Set if the field is a member of a oneof (union). */ - PROTOBUF_C_FIELD_FLAG_ONEOF = (1 << 2), -} ProtobufCFieldFlag; - -/** - * Message field rules. - * - * \see [Defining A Message Type] in the Protocol Buffers documentation. - * - * [Defining A Message Type]: - * https://developers.google.com/protocol-buffers/docs/proto#simple - */ -typedef enum { - /** A well-formed message must have exactly one of this field. */ - PROTOBUF_C_LABEL_REQUIRED, - - /** - * A well-formed message can have zero or one of this field (but not - * more than one). - */ - PROTOBUF_C_LABEL_OPTIONAL, - - /** - * This field can be repeated any number of times (including zero) in a - * well-formed message. The order of the repeated values will be - * preserved. - */ - PROTOBUF_C_LABEL_REPEATED, - - /** - * This field has no label. This is valid only in proto3 and is - * equivalent to OPTIONAL but no "has" quantifier will be consulted. - */ - PROTOBUF_C_LABEL_NONE, -} ProtobufCLabel; - -/** - * Field value types. - * - * \see [Scalar Value Types] in the Protocol Buffers documentation. - * - * [Scalar Value Types]: - * https://developers.google.com/protocol-buffers/docs/proto#scalar - */ -typedef enum { - PROTOBUF_C_TYPE_INT32, /**< int32 */ - PROTOBUF_C_TYPE_SINT32, /**< signed int32 */ - PROTOBUF_C_TYPE_SFIXED32, /**< signed int32 (4 bytes) */ - PROTOBUF_C_TYPE_INT64, /**< int64 */ - PROTOBUF_C_TYPE_SINT64, /**< signed int64 */ - PROTOBUF_C_TYPE_SFIXED64, /**< signed int64 (8 bytes) */ - PROTOBUF_C_TYPE_UINT32, /**< unsigned int32 */ - PROTOBUF_C_TYPE_FIXED32, /**< unsigned int32 (4 bytes) */ - PROTOBUF_C_TYPE_UINT64, /**< unsigned int64 */ - PROTOBUF_C_TYPE_FIXED64, /**< unsigned int64 (8 bytes) */ - PROTOBUF_C_TYPE_FLOAT, /**< int */ - PROTOBUF_C_TYPE_DOUBLE, /**< double */ - PROTOBUF_C_TYPE_BOOL, /**< boolean */ - PROTOBUF_C_TYPE_ENUM, /**< enumerated type */ - PROTOBUF_C_TYPE_STRING, /**< UTF-8 or ASCII string */ - PROTOBUF_C_TYPE_BYTES, /**< arbitrary byte sequence */ - PROTOBUF_C_TYPE_MESSAGE, /**< nested message */ -} ProtobufCType; - -/** - * Field wire types. - * - * \see [Message Structure] in the Protocol Buffers documentation. - * - * [Message Structure]: - * https://developers.google.com/protocol-buffers/docs/encoding#structure - */ -typedef enum { - PROTOBUF_C_WIRE_TYPE_VARINT = 0, - PROTOBUF_C_WIRE_TYPE_64BIT = 1, - PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED = 2, - /* "Start group" and "end group" wire types are unsupported. */ - PROTOBUF_C_WIRE_TYPE_32BIT = 5, -} ProtobufCWireType; - -struct ProtobufCAllocator; -struct ProtobufCBinaryData; -struct ProtobufCBuffer; -struct ProtobufCBufferSimple; -struct ProtobufCEnumDescriptor; -struct ProtobufCEnumValue; -struct ProtobufCEnumValueIndex; -struct ProtobufCFieldDescriptor; -struct ProtobufCIntRange; -struct ProtobufCMessage; -struct ProtobufCMessageDescriptor; -struct ProtobufCMessageUnknownField; -struct ProtobufCMethodDescriptor; -struct ProtobufCService; -struct ProtobufCServiceDescriptor; - -typedef struct ProtobufCAllocator ProtobufCAllocator; -typedef struct ProtobufCBinaryData ProtobufCBinaryData; -typedef struct ProtobufCBuffer ProtobufCBuffer; -typedef struct ProtobufCBufferSimple ProtobufCBufferSimple; -typedef struct ProtobufCEnumDescriptor ProtobufCEnumDescriptor; -typedef struct ProtobufCEnumValue ProtobufCEnumValue; -typedef struct ProtobufCEnumValueIndex ProtobufCEnumValueIndex; -typedef struct ProtobufCFieldDescriptor ProtobufCFieldDescriptor; -typedef struct ProtobufCIntRange ProtobufCIntRange; -typedef struct ProtobufCMessage ProtobufCMessage; -typedef struct ProtobufCMessageDescriptor ProtobufCMessageDescriptor; -typedef struct ProtobufCMessageUnknownField ProtobufCMessageUnknownField; -typedef struct ProtobufCMethodDescriptor ProtobufCMethodDescriptor; -typedef struct ProtobufCService ProtobufCService; -typedef struct ProtobufCServiceDescriptor ProtobufCServiceDescriptor; - -/** Boolean type. */ -typedef int protobuf_c_boolean; - -typedef void (*ProtobufCClosure)(const ProtobufCMessage *, void *closure_data); -typedef void (*ProtobufCMessageInit)(ProtobufCMessage *); -typedef void (*ProtobufCServiceDestroy)(ProtobufCService *); - -/** - * Structure for defining a custom memory allocator. - */ -struct ProtobufCAllocator { - /** Function to allocate memory. */ - void *(*alloc)(void *allocator_data, size_t size); - - /** Function to free memory. */ - void (*free)(void *allocator_data, void *pointer); - - /** Opaque pointer passed to `alloc` and `free` functions. */ - void *allocator_data; -}; - -/** - * Structure for the protobuf `bytes` scalar type. - * - * The data contained in a `ProtobufCBinaryData` is an arbitrary sequence of - * bytes. It may contain embedded `NUL` characters and is not required to be - * `NUL`-terminated. - */ -struct ProtobufCBinaryData { - size_t len; /**< Number of bytes in the `data` field. */ - uint8_t *data; /**< Data bytes. */ -}; - -/** - * Structure for defining a virtual append-only buffer. Used by - * protobuf_c_message_pack_to_buffer() to abstract the consumption of serialized - * bytes. - * - * `ProtobufCBuffer` "subclasses" may be defined on the stack. For example, to - * write to a `FILE` object: - * -~~~{.c} -typedef struct { - ProtobufCBuffer base; - FILE *fp; -} BufferAppendToFile; - -static void -my_buffer_file_append(ProtobufCBuffer *buffer, - size_t len, - const uint8_t *data) -{ - BufferAppendToFile *file_buf = (BufferAppendToFile *) buffer; - fwrite(data, len, 1, file_buf->fp); // XXX: No error handling! -} -~~~ - * - * To use this new type of ProtobufCBuffer, it could be called as follows: - * -~~~{.c} -... -BufferAppendToFile tmp = {0}; -tmp.base.append = my_buffer_file_append; -tmp.fp = fp; -protobuf_c_message_pack_to_buffer(&message, &tmp); -... -~~~ - */ -struct ProtobufCBuffer { - /** Append function. Consumes the `len` bytes stored at `data`. */ - void (*append)(ProtobufCBuffer *buffer, - size_t len, - const uint8_t *data); -}; - -/** - * Simple buffer "subclass" of `ProtobufCBuffer`. - * - * A `ProtobufCBufferSimple` object is declared on the stack and uses a - * scratch buffer provided by the user for the initial allocation. It performs - * exponential resizing, using dynamically allocated memory. A - * `ProtobufCBufferSimple` object can be created and used as follows: - * -~~~{.c} -uint8_t pad[128]; -ProtobufCBufferSimple simple = PROTOBUF_C_BUFFER_SIMPLE_INIT(pad); -ProtobufCBuffer *buffer = (ProtobufCBuffer *) &simple; -~~~ - * - * `buffer` can now be used with `protobuf_c_message_pack_to_buffer()`. Once a - * message has been serialized to a `ProtobufCBufferSimple` object, the - * serialized data bytes can be accessed from the `.data` field. - * - * To free the memory allocated by a `ProtobufCBufferSimple` object, if any, - * call PROTOBUF_C_BUFFER_SIMPLE_CLEAR() on the object, for example: - * -~~~{.c} -PROTOBUF_C_BUFFER_SIMPLE_CLEAR(&simple); -~~~ - * - * \see PROTOBUF_C_BUFFER_SIMPLE_INIT - * \see PROTOBUF_C_BUFFER_SIMPLE_CLEAR - */ -struct ProtobufCBufferSimple { - /** "Base class". */ - ProtobufCBuffer base; - /** Number of bytes allocated in `data`. */ - size_t alloced; - /** Number of bytes currently stored in `data`. */ - size_t len; - /** Data bytes. */ - uint8_t *data; - /** Whether `data` must be freed. */ - protobuf_c_boolean must_free_data; - /** Allocator to use. May be NULL to indicate the system allocator. */ - ProtobufCAllocator *allocator; -}; - -/** - * Describes an enumeration as a whole, with all of its values. - */ -struct ProtobufCEnumDescriptor { - /** Magic value checked to ensure that the API is used correctly. */ - uint32_t magic; - - /** The qualified name (e.g., "namespace.Type"). */ - const char *name; - /** The unqualified name as given in the .proto file (e.g., "Type"). */ - const char *short_name; - /** Identifier used in generated C code. */ - const char *c_name; - /** The dot-separated namespace. */ - const char *package_name; - - /** Number elements in `values`. */ - unsigned n_values; - /** Array of distinct values, sorted by numeric value. */ - const ProtobufCEnumValue *values; - - /** Number of elements in `values_by_name`. */ - unsigned n_value_names; - /** Array of named values, including aliases, sorted by name. */ - const ProtobufCEnumValueIndex *values_by_name; - - /** Number of elements in `value_ranges`. */ - unsigned n_value_ranges; - /** Value ranges, for faster lookups by numeric value. */ - const ProtobufCIntRange *value_ranges; - - /** Reserved for future use. */ - void *reserved1; - /** Reserved for future use. */ - void *reserved2; - /** Reserved for future use. */ - void *reserved3; - /** Reserved for future use. */ - void *reserved4; -}; - -/** - * Represents a single value of an enumeration. - */ -struct ProtobufCEnumValue { - /** The string identifying this value in the .proto file. */ - const char *name; - - /** The string identifying this value in generated C code. */ - const char *c_name; - - /** The numeric value assigned in the .proto file. */ - int value; -}; - -/** - * Used by `ProtobufCEnumDescriptor` to look up enum values. - */ -struct ProtobufCEnumValueIndex { - /** Name of the enum value. */ - const char *name; - /** Index into values[] array. */ - unsigned index; -}; - -/** - * Describes a single field in a message. - */ -struct ProtobufCFieldDescriptor { - /** Name of the field as given in the .proto file. */ - const char *name; - - /** Tag value of the field as given in the .proto file. */ - uint32_t id; - - /** Whether the field is `REQUIRED`, `OPTIONAL`, or `REPEATED`. */ - ProtobufCLabel label; - - /** The type of the field. */ - ProtobufCType type; - - /** - * The offset in bytes of the message's C structure's quantifier field - * (the `has_MEMBER` field for optional members or the `n_MEMBER` field - * for repeated members or the case enum for oneofs). - */ - unsigned quantifier_offset; - - /** - * The offset in bytes into the message's C structure for the member - * itself. - */ - unsigned offset; - - /** - * A type-specific descriptor. - * - * If `type` is `PROTOBUF_C_TYPE_ENUM`, then `descriptor` points to the - * corresponding `ProtobufCEnumDescriptor`. - * - * If `type` is `PROTOBUF_C_TYPE_MESSAGE`, then `descriptor` points to - * the corresponding `ProtobufCMessageDescriptor`. - * - * Otherwise this field is NULL. - */ - const void *descriptor; /* for MESSAGE and ENUM types */ - - /** The default value for this field, if defined. May be NULL. */ - const void *default_value; - - /** - * A flag word. Zero or more of the bits defined in the - * `ProtobufCFieldFlag` enum may be set. - */ - uint32_t flags; - - /** Reserved for future use. */ - unsigned reserved_flags; - /** Reserved for future use. */ - void *reserved2; - /** Reserved for future use. */ - void *reserved3; -}; - -/** - * Helper structure for optimizing int => index lookups in the case - * where the keys are mostly consecutive values, as they presumably are for - * enums and fields. - * - * The data structures requires that the values in the original array are - * sorted. - */ -struct ProtobufCIntRange { - int start_value; - unsigned orig_index; - /* - * NOTE: the number of values in the range can be inferred by looking - * at the next element's orig_index. A dummy element is added to make - * this simple. - */ -}; - -/** - * An instance of a message. - * - * `ProtobufCMessage` is a light-weight "base class" for all messages. - * - * In particular, `ProtobufCMessage` doesn't have any allocation policy - * associated with it. That's because it's common to create `ProtobufCMessage` - * objects on the stack. In fact, that's what we recommend for sending messages. - * If the object is allocated from the stack, you can't really have a memory - * leak. - * - * This means that calls to functions like protobuf_c_message_unpack() which - * return a `ProtobufCMessage` must be paired with a call to a free function, - * like protobuf_c_message_free_unpacked(). - */ -struct ProtobufCMessage { - /** The descriptor for this message type. */ - const ProtobufCMessageDescriptor *descriptor; - /** The number of elements in `unknown_fields`. */ - unsigned n_unknown_fields; - /** The fields that weren't recognized by the parser. */ - ProtobufCMessageUnknownField *unknown_fields; -}; - -/** - * Describes a message. - */ -struct ProtobufCMessageDescriptor { - /** Magic value checked to ensure that the API is used correctly. */ - uint32_t magic; - - /** The qualified name (e.g., "namespace.Type"). */ - const char *name; - /** The unqualified name as given in the .proto file (e.g., "Type"). */ - const char *short_name; - /** Identifier used in generated C code. */ - const char *c_name; - /** The dot-separated namespace. */ - const char *package_name; - - /** - * Size in bytes of the C structure representing an instance of this - * type of message. - */ - size_t sizeof_message; - - /** Number of elements in `fields`. */ - unsigned n_fields; - /** Field descriptors, sorted by tag number. */ - const ProtobufCFieldDescriptor *fields; - /** Used for looking up fields by name. */ - const unsigned *fields_sorted_by_name; - - /** Number of elements in `field_ranges`. */ - unsigned n_field_ranges; - /** Used for looking up fields by id. */ - const ProtobufCIntRange *field_ranges; - - /** Message initialisation function. */ - ProtobufCMessageInit message_init; - - /** Reserved for future use. */ - void *reserved1; - /** Reserved for future use. */ - void *reserved2; - /** Reserved for future use. */ - void *reserved3; -}; - -/** - * An unknown message field. - */ -struct ProtobufCMessageUnknownField { - /** The tag number. */ - uint32_t tag; - /** The wire type of the field. */ - ProtobufCWireType wire_type; - /** Number of bytes in `data`. */ - size_t len; - /** Field data. */ - uint8_t *data; -}; - -/** - * Method descriptor. - */ -struct ProtobufCMethodDescriptor { - /** Method name. */ - const char *name; - /** Input message descriptor. */ - const ProtobufCMessageDescriptor *input; - /** Output message descriptor. */ - const ProtobufCMessageDescriptor *output; -}; - -/** - * Service. - */ -struct ProtobufCService { - /** Service descriptor. */ - const ProtobufCServiceDescriptor *descriptor; - /** Function to invoke the service. */ - void (*invoke)(ProtobufCService *service, - unsigned method_index, - const ProtobufCMessage *input, - ProtobufCClosure closure, - void *closure_data); - /** Function to destroy the service. */ - void (*destroy)(ProtobufCService *service); -}; - -/** - * Service descriptor. - */ -struct ProtobufCServiceDescriptor { - /** Magic value checked to ensure that the API is used correctly. */ - uint32_t magic; - - /** Service name. */ - const char *name; - /** Short version of service name. */ - const char *short_name; - /** C identifier for the service name. */ - const char *c_name; - /** Package name. */ - const char *package; - /** Number of elements in `methods`. */ - unsigned n_methods; - /** Method descriptors, in the order defined in the .proto file. */ - const ProtobufCMethodDescriptor *methods; - /** Sort index of methods. */ - const unsigned *method_indices_by_name; -}; - -/** - * Get the version of the protobuf-c library. Note that this is the version of - * the library linked against, not the version of the headers compiled against. - * - * \return A string containing the version number of protobuf-c. - */ -PROTOBUF_C__API -const char * -protobuf_c_version(void); - -/** - * Get the version of the protobuf-c library. Note that this is the version of - * the library linked against, not the version of the headers compiled against. - * - * \return A 32 bit unsigned integer containing the version number of - * protobuf-c, represented in base-10 as (MAJOR*1E6) + (MINOR*1E3) + PATCH. - */ -PROTOBUF_C__API -uint32_t -protobuf_c_version_number(void); - -/** - * The version of the protobuf-c headers, represented as a string using the same - * format as protobuf_c_version(). - */ -#define PROTOBUF_C_VERSION "1.3.2" - -/** - * The version of the protobuf-c headers, represented as an integer using the - * same format as protobuf_c_version_number(). - */ -#define PROTOBUF_C_VERSION_NUMBER 1003002 - -/** - * The minimum protoc-c version which works with the current version of the - * protobuf-c headers. - */ -#define PROTOBUF_C_MIN_COMPILER_VERSION 1000000 - -/** - * Look up a `ProtobufCEnumValue` from a `ProtobufCEnumDescriptor` by name. - * - * \param desc - * The `ProtobufCEnumDescriptor` object. - * \param name - * The `name` field from the corresponding `ProtobufCEnumValue` object to - * match. - * \return - * A `ProtobufCEnumValue` object. - * \retval NULL - * If not found or if the optimize_for = CODE_SIZE option was set. - */ -PROTOBUF_C__API -const ProtobufCEnumValue * -protobuf_c_enum_descriptor_get_value_by_name( - const ProtobufCEnumDescriptor *desc, - const char *name); - -/** - * Look up a `ProtobufCEnumValue` from a `ProtobufCEnumDescriptor` by numeric - * value. - * - * \param desc - * The `ProtobufCEnumDescriptor` object. - * \param value - * The `value` field from the corresponding `ProtobufCEnumValue` object to - * match. - * - * \return - * A `ProtobufCEnumValue` object. - * \retval NULL - * If not found. - */ -PROTOBUF_C__API -const ProtobufCEnumValue * -protobuf_c_enum_descriptor_get_value( - const ProtobufCEnumDescriptor *desc, - int value); - -/** - * Look up a `ProtobufCFieldDescriptor` from a `ProtobufCMessageDescriptor` by - * the name of the field. - * - * \param desc - * The `ProtobufCMessageDescriptor` object. - * \param name - * The name of the field. - * \return - * A `ProtobufCFieldDescriptor` object. - * \retval NULL - * If not found or if the optimize_for = CODE_SIZE option was set. - */ -PROTOBUF_C__API -const ProtobufCFieldDescriptor * -protobuf_c_message_descriptor_get_field_by_name( - const ProtobufCMessageDescriptor *desc, - const char *name); - -/** - * Look up a `ProtobufCFieldDescriptor` from a `ProtobufCMessageDescriptor` by - * the tag value of the field. - * - * \param desc - * The `ProtobufCMessageDescriptor` object. - * \param value - * The tag value of the field. - * \return - * A `ProtobufCFieldDescriptor` object. - * \retval NULL - * If not found. - */ -PROTOBUF_C__API -const ProtobufCFieldDescriptor * -protobuf_c_message_descriptor_get_field( - const ProtobufCMessageDescriptor *desc, - unsigned value); - -/** - * Determine the number of bytes required to store the serialised message. - * - * \param message - * The message object to serialise. - * \return - * Number of bytes. - */ -PROTOBUF_C__API -size_t -protobuf_c_message_get_packed_size(const ProtobufCMessage *message); - -/** - * Serialise a message from its in-memory representation. - * - * This function stores the serialised bytes of the message in a pre-allocated - * buffer. - * - * \param message - * The message object to serialise. - * \param[out] out - * Buffer to store the bytes of the serialised message. This buffer must - * have enough space to store the packed message. Use - * protobuf_c_message_get_packed_size() to determine the number of bytes - * required. - * \return - * Number of bytes stored in `out`. - */ -PROTOBUF_C__API -size_t -protobuf_c_message_pack(const ProtobufCMessage *message, uint8_t *out); - -/** - * Serialise a message from its in-memory representation to a virtual buffer. - * - * This function calls the `append` method of a `ProtobufCBuffer` object to - * consume the bytes generated by the serialiser. - * - * \param message - * The message object to serialise. - * \param buffer - * The virtual buffer object. - * \return - * Number of bytes passed to the virtual buffer. - */ -PROTOBUF_C__API -size_t -protobuf_c_message_pack_to_buffer( - const ProtobufCMessage *message, - ProtobufCBuffer *buffer); - -/** - * Unpack a serialised message into an in-memory representation. - * - * \param descriptor - * The message descriptor. - * \param allocator - * `ProtobufCAllocator` to use for memory allocation. May be NULL to - * specify the default allocator. - * \param len - * Length in bytes of the serialised message. - * \param data - * Pointer to the serialised message. - * \return - * An unpacked message object. - * \retval NULL - * If an error occurred during unpacking. - */ -PROTOBUF_C__API -ProtobufCMessage * -protobuf_c_message_unpack( - const ProtobufCMessageDescriptor *descriptor, - ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); - -/** - * Free an unpacked message object. - * - * This function should be used to deallocate the memory used by a call to - * protobuf_c_message_unpack(). - * - * \param message - * The message object to free. May be NULL. - * \param allocator - * `ProtobufCAllocator` to use for memory deallocation. May be NULL to - * specify the default allocator. - */ -PROTOBUF_C__API -void -protobuf_c_message_free_unpacked( - ProtobufCMessage *message, - ProtobufCAllocator *allocator); - -/** - * Check the validity of a message object. - * - * Makes sure all required fields (`PROTOBUF_C_LABEL_REQUIRED`) are present. - * Recursively checks nested messages. - * - * \retval TRUE - * Message is valid. - * \retval FALSE - * Message is invalid. - */ -PROTOBUF_C__API -protobuf_c_boolean -protobuf_c_message_check(const ProtobufCMessage *); - -/** Message initialiser. */ -#define PROTOBUF_C_MESSAGE_INIT(descriptor) { descriptor, 0, NULL } - -/** - * Initialise a message object from a message descriptor. - * - * \param descriptor - * Message descriptor. - * \param message - * Allocated block of memory of size `descriptor->sizeof_message`. - */ -PROTOBUF_C__API -void -protobuf_c_message_init( - const ProtobufCMessageDescriptor *descriptor, - void *message); - -/** - * Free a service. - * - * \param service - * The service object to free. - */ -PROTOBUF_C__API -void -protobuf_c_service_destroy(ProtobufCService *service); - -/** - * Look up a `ProtobufCMethodDescriptor` by name. - * - * \param desc - * Service descriptor. - * \param name - * Name of the method. - * - * \return - * A `ProtobufCMethodDescriptor` object. - * \retval NULL - * If not found or if the optimize_for = CODE_SIZE option was set. - */ -PROTOBUF_C__API -const ProtobufCMethodDescriptor * -protobuf_c_service_descriptor_get_method_by_name( - const ProtobufCServiceDescriptor *desc, - const char *name); - -/** - * Initialise a `ProtobufCBufferSimple` object. - */ -#define PROTOBUF_C_BUFFER_SIMPLE_INIT(array_of_bytes) \ -{ \ - { protobuf_c_buffer_simple_append }, \ - sizeof(array_of_bytes), \ - 0, \ - (array_of_bytes), \ - 0, \ - NULL \ -} - -/** - * Clear a `ProtobufCBufferSimple` object, freeing any allocated memory. - */ -#define PROTOBUF_C_BUFFER_SIMPLE_CLEAR(simp_buf) \ -do { \ - if ((simp_buf)->must_free_data) { \ - if ((simp_buf)->allocator != NULL) \ - (simp_buf)->allocator->free( \ - (simp_buf)->allocator, \ - (simp_buf)->data); \ - else \ - free((simp_buf)->data); \ - } \ -} while (0) - -/** - * The `append` method for `ProtobufCBufferSimple`. - * - * \param buffer - * The buffer object to append to. Must actually be a - * `ProtobufCBufferSimple` object. - * \param len - * Number of bytes in `data`. - * \param data - * Data to append. - */ -PROTOBUF_C__API -void -protobuf_c_buffer_simple_append( - ProtobufCBuffer *buffer, - size_t len, - const unsigned char *data); - -PROTOBUF_C__API -void -protobuf_c_service_generated_init( - ProtobufCService *service, - const ProtobufCServiceDescriptor *descriptor, - ProtobufCServiceDestroy destroy); - -PROTOBUF_C__API -void -protobuf_c_service_invoke_internal( - ProtobufCService *service, - unsigned method_index, - const ProtobufCMessage *input, - ProtobufCClosure closure, - void *closure_data); - -/**@}*/ - -PROTOBUF_C__END_DECLS - -#endif /* PROTOBUF_C_H */ diff --git a/examples/nnom_mnist/data/image.h b/examples/nnom_mnist/data/image.h new file mode 100644 index 00000000..855c74ae --- /dev/null +++ b/examples/nnom_mnist/data/image.h @@ -0,0 +1,36 @@ +#define IMG0 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 61, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 127, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 123, 126, 113, 58, 0, 0, 0, 0, 0, 0, 0, 28, 112, 126, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 126, 126, 126, 125, 116, 111, 63, 63, 64, 81, 116, 123, 126, 125, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 126, 105, 42, 113, 126, 126, 126, 126, 126, 126, 126, 126, 126, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 118, 121, 17, 12, 21, 69, 73, 73, 73, 73, 122, 126, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 126, 21, 0, 0, 0, 0, 0, 0, 34, 122, 126, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 53, 5, 0, 0, 0, 0, 0, 16, 118, 126, 84, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 126, 121, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 126, 126, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 123, 126, 126, 124, 70, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 126, 123, 105, 125, 126, 104, 65, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 98, 126, 105, 0, 55, 112, 126, 126, 115, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 126, 122, 31, 0, 0, 7, 32, 63, 80, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 126, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 126, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 126, 108, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 126, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 106, 126, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 126, 119, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 126, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define IMG0_LABLE 7 + +#define IMG1 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 76, 76, 96, 107, 126, 127, 86, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 81, 101, 126, 126, 126, 126, 126, 126, 126, 126, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 127, 126, 127, 126, 127, 116, 101, 101, 107, 126, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 116, 75, 75, 55, 25, 15, 0, 0, 25, 126, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 126, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 126, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 86, 127, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 66, 126, 126, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 107, 126, 127, 126, 127, 126, 127, 126, 127, 126, 96, 56, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 106, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 127, 106, 101, 101, 117, 126, 122, 101, 81, 61, 51, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 25, 5, 0, 0, 96, 126, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 127, 116, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 121, 126, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 127, 126, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 126, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 126, 127, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 126, 106, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 126, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define IMG1_LABLE 7 + +#define IMG2 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 95, 127, 127, 127, 127, 127, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 127, 127, 127, 127, 64, 32, 64, 127, 127, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 127, 127, 127, 127, 95, 0, 0, 0, 64, 127, 127, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 127, 127, 95, 64, 64, 32, 0, 0, 0, 0, 127, 127, 127, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 127, 127, 64, 0, 0, 0, 0, 0, 0, 0, 32, 127, 127, 127, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 127, 127, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 127, 127, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 127, 127, 127, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 127, 127, 64, 0, 0, 0, 0, 0, 0, 0, 0, 64, 127, 127, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 127, 127, 64, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 127, 127, 32, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 127, 127, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 127, 127, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 127, 127, 127, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 64, 0, 0, 0, 0, 0, 0, 32, 127, 127, 127, 127, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 127, 127, 127, 64, 0, 0, 32, 64, 95, 127, 127, 127, 127, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 95, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 127, 127, 127, 127, 127, 127, 127, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 127, 127, 127, 127, 127, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define IMG2_LABLE 0 + +#define IMG3 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 100, 127, 127, 112, 79, 79, 47, 31, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 127, 127, 127, 127, 127, 127, 127, 127, 120, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 127, 127, 127, 127, 127, 127, 127, 127, 127, 117, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 127, 90, 2, 2, 47, 50, 64, 62, 98, 106, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 127, 30, 0, 0, 0, 0, 0, 0, 0, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 95, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 86, 8, 8, 25, 12, 12, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 127, 119, 120, 127, 127, 127, 127, 106, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 127, 127, 127, 127, 127, 127, 127, 127, 126, 106, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 92, 119, 116, 89, 26, 24, 42, 94, 101, 124, 108, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 108, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 104, 17, 0, 0, 0, 0, 0, 0, 0, 0, 8, 47, 125, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 127, 113, 82, 51, 47, 2, 2, 4, 51, 76, 110, 127, 126, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 113, 127, 127, 127, 127, 127, 127, 109, 127, 127, 127, 127, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 37, 78, 110, 117, 127, 127, 127, 127, 76, 16, 48, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 112, 108, 127, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define IMG3_LABLE 5 + +#define IMG4 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 126, 100, 66, 66, 32, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 126, 126, 126, 126, 126, 126, 115, 72, 55, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 126, 126, 126, 126, 126, 126, 126, 126, 126, 110, 55, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 36, 90, 110, 126, 126, 126, 126, 126, 126, 126, 126, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 30, 30, 52, 106, 126, 126, 126, 126, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 94, 126, 126, 126, 126, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 110, 126, 126, 126, 126, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 86, 126, 126, 126, 126, 110, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 120, 126, 126, 126, 126, 126, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 121, 126, 127, 126, 126, 114, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 118, 126, 126, 126, 126, 124, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 83, 126, 126, 126, 126, 126, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 116, 126, 126, 126, 126, 126, 106, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 99, 126, 126, 126, 126, 126, 108, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 116, 126, 126, 126, 126, 126, 63, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 94, 126, 126, 126, 126, 110, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 108, 126, 126, 126, 110, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 126, 126, 84, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 106, 126, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define IMG4_LABLE 7 + +#define IMG5 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 40, 81, 127, 117, 97, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 69, 112, 126, 116, 99, 114, 107, 125, 85, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 98, 126, 123, 88, 24, 0, 10, 5, 42, 126, 102, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 96, 127, 92, 46, 0, 0, 0, 0, 0, 2, 78, 127, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 126, 68, 2, 0, 0, 0, 0, 0, 0, 0, 13, 127, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 127, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 120, 23, 0, 0, 0, 0, 0, 0, 0, 0, 62, 127, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 126, 109, 32, 8, 0, 0, 0, 0, 0, 30, 119, 98, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 84, 127, 126, 121, 90, 90, 62, 45, 52, 119, 126, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 71, 95, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 41, 54, 54, 58, 116, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 126, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 126, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 126, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 124, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 117, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 126, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 126, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define IMG5_LABLE 9 + +#define IMG6 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 0, 49, 92, 89, 47, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 55, 97, 119, 47, 0, 104, 124, 127, 127, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 25, 53, 98, 123, 91, 12, 0, 0, 40, 122, 127, 124, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 42, 115, 127, 127, 110, 43, 0, 0, 0, 62, 126, 127, 89, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 127, 127, 108, 59, 2, 0, 0, 31, 101, 127, 120, 65, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 122, 127, 106, 22, 0, 0, 0, 31, 120, 127, 110, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 123, 127, 104, 24, 0, 0, 0, 15, 120, 127, 110, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 127, 127, 27, 0, 0, 0, 8, 99, 127, 109, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 109, 127, 116, 72, 19, 21, 102, 127, 102, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 124, 127, 127, 122, 116, 127, 111, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 42, 84, 122, 127, 127, 127, 103, 57, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 118, 127, 115, 81, 118, 122, 105, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 127, 127, 49, 0, 0, 18, 112, 127, 65, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 127, 114, 6, 0, 0, 0, 1, 85, 127, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 127, 127, 9, 0, 0, 0, 0, 40, 127, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 127, 127, 9, 0, 0, 0, 0, 65, 127, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 107, 127, 39, 0, 0, 0, 0, 91, 122, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 126, 111, 12, 0, 1, 63, 127, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 119, 111, 59, 88, 127, 108, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 77, 98, 98, 50, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define IMG6_LABLE 8 + +#define IMG7 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 95, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 126, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 126, 126, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 126, 126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 126, 126, 114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 87, 126, 126, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 126, 126, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 126, 126, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 126, 126, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 126, 126, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 126, 127, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 126, 126, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 126, 126, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 126, 126, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 126, 126, 115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 126, 126, 114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 126, 126, 81, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 119, 126, 126, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 126, 123, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 126, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define IMG7_LABLE 1 + +#define IMG8 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 75, 84, 127, 127, 127, 104, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 72, 119, 126, 105, 99, 99, 99, 113, 125, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 115, 127, 83, 24, 4, 0, 0, 0, 9, 80, 126, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 126, 27, 2, 0, 0, 0, 0, 0, 0, 58, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 119, 94, 0, 0, 0, 0, 0, 0, 0, 0, 83, 94, 13, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 109, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 127, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 126, 26, 0, 0, 0, 0, 0, 0, 0, 0, 87, 127, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 126, 89, 1, 0, 0, 0, 0, 0, 0, 31, 121, 127, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 59, 127, 65, 1, 0, 0, 0, 0, 0, 73, 126, 95, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 123, 89, 26, 0, 0, 0, 29, 119, 110, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 102, 127, 94, 81, 123, 127, 127, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 44, 86, 117, 110, 122, 121, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 111, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 126, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 126, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 127, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 116, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define IMG8_LABLE 9 + +#define IMG9 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 45, 68, 107, 127, 127, 127, 127, 81, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 71, 104, 127, 127, 127, 127, 127, 127, 127, 127, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 103, 127, 127, 127, 119, 73, 52, 52, 52, 103, 127, 127, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 127, 127, 118, 104, 18, 0, 0, 0, 0, 34, 127, 127, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 127, 116, 45, 0, 0, 0, 0, 0, 0, 34, 127, 127, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 43, 19, 0, 0, 0, 0, 0, 0, 0, 75, 127, 127, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 127, 127, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 118, 127, 127, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 127, 127, 82, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 119, 127, 127, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 87, 127, 127, 79, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 127, 127, 99, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 120, 127, 127, 71, 0, 0, 0, 0, 0, 18, 44, 72, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 56, 121, 127, 127, 127, 66, 47, 47, 68, 109, 109, 116, 127, 105, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 82, 77, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 127, 127, 127, 127, 127, 127, 127, 127, 83, 51, 12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 127, 127, 127, 127, 113, 71, 53, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 15, 57, 36, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define IMG9_LABLE 2 + +#define TOTAL_IMAGE 10 + +static const int8_t img[10][784] = {IMG0,IMG1,IMG2,IMG3,IMG4,IMG5,IMG6,IMG7,IMG8,IMG9}; + +static const int8_t label[10] = {IMG0_LABLE,IMG1_LABLE,IMG2_LABLE,IMG3_LABLE,IMG4_LABLE,IMG5_LABLE,IMG6_LABLE,IMG7_LABLE,IMG8_LABLE,IMG9_LABLE}; + diff --git a/examples/nnom_mnist/data/weights.h b/examples/nnom_mnist/data/weights.h new file mode 100644 index 00000000..8bf95dc5 --- /dev/null +++ b/examples/nnom_mnist/data/weights.h @@ -0,0 +1,420 @@ +#include "nnom.h" + +/* Weights, bias and Q format */ +#define TENSOR_CONV2D_KERNEL_0 {43, 49, 37, 63, 24, 74, -39, -26, 7, 86, 41, 20, 56, -10, -64, -4, 7, -78, 38, 74, 28, -16, 51, -1, -82, -87, -14, -26, -25, 61, -69, -19, 68, -55, -19, 66, 10, -34, -86, 58, 41, -36, 65, -22, 80, 7, 56, 16, -31, -31, 39, -43, -11, -76, -26, -5, 66, -14, -9, 43, 4, -32, 76, 2, -72, -70, 32, 45, 32, 44, -17, 31, 76, -2, 32, 64, 85, -60, 5, 21, -96, -24, -81, -61, 45, 69, -3, 14, 55, 69, 82, -44, -71, 83, -16, -66, 49, 55, 31, -30, 17, 46, -3, 16, 7, 19, 80, 72} + +#define TENSOR_CONV2D_KERNEL_0_DEC_BITS {8} + +#define TENSOR_CONV2D_BIAS_0 {-20, 13, 92, 22, -3, 83, -81, -4, -13, -3, -10, -16} + +#define TENSOR_CONV2D_BIAS_0_DEC_BITS {11} + +#define CONV2D_BIAS_LSHIFT {4} + +#define CONV2D_OUTPUT_RSHIFT {9} + +#define TENSOR_CONV2D_1_KERNEL_0 {25, 1, 56, -15, -11, 1, -38, 32, -22, -19, -3, -33, 16, -34, -34, 15, 25, -9, 4, -6, -16, 38, -13, 30, 41, -14, -22, 43, -24, -31, 29, -20, 45, 13, 20, 20, 19, -28, 0, 57, 5, -22, 48, -19, -35, 38, 18, 9, 21, -7, -27, 20, 2, -88, 21, -15, 39, 33, 1, 57, 19, 47, -13, -40, -34, -29, 3, -14, 41, -28, 33, -21, -1, 23, -61, -22, 20, -66, -16, 2, -1, 45, -38, 60, 3, 0, -24, -40, -16, -31, -32, -46, 33, -1, 25, 13, 19, 58, -8, -50, -9, -2, -54, -35, 46, -63, 37, -59, 48, 48, 48, -1, -11, 7, 30, 13, 55, 13, 16, 26, 37, 51, 30, 2, 0, 12, 38, -42, 60, -28, 21, 0, 12, 25, -5, -32, -39, 2, -40, -31, -10, -61, 12, -45, 36, 21, 89, 2, -48, 24, 21, -69, 11, -70, 9, -43, -1, 51, 24, -5, -43, 39, -28, -36, 21, -74, -13, -46, -41, -48, -34, 19, -5, -54, 40, -12, -64, 1, -25, 17, -35, -6, -25, -27, -16, -3, -36, 20, -32, -10, -7, -7, -55, -17, -67, 30, -31, -27, -4, 12, -59, -31, -19, 18, 17, -12, -20, 45, 27, -56, 36, -16, -16, -4, 22, 57, -33, 31, 29, 23, 6, -6, -13, -17, -12, -33, -8, -10, -28, -52, -44, 28, -20, -29, 37, -20, 2, -4, 12, -5, -22, -17, -63, -3, 14, -35, 48, 30, 18, 5, -21, 41, -30, -31, -14, 18, -25, -36, -48, -5, -29, -27, -3, -24, -30, -60, -44, 34, -35, -55, 37, -39, -3, 16, -8, 37, 42, -6, -4, 4, -32, -47, 5, -4, 20, 26, 31, 49, -25, 28, -11, -32, -12, 23, -27, -37, 28, 7, -22, -35, -6, -57, -42, 36, -36, -10, 46, -17, -51, 26, -5, 21, 21, 0, -16, 27, -8, -14, 34, -42, -22, 21, 25, 15, -14, -1, 37, 53, -17, 9, -7, 15, 31, -48, 25, -3, -20, -9, -48, 49, -4, -52, 27, -16, -31, 30, -27, 16, 6, 45, -61, 8, 41, -57, -32, -4, 40, 16, -14, 1, -7, 18, -29, 40, -34, -28, 41, -42, -42, -32, 3, -20, -6, -42, -48, 37, -31, -54, -14, -28, -15, -1, -8, 50, -17, 26, -40, 23, -8, -5, -40, 33, 11, 11, 42, -27, -6, -53, -24, -6, -16, -28, 14, -32, -68, 7, -49, 13, -3, 5, -45, 23, -21, 6, 0, -5, -25, -33, -26, -12, -10, 48, -32, -1, 47, -16, 21, -16, 19, 23, 38, 21, -22, 20, 29, 20, -49, 61, -45, -56, 6, -38, -31, -27, -20, 12, 103, -27, -22, 49, -4, -13, -8, -39, 2, -40, -25, 31, 76, -18, 17, 10, -29, -26, -34, -42, -8, -9, -11, -47, 2, -44, 17, -60, 23, 50, 8, 47, 41, 44, -22, -43, -39, -25, 53, -10, -4, 42, -46, 49, -11, 39, -37, -56, -21, 20, 0, -27, -16, 26, 5, 15, 44, 53, 17, 46, 38, 14, -21, 67, 24, 17, 38, 35, -25, -10, 29, 3, 46, -13, 1, 15, 34, 31, 19, 27, -10, 20, 20, -2, 54, -1, -11, 36, -9, 20, -18, 25, -15, 31, -4, -8, 45, 21, 23, 56, 33, -32, 29, -29, -33, 9, 21, -14, 19, 38, -39, 54, 3, -13, 34, -45, -4, -8, 5, 24, 79, -26, -26, 54, 25, 4, -6, -14, -16, 4, -42, 9, 39, -12, 17, 43, -53, -4, -3, 23, -15, -21, -53, -19, 61, -6, 3, 45, 18, -14, -11, -21, 18, -26, -23, -20, 11, -40, -16, 37, -18, 11, -41, 32, -3, -27, -3, -8, -7, 6, 40, -33, 8, 20, 3, 51, -19, 43, 22, -37, -62, -6, 51, -26, 37, 39, -28, 17, 32, 40, -17, -35, -65, 31, 43, -29, 43, -2, -17, 52, 16, 27, 26, 12, -8, 43, -31, -26, 39, -27, -22, -16, -42, -7, -8, 21, 2, 33, 23, -61, 5, 21, 13, 9, 30, 10, 22, 0, -39, 37, 35, -25, 23, -32, 47, -36, 25, 7, -14, -57, -13, 36, -61, -28, -10, -48, -15, -32, -44, 46, 1, -9, -16, -8, 17, -22, 29, -35, -23, -10, 25, -14, 29, 37, -24, -6, 23, -82, 6, -6, 34, 28, 36, 7, 6, -57, -43, 9, -22, -15, 33, -9, -47, -14, -46, -5, 25, 12, -27, -20, -24, -32, 23, -15, 28, -23, -2, 36, -7, -15, -40, -38, 10, -20, 11, 2, -21, 23, 36, -5, 16, 56, -14, 12, 39, -33, 31, -39, 74, -43, 42, 1, 8, 8, 20, -41, 12, -22, -39, -15, 64, -64, 40, -81, -53, -37, -29, 13, -14, -1, -39, -5, -76, -29, -55, -15, 15, 42, 38, -73, 4, 5, -72, -47, 57, -40, 22, -45, -8, -4, -13, -15, -28, 10, -2, -7, 12, 14, -42, 17, -23, -41, 7, 12, -26, 7, 11, 24, -57, 45, -15, 8, -49, -33, -49, 20, 22, 3, -23, -11, -44, 37, 0, -19, 4, -46, -25, 41, 13, -46, 44, 22, -48, 8, -1, 47, 16, -17, 8, 38, -12, -8, 12, -16, 0, 55, 11, 15, -8, 15, 25, -4, 28, -31, -16, 10, 4, 43, 56, -11, 7, 16, -37, 31, -9, -31, -8, 39, 31, 46, 40, 42, 61, -10, -52, 2, 23, -13, 55, 12, 13, 48, 21, 20, 25, 41, 37, 15, -8, 77, 18, 20, 24, -18, -5, -6, 20, 34, 25, 2, -44, 14, 4, -32, 40, -37, -4, -24, 18, 22, 40, -7, -23, 47, 18, -5, 23, -50, -50, -2, -24, -7, 14, -28, -41, 15, -43, -29, -28, 5, -67, -8, -14, -8, 29, 18, 8, 8, 5, -11, -1, -43, -51, -41, -26, -10, 4, 13, 4, 13, -40, -19, -12, -19, -26, -22, -28, -24, -34, 43, -41, -84, 7, -5, -1, 38, -45, 53, 12, 38, -65, 28, 5, -52, 15, -28, 52, 8, -7, 38, 17, 70, 47, -67, -21, -7, -51, -25, 16, -10, 40, -37, -1, -25, -45, 24, -28, -73, 27, -20, 29, 26, 2, 8, 40, 45, -27, -29, -4, -67, 18, 9, 19, -23, 18, 15, -8, 48, 5, -57, -3, 11, -48, -2, 43, 9, -2, -25, 37, 9, -54, 12, 15, -65, 10, -43, 49, -17, 13, 41, 40, -13, -46, 20, -12, -3, -11, -9, 13, 1, 45, -23, -26, -4, 20, -47, 17, 36, -64, -3, 24, 9, 24, -10, -40, -53, -28, 38, -5, -21, 1, 9, -10, -9, -37, 37, -18, 6, -61, 36, 8, -25, 42, -24, 7, -17, -4, -5, -5, -15, -65, 30, 1, -1, -18, 29, -4, 8, -24, 16, 17, -19, 3, 33, 7, 11, 37, -15, 11, -12, -25, 23, 2, -19, -6, 14, 3, -51, 38, 30, 0, 22, 28, 33, 23, 46, -58, -44, -11, -2, 23, 4, -11, -28, 14, -19, 20, -21, -1, -17, -1, -27, -9, -35, -6, -30, -37, 44, 3, 29, -9, -5, -4, -11, 44, 12, 5, 15, 5, -4, -4, -11, -64, -7, -18, -31, 15, -21, 21, 12, 43, -14, 46, 24, 16, 48, 20, 5, -6, -9, 16, 36, 16, 0, -5, -15, 14, 32, -3, -6, -2, -3, 29, 29, 34, 16, 59, -6, 15, -13, 8, -2, 33, 28, -17, 50, 22, 53, -4, -54, 7, -13, -12, 31, -3, -43, -37, -55, -44, -21, 45, 40, 22, -11, -32, 4, 33, -39, -22, -11, -54, 20, 46, -13, 21, 42, -41, -15, 48, -34, -30, -1, 15, 20, -69, -53, 38, -62, -32, 3, -25, 7, -34, 22, -20, -48, -51, -45, 15, 33, 1, -26, -17, -6, -9, -19, 10, -34, 32, -36, 0, -16, -42, -24, 31, -19, -42, -16, -50, 41, -28, 25, 24, -59, 18, 36, -55, -9, 26, -36, 12, -21, -32, -1, 15, -16, 16, -15, -32, -21, -52, -42, -36, 18, 42, -49, -25, 46, -34, -60, 33, 16, -19, -20, -9, 52, -26, -2, 10, 15, -14, 34, -20, 30, -5, -30, 35, 2, -39, -27, 15, 21, 13, -15, 9, 12, -19, -23, -33, 5, 20, -38, -3, 54, -19, -31, 33, -34, 12, -18, -8, 46, -22, 47, 1, 3, -21, 15, 15, -14, -24, -21, -9, 21, -20, -34, -4, 32, -26, -15, 22, 8, 4, 31, 13, 35, 40, 40, -27, 49, -40, -17, 31, -41, 26, -8, 16, 26, -19, 2, -48, 18, 16, -7, 3, -43, -7, -42, -32, -23, -15, -11, -6, -7, 26, -4, 23, 19, 31, -30, -7, -16, 4, -18, -67, 30, -31, 1, 4, -8, -34, -7, 5, 30, 28, -7, -53, -30, 22, -3, 19, 39, 27, 48, 34, 18, 22, 9, -10, -18, 9, -42, 17, 27, 6, 24, -7, 39, 16, -7, 26, -49, 9, -35, 8, -1, 17, 1, -26, 12, 12, 12, 20, 5, 32, 53, -31, 13, -2, 5, 20, -29, 36, 3, 55, -4, -25, 55, 16, -29, 46, -7, -3, 4, 44, 46, 55, 13, -3, 3, 5, -34, -2, -44, -20, -33, -59, -37, 13, -57, 29, 39, -14, 41, -35, -22, 16, -3, -1, -41, 21, -6, -48, 73, -20, -35, -2, -41, -16, -32, 1, -27, 61, 54, -28, 62, 18, -18, -31, -55, -30, 31, 44, -11, -47, -45, 23, -52, -21, 48, 33, 59, 46, 6, -29, -50, -22, -72, 53, 11, -57, -1, -4, 15, 2, -30, -53, -43, -4, -3, 14, 43, 15, -13, -31, -29, 13, 8, 23, -2, -8, -6, -2, 39, 63, 17, 41, 43, 49, 9, -23, 22, -38, 37, 16, -6, 38, 37, 44, -10, 44, -15, -17, -44, -51, -30, 39, -14, 5, 32, -39, 4, 63, 8, 43, -16, -17, -25, 40, 18, 11, 22, 14, 8, 41, 0, 18, 26, 21, -5, 35, -2, 22, 57, -31, 32, 43, -24, 25, 15, -5, -7, 26, 28, 28, 18, -15, -4, 1, -18, 38, -2, 65, 3, 18, 35, -24, -2, -28, -14, -18, -29, 7, -8, 34, -12, 45, 28, -29, 36, -12, 33, 25, -29, 35, 19, 34, -27, 33, 55, -7, -5, 14, 9, 28, 1, -30, 12, 29, -7, -53, 32, -1, -32, -21, 7, -38, -52, -34, -24, 33, 6, -7, 6, -6, -58, -16, -10, -32, 13, 2, 21, 23, 19, -42, 19, -27, 10, 17, -27, -24, -7, 36, -49, -4, 20, -26, -35, -15, -48, -22, -50, 1, 15, -9, 31, -72, 1, -17, -68, 49, 4, -10, 20, -13, 5, -18, 48, -61, -13, 15, -60, -9, 30, 62, -13, 35, -15, -5, -55, -36, 30, -57, -32, -1, -23, -15, -1, -49, 31, 12, 18, -53, 48, -13, -56, 15, 1, -14, 19, -10, 10, -36, 47, -47, -37, -16, -51, -49, -2, 31, -20, 17, -4, 12, -30, -68, 20, -36, -4, 3, -39, -35, -22, -30, 25, -28, -16, -1, 49, -21, -35, 35, 15, 3, -22, -11, -5, 15, -5, -38, -48, 14, -17, 17, 3, 26, 2, 67, 2, -9, 20, -65, -13, 41, -79, -29, -12, 2, 14, 56, 13, 3, 38, -11, 31, 25, -46, 2, 20, -4, -40, -12, 16, 23, 33, -22, 11, 24, -26, 22, -24, 31, 4, 30, -42, -19, -2, -3, 50, 19, -23, 5, 39, -17, -30, 55, 25, -31, 12, -37, 3, 50, -27, 10, 39, -15, 3, 57, -8, -52, 21, -28, 25, -28, 42, -39, -28, -9, -21, -14, -14, 32, -34, -29, 10, -33, -6, 2, 5, -12, -6, 39, -28, 12, -10, 10, 42, 53, 12, 2, 7, -8, 19, 20, -18, 7, -40, -1, -18, 67, 8, 1, 29, 14, 16, 47, -16, 35, -3, 50, 18, 23, 18, -18, 18, -19, -33, 14, -19, 44, 18, -36, 41, 0, -4, 38, 25, -22, -26, -36, 24, -22, 24, -42, 32, 15, -90, 19, 17, -5, 10, 20, 18, -2, 29, -3, 22, -2, 14, 23, -14, 28, -40, -20, -13, -4, 7, 23, 51, 0, -56, 11, -2, -18, -38, -16, 26, 6, -22, -75, 54, 35, -79, 19, 20, 33, -28, 17, 39, -39, -3, 29, -11, -30, -51, -9, -6, -11, 15, -14, 23, -28, -33, -54, 21, -41, -29, 50, -44, -7, 39, -26, 26, 29, 15, -4, 56, 13, -64, -2, 30, 42, 11, 21, 4, -34, -27, -45, -7, -1, -16, -5, 49, -5, 44, 46, 26, -40, -15, -37, -34, 1, -46, -29, -5, -46, 17, 20, -13, -1, -53, -16, 0, 38, -4, -8, 7, -61, 53, 17, -10, 25, -5, 43, 6, -5, 29, 10, 15, -12, 46, 20, -38, -15, 6, 19, -22, 19, 36, -5, 17, 32, 49, 49, 4, 3, 24, 3, -29, 19, 4, 13, -6, 23, 46, 11, 30, 37, -22, 63, -29, -62, 68, 20, -77, 11, -46, -39, -43, -12, -23, 57, 23, -56, 40, -18, -25, -14, -31, -28, -45, 2, 32, 33, -10, 2, 20, 10, -12, 18, -28, -16, 21, -6, -35, -9, 43, -41, -37, 49, -8, -36, -39, 19, -2, 27, 19, -38, 38, -8, -73, 32, -26, 41, -10, 53, 24, 8, -16, -48, 30, 11, -48, -19, 26, -13, 7, 29, 14, -1, -13, -10, 40, -28, -19, 19, -54, -33, -42, 9, -31, -14, -6, -17, 5, 42, -49, 32, 2, -6, 7, 51, 14, -2, 15, -46, 13, 1, -11, 4, 28, -5, 3, 44, -14, -23, -23, -4, -30, -40, -25, -7, -35, -33, -22, -7, -32, 34, -29, -35, 2, -4, 24, 10, 4, -28, -48, 26, 2, 39, -34, 8, 27, -5, -7, 29, -5, -3, 32, 49, -3, 20, -13, 17, 3, 27, -59, 13, 30, -8, 57, 38, -18, -26, 23, -45, -53, -12, -40, -4, 3, 27, 28, 6, 4, -21, 14, 23, -5, -38, 1, 6, -14, -52, -16, -52, -37, 19, 18, 60, 32, 9, 39, 39, 42, -10, 22, -18, -31, 2, 1, 13, -48, 57, -27, 6, 69, -23, 48, 75, -31, -39, -5, -14, -30, 2, -4, -4, 29, 15, -12, 50, -33, 24, -18, -2, 2, -18, -3, -19, -67, -57, -10, -20, -17, 28, -22, 3, 49, 21, 13, 46, -17, 1, -36, -9, 5, 25, 17, -30, -45, -12, -19, -2, 32, -2, 12, 48, -34, -54, -3, 10, -43, -11, 25, -24, 18, -8, 37, -2, -27, -11, -16, 6, -14, -11, 4, -24, -6, -41, 1, -23, -5, -11, -39, 69, 9, -11, 16, -32, -2, -50, -3, -38, -6, 6, 6, -21, -26, 43, -17, -15, 63, 0, 48, 40, 33, 11, -2, -10, -35, 18, -6, -12, 35, 10, 49, 59, -19, -31, -49, -23, 11, 31, -22, -14, 6, 20, -23, 36, -25, -10, 22, 43, 26, -29, 56, 4, -10, 22, 25, 24, -7, -18, 27, 21, 41, 35, 33, -10, 8, -25, 31, 35, 34, 15, 27, -45, -25, 42, -18, -10, 31, -12, 47, 42, -21, -25, -9, -6, -3, 4, 1, 17, 8, -16, 8, 6, 4, 10, -54, -12, -6, -9, -34, 8, -15, -51, 28, -12, 31, -21, -47, -47, -20, 34, -22, 20, 53, -10, 32, 32, 8, 41, -23, 20, -59, 3, 22, 18, 28, -18, 43, 37, 1, 30, -14, -4, -45, 4, 2, -9, 47, 26, 13, -22, -21, -8, 12, 2, -27, 16, 34, 28, 25, -8, 6, 33, 1, 40, 49, 92, -33, -14, 33, -29, -56, 35, 20, -24, -61, 44, -4, 33, 28, -27, -6, -18, 7, 5, -27, 5, -43, 24, -17, 18, 22, -21, 15, -4, -52, 38, 5, -18, -34} + +#define TENSOR_CONV2D_1_KERNEL_0_DEC_BITS {8} + +#define TENSOR_CONV2D_1_BIAS_0 {-4, 6, 6, 20, -27, -40, -15, 21, -35, -50, -13, -25, 31, -28, 0, -53, -22, -71, -47, -38, -57, -65, -6, -32} + +#define TENSOR_CONV2D_1_BIAS_0_DEC_BITS {10} + +#define CONV2D_1_BIAS_LSHIFT {4} + +#define CONV2D_1_OUTPUT_RSHIFT {9} + +#define TENSOR_CONV2D_2_KERNEL_0 {-16, -10, -12, 39, 12, 18, 2, 11, -9, 7, 15, -12, -20, 6, -4, 12, -1, -6, 4, -6, 22, -3, -7, 3, 2, -16, 12, -3, 11, 21, -1, 16, -27, -12, 21, 0, -27, 2, 7, -7, -6, -19, 19, 19, 28, 20, 16, 13, 22, -22, 6, 8, -8, -9, 3, -17, -13, -22, 12, -5, 18, 16, -19, -7, -3, -15, 30, 5, 17, 4, 12, -15, 11, -8, -25, 11, 15, 11, 2, -20, 26, -20, 1, -25, -37, 30, -20, -5, -24, -14, -13, 3, 18, 16, -22, 1, -1, 26, -6, -30, 27, 19, 3, 16, 9, -14, 25, 6, -4, -7, 8, 34, -5, -14, -26, 47, -13, -6, -9, -8, 16, 19, -38, -9, -21, -14, -19, -22, 33, -12, 1, -5, 6, 27, -29, 1, -12, -10, 24, 34, -23, 7, -8, 40, -44, 27, -10, -36, 27, 60, -10, -20, 18, -26, -40, 13, -52, -24, 27, 27, -27, -34, -26, 10, -28, 1, -19, -17, -5, 70, 4, -33, 45, 26, 10, 0, 32, -39, -24, 28, -19, -15, 18, -9, -23, -17, -25, 36, -13, -7, 13, 5, 15, 48, -45, 4, 47, 28, 9, -2, -15, -29, -3, 7, -7, -24, -28, 14, -15, -10, -13, -32, -18, -12, -4, 4, 11, -6, 14, -23, 29, 21, -40, 38, -27, -28, -24, -15, -12, 11, -38, -34, -25, -26, 5, -5, -44, -52, -5, -21, -14, 20, 9, -9, 37, 16, -30, -4, 0, 13, -1, 3, -23, -9, 15, -20, -20, -4, 10, -8, 8, 18, -10, 21, 7, -27, -12, -3, 13, -9, 3, -40, -14, 19, -6, 19, -43, -15, 30, -11, 10, -5, -28, 17, -6, -1, 25, -6, 22, -5, -11, 7, 41, 25, 16, 32, 33, -5, 26, 16, 6, 20, -25, -1, -14, 11, -4, 33, 1, -19, 14, 37, 6, 30, -20, -11, 9, 32, -24, 9, 7, -5, -12, -15, -48, 38, 2, 16, 5, 30, -33, 5, 3, 30, -5, 13, 18, 24, -30, -46, 8, 4, -23, 22, 1, -25, -22, -1, -42, -6, 6, -11, -30, -18, 14, -25, -25, 3, 6, 8, -25, 6, -3, -11, -2, 35, -7, -8, 18, -6, 15, 21, -16, -32, -14, 15, -25, -28, -4, 30, 17, 13, -18, -25, -11, -32, -31, -13, 3, 0, 12, -50, 19, 0, 18, 31, -38, -4, 8, 7, -5, 15, 6, 33, -26, 25, 9, -11, -5, -11, -47, -40, -18, -20, -24, 14, -11, 6, -5, 11, -16, -7, 8, -8, 9, -12, -14, -14, 5, -20, 16, -18, 9, 12, -6, 17, -2, -16, -6, -15, 27, -35, 4, -4, 19, 35, 27, 27, 15, 24, -9, 39, 0, 0, 2, 36, -3, -32, -10, 14, -2, -7, 0, -1, 18, 36, 25, -14, -1, 13, -2, 13, 20, 10, 24, 6, -6, -10, -6, 19, 10, -13, -22, -8, -14, -11, -2, -28, 43, 16, 15, 36, -34, 8, -27, 48, 26, -32, 9, 25, -4, -28, -31, 30, 1, 22, -20, -10, 1, -18, -5, -25, -9, -8, -27, 24, 4, -35, -30, -14, 15, -34, 15, 3, -6, -5, -17, -17, -12, -12, -29, 18, -5, 21, 19, 27, -7, 21, -4, -11, 6, 12, 6, -25, 14, 11, 3, -41, -12, -8, 0, -16, -15, -7, -12, 35, -3, 8, -7, -6, -23, -15, -12, -37, 28, -11, -17, 1, 1, 1, 5, -65, -29, -54, 9, -49, 16, -27, 14, -16, 22, 37, -36, -9, -43, -23, -26, 2, -21, -14, -10, -32, -21, -3, -2, -22, 2, -15, 10, 17, -3, 18, 2, 4, 8, -9, 1, 41, -35, -2, 24, 3, 28, 18, 6, -9, -16, -11, -6, -14, -16, -4, 10, -29, 38, 24, 8, -17, 8, -17, 20, -10, 14, 25, 26, 8, 4, 14, 13, -29, -17, 0, 13, -16, -10, -19, 23, 0, 4, -12, -5, 4, -17, -38, -7, 7, -19, 15, -8, 19, 10, -23, -16, -8, 34, 23, 17, -50, 9, 7, -9, -16, 16, -1, 19, 23, -28, -33, 28, -6, -24, 26, -7, -20, 4, -26, 3, -5, 25, 14, 29, -27, -2, 20, -26, -34, 8, -33, 14, 46, -19, 10, 9, 32, -18, 13, -7, -17, -11, 5, -25, -14, 15, -2, 22, 3, 16, -29, 22, 8, -11, -11, 8, -15, 17, 18, -21, -11, -26, 14, -11, 1, -1, 26, 28, -31, -15, 22, -23, 10, -2, 34, -13, -2, -5, -35, 40, 35, -23, -40, 31, 3, -49, 23, 15, 5, 36, 5, -27, -25, 55, 26, 25, -15, -1, -5, 3, -26, -8, -62, 18, 33, -25, -25, 35, -21, 9, 30, 2, -21, 0, 18, -22, 16, 7, 23, -8, -21, 31, 11, 18, 22, 4, 36, -11, -7, -31, -37, -28, 18, -3, -24, 4, 25, 0, -8, 19, 41, -13, -29, -17, -4, -15, 0, 3, 19, -18, -37, -14, -16, -8, -6, -19, -7, 18, 6, 21, -4, 1, 14, -42, 19, 8, 5, -25, -22, 12, 4, -30, 12, -5, -43, -1, -31, -19, 6, -19, -21, 33, -7, 11, 27, -47, 14, 18, 23, -21, 22, -46, 32, 3, 26, 0, -7, 30, 4, 2, 2, 30, -15, 5, -23, -8, -20, 24, -20, 20, 7, -29, -23, -8, 34, 14, -10, 12, 10, -17, 28, -1, -7, 0, 11, -24, 12, -21, 17, 7, 30, -6, -25, -26, -6, 12, -7, -23, -2, -26, -26, -21, 13, 29, 12, -37, 31, 23, 35, 10, -9, 0, 35, -21, -33, -28, 10, -7, 0, 3, -9, -16, -29, 14, -5, 10, 6, -4, 1, -11, -2, -18, -21, 4, 12, 20, -1, 10, -20, -9, 4, 27, -23, -37, 24, 15, -13, 17, -22, -9, 7, 10, 8, -16, 14, 4, -8, 23, 30, -24, 12, -22, 14, -10, 12, -1, 12, 20, -22, -14, 4, 5, 23, -3, 43, 8, -15, -21, -48, 0, 12, 7, -4, -21, -34, -44, 16, 19, 15, -27, -17, 34, 7, 19, 6, -18, -3, -21, 4, 19, -23, 4, -40, 14, -2, 28, -22, -4, -40, -13, -15, -3, -34, 0, 20, -40, 0, -16, -13, -1, 12, -12, -33, -13, -9, 23, 8, -8, -32, -27, -45, -11, 9, 4, 24, 6, 0, -19, -15, -4, -11, -21, -20, 16, 2, -6, 0, 7, -15, 14, -71, 33, 0, 3, 16, 11, -12, -5, 17, 18, 7, -31, -16, 25, 35, 5, 45, -8, 14, 28, 38, 35, 19, 28, 13, 10, 11, -33, 16, -11, 9, -11, -28, -6, 20, 40, -28, 20, 10, 10, -30, 40, -43, -20, -23, -30, -32, -8, -19, 4, 2, -24, -29, 34, -14, 1, -1, 3, -30, -12, 2, 15, -23, 30, 26, 4, -40, 18, 3, -35, 11, -15, 22, -20, -4, -13, -14, -18, 6, -16, 8, -2, 15, 11, -31, 10, 11, 10, 24, -24, -12, -23, 0, -31, 9, -2, -11, 9, 18, 8, 11, -10, 5, -45, 38, 17, 12, -6, 8, 6, -22, 8, 23, -25, -12, 9, 7, -6, -8, 5, 24, -15, -12, -19, 10, -1, 39, -2, 13, -14, -6, 9, 8, 10, -6, 18, 9, 13, 12, 8, -4, 28, 19, -28, -9, 28, 51, 26, 13, 9, -2, -18, 12, -20, -42, -3, -26, 3, 7, 38, 26, 21, -35, -10, 9, 15, 8, 11, 12, -2, -29, -45, -53, -11, 7, 27, -14, -8, 10, -6, -24, -30, -9, 0, 2, -26, 10, 10, 5, -26, 17, 16, -35, 4, -17, -20, -7, 19, 7, -19, 15, 5, -16, -27, -20, 22, 19, -17, -5, -22, 10, 21, 20, 2, 5, -20, 7, 1, 10, 9, -23, -23, 2, -1, -13, 11, 7, 21, -14, -10, 2, 16, -22, 5, -15, 20, 16, 13, 14, -20, 26, 5, 5, 36, 18, -33, 16, -12, -24, -25, -19, -21, -27, 12, -6, -15, -17, -24, -13, 1, -7, 19, -14, -24, -3, -16, -25, -4, 17, -34, -9, 7, -16, 2, -5, -5, -16, 15, -29, -51, 6, -28, 36, -42, 6, 34, -2, 2, -6, 10, -20, 17, 25, -26, -10, -1, -20, 28, 15, -13, -2, 35, -8, -32, 0, -11, 42, -36, 36, 47, -13, 23, -10, -1, 17, -24, -13, 31, -5, 0, -6, 22, -23, -3, 20, 5, -11, 14, -8, 21, -16, 26, 30, 15, -16, -22, -32, 3, -7, -11, -31, 5, -33, -6, 4, 7, -16, 0, -10, -3, -18, 1, 7, 24, 15, 19, 30, -5, -9, 34, 16, -10, 9, 4, 15, 20, -26, 22, 12, 13, -6, 9, 33, 2, 20, 2, -11, 12, -4, -23, 1, -17, 34, 11, -7, -18, 4, -5, 20, 18, -23, -8, 4, -19, -3, -37, 15, 16, -27, -18, -10, -16, 13, 1, 5, -9, -21, 2, -10, -14, 11, -11, 30, -5, -23, 46, 4, 3, 37, -7, 17, -35, -4, -4, -25, 5, 14, -14, -34, -1, 28, 31, 52, 2, 1, -10, -21, -14, 59, 24, 26, 16, -37, -6, 19, -75, -10, -26, -7, -20, -39, -33, -61, -31, -8, -8, -7, -23, -35, 19, 24, -38, -33, 15, -67, -36, 40, 22, -22, 51, 25, -28, -30, -18, 40, -28, 12, 28, -33, -16, -33, 10, -2, -33, 22, 13, -41, 29, -21, -9, 42, -29, 17, 5, 2, 12, 24, -18, 20, 55, 38, -23, -11, -27, -15, -36, 2, -26, 5, 22, -10, 35, -9, 16, 35, -51, -18, -21, 23, 27, 6, -2, 40, 9, 24, 25, -2, -39, -22, 0, -2, 26, 10, -15, -39, -6, -38, -7, -13, -28, 12, 40, 10, 6, -1, -23, 25, -23, 11, -3, 23, -14, -30, 6, -30, 7, 5, -27, -35, -40, -41, 2, -7, -12, -5, 40, -25, -27, 2, -19, 18, 2, 8, 38, -15, -7, 3, -17, 16, 35, 24, -31, -20, -28, 3, -33, -11, 12, -26, -8, -2, 21, 8, 20, 16, 1, -30, 30, -1, 3, -42, 28, 8, -18, -5, 25, -31, 13, -10, 1, -11, 0, -16, 15, -12, 8, 32, 21, -25, 8, 10, -2, 5, -22, -14, -26, -10, -20, -3, -10, -49, 21, -19, -20, 21, 5, -7, 23, -12, 7, 7, -12, 35, 4, -4, 0, 10, 32, 13, -7, 2, 9, -7, -14, -8, 40, -2, 20, -1, -2, -10, 15, 9, 17, -4, -26, 18, 2, -13, 1, 21, -4, 12, 7, 12, -19, 6, -5, 43, -38, 11, 1, -9, 0, 7, -16, -41, -21, -15, 3, -26, -13, -27, 0, 18, -5, 5, 42, -4, 13, 2, -1, 34, -28, 17, -3, -3, -5, -8, 3, -39, -16, 0, -15, -13, 10, -5, 18, 3, 20, 28, -20, -2, 27, 1, -28, 32, 5, -28, 14, -31, 17, -6, 4, -28, 4, -17, -3, -10, 0, -34, -8, 5, -17, -33, -23, 8, -3, -10, 14, 1, -5, -14, 19, 13, 1, 1, 21, 9, -11, 19, -4, 25, 32, 30, 32, 39, -9, -38, 12, 17, 10, -14, 5, -41, -20, 1, -5, 37, 23, -18, 44, -13, 43, 40, 9, 36, 46, 10, 37, 14, 13, -7, 50, 29, -27, -20, 12, -28, -1, 14, -11, -5, 4, -8, 28, -25, 33, 19, 3, 6, 22, 20, 23, -22, 4, 19, -25, -23, -31, 23, 2, 33, -22, -4, -2, 1, -9, -13, -17, 23, -34, -21, -8, -18, 20, -21, -34, -28, 3, -36, 21, 11, -70, -33, 25, -33, -6, -6, -18, 8, 34, -7, -29, -12, 31, -30, 26, -51, -7, 2, -34, 6, -17, -29, -10, 13, -26, -42, -6, -6, -17, 1, -15, -1, -2, -4, 40, 17, 32, 23, -21, -9, -1, -8, -3, -10, -4, 5, -13, 8, -21, -8, 19, 29, 44, 40, 17, 4, 6, 6, -54, 23, 6, 5, -19, -18, 17, -36, -42, 30, -11, 33, -42, 3, -37, -5, -8, 21, 40, -5, -6, 18, -49, 21, -48, 45, -27, -29, -35, 8, -17, -22, -14, 3, -15, 22, -1, 9, 29, 2, -22, 11, -6, -27, 3, 33, -9, -2, -23, 32, -3, -30, -19, -14, -25, 25, -3, -13, -23, 8, 34, 16, 25, 0, 0, 38, -1, 13, -14, -8, -19, -3, -8, -21, 37, -9, 29, -17, 3, -25, -17, -25, -28, -19, -30, 5, 25, 7, -16, 1, -12, -13, 14, -8, -19, 11, 30, -18, 11, 11, -20, 3, 11, 8, 24, 6, -31, -20, -16, -28, -13, -6, -14, -41, -26, -38, -45, -20, -12, -29, -5, -29, -33, -7, -43, -23, -3, -36, -22, -49, -27, -3, 8, 35, -41, -1, 25, -18, 33, -30, -28, 46, -8, -50, -16, -1, 25, -29, -18, -3, 15, -1, -4, -15, 16, 7, 9, 44, 22, -4, 29, -10, 18, -2, 35, 52, 2, -16, 15, 36, 50, -2, 29, 15, 59, 73, 28, -4, -6, -24, -19, 18, -12, -3, 16, -28, -18, -27, 12, 20, -1, 0, 28, -7, 11, -10, 22, -11, 15, 21, 1, 22, -30, -14, -4, 3, 3, -13, -5, -11, 19, 15, -23, 34, 27, 27, -3, -7, -7, -17, -3, 31, 15, -3, 18, 15, -6, -28, 23, 25, 21, 6, 10, 7, 15, 14, 20, 7, -12, 23, 24, 18, -11, -21, -8, 13, 36, 22, 26, 12, 15, -38, 3, -8, -12, -4, -10, -23, 7, 2, -1, 21, -40, 0, 18, 11, 23, -3, -16, 3, -15, 30, -12, -24, -31, -3, 7, -21, -3, -2, -5, -11, 4, -10, -3, -3, -39, -10, 11, 12, -11, -3, -5, -25, -26, 5, 8, 17, -31, -8, 15, -21, -12, -18, -1, -13, 5, -35, -26, 24, 2, -38, 6, 5, -27, 8, 18, -6, 22, -24, -12, -33, 16, -18, 10, 4, -29, 1, 8, -1, -31, -3, 14, -3, 24, -18, 3, -8, 29, -17, 8, -12, 1, 18, -4, -16, -26, -4, -2, -16, 11, 35, 1, 47, 17, -21, -21, -8, -15, -3, -1, -19, -4, -39, 23, -10, -13, -4, 7, 19, 16, -40, 18, -27, 3, 21, 24, 15, -36, -6, 7, -10, 5, -15, 28, 9, -11, -35, 16, -32, -14, 7, 20, -12, 31, -37, 15, -3, -23, -29, 0, -39, 15, 31, 23, -27, -4, 15, 15, -3, 25, -22, 19, -30, -2, -26, -3, 14, 9, 2, 3, -29, 39, -11, -21, -20, -16, -4, 21, 29, -33, 25, 19, 35, 0, 3, -14, 17, 32, 48, 44, -4, -8, 7, 14, -4, -5, -17, -9, 15, -5, 13, 20, -5, -6, 28, 2, -23, -12, -9, 10, -20, 10, 19, 22, -20, -14, 13, 28, 18, -45, 1, 12, 16, -22, 12, 9, -45, 21, -22, -24, -32, -18, -7, -14, -40, -10, -6, 2, -24, 33, -19, -10, -14, -30, -28, 32, -39, -31, -7, 12, 23, 27, 11, -42, 6, 20, -4, 29, -9, 31, 12, -24, -19, 43, -16, 33, 13, 6, -7, -3, 22, -32, 42, -8, 10, 5, -27, -6, -12, 40, 21, 28, -2, 22, 28, 14, 22, -24, -10, -1, 12, -9, 19, -5, 15, -45, -26, 1, -26, 14, -12, 28, -37, 11, 5, 13, -31, 13, 4, -6, -32, 10, -13, 0, -35, -1, -39, 12, -19, 31, -4, 13, 26, -6, 18, -29, 6, -44, -33, -3, 1, 2, -3, -39, 42, 0, 2, 25, 20, -30, -27, 23, 14, 30, 16, 9, -14, -17, 7, -3, -1, 9, 4, -10, -19, 3, 2, -35, 30, -33, -4, 2, 0, -9, 10, -16, 3, -27, -18, 23, -6, 13, 29, 3, 20, -14, 3, 5, 24, -3, -21, 23, -11, -32, 14, 0, -15, 23, 8, 14, 15, 1, -9, -19, -31, -13, 20, -5, 4, -19, -4, 8, 9, -18, 39, 19, -11, -22, -13, -11, 1, 33, 33, -35, 19, -30, -34, -17, -8, -34, -22, 31, -20, 1, 16, -29, 2, -8, 7, 18, 5, -15, -25, 6, -8, 32, 17, -9, -15, 2, -14, 0, 4, -10, 6, 18, -12, -16, -21, 14, 7, -3, 13, 25, 23, 15, 8, 35, 29, -24, 0, 20, -19, 22, 11, 9, -26, -10, -39, -39, -31, -8, -4, 3, -9, 16, -11, -7, 0, 12, 8, -17, -1, -26, 30, 3, 1, -12, -2, -20, 37, -11, -23, 18, -16, -33, 7, 27, 21, 24, 29, -14, -6, 26, -21, -19, -30, -8, -24, 34, -51, -23, 28, 3, 20, 1, -15, 16, 3, -11, -6, -6, 7, 25, 11, 2, 18, 4, 62, -13, -25, 2, -2, -27, 62, 24, -15, -15, -6, 19, -13, -42, 7, -5, -54, -11, 42, -35, -20, -50, 0, 32, 13, 8, -20, -3, 23, -14, 46, -4, -20, -2, 11, 12, 8, -30, 21, -41, -29, -7, -17, -15, -62, -31, -5, 14, 22, -19, -15, -3, -28, 22, -33, 6, 21, -15, -6, -23, -2, 16, -8, 1, -33, -11, -6, -28, -15, -25, 21, -16, -32, 17, 6, 21, 36, -35, 30, -27, -8, -28, -14, -17, 37, -17, -3, -2, 12, -30, 42, 8, -18, 10, 11, -23, -50, -29, -36, 54, 29, -18, -18, -4, 3, 5, -9, -9, 15, -8, -9, -22, 6, -47, 51, -11, -26, 3, 33, -21, 17, -1, -37, 47, 4, -26, -24, -10, -3, -4, 11, -13, 37, 26, -10, -36, -42, 8, 17, 6, -18, 7, 34, -25, 11, 1, 21, 26, 20, 18, -20, 33, -32, -22, 4, -42, -27, 17, 29, -24, 19, -17, 34, -4, -13, 9, -2, -4, 16, 1, -33, 29, 55, -27, 9, 31, -35, -10, 23, -31, 0, 2, -12, -5, -14, 28, 32, 4, 17, -12, -13, 27, -28, 42, -15, -8, -23, 14, 27, 17, 17, 16, -6, 29, 1, -18, -22, -10, 12, 24, -15, -4, -40, -26, 11, -1, -5, 33, 23, 7, 3, -9, 7, 1, 7, -6, -1, 19, -15, -7, -19, 10, -22, 33, 20, 21, 27, 4, 8, 26, -25, -3, -38, -14, -41, -19, -10, -40, -10, -3, 11, 0, 24, 9, -17, -14, -26, 14, -2, -8, 9, -8, -8, -3, -5, -14, 17, -4, -34, -5, 10, 24, 44, 20, -41, -11, 4, -34, -7, 1, 41, -9, -22, -7, 19, 7, -2, -24, 14, 23, -1, -13, -1, 1, 34, 24, -29, 10, -13, 0, -35, -23, -19, -18, -14, -6, 1, -1, -9, -20, -15, -17, -4, 22, 23, -33, -1, -9, 13, 34, -15, -6, 6, -25, -13, -9, 29, -9, 22, 15, 28, 42, 20, 5, -11, 0, 38, 17, -15, -48, 3, -4, -18, 27, -13, 0, -6, 1, 16, -16, -4, 18, -22, -20, 33, -2, -27, 5, 5, -27, -26, -10, -35, 16, 36, -15, 27, -24, -16, -18, -11, -47, 10, 31, -11, -40, -26, -10, 3, -29, 4, 15, 15, -41, 20, -5, -28, 36, 56, 0, -26, 0, -15, -5, -1, -11, 6, 38, 2, -31, 13, -23, 8, -29, 10, 28, 13, -8, 3, -18, 4, 42, 37, -17, -22, -10, -39, -14, -2, -36, -18, -5, 4, -3, 22, -9, 9, 1, 11, 15, -26, 22, 21, 15, 21, 5, -4, 1, -6, -4, -14, 20, 2, -19, 8, -43, 16, -4, -15, 2, -1, -20, 7, -12, 17, 10, -36, -10, 9, 19, -7, -12, -37, -19, 1, 28, 19, 11, 16, 29, 1, 9, -13, -10, 4, 26, 9, 29, -1, 6, -28, -21, -17, -3, 15, 20, 3, -10, -16, 33, -5, -8, -1, 45, 28, -12, 6, 11, 3, 31, 22, 11, 11, -5, -4, 24, 17, -8, -41, 22, -22, -32, 20, 34, -21, 51, 9, 0, -4, 13, 21, 16, 8, -4, 3, 3, 4, 12, -8, 2, 18, -1, 7, -2, 31, 16, 38, 12, -25, 3, 19, 44, -21, 17, -7, -21, -6, 25, 22, 31, -3, -29, 9, 18, 14, -3, 28, -11, 1, 11, -38, -23, 16, -14, -30, -8, 10, -11, -21, -36, 15, -15, -17, -16, -34, 16, -21, 10, -15, -67, -32, 8, -5, 1, 21, 13, 2, 0, -2, -2, -10, 3, -14, -2, -39, -11, 23, 9, -19, 4, -13, 34, 29, -16, -22, 30, 18, -22, 7, 17, 13, 15, -18, 18, 13, -1, 30, -11, 1, 1, 2, 2, -31, -21, -35, -4, -4, 18, 4, 9, 5, -57, -28, -4, -22, 6, -5, 10, -21, 4, -14, 22, -3, -18, 1, -3, -5, -24, -44, -3, 15, -52, -51, 20, 3, -36, 5, -24, -18, 7, 5, -3, -16, 25, 12, -10, -51, 2, -31, -17, -24, 20, -16, 38, -3, -38, -33, 30, -26, -21, 2, 30, 4, 24, -14, 6, -3, 7, 15, 5, -33, 50, -16, -12, -10, 34, -5, 25, -3, -1, -38, 12, -43, 17, 9, -5, -3, 2, 34, -11, 16, 9, -10, -15, -13, 5, 6, -21, 23, -15, 7, -1, 14, 6, -17, -6, 23, -2, 9, 10, -6, 24, 1, -17, -11, -14, -2, -1, 20, -14, -19, -7, 20, -5, 9, -7, 19, -23, 0, 13, 7, 11, 22, 18, 2, -13, 22, -54, 8, -12, -19, 12, 1, -6, -24, -19, 25, 38, 11, 18, -6, -7, -50, 8, -6, -26, 9, 27, -4, 36, 11, -15, -21, 16, 18, 15, -31, 12, -16, -30, 14, 10, 17, 5, 1, 29, -1, -28, 34, 27, -21, 15, 17, -8, 9, 7, 13, -9, 8, 26, 3, -13, 6, -15, 2, -4, 17, 26, -6, -11, -26, 4, -29, -17, 4, 16, -4, 7, 13, -50, 19, 25, -27, 16, -26, 15, -8, -22, 3, 2, -35, 16, -7, -1, -22, 1, 19, 12, 34, 4, -4, -23, -8, -43, 8, 25, 23, -1, 9, -3, 20, -15, 24, 30, -6, -20, 9, 7, 37, 0, -1, 27, -18, -21, 35, -6, -29, -11, -2, 4, -17, -8, -22, -23, -26, -22, 16, -24, 12, -31, -13, -21, -16, 17, 9, 25, -7, 19, -22, -1, 21, -24, 8, -8, -16, -31, -25, 8, -24, -2, 22, -25, -31, -14, 3, 1, 30, -5, -36, 28, -9, -35, 1, 12, -4, -4, 38, 9, 0, 15, 15, 23, -11, -17, 20, -17, 18, 5, -11, -4, 0, -24, -5, 35, -18, -40, 18, -21, -40, -5, 19, -36, -22, 21, 12, -7, -1, -24, -29, -29, 33, 28, -34, -17, -1, -10, -3, 11, -20, 9, 1, 2, -8, -27, -5, -24, -30, 8, 6, 10, 0, -28, 11, 16, -39, 26, 41, -40, -18, 23, -16, -14, 43, -17, -1, -5, -28, -13, -11, 27, 25, 28, -5, 4, 22, -6, 8, -15, -48, -21, -13, 2, 29, -24, -16, -30, -24, -27, -33, -17, 23, -14, -32, -36, -4, 6, -8, 7, -16, 19, -8, -3, -9, -20, -23, 34, 32, -5, -39, -15, -1, -21, 3, -19, -14, 29, 5, -10, -4, -18, -20, 0, 1, -6, -11, -1, -17, 39, 11, -9, 8, 15, -10, -22, 17, -9, 25, 26, -18, -22, 10, 40, -8, 41, -22, 38, 9, 19, 25, 3, 45, -23, -3, -1, 9, -20, 36, 48, -4, -12, -21, -34, 37, -5, 20, -19, -24, -15, 14, 0, 11, -10, 11, -7, 17, 15, -2, 22, -6, -27, -14, 23, -24, 0, -4, 14, 16, -19, -9, -16, -29, -5, 25, -31, 1, -2, 7, -2, 34, 17, 0, -19, -43, 6, 15, -19, 21, 16, -29, 16, 8, -42, -22, 16, -35, -20, -43, -5, -17, -12, 21, -8, -2, 43, 53, -26, -58, 4, -5, -2, 18, -12, -11, 38, -41, -4, -12, 46, -6, 32, -51, -10, -18, -19, -9, 1, -6, 17, 1, 24, 9, 21, 32, 13, 1, 17, 1, 12, 33, 7, 12, -9, -15, 7, -15, 12, -25, -9, 9, 7, 36, -16, -4, -9, -10, -11, 41, 14, -10, -8, -14, -26, -28, -3, -26, -3, 0, -17, -24, -9, -23, -25, -13, -35, 2, -3, -14, 48, 25, -1, 35, -40, -36, -26, 1, 4, -22, 39, -33, -31, -18, 10, -5, 17, -27, -3, -12, -32, 2, -27, 3, -3, 13, -14, 5, -9, -1, -20, 31, 10, 0, -18, 8, -14, -1, -4, -22, 27, 13, 11, -13, 19, 39, 6, 27, 5, -26, 9, 15, 20, 3, -16, 9, 15, 3, -3, -8, 25, 1, -15, -9, 14, -3, -3, -8, -24, -3, 23, 6, -16, -13, -18, -5, -3, 1, -17, 6, 0, 27, 28, 21, 5, 8, -27, 34, -6, 19, 18, 31, -27, -28, -8, 9, 5, -5, 11, -51, -26, 17, 4, -9, 3, 3, 2, -5, -17, 16, 17, 40, -4, 27, 31, 17, 7, -22, 0, -19, -4, 22, 20, -13, -37, 13, 5, -17, -8, 25, -2, -27, 4, -10, 0, 8, -15, 5, 10, -21, 0, -11, 1, -24, -54, -37, 30, -45, 43, -5, 9, 23, -14, -32, 22, 8, 8, 0, 26, 8, -7, 7, -28, 15, -8, -33, -13, 1, -28, -22, 31, -71, 39, -13, 25, 11, -10, -11, 16, 49, -2, 17, 8, 44, 50, 0, 2, 26, 3, -25, 5, -9, -15, -31, -8, -7, 18, -1, 12, -11, -53, 16, 15, 9, 20, 17, 16, 30, -4, 6, -3, 27, -35, -18, -17, 21, -14, -11, -25, 45, 6, -2, -24, -3, 19, -42, -10, -24, -18, -14, 10, -38, 6, -43, -37, -36, 7, -25, 22, 9, 0, 14, -4, -9, -2, 9, -3, -12, 33, -32, -8, 12, 26, 19, 24, -12, -14, -20, -24, -29, -13, -5, -9, 27, -34, -28, 2, 21, -25, -16, 1, -29, -5, -10, -22, -35, 35, -16, -1, -11, -13, -9, -11, -17, 17, 30, 35, 29, 24, -1, 2, 20, -6, 2, 3, -24, 20, 9, 22, -15, 7, 7, 11, 0, -33, -8, -1, 22, 18, 35, -1, -10, -15, 12, -13, 11, -11, -16, 28, -7, 0, 8, 25, 15, 22, -14, -26, 21, 0, -19, -10, 14, 24, 49, 4, 22, 9, -32, 17, 38, 2, 16, -2, 18, 15, 7, -46, -5, -19, -15, 10, -28, 6, -4, -35, 13, 3, 40, 15, 0, -32, -4, -3, 26, -40, -11, 23, -26, 33, -6, 14, -12, 10, 14, 23, -38, 1, 9, -26, 10, -15, 2, 19, 33, -6, 3, -17, -21, -33, 26, 14, -44, 13, 6, 16, -30, 32, 6, 1, -21, -5, -23, 24, -27, -23, -22, 23, 7, 18, 7, -5, 39, -17, 22, 24, 14, 47, -7, -3, -22, 39, 7, 27, -11, 7, 8, -7, 6, 21, -5, -16, 18, 6, 25, 8, -5, -45, 2, -14, -9, 7, 1, -16, -40, 20, 10, 6, -52, -8, -26, 17, -26, -9, -3, 14, 21, -16, 6, 28, 1, -24, 26, 2, -11, -35, -23, -15, -43, 32, 5, -20, -37, 23, 15, -6, -30, -5, -14, -25, -8, 22, 19, -15, -6, -27, 2, -19, -22, -4, -20, -2, -23, -27, -13, -25, -10, 0, -13, 4, 16, 1, -32, -34, -13, 13, -4, 8, 6, 4, -6, 11, 8, -44, 27, -2, 15, -22, 18, 4, 10, -22, -3, 5, 17, -24, -53, -40, -14, 1, 4, -7, -21, 5, -23, 20, -10, -46, 0, 5, 38, -13, 11, -19, 41, 12, 35, 0, 20, 28, -7, -23, -6, 11, 21, 14, -9, 10, 9, 3, -11, -22, 24, -12, 26, -12, 9, 4, 24, -14, 23, 23, 19, 8, 28, 33, 6, -20, -3, 8, 0, 29, -10, 0, 26, -15, 15, -5, 8, -3, -19, -18, -13, 28, 22, -2, 25, 1, 28, -16, -4, -6, 7, -16, -23, 23, 4, -11, 22, -35, -28, 5, 39, 29, -14, 18, 41, 23, -4, -4, -18, 8, 8, -39, 3, -24, 12, 6, -21, 7, 14, -31, -9, -1, -1, -3, 17, -30, 19, 22, -8, -11, 28, 7, 9, -27, -5, -19, 1, 19, 18, 15, -31, -41, -18, 0, -13, -11, 3, 37, -4, -19, 13, 20, -14, 13, 7, 9, -25, 12, -28, 8, -6, -16, 11, -9, -3, -49, -4, -16, 2, 0, -14, -22, 5, 0, -9, 32, 5, 2, 1, -6, -2, 20, -21, -4, 23, -7, -29, 19, -12, -27, 14, -7, -47, 32, -1, 3, -19, -7, -1, 7, -5, 23, 0, -2, 7, 13, 33, -12, -27, 35, 9, -3, 39, -19, -28, -14, 2, 6, 12, 0, 19, -39, -31, 13, 2, -17, -1, -13, -1, 4, -3, 8, 27, -19, 4, 30, 2, -4, 35, 16, -23, -11, -7, -28, -14, 6, 1, 36, -30, -1, -8, -7, 22, 25, -14, -8, 43, -18, -40, 10, 5, -12, 41, 27, -29, -24, 3, -17, -12, 1, 34, 10, -23, 30, -7, 26, 31, 0, -12, -13, -1, 53, 43, 5, 23, -9, -22, -16, -3, -13, 34, 25, -22, -24, -32, -33, 9, 0, -34, 20, 30, 27, 0, -32, -31, 34, -6, -4, -21, 23, 3, 30, -2, -20, -15, 12, -11, -35, -3, -6, 15, -7, -35, 10, 24, -9, 12, -44, -32, -9, 1, 18, 1, -11, 4, -3, 1, -31, 25, -12, 9, -8, -25, -2, -7, 12, -8, 19, 27, -1, 25, -12, -7, -25, -16, 3, -13, -2, 9, -6, 8, 26, -7, -13, 16, -13, -41, 0, 34, -9, -20, -30, 14, -19, 21, -2, -34, 5, -15, -18, 26, 12, 22, -19, -16, -17, -4, -43, 18, 12, -15, 13, -4, -38, -10, -10, -17, 21, 22, 27, 5, -39, -37, -8, 18, -7, 23, 19, 13, 49, -14, -29, -3, 7, -21, 26, -11, 8, 7, -36, -10, -26, -2, 41, 48, 11, 30, 8, 9, -43, -27, -27, 21, 31, -25, 20, -29, -7, 16, 7, -23, -12, -25, -3, -7, 3, -29, -2, -19, -12, -2, -14, -21, -8, -6, 17, 11, 11, -9, -9, -13, -9, -8, 5, -7, 1, 6, -6, 25, -16, -6, 3, 20, -36, -12, 18, -28, -14, 19, 17, 0, 12, 0, -2, 9, 38, 6, 24, -24, 5, 43, 24, 2, 11, -30, -12, -17, 32, -5, -14, -43, 27, -23, -24, 36, -18, 31, 8, 1, 4, -32, 0, 34, 8, -31, -15, -4, 22, -31, -33, -38, -24, -2, -6, -14, 6, 10, 24, -19, -20, -17, -5, 6, 9, -23, -18, 11, 22, -7, -36, -8, 27, -35, -23, 4, -27, -39, -17, -19, 13, 19, 20, -29, 20, -18, -17, -27, -21, -11, -13, 2, 14, 2, -5, -16, 28, 2, 10, 11, 6, 5, 4, -30, -3, 11, 4, 10, 0, -27, 16, -31, 31, -4, 38, -28, 18, -24, 16, 8, 1, 8, 35, 52, -19, -15, 6, 11, 0, -8, -9, 20, 2, -15, -10, -38, 46, 15, 32, -8, 30, -14, 2, -29, 24, -16, -2, 2, -31, -15, 2, -8, -19, -11, -11, -37, 16, -10, -28, -27, 19, 25, 19, -51, 7, -6, -21, -14, 5, 10, -9, -2, -20, -8, 2, 24, 12, 31, 2, -30, 24, -21, 2, 19, 35, -1, 2, 7, -15, -4, 24, 17, -7, -27, 14, 45, -22, 16, 20, 33, 2, 27, 15, 6, 13, -9, -2, -15, 40, -3, 28, -29, 16, -20, -20, -33, 7, -5, 28, 49, 4, -19, 4, -8, -18, 22, 21, -9, -2, 24, -13, 6, 12, 16, -8, -5, -4, 24, 11, -21, 43, -22, 31, -1, 7, -25, 13, 21, -20, 27, 7, -13, 16, 5, 8, -2, -6, 10, -15, -11, -17, 21, -7, -6, -3, 32, -21, -15, -2, 12, 10, 35, 12, 22, -7, -27, -10, -12, -3, -27, 5, -19, -13, 6, 0, 26, 7, -20, -7, 5, 12, 8, -19, -9, -25, -3, 6, -28, -11, 23, -12, 13, -26, -5, -11, -20, -9, 29, -20, -10, -33, 1, 4, 3, -22, 20, 6, 12, 5, 27, 12, 18, 2, -2, 18, -11, -27, 14, -3, 6, 21, -18, -28, -11, -28, 23, 14, -28, -16, -27, 33, 36, -25, 28, -24, 14, 16, -6, -15, 20, 31, -11, -23, 15, 7, 2, 4, 29, 35, -3, -1, -45, -27, -6, 19, 8, -33, -28, -30, -4, 13, -33, -11, 9, 53, -18, -12, 10, -18, 28, 12, 20, 37, 8, 5, -21, -10, 7, 12, -10, -3, -15, 22, -15, 1, -3, -18, -12, -43, -21, -3, 11, -16, 15, 8, -1, 11, 11, -16, -21, -5, -8, -17, -32, 14, -11, -11, -16, 8, -3, -10, -22, -23, 10, 7, 24, 19, 3, 0, 14, -2, 12, -8, -34, 21, 21, -12, 10, 11, -33, 10, 22, 25, -2, -7, 15, -7, 20, 27, 30, 11, 11, 31, -4, -11, -11, 4, -28, -9, 25, 1, -36, 16, -38, -23, 11, -28, -14, -27, 5, -37, 23, 28, 23, -9, 17, 10, 23, -5, -6, 7, -22, -30, -4, 31, 36, -22, 18, 13, -22, -3, 6, -32, -4, -21, 12, -35, 2, -9, 35, -26, 8, 20, -18, 17, -15, -30, -38, 38, -3, -20, 26, -12, 15, -7, -12, -15, -6, -19, -16, -32, 11, 5, 21, 12, 2, -1, 14, -2, -33, 23, 17, 4, -13, 15, -1, 17, -29, 2, 22, 10, 4, 12, 4, -4, 1, 6, 18, 5, -13, -14, -9, 1, -26, -1, -37, 14, 13, -4, -16, 27, 9, 6, -1, 5, 0, 2, 20, -18, -25, 25, 15, -16, 15, 19, 2, 2, 17, -57, -49, 3, -2, -4, -49, 27, -7, -10, 17, -16, -14, 12, 24, -10, -11, -16, 18, -15, -18, -6, -8, -8, 41, 5, 10, -3, 25, -22, 0, 6, -40, -25, 3, 19, -11, 6, -6, -6, -35, -12, 0, -3, -40, -14, -35, -6, 5, -3, -26, -5, 2, -1, -26, 16, -17, 3, 29, 1, 12, -41, 15, -7, -36, 28, -20, -27, 5, -13, -23, 43, -24, -1, 15, 1, -41, 21, -23, -29, 19, 4, -10, -26, 3, 17, -9, 21, -11, 37, -3, 9, 40, 6, -19, -18, 20, -17, -6, 6, -20, -15, -8, 24, -35, -14, 52, -17, -18, 28, 13, 18, -11, -7, 55, 3, 21, 20, 24, -8, -9, 25, 27, -26, -2, 15, -34, -28, -8, 23, -19, 32, -7, 16, 22, 40, 1, 18, 20, 30, 15, 9, 5, 8, -52, 9, 3, 0, -20, 5, 28, -22, -19, -17, -42, -1, -3, -13, 11, 1, -4, -6, -46, 9, -16, 20, 17, -34, 16, 25, 18, -19, -20, 4, 6, 7, -46, 0, 17, 27, -51, 41, 5, 22, 3, 29, 3, 20, -17, -16, 8, 20, 22, 38, 35, -16, -34, 19, -11, -1, 21, 29, 19, -2, -4, -46, -30, 23, -15, 17, 0, -6, -30, -17, 0, 12, -23, 6, -9, 19, 11, -9, -20, -9, 12, 16, -7, -3, 10, 14, -13, 7, 0, 5, -23, 28, 15, -17, -16, 13, -31, -3, -2, -1, -16, -8, 6, -33, -22, -1, 5, 34, 7, 28, -27, 10, 0, 29, -23, -4, 5, 17, -28, -12, -59, 21, 37, -2, -37, 43, -39, -32, 4, 6, -13, -7, -23, -14, 6, 26, 17, -9, -13, 46, -21, 16, -13, -23, -20, 2, -20, 19, 14, -1, 7, 15, -19, -12, -29, -29, 32, -6, -9, 22, 29, 0, -1, 23, 19, -3, 8, 21, -32, 0, 8, 4, -15, 22, 7, -19, -13, 3, -13, -3, 25, -33, -4, -17, 22, 9, -11, 14, 2, 15, 21, -6, -15, -25, -49, 44, -1, -21, -12, 12, 23, 24, -4, -25, 1, -19, 3, -33, 11, -2, 23, -1, 17, 6, 29, 23, 5, -27, -47, -11, 2, -15, 20, -2, -16, 12, -7, 6, -1, 10, -10, -1, 28, 23, -9, -36, 15, 5, 2, -41, -44, -6, 24, -7, 28, -5, 2, 11, 9, -6, 34, 3, 0, -15, 34, 17, 20, -18, -1, 22, -9, 6, 5, 23, -41, -36, -45, 4, -10, -10, -42, -35, -8, 2, -13, -21, 21, 17, -10, -37, 20, 19, 45, -9, 54, 22, -4, 20, -1, -9, -36, -17, 9, 11, 6, -17, 8, -7, -57, 9, 8, 22, -31, -29, -8, -10, -17, -19, 30, 24, -17, -15, -32, -21, 15, 14, 21, 10, 20, -6, -18, -14, 14, 10, -3, -20, 0, -7, -7, 6, 4, -18, -7, -10, -7, 17, -15, 10, -14, 5, -30, -12, -45, 13, -3, 2, 20, -3, -1, -39, 38, -7, -30, -12, 6, 10, 39, -15, 35, 15, -15, -33, -34, 4, -11, 1, 11, -8, -5, 10, 4, -19, 5, 19, 20, -21, 18, -28, -22, -26, 3, 16, -11, -6, -24, 16, 26, 5, 15, 21, 26, 1, 13, 25, -10, -12, -18, -23, -5, 19, -7, -25, -19, 15, -26, -26, -12, -23, -4, -5, -22, 10, 6, -35, -11, -17, -6, -5, -24, -17, 18, 14, -35, -25, 8, -15, -21, -30, -15, 5, -11, 9, -6, 29, 15, 33, -19, 0, -22, 19, -6, 4, 4, 8, 10, -2, 5, -20, 0, -23, 20, 7, -5, -9, 15, -6, 10, 15, 22, 11, -34, -12, -38, 36, 13, -7, 36, 11, 26, 12, 43, -1, -19, 16, 47, 7, -10, 18, -1, 16, -37, 14, -27, -8, 0, 27, -45, 10, -22, 1, 23, -5, 13, 20, 36, 22, 25, 15, 34, 7, 48, 34, 13, -10, -48, 27, -2, 21, 14, -12, -1, -10, 8, 14, -23, 9, 19, 0, 9, -9, -11, -29, 21, -13, -1, 19, 4, -42, 15, 18, 6, 6, 13, -17, 3, 9, -33, -10, -15, 8, -22, 25, -19, -40, -30, 0, -36, -39, -10, -23, -54, 27, -28, -15, 22, -12, 18, 2, -10, 9, 4, -8, -11, -1, -23, -31, -33, 26, -26, 21, 0, -29, -29, -60, -12, 24, 12, -25, -14, -24, 1, 6, -4, 38, -6, -5, 19, -16, 6, -21, 6, -3, -36, -23, 20, 1, -27, -32, -18, 1, 18, 20, -8, 19, 5, 20, 15, -9, -17, -7, 17, -11, -21, 3, 11, -16, -19, -7, 4, -28, -32, -8, -25, 2, -18, -22, -33, 16, -13, 0, -6, -2, 5, 22, -27, 1, 10, 2, 2, 15, 7, 6, 8, -37, -16, -9, -9, -8, -17, -19, -9, 20, 32, -41, 18, -10, -15, -10, -17, -5, -9, 19, 9, -9, -4, -16, 0, -27, -4, -7, 11, 34, 1, 16, 8, -18, -30, 2, -9, 1, 23, 4, -12, 0, -14, -5, -36, 28, -29, 31, -31, -2, -32, -16, -25, -6, 23, 19, 12, -1, -18, 11, 58, -6, 27, -14, 1, 8, 7, -1, -7, 1, 3, -23, 8, 11, 5, -13, 2, -17, 17, -28, -16, 6, -24, -11, -15, 18, -17, -22, -23, -28, 18, -7, 20, -2, 3, -11, 29, -10, 39, 21, -6, 11, -43, -6, 19, -52, -44, 30, -5, -16, 21, 28, -11, -8, 7, -13, -22, 37, 29, 6, -7, -3, 16, 8, 14, -30, 19, 0, -9, 0, 27, -10, 29, -21, -6, -22, -17, 12, -7, 24, 5, -2, -3, 1, -28, 13, -3, -6, -10, -15, -3, -5, -16, 20, -13, -28, -9, 1, -34, -19, -3, -12, -17, -22, -14, -33, 9, -1, -19, -10, 9, -25, -32, -16, 59, 2, -23, 4, 25, -24, 46, 35, -25, 4, 21, -13, 13, -42, 16, -12, -27, 24, 2, -20, -4, -28, -1, 36, -7, 28, 7, -7, -33, -8, 29, 20, 31, 14, -14, 22, -21, -19, -13, 11, -14, 29, -33, -13, -32, -39, 13, -11, -9, 6, -11, -46, -19, 31, 24, 25, 10, 9, -37, 10, -12, -23, 13, -15, -23, -12, -46, 17, -16, -14, -12, -6, -15, 7, -5, -11, -16, -14, 1, -43, -7, 14, -1, 33, -9, -17, -31, -8, 2, 3, -46, -8, -8, -19, -9, 34, 20, -18, 27, -55, -36, 1, 32, -11, 29, 29, 1, 29, -21, -10, -21, -3, 7, 5, -16, -12, -32, -33, -15, -15, 26, -29, 1, 1, -20, -24, 30, -25, -14, -25, -34, -1, 11, 16, -6, 23, 1, -23, -17, -23, -19, -12, -14, 25, -4, 15, -17, -38, -6, -21, 24, 15, 36, 12, 11, 8, 1, 0, 10, 6, 32, 4, -37, -21, -9, 16, 15, -17, 16, 4, -4, 9, -9, 4, -15, -27, 21, 2, -14, -5, 11, 3, -3, 25, -20, -18, 6, 3, -9, -18, -9, -13, -40, 1, 5, 3, 25, 6, -10, -2, -9, 16, 10, -14, 16, 33, 10, 0, 22, -8, 12, 32, 25, 22, -7, -5, 42, 24, 31, -15, -29, 28, 9, -2, -19, -18, 28, 44, -29, 9, -19, 26, 6, 14, -33, -12, -40, 0, -20, -2, -11, -14, 13, 9, -14, 16, 5, 3, 6, -12, -23, -5, 7, -6, -30, 4, -15, -16, -12, -2, 3, 1, -34, -22, -6, 4, 13, -22, -32, 24, 4, 17, -21, 2, 27, 51, 3, 32, -1, 25, 26, 23, -34, 28, -17, -2, -25, 28, 19, 23, 35, -17, 5, 11, 49, -42, 20, 19, -1, 28, -21, 7, -48, 4, 16, 6, -15, 28, -23, -5, -19, -12, 26, 9, 26, 28, 12, -5, 50, -11, 23, 9, 14, 1, 5, 19, -20, 33, -17, -3, 8, 32, -18, 9, 3, -36, -23, 2, 18, 30, 40, 9, -13, -13, -31, -6, 10, -13, 11, 38, -27, -38, -11, -16, 21, 1, -2, 26, -13, -1, 12, 20, -23, -3, -31, -21, 13, -2, 2, 17, -53, 5, 8, -22, -10, 8, 10, -22, 24, -27, 8, 7, 38, -23, 12, -32, -2, 16, -13, -12, -6, 7, -8, -23, -13, -14, -5, -11, 22, -8, -36, -40, 48, -2, -2, -23, 36, -22, -7, -9, -23, 8, -13, 8, 1, 41, -9, 12, 18, -10, 8, 1, -13, 8, -16, -15, 15, 18, -5, -1, 5, 15, 12, 11, 4, 29, 21, -9, 5, 21, -23, 37, -7, 22, 47, -25, -2, 18, 7, -10, -14, 10, -13, -16, 37, 33, -30, -9, -9, -29, -23, 8, -22, 34, 3, -2, -9, -4, 8, -27, 6, 11, 1, -23, 20, 2, 16, -20, -10, -18, 22, -25, 10, -42, 2, 4, -10, 0, -25, 3, -11, 0, -18, -23, 7, -16, -22, 14, 11, 1, -2, -8, 8, -12, 48, 37, 10, 13, 13, 6, 12, 38, -5, -10, 24, 25, -5, -16, 9, 40, -26, 4, -11, 15, -31, -25, 6, -13, 0, 4, 26, -28, 0, -21, 31, -10, -14, -2, 7, -32, -10, 7, -37, -13, -21, 4, -50, -2, -25, -37, -43, -21, -8, 40, 28, -38, -13, -3, -8, -28, -19, 17, 24, 26, -24, 13, -24, 33, -22, -6, -53, 21, -16, -30, -26, -3, 3, 38, 19, -5, 28, 26, -3, 12, -18, 20, 20, 19, -26, 28, -13, 30, -27, 36, -2, 20, -6, 12, -36, -10, 3, 10, 22, -9, -7, 34, -1, -39, 27, 33, 3, 31, -15, 0, -26, 8, 29, -5, -14, -10, 1, -9, -39, 0, -7, 30, -8, -10, -32, 31, 35, -10, -1, -13, 18, 44, 9, 22, 1, 35, 2, 25, -39, 6, -8, -9, -10, 0, 4, -25, -21, 15, 19, -9, -28, 2, -10, -1, 14, -22, 17, 21, 1, 4, -8, -18, -11, -8, 20, 29, 6, 8, -35, 24, 23, 22, -7, -2, -9, -27, 5, 9, -29, 1, 16, 12, -10, 8, -12, 15, 23, -8, 0, 2, -32, 20, -42, -16, 8, -20, 4, -13, 0, -44, -1, 33, -47, 1, 10, -20, -46, -11, 17, -8, 6, -4, -26, 27, 21, 1, 3, -4, -15, 1, 4, -15, -8, 6, -26, 18, 18, 25, 9, -18, 0, 1, -14, 18, 29, 9, -21, 5, -20, 3, -10, 11, -37, -8, -40, -18, -24, -17, -2, 23, 14, -11, -23, 11, -18, -22, -32, -2, -9, -14, -8, -8, -18, -17, -45, -17, 4, 16, 7, 6, -15, 2, 33, 18, 22, -28, 18, -3, 29, 7, 42, 18, 24, 26, 71, 44, 25, 5, 37, -15, -14, -28, -4, -6, -6, 33, -9, 16, 21, -12, -13, -21, 0, 19, 3, 4, 8, 0, -4, 5, -16, 7, -1, -16, 12, -1, 34, -5, 31, 3, 8, -32, -16, -11, -10, -31, -3, -26, -20, 2, -7, -22, -20, -16, 1, -6, -21, -37, -6, -34, 23, 32, -12, -7, -1, -19, 30, 20, -32, -13, 19, 2, -7, 28, -6, -8, -35, -10, -7, 27, -4, 18, 23, -23, 1, 13, 26, -49, 19, 28, -18, 28, -20, 12, -3, 24, 7, -14, -13, -31, -28, -26, -30, -8, -7, -26, 3, -28, -13, 5, 2, 10, 3, -5, -5, 14, -26, -11, -17, -29, 5, -8, -9, 8, -13, 12, -21, -15, 14, -9, 10, -15, -18, 17, -4, 5, -4, -30, 40, 19, -49, -14, 4, -12, -6, 12, -43, -12, 13, -36, -41, 32, 29, 3, 48, 15, 23, 33, 59, 16, 45, 15, -33, 30, 19, -21, -11, 33, 27, -11, 0, 1, 17, 6, 23, -2, -6, 23, 2, 13, -10, -23, -5, -2, 22, 25, -9, 6, -7, -14, -25, -22, -23, 9, -10, 3, 15, 13, -11, 2, -23, 45, 24, -31, -23, 34, -43, -45, 25, -14, -15, 29, -28, -19, 2, 43, -11, 16, -8, -7, -7, -36, -31, 16, 26, 0, -21, 21, -8, -18, 53, 37, -9, -26, -6, -2, 28, -6, 24, -13, -2, -29, 17, -30, -7, -11, -20, -6, -23, -23, -43, 3, 13, -4, 17, -4, -13, -1, 9, 18, 17, -34, -20, -35, -23, 1, -29, -15, -11, -3, -7, 31, -69, 26, 47, 2, -22, 21, -4, -7, 31, 11, 25, 1, 7, -6, 8, 16, 2, 33, -13, -10, -5, -25, -2, -1, -6, -17, -1, -12, 35, 10, -24, 28, -5, -20, 41, -9, -12, 8, 26, -9, 35, -7, 17, 30, 12, -9, 20, 0, -31, -22, 9, 39, 22, 17, -14, 18, 19, 23, 13, -36, 25, -17, 30, -21, 25, 2, 54, 28, 33, -18, 18, -13, -6, -1, -18, -10, -32, 2, -37, 43, 31, -8, -26, 1, 20, 11, 0, -3, -28, -20, 47, -27, 11, -28, 28, -16, -48, -3, 0, -3, -6, 1, -39, -3, 7, -1, -27, 7, -2, 17, -15, -14, 28, -24, -18, 20, -7, -3, 4, -37, -8, -34, 5, -24, 15, -22, -54, 7, -27, -2, 5, -29, 17, 12, 17, -23, 27, 1, -19, -2, 19, -13, -15, 14, 13, -31, 11, 23, -18, 4, 6, -5, 11, 6, -16, 4, -13, -38, 1, -23, -20, -11, -1, -18, -34, -30, -18, 2, -3, 36, 35, -19, -20, 21, -11, -26, -17, 16, -12, -23, -8, -1, 19, 18, 12, 26, 20, 29, 39, 7, -17, 16, -5, -1, 43, -10, 6, -10, -17, -11, -1, -21, 13, -9, -7, 29, 10, 8, 7, -13, 7, 18, 23, 1, 20, -4, 17, 15, -4, 5, 27, 9, 18, 12, -11, 21, 4, -25, -10, 6, 17, -14, 13, -18, 22, 9, -7, 2, 1, 29, 4, 2, 6, -4, 7, -3, 39, -24, 4, -9, 6, 14, -2, -17, 1, -5, -13, 2, -14, 18, -2, 19, -4, 17, -2, -8, 18, -7, -6, -4, 2, -11, -5, -10, -6, -8, 15, -22, -25, 20, 11, -25, -15, 12, 5, -22, -12, 1, 4, -51, -15, 39, -1, -39, -2, 14, -14, 10, 0, -1, -4, 8, 7, 4, 25, -31, 28, -15, 13, 15, 4, 24, -10, 32, 21, 12, -14, 36, 41, -29, 35, -9, 20, 49, -21, -49, -12, 38, 12, 19, -7, 25, -17, -29, -21, -14, -54, -22, 13, -8, 7, 23, 22, -1, 27, -5, -17, 1, 9, 11, -6, 16, -3, -24, -30, 20, 22, -6, 0, 9, 9, -25, -1, 16, -12, -26, -22, 0, -4, -2, 16, -56, 17, 7, 15, -7, 31, -21, -3, -2, 28, -12, 3, 10, -9, -24, -23, -15, -4, 3, -36, -3, 4, -17, 5, -16, -5, 7, 6, -19, -9, -24, 29, -32, -8, -11, 18, -24, -4, -7, -6, 3, 16, -21, -52, 29, 5, 11, 3, -8, 10, -16, 17, -3, 1, 4, 6, 17, 42, -21, 6, 17, 25, 12, -6, 10, 21, -13, -9, 24, 16, -27, -5, -31, -17, -3, 27, 10, -7, -12, 2, -28, -18, -25, -5, -11, -72, 8, 29, -46, -65, 17, -47, -8, 31, 18, -3, -9, 14, -42, 32, 48, 5, -6, -17, 31, 34, 15, -9, 15, -16, 1, -15, 7, -14, 33, -48, 22, 30, 2, -6, -18, -3, -1, 23, 35, 51, -1, -20, 9, 16, 14, 16, 34, -10, 29, 0, -4, -29, -1, -5, 8, -1, 3, 7, -1, 29, 8, 7, 28, 1, 40, -11, 43, -12, -29, 15, 1, -27, -2, 11, 21, 24, -24, -3, -13, -40, -39, 14, -5, -44, 5, 9, -27, -13, -23, -36, 20, 10, -11, 11, 7, -24, -26, 4, -28, -11, 26, -31, 14, -32, -6, -9, -2, -31, 17, 7, -27, 30, 15, -11, 35, 50, 11, -29, 9, -4, -8, -32, 13, 24, -8, -9, -5, -30, -23, -6, -30, 4, 20, 25, -42, 27, -10, -12, 5, 29, 11, 25, 36, 28, -1, -18, 36, -4, 17, 16, -43, 18, 28, -60, 3, 21, 4, -46, -23, -11, -20, -11, -39, -8, 11, 8, -6, 43, -7, 31, 11, 13, 2, 16, -25, 11, -1, -42, 19, 23, -41, -9, 4, 9, -6, 1, 17, -11, -14, -3, 14, 11, 17, 1, 14, 25, 10, 4, -11, -4, 0, -56, 0, 25, -19, -12, 21, 6, 5, -17, -23, -7, -23, -13, -5, -29, -34, 3, 25, -20, -23, -11, 38, 15, -9, 4, -18, -17, -23, 7, -30, -22, -21, 31, -15, 21, 23, 3, -21, -2, -33, -18, -4, 18, -34, -6, -24, 8, 11, -8, -4, -6, 25, 12, -45, -11, -9, 36, 2, 41, 26, 5, -35, -36, 15, 3, 37, 30, 18, -13, -23, -15, 9, 17, -40, -6, 28, -18, -20, 23, 12, 2, 9, 18, 21, 6, -14, 33, -16, -12, 34, 24, -14, -22, -21, 14, 22, 12, 7, -17, -14, -27, -11, -10, 14, -21, -3, -12, -15, -7, 30, -11, -20, -4, -12, -26, 11, 2, -19, -23, 5, 3, -2, -4, -8, -4, 0, -28, 3, 4, 6, 24, -24, 25, -23, -39, 13, -18, -26, -16, 16, -24, 24, -17, 1, 5, -39, -1, 10, 15, -10, 13, 19, -6, 4, 28, 4, 0, 16, 21, 24, 2, 19, -27, 10, 21, 5, 11, 31, 29, 3, 13, -17, 10, -18, -18, 7, -8, -26, -27, 15, -6, 21, 35, -19, -27, -23, -36, -27, 55, 48, -16, -4, -29, 20, 5, -13, 22, -20, -23, -6, 10, -1, -7, -28, 19, -31, 22, 24, -2, 1, -5, -11, 54, 4, 10, -7, 8, -14, -18, -27, 3, -16, -13, -14, 5, 22, -36, -12, -19, -12, 2, 27, -10, -16, 8, 25, -8, -30, 2, 22, 5, 34, 2, 4, -1, -7, -16, -17, -61, 22, 0, -2, 9, -2, -50, -2, 37, -20, -34, 14, -35, -20, 3, -6, 2, -18, -26, -15, 21, 40, 0, 31, 11, 25, 17, 6, -1, -34, -32, -32, -25, 17, 5, 21, -27, -10, 18, -10, -16, -52, -13, -14, 26, 7, 26, -21, 39, -16, 20, 11, -7, -7, -31, 14, -5, -39, -24, -3, 5, -21, 8, 17, -17, 34, 17, 20, -19, 30, 14, 0, -31, -8, 26, 4, -20, -24, -26, 8, 41, -54, -32, 7, -7, -5, 8, 22, -31, 11, 8, 12, -5, 10, -1, 26, -41, 24, 0, -9, 11, 6, 17, -26, -14, 16, 10, -29, -7, 20, -29, -2, -18, -4, -7, 24, -18, -29, -15, 19, -13, -31, -27, 23, -14, 31, -28, -8, -1, -42, -4, 16, 3, -22, 17, 4, -30, 7, 23, 18, -8, 40, 31, -14, 1, 1, -9, -1, 0, 3, -36, 34, 41, 9, 11, -16, 51, -13, -8, 13, -1, -8, -18, -17, -25, 33, -4, 36, -10, 8, -17, 20, -23, 44, 16, 19, 25, 9, 9, 31, 22, -4, 17, 27, -8, 27, -14, -12, -28, 3, -22, -1, -30, 16, 26, 14, 8, -23, 4, 17, -2, -39, 2, 11, 23, -11, -17, -11, -12, 10, 10, -38, -2, 11, 6, -16, -37, -21, -11, -30, -28, 17, 0, -31, -32, 1, 19, -22, 40, 20, -39, -35, -15, 11, -14, 4, -8, -40, -3, -10, -2, -31, -8, -10, -29, -23, -23, 45, 8, -50, -9, 23, -26, 8, 9, 14, 38, 42, -22, -21, -20, 41, 14, 27, -18, 27, -11, -23, -1, -16, 10, -18, -15, 33, 22, -25, 37, 24, 2, 14, 9, -40, 36, 26, 8, -8, -5, -31, 11, -31, 1, 28, 38, 3, -14, -32, -26, 31, 6, -27, 19, -22, 9, -9, -5, -42, 20, 7, -5, -45, -6, -30, 36, -24, -15, 23, 14, -16, 17, -27, 10, 38, 32, -6, 15, 12, 19, 2, -9, -5, -14, 32, -8, -34, -8, -32, -4, -9, -18, 37, 4, 15, 20, -10, -7, 9, 11, -29, -9, 16, -4, -24, -1, -40, -22, -20, 10, 3, -25, -16, 26, -10, 17, -17, -16, 2, 35, -3, -35, -15, -14, -7, 5, 18, -12, -25, 15, -18, 1, -5, -7, 13, -25, 14, -10, 11, -2, -10, 12, 15, -18, -4, -12, 12, -16, -24, 3, 28, 9, -22, 19, -22, 1, 18, 12, -30, -18, 17, 32, 4, -3, 18, 28, 14, -3, -22, -20, 7, 27, -27, 52, -19, -20, -17, -28, 23, 20, -23, -47, -41, -26, 3, -8, -5, -3, 20, -30, -10, -8, 10, -5, 13, 27, -12, 39, -4, 14, 19, -13, 27, -16, -12, 7, -2, -6, 25, 20, -34, -14, 9, 8, 10, 5, 27, 30, 25, 12, 7, 33, 24, -4, -1, -27, 25, 22, 17, 19, -4, 3, -8, -10, -17, 21, 17, -6, 26, 23, 5, 36, -12, -38, -11, 36, -26, 5, 19, -21, 2, 25, -58, -24, 27, 12, -19, -7, 9, -36, -4, -15, 6, 39, 1, -32, 15, -7, -9, 28, 9, 18, -3, -24, 6, -6, -56, -2, -5, -11, -5, 26, 8, 20, -28, -1, -15, 39, 14, -9, -28, -43, -13, 4, -2, 26, 3, -29, -31, 11, 10, -18, -11, -13, -19, -14, -9, -25, 1, 2, -40, -54, -17, 16, 25, 8, 9, 16, 13, 21, -10, -4, -37, -11, 17, 28, 14, 29, -25, -1, 14, 16, 12, 5, 13, 1, -36, -34, 17, 44, -8, -17, 17, -30, -18, 17, -52, 28, 14, 0, -25, -23, 16, 11, -3, 21, 33, 19, 9, 26, 1, -25, 10, 21, -10, -5, 2, 19, 20, -34, -24, -1, 9, -37, -7, -24, 4, -31, -18, -22, 19, 4, 5, -18, 17, 12, -17, 1, 3, 26, -33, 29, 6, 7, 17, -3, -47, -11, 24, -15, 37, -39, 34, -11, -7, -30, 8, -40, 26, 14, -12, -31, 18, -2, -9, 30, 24, 14, 19, 19, 26, -25, -19, 24, 18, -16, 2, -18, 17, -8, -4, -15, 13, 12, -7, 8, 22, -18, -2, -26, 23, -7, -10, 20, 31, 11, 24, -14, -2, 29, 0, -6, 13, -14, -1, -11, 3, 20, 5, 2, 27, -17, 20, -8, 21, -3, 5, 28, 4, 0, 15, 1, -18, -19, -7, -19, -31, 10, 4, 4, 15, 13, -18, -45, 25, -4, -14, 17, 5, -30, 1, 11, -1, -23, 19, -18, -31, -7, -15, -2, 9, 18, -40, 9, -2, 16, -35, -21, -19, 8, 14, -16, -34, 18, 8, 12, -18, -1, 18, -29, 21, -17, 33, 1, -25, -27, -25, 34, 16, 2, -44, 1, 12, 10, 21, 2, -5, 38, 33, 5, -44, -12, -9, -41, 9, -21, -25, 8, -17, -6, -24, 5, -13, -3, -29, 0, -7, 39, -15, 1, 17, 4, -19, -2, -37, -24, 3, -13, 6, -30, 22, 9, 10, -9, -12, -32, -23, -5, 6, -2, -36, 28, 1, -23, -14, -8, 14, -20, -15, -29, -36, -18, -30, -23, -8, 6, 1, -32, 20, -37, 13, 7, 28, -1, 19, 21, 9, -8, -21, -12, -15, -12, 0, 13, -9, 19, 4, -38, 22, -33, 9, 9, -17, 39, -34, -21, 0, 28, -11, -24, 9, -11, -5, 22, -25, -2, 5, 11, -36, -11, -21, 5, -27, -4, 5, -1, -11, 38, -21, 12, 18, 32, -2, 32, -20, 3, -13, 7, 25, -2, -20, -6, -14, 12, 1, -11, -20, 8, -1, 12, 4, 14, -12, -37, 9, 2, -27, 26, 28, 13, -4, -3, -8, 30, 6, 22, -2, -12, 5, 24, -16, -1, 18, 25, 4, 4, 3, 3, 3, -9, 32, -42, -14, -26, -13, 14, 9, 3, -39, -2, 28, -34, 24, 3, 4, -13, -23, 12, 33, -18, -14, 21, -18, -29, 21, -6, -19, 21, 17, -14, -5, -24, -3, -8, 37, 36, 18, -24, -5, -23, 17, -15, -42, 14, 16, -3, -12, 38, -37, -9, 0, -8, -25, 27, 13, -22, 21, 0, -23, -14, -15, -42, -32, -29, 11, -42, -19, 15, 20, -4, -52, -15, 16, -38, 0, 12, 24, 11, -4, -37, -22, 8, 33, -6, 10, -46, 37, 24, -10, -4, -3, -58, -9, 17, 18, -29, 15, -38, -2, 19, 19, -13, -25, -19, 19, 24, 34, 4, -9, 14, -5, 39, 8, 16, -5, -15, 21, 37, 2, 8, 39, 14, 6, 0, -5, 22, -16, 11, 0, 26, 39, 22, 38, -34, 41, -1, -30, -28, 7, -16, -4, -15, 24, -15, 19, -35, -25, -13, -2, 31, -19, 21, 15, 4, -5, 26, -12, -17, 8, -14, 21, -18, 11, 13, 1, -32, 15, -9, 11, -34, 6, 10, -10, 5, -12, 4, -10, 10, 13, 11, -8, 13, -12, -23, 21, -16, 24, -6, 0, -28, -26, -29, -1, -11, -20, 5, 30, 12, 7, 16, -10, -15, 3, -7, 10, -6, -4, -18, 11, 5, 28, 27, -21, -6, -38, -20, -15, 28, 22, 29, 15, -18, -29, 20, -9, -3, 11, 13, -12, -2, 13, 8, 12, 3, 6, 2, -33, 15, -33, -20, -29, 13, -16, -10, 11, 3, -11, -19, -23, -5, 10, -19, -17, -25, -27, 2, -20, -3, -17, 10, -17, -5, 16, 34, -6, 35, -1, 11, -8, -17, 11, -10, -16, 29, -14, 24, 11, -16, -34, -6, -7, 0, -36, 28, -7, 13, 39, 10, -34, 20, 1, -12, 3, -2, -9, -30, 22, -31, -42, 19, -36, -44, -39, -31, -5, -34, -21, 34, 21, 35, 39, 31, 20, 18, 3, -15, -12, 19, 38, -25, -17, -31, 1, -41, -1, -16, 11, -43, 8, -60, -23, 72, 6, 6, -16, 3, -21, 66, 8, -5, -27, 21, -10, -40, -41, 11, -2, -39, -15, -19, -25, 1, -13, -31, -15, 44, 34, 0, 19, 38, 17, 48, -29, 9, -14, -23, -12, -16, 20, -27, -17, -38, -7, 4, -1, -26, 10, 3, 17, -5, 6, -2, 12, 5, -4, 5, -18, 12, 21, -20, -1, -12, -13, -47, -21, -37, 0, -10, -24, -44, -11, -2, -3, -11, 21, 9, 2, 0, 20, 17, -39, 21, -15, -28, 9, 23, 21, -42, 3, -14, 14, -5, -17, 16, 20, 16, 15, 7, -3, 24, -36, -29, 33, -4, -33, 15, 16, 20, 27, -3, -19, -15, -13, 14, 19, 8, -3, 4, 11, 17, 31, 9, 31, 22, -4, -3, 33, 0, -12, 29, 31, 4, 30, 16, 15, -13, -3, 15, -13, -26, 18, -27, -4, -3, 0, -41, -14, -43, -30, -39, -12, -1, -22, 22, -2, -42, -11, 37, -14, 5, 15, 46, -13, 19, -6, -5, 19, 26, 9, -39, -4, -38, -49, -48, -2, -8, 6, 13, -4, -4, -25, 12, 8, 8, -11, 18, -21, -25, 16, -18, 0, -3, -25, -44, 14, 12, -8, -2, 17, -47, -11, 22, 1, -3, -32, -10, -14, 23, 21, 5, 16, -7, 3, 11, -2, -13, -25, 54, -17, 7, -41, -21, -14, 29, 20, 19, -12, -1, 21, 26, -26, 25, -20, 1, 23, -15, -25, 9, -23, -8, -17, 10, 38, 32, -42, -34, 23, -4, -15, -16, 8, -15, 19, -15, -36, -36, 38, -2, 10, -49, -14, 8, -8, -1, 28, -16, 2, 33, -21, -18, -2, 32, -48, 17, 16, -7, 57, -3, -15, -27, -4, -6, -23, -37, -27, 3, -8, -2, -38, 21, -25, -2, 18, 5, -20, 32, -8, -23, 1, 20, 32, -6, -17, 20, -11, 11, 26, -43, -1, 20, 13, -5, 14, 2, 42, 7, -27, -6, 35, -8, 0, 14, 14, 27, 44, 21, -32, -21, 9, -6, 20, -43, 35, -15, -8, -15, -1, -44, 10, 38, -10, -30, 37, 6, -12, 41, -5, -29, -5, 36, 3, -10, 10, -11, -25, -13, 16, -23, 9, -15, -13, -25, -10, -33, 14, 29, -11, 5, -11, -7, -13, -23, 25, 15, 21, 3, -29, -13, -11, -12, -6, 7, 25, 1, 16, -24, -11, 17, 6, -45, -7, -21, -12, 14, -3, 3, 4, 16, -23, -29, 22, -18, -1, -31, 5, -16, -3, 23, -22, 8, -34, 12, 16, 2, -12, -14, 17, 6, 14, -7, -39, 29, -2, 7, -15, -1, -42, -2, 13, 14, -1, 18, 10, -17, 12, 15, 0, -3, 17, 4, 10, 3, 8, -9, 25, 14, 8, -5, 19, 4, 27, 10, -18, 18, 2, 11, -25, -16, -3, 31, 2, 19, 6, -6, 13, 0, 25, 22, -7, 16, 22, -19, 37, 24, -13, 19, 20, 2, 22, -8, 10, -46, -17, 10, -35, -26, -6, -25, 2, -6, 10, -10, -3, 14, 2, 15, 21, 15, -4, -26, -18, 17, 11, 3, -15, 4, 22, -17, -25, 16, -14, 19, 17, -4, -26, -11, -1, 0, -3, 12, 17, 1, -15, 28, -13, -26, 0, 16, -5, -17, -12, -6, -3, -22, 32, -53, 2, -12, -1, 27, -34, 3, -17, -6, -6, -6, 25, 15, 31, -5, -24, -4, 22, -44, 16, 13, -11, -13, -5, -25, -9, 28, -10, 24, -16, 10, 44, 8, 43, 31, 38, 7, 43, 45, 3, -8, -30, 5, 21, 12, 24, 61, -32, 9, -15, -7, -27, 14, -20, -21, 12, -30, -33, -9, 0, -13, 1, -11, -33, -13, -5, -8, -12, 1, 46, 44, 3, -14, 4, 4, -25, -6, -23, -2, -46, -3, -15, -28, -14, -13, -48, -22, -4, -12, 14, -7, -8, -24, -44, -4, -4, 16, 14, 26, 2, -10, 11, 24, -17, -21, 23, 12, 6, -13, 6, -15, -19, 28} + +#define TENSOR_CONV2D_2_KERNEL_0_DEC_BITS {8} + +#define TENSOR_CONV2D_2_BIAS_0 {-102, -7, -44, 32, 5, -12, -28, -2, 36, -17, -30, 31, -72, -69, -14, 12, 7, 6, -61, -61, 15, -29, -35, -15, -1, -64, -24, -1, -33, -4, 34, -12, -71, 1, 10, -116, -28, -20, -19, -9, -46, -73, 52, -21, 37, 20, -2, -66} + +#define TENSOR_CONV2D_2_BIAS_0_DEC_BITS {11} + +#define CONV2D_2_BIAS_LSHIFT {2} + +#define CONV2D_2_OUTPUT_RSHIFT {9} + +#define TENSOR_DENSE_KERNEL_0 {32, -23, 4, -25, -1, 5, 17, 9, 11, -17, 31, 7, -9, -9, -3, 28, 8, 3, 55, -12, -5, 4, 9, -19, 12, -4, 26, 0, -20, -12, 15, -26, 49, -16, -11, -3, -5, -14, -10, -14, -1, -9, 59, -20, 8, 14, 14, 7, 0, -5, -8, -11, 9, 4, -10, -9, -21, 8, 12, 7, 0, -1, -21, -8, 5, 5, 12, -8, 18, 22, 5, -16, 11, -1, -36, 8, -15, 14, -5, 3, -10, -6, -6, -7, 10, -1, -13, 15, -8, 4, -6, -12, -14, -7, -20, -10, 5, -8, 19, -1, -15, -15, -10, 10, -9, -4, 6, -8, 2, -10, 15, 3, 47, -13, 30, 7, -18, 9, -21, -31, 39, -3, 26, -10, 16, 21, -17, -2, -27, -10, 7, 12, 9, -1, -15, 9, 58, -6, 16, -1, 5, -26, 7, 4, 25, -2, 29, -5, -4, 12, 16, -13, 2, -24, -16, 11, 3, 12, -1, -4, 25, -5, 28, -1, 13, 17, -1, -11, 8, -20, -2, -7, -14, -15, 13, -6, -29, -3, 16, -3, 8, 16, 15, 7, -9, 15, 42, -5, -6, 18, 16, 7, 29, -12, -2, -22, 9, -20, -18, 7, -11, 0, 13, -21, 1, -7, -23, -19, -19, 13, 26, -4, -12, 9, 20, 7, 22, -1, 24, 8, -17, 10, -15, -8, 13, -11, -6, -13, 1, -13, -6, -19, 11, 7, 60, 4, 8, -24, -2, -35, 21, -15, -18, -24, -22, -17, -15, 12, 11, -14, 12, 7, -8, -16, 13, -3, -4, 0, -19, 5, 13, -8, 2, 7, -13, 0, 21, 4, 9, -8, 18, -10, -5, -2, -19, -5, 2, -21, -2, 0, 4, 13, 25, 14, 3, -5, -12, -19, -14, -8, -7, -16, 1, -24, -21, 7, 37, -12, -2, 0, 7, -28, -6, -18, 23, 9, 25, -16, 5, -15, -5, -11, -20, -19, -2, -10, -22, 15, -13, -17, 12, 20, 3, -20, -6, -24, -7, -13, 4, 3, 11, -20, -9, 9, 4, 3, -10, 10, -8, 3, 21, 16, 4, 0, -12, -16, 6, 3, -9, 28, 12, 3, 4, -4, 5, -9, 16, 22, -15, 31, -6, -22, -10, -20, -3, 2, 15, -15, 21, -21, -3, 12, -7, -3, -21, -15, -14, -14, 58, 1, 0, 10, 4, -23, -36, 12, 16, -11, 5, 38, -1, -6, -14, -9, -5, -15, 17, 29, -18, -5, -8, 1, 1, -11, 6, 8, -3, -6, 13, -2, 5, -5, 2, -18, 2, -1, 21, 9, 37, -21, 8, 5, 8, 0, 5, -11, 33, -20, -7, 11, -20, 13, 12, -3, 13, -22, 15, 14, -5, -16, 3, -13, 6, 7, -17, 17, 2, 2, 17, 9, -26, -20, 3, -8, 9, 3, -14, 13, -17, -16, 6, -16, 5, 15, -14, -11, 16, 13, -19, -1, 19, 25, 25, 7, 29, -3, -10, 3, 18, -15, 15, 4, 9, -17, 17, 4, 17, -10, -4, -23, -6, -14, -11, 20, 5, 21, 18, 0, 8, 2, -5, 19, -1, 11, 27, 9, -18, -22, 1, -7, -25, 29, 14, 13, -6, 17, -20, -37, -7, 13, -17, -5, 4, -7, 0, 14, 0, -13, -1, -12, 10, -4, 0, -17, -9, -9, -5, -27, 34, -7, 9, 6, -18, -24, -19, 0, 6, -21, -3, -1, -14, -13, 13, 2, -1, -15, -6, 29, 3, -19, 27, -14, 7, -8, -4, 39, -9, -1, -7, -12, 18, 11, -23, -16, 21, 8, 7, -6, 3, -26, -5, 26, 3, 21, 6, -6, 2, -13, -19, 4, -11, -5, 2, -22, 7, -5, -11, -22, -1, 11, 1, -2, -28, -1, 0, -7, -5, 24, 13, -26, 18, 6, -3, 7, -21, 25, 27, -9, -7, 16, -5, -15, 2, -18, 37, -21, -11, -11, 18, -2, -14, 9, 0, 14, -7, 18, -8, 21, 4, 2, -32, -2, -7, -15, -19, 10, 7, 8, -12, 14, 19, -28, -18, -16, 14, 10, -14, -11, -9, -22, 7, 1, 3, -1, 16, -4, -1, 2, -10, -29, -2, 29, 1, 0, -3, 3, -12, -21, -10, -11, 21, 20, 3, -19, 12, 10, -20, 17, -24, -7, 12, -21, -19, 7, -19, 7, -7, 11, 5, 7, -7, 15, 1, -5, 3, -24, -13, 5, -9, 36, -19, 4, 15, 8, -15, 7, -19, -2, -3, 49, -15, -3, 19, -4, -24, -13, -12, -9, 15, -13, -29, 9, -6, -12, 12, 24, 4, 5, 7, -18, -1, 15, 9, -28, 1, -21, 15, 11, -4, 3, -19, 0, 37, -11, -4, -8, 10, -5, -19, 28, 8, -8, 5, -17, -20, 19, 1, -4, 18, -21, 10, -6, -8, -11, 4, 2, 3, 10, 1, 1, -21, -4, -12, 12, 4, -1, 70, -28, -13, 3, 16, -33, -11, -19, -2, -11, 0, -6, -14, 4, -23, -19, -14, -7, -17, -8, 3, 7, 40, 17, 29, 14, -8, 13, -13, 35, 28, 5, 30, 6, 0, -13, 9, -1, -9, 2, 9, -29, 13, 9, 18, -20, -27, 1, 4, 6, -9, 12, 4, 20, 6, -14, 39, -29, 5, 7, 14, 17, -4, 5, -18, -10, -2, 13, -18, 6, -6, -9, -16, 14, 16, 0, -21, 6, 14, 3, -33, 3, 7, -26, 11, 27, -2, 0, -28, 9, 10, -2, -14, 13, 1, 17, 5, 16, -19, -10, -11, 6, 21, 9, 9, 0, 18, -23, 5, -8, -5, -17, -16, -2, -8, 24, 12, 10, -15, 3, 28, 8, -21, 0, -6, 1, -29, 1, 4, -8, -13, 14, -6, -26, 0, -24, -2, 11, 2, -36, 6, -10, 14, -9, 24, 3, -15, 3, 0, 3, 39, -12, -29, -19, -16, -34, 3, 17, 10, 12, -38, -20, 19, 27, -13, -13, -31, -25, -1, -10, -7, 16, -19, 12, 12, -9, 5, -10, 8, -16, 14, 6, -24, -6, 9, 9, -17, -4, 6, 14, -7, -22, 0, 6, 1, -8, 6, 1, 14, -19, 31, -16, -9, 21, -18, -34, 4, -18, -7, -12, 11, -12, -13, 22, -7, -24, 21, 8, -4, 14, -7, 5, 8, -8, 12, 0, -11, -20, 4, -6, -8, -16, 4, -17, -8, 10, 17, 30, -15, 0, 19, 6, 6, -6, -19, 19, -13, -16, 19, 19, -16, -9, 16, 1, -16, 6, -4, -18, 0, 20, 10, 11, -18, -4, -8, 14, -8, 14, -19, 16, -13, -19, -13, -5, -22, -8, -23, 22, 11, -18, -22, -1, -13, -1, -17, 29, -23, -22, 29, -1, -10, -18, 2, 8, -14, -25, -2, -15, 4, 19, 12, 14, 30, 14, 7, 13, 4, -33, 0, -10, -10, -23, -14, -19, -19, -1, 4, 1, -12, -3, 3, 3, -8, 20, -6, 3, -52, -15, 10, -1, 4, 16, -9, 26, 31, -7, 17, 6, -2, -18, 14, 0, -16, 10, -6, -21, 4, 30, -18, -4, 33, -2, -8, 8, -17, -38, -11, -12, 3, 12, 13, -14, 10, -19, -7, 1, -17, 12, 24, -2, -11, 17, -10, -16, 13, -2, -3, -14, -5, 35, -19, -34, -4, 10, -6, -12, -12, 30, -12, 1, 6, -18, -24, 12, -6, -11, 18, -19, 9, -15, -24, 1, -22, 11, -25, -1, -6, -9, 19, -21, 16, 7, 6, 9, -8, -17, 2, 10, 11, 3, -21, 23, -27, -26, -7, 13, -3, -4, -19, 0, 30, -10, -4, 7, -25, -3, 6, 18, -31, 8, 2, 1, -2, 4, -5, -35, 43, -25, 10, 15, -18, -21, 15, -13, -3, -6, 2, 16, -14, -37, -10, 4, 5, -18, -17, -10, 12, -2, -17, -42, -21, -27, -6, 10, -12, 15, -12, 23, 25, -24, 27, -4, -10, 12, -21, 0, 5, 15, 27, -13, 15, -22, 18, -34, -3, 5, 28, -24, 7, 8, 0, -10, -14, -2, 15, -7, 10, -10, 14, 16, 6, -13, -6, -4, 14, 7, -12, 16, -11, 1, -21, 6, -11, -21, -19, -6, 25, -6, 10, -17, 19, -2, -25, 4, 11, 13, 3, -20, 7, 12, -15, -13, -21, -19, 5, 17, -4, -7, -9, -40, 13, -6, 15, 2, 16, 29, -21, 3, -9, -6, -6, -23, 17, -5, -20, 19, 9, -25, 11, -23, -7, -7, 11, 1, 10, -9, -16, 7, -1, 18, -10, 21, -8, -7, 12, -27, -22, -17, -9, 6, 44, -27, -3, 13, 4, -11, -12, -12, 20, -27, 8, 7, -9, 5, -18, 25, -6, -12, 19, 9, -21, 25, -13, 16, -12, 2, 3, -6, -7, 1, -6, -23, 13, -1, 16, 7, -10, -14, -14, -1, 27, -26, 13, 3, 9, -8, -15, -4, 34, 13, 15, 13, 15, 10, -23, 22, -5, -20, -9, -12, 12, -20, -10, 3, 14, -6, -7, -7, 9, 4, 10, 26, -20, 8, 4, 11, 12, -13, 5, -13, 9, -4, 21, 6, 2, -14, -11, 6, 3, 0, 21, 18, 14, -7, -17, -11, -14, -2, 4, 12, 9, 7, -23, 11, -14, 8, 5, 13, 15, 34, -15, -9, -27, -13, -3, -4, -19, 25, 6, -3, 18, -22, -5, -14, -18, 25, 7, -42, 34, -31, -11, 3, 4, -3, 3, 4, 5, -21, -2, 2, -10, -29, -4, 10, -24, 5, 32, 17, -17, -21, -13, -8, -13, 12, -10, -14, 17, 28, 12, 20, -6, 0, -17, -13, -18, 14, -8, -26, 6, 13, 1, 11, -18, 0, -18, 30, -15, 8, 32, -8, 4, 11, 12, -25, -12, -4, -22, -8, 1, -11, -17, 1, 5, -3, -21, 14, 10, 21, 3, 24, 10, -4, -10, -18, -17, 1, -15, 26, 18, 8, 20, -16, -6, 5, 8, -2, 0, -18, 11, -19, 17, -12, 4, -10, -10, 8, 27, 13, -8, -7, -13, 4, 9, 4, -33, -23, -16, 5, -14, 4, -12, -24, -11, 10, -13, -8, -17, -15, -10, -16, 4, -8, 3, 1, -5, 29, -2, 20, 17, 5, 14, -18, 2, 12, -9, 9, -3, -14, -12, -25, -17, 12, 19, -14, 14, 8, 15, 19, 15, 8, 1, 10, -7, -20, 19, -1, -22, 20, -13, 9, -17, -4, -12, -18, -15, -3, -20, 5, -4, -24, -14, 10, -11, -5, -20, -7, -7, -20, -9, -8, -14, 3, 10, -24, -41, -26, -6, 16, 0, -19, -8, -7, 8, -5, -13, 3, -9, -8, 14, -23, -18, 19, -16, -25, -7, -15, -1, -12, -14, 8, 14, -1, 15, 14, 17, -21, -20, -23, -24, -2, -18, -6, -11, -30, -7, -13, -2, 34, -13, 16, 16, -2, -14, 13, -1, 15, -14, 9, -2, 12, -13, 9, -17, 0, 13, 9, -6, -10, -11, -10, 14, 25, 16, 15, 14, 10, 9, 10, -9, -27, -13, -4, 4, -19, -22, 20, 10, -14, 4, 12, 21, 12, -5, -26, -18, -19, -17, 1, 27, -11, 24, -7, -18, -34, -1, -2, 13, 14, -11, -8, -13, -14, -10, 0, 24, 6, -8, 4, 14, 10, -6, 8, -19, 5, 4, 0, -5, 20, -7, -22, -2, 9, 9, 13, -24, -5, 7, -1, 12, 15, -13, -16, 8, -14, -13, 18, 14, 9, 21, -23, -11, -5, 15, 26, -1, -7, 23, 19, 0, -5, 16, -27, 22, -14, 15, 4, 16, -2, 8, 5, 6, -19, -25, -1, 2, -14, -15, -17, 24, -4, -15, 7, -7, 0, 13, 28, -9, 6, 22, -9, 2, -5, -9, -6, 11, -19, -14, -18, -3, 0, -24, 17, -21, -5, 0, -10, 15, -7, 13, -9, 1, -17, 18, 13, -23, -9, -5, 2, -2, -22, 30, 3, 1, 2, 16, 10, 10, 17, -12, 9, -25, -37, -2, 6, 16, -1, -3, -4, 7, 28, 1, -1, -6, 14, -14, 0, -2, 4, -14, 5, 1, 3, 6, -24, -16, -1, 16, 23, -19, 0, -37, -6, 1, 1, 17, -7, 0, -20, 11, -10, 21, -5, 8, -16, 11, -2, -25, -8, -20, -32, -15, 33, 0, -12, 6, -14, -8, 15, 7, -3, 10, -22, -2, 10, -18, -5, -23, -16, -28, -23, 27, -18, 14, 16, -16, 4, -17, 6, -6, 11, -5, -16, -22, 1, 7, -8, 21, 3, 15, -23, 4, 14, -1, -26, 10, -8, -19, -1, -10, -10, -15, -16, -3, 18, -7, -18, -3, -13, -9, 7, 23, 1, 6, 8, 7, 1, 22, 16, 2, 16, -4, -36, -13, 10, 24, 2, 6, -11, -11, -19, 5, -23, 15, 4, 15, -5, -15, 27, 10, 9, 3, -2, 19, -14, 0, -20, 8, -3, 11, -8, -3, -15, -15, -19, -2, 33, 11, 2, 9, -12, 9, -10, -2, 2, 7, -6, 0, -25, -3, 14, -8, 28, 17, -9, 3, 0, 8, -1, -20, -2, 16, -18, 3, -16, -8, 12, -8, -9, 19, -14, 6, -8, -20, 23, -20, 20, 9, -12, 2, 6, -5, -6, -6, 10, 15, 11, 21, 15, -3, -54, 4, -12, 6, -15, 2, 10, -7, 1, -1, -8, 19, -14, 2, 11, 24, 2, 0, -11, 41, 10, 14, 4, 5, -38, 16, -14, 0, -5, 27, 18, 8, 0, 11, -11, -7, -24, 8, -20, 7, 15, -2, -28, 46, -30, 17, 16, 15, -72, -10, -8, 12, 12, 0, 2, -19, 10, 9, -4, 10, -9, 12, -9, 2, -51, 9, -7, -5, -9, 12, 4, -2, -2, 21, -23, -11, 11, 25, -19, -15, 19, 12, 10, -23, -20, 20, 11, 12, 15, -21, -28, -4, 10, -13, -25, -4, 7, 18, -23, 9, -19, -17, 8, 20, -39, 13, 21, -7, 2, -10, -2, 4, 12, -17, 43, 14, -19, 16, -12, 11, 12, -8, 0, 5, -20, 23, -11, -12, -15, 12, -33, -15, -11, 29, 5, 18, -7, 0, -17, -16, 9, -16, -15, 15, -14, 12, -14, 30, -3, -11, 5, -6, -64, 7, -7, -21, -2, 33, 8, -17, -29, 14, 1, -12, -12, -12, -1, 11, 13, 10, 37, -17, 5, 12, 2, -4, 17, 7, -1, 8, -13, -12, -11, -22, -14, -19, 12, 28, 0, 11, 16, 17, -28, 8, -1, -4, 13, 23, 11, -8, -24, -12, 8, -8, -7, -19, 14, 19, -13, 1, 33, 12, 18, -1, -21, -10, -13, 2, 20, 24, 4, 6, 10, 7, 23, -2, -36, 3, -8, 3, 2, 4, 3, -2, -10, 22, 11, 4, -13, 12, 16, 19, 22, -14, -9, -13, -11, -15, 6, 18, 7, 10, -15, 20, 0, -7, 4, -16, -11, 12, 1, 6, -6, -13, 29, 19, 14, -12, 3, -8, 9, -1, 13, -17, -22, 37, 7, 18, 1, -14, -12, -17, 17, 23, 12, 8, -21, 18, 20, 13, 7, 9, 0, 1, 16, -19, 17, -14, -35, 16, 15, 4, -13, 4, 10, 1, 31, -5, 5, 2, 9, -13, -22, -19, 12, 34, 3, 6, -8, 18, 6, 6, -13, 9, 11, 25, -2, 10, -12, 10, -5, 10, 7, -8, 10, -11, 19, 11, 27, 3, -8, -3, -7, -23, 37, -14, -12, 2, 4, -9, -7, 16, -21, -20, 2, -16, -6, 14, 19, 5, 10, 14, -23, 22, -4, 0, -5, 17, -8, -16, -3, 11, 9, -16, -24, -1, -2, 15, 5, 22, -2, 10, -22, -10, 24, -12, -16, -27, 8, 12, 13, -17, -20, -14, 13, 5, -18, -16, 6, -14, -2, 16, 16, -8, -13, -19, -21, -18, 12, -4, -7, -1, 0, 6, 20, -6, 15, 0, 6, 0, 17, -12, 11, -2, 21, -22, 33, -9, 3, 7, 18, -22, 6, -23, -19, 18, -11, -20, -15, 2, 19, 13, 16, 25, 6, -12, -24, -11, -12, 18, 3, 15, -14, 14, -23, -20, -9, -5, 22, 13, -21, -17, 5, 3, 28, -1, 22, -1, -11, 23, -22, -12, -40, 10, -17, -14, -6, 19, 0, 10, 15, 2, 13, 1, -9, 2, -16, -5, 9, 14, 0, 14, 10, 22, -7, -18, -6, -7, -23, 1, 8, 1, 18, -23, 14, -6, -35, -2, 2, -18, -24, 9, 20, -21, 23, 23, 5, -18, 0, 13, -12, -22, -5, 8, -16, -17, 16, -6, 28, -17, -27, 24, -5, 13, -5, 11, -21, -3, -12, -3, -1, -14, 5, -3, -18, 2, 21, -14, -1, 3, -3, 6, -2, -2, -5, 8, -15, -17, 15, 7, -22, -17, 18, 13, -24, 3, -20, 16, 9, 7, -5, -2, 15, -11, -20, 8, 15, -19, -8, -10, -21, -25, 16, -9, 26, 6, -32, 12, -16, -3, -20, 13, 3, 5, 1, 5, 0, 20, -18, -11, -17, -2, -16, 12, 9, 9, -19, 22, 34, -5, -1, 19, -9, 13, -9, 8, -11, -6, -49, -9, 11, 0, -2, 18, 19, 17, 20, -13, -6, 10, -16, -1, 9, -17, -44, -33, 4, 11, 1, -12, -14, -8, -19, -23, -5, -15, -12, 7, 10, -6, 23, 17, 13, -25, 11, 12, 32, 14, 23, -8, -5, -20, -10, 10, 22, -12, -5, -17, 16, -26, 12, -9, 10, 18, -12, -13, 19, 3, -8, 9, -18, -19, 8, 18, -12, -1, 1, 17, -18, 5, -10, 16, -2, -5, -9, -5, 11, -4, 12, -8, 15, -15, -8, 11, 0, 11, -20, 16, -8, 10, 6, -4, -14, -4, -29, -7, -6, 15, -17, -2, -26, -4, -22, 0, 2, 12, 9, 8, 9, -9, 10, 27, 20, -7, -20, 8, 18, -25, 8, 34, -3, -9, -30, 2, -7, 11, 31, -41, -4, -20, 7, -14, 20, -16, 7, -17, 12, -1, 8, -10, -20, 19, -2, -34, -11, -3, -20, -14, -5, -7, 19, -33, -11, 8, 7, -11, -16, 12, -14, 12, -10, -7, -9, 11, 13, -7, -18, -14, -3, -22, 15, -4, 9, 14, -14, 17, -19, -11, 13, 2, 10, 17, -29, 14, -6, 10, 5, 18, -16, 17, 36, -13, -18, -33, 13, 4, 15, -8, 15, 24, -8, -3, -15, 11, -13, -1, -11, 31, -2, 15, 16, 20, 4, -15, -32, 1, 4, 7, -19, 18, 14, -17, -11, 23, 19, 5, -17, 13, -5, 10, -32, -16, 8, 10, -22, -4, 9, -22, -34, -24, 7, -18, 12, 21, -13, -18, -10, -3, -7, 36, -4, -16, 22, -16, 26, 33, 2, 11, 13, 17, 30, -3, 42, -5, 18, -12, -1, 2, 11, -23, 25, 0, 3, 3, -14, -12, -23, -7, -21, -25, -8, 16, -21, 16, -11, -1, -47, -36, -15, -10, -14, 4, 9, -21, 6, -27, 9, -11, 9, -13, -1, 15, 20, -18, 17, -19, -2, -6, 15, -18, 24, 11, -22, 1, 2, -7, 24, -4, 25, 25, -14, -18, -1, 4, 2, -9, -5, 12, 5, 1, 20, -29, 6, -33, 5, 11, -21, 11, 1, 0, 3, -9, -13, -7, -28, 14, -15, -6, 14, -37, -8, 18, -37, 4, 20, -12, -12, -2, 2, -20, 5, -3, 10, 23, -16, 4, 20, 9, -43, 15, -13, 26, -3, -16, -6, 10, 6, 4, -10, -7, -15, -7, 14, 18, 9, -15, -16, -14, 7, -7, -29, -14, -7, -18, -9, 10, -1, 10, 21, -17, 5, 18, 28, 3, 1, -10, 25, -3, 1, 5, 22, 7, 18, 8, 32, -9, 7, 1, -13, 5, 3, -14, 10, -7, 6, -17, -6, 3, 19, -24, -19, -22, -10, -22, -34, 14, 2, -14, 2, -7, -5, -5, -44, -37, -40, 9, -14, -2, -15, -20, -32, 8, 15, 7, 8, 1, 8, -23, 13, -10, -12, 7, 18, -16, -15, -4, 1, 15, 8, 18, -1, -20, -21, -15, -23, -20, -31, -39, -10, -21, 10, 15, -8, 18, 2, 7, 31, 10, -37, -1, 6, -18, -14, 5, -3, 9, -33, -2, -10, 24, 18, 14, 4, -10, 27, 0, -26, -25, 12, -3, 2, -2, -16, -15, 16, -1, 5, 2, 10, -9, -3, -1, -1, -9, 6, -7, -21, -12, -28, 18, 13, 19, 11, 13, -21, 13, -4, -10, -3, 10, -2, 2, 7, -17, 4, -16, 4, 12, -3, 26, -14, -17, -5, -12, 4, -5, 0, 25, 3, -11, -4, 14, -30, 32, 29, 21, -20, -3, -27, -4, -6, -11, -19, -3, 4, 14, -5, -8, 6, -11, 14, 24, -20, -20, 18, -20, -36, -10, -33, 9, -9, -18, 13, -9, 2, 16, 2, -17, 15, 2, -12, 12, 34, -3, -8, -4, -14, -20, 9, -11, 1, 7, 6, 25, -11, -18, 0, -20, -6, 13, 15, -4, 4, 13, -6, -4, -13, -25, 20, 1, 0, 6, -12, 0, 3, 13, -21, 5, -14, -13, 36, -10, -12, 24, -16, 23, -2, 5, -9, 18, 0, 11, 17, 7, -13, -16, -2, -5, -3, 0, 12, -3, -13, 5, 0, 14, 8, 8, 6, -7, 16, 9, 3, -3, 15, 18, -7, 22, 17, -23, -20, -18, 16, 4, -2, 17, -25, -13, -28, -11, 19, 5, 8, 31, -18, 7, -11, -1, 23, 53, -59, 28, -22, -13, -9, -2, -14, 23, 14, -10, -12, 1, 69, -18, -11, 2, -38, -2, -28, -8, 23, 12, 8, -17, 0, 16, 2, -3, 14, 8, 19, 5, 5, 1, 12, 16, -21, -23, 10, 12, -13, -9, -6, 6, -1, -19, 8, -12, 23, -5, 1, 0, 10, 15, -7, 2, -5, -4, -8, 13, 2, 13, -6, -6, 6, -8, -11, -17, -30, -14, 18, 17, -3, 1, 16, -18, -10, -19, 2, -8, -19, 8, -21, -4, 17, 1, -2, 24, 33, 22, -26, -14, -3, -12, 2, 33, -7, 27, -11, -20, -31, 13, 20, 49, 6, 15, 11, 11, 6, 11, -22, 15, 13, -12, 27, -22, -1, -8, -14, 6, 8, 1, -14, -20, 10, -18, -11, 13, 13, 19, 8, 0, -2, -13, 25, 8, -8, 37, 4, -1, 15, -2, 33, -32, -3, -18, 20, 12, 9, -14, -2, 17, 14, 7, -2, 13, 10, 5, 6, -5, -28, 13, -3, -2, -25, -20, -8, -7, -19, -7, 10, 2, 5, -1, 27, 7, -12, -21, -24, -7, -13, -9, 35, 12, -17, 29, 9, -3, 4, -3, -11, -9, -56, 37, 15, -18, 8, -19, 25, 19, -5, 23, 7, -12, 42, 15, 24, 19, -33, 17, -1, -4, 29, -2, 5, 9, -4, 31, 0, 10, -1, 5, -8, 26, -3, -10, -14, -8, -14, 8, -4, 17, -14, -22, -8, 12, 52, 0, 21, -9, -14, 12, -4, 8, 31, -3, -7, 21, -26, 15, -5, 11, 18, -16, 22, 22, -5, 31, 11, 15, 10, 7, -17, 35, -16, 2, -4, 13, 50, 6, -11, -7, -19, -12, -6, -10, -14, 2, 5, 0, 19, 12, 7, -6, 5, -16, 43, 35, -16, -4, -16, -7, 6, 16, 2, -29, 11, 12, -21, -8, 9, -8, 20, 6, -13, 13, 3, -25, -3, 0, 27, 16, -26, 25, 2, 6, 9, 1, 0, -2, -18, 2, -9, 5, 0, -2, -9, 11, 4, 19, 31, 2, 21, -2, -8, 27, -19, 22, 17, -16, 4, -10, -1, 15, -17, 9, 25, -8, 23, 10, -22, 11, -8, 45, 14, 18, -2, 13, 2, 27, 6, 18, -24, -12, -4, 4, -9, 23, 22, 29, 22, -9, -8, -13, 36, 21, -11, 39, 2, 6, -14, -7, 8, 33, 8, 6, -12, -10, 2, 6, 8, 3, -14, 27, -20, -1, -18, -1, -16, 4, 9, 4, -11, 7, 3, -17, 26, 11, 6, -26, 14, 9, -3, 12, -50, -23, 13, 4, -23, 0, 0, 0, 12, 22, 7, -1, -13, -21, 2, -13, 29, 1, -15, 3, 4, 15, -10, -13, -17, 40, -7, -1, -33, 9, 10, 0, -6, -7, 12, 13, 9, 7, 6, 11, 21, -9, 5, 11, -28, -11, 10, -17, 23, -29, -7, -23, -24, -6, 2, 3, -25, -9, 7, 20, -8, 3, -1, 14, 24, -28, 8, 15, -17, 5, 8, 4, 31, -12, -10, -5, 1, -6, 3, 12, -20, 9, -5, -10, -17, -26, -27, -21, -7, 19, -16, -6, -7, -2, 17, 20, -21, -14, 18, 5, -38, -4, -25, -1, -11, 23, -17, 27, 13, -17, -7, -1, 31, 22, -10, -6, -12, -20, 11, -13, -27, -20, 41, -15, -30, -2, -21, 16, -21, -8, 2, -3, -17, -2, 4, -14, -5, -4, 54, 4, -2, 10, 1, -13, -28, -20, 14, -10, 3, -7, -10, 15, 26, 11, -29, 1, 24, 19, 5, 17, -3, 35, 3, 3, -16, 10, 13, 1, 22, -10, -8, 21, -3, -6, 0, -18, -30, -17, 8, 3, 5, -8, 14, -3, 1, -10, 1, 1, 2, -11, 21, 4, -11, 22, -6, -12, 8, 6, 17, -22, -24, 8, -6, 4, 4, -17, 16, 7, -7, -4, 30, 9, 13, 1, -18, 3, -18, 5, -11, -4, 11, 4, -7, -17, -2, 15, -7, -27, 13, -18, -1, -6, 19, 6, -20, 9, 14, 0, -2, -3, 14, 5, 16, -33, 12, -20, -27, -24, -18, 23, 16, 12, -10, 16, 24, -17, -1, -17, 37, 1, -21, -18, -1, 5, 7, 19, -21, 14, 16, -8, 6, -20, -8, 2, -7, 12, 2, 15, -23, -11, -5, -22, -6, -27, 36, 5, -3, -16, -9, -29, 4, 15, -25, -17, -7, -2, 46, 7, -18, -5, -4, -5, -32, -1, 0, 39, -44, 28, -18, -8, -29, -17, -19, -3, 4, 7, -9, -21, 14, -2, -18, -24, 5, 11, -18, -12, 18, 3, 7, -6, 36, 28, 0, -8, 26, 10, -12, -3, -7, 11, 3, -17, 50, -19, 3, -41, -5, 8, 6, 10, 1, 14, 18, 0, 13, 24, -8, 5, -11, -11, -19, 28, -26, -20, -7, -15, -5, -1, -13, -20, 4, 13, -19, 13, -17, -15, 20, -9, -17, -10, 22, -11, -21, 10, 6, -29, -2, 10, 7, -14, 5, 3, 24, -22, 14, 49, -41, -13, -27, -22, 17, 6, -13, -6, 0, 10, 16, -4, -31, 49, -31, -18, 20, -4, -22, 10, 34, -1, -12, -9, -30, -15, -1, -1, -13, 18, -23, 23, -23, -24, 1, -17, 6, -3, 26, -18, 17, 10, 5, -5, -16, -14, -2, 22, 11, 6, 13, -2, 11, -53, 33, 24, -13, -2, 6, -24, -10, 13, -19, 29, -12, 10, -9, 10, -29, 4, 10, 9, 29, 1, -17, 15, 11, 18, -31, 1, 6, 9, -13, -14, 9, 31, -16, -7, 5, -19, -7, -24, 15, -2, 0, 2, 25, -18, -23, 15, -12, 22, -44, -13, 16, -25, 13, 13, 20, -27, 14, 46, -6, -13, -25, 12, 5, -4, -19, 5, -7, -21, -20, -3, 6, -20, -23, 3, 13, -1, 12, -2, 13, -14, -14, 17, 24, 10, 18, 7, -7, -8, 9, 1, -27, 15, 4, 11, -9, -8, 11, 15, 4, -14, 37, -2, -16, -5, 18, -2, 6, -16, 19, -12, 10, 10, 1, 18, -4, 3, 7, -13, 27, 1, 1, 0, -30, -11, 0, -24, -11, -9, 1, -16, 13, -11, 20, 10, -11, -29, 6, -9, -9, -2, 20, 11, -7, -13, 10, 0, 15, -22, -10, -9, 1, 14, 11, 36, 4, -11, 2, -24, -7, 4, 18, -15, 1, -13, 12, -22, -21, -6, -11, 6, 22, -17, 13, 6, -9, 28, 19, -9, -15, -4, -2, 1, 15, -16, -2, 21, -30, -6, 10, 1, 22, -7, -30, 3, 22, 13, 4, 9, 20, 15, -39, 1, 8, 3, -15, -20, 20, -13, 15, -3, -23, 3, -3, -18, 6, -2, 15, -11, 6, -6, 23, -19, 11, -2, 29, 46, 0, -15, 9, -6, 10, 21, -11, -3, 18, 7, 25, 16, 9, 16, -2, -2, 5, -2, 25, -25, 6, 22, -24, -1, 6, 13, -3, -1, 9, 15, 20, 26, 10, 20, 9, -1, 8, 3, -24, 12, 11, -6, -7, 13, -12, -31, -14, 20, 12, -22, -15, 3, 13, -35, 19, -5, 37, -12, -5, 12, 23, 28, 26, -8, -1, -11, -16, 10, 4, 3, -16, 25, 23, 10, 1, -5, -4, 8, 28, -21, 31, -5, -14, -14, 25, -13, -9, -25, 15, 12, 3, -8, 7, 24, -9, 5, -4, -11, -11, -1, -13, 9, -9, -7, 17, -2, -1, 5, -2, 10, 9, -14, 5, -17, -19, 1, -32, 19, 25, 9, -35, 3, -21, 1, -9, 27, -5, 20, -17, 7, -16, 7, -12, -7, 32, 1, -16, 9, 0, 14, -14, 15, -13, 11, -9, 3, 12, 13, 17, -7, -2, 7, 25, -20, -28, 16, -11, 13, -22, 16, 36, -8, -10, -15, 3, 7, 18, -1, 6, -14, -34, 1, 10, 17, -46, -8, 12, -10, -13, -3, -24, 8, 32, 0, 2, 1, -15, -10, -33, 8, 11, -4, 25, 4, -8, -4, -14, 20, -5, -4, -19, 14, 20, -6, 14, 18, 12, -9, 32, 8, -5, -6, 25, -7, -7, -21, 13, 19, 10, 15, -2, -9, -11, -12, -18, 11, 3, -6, -3, -29, 8, -9, -5, -11, -17, 7, 2, 19, -31, -13, 13, -1, -1, -5, -6, 24, 10, -5, 20, -6, 2, 3, 25, -6, -6, 12, 18, -1, 7, 1, -5, -15, 23, 2, 18, -6, 2, 0, 19, -14, 10, -21, -15, 10, 0, -10, -19, -4, -6, 19, 18, 12, -22, -20, 4, 15, -23, -15, 2, 15, -12, 4, -23, 22, -8, -25, -17, 3, -13, -24, 7, 2, 0, -4, -16, -18, 28, 1, -2, 31, -5, 0, -11, 8, 19, -11, -13, -24, 15, 8, -23, 11, -2, -16, -5, -33, -5, 10, -21, -11, -11, -21, -16, -5, -6, 6, 4, 1, -30, 11, 0, 6, -9, -16, 18, -12, 0, 4, 4, 8, -22, -3, -1, -2, 18, -23, 21, 8, -5, -20, 8, -10, -16, -15, 11, 0, -3, 15, 3, -20, 12, -9, 22, -37, -3, 20, -17, -16, 18, 14, -24, -31, -16, 16, 1, -17, 18, 10, -20, -6, 19, 3, 11, 9, 17, 2, 0, 12, 18, -2, -3, -23, 3, -9, 13, -18, -16, -30, 22, 8, -6, 7, 24, 10, 11, -16, -7, 8, 33, 5, 30, -10, -10, 0, 26, -24, -15, -5, -10, 2, -7, -6, 2, -10, 1, 4, 25, -12, 25, -10, 14, -22, 26, -19, -18, -32, -20, 7, -5, 1, -25, -13, -5, 25, -25, 1, 20, 13, -3, -18, 20, -24, 10, -29, -1, 3, -10, 1, -22, -8, -23, 14, -24, 18, 8, -5, 16, 8, 21, 8, -10, 7, -3, 7, 9, -12, -1, 24, -48, 13, 13, -17, -2, -3, 16, -13, 11, -16, 17, 0, 28, -31, 20, -12, -1, -14, 22, 0, -9, 6, -1, -14, 12, -25, 1, 12, 25, -7, 8, 15, 2, 17, 16, 5, 12, -3, -2, -16, 9, 13, -14, 6, -4, -10, 0, 2, 20, 12, -22, -13, 17, -8, 11, -34, 22, 1, -18, -21, 4, 8, -9, -7, -20, 5, 17, -5, 7, -11, 2, 23, 17, 10, -13, -8, 20, -12, -8, -8, 5, 14, 11, 5, -3, 17, 21, 19, -1, -6, 2, 12, -16, 13, -14, -6, -12, -4, 6, -8, 8, -23, -8, 0, 4, -21, -8, -1, -7, -7, 2, -47, 44, -11, -7, 9, -17, 21, -12, -38, -10, 6, 14, -3, -30, -11, -15, 28, -21, -22, -9, 16, 0, -38, 16, 20, -26, -16, -10, -13, 18, -17, 26, -4, -16, 15, -17, -17, -10, 18, -17, 11, -18, -3, -4, 10, 18, -15, 0, -9, 10, -5, 19, -7, -22, -41, 7, -52, 42, -12, 2, 17, 25, -27, 11, -26, -11, -15, 8, -14, 16, 11, -15, -13, -2, 11, 28, -7, -23, -21, 15, 15, 2, 12, 5, 11, 11, -35, 14, -4, 29, -24, -14, 9, 6, 8, 28, -11, 4, 13, 16, -3, 13, -22, 23, -6, 18, -24, 19, -9, 0, -20, 64, -5, -11, 13, -9, -23, 28, -11, 24, -2, 21, -23, -2, 0, 43, 18, 36, -35, 10, -9, 28, -8, -8, -12, 16, -34, 38, -11, -14, -6, -5, -11, 13, 6, 1, -15, 19, -11, 2, -28, 11, -23, 32, -3, 6, 13, 26, -15, -2, -13, -12, 13, -23, 5, -7, -28, 22, -8, 49, 7, 19, 8, 16, 1, -2, -34, 22, -9, -8, -17, -15, -9, 23, 1, 1, -13, 18, -15, 11, -1, -13, -16, 23, -9, 2, 14, 27, -33, 1, -49, 40, -1, 4, -4, 29, -4, -6, 13, 1, 2, 1, 16, -15, -8, 17, -32, -22, 2, 15, 13, -32, -1, 7, -13, 12, 17, -19, -2, -4, -18, 14, -25, 5, -9, 31, -16, -21, -4, 11, -20, -10, 10, 3, 8, 7, 8, -16, 6, -5, 3, 0, -7, 18, 23, 26, -12, 3, 10, -17, -8, -2, 15, 13, -15, -19, -7, 15, 16, 30, 10, -1, -5, -17, -17, -6, 11, 0, -29, -31, 27, -21, 13, 14, -3, -13, 13, 6, 0, -2, 17, -30, -15, -21, -9, -23, -10, 5, -22, -27, -20, 31, 10, -14, 4, 14, -11, 7, 8, -26, 15, -9, 15, 6, 0, -10, -10, -7, 19, 33, 6, -4, 16, 18, -11, -24, 4, 12, 13, -7, -5, 11, -2, -10, 6, -14, 4, -1, -12, 15, 12, -3, -20, -12, 2, -18, -10, -20, -14, 10, -14, -2, 15, 17, 17, 5, -7, -13, -3, -19, -2, -13, 8, 6, 1, 26, -6, -7, -13, 21, -6, 18, -3, 16, 10, 4, 6, 29, 9, -8, 11, 8, -13, -7, -1, 0, -17, 17, -1, -20, 0, 12, -9, 17, 20, 8, 3, 6, 9, -12, 8, 39, 16, -12, -16, -5, 19, 16, -15, -13, -21, 7, -2, 10, 2, 7, -24, -18, -12, -6, -14, -13, -6, 3, -19, -7, -14, -23, -21, 9, -6, -15, -8, 3, -8, 1, -13, -3, -13, 1, 8, -7, -7, 13, -8, -6, -14, -17, 6, 9, 10, 4, -4, -19, -13, 18, -8, -26, 8, 11, -9, -5, -10, -4, -13, 6, -6, -14, -7, -21, -22, 14, 3, -4, -13, -27, -20, 3, 10, -31, 0, -21, 17, -10, -13, 13, 7, -6, 9, -33, 14, -14, -2, 0, -6, 11, 2, 19, 1, 0, 3, 24, 16, 20, 23, -5, 11, -11, -3, -15, -8, 11, 5, 10, -5, 27, 8, 0, 0, 35, 15, -21, 0, 8, -12, -15, 15, -5, 3, -8, 1, 4, 4, 5, 4, -10, -9, 23, -15, 25, -17, 2, -14, 26, -4, -12, -11, -15, -5, 9, -6, 5, -22, 16, -17, 17, -13, -5, 5, 1, -10, 1, -9, 12, 13, -4, -6, 2, -1, 18, 8, -16, -13, 5, -3, -6, 1, 18, -5, -18, 8, -5, -21, 9, -17, 11, 2, 0, -11, -10, 24, 3, 9, 39, 16, -18, 2, 12, -18, 15, -2, 8, 11, -20, -20, -23, -14, -15, -7, -40, 4, 19, -15, -11, 8, 17, 20, -2, -4, 1, -9, -1, 6, -1, 18, -17, -16, 12, -16, 5, 9, 27, -12, -15, -11, -8, -23, -5, -5, -1, 22, 26, 11, 9, 4, 17, 13, -10, 10, 6, -19, -17, 17, 13, -1, -5, -14, 3, 3, 19, -24, 10, -18, -5, -22, -11, 4, -22, 11, -6, -25, -32, -7, 25, 19, 1, -16, -22, -6, 6, -11, -39, 0, -2, -10, -10, -22, 37, 6, 7, -7, -21, -4, -6, 36, -3, -22, -11, -9, -26, -13, 19, 19, -13, -7, 21, -12, -20, -5, 12, 12, -7, 9, -4, -7, 13, 16, 28, -21, -27, 12, -13, -19, 15, -3, 27, -13, -19, -12, 19, -4, -16, 3, 24, -27, -5, 4, 16, 14, 19, 9, -14, 7, 18, -13, -25, -11, 2, -10, -5, 9, 18, 9, -3, -14, 0, -4, 14, 13, 9, 10, 24, -20, 5, 11, 24, -1, 7, -8, 15, 14, 6, 4, -3, 12, 7, -22, 11, -12, -15, -13, 25, 14, -4, 6, 16, 9, 8, 16, 24, -13, -9, 16, 8, -2, -14, 4, -28, 20, -40, -3, 30, 9, 28, 9, -20, 25, 12, -8, -41, -4, -54, 4, -8, -26, -66, -2, 18, 4, 18, 15, 34, -16, 20, -33, 30, -7, -1, -19, 11, -25, 3, 3, 0, -20, 15, -15, -19, -4, 1, 22, 3, -12, 8, -18, 18, 34, -25, -18, 18, 6, -8, -12, 22, -2, -20, -26, 22, -17, -19, 16, 36, -1, -15, -35, 6, 18, 20, 11, -2, -7, -18, -17, -26, -3, 8, -11, 5, -13, -16, 10, -19, 17, -3, -2, 34, -18, 3, -5, -22, -3, -23, -19, 36, 0, -3, -15, -11, 6, -44, -23, 23, 12, -51, -13, 1, 4, 21, -10, 11, 3, 2, -4, -2, 1, 36, -16, 3, -10, -17, 7, 12, 16, 17, -21, 38, -26, -19, 2, 13, -13, 11, 16, -33, -3, -27, -15, 7, -11, -42, -2, -16, 13, -59, 16, -57, -23, -5, -11, -3, -28, 14, 37, -17, 15, 23, -12, -9, -22, 1, -27, -8, 3, 17, -20, 37, 10, -9, -23, 8, 11, -18, 13, 0, -1, 5, -2, -9, -20, -1, 4, -1, -1, 0, -16, -3, 5, -23, 1, 11, -15, -28, -6, 21, -11, 8, 17, -39, 18, -21, 23, -8, -21, -48, -17, 4, -1, -37, 0, 22, -3, -9, 15, -20, 14, 9, -1, -15, -31, -15, -22, 1, -3, -15, -2, 4, 4, -22, 5, -4, -19, -10, 3, -8, -4, -5, -12, -13, -7, 2, 21, 2, -33, 10, -7, 2, -1, -14, 4, -37, -17, -16, -37, 6, 32, -29, 29, -32, -27, 12, -1, -2, 3, 8, -6, 10, 13, -8, 20, -6, -13, -15, -10, 12, -1, 8, -11, -16, 10, -13, 22, 2, -21, -11, -8, -4, 6, 0, -10, -28, 11, -19, -12, 0, -8, -8, -23, -25, 12, -8, -10, 23, -8, -13, 19, -25, -7, -16, -9, 9, -2, -5, 31, -19, -9, -16, -9, -39, 19, -6, -7, 5, -20, 17, -34, 0, 5, 4, 46, 8, 3, 21, -24, -3, -5, -18, 6, 27, 16, 6, -22, 1, 17, -23, 16, -7, -27, -24, -15, -11, 24, 8, 3, 4, 1, 1, -23, 7, 29, 5, 13, -6, 4, -26, 1, 2, -5, -4, 5, -14, 19, -7, -27, 18, 0, -14, 20, 1, 20, 12, -14, 1, -14, -12, 12, -9, 27, 4, -1, 10, 5, 7, 10, -3, -10, 12, -31, 2, -4, 0, -19, 6, -8, -17, 6, -22, 29, 16, 1, 30, 3, -2, -4, -21, 18, -13, 3, 12, 3, 6, -14, 20, 19, 26, -3, -20, -13, -12, 18, -29, -13, 11, -12, 3, -6, 6, -31, 11, -15, 5, -10, 34, 0, -5, -40, -4, 9, -9, 15, -11, -32, 13, 33, -4, 22, -4, 16, 9, 0, -16, -2, -7, -12, -16, 12, 7, 12, 20, 5, 10, -6, 1, 22, 6, 4, 1, -24, -19, 26, 4, 1, 3, 27, 10, -12, 22, 2, 13, -19, 1, -5, 2, -22, 18, 8, 15, -25, -8, 26, 19, -13, 20, 13, 15, -10, 6, 21, 33, 28, -6, 18, -13, 4, -5, -18, 23, 6, -11, 11, 1, -20, -14, -29, 6, 35, 13, 13, -22, 14, -5, -20, 9, -8, 9, -48, -6, -16, -19, 16, 11, -20, -9, 1, 14, 12, -3, 15, 18, -1, 31, 13, -2, -22, 5, -10, -26, -27, 0, 24, -16, 3, -5, 18, -9, -9, -2, 3, -5, 2, -1, 10, 5, -6, 7, -7, -13, 5, 9, 0, 17, -5, -17, 33, 54, 17, -5, -2, -10, -12, -10, -4, -8, -4, -25, -1, -13, -17, -9, 27, -12, 28, 5, 11, 6, 3, -28, 5, 21, 11, -11, 13, -24, -10, 8, -6, 2, 9, -12, 9, -28, 10, 15, -4, 1, -19, 28, 27, -10, -7, -35, -2, 5, 6, -18, 14, 29, -13, -15, -15, -32, 21, 3, -17, -15, 27, -19, -15, -10, -9, 8, 16, 23, -1, -19, 16, -11, -30, -3, -5, -8, 30, 7, 24, 4, 5, -16, -26, -5, 2, -16, 5, -18, -6, 4, -1, 4, -27, -17, 21, -20, 5, -3, -32, -7, -26, -4, 6, 18, -20, -11, -11, -20, -18, 24, -11, -18, -23, -10, 19, 2, 4, 13, -22, 13, -1, -10, 4, -13, -2, -13, -2, -24, 0, -9, 7, -17, -22, -9, -13, -18, -9, 7, -42, 8, 11, 12, 0, 17, 28, -23, -4, -2, 13, 5, 10, 7, -28, 39, -6, -35, -5, -15, -11, 22, 11, -14, -3, 3, -46, 27, -11, -2, -25, 11, 27, 0, 3, 0, -11, 4, 0, -4, 13, -1, -34, -19, 6, -8, -8, 15, -16, 5, 10, -13, 34, -15, 18, -2, 21, -4, 3, -6, -11, 4, 23, -24, -32, -2, -6, 14, 27, 17, -14, 4, -32, -5, 4, -8, -1, -2, 46, -6, -30, 2, 16, 6, 35, 11, -23, -12, -2, 7, -3, -24, 28, -8, -17, 6, -39, -27, -14, 16, 18, 16, 6, -37, 9, -30, 7, -4, 26, 48, -16, -15, -30, 3, 16, 9, 15, -11, -26, -29, -19, 29, -23, 6, 14, -21, -19, -6, -16, 22, -5, -15, 53, -6, -17, -8, -29, -16, 18, -15, 39, 5, 2, -29, -10, -32, -29, -15, -11, -9, 5, -19, -19, -12, -3, -20, -6, -8, 42, -20, 5, 3, -7, -22, -11, -12, -2, 1, -15, 8, -11, -1, 22, 12, 32, 0, -18, -22, -26, -22, 11, -3, -6, -30, -3, -2, -25, -17, -6, 16, 7, 15, -28, -1, -14, -12, 0, 5, 18, -19, -12, 11, 5, 7, -5, 4, -33, -6, 11, -23, -16, -35, 1, 1, 17, -5, 2, -8, -12, -44, 15, -6, -16, -4, -17, -26, -20, -34, -8, 6, 12, 5, 10, 11, -16, -25, -9, -16, 55, 33, 9, -18, 11, 15, 6, 10, 2, 8, -17, -14, -29, 2, 26, -22, -1, -9, -7, -2, -10, 2, 15, 15, -24, 18, 0, 5, 7, -5, 13, -12, 7, 3, 16, -12, -46, 2, 13, -18, -4, 5, 7, 35, 8, -9, 1, -13, 10, -7, 20, 0, -14, -21, -4, -13, -8, 17, 1, 8, -13, 32, 3, -18, 15, -24, 2, 3, -9, 3, 10, 9, 3, 18, -13, 1, -18, 4, -16, 22, -11, 22, 8, 3, -7, 1, -9, -5, 13, 21, -17, -14, -10, -6, 0, 10, 1, 0, 13, 9, 20, -8, 3, -31, -12, -15, 21, -18, -3, 9, -30, 3, -29, 0, -9, 28, -10, 2, 12, -11, -20, -29, 3, -5, 10, 12, 24, 4, -23, -13, -6, 8, -22, -3, -3, -8, -11, -26, 13, 25, 0, 33, -2, 14, 6, -21, -10, 12, -2, 4, 4, 13, -29, 16, -3, -7, -15, -21, -14, -10, 12, 16, 14, 9, -23, -19, -30, -15, 2, 12, -6, 44, -1, -6, -27, -11, -20, 6, -11, 12, -10, -8, 7, 13, 8, -1, -21, -22, 6, 2, 24, 38, -30, 6, -4, 42, -27, 3, -25, 31, -15, 2, 6, 3, 12, 18, -18, 3, 1, -36, -8, -18, -5, -9, 33, -4, 21, 6, 26, 26, -22, 13, 2, 4, 14, -2, -15, 0, 45, 19, -5, 12, -9, -13, -15, 9, 4, -9, -14, -27, -17, 16, -5, 5, 8, 19, -7, 11, -5, -8, -4, -28, -23, 0, 5, 1, 8, -1, 27, 0, -12, 16, 22, -6, -7, -4, 3, 0, -4, 26, 6, -20, -13, -9, -2, -7, 0, 12, -1, -7, 12, 6, 8, 25, 16, -7, -28, -11, -20, -11, -19, 6, 23, -7, -22, -9, 26, 12, -4, 31, -8, -12, 10, -21, 22, -6, -22, 22, -13, -10, 11, 0, -8, -20, 27, -17, 23, 16, 0, -16, 10, -18, -10, -8, -27, 29, -20, -10, -19, 0, -5, -1, 11, 12, -15, -14, -10, -5, -25, 28, 0, 12, 7, 33, -20, -21, -9, 10, 24, -17, -10, -6, 20, 6, 28, -15, 30, 10, 22, 12, 19, 6, 35, 27, 17, -13, -4, 22, -9, -26, -21, 26, 5, -7, -15, 21, -10, 21, 8, 10, 17, 1, -3, -16, 2, -34, -26, -21, -16, -9, 13, -9, 24, 6, -6, 18, 28, -11, 11, 10, 17, 13, 25, -2, 6, -11, 14, 2, 22, 32, 9, -19, -27, 13, 38, 2, -33, 0, 7, -2, -8, 15, -16, -5, 18, -14, -28, 7, -8, 6, -8, -11, -18, 38, 10, 1, -13, -39, 27, 19, 2, 3, -35, 21, 6, 17, 26, 16, 0, -25, 5, -24, -21, 16, 13, 29, 6, -19, 12, -30, -9, -23, -5, 13, -19, 25, 5, 3, -29, 32, -21, -4, 3, 22, -9, -28, 13, -2, -25, -14, -16, 52, -8, 31, 0, -25, 4, 9, 21, -15, 5, -9, 4, -12, -31, 15, 12, 19, 11, 8, 13, 4, 1, -18, -22, 27, 24, -24, 3, 5, -6, -17, 9, -6, -10, 4, -6, 5, 6, 22, 1, 7, 0, 8, -32, 48, -18, 8, -45, -7, -2, 11, -8, 31, 26, 34, -19, 16, -4, -22, 13, 5, -10, 2, 27, 12, -27, 5, 36, 12, 1, 16, -7, 1, 11, 8, 15, -21, -9, 47, -29, 29, -18, 11, -15, -14, 26, 10, 12, -20, -18, 7, -17, -30, -8, -14, 21, -1, 33, 8, 0, -27, 9, 7, -33, 50, 0, 27, -4, -33, -15, -10, -11, -8, -19, 3, -9, -12, -12, 8, 33, -10, -21, 33, 27, 1, -14, 7, 16, 1, 7, -13, -11, -5, -13, -1, -14, 2, 3, 16, -5, 0, -2, 1, 10, -15, -46, -7, -34, -12, -4, 18, -3, 18, -14, -15, 8, -6, -1, 26, -8, 21, -3, 6, -17, 36, -28, -20, -17, -15, -5, -5, -6, -35, 19, 37, 9, -17, -10, -10, -23, 9, 31, -22, 19, -16, -30, 7, -9, 25, 7, 50, 37, 1, 4, 24, -20, 5, -8, 4, 34, 10, -19, 14, 8, -12, 35, 10, -15, -5, 11, 11, -13, -25, -30, -13, 23, -7, 18, -6, -13, 6, -2, -6, 6, 0, -25, -1, -24, -24, 10, 25, 47, 24, -27, 4, -27, 11, -6, -26, -25, 17, -1, 8, 13, -13, 12, 6, -15, -4, -17, 25, 15, -16, -7, 12, 27, 16, 17, -5, -5, 6, -9, 16, -23, 3, 2, 10, 0, -16, -16, -23, -16, 25, -5, 17, 8, 3, -19, 19, -31, -12, -11, 15, -14, 3, -5, 22, 15, -19, 5, 11, 6, 15, -4, -22, 34, -18, 14, 22, 2, 13, 21, -25, 17, 7, -8, 12, -1, 2, -13, -3, 17, -19, -8, -3, 24, 9, 11, 30, -39, 23, 29, 13, 5, 12, 28, 1, 1, -1, -20, -11, 10, 8, 22, -8, 13, -16, 11, 31, 5, 17, -1, 20, 6, 1, -47, -30, -4, -3, 1, 18, -16, 21, -10, -13, -4, 2, -5, 6, 39, -13, 0, -1, -5, 21, -24, 3, 22, 21, -9, 13, 11, 7, -20, 13, 6, 0, 25, 16, -14, -10, 8, -6, -10, -8, 22, -15, -14, 21, 19, 8, -2, 10, -5, 4, -4, 4, -21, -1, -10, 2, -4, -37, -7, 5, 17, 6, -34, 14, -20, -13, 24, -27, -16, -4, -15, 6, 8, -18, -8, 23, 2, 10, -5, 7, 12, 7, -12, 0, -10, 12, 2, -21, -1, 36, 30, 20, -2, 7, -27, 17, 15, 19, -23, 14, -7, 16, -8, 1, 36, -13, 12, 8, -20, 17, 7, 14, -15, 16, 4, -26, 20, -23, -17, -8, -7, -6, 11, 29, 10, 18, -20, 10, 17, -11, 19, 25, -5, 15, 5, 11, -20, -11, 21, 4, -16, 12, -27, 10, 2, 18, -4, 11, -26, 8, -25, -17, 21, -21, 1, -8, 15, 19, -8, -6, 16, 25, -4, 20, 19, -8, -29, -14, -23, -22, -1, 14, 9, 5, 2, 8, 8, -17, 3, -14, -6, -10, 49, -15, 0, 0, -19, 12, 6, 7, -1, -23, -20, 10, 2, 9, -6, 35, -28, 3, -9, -10, 7, -39, 8, -4, 19, 9, -11, -26, -4, -15, 35, 5, -22, -6, -21, -3, 20, -21, 10, 8, 35, 12, -17, -26, 14, 2, 2, -28, 21, -5, 11, 13, -7, 11, -22, 19, 1, -3, -20, -10, 18, -4, -3, -20, -2, -18, 11, 0, 1, 5, -8, 10, -18, 0, -5, -11, 17, -11, -21, 15, 4, 18, 19, 19, -13, -2, 16, -21, -1, 18, 5, 2, 7, 4, 16, 6, -1, 9, -8, 4, -23, -25, -1, 4, -14, -23, 17, 9, 11, 12, -9, 0, -7, -44, 6, 11, -16, -4, -16, 1, -7, -2, 22, 40, 3, 1, -13, 4, -39, 0, -11, -28, 14, 20, -3, -17, 17, -6, 29, 25, -21, -10, -15, 10, 5, -25, 7, 20, -20, 8, -32, 17, -22, 3, -15, 17, 19, -12, -11, -2, 16, 15, 5, 25, 14, 17, -29, 5, -28, 14, 0, 15, 9, -27, -19, 3, -16, 0, 24, 19, 18, 2, 6, 2, 16, -21, 2, -17, 14, -18, 23, 15, 1, 40, 5, -11, 6, -3, -6, 14, -11, 1, -27, 7, 15, -19, -17, -5, -2, 2, -13, 21, 14, 11, 23, -13, 3, -4, -7, 7, -2, -22, 1, 11, -13, 15, -14, -16, 18, -20, -17, -11, -8, 19, 26, -19, 9, 21, -6, 11, 24, 2, -10, -38, -3, 14, 8, 19, -18, 1, 1, 4, 9, 7, 22, -17, 10, -19, 15, 2, -7, 3, 23, 1, 2, -2, -21, -4, 6, 23, -19, 0, -19, -29, -9, -7, 19, -40, 10, 9, 13, -3, 13, -12, -14, -30, 25, 11, 8, 24, 18, 14, 2, -7, -11, -23, 23, -13, 6, -3, -20, 24, 3, 16, 1, 4, -4, -6, -2, 13, -10, 11, 34, -15, 20, 13, 14, -47, -1, -12, 33, 11, -6, -16, -4, -13, 4, 26, 19, 15, -1, -7, 17, 23, 0, 24, -15, -13, 3, -17, 2, -11, 9, -6, 36, -8, 17, -18, -3, 12, -12, 17, -6, 17, 7, 9, -12, -1, -37, 29, -9, 4, -34, -12, -38, 20, -19, 26, 8, 15, -5, 26, -11, -12, -2, 19, 3, -26, -4, 13, 16, -5, -19, 13, 22, -20, -14, -4, 10, 24, -14, 21, -8, 17, 21, 0, 11, 28, -11, 10, -1, 10, -1, 30, -8, -2, -15, -14, -6, 1, -38, 15, -22, 31, -43, 40, 4, -1, -15, 11, 8, -3, -15, 23, -22, 26, -23, 19, -17, 15, -19, 5, -21, 16, -20, 10, -34, -8, -17, 17, 5, 29, 19, -8, 1, 28, -19, 4, -10, 11, -4, 6, -23, 1, -3, -3, -12, 13, 7, 15, -5, 3, -14, 17, 6, 1, 5, -28, 15, 12, -26, 27, -20, -27, 33, 36, -14, -1, -9, -27, -12, -4, 9, 19, -15, 8, -3, 2, -3, 4, -25, 26, 15, 32, -13, 13, -30, 25, 15, -13, -15, 19, 19, -3, -14, -3, 1, 34, 15, 5, -7, -13, -24, 5, -4, -12, -16, -25, -37, 18, 12, 3, -5, 5, -32, -6, -31, 26, 8, -2, 2, 14, -10, 6, -9, -2, -27, -30, 17, 21, 12, 19, -25, -16, -21, -3, -2, -24, -5, 6, -2, 18, -11, -2, -37, -7, 28, 4, -6, 7, -14, -18, -12, -4, 15, -32, 19, -13, 19, -8, 15, 32, -4, 3, -18, -14, -16, 24, 16, -14, 21, 15, 26, -25, -10, 14, 22, 18, 7, -15, -46, 55, -2, 6, -17, -16, 0, 9, 12, -17, -12, -1, -6, -31, 0, 24, 22, -12, -6, 20, 4, -18, 21, 3, -13, -5, -9, 10, 22, -9, -6, 4, -11, -16, -26, 16, -7, 10, -23, -7, -26, -11, -20, 18, -5, -17, -12, -7, 13, 20, -7, 23, -17, 20, 3, -23, 13, -2, 8, -6, -11, 1, -26, 18, 0, -7, -22, 14, -18, -23, -24, 32, 28, 4, -18, -2, 40, 6, -1, 7, 16, -1, -9, -8, 6, -3, -4, 2, 13, 7, -31, -9, -6, -8, 7, -17, 19, -18, -13, 11, 3, 2, 19, 3, 8, -3, -5, 12, 14, 1, 32, 22, -1, 25, -21, -12, 16, -6, 5, 21, -3, -15, 2, 9, -24, -2, 18, 37, -24, 7, 6, 29, 14, -24, -33, -14, 6, 1, 15, -30, -16, -7, -11, 14, 19, -12, 6, 17, 7, 1, -18, -15, 15, 20, -14, 0, -22, -5, 13, -22, 14, 13, 23, -32, -7, -21, 23, -8, 14, -1, 34, -8, -28, -28, -19, 28, 24, -36, -17, -8, 11, -3, 5, -7, 0, -26, -23, 8, -20, 46, 9, -18, -5, 31, 11, 5, -2, 5, -9, -6, 19, -8, -9, -7, -4, -21, -40, -14, 0, -20, 30, -14, -11, -13, 12, 3, 22, -13, -39, -15, -31, -19, -6, -2, 14, -20, -2, -13, -17, -34, 27, -16, -13, -31, 28, -12, 15, -1, -15, 1, -11, 17, 17, 19, -49, -18, 17, -8, 33, -36, 21, -7, 21, 14, 21, -12, -19, 16, 25, -14, -8, 16, -21, -12, 8, -10, 7, -12, -2, -32, 7, -33, 37, -16, 4, -21, 21, 12, -48, -57, -7, 10, 6, -54, 33, 3, -10, 1, 4, -6, -10, 13, 1, -17, 21, 5, -4, -13, 2, -17, 14, 2, -11, -1, -24, -22, -12, -29, 0, -30, 4, 11, -12, -31, 9, -16, 11, -4, 24, 7, 24, -6, -14, -6, 10, -16, 12, -35, -1, -6, 11, -23, -9, 7, -3, -14, 14, 0, 19, -1, 8, 2, 23, 14, -14, 5, -2, -7, 17, 26, 3, -5, 14, -7, 20, -3, 6, -1, -8, 24, 3, -12, 10, 29, -13, -41, 17, 15, 30, -54, -40, 18, 2, 17, -17, -4, 6, 2, -5, 10, -5, 17, 14, 9, 28, 22, 7, -30, 19, 10, -21, 15, -20, 24, -47, 24, -17, -15, 19, -40, -31, -1, 14, -30, 4, -22, 12, 6, -2, -22, -27, 3, 0, -5, -15, 1, -22, 32, -11, -7, 6, -5, -6, -10, 41, -1, 9, 17, -3, 18, 5, 0, 4, 0, 22, 16, 14, -17, -7, 8, 39, -47, -6, -30, -1, -12, 5, -19, -10, -13, -15, -14, -3, -15, 5, 24, -8, -37, -16, 15, 9, 6, 15, -22, 31, -17, 27, -18, 15, -5, 4, -25, -11, -4, 10, -45, 17, -21, -12, 11, -12, -1, -19, 0, 21, -41, 6, 16, -8, -37, -22, 11, -11, 20, 17, -44, 2, -7, -6, -34, -17, 5, 1, -27, 24, -8, 7, -34, 2, 14, 0, 8, 25, 4, 12, -10, 11, -14, -7, -14, 0, -38, 26, -24, 22, 19, -13, 10, 28, 6, 7, -18, -2, -24, -10, 0, -19, -13, -16, 5, 10, 26, 16, -27, 4, -2, 4, -13, 4, -16, -3, -8, 19, -21, -4, 23, -6, -24, -2, 51, 42, -3, 19, -7, 25, -3, 15, 13, 4, -11, -5, -1, 2, -6, 12, -5, 7, 1, -29, 20, 24, 8, 7, 24, -26, 4, 2, -15, -12, 2, -11, -2, -24, 17, -15, -2, 3, -14, -2, 11, -18, -13, 13, -9, 1, 2, 6, -9, 7, -12, -8, -4, 5, -1, -3, -16, 13, 26, 3, 33, 5, 3, -4, 17, -21, 14, -7, 15, 12, 18, -22, -3, -25, -29, -24, 16, -4, -12, -1, -5, -30, 2, -14, -14, 7, 8, -4, 15, -6, -27, 13, -3, 14, -23, 2, -14, -1, 28, 11, -20, 13, -18, -9, 48, 20, -17, -8, -36, 20, -19, 3, -20, -26, 7, -6, 3, 9, -17, -22, -9, 25, -13, -1, -7, 5, 2, 10, 18, -14, -19, 23, 0, 10, 22, 16, -26, 5, -42, 2, -12, 18, -6, 30, -4, 24, 25, -24, -17, 1, -5, -9, 15, 11, 16, 4, 17, -9, 19, 9, -7, 16, 2, -21, -19, 14, 19, 10, 9, -19, -2, 10, 28, 7, -15, -2, 1, 7, 0, -4, -20, -6, 8, 21, -11, -21, -16, 2, 14, 29, -1, 11, 9, -10, -17, -16, 18, 14, 13, 24, 5, 4, -8, -14, -21, 30, -3, 11, -2, 8, -21, 14, -52, -4, -8, 10, -13, 10, 3, -14, -26, 4, -5, 19, -5, 1, 24, -7, 4, -4, -21, -1, -7, 8, -7, -7, -23, 15, 17, -4, 5, -4, -4, -3, 43, -13, 2, -12, 18, -11, -4, -6, 26, -11, -19, 4, 4, -14, -4, -9, 2, 11, 16, 0, -2, 10, -25, 11, -13, 12, -15, 18, 7, -10, 8, -21, 8, 26, 6, 33, 5, -12, -9, 13, -53, 22, 10, -7, 19, 2, -11, -1, -45, 14, -5, 10, 8, -7, 18, -23, -12, 10, -14, 28, 2, -7, -43, 17, -25, 8, -8, 46, -5, -1, 8, 6, -3, 24, -2, 16, 7, -13, -4, -20, 16, 5, 15, 0, -17, 6, 8, 20, 13, 2, 13, -6, 8, 10, -22, -19, -23, 20, -19, -2, -23, 5, 5, 9, -2, 15, 8, 14, -9, 4, 2, -17, -4, 1, 12, -14, 15, 16, -5, -4, 11, -14, -7, -13, 5, -13, -19, -17, -11, 20, -22, -14, -5, 8, 0, 7, 10, 3, 15, -21, 1, -9, -2, -25, -26, 16, 6, -13, -2, 11, -7, 8, -12, 1, -3, 14, 16, -5, -40, 8, -36, 24, 20, -10, 10, -20, -35, -27, 19, -10, 6, -13, -12, -6, 0, 11, 0, 9, -16, -13, -9, 11, -30, 10, 19, -8, 13, -6, 7, -14, 0, 8, 10, -17, -17, 1, -5, -2, 5, -2, 19, -4, 20, 25, 0, -9, 21, -18, 8, -5, 11, -2, -21, 14, 6, 7, 19, 15, 9, 22, -9, -1, -17, -24, 6, 25, -3, 12, -10, 17, -36, 17, -4, -17, 11, 13, -11, -14, 2, 3, 2, 24, 16, 10, -10, -1, -24, 13, -3, -5, -22, 14, 15, -7, 20, 12, -10, 19, -9, 2, -15, -3, 2, 5, 11, 2, -10, -5, -14, -10, -18, -20, 11, -7, -21, -5, 1, 4, 7, 9, 4, 22, 3, -12, -17, -6, 13, -21, -10, -9, 11, -3, -21, -11, -10, -14, -14, -12, 10, 11, 15, 7, 11, -9, -23, -16, 14, 3, -15, 3, -12, 5, -36, -15, 15, 8, -4, -1, 7, -10, 13, -7, 9, 2, 15, 6, -11, -11, 8, 11, -19, 5, 12, -17, -13, -7, 28, -6, -8, -1, -19, -12, 31, 7, 2, -5, 18, 15, 14, -3, -5, 14, -8, 5, 5, 14, 1, -1, 14, -8, 16, 12, -9, 9, 9, 15, 22, -11, 3, 7, -16, -22, -9, -20, 11, 12, -10, -19, -7, -5, 3, -7, -10, 6, 29, 0, -8, 24, -5, 6, 5, -18, -25, -13, -17, 33, 5, 8, -22, -18, -15, -23, -11, 13, 1, 1, 9, 8, -6, 2, 15, -15, 10, 10, -3, -1, 12, -28, 7, -24, -9, 19, 28, 18, -19, -7, -24, -31, -17, 0, -14, -16, 4, 14, 21, 15, -19, 7, -30, 8, 6, -15, 8, 19, 5, 8, 15, 6, 13, -27, -4, -6, -13, 6, -10, -17, -7, 6, -1, 20, -19, 15, 5, 7, -34, 7, -25, 18, -1, -18, -19, 14, 10, -18, -11, -8, -11, -21, 11, -12, 4, -14, -9, -6, 10, -6, -32, 7, 15, -17, -22, -20, 13, -18, 5, 9, -6, -28, 14, -21, 14, -6, 5, -6, -33, 6, -3, 0, -22, -3, -9, -5, -29, 8, 15, -9, 3, 10, -4, 11, -6, -30, -22, -2, 7, 19, -5, 5, 18, 6, 12, 2, -12, -1, -10, -8, -4, 12, 14, -14, 17, -18, -27, 3, 3, -26, -2, -4, 8, -7, 3, 6, 11, -23, -1, -8, -17, -21, -1, -3, -3, -6, 0, -10, 15, -12, -29, 19, 9, -26, -11, 27, -17, -3, 10, 20, 8, 7, 8, -1, 4, -13, -11, 17, -16, 13, -6, -35, -15, -21, -5, 9, -12, 17, 2, 25, -21, -18, -20, -7, 2, -13, -23, -7, 4, -8, -7, 15, -13, 7, -11, 27, -9, -7, -7, 0, -16, -17, -15, 6, -6, -14, 23, 9, 18, -11, 7, -27, -15, 3, -10, -2, 6, -10, 3, -19, 15, 9, -11, 7, -18, -15, -10, -9, 12, 6, 9, -3, 9, 7, 5, 19, -21, -5, 16, 3, 47, 0, -17, -22, -23, -14, -13, 6, -19, 13, 2, -16, -20, -3, -3, 7, -31, -13, 17, -5, -18, 11, 30, -8, 18, -3, -23, -3, -2, 17, 15, 10, -24, 6, 17, -13, 13, -21, -29, 2, -49, -11, -10, -3, 9, -8, -13, -5, 30, -7, -4, 50, -11, 14, 24, 3, -69, 9, 0, 34, -16, -15, 21, 8, 0, -5, 3, 12, 3, -20, 17, -14, -8, -10, 0, -2, 6, -1, -63, 20, 10, 8, -15, 17, 18, -17, -16, -1, -43, 15, -2, 10, -19, -8, -14, 14, -9, -4, -9, 5, 14, -20, 36, -7, 23, 15, 2, 18, -17, -9, 22, -1, -30, 12, 2, 7, -9, 7, -2, -10, 0, -12, -23, -13, -11, -6, -11, 16, 24, 0, -15, 18, -4, 10, 1, -1, 8, -10, -18, -17, -20, 14, -10, -9, -17, -5, 12, 12, 18, 8, 22, 13, -7, -3, -11, -18, -11, 5, -30, 3, -25, -8, -24, -1, -12, 2, 24, 0, 19, -19, 7, 7, -15, -10, 23, -1, -26, 2, -24, 0, 0, 1, -11, 19, -15, 5, -12, 6, -4, 2, 6, -2, 7, 7, -15, -3, -16, 9, -1, -8, -6, 25, -8, 0, -19, 0, -32, -12, 5, -5, 3, -2, 7, -5, -30, 3, 18, -20, 2, 9, -24, -5, 22, 9, 16, 9, 15, 9, -16, -19, 10, 5, -61, -19, 10, 5, -1, 3, 17, 1, -7, 5, 7, -5, 12, 3, -18, -5, 28, -14, -9, -2, -19, 0, -2, -2, -32, -32, 8, 9, 8, -13, 7, -2, 7, -42, -4, 3, -5, 5, -21, 12, 11, 2, -15, 13, -5, -17, -4, -6, -35, -6, -23, -13, -8, -23, 17, 4, 13, 19, -23, 7, -15, 12, -7, -15, 9, 2, 15, 20, 13, -3, 13, -11, -29, 14, -1, 1, -10, -22, 26, -24, 5, 21, 9, -16, -6, 2, 20, -12, -13, -16, 9, -13, 6, 13, 2, -11, 8, 10, -21, -15, -18, 6, 9, -13, 40, -12, -19, 17, 2, 5, 14, -4, -33, -10, 2, 3, 11, 3, 5, 9, 20, -1, -4, 5, -12, -15, -57, -7, -10, -19, 14, -10, -20, -20, -2, 14, -26, -15, 17, -18, -13, -16, 29, 18, -6, -11, 7, -7, -23, -16, 33, -2, -8, 12, 1, -14, -8, -12, -3, -20, -21, 10, 11, 10, -14, 7, 33, -27, 27, 70, -7, 9, -12, -16, -26, 4, 4, -11, 0, 23, 5, -12, -13, 6, -12, -33, -22, 9, 14, 10, -10, 1, -9, -11, 14, 31, 18, 13, 0, 8, -11, 16, -15, 1, 9, -20, 20, -22, -20, -6, -9, -20, -7, -22, -1, -13, -23, 3, 15, -3, 7, 18, -41, -17, 8, -43, 8, 25, -10, -13, -34, -19, 28, -9, -17, 19, 6, -16, -15, 11, -36, -19, 8, 3, -9, -21, -19, -26, 21, 5, -18, 13, -10, 1, 8, -20, -11, 14, -17, 8, -1, -21, -9, 4, -43, 14, 5, 1, -1, 0, 3, 16, -21, -7, -16, 20, -13, -19, -13, -5, -25, -4, -23, 35, 5, -6, 20, 0, -17, -5, 13, -1, -5, -14, 10, -7, -11, 6, -4, 14, -4, -11, -27, -5, -17, 18, 17, 27, -14, 3, -19, -25, -1, 11, 9, 15, -7, -13, -4, -11, 2, 13, 1, -11, -24, -12, -10, 3, -7, 22, -3, -20, -24, 2, 7, -2, -13, 12, -20, 21, -14, -19, 4, -7, -23, 16, -20, 25, 0, -16, -35, 11, 30, -13, -1, -12, 4, -11, -7, 5, 0, 3, 18, 22, -11, -23, 11, 11, 3, 30, -18, -9, -23, -20, 27, 3, 13, -3, 15, -7, 15, -13, -16, 15, -12, 27, -9, 13, 22, 9, -29, -4, -36, -18, 13, 22, 11, -13, -19, -13, -29, 18, -4, -10, -7, 6, -13, -5, 6, -12, -3, 8, -12, 11, -43, 3, 23, -26, 1, -11, -17, -9, 23, -18, -21, -12, -3, -8, -21, 21, -19, 7, -35, -5, -16, -11, 17, -13, 16, -9, 12, -13, 15, 16, -10, 0, 1, -17, -16, 19, -7, -31, -12, -18, -26, 6, -30, 18, -23, -22, 17, 13, -5, -10, 23, -12, 6, -38, -20, 18, -11, 17, -14, -14, -4, -11, 14, 3, 8, -21, -21, -13, 16, -20, 2, -16, 11, -4, -10, -25, -3, 1, -1, -14, 3, -16, -21, 5, 0, 26, 7, -7, -12, 1, 11, -6, -13, 1, -22, -6, 4, 9, 8, 6, 1, -14, 0, -4, -2, 17, -6, -21, -1, -1, 3, 5, 10, -19, -10, 19, -8, 38, 14, 4, -21, -12, 21, 20, -1, -14, -10, 11, -13, -9, 11, 29, -4, 22, 0, 1, 10, 8, -12, -23, 20, 5, -19, 20, 10, -2, -32, 30, 4, -14, -2, -15, -21, 14, 5, -6, 9, 16, 16, -14, 11, 5, 12, -20, -2, -15, 1, -9, -27, -22, -6, -8, 6, 9, 10, 13, -12, 4, -4, -16, 2, -11, 11, -7, -20, 2, 7, 17, -18, -8, 3, 21, -8, -8, 2, -23, 15, -22, 18, 15, 2, 19, -26, -18, -1, -22, 2, 10, -6, -15, 0, -2, -1, -3, -14, -22, -18, -8, -8, -1, 7, -14, -1, -13, 4, -16, -40, 6, 4, 14, 17, 14, -6, 11, 16, -1, -1, -16, -14, 6, -19, 17, -17, -22, 7, 2, -5, -6, 15, 1, -21, -3, 15, 19, 16, -15, -13, 19, -24, -4, -24, -7, 9, -6, 7, 7, -8, -1, 10, 23, 11, 3, 1, -11, -2, -6, 17, -3, -7, -2, -6, -10, 19, 6, -19, 3, 3, 1, 16, -23, -16, 21, -7, 8, -1, 0, -6, 15, -6, -15, 12, 4, 15, -9, 6, -15, 3, 46, 8, -2, 14, 8, -10, -9, 33, -5, 12, 21, -18, -2, 15, -15, -19, 9, -1, -7, 3, -9, -13, 20, -7, 28, 0, -2, -21, -21, 1, 8, -7, -16, -9, 5, -15, -19, -25, -18, 19, -21, 19, -6, -17, -18, -18, -15, 19, -17, -14, -21, -12, -12, 5, -11, 8, 20, -13, 5, -16, -7, -4, 15, -32, -7, 7, -7, -18, -18, -7, -4, 6, 6, -18, 9, 4, -11, 9, 4, 6, -4, 15, -4, 8, 19, 2, -8, 5, 3, 11, -21, 7, -16, 9, -10, 35, 8, 11, -13, -2, -17, 15, -4, -43, 23, -20, -7, -5, -15, -12, -11, 5, -3, 8, 0, -3, 11, -3, 9, 28, -5, 10, 22, -23, 7, -7, -19, 16, 19, -24, -12, -19, -12, -2, -26, 11, -26, 9, 5, 7, 10, -8, 4, 0, -9, -15, -16, -24, 15, 3, -11, 5, 9, 10, 28, -13, -15, 14, 8, -17, 26, -10, 15, -4, 5, 8, -6, -11, 13, -6, -1, -12, 10, 4, -16, -8, 5, 14, 14, 7, 0, -14, 4, 21, -6, -23, 0, -15, -27, -19, -19, 6, 3, -8, -9, -7, 8, 9, -1, 15, 3, -23, 7, 13, 2, -15, 7, 3, -23, 6, 34, 9, -23, -12, -9, -2, 30, -21, -12, -12, -17, -11, -16, -14, 30, 0, 3, 5, 11, -2, -10, 15, 11, -1, 28, 17, 1, -27, -7, 29, 8, 8, 15, -18, -12, -8, 15, -1, -23, 14, -12, 17, 4, -9, -10, 14, 6, 1, -33, 5, -25, -17, -1, -15, 10, 3, -12, 0, -18, -6, 13, -11, 57, 7, -29, 11, -2, 10, 15, -6, -7, -6, 6, -19, -19, -16, -20, -10, -17, -19, -26, -15, -10, -9, -1, -14, -15, -8, 12, -14, -21, 4, 16, -21, -14, 5, 18, -10, 11, 3, -4, -12, 16, 5, 16, -24, -9, -3, -9, -14, 0, 5, 13, -2, 11, -32, 2, 20, 7, -6, 23, 13, -16, -8, -22, 7, -4, 0, -25, -11, 14, -22, -20, 10, 0, 16, 36, -22, -18, 3, 15, 16, 1, -18, 12, 10, 9, 16, -5, -2, 3, -4, 17, -12, 8, 23, 13, -13, 19, 8, 26, -9, 6, -18, 3, 15, 4, 5, -24, 17, -19, 3, -11, -4, -15, -12, 41, -14, 17, -12, 11, -18, -2, -15, -7, 13, 14, -12, -22, 8, 17, -2, 12, -1, -15, -30, -17, 3, 0, 19, 14, -11, -5, -6, -8, 1, -20, -11, -9, -22, 0, 5, -23, -8, 17, 16, 23, -6, 3, 3, 11, -19, 23, 16, 26, -22, 13, -1, 19, 6, -12, 7, 16, 2, 6, 9, 10, -11, 31, -7, -8, -3, 19, 2, 10, 6, 27, -19, 18, 15, 1, 17, 21, -22, 15, -13, -19, -4, -7, 17, 2, -22, 16, -12, -12, -24, 11, -21, 15, 14, 52, -10, 0, -3, -7, -15, -12, 21, 25, -6, -7, -7, 12, -17, 8, -22, 6, 5, 26, 4, -6, 19, -13, -15, 26, 5, 41, 13, -17, 22, -10, -13, -1, 3, 3, 7, -10, 1, -2, -33, 20, 16, 56, -15, 20, 2, -18, 1, 8, -11, -3, 6, 2, 7, -12, -9, 31, 16, 4, -16, 14, -19, -9, 19, -23, -1, -12, 8, -17, 31, 1, 35, 27, -2, -11, 17, -20, -15, -15, -30, 3, 10, -7, -8, -16, -25, -1, -8, 9, -4, 12, 2, -1, 12, -18, -3, -3, -5, -4, -8, -12, -7, 2, -5, 28, -8, -21, -13, 8, -3, 11, 8, 25, -16, 5, -10, 8, 9, -11, -39, -3, 3, -13, 1, 3, -3, 5, 11, -31, -8, 8, -17, -16, 20, -13, -3, -15, 14, -7, 5, 3, -18, 12, 4, 9, 15, -9, 14, 6, -4, 20, 10, 9, -8, -2, 3, -3, 5, 12, 8, 4, 18, -27, 7, 6, 6, 7, 6, 23, -6, -5, 13, -3, 0, 18, -19, 6, -5, -9, 0, 12, -32, 8, 19, 2, -18, -5, 9, -5, 12, -23, 1, -1, -19, 9, -6, 0, 23, -10, -37, 6, 0, -36, -14, -4, 1, 4, 16, -24, 3, -24, 9, -15, 14, 2, -27, -33, -14, 27, 4, -7, 6, 2, 15, -12, 11, 18, -22, -14, -26, 14, -10, 13, 4, -14, 7, 8, -22, 20, 18, -1, -5, 0, 6, -15, -9, 15, -3, -3, -17, 20, 13, 9, 1, -15, -1, -4, 17, -37, 9, 6, 18, 9, 0, 38, 14, 9, -19, 14, -19, -13, -6, 3, -4, -30, -1, -8, 1, 17, 24, 14, 16, -23, -3, -20, -20, -13, -4, -10, 8, -3, -7, -14, 1, 12, 32, -15, -11, 0, 0, 8, -13, -19, 7, 25, -13, 22, -3, 2, -7, -12, -2, -13, -8, 38, 17, 1, -1, -11, 12, 44, 6, -10, -19, 12, -1, -4, -19, -4, 3, -26, -20, -11, -11, -11, -8, -1, 6, -3, 17, 13, 8, -9, -15, 41, 12, -1, -20, -4, 11, 13, -16, 34, 12, -12, 15, -2, 24, -16, 23, -8, -17, -10, -22, -13, -1, 10, 19, -24, -11, 28, 17, -6, -16, -6, 16, -6, 4, -16, 15, -16, 3, -12, -35, -30, -18, 29, 0, 16, -3, 3, 29, 20, 4, -20, -23, 0, 6, -17, -10, 33, -19, -5, 14, 17, 21, -12, -18, 58, -20, -3, 20, -7, 17, -17, 0, 8, 9, -2, 19, -19, 5, -22, 16, 54, -18, -4, -17, 9, 23, -17, 2, -19, 8, -17, 6, -1, 4, -2, 3, -26, -21, 11, -7, 5, -11, 4, 17, 8, -3, 48, -19, 0, 30, -13, 25, -11, -8, 33, -20, -7, 30, 2, 30, -16, -14, -35, 15, -2, 2, -4, -8, 18, -5, 5, -6, 5, -2, 10, 6, -15, -4, 18, -8, -25, 25, -13, 16, 25, 14, -12, 18, 2, -9, 0, 13, 18, -3, 2, 0, 5, 10, -6, -17, 2, -6, 41, 1, -21, -7, -21, 6, 9, 18, -18, -5, -17, 6, 11, 14, 9, -9, -25, -5, -23, 20, 6, -13, -17, -4, 8, 18, 8, -15, -1, 10, 1, -6, 2, -21, 6, 0, 19, 25, 29, 4, 20, 8, 4, 5, -21, 0, 62, 2, -10, 3, -13, 28, 12, 4, -1, -18, 3, -19, -9, 16, -2, -10, 7, 0, 38, -14, -18, 23, 18, -23, -30, -7, 2, -9, -9, 10, -14, -11, -24, -12, 46, -19, 10, 10, 15, 8, -1, -6, 26, -20, -13, 9, -5, 16, 44, 0, -9, 19, 15, 1, 14, 23, 18, -5, -29, -1, -9, 1, 1, -8, -1, 0, 18, 7, -18, 3, 21, 13, -17, -4, 19, 5, 12, 14, -2, 2, 8, 17, -5, -18, -6, 17, 0, -18, 22, -14, 76, 10, -1, -7, -4, 23, -14, 5, 14, 7, -1, -5, 13, 18, 10, 11, -21, 14, 8, 26, 15, 9, 10, 14, 21, -14, -10, 11, -1, -3, -20, -12, 18, 4, -18, 22, -10, -1, 21, -16, -6, 6, 5, 10, -22, 24, -3, -2, -20, -5, -17, -14, -10, -2, 0, -4, 2, -17, -1, 1, 2, 34, 10, -14, 11, -24, -8, -2, -11, -9, 10, -11, -14, 5, 21, 32, -16, -8, 36, 16, 5, -12, -4, 22, -7, -1, 19, -16, -9, -19, 8, 6, -8, 13, 14, 12, 43, -6, -12, -5, 7, 28, 23, -19, -15, 5, 14, 13, -2, -6, -29, 7, 41, 9, -19, 5, -20, 28, -10, -18, 21, 11, -12, 1, 7, 13, 3, 17, 7, -14, -15, 37, -13, 16, -29, 13, 5, 7, -7, -6, 9, 24, 2, 8, 3, -20, 3, -14, 0, 2, -4, 19, 5, -4, -9, -8, 20, 24, 12, -3, -21, 19, 0, -6, -8, 4, -20, -18, 28, 5, -6, 8, 16, -3, 1, 9, 7, -10, -19, 37, -3, 4, -2, 18, 6, 19, 17, 20, 11, -44, -14, -16, 4, -14, -20, -40, 10, -31, -12, -11, 0, 3, 10, -14, -14, 8, 34, 0, 29, -14, 12, 12, 3, 23, 9, 3, 0, -12, 5, 2, 15, 26, 9, 3, -12, 2, 20, 54, -5, 16, 40, -19, -8, -8, 13, 38, -1, 12, 23, -14, 5, 17, -10, 11, 18, -7, 0, -6, -18, 10, 10, -16, -17, -27, 5, 15, 1, -24, -4, -32, -5, 8, -23, 47, -5, -26, -46, -8, 4, 11, 8, -3, 6, -7, -13, 19, -18, 9, 7, -22, -18, 72, 13, 30, -39, -2, 9, -20, 15, 15, 13, 3, -20, -5, -5, -16, -3, -26, 8, 17, -9, 13, 17, 2, -18, -23, 30, 42, 2, 47, -6, 14, 2, 9, 5, -9, -23, 29, 12, -23, -9, 22, -18, -14, 17, 0, 15, 23, 22, -31, 1, -2, 12, 14, 2, -28, -17, -7, 25, 7, -8, 11, -7, 6, -15, -31, -12, 12, 23, 13, 1, -30, 9, -7, 21, -18, 9, 6, 6, -9, 10, 18, -2, 27, 5, 1, 8, -18, 14, 8, 18, 3, 16, 28, 7, 16, 23, 8, -1, 15, 18, 33, 5, -10, -17, 10, 13, -1, -31, 37, -2, -32, 5, -22, 23, 11, -3, 15, -8, 11, -4, -8, 8, 14, 25, 25, -5, 36, -14, 34, 1, 20, -39, -7, -5, 9, -3, -36, -5, 16, 25, 23, -3, 19, 20, 22, -4, 10, -12, -15, -13, -11, -14, -15, -11, 7, 7, 8, 6, -19, -19, 19, -13, 12, -7, 6, 13, -26, 1, -10, -13, -5, 0, 24, 6, 14, 3, -13, 1, -2, 24, -16, -11, 0, 17, -9, -2, -2, -8, -15, 3, -3, -21, 16, 10, -12, -16, 21, 12, -3, 7, 5, 9, 22, -13, 2, -3, 21, -17, 15, -16, -4, 0, -14, -3, 15, -11, 30, 4, 22, 5, 22, -21, 42, -20, -19, -41, -12, 5, -13, -21, -17, -6, -18, -8, -7, 8, 18, 10, 6, -21, 5, -5, 6, -11, -14, -23, 17, 9, -8, 22, -12, 5, 35, -19, -12, -12, 20, 18, 4, 11, -18, 18, -17, -11, 9, 8, 7, -10, 25, -15, -10, 7, -29, -27, -5, 9, 25, -9, 31, -8, 20, -26, 5, -19, -6, 15, 27, -18, 10, 22, 5, 0, -25, -11, -12, -20, 2, 7, -39, -18, -5, 0, 14, 16, 23, 26, 57, 0, 21, 11, 21, -5, 2, -37, -18, 25, 25, 15, 3, -5, 10, 3, -17, -16, -21, -17, 4, -11, 17, 8, 10, 13, 1, -9, 26, 17, -22, -18, -9, 14, -7, -17, 11, 12, -16, 13, -3, 18, 14, -21, 9, 3, -2, 35, -17, 20, 15, 10, -23, -11, 32, -2, 20, -40, 13, -22, -19, 5, 5, 35, -26, 20, 9, -9, -1, 12, -17, -12, 6, 29, 19, -9, 12, 7, 6, -20, 16, -22, -2, -5, 16, -19, 7, -13, 6, -26, 11, -8, 17, -2, 13, -22, -17, -6, 30, -19, 7, -5, 17, -23, -14, -6, 22, -6, 31, -19, 9, -35, -36, 1, -6, -19, -3, -2, -8, -8, -19, 9, 18, -22, 7, 14, 4, 10, -18, -1, -14, -4, -11, 9, 27, -7, 8, -5, -15, 16, -5, 11, -10, -6, -10, 24, -16, -10, -20, 10, 6, -28, 16, -35, 24, 14, -17, -18, -13, -21, -25, -20, 2, 3, -12, -3, 23, -5, -34, 12, -12, -23, 19, 10, 16, -1, 0, 22, -10, -4, 9, 15, -13, -21, 0, 51, 5, -13, -12, 6, -3, 32, 33, -3, 14, 3, -2, -18, 14, -15, -14, -18, -2, -5, 10, -21, 15, -4, -18, -17, 32, 12, -14, -4, -1, -12, 27, 1, 28, -12, 3, -14, 31, 16, 12, 12, 3, -4, -14, 5, 3, 4, -15, -1, -30, -1, 27, -11, -24, 52, -6, 27, 17, -10, 6, 3, 23, -1, -10, -12, -6, -22, -15, -4, -7, 34, 7, 12, 7, -4, -8, -2, 13, 30, 20, 9, 31, -12, -22, -20, -27, 23, 36, 17, -6, -16, -15, -1, 1, 30, 7, 3, -19, -10, -14, 5, 11, 8, -21, 19, 28, -17, -9, 2, -5, 16, 23, 15, 43, 3, -11, -18, -25, 37, 3, -11, 19, -2, -25, -21, 11, 23, 7, -13, 2, -14, 17, -16, -1, 24, -2, 25, 5, -22, 14, 12, 6, 15, 13, 10, 2, 21, -22, -11, 22, -3, 1, 27, -25, -2, 18, 1, 0, 8, 24, 25, 16, -2, 11, 6, 6, -11, 24, -4, -5, 4, -16, -23, -27, 23, -1, -6, -10, -17, 4, 2, -1, 24, -8, 9, 10, -5, 2, -19, -25, -8, 25, -23, 20, -18, 1, -6, -13, 58, 5, 23, -2, -20, -10, -2, -13, 14, 13, -30, -17, -3, 6, 4, -22, 10, 25, 26, 45, -19, -32, -11, -32, 2, 31, -11, -12, 8, -18, -1, -22, 9, 21, -7, 28, -14, -12, -4, 3, 9, 14, 14, 13, -13, 19, -14, 18, 36, 13, 0, -9, -19, -12, 16, -3, -7, -5, 24, -5, 15, -6, -21, 20, -18, 40, -29, 37, -20, -21, 14, -36, 5, -4, 13, 7, -20, -25, -1, 41, 12, 14, -16, 35, 6, -20, -10, 28, 12, -2, -10, 12, 11, -8, -20, 0, 23, -7, 8, 20, -8, -4, -6, -37, 24, 14, 8, -11, -10, 0, -12, 16, 8, 33, -15, 14, 4, -17, 18, 14, -8, -5, 3, -18, 13, -34, 12, 16, -7, -7, -14, 21, -12, -11, 18, 16, 22, 19, 29, 31, 9, -17, 0, -13, 6, 10, 1, 13, -22, -1, 6, -12, 11, -14, 10, -14, 5, 8, 0, -33, -8, 6, -7, -13, 19, -2, 0, -10, -21, 12, 25, -15, 16, -19, 8, -3, -11, 0, -1, -17, -6, -22, -23, -7, 38, 17, 14, -8, -21, -13, -12, -10, 4, -9, 32, 1, 11, -35, 14, 32, 0, -19, -21, 30, -16, -20, 9, 7, -6, 11, -7, 28, -18, -20, -8, -9, 0, 0, 25, -22, -7, -10, -11, 2, -13, 26, 3, 8, -12, 45, -5, -35, -1, 34, 12, 8, 12, 20, -7, -47, -6, -4, 14, -16, -4, 5, 13, -26, 16, -10, 25, -6, 16, 22, 7, 28, -25, -5, 29, 24, 1, -24, -9, -11, -17, -11, 11, 23, -1, -2, -1, -12, 8, -4, 1, 5, 11, 0, 14, 6, 10, 19, -20, -9, -20, -39, 17, -14, 20, -19, -21, -29, -15, -33, 6, 8, -2, -27, -29, 4, -5, 2, -6, 0, -9, 11, -1, 11, 0, 34, -20, 0, -9, -1, 5, -8, 3, 4, 6, -11, -31, 20, -23, -2, 13, -6, -3, 17, -26, -2, -11, -21, -5, -12, -20, 15, -18, -5, -23, 1, 14, 10, 11, 2, -15, -31, -6, -1, 9, -13, -5, -22, 7, 21, 7, -3, 3, -13, 8, -12, 14, -5, -26, -2, -8, -16, -8, -3, 6, 13, 13, 20, 20, -9, 1, -3, 41, 0, 17, -1, -8, 6, -21, -11, 18, 13, 16, -1, 12, -9, -17, -9, 15, 31, 14, 1, 1, -8, -11, 17, 42, -2, 18, -28, -14, -33, 15, -6, 13, -12, 38, 14, -20, 24, 4, -3, -17, 27, 29, -20, -7, -12, -8, -2, -31, -21, -14, -14, 19, 20, 10, 3, 15, 21, -10, -15, 5, -24, 10, -20, 26, -9, -8, 20, -5, 13, 13, 5, 6, 3, 10, 31, -15, 22, -20, -5, 26, -2, -5, 11, 10, 18, 13, -8, -10, -14, -8, -13, 4, 6, 12, -12, -10, -10, 62, -35, 17, 5, -11, -14, 37, 2, 5, 7, 16, 19, 2, 4, 22, 2, -23, -27, 6, -10, 17, -5, 19, -4, 25, 20, 0, 22, 3, 29, 5, -11, -9, -7, -16, -26, -18, 6, -5, -4, 12, 11, -6, 5, 17, 7, -3, 6, 33, 18, 8, 2, -2, 11, -41, 25, 25, 26, -18, -10, -10, 1, 6, -8, -6, -5, -21, 7, -5, 20, -20, 9, 13, 27, -20, -4, -22, -10, 21, 11, 5, 2, 12, -1, -9, 22, 25, 12, -28, -17, -14, -12, -9, 27, -1, -3, -28, 29, -8, 16, 14, 47, 7, -36, -25, 21, -6, -21, 11, -9, 17, 6, 21, -4, -4, 10, -9, -15, -15, 15, 19, -7, 10, 18, 13, 14, -20, 5, -22, -14, -17, -11, 19, 13, -1, 4, 2, -14, 10, 10, -9, 1, 6, 31, 17, 15, 13, 17, -1, -16, -10, -34, -5, 4, 1, -4, 0, 13, -7, -7, -11, -5, 5, -14, 0, -9, -13, -1, 7, 7, -15, -2, 19, 26, 14, 12, 21, -1, -10, 7, -22, -11, 0, -24, 19, 5, 1, 5, -10, 5, 0, -3, 19, -8, -10, 26, 15, 10, 19, 16, -20, 22, 16, 18, 19, -5, -6, 42, 19, -38, -13, -19, -18, 14, 15, 9, 8, 15, -15, 5, 17, 7, 28, 32, -5, -5, 17, 25, 17, -5, 22, 24, -14, 22, -6, 5, 16, 35, -13, -22, 17, -6, -15, 10, -22, 11, -21, 8, 14, 12, -16, 25, -7, -13, 26, 44, 8, -20, 14, -6, 11, 4, 12, 10, 43, 4, 1, -27, 8, 1, 11, 6, -1, -10, -1, -24, 2, 23, 0, 25, 39, 7, 20, -22, 5, 21, -11, 2, -14, -9, -2, 5, -2, -26, -14, 23, -1, -9, -20, 4, 3, -18, 31, -19, -8, 26, 13, -22, -5, -15, -11, -11, 13, -34, -7, -5, 17, 15, -3, -4, -13, 17, -9, -4, 6, -19, 12, 17, 3, -5, -6, 5, 1, 24, -5, 0, -32, 6, 11, -10, 10, 39, -23, 6, 1, 17, -12, 5, -21, -4, 38, 23, -6, 12, -17, -10, -4, -28, -5, 2, 10, 11, 8, 11, 3, -3, -3, 5, 18, -9, 16, 32, -19, 3, -9, 4, -21, -9, 17, 5, 14, -6, 4, 25, 0, 1, -6, -6, -10, -10, 8, -3, 14, -5, 7, -1, 17, -5, -11, 7, 23, 18, 18, 23, 8, 29, 10, 9, 4, 10, 2, 3, -7, 9, -23, -19, -14, -30, -10, -21, -10, 16, 3, 10, 1, 20, 8, -3, 5, -7, -4, -12, 25, 9, 2, -15, 8, -17, -12, -12, 2, 12, -5, 7, 5, -23, -8, -16, 1, 15, -9, 11, 1, -14, -16, 22, 15, 5, -11, 8, 19, 4, -15, 28, -13, 3, -9, -15, -17, -30, -16, -1, 27, 20, 10, -25, 17, -8, -16, -19, 1, 17, 16, -16, 6, 8, -26, -24, 3, -30, -20, -28, 21, -15, 10, 5, -16, 24, -7, -11, -14, -15, -2, -11, -9, 14, 6, 9, -5, -36, 6, -3, -7, -1, 7, 19, -9, -22, 8, 17, -17, 20, -3, 1, -9, 2, -4, 25, -17, -10, 10, 8, -2, -21, -13, -13, -2, -21, -2, 5, -4, -10, 9, -3, 2, -14, -15, 1, -6, 10, 13, -14, -6, 8, 7, 27, 16, 8, -14, -15, -12, -25, 9, -5, 1, 21, 24, 16, 12, -13, -3, 4, -13, 0, -1, -6, 4, 27, 17, -1, 11, -10, -7, -1, -13, 1, 16, 40, 0, -1, -11, -20, -15, 4, -10, 10, -20, 21, 15, 30, 9, -12, 9, 11, 16, 12, -6, 18, 0, -18, -11, -13, -21, 25, -10, -15, 1, 0, -11, 12, -16, 5, -6, -16, -3, 7, -1, 17, -4, -3, 0, -15, -21, -21, -13, -7, 8, 3, -18, -7, -15, 3, 17, -11, -8, 8, 13, -14, 13, -3, 14, -9, -23, -11, -24, -17, -8, 16, -16, 20, 9, -5, 16, 0, -24, 10, -11, 29, -6, -12, -4, -6, -10, -14, 1, 12, 17, -9, -5, -23, 11, -15, -20, 7, 12, 10, 19, -10, -38, -19, 2, -4, 4, 3, -8, -23, 10, -10, -19, 24, -23, 9, 5, -36, -6, -9, -21, -1, -20, 10, -10, 2, 0, -13, -13, 19, 5, -11, -3, -17, -27, 9, 11, 15, 1, 7, 18, -11, 19, -21, 5, 6, -19, 0, -12, -22, 13, 9, 18, 24, 15, -2, -3, -11, -15, -26, 11, 28, -14, -5, -1, -4, 21, 15, 9, -5, 3, -8, -6, 0, 8, -10, 13, -4, 17, -23, 20, -7, 16, -5, -7, 0, 7, 19, -42, -16, -21, 9, 9, -9, -9, 5, -37, -1, -14, 2, -24, 2, -5, 3, 9, 14, -12, -9, 11, 13, -13, -22, -31, 11, -28, 8, -19, 1, -20, 26, 14, 0, -4, -29, -11, -17, -15, 13, 20, 0, 7, 19, -23, -19, -9, 15, 10, -31, -16, 1, 12, -16, -8, -6, -18, 30, 3, -9, -2, 23, 19, -6, -8, 9, 10, 20, 13, -8, -6, 7, 7, 7, -22, -16, -20, 6, 4, -1, 3, -21, 34, 25, -8, -14, 8, -9, -3, 22, 13, -3, 9, 0, 0, -7, 8, 2, 14, -13, 11, -4, 8, 9, -6, -11, -31, -6, -5, -13, -6, 2, -15, 15, -1, 29, -13, 11, 8, 8, -8, -22, 27, 23, -23, 11, 20, -17, -8, 8, 5, -10, -16, 0, -22, 10, 26, 7, -6, 5, 3, 0, -13, -16, 12, 6, -6, 19, 8, 23, 12, -4, 2, 14, -2, 0, -18, -5, 12, -8, -25, -5, -15, -11, -1, -11, 19, 6, -26, -8, -19, -23, 20, -21, 17, 15, 6, -2, -27, 1, 7, 20, 8, 3, -5, -34, 0, -17, 16, 1, 9, 22, -44, 6, -16, 14, 8, -20, 20, 9, 1, 0, -11, 15, 5, 18, -6, -16, 8, -6, -50, 1, -22, 5, 12, 17, -13, 7, -22, 0, -6, 21, 1, 3, 4, 32, -15, -5, -7, 27, -2, 16, -38, -25, 5, -1, -18, 26, -22, -7, -29, -6, -9, 4, -8, -5, 7, -18, -6, 5, 23, -8, -22, -4, -16, -13, -24, -3, -36, 23, 21, -20, 8, -1, 6, 12, -4, 4, -17, 2, 6, -9, 8, -15, -14, 16, -22, 6, -20, 16, -25, -23, -9, -44, 17, 6, 4, 4, 0, 26, 17, -13, -6, 21, -21, -21, 11, 11, -11, 18, 10, -13, 5, -1, 5, 9, -28, -8, -15, 10, 20, 9, -32, -14, 0, 2, 16, 21, -10, -4, -55, 9, 10, 1, 14, 5, -18, 12, -42, -14, 27, 15, -8, -33, -8, 16, -8, 27, 1, -12, -5, -8, 0, -3, -11, 5, 14, 26, -1, 6, -17, 2, 10, -2, -19, -24, 9, -5, 14, -19, -16, 2, -2, -17, 6, -14, 13, 13, -5, -2, -5, -12, 12, 14, -8, -23, 6, -25, 8, -22, -13, 10, -6, 11, -22, 29, 7, -14, 19, 0, -11, -1, -7, -11, -14, 3, -4, 28, -4, -23, 6, 0, 9, -27, -12, 33, -7, -3, -18, 8, 6, -43, 8, -7, 7, -12, -30, -7, -32, -46, -16, -18, 12, 3, -16, -6, 9, -17, 2, -7, -6, -6, 20, -12, 7, -16, 5, 14, -4, -5, -17, 13, -16, -23, 12, -17, 7, 18, 6, 24, -19, 0, 6, 23, -3, 22, 7, 10, 6, -16, -19, 12, 15, 9, 3, 13, 10, -5, 2, -1, -20, 23, -29, 15, 4, -18, -9, 19, -3, -6, -23, -6, 7, -26, -13, -6, -18, -2, -8, 1, -14, -34, 13, 27, 7, 5, -15, -13, 13, 6, 3, -9, 7, 24, 10, -15, 0, -30, 0, -8, -20, 25, -7, -31, 13, 8, 0, -3, 14, 33, -4, 12, -18, 2, -6, 4, 7, 28, -8, -13, -9, -6, -1, 4, -2, -4, -31, 19, -3, 25, -19, -11, -2, 7, 18, 10, 11, -8, 9, 27, -13, 12, 4, -5, 22, -5, -19, -4, -22, -18, -19, 25, -13, 8, -5, 29, 16, -18, -11, -8, -10, -27, 13, -20, 14, -4, 13, 0, -3, -16, 10, 13, -15, 7, 5, -43, -15, 5, -9, -23, 0, -5, 7, 25, 18, -16, -10, -21, -3, 5, -8, 0, -33, 37, 1, -21, 17, -15, -17, -9, 14, -13, -9, -15, 8, -5, -53, 18, 11, -24, 13, -20, 5, 2, -28, -9, 22, 10, -5, -4, 4, -9, 21, 8, 15, -6, 16, 14, 10, -3, -36, 33, -2, 21, -20, 1, -12, 17, -8, -10, 15, 4, 18, 15, 7, 12, 11, 13, 3, -8, 18, 17, 4, -15, -6, 12, -11, 7, -9, 10, 2, 18, -7, -2, -21, 33, 2, -5, -7, 6, 5, 20, -3, -20, -16, 26, 9, -17, 3, 19, -14, -14, 7, -21, 13, 5, -1, 13, -28, -3, -12, -24, -11, 18, -48, 15, 8, 20, 0, -11, -5, 27, 4, 21, 6, -30, -15, 14, 5, 19, 1, -2, -19, 1, 8, 11, -17, -8, -17, 3, -15, 22, -2, -8, -21, -15, 6, 5, -20, 3, 8, 23, -12, -11, -24, -5, -9, 9, -1, 9, 15, 11, -21, 32, 0, -22, 10, 9, 5, 13, -35, 3, -27, -20, 17, -9, 4, 13, 6, 2, 4, -12, -21, 10, -18, 3, 23, 13, -1, -11, -1, 6, -17, -8, -18, -6, -6, -16, 4, 10, -5, 1, 1, -17, -18, 2, -9, -7, -2, -37, -1, 17, -47, 13, -8, 1, 11, -10, 4, -22, -21, -32, -21, -12, -6, 16, 2, 1, -8, 8, 10, 2, -21, -19, -3, -40, 8, 7, 13, 16, -10, -18, -2, 16, -3, 14, 13, -9, 7, 17, 0, 6, 20, -4, -11, 9, 18, 22, 6, -14, 29, -17, 8, -15, -6, -18, -8, 5, -47, 21, -16, -3, 3, 13, -3, -10, -27, -1, -12, 0, -15, -12, 2, -23, 12, -15, -24, 0, -9, -21, -4, 14, -17, 0, -12, -2, -23, -20, -31, 14, -15, 23, -2, -5, -9, -21, -17, -7, -24, -17, -2, 9, -21, 19, -1, 34, -8, 17, 12, 17, 14, 13, -29, -11, -10, -10, 11, 9, -10, -14, 41, -24, -13, -9, -8, 6, 3, -24, -4, -12, -5, -11, 13, 6, -14, -1, -29, -30, 1, -10, 1, -30, -14, -11, -16, -7, -1, -7, -14, -6, 9, 40, 22, 17, -17, -41, 15, -18, -4, 8, 19, 8, -20, -2, 11, -14, 11, -6, -12, 5, -36, -9, 18, 16, 17, 7, -18, -11, 31, -15, 16, -33, 15, -37, -8, -12, -41, -18, 18, -18, -16, 15, -15, 1, -18, 7, -2, -5, -6, 14, 7, -21, -13, -20, -13, -3, -14, 19, 45, 14, 8, -16, 17, 6, 16, 16, -12, -30, -1, -7, 11, -30, 8, 28, -29, 7, -43, -3, -8, -1, -13, -19, -5, -4, -31, -21, 7, 3, 1, 15, -5, 7, 22, 13, 14, 17, -10, -3, 30, -11, 24, 9, 8, -10, -9, -33, -18, 19, 5, -1, 2, 6, 10, 15, -16, -4, -35, 1, -16, 5, 17, 12, -9, 10, -32, 3, 18, -24, -16, 16, -40, -26, 7, 1, -8, 10, -17, 0, -12, -28, 8, 15, -5, -1, -14, -18, 13, -7, -29, -12, 8, 20, -15, -17, 21, -3, 7, 2, 21, 33, -4, 11, 39, -15, -15, 4, -8, -5, -13, 6, -8, 17, -10, 18, -19, 19, 6, -2, -8, 4, 21, -13, -15, -2, 27, 11, -3, 18, -9, -26, -22, 13, -15, 11, -5, -13, -6, 14, 47, -1, -9, 12, -10, -32, 10, 16, 3, 3, 15, -9, 18, -31, 11, -5, 36, 3, -23, 5, -4, -22, -5, 0, 14, 21, 8, 10, 12, 0, -3, 3, 15, 0, -17, 2, -15, -16, 12, 11, 21, -1, -24, 5, 6, 11, -8, -12, -27, -14, -17, 20, -6, 3, 20, 9, 3, 8, 16, 28, -8, -26, 7, -9, 9, -3, 17, 15, -9, -29, -6, -11, -18, -22, 9, -7, -2, 16, 0, -5, 31, -5, 3, -34, 2, 4, 34, -41, 4, -7, 10, 4, 15, 14, -13, -40, -2, 24, -15, 19, -1, -1, -10, 2, 22, -25, -4, -17, 10, -37, 21, -8, -23, 14, -5, -3, -20, -1, -9, -12, -17, 23, -3, 12, -10, 16, 8, 21, -10, 15, 42, -13, 10, 2, -8, -40, -33, 12, 13, -15, 21, 16, 25, -7, -36, 4, 16, 18, -22, 9, 24, -41, -7, 25, 26, -17, 12, -2, 12, -7, 12, 10, -9, -11, 12, -11, 12, 1, -5, 14, 10, 5, 26, -25, 4, -13, -6, -1, -28, 23, 5, -6, 6, -36, 26, -5, 10, -6, 23, -12, 16, -8, 11, -12, 30, -18, 4, -2, -21, -13, 15, -16, 24, -15, 28, 17, -36, -10, 30, -25, -40, -1, -15, -21, 10, 18, 8, 1, 9, 11, -38, -2, 5, -14, 14, 5, -6, 4, -6, -9, 4, 14, 1, 6, -1, -12, 11, -17, 3, -8, -16, -14, 3, 14, 7, 19, -16, 3, 28, 16, 3, 15, -14, 4, 1, -19, -17, -6, 15, 17, -1, 29, 21, -2, -7, 10, -10, -12, 6, -19, 11, 18, -8, -8, 0, 20, 26, -5, -14, -19, 10, 29, 8, 3, -13, -29, -5, -14, -10, 13, 12, -9, -20, 19, 1, -20, 5, 20, -10, -24, -18, 4, -1, -21, 14, 18, 30, 27, -11, 7, 1, -5, 10, -12, 25, 5, -8, 7, -22, 15, 11, 17, 26, 7, -8, -14, -24, -44, 15, 0, 19, -25, 15, 1, 6, -14, 42, -34, 20, -6, -24, -66, 19, -5, 0, -10, 13, -13, -5, 19, -25, -2, -13, 8, 38, 5, 19, -42, 12, -43, -15, -19, -18, -2, 3, 20, 8, -3, 11, 2, -13, 15, 0, 13, -2, 4, 5, -24, -7, 1, -16, 9, 11, 4, -22, 17, 15, 8, -23, 25, -28, -6, 10, 10, 3, 12, 3, 13, 8, -6, 14, -6, -27, 10, -26, 6, 5, -5, -2, 1, -8, -28, -13, -29, -1, 11, 31, -11, -12, -13, -23, 7, 23, -4, -33, 18, -7, 22, 29, -18, -2, 11, -16, -1, 16, 31, 22, -11, -8, -33, 22, -26, 2, 26, -18, -32, -1, -18, -14, -7, 11, -14, 7, -5, -9, -21, 8, 17, 9, -8, 7, -12, -1, 18, -11, 13, -2, 1, -14, -7, -18, 14, 13, 7, 18, 11, -8, 6, 10, -2, 24, 17, -7, 18, 33, -10, -15, -34, 15, 1, 35, 3, -24, 14, -19, 8, -18, -15, 12, 0, -14, -3, 1, -8, -9, -11, 12, 11, 30, 1, 0, -17, -32, -4, 20, 22, 21, -11, -6, 6, -9, 15, 19, -15, 7, -21, 4, -26, 30, 22, 12, -30, -31, -33, 17, -26, -36, -17, 24, 31, 9, 16, 8, -27, -2, -10, 27, 32, -8, 18, 1, -5, -21, -17, -24, 19, 4, -7, 0, -20, -19, -1, 3, -10, 2, 0, 6, 22, -9, -17, -18, 6, 13, -39, 2, 26, 9, -5, -20, 8, -44, 9, 11, -15, 2, -40, -40, -19, 4, 26, 19, -14, -11, 1, 7, -6, 0, -22, 15, 2, -26, 13, -21, 25, 23, -41, -23, 18, 10, 16, 11, 6, 6, -20, 11, -7, -5, 23, 7, 1, -13, 9, 22, 13, -12, -2, -13, 11, 3, -16, 19, -11, -26, 1, -1, 14, 0, -25, -8, -16, -4, 3, -4, 16, -3, 18, -11, 0, -2, 22, 16, 13, 15, 6, -22, 12, 1, 9, -2, 12, -4, 4, -5, -5, -21, 5, 0, 5, -18, -1, -16, -12, 17, 31, -8, 16, 0, -30, -1, -2, -8, -6, 21, 0, -35, 0, 8, -2, -9, 11, -21, 18, -21, 11, -17, -13, 18, 13, -28, 1, -17, 3, -18, 12, 2, 15, -20, -4, 14, 14, 1, -20, 4, -19, -15, -4, -7, 7, 1, -27, -10, 19, -16, 5, -21, 0, 0, -4, -7, -12, -14, -2, -14, -11, -4, -2, -37, 4, 16, 1, 13, 2, 15, 0, -21, -10, -23, -4, -1, 18, -7, 11, -10, 5, -1, -25, -3, 15, 11, 10, 15, 11, -8, 18, -3, 9, -9, 6, 1, -16, -20, -8, 6, -2, 5, -10, -5, -19, 17, 18, 27, -51, 9, -20, -4, -11, -17, -29, 4, 3, 2, 9, -21, -9, 18, 11, 20, 16, 14, 18, -15, 16, 18, 8, -22, -5, -13, 0, -1, 22, 35, 7, 11, 6, 20, -16, -29, 8, 12, -3, -13, 28, 12, 22, -4, 17, 7, -12, -10, 27, 4, -3, -22, 1, -13, 16, 13, -3, -4, 11, 10, -6, -9, 2, 14, 7, 10, 8, -23, -28, 15, -11, -17, 22, -42, -9, 7, 17, 20, -13, 37, -14, 45, -27, -5, -4, 2, -17, -21, 1, 14, 18, -8, 9, 15, -1, 23, 21, 9, -8, -11, 19, -12, -4, 12, 32, 4, -17, -8, 14, 36, 4, 24, -7, 3, -13, -11, 13, 21, 1, 20, -11, 9, 19, -1, -6, -14, -11, -11, -13, 18, 34, -12, 6, 11, 13, 23, -10, 2, 15, 7, -15, -24, 24, -15, 13, 5, 14, -27, -17, -10, -15, -17, 5, 29, 1, -29, 3, -17, 10, -12, 2, 13, 4, 20, -14, 3, -6, 19, -8, -9, 17, 9, -5, -15, 5, 11, 16, 8, 5, -12, 14, -14, -6, 21, 9, 13, -16, 19, 3, 32, -22, 8, -22, -15, -22, -13, -11, 17, 6, -4, 12, 31, -1, -2, -3, 44, 32, 2, -28, -13, -23, -10, 0, 7, 0, -16, 1, -20, -12, 9, -3, 15, 9, 11, -16, 12, 1, -19, 15, 14, -11, -17, 5, -15, -17, 8, 22, 18, -11, 19, -28, 16, 3, 5, 1, 17, 15, -8, 9, 0, 11, -4, 13, 11, 27, 11, -1, 6, 13, 12, 7, 9, -10, -3, -6, -18, -11, 22, -11, -2, -12, 22, 15, 36, 16, 7, -20, -6, -20, 22, -22, 2, -3, -6, -13, -10, -4, -12, 32, 22, -21, -17, -3, -11, -22, 23, 31, -5, -9, -4, 3, 14, 2, 35, 10, 1, -6, 19, 11, 6, 13, -1, -6, 19, 9, 1, 26, -15, 0, -27, 23, -8, -14, 30, -8, 10, 22, 23, -31, -5, -24, -2, 11, 14, 2, -28, 10, -9, 31, -1, 21, 13, 10, -4, 3, -6, 6, -13, 9, 0, -18, 8, -25, 4, 40, 13, -7, 29, 4, 9, -13, 17, -27, 15, -12, -1, -48, 2, 22, 20, 14, -20, 0, 13, -21, 13, 5, -4, 39, -6, 11, -4, 10, -22, -49, 2, 4, -19, 5, 20, -2, -2, 18, 16, -8, 11, -8, 23, -24, 16, -10, -9, 21, 5, -11, 10, 6, -6, 36, 10, 15, 34, -28, -3, -39, -8, -14, 44, 14, 17, -1, -14, -16, -13, -21, 33, -8, -18, -41, -27, -35, -7, 21, -10, 38, -8, 24, -16, -33, -17, -11, 26, 29, -3, -29, -31, 0, 0, -12, -6, 22, 13, -20, -13, -29, 3, 2, 7, -7, 14, -10, 22, 14, -19, -5, 6, 1, 6, 7, 25, 14, -4, -4, -18, 25, -2, 15, -20, -3, 19, -13, 21, -11, 9, 13, 14, 23, 23, -4, -12, 12, -2, -34, 17, -39, -8, 11, -20, 25, -21, 29, 7, -7, 28, -19, -14, 6, 16, 32, 6, -12, -24, -22, 1, 3, 20, 9, -23, -15, 6, -19, -10, 27, 23, 9, -25, 5, 8, -8, 9, 11, -15, 13, 18, 24, 13, -8, -3, -16, 11, 6, -18, 0, 3, -20, 15, 17, -1, -6, -3, 0, 4, -19, -7, 22, -7, 12, 10, 5, -9, 10, -15, 6, 5, 31, -16, 7, 0, -14, -19, 1, 12, 7, 26, -13, -18, 0, -9, -21, 12, -2, 30, 8, 16, 7, -4, -4, -6, -14, -9, -19, -2, 19, -6, 8, -33, -6, 3, -15, 13, -9, -19, -26, 8, -31, 31, -15, 7, -9, -12, -26, 34, -22, -35, 35, 14, -19, -4, 1, 2, -5, -3, -1, 18, -8, 32, -35, -11, 6, -21, 9, 2, -14, 5, 3, -11, -13, -11, -16, 0, -6, 5, 21, -30, -22, -15, -1, 13, 5, -13, -24, 27, -11, -6, -6, 1, -9, 15, 29, -27, 32, -30, -4, 22, -47, -2, 5, 15, 26, -25, -12, 13, -17, 1, 20, -19, 12, 38, -1, -3, -8, 28, -21, 32, 32, -15, -36, 6, -15, 2, 55, 13, -2, -18, 22, 25, -32, 24, 11, -23, 11, -12, 10, 3, 34, 26, 14, 12, 16, 11, 39, -3, -8, -13, -47, -20, 4, -24, -2, -16, -25, 7, -26, 5, -10, -28, -24, 7, -1, -13, 23, 13, -14, 0, -6, 0, 7, 0, -4, -16, 21, -6, -15, -3, -4, -10, -2, -14, -17, -4, 23, -28, 14, 17, 12, -14, -11, 2, -4, -1, -11, 1, -16, 20, -52, 1, -20, -6, 34, -34, 34, 8, -32, -22, -5, 4, -7, -26, 25, -9, 25, 5, -16, 1, 7, -26, -16, 20, -1, 5, -18, 14, -2, 21, 3, 9, -7, -39, -9, 9, 4, -15, 11, -14, -16, 5, 23, 8, 5, 13, -23, 2, 26, -5, 12, 21, 7, 23, -14, -29, 6, -15, -1, -23, 8, 18, -8, -2, -21, -22, -18, -29, 5, 9, 8, -15, -7, 8, -24, 20, 6, 2, 18, 11, -14, -2, 10, -14, -10, -37, -30, 8, 18, -11, 25, 29, -32, 33, 4, 0, -6, -12, -12, 14, 12, -32, 13, -19, -18, 12, -20, -4, -6, 6, -7, -13, 11, -6, -4, -23, 3, -26, 35, 2, -6, -16, -26, -2, 3, 2, -1, -3, -18, 3, 21, 31, 0, 17, -20, -3, -2, 25, 6, -19, 1, -9, 10, -8, 18, 5, 14, 6, -10, 6, -5, -3, 12, -20, -35, -18, 8, 2, 19, -19, 8, 32, -4, 24, 0, 4, -15, 3, -6, -16, 7, -15, 23, 3, -13, 23, 13, -24, 1, 8, -12, -33, -5, 23, -27, -21, 7, 2, -6, -16, 17, -1, -3, -1, 17, -18, -11, 19, -22, -4, -13, -19, -6, 6, 29, -18, 10, -25, -13, -13, -25, -36, 31, -5, -1, 15, 6, -11, -13, -10, -17, -18, -2, 25, -8, -7, 26, -16, -23, -35, 2, 6, 18, 10, -3, 14, -17, -3, 19, -13, 13, -13, -11, -13, -5, -1, 11, 23, 17, 25, 32, 9, 21, -1, -1, 8, 10, 1, 18, -30, 15, -17, 5, -9, 2, 22, -33, -6, 20, -21, 14, 9, 21, -11, -9, -20, 8, -7, 6, -3, -42, -14, 8, 15, 11, -26, 17, 13, -2, 0, 25, 3, -15, -24, 27, -3, -5, -21, -7, -10, -28, 10, 20, 22, 3, 8, -2, 6, 34, 17, 0, -22, -21, 11, 10, 4, 23, -7, 9, -19, 9, 12, 12, 24, -9, 12, -4, 23, -25, 32, -9, -8, 1, -2, -15, 9, -28, -13, 16, -15, -13, 10, 10, -3, -20, 10, 15, 13, -24, 10, 18, 9, -3, -17, -15, 0, -8, 1, 7, 16, 19, 7, 1, 1, -39, -2, 9, -11, -29, -13, -8, -22, 20, 13, 19, -3, 14, -16, -1, 22, -2, 22, -10, -8, -54, -20, -8, -17, 59, -5, -6, 11, 22, -7, -4, -8, -9, 6, -8, 25, 18, 23, 0, 15, -9, 8, -24, 5, 12, 6, 21, -6, 8, 16, 5, -12, 3, 4, -10, -30, 11, 24, 1, -5, -39, 22, 8, 5, 2, -5, 3, 3, -6, 1, -12, -2, -7, -22, 27, 6, 8, -38, -9, 12, -5, 1, 32, 8, 5, -13, 31, 4, -29, -7, -28, 2, 7, -21, 4, -8, 9, -11, 38, -20, -1, -1, -45, 0, 33, 10, 14, -1, -1, -12, -10, -2, 0, 8, -10, 16, 8, 17, 19, 10, 21, 16, 26, 16, -15, -20, 33, -5, -8, -14, -2, -16, -15, 6, -43, -8, 4, 36, 10, 33, 15, -27, -6, -7, 9, 19, -3, 35, -24, 2, -25, -10, -17, -26, 7, -34, -8, -28, -6, -18, 20, 17, 29, -9, 13, -16, -16, 13, 16, 15, 20, 2, -6, -11, -4, 20, 0, -2, 10, 9, -36, 51, -8, 22, 7, -19, 12, 23, 6, -6, 22, 2, -13, 0, -21, 24, -18, 2, 4, -6, -11, 5, -11, -2, -33, 4, -7, 1, 11, 8, 18, -23, 27, 11, -7, 7, 0, -4, -18, 14, 21, -6, -6, 6, -13, 15, 9, 15, -53, -6, -5, 20, 33, -4, -4, -6, -25, 17, -3, 23, 7, 5, 0, 2, -14, 37, 3, 16, -23, 38, 5, 30, 9, -8, -30, 18, -14, 18, 0, 10, -15, 11, 16, 51, -1, 2, 3, 8, 10, 3, -21, -6, 19, 24, 22, 30, -15, -10, -24, -13, 2, -7, -2, 22, -4, 7, -1, -12, 17, 13, -3, -7, 16, 8, 34, -9, -16, -4, -7, 17, -19, 35, -7, -7, 27, -11, -11, 10, -9, 7, -7, -7, 17, 11, 26, -9, 7, 20, -26, -15, 3, 34, 9, 18, 0, 29, -1, -27, 12, -20, 4, -2, -31, 10, -11, -17, 16, 18, 26, 32, -30, -10, -23, 15, 38, -5, 18, -2, 7, -8, 24, -14, 16, 2, 16, 4, 32, 24, 7, -2, -38, -5, -15, -10, -11, -13, 10, -6, -2, -10, 4, -5, -4, -25, 2, -32, 14, 23, 13, 32, -17, 3, -21, 0, -8, -30, 44, 1, -19, -30, 21, 3, 0, -4, -2, -26, 20, -18, -21, -29, 36, 20, -3, 1, -5, 12, 8, 0, -17, -28, -16, -13, 2, -8, 11, -39, 16, -12, 8, -39, 9, 2, -10, -23, 43, 23, -20, -4, 6, 2, -10, 15, -9, -14, -6, -23, 27, 15, 6, -4, -9, -3, -6, 5, 4, 2, 2, 21, -15, 3, 23, -3, -5, 25, -15, -3, -15, 8, 20, 32, -28, 16, 12, 28, -26, 5, -4, -25, -4, -9, -25, 12, -6, 7, -19, -4, 16, 16, -30, -41, 7, -3, -26, 12, 8, 33, 25, 1, 9, 23, -32, -17, -2, 17, -2, -14, 38, -2, -14, -30, -7, -11, -18, 4, -16, 0, -5, -8, 11, -10, 10, 13, 21, -8, -3, -8, -11, -4, 16, 23, -2, 23, -12, -18, 4, -19, 1, 20, -12, 20, -1, 24, -6, 3, -12, -31, 34, -7, 39, 21, -11, 15, -18, -9, -14, -29, -14, 2, -9, -21, 10, 3, 23, -3, -1, -30, 31, -9, -7, -4, -18, -1, 3, -2, 7, 4, 26, -24, -4, 7, 20, -8, 6, 4, 8, -36, 45, 5, 11, -12, 0, 37, 12, -27, 3, -9, 9, -16, 7, -15, -8, -5, -4, -15, -15, 36, -1, -23, -1, 20, -22, 1, 30, -7, -11, 18, -7, 3, -14, -20, -18, -21, 33, 14, -19, 17, -20, -19, 53, -18, -3, 5, 9, 5, 17, 28, -1, -5, -25, 14, 19, -19, 36, -14, -18, 13, -20, -16, -13, -27, 61, -18, 1, 20, -12, -8, 13, 15, -4, 16, 12, 7, -16, -13, 0, -51, 39, 6, 3, 6, 1, 12, 19, 15, 14, -17, -10, -17, 7, 18, -28, 14, -2, -25, 29, 5, -19, -12, -12, -16, 9, -22, 46, 2, -15, 16, -32, -8, 30, -39, 45, -21, 2, 16, -2, -4, 0, -15, -7, -3, -4, -1, 14, -12, 9, 20, -14, 4, 11, -15, 11, 8, -18, -17, -4, -6, 11, 13, 2, -13, 13, -12, -24, -5, -15, -1, -1, -49, 10, 7, 17, -13, 10, -1, -10, 7, 8, 21, 6, 1, 6, -26, -15, -20, 7, 10, 4, 2, 12, -13, 21, 5, 13, 1, -12, 12, 41, -26, -11, 31, -38, -1, 29, -33, 16, 7, -24, 14, -23, 18, 15, -18, -6, 50, -5, -8, 4, -15, -1, -15, -32, -1, 29, -7, 49, 4, -12, -17, 12, -7, -6, -27, 9, 22, 10, -7, -13, 73, -44, 15, 16, 7, 9, -5, 2, -25, 2, -4, 9, 21, 8, -10, 5, -18, -30, -2, -20, -17, 20, 15, -31, 17, -2, -17, 32, -29, 16, 9, -46, 19, 0, 1, 7, -14, -25, 14, 3, -1, 21, -7, 23, -12, 2, -37, 0, 8, 25, 14, 19, 21, -12, -19, 22, 6, 0, 15, -6, 4, -9, -6, -6, 22, -23, 14, -2, -1, -7, -30, -11, -29, -40, -3, -1, 12, 55, -27, 5, -28, 24, -22, -27, -6, -3, 21, 7, 7, 4, -13, -12, -3, 6, -25, -23, 12, -19, 1, 5, -12, 6, -18, 2, 1, -12, -24, -31, 8, 8, -10, -29, 16, 26, -11, 43, 16, -9, -16, 12, -26, 12, 22, -42, -1, 5, -6, 18, -4, -1, 25, -22, -27, 1, 3, -16, -10, 8, -22, 25, -17, -16, 5, -7, 18, -1, 22, -11, -5, 0, 8, -15, -25, 9, -2, 39, -12, 25, -33, 29, 17, -3, 5, 31, -2, 13, 0, 6, 9, -49, -18, 2, 7, 45, -11, -18, -8, 3, 14, 6, -11, 5, -4, 30, -1, -17, -6, -2, -11, 31, 8, 8, 32, 4, -21, 19, -7, 34, -10, 4, -13, 1, -8, 22, -8, -8, 22, 26, -21, 11, -11, -10, -6, -5, 31, -19, 8, 10, -2, 28, 14, 8, 25, -20, 11, -4, -17, -26, -8, 12, 0, -16, 22, -5, 23, 2, 9, 5, -20, 13, 10, -2, -8, -9, -14, 18, -13, 20, -16, -18, -14, -4, 4, 15, -25, 6, 22, -10, -18, 7, -18, -6, 4, -24, 9, 11, -5, 4, -19, 1, -21, 4, -9, 29, -22, 5, -20, -27, 21, -9, 12, -25, -12, -10, 0, 25, -20, 1, 6, 15, 8, -9, -6, 0, -18, -15, -14, -12, -18, 3, 7, -21, -4, 7, 6, 25, 12, 34, -6, -6, 18, -6, 1, 31, -5, 4, 9, 5, -1, -13, -12, 18, -21, 8, 9, -5, 13, -4, -14, 26, -25, 5, 15, 4, -5, -12, 5, 1, 18, 8, -21, -3, -3, -9, 12, 20, 11, -25, -16, 15, 6, -1, 7, 5, 11, -11, 19, -19, 28, -2, -6, 9, -10, 4, 8, -5, -26, -26, 1, 13, 5, -29, 17, -4, 36, -9, -12, -7, -7, -20, -6, -17, -4, -4, 28, -24, -11, 2, -16, 0, 32, 12, 24, 13, 14, 0, 12, 10, 2, 10, 8, -21, -10, -14, -15, 5, 2, 4, 6, -4, 8, -30, 0, 11, 16, -3, 28, -16, -8, 10, 14, -18, 33, -11, -8, -3, 18, -31, 9, -25, 20, -12, -21, 24, 12, -15, -8, -5, 3, -21, 25, -15, 9, -10, 4, 10, 11, 12, 6, 23, -8, 8, -1, -8, -9, 26, -9, 23, 20, -16, 17, 4, 28, -7, 29, 24, -6, 12, -2, -23, 2, 14, -7, 4, 3, -21, -17, 0, 13, -4, -17, 16, -5, 10, -9, 1, 31, -9, 16, -8, 8, 6, -4, 10, 13, 19, -5, 7, -21, 25, 19, -18, 2, 0, 18, 18, 13, -8, -22, 1, 19, -1, -15, -10, -1, 25, -11, -21, 9, 11, 15, -5, -7, -21, 14, -13, -14, 17, -8, 19, -9, -26, -13, 4, 12, 21, -14, -13, -1, -4, -16, 6, 7, 11, 13, 16, 7, 14, -14, -15, -15, 15, 15, -10, 19, -19, -8, 22, -34, -10, -22, -11, -15, 15, -18, 12, -4, 35, -26, -35, -13, 1, 17, -31, -42, 23, 12, 17, 0, -5, -3, 20, 3, -6, 16, 26, 10, 10, 19, -1, -21, 15, -6, -13, -4, -2, 14, 14, 8, -6, -16, -7, 15, -7, -17, -24, 17, 29, -13, 7, -12, -2, 9, 14, 5, -22, -23, -7, -4, 4, -6, -6, 22, -8, -5, -26, -9, 9, -2, -4, 0, 1, -21, 24, 13, 10, -11, 4, -2, 7, 1, 5, -8, -1, 15, 0, -6, 6, -17, 8, 14, 17, 9, 1, -10, -14, -20, 0, 18, 13, -4, -28, -4, 22, 1, -2, -9, 8, -3, -8, -1, 18, -10, -7, -3, -25, 15, -14, 12, -11, 4, 18, 10, -11, -13, -12, 1, -2, -2, 14, 18, 13, 13, -15, 26, -1, -20, -10, -8, -12, 21, 15, -51, -7, 19, 1, -4, 49, -13, -17, 5, 2, -20, 10, 10, -12, -11, -11, 30, 29, 8, 1, 12, -24, -6, 10, 19, 4, 7, -26, 3, 14, -3, -18, 10, -15, 5, -11, 19, -1, -9, -15, 19, -5, -1, 6, 1, 18, -9, -2, -17, -10, -24, -8, -11, 13, 14, -20, -20, -25, -27, -17, 6, -6, -11, 4, 5, -10, 1, 6, 9, 14, 12, 24, 3, -9, -17, 14, -10, 14, -21, -12, 8, -23, 17, 22, -21, 15, 15, 14, 10, 28, 27, 10, -23, -10, -6, -9, 24, 12, -3, 12, -10, 0, -7, -7, -32, -2, -16, -7, 6, -7, -23, -10, -12, -11, -6, -9, 13, 10, -7, 10, -24, 15, 1, 14, -12, 17, -2, 19, 6, -6, 2, 5, 7, -24, -21, 2, -24, -17, -19, 6, -18, 6, -21, -20, -4, 20, 29, 6, 18, 13, -10, -17, -21, 17, -40, 0, 18, -7, -14, 8, 15, 9, 20, 0, -13, 0, 19, -23, 5, -6, -10, 4, 13, 18, -21, -30, 40, -5, 4, 15, -16, -10, -10, -18, -11, 25, -13, 19, 18, 20, 20, 0, 26, -28, 15, -10, 9, -22, 13, 16, 29, -8, -18, -6, 12, 18, 14, -12, 22, -16, -37, 15, -9, 3, 6, 2, 4, -9, 6, 35, -12, 5, -21, -46, -4, 14, -3, -11, -6, -10, 18, -3, 20, 12, 2, 16, -2, 9, -19, 27, -32, 11, 27, 23, -21, 5, 22, -22, 26, 22, 6, 13, 18, 4, 18, -23, -13, -26, 24, -26, -7, -34, 8, -11, -6, -13, -8, -8, 10, 2, -18, 7, -2, 1, 2, -21, 10, -26, 2, 22, 17, 9, 6, -22, -9, -15, -8, 1, 18, -22, 1, 3, -3, 5, 16, 10, 27, 16, -9, -6, -3, -7, 13, -23, 16, 15, 3, -10, 4, -5, 12, -4, 14, 17, 14, 2, -18, 5, -16, -18, -1, -1, 17, -12, -5, 19, 7, -22, 15, 13, 27, 7, 4, 2, 3, -11, -11, -15, 33, -4, -11, -2, 19, -31, 4, -4, -30, -48, 8, 1, -4, 37, 5, -20, 4, -13, 1, -5, -3, -16, 9, 15, 48, 12, -4, 5, 13, -25, 21, -9, 20, 0, -15, 3, -5, 2, -13, -23, 20, 31, 12, -16, -18, -34, 2, -12, 13, 14, 5, 8, -10, -4, -2, 7, 20, -13, 12, 8, 16, -18, 18, 22, -42, 26, -2, -24, 15, 3, 0, 1, 6, -4, 18, 16, 10, -21, -3, 16, -15, 42, -22, -4, -14, 32, -6, 2, 12, -4, -5, 6, 6, -24, 19, -9, -9, 7, 10, -8, 6, 24, -36, 54, 17, -19, 2, -26, -7, -10, 16, -3, -27, 28, -10, -6, 13, -27, 2, -11, -6, 13, 13, 11, -9, 14, 9, -10, 12, -15, 17, -11, -18, -4, 13, 8, -28, 18, 11, 25, 12, 13, -8, -3, -5, -11, -20, -12, -22, 24, 3, 7, 10, -22, -10, 13, -18, -19, 0, 34, 30, -2, -3, -14, -19, -18, -5, -14, -3, -31, 11, -8, -4, 6, 18, -21, -10, -16, -22, -24, -6, 16, -19, 18, -8, 16, 6, 23, -17, -26, -9, -8, 12, -5, -19, -7, -6, 19, 38, -32, 4, 16, -13, -3, -15, -22, -1, -10, 12, -22, 1, -15, 19, 2, 36, 32, -21, -25, -3, -24, -6, 21, -7, -7, 8, -10, 1, -26, 5, 17, -13, 18, 14, -11, 11, -11, 12, -8, -14, 14, 5, -16, -9, 25, 7, -32, 34, 3, -8, -3, -12, -16, -21, -4, -2, -6, 4, 12, -2, -17, -13, 26, 32, -16, 7, -19, 1, -21, -22, 0, -26, 15, 21, 20, 7, -17, -10, -16, -13, -4, 3, 16, 3, -6, -5, 2, 12, -16, 24, 3, 20, 25, 14, 8, -6, -12, -6, -31, -15, 32, -23, -11, -16, 22, -8, 22, 6, -6, 18, -7, -6, 16, -11, -22, 11, -3, 12, 6, -15, 10, 17, 4, 13, 1, 1, -18, -19, 13, -4, 7, -15, 3, -8, 3, 19, -5, -2, 11, -11, -22, 8, -5, 4, 25, 8, -5, -1, -4, -17, 12, 20, -10, -20, -15, -19, -28, 12, 14, 12, 17, 0, -15, -19, -7, 14, 3, 14, -38, -8, -29, -1, -5, 17, 5, 22, -11, 23, 0, 11, 12, -4, -19, -33, 45, 7, -6, 1, 20, 1, 10, 11, -3, 15, 24, -21, 19, -10, 15, 35, -8, -26, -1, -20, 8, -9, 21, 34, -16, -4, 17, -9, 5, -22, -25, -5, 17, 2, -19, 11, -13, 7, 25, 44, 1, 2, 12, 1, -24, 4, -27, -14, 47, -4, -14, -21, 11, 12, 15, 11, -33, 27, 6, -19, 9, -15, 9, 9, 18, 16, 13, -18, -10, -3, -4, 10, 23, 3, -2, -21, -30, -11, 27, 17, -19, -13, 17, 20, 18, 4, -21, -20, 14, -6, 5, -9, 0, 8, 32, -3, -9, -10, 24, 4, -11, 11, 26, -27, 2, 18, -4, -4, -27, 20, 7, 11, -2, -5, 22, -9, -5, 6, -38, 1, 33, -13, -19, -3, -17, -1, 32, -4, -5, -19, 10, -1, 6, 1, 3, -3, 7, -33, 2, 17, 30, 12, 40, 17, 18, 21, 26, 1, -20, -2, 17, -3, -4, -18, 11, -17, 22, -1, -12, -2, 7, 11, -3, -12, -1, 9, 15, 12, 13, -4, -5, -2, -7, -19, 11, -13, 28, -3, 13, -21, 0, 11, -13, 10, -4, -2, 12, -22, 4, -5, 6, 18, 24, 1, -4, -4, 27, -20, 4, 7, -1, 6, 17, 3, -9, 10, 1, -19, 13, 17, 21, 3, 8, -21, 11, 1, 11, -7, -1, -21, 5, -19, -2, 0, 33, 4, -12, 19, -7, 15, 2, -11, -2, -3, 21, 11, -14, 18, -7, -5, -4, -8, 17, -22, 14, -12, 13, -5, -18, 21, -2, -20, 4, 14, 8, 4, -13, 22, 8, -18, -13, -9, 11, 3, 15, 11, 30, -18, 19, -8, -5, -13, -18, -2, -11, -20, 18, 19, 10, -12, -12, 21, -18, 0, -9, -16, 3, 20, 5, 41, 16, 11, -31, 7, -2, -16, 8, -19, -12, 0, -19, -4, 26, 0, -20, -4, 4, -10, 12, 21, 3, 35, 3, -4, 19, 19, -16, 14, -12, 10, 15, -19, -6, 13, 5, 3, -15, -13, 21, -7, 14, -8, 2, -15, -15, -15, -2, 30, 16, -7, -26, 13, -31, 22, -7, -12, -8, -20, -23, -1, -4, -11, -1, -4, -1, -18, 0, 2, -33, 15, -19, 19, 26, 2, 15, -20, 9, 18, -6, -7, 29, -20, -23, 5, -3, 15, 12, 9, -3, 14, -6, -21, 11, 28, 26, 5, 22, 19, -18, -3, 10, -3, 15, 5, -7, 15, 6, -15, 9, -25, -5, 4, 27, -12, 14, 12, -3, -34, -3, -24, -4, -15, -6, -4, -11, 1, 12, 6, 11, 9, -22, 10, 21, 15, -14, 4, 20, 6, -32, 13, 7, 5, -3, 11, 38, -21, 31, 1, -48, -22, 10, 21, -1, 13, -46, -3, -1, -15, -8, 26, 10, -16, 4, 4, -31, -9, 37, 5, 7, -5, -25, -8, -8, -18, -14, 24, 20, 10, -15, 11, -5, 12, -20, 43, -9, -3, -1, -6, 3, -21, 15, -12, 3, 5, -10, -20, -2, -17, -23, -18, -8, 12, -5, -16, -2, -13, 30, -6, 12, -11, -17, -14, -32, 18, 13, 11, 7, 0, 6, 16, -28, -25, -6, -31, 25, -2, 19, 11, -9, 4, 17, 22, -9, -8, 6, -14, -3, -12, 5, -2, -20, 4, 26, 19, -2, 13, 11, -24, -9, -9, 26, -22, 28, -6, 16, -25, -20, -21, -8, -21, 9, -6, -12, -31, -5, 18, 6, -19, 23, -11, 22, -21, -6, 18, 5, -19, -19, -26, -22, 17, -24, -17, 18, 9, -24, -14, -9, -19, 15, -9, 20, 12, 25, 6, -17, 33, -12, -21, 5, -8, -20, -33, -6, 17, 14, 14, -2, -12, -29, -6, 0, 5, -39, -10, -39, 15, -11, 18, -7, 14, -6, -7, -30, 6, 3, -16, 8, -32, 16, -14, -7, 9, 24, 0, 7, 2, -9, -3, -11, -3, 2, -23, 16, 7, -20, 3, -1, -7, 23, -24, -17, -8, 4, -17, -19, 4, 16, 3, 5, -27, -24, -17, -13, -7, 16, -15, -16, -12, 31, 4, 7, 9, 20, -1, -16, -3, -17, -17, 13, 15, -38, -11, 28, -8, 13, -18, 2, 13, -28, 7, 4, 8, -4, 18, -20, -10, -2, 19, -8, 15, -22, -19, -15, 5, 12, 16, -2, -15, -18, 1, -29, -5, 27, -8, -11, 13, 9, -12, -3, -12, -4, -12, 0, 46, -8, -5, -8, -22, -36, -36, -2, 14, -20, -12, 26, 0, 1, -10, -11, 15, -32, 4, -16, -23, -2, -14, 9, 2, 5, 16, 12, 11, 6, -12, -4, -8, -2, -16, 8, 4, -19, -14, -5, 14, 8, 16, -10, 16, 33, 10, -16, 10, -25, -1, 17, -17, -5, -11, 22, -19, 1, -19, -4, -15, 12, -4, 20, 9, -15, -15, 5, 11, -40, -29, 2, 26, 10, -17, 3, 17, -11, -28, -6, -12, -26, -10, -25, 2, 14, -6, -27, 27, -14, 12, 10, -16, 0, -10, -2, -4, -5, 0, 33, 13, -14, 9, 7, -3, -1, 19, -10, 20, -7, -23, -5, 21, -10, 9, -22, -6, -1, -8, 3, -11, 2, -11, 15, 4, 16, -34, 12, -9, 4, -19, 19, 6, 12, -26, -15, 19, 14, -15, -2, -1, -19, -14, 22, -16, 16, -11, 8, -2, 23, -2, -10, 9, -4, 11, -19, 5, -6, 30, -1, -6, 21, -15, -13, -8, -16, 1, 8, -5, -8, -12, 3, -7, 33, -2, -3, -19, 14, -23, 13, -21, 15, -18, -28, 4, -3, -1, 8, -1, -11, -7, -36, 18, 23, 8, 36, -7, -22, -25, 6, -21, -5, 9, 24, -12, 2, 17, 2, 9, -19, -3, -22, -20, -10, -18, 4, -3, 7, -19, -4, 1, -4, -15, -11, -14, 20, -11, 14, -19, -22, 9, -10, 18, -18, -16, -5, 7, -26, 37, 10, -32, 9, 19, -19, 14, 24, 18, -19, 22, 12, -17, -16, -14, 2, -1, 16, 2, -5, -21, -7, -6, -12, 9, -9, -16, -6, -2, -32, -9, -25, -31, 11, 11, -11, -9, -23, 14, -24, -35, -29, -19, 10, -21, 35, -2, -5, -10, 26, 27, -15, 12, 16, -23, -7, -26, 10, -7, 2, -16, 12, -6, -20, -37, 8, -3, 14, 19, 5, -8, -12, -17, -7, -22, 8, -17, 16, -6, -3, -3, 17, -32, 0, -20, -12, -16, -24, -9, -26, 5, 4, -7, -12, 2, -4, 13, 20, 1, -16, 8, 18, -5, -28, 5, -1, -24, -16, 19, -32, 5, 25, -8, -4, 31, -15, -7, 28, -18, -30, -16, -14, 28, 14, 9, -11, 0, 8, 18, 18, 10, -9, 4, 1, 15, 6, 10, -5, -22, 9, -7, -9, 0, 22, 19, 17, -29, 33, -16, 17, -18, 15, 15, -11, 12, 15, -19, 31, 18, 19, -13, 15, -28, -5, 15, 9, -15, -3, 3, -14, 30, -9, 15, 16, -13, -17, -12, -16, 20, 0, -6, 9, -20, -16, -2, -17, -1, 1, -13, -7, -15, 4, 41, 1, 3, -1, 3, -19, -16, 2, -6, -15, -24, 11, 16, 23, -14, -7, 6, -6, 5, 19, -8, 10, 5, 3, 31, -22, -7, -4, -7, 8, -7, 9, 17, 11, 12, -27, -6, -2, 17, -18, -20, 24, -10, 8, -5, -14, 12, 16, 12, 12, -3, 13, -14, 23, 18, -12, 1, 2, -10, 27, -13, 30, 21, 14, 15, 11, -23, -11, 2, 19, -7, 3, -11, -2, -21, 25, 19, 12, -9, -8, -7, -6, 16, 7, 5, 5, 18, -10, -2, 7, 21, -36, -16, 10, -12, -29, -14, 1, -10, 22, -17, -4, -5, 9, 21, 1, -5, 20, -13, -18, 16, -1, -72, 18, 21, -28, -1, 18, -2, 17, 15, -16, -24, -8, -9, -16, 6, -11, 34, 21, -27, 18, 5, -14, 7, 0, -1, -10, -13, 15, 14, 8, -8, 2, 1, -19, -28, -5, -7, -1, 1, -6, -20, -12, -9, -12, 4, 37, -4, -6, -10, -10, 0, -7, 18, 0, 15, 0, -27, 12, -8, 1, 15, 16, 8, -10, -3, -18, -13, -7, -11, -14, -3, 3, 2, 13, -23, -11, 12, 4, 19, 10, 14, -23, 0, 6, 18, 8, 12, 14, 20, 22, 5, 8, -9, 11, -7, -9, 5, 12, 5, -2, 0, 4, -10, -1, 19, -27, -18, -1, 14, 17, 7, 28, -13, 19, 0, -14, -5, 14, -4, 8, 16, 7, 11, 13, 16, 16, 16, 17, 11, 9, -13, 17, -17, -15, 21, -34, -23, -17, 43, -24, 20, 9, 6, -3, 39, -15, 15, 16, -12, -27, 13, -5, -7, -14, 22, -11, -23, 9, -11, 12, -25, 11, 35, -19, -7, -18, -6, -7, 53, -30, -17, 2, -21, -13, 6, 11, 39, -27, -2, -41, -22, -33, -20, 5, 6, 8, 14, -26, 14, -14, -5, 6, -18, -5, 37, 16, 4, 29, -5, -34, -10, -14, -26, -24, -13, -6, 7, -15, 8, 3, 55, -10, 9, 6, 5, -18, 8, 8, -9, 9, -2, -28, -4, 23, 3, -11, -18, 14, 5, -48, -3, -8, 35, -14, 22, 4, -13, -2, 7, 0, -14, -12, 1, 9, 17, 5, 4, 4, 59, -6, 1, 12, 21, -21, -15, -30, 1, 15, 20, 7, 15, 21, 19, -3, 21, 4, 32, 1, 2, 16, -1, -43, 18, -28, 20, -13, -3, -23, 18, -29, -2, 17, 46, -30, -3, 16, -14, -46, 20, -14, -22, 5, 11, 16, 3, 10, 29, 10, 30, -6, -22, 4, -21, 1, -17, 17, -3, 9, -15, 21, 7, -2, 12, -9, -2, 19, 13, -42, 16, -12, 11, -8, -18, 2, 8, 10, -15, 8, -1, 3, 38, 2, -1, 4, -17, -34, -2, -6, 21, 18, -19, -50, -3, -16, 4, -1, 12, 18, -21, 16, -3, 17, -31, 16, 37, -1, -21, 20, -20, -8, 18, 12, 21, 9, -17, 17, 14, 26, 19, 26, -38, -37, -10, -51, -21, 2, 31, 11, 17, -7, -3, -24, 14, 15, 18, -18, -4, -10, -5, 1, 16, 0, -9, 6, -28, -15, 16, -5, 3, 12, -11, 11, 2, 3, 13, 18, -15, -36, 13, 20, 27, 6, -16, -13, 1, -42, -1, -12, -10, 5, -11, 24, 4, -8, 34, 3, -29, -6, 5, 8, -20, -8, -12, -10, -9, -20, -14, 21, 8, 12, 11, 23, 3, 6, 9, -26, 3, -5, -7, 2, -6, -16, 12, 9, 14, 19, 29, -6, -43, 21, -8, 9, 6, 16, 2, -3, 20, 11, -10, -30, -17, -36, 11, -9, 39, -1, -6, -17, 7, -16, -3, 3, -19, -17, -16, -12, -23, -16, 39, 5, -4, 20, -11, -26, 7, 22, -7, -15, 13, 4, 16, -26, -16, -32, 45, 10, 9, 10, 17, -28, -1, -30, -12, 37, 6, -8, 20, -24, -11, 12, 8, 29, 33, -2, -2, -11, 19, -10, -3, -34, -5, -17, -20, 10, 15, -19, 11, 9, -5, 8, -15, 5, -4, 14, 11, -28, 15, 6, -9, 21, -14, -10, 51, -12, -30, 6, 14, -27, -12, -6, -3, -10, 34, 17, 12, 11, -5, 8, 13, -14, 16, 10, -1, -17, 18, 16, -6, -27, 29, 0, 14, -12, 12, -14, -14, 19, -17, -7, -10, -9, 19, 19, 2, 15, 56, -1, 11, 6, 15, -16, -7, 7, 22, 17, -12, -29, 12, 18, -31, -2, 27, -8, -6, 20, -13, 3, -20, -23, 6, -11, -7, 4, 1, 6, -29, -14, 15, 3, -5, -6, 11, 8, 34, -15, -24, 26, -9, 4, 17, -31, 21, -4, 27, -11, 7, 4, -7, -16, 27, -18, -43, 5, 1, -9, 1, 9, -8, 24, 5, -2, -4, -7, 4, -9, -14, 1, -3, 14, 12, -27, 6, -49, -7, 28, 12, 3, -13, 15, -4, 17, 18, -12, 39, 5, -17, 0, -3, 24, 31, 21, 14, -10, 11, 2, -1, -21, 7, -19, -2, 17, 0, -22, -4, -2, -12, 10, -14, -6, -5, -2, 21, -24, -8, -7, -27, 1, -19, 5, -14, -21, 2, -19, 23, 8, 14, -2, 1, -14, 28, -24, -9, -22, 2, 41, -9, -10, -21, -15, -10, -5, 2, -18, -21, -2, 1, -23, 12, -4, -2, 1, -8, 42, -26, 8, -18, 4, -19, -3, -18, 21, -32, -2, -2, 7, 14, -9, 2, 11, -5, 22, 2, 16, -13, -54, -12, -10, -16, -2, -9, 10, -7, -1, 5, -8, 7, 4, -19, 2, -22, -12, -6, 11, 4, -18, -22, -4, 17, -15, 1, -21, 6, 13, 19, 1, -13, -1, -6, 4, -11, 9, -11, -10, -6, -10, -5, -8, -19, -24, 7, -3, -27, -16, -25, 10, 3, -21, -18, 16, 20, 11, 0, -11, -25, -17, -20, 13, -4, -11, -2, -28, 24, 2, -17, -8, -20, -6, -3, -49, -12, -17, -9, 8, -24, -10, -5, -10, -23, -7, -10, 0, -12, 11, -21, 7, -12, 11, 5, -1, -3, -23, -18, 6, 16, 7, 21, -24, -17, 1, -9, 47, 25, -1, -18, -3, -4, 28, 12, -22, -9, 14, -18, 16, 10, -4, 9, -2, 8, 17, -28, -18, 17, 8, -26, -16, 20, -4, 1, -16, 1, 25, -27, -5, -32, 5, -22, -23, 16, -21, -1, -32, -6, -4, -3, -11, -10, -6, -2, 4, -12, 9, 5, 8, 8, 2, 4, -30, -6, 13, 4, -15, 1, 31, 7, 20, -8, -22, -15, 9, 9, -7, -16, -11, -2, -15, 5, -3, 2, -27, 28, -12, 1, -10, -20, -2, -5, 10, 22, -21, 16, 16, 3, 9, 13, 36, -11, 17, -1, 9, -33, 12, -13, 3, 20, -26, -14, -2, -7, 16, 13, -1, -10, -4, -6, -12, -6, -9, 10, -14, -1, -15, 28, -13, -12, 1, -12, -5, 7, 7, 6, 14, -10, -20, 11, -24, 3, 2, 24, 14, -21, 15, -3, 25, -6, -6, 17, -19, 16, 15, -1, 26, 3, -14, -7, 12, -1, -22, 12, 7, 14, -5, -20, -19, 20, -3, -6, -17, -28, -8, -7, 5, -17, 6, -6, -39, -21, -2, 14, -11, 3, 10, -16, 3, -23, -8, -22, 8, -24, 6, -13, 16, -9, 4, -12, -19, -20, -18, -5, -16, 26, -8, 28, -22, -31, 12, -14, 18, 15, -29, -13, 17, -12, 17, -26, 7, 17, 4, 57, 14, -10, 2, 13, -49, 1, 8, 7, -21, 18, 10, 23, -14, 11, 32, -44, 10, 2, -1, -15, -29, -16, -28, 19, -14, -14, 17, -9, 12, -4, -14, 25, 4, -4, -6, -15, 17, 22, -8, -7, -5, -12, -23, -11, -9, -6, -5, 10, 14, -8, -19, 4, 45, 9, -19, 2, 17, 24, -14, -16, 44, 7, -3, 9, 13, 32, -21, 10, 27, 9, -4, -7, 1, 0, 17, 1, 23, 4, -15, -25, 14, 8, -7, -17, 2, -8, 26, -30, 19, -7, -20, -15, 4, 2, 7, -11, 13, -34, 0, -24, 14, 9, -28, 2, 19, -17, -11, 32, -32, 23, 3, 9, -21, 5, -1, -9, 3, 9, -13, 11, -11, -11, 9, 12, 19, -5, 9, -2, -11, -13, -8, 5, 7, -5, -16, -5, -11, -15, 0, 23, -1, 1, -11, -32, 17, -5, 6, 12, -51, -15, 16, 9, -21, 3, 9, 16, 14, 16, 14, 7, -1, 1, -12, -18, -9, 1, -16, -8, -23, -33, -12, 17, -19, 9, -33, 2, -18, 7, 18, 2, -7, 13, -11, 10, 14, -28, -18, -22, -13, 0, -24, -16, -18, -29, -11, -36, -28, -20, -30, -7, -24, -7, 17, 3, 12, 1, 28, -25, 11, -37, 14, 5, -25, -37, -3, -5, 3, 5, 9, -2, -5, -27, -31, -26, 18, 12, -4, 0, 4, -20, 13, -19, -19, -13, -22, -27, 2, 5, 35, -23, 5, -23, 4, 6, -9, -31, -11, 6, 4, -25, 17, 8, -2, 7, -12, -39, -8, 5, 1, -12, -20, 5, -7, -33, -1, -22, -15, -6, -36, 14, 16, -30, -1, 0, -10, -24, -50, 2, -27, -14, 19, -7, -10, -1, -35, -8, -16, -8, -3, -31, -20, -20, -18, -45, -3, -22, -8, 19, -2, 27, -7, -5, -20, 11, 15, -33, -11, 0, -6, -12, 7, -19, -9, -23, -19, -34, -9, -3, -24, -10, -14, -10, -6, -3, -37, -24, 5, -25, 9, 14, -26, 13, -2, 7, -15, -12, -13, -15, -23, -43, -35, -6, -37, -2, -14, 28, 1, 15, -27, -11, 12, 10, -1, -35, -19, -20, -26, 11, -9, -15, -12, -4, -1, -1, -18, -16, 31, -16, -10, 5, -7, 11, -5, 4, -15, -20, 13, -4, -23, -6, -8, 2, -38, -20, -16, 2, 14, 5, -35, 5, 14, 9, -12, 4, 16, 7, -10, -25, -21, 4, 3, -8, 9, 20, 12, 24, 20, 2, -2, -4, -24, 3, -16, -14, -26, -2, 0, 10, -1, -6, -7, 21, 15, 14, -21, -20, 12, -3, -7, -31, -25, 3, 10, -19, 3, -3, 2, 15, 4, -8, 17, 40, -2, -33, -7, -35, -23, -16, 6, -17, 4, -4, -2, 16, -5, 21, -15, 17, 2, 3, 7, 21, 0, -12, -1, -1, -6, -5, -15, 10, 1, -16, -18, -42, 7, -22, -10, 2, -21, 13, -26, 6, 8, -5, 10, 2, 9, -20, -1, 9, 5, 8, 6, 3, -28, 23, 15, 21, 14, -18, 7, -7, -3, 21, 9, -15, 8, -7, -15, 21, -25, 2, -14, 23, 15, 31, 30, 8, 9, -16, -4, 2, -6, -8, -30, 19, -1, 19, 8, -6, -9, 11, -15, -15, -23, -6, 4, 17, 15, 1, -4, -12, 16, 27, -13, 1, -20, -2, -9, 24, -37, -34, -10, -7, 2, 12, 33, -15, -21, -21, -18, 1, 11, 0, 4, -4, -7, 5, -20, 11, 10, 4, -6, 9, 6, 0, -20, -17, -13, 10, -20, -15, -40, -8, -22, -23, -12, -18, 9, -28, -23, 6, 12, -18, -24, -11, 24, -3, -23, -2, 3, -20, 1, 18, 27, 21, -4, -24, 5, 25, -23, 11, -15, 21, -11, -1, -23, -18, -14, 12, -8, 22, 1, -14, -8, -16, -21, 14, -4, 0, -31, -3, 13, 8, -6, 5, -24, -7, 8, 20, 16, -25, -14, 1, 8, -5, 8, -9, 12, -9, 4, -16, 14, 1, -6, 18, -20, -7, 7, -9, 28, -3, 19, -17, 14, 2, -20, 21, -32, 16, -22, -26, -2, 12, 3, -13, 1, 1, 11, 0, 14, 1, -21, -8, 17, 1, -17, -8, -22, -9, 9, -15, 9, -3, 4, 17, -4, -6, -8, -9, -22, -5, 34, -7, 10, 5, -20, 27, -17, -11, -8, 6, 17, -29, -5, 1, -20, -10, -3, -3, 5, -25, -20, 12, -46, 0, -27, -4, -7, -9, -16, 4, -11, 4, -2, -9, -1, 13, -4, -1, -18, -4, 6, -30, -14, 10, -12, -19, -19, -6, -23, -16, 4, 7, -17, -4, 3, 20, 6, 27, -6, -11, -1, 17, 21, -23, -21, -48, 9, 1, -14, 16, -46, 24, -28, -5, -8, -17, 9, -5, -28, 8, -19, 26, -3, -4, -12, -33, -10, -21, 11, 7, -23, 12, -2, -7, -17, 11, 3, 22, 6, 0, 10, -8, 0, 4, 14, 3, 3, -33, -9, 4, 16, 8, -17, 19, -20, 11, -18, 2, 8, 18, 7, 8, 5, 32, -24, -9, -52, 0, 7, -12, -19, -11, 20, -4, -13, -18, 3, -10, -22, 12, 8, -9, -9, 42, -24, 16, 9, -30, 2, 31, 14, 3, -10, -20, -2, 7, -15, 26, -25, 29, -27, -16, 14, -9, -4, 12, 3, -17, -23, -6, 7, 17, -7, 28, -3, 21, -8, -6, -2, 2, -11, -13, 8, -4, -31, -15, -7, 22, 16, -14, -14, -4, -16, -3, -25, 10, -13, -12, -7, 9, 2, -9, 2, -48, -17, 2, 17, 26, 7, -18, 15, 26, -13, -23, -18, 4, 0, 5, 6, -5, -2, -2, -4, -5, -20, -15, 15, 5, 7, 20, 10, 0, 29, 31, 6, -15, 18, 6, -4, 21, 10, -17, -2, 25, -1, -30, -2, -6, -7, -11, -21, -9, -8, -23, 29, 12, -26, 22, -21, -33, 17, -3, 32, 47, -29, -13, 0, -5, -16, 10, 11, -12, -10, -38, 5, 1, 15, -3, 0, -21, -27, -8, 14, -11, -11, -14, -15, -41, 6, -14, 1, 5, -24, 10, -16, 12, -4, -19, 14, -5, 5, -19, 1, -22, -14, -22, -10, -25, -21, -21, -21, 15, 11, 12, 2, 1, -7, 23, 24, -19, -13, -6, -2, 8, 19, -18, 0, 12, 3, -33, 13, 7, 13, -7, -17, 5, 5, -5, -9, 19, -9, -2, -10, 8, 0, -13, -16, -28, -8, 20, -61, -1, -16, 15, -7, -18, -6, 6, -7, -28, 13, -31, -18, -10, -1, -3, -35, 6, 4, 3, -23, -17, -3, -11, 17, -31, -6, -18, 14, 0, 10, -10, -2, -4, -15, -9, 11, -14, 13, -5, -21, -27, -29, -7, 16, -23, -1, -16, 6, 12, -24, -28, 9, 8, 15, -16, -13, -10, 34, -11, -2, -2, 19, -26, -28, 5, -30, 8, 7, -37, -12, 20, -16, 5, 6, -12, 14, -2, -9, 2, 2, 15, 21, -15, -22, -4, -25, -5, 7, -1, 3, -18, 4, 0, 8, 5, 0, -4, 28, -10, 10, -6, 16, 5, -5, -38, -8, -3, -20, -9, 8, -24, -18, -4, -3, -3, 15, -15, 11, 13, 10, 27, 18, 1, 7, 0, -2, 6, 11, -13, 7, 2, -19, -16, 18, -10, 1, 22, -33, 11, 17, 6, -18, 5, 5, -14, 3, 3, 11, -16, 10, -18, 13, -2, -3, -7, 7, 15, 7, 2, -37, 3, -12, -16, -15, 11, -1, 16, 12, -1, -19, -13, 1, -10, -7, 23, 13, -2, 21, 2, 15, -19, 6, 13, 13, -3, 15, 13, 0, -12, -20, 3, -9, -4, -17, 24, 5, -27, 2, -10, -3, -2, 4, -3, 12, 1, -2, -11, 2, 17, -8, 28, -10, 15, 5, -23, 11, -6, -5, -16, 5, 19, 19, 7, -1, 11, -12, 5, -18, 11, 3, -22, 3, -11, -15, -7, 5, -1, -11, 3, 12, -12, -21, -7, 0, -4, 6, 5, -9, 0, 26, 8, -19, -7, 2, -10, 28, 2, 1, 25, -22, 23, -10, 26, 18, 2, -30, 26, 5, 18, 3, -24, 16, 23, -14, -14, -4, 15, -8, -3, 1, 9, 7, -5, 11, -28, 9, 16, -11, 9, 35, 3, -20, 14, 13, 33, -6, 21, -11, -18, 17, -5, 18, -2, 0, -14, -1, 16, -6, 29, -2, -7, 0, 32, 1, 5, -8, -25, 3, -7, -3, 18, -11, 0, -22, 20, 11, -14, -13, -35, -9, -9, -17, 16, -20, -11, -18, -10, 5, 11, -4, 7, -5, 0, -12, 19, 1, 19, -6, -5, 9, 47, -12, 19, 4, 19, -21, 43, -22, -8, 12, -14, 17, 4, -4, 2, 10, 8, 5, -15, 25, -20, 15, -7, -7, -5, 2, -11, 7, 10, 9, 10, -2, 20, 15, 19, 18, 0, 9, -8, 15, -19, 11, 38, -15, 8, 14, 28, 15, -5, 15, 27, 15, 19, 6, 13, 12, -19, 23, 24, -16, 0, -17, 5, 1, 19, -7, -8, -5, -5, 12, 23, -17, 11, -2, 19, -19, 14, 9, 4, -4, 11, -9, 9, 10, 8, -19, -7, -5, 22, 18, 19, -30, 12, -2, 17, 15, 7, -11, 7, 0, -4, 10, -16, -14, 5, 19, 8, -9, 22, 14, 2, 8, -10, 27, 3, -20, 18, 11, -15, -20, 19, -6, 25, -25, -36, -2, -5, 8, 26, 36, 28, 22, -2, -12, -25, 1, 24, 11, 23, -5, -21, 4, 18, -12, 22, 1, -12, 18, -14, 5, -9, 16, 9, 6, 3, 1, -20, -22, 24, -13, -2, 8, 1, 1, 23, -21, -15, -19, 10, 44, -22, 9, -6, -11, 8, 14, 4, -24, 4, -24, -11, -19, -8, 5, 34, 33, -1, -12, 10, 16, -6, 6, 39, -22, -27, 9, 3, 10, 4, 7, -16, 20, 0, 20, -6, -2, -7, 6, -4, 2, -5, -6, -12, -8, 20, -20, -11, -16, 13, 11, 55, -7, -19, -5, -4, -21, 8, 2, -5, 7, 21, 9, 27, -25, 5, 17, -17, -23, 20, -8, -30, -15, -1, 10, -5, -11, -21, 0, 0, 20, -9, -17, -26, -11, 11, -19, -14, 7, 15, 27, -21, 6, 17, -16, 19, 0, 22, 18, -5, 9, 20, -6, 0, -13, 22, 2, 30, 6, 10, 15, 6, 8, -21, -25, -13, -15, -4, -19, 4, 24, 2, -16, -10, 11, 6, -9, 12, -18, -21, 31, 3, -9, 5, 17, -16, 39, 2, -16, -5, 5, 26, -3, 13, 18, -5, -3, 0, -1, 14, 10, 42, 18, 9, -19, 4, -17, 28, 3, -32, -26, 15, -15, 11, -6, 13, -3, 17, -1, 14, 16, 4, 1, 10, -23, 29, -26, 4, -11, -18, -10, 2, 4, 26, -13, 36, 1, 1, -17, 0, -8, -5, 17, 2, 10, -22, 6, -24, -18, 26, 22, -14, -33, -36, 0, -2, -17, 48, 20, 17, -16, -13, 2, -13, 5, 5, 6, 11, 2, 1, 7, 13, 1, -19, 14, 1, 3, -55, -15, 4, 8, 40, 0, 30, -12, 7, 9, -39, -9, 23, -9, 42, 16, -4, 7, -23, 0, 46, 5, 20, 22, 5, -16, -23, 12, 14, 33, 33, -1, -1, -10, -14, -2, -1, 1, -2, 0, -17, 9, 5, 9, 2, -5, -7, -14, -7, -11, 11, 10, 26, -24, -4, -20, -15, 15, 4, -22, 35, -5, -21, 14, 17, 8, 12, 17, -8, 7, -5, 11, 16, 8, -22, -3, -14, -3, -12, 12, 8, -20, -33, -18, 5, 12, -1, 1, 24, -6, -19, 13, 2, 18, 14, -5, 12, 13, -4, -13, 25, 6, 11, -2, -8, 11, 15, -17, 48, -6, 37, -12, 15, 2, -15, 8, 29, 32, 19, -14, 21, 13, 19, -1, -24, 8, -12, 13, -23, -8, -11, -8, 5, 46, 6, -21, 21, -17, -3, -12, -2, -14, 9, 5, 17, -11, -22, -2, 25, -29, -17, 8, -31, -6, 36, 14, 4, 17, -16, -15, 15, -24, 12, -16, 9, -15, -1, 21, 48, 4, 19, -6, 2, -8, 9, 3, 2, -19, 6, 11, 28, 34, 1, -27, -2, 7, 4, 14, 14, 0, 0, 15, 27, 3, 14, 16, -20, -22, 15, 21, -7, -8, -18, 4, 24, -25, 35, -2, -28, -3, -23, 15, -6, 15, -7, 8, -28, 15, -13, -18, 22, -2, 14, 2, 8, -21, -1, -10, -18, 16, 21, -4, -22, -14, 21, -4, 27, 1, -17, -3, 6, 7, 19, -12, 22, 14, 42, 25, 0, 11, 3, 5, -1, 12, 11, 3, 10, 0, -24, -12, 25, 31, 0, 18, 29, 0, -18, -15, 37, 23, -18, -34, 14, -4, -13, -22, -9, 22, 20, 22, -2, -4, 7, 10, 16, 3, -17, 3, -34, 6, -49, 16, -18, 5, -17, 48, -24, -15, -20, 18, -4, 9, -14, 11, 2, -2, 42, -6, 4, 3, 15, 3, 18, -13, -6, -6, 9, 4, 23, -25, 5, -2, -1, -7, -2, 0, 13, -4, 14, -20, 1, 9, 2, 25, 17, -6, 17, -3, 8, -1, -10, 29, 26, 3, 33, -14, 13, -8, -11, -49, -27, 26, 8, 16, -16, 4, 21, -50, -10, -2, 14, 8, -17, -16, -11, 32, -14, -11, 20, -10, 38, -8, 31, -16, -16, 5, -12, 8, 4, 16, 15, -1, -32, -4, -2, -23, 12, -7, -18, -2, 14, -71, 6, -18, 14, 15, -1, -10, 4, -12, 15, 20, -7, -5, 38, -36, -7, 5, 20, -5, 13, -14, 31, -32, 4, -14, 23, 10, 21, 8, 1, 12, -19, 7, 27, -5, 7, 20, 25, -57, -2, 4, 5, 18, -6, -3, -17, 8, -14, -11, -12, -5, 26, -21, 18, 5, 24, -22, 21, -6, 29, 3, 14, 9, 39, -9, 8, -15, 30, -14, -1, 25, 22, -58, 14, -12, -16, -6, -19, 25, -27, -7, 23, 4, -4, 19, 13, -5, -2, -8, -8, -8, 9, 20, -2, -1, 3, 11, 11, 21, -14, -14, 34, 8, 18, 15, 34, 9, 47, 11, 3, 17, -18, -9, 15, -9, 5, 2, -7, 15, 28, -16, 34, 17, 11, 2, 10, -1, -10, -14, -15, 8, 3, -20, 19, -5, -5, 21, -35, -8, 18, 7, 2, 26, -7, 7, -13, -20, 21, -2, -16, 27, 24, -5, 12, 20, 16, -2, 22, 26, 56, -19, 13, -15, -16, -14, -3, -19, -7, 21, 39, 12, 11, 22, -23, 12, 2, -3, -20, -14, 27, 18, 31, 3, 70, -23, -20, 15, 21, 9, 30, 21, -5, 0, 24, 17, -17, -22, -25, 15, 42, -8, 28, -1, -16, 9, 34, -24, 29, 6, 11, 14, -27, -11, 37, -21, -10, -2, 16, 1, 15, 0, -6, 18, -19, 22, 7, 8, 14, 10, -11, 0, -3, -5, -12, -14, -17, -23, 23, -8, -9, 13, 4, -1, 28, -4, -2, 2, -36, 11, 18, 9, 41, -14, 8, 25, 15, 17, 4, -19, 31, -18, -10, -7, -11, -16, -11, -23, -8, -21, -1, -9, 1, 11, 16, 9, 18, -8, 7, -3, 0, 11, 6, 12, 16, 22, 6, -11, 33, 20, 30, 11, 4, 19, -13, -35, 27, 39, -15, 16, 4, 18, -13, 28, -14, 17, -11, -22, 34, 15, 1, -12, -46, -13, 64, 15, -17, 8, -26, -21, -1, -9, 15, 7, -5, 13, 18, 16, 36, 14, 37, -11, 18, -4, 44, -9, 4, 15, 3, 1, -11, 18, 1, -23, -16, 7, -8, -19, -1, -8, -22, -9, 62, -25, 28, 17, -12, 12, -6, -5, -1, -9, -16, 9, -2, -21, -7, 6, 47, 20, 6, -7, 26, -13, -5, -14, -36, -34, -6, -21, -9, -11, -1, 20, -7, 19, -28, -5, 10, 6, 36, 14, -10, 18, 1, -17, -36, 19, 16, -37, 8, -4, 21, 4, 2, 10, -34, -27, 25, 11, 10, -9, -14, -7, 22, 24, 20, -3, -2, 8, -29, 4, -7, 14, 50, 13, 15, 4, -11, 20, 26, 9, 24, 21, 15, -12, -15, -8, 15, -14, -2, 12, 24, -12, 25, -2, -20, -21, -48, -10, 7, -18, 5, -22, 24, 11, -1, -5, -13, -20, 12, 17, 29, 3, 4, -26, -21, -3, 5, 12, -8, 1, 8, -5, 22, -15, 3, -1, 2, -9, 11, -7, 44, -19, -7, 7, 18, -22, -14, 8, 6, 4, -2, -22, -34, -43, 13, 18, 12, -11, 20, -10, -41, -1, -28, -3, 10, 14, -3, 8, -12, -9, 20, 5, -32, -9, 33, 2, 19, -3, -15, -23, -22, -8, 4, -17, 23, -27, -16, 9, 17, 7, -38, -11, 16, 19, 26, -3, -14, 14, -4, 6, -11, 18, 28, -10, 11, 17, 29, -18, -3, 3, -27, 5, 7, -16, -15, -19, 3, 30, 12, 16, 12, 3, -24, 8, 19, 1, 17, -12, 3, 13, -2, -16, -44, -14, -3, 1, -31, -2, 27, -2, -4, 9, 9, -12, 7, -23, 11, -8, -7, -6, -33, -27, 5, 3, 26, -11, 0, -4, -21, 11, 14, -19, 23, -23, -5, 8, -20, 15, -3, -12, -11, -12, -11, 15, -21, 4, 19, 15, -14, 1, -28, -8, 32, 6, -14, 15, -27, -2, 12, 27, 20, 39, -12, 8, -34, 6, -2, -24, 20, -2, 41, 6, 42, 12, -34, -20, -23, 5, -32, -2, -6, 2, 15, 41, -4, -16, 9, -13, -18, -17, 19, 11, -6, -44, 31, -2, 25, -11, -24, -32, 3, -11, -21, -6, -25, -19, -7, 24, -4, -4, -17, 17, 36, 7, 0, -23, -28, -2, 26, -9, -4, 0, -26, -31, 17, -8, -7, 8, 23, -6, -21, 12, 3, 28, -22, -23, 0, -2, 28, 24, 17, -10, -8, -1, 10, -11, -6, 3, -13, 4, -19, -3, -8, -7, -8, -17, 11, 2, 7, 11, -23, 1, 11, -13, 9, -14, -5, 18, -26, -15, 33, 21, -16, 16, -25, -1, -17, 16, -11, 14, 11, 17, -15, -17, -23, 10, -1, 0, -24, 11, 1, -16, 7, -10, 4, -16, -5, 13, -20, -7, -17, 16, 34, 14, -4, -14, 15, 9, -13, -14, 18, 7, 4, 11, 14, -2, -16, -20, 16, 22, -23, -20, 18, -12, -2, -5, 16, -15, -35, 16, -22, -6, 23, 6, 6, -21, -37, 21, -33, 2, -23, -13, 24, 8, 13, 18, -16, -18, 0, 0, 0, 3, 0, 0, 22, -9, -18, 17, -5, -2, -28, 16, -11, -14, 19, 5, -20, 5, -15, 18, -24, 16, 0, 14, 3, -16, 0, 28, -2, -11, 10, -5, 9, 8, -1, -1, 11, -21, -17, 4, 10, 9, -17, -2, 5, -23, -2, 9, 14, 5, 17, 9, 11, 18, -17, -21, 18, 6, -13, -9, -21, -2, -4, 8, 13, 12, -7, 25, 0, -13, -24, -5, -13, -11, -4, -20, 74, -19, 6, -6, 5, 20, -12, 8, -6, 1, -5, -14, -18, 1, -22, 13, 10, 11, -19, -16, -29, -29, 14, -24, 4, -21, 10, 6, -12, 10, 2, -9, -23, 3, -9, 12, 20, -18, -14, 22, -12, -6, -38, -14, 2, -46, 10, -21, -3, -3, -5, -24, 17, -11, -16, -14, -10, -18, -14, -3, -19, -32, -44, 25, -1, 17, 15, 13, 3, 10, -6, 11, 33, -16, 25, -23, -23, -3, -16, 30, 13, 15, 1, -16, -24, -12, -34, 25, -40, -4, -20, 6, -5, 9, -23, -6, 15, -3, 10, -4, 10, -25, 17, -2, -7, 6, -23, 11, -14, 1, 10, -1, -6, -14, 9, 1, -8, -4, -20, 24, -11, -11, 38, -5, -19, 18, -18, 9, 13, 18, -2, 9, -3, -5, -20, 46, 1, -17, -1, 17, 22, 14, -8, -3, -9, -4, -9, 14, -1, 17, 14, 7, -18, -18, -3, -5, -1, -4, 4, 15, 14, -16, 3, -1, -11, 6, -8, 3, 17, -23, 8, -10, -21, -6, 7, 7, 56, 4, -7, -17, -12, 33, -2, 1, -17, 7, 8, 12, -7, 9, 0, 16, 41, -19, 0, 6, -5, -2, -9, -10, 0, 9, 2, 23, 17, 17, -8, -9, 13, -11, -3, -3, 18, 1, -1, -3, 25, -20, 9, -15, -22, -11, -32, -8, 22, 8, 37, -6, 32, -9, 18, -3, 27, -11, -6, 0, -18, -1, 0, 27, 35, -2, 3, 4, -16, 3, -6, 4, 44, -16, 16, -17, -31, -16, -1, -14, 69, -19, 19, 12, -10, 13, -8, -9, 9, -13, -25, -13, -15, 7, -11, -15, 5, -7, 49, 7, -15, 8, -5, -4, -4, 15, 24, 15, 18, 15, 10, 2, -13, 3, 19, -11, 16, 10, -7, -12, 40, -1, -3, 7, 9, -4, -4, -7, 19, -19, 7, 8, -5, -13, 4, 13, 17, -18, -2, -22, -14, -16, 8, 4, 51, 7, 5, 14, -30, 0, -10, 30, 6, 12, -4, 2, -15, 11, -37, -17, 33, 16, 7, -13, -18, 26, 6, 13, -10, -2, 40, -16, -25, -14, -10, -34, 25, -11, 3, -12, -5, -8, -3, -3, -1, 6, 17, -20, -15, -5, 4, 19, 34, 3, -3, -9, -7, -12, -7, 0, 16, -1, 28, -14, -4, 5, -2, 17, -3, -15, -9, -16, -4, 22, 15, 0, 6, -19, 47, -11, -8, -31, -33, -26, 1, 8, -39, 4, -27, -32, -14, 6, 24, -10, -13, -10, -14, -22, 17, -7, 18, 16, 22, -4, -25, -1, -6, -9, -60, -19, 9, -6, 1, 6, -1, -1, 12, -1, -45, -8, -17, -17, 18, 8, 15, 2, 11, -1, -9, -7, 0, 2, 25, -11, -11, 10, -5, -22, -9, -10, 19, 11, 0, -9, -41, 10, -22, -2, 10, 14, 17, 5, -24, -6, -4, -8, -1, 8, 25, 8, -9, -12, -31, -13, -26, 13, 10, -18, -16, -3, 10, -19, -19, -9, 15, -21, -17, -18, -7, -41, 2, -13, 19, 8, -26, -43, 18, -37, -6, 18, 3, 7, -27, 14, -13, -14, 11, 12, 11, 8, -8, -18, -40, -11, 33, -15, -46, -17, -8, -11, 12, 35, 18, 2, 21, -19, 1, -46, 19, -12, -16, -1, 11, -5, 18, -19, -27, -27, 6, 8, -1, 17, 9, -10, 3, -21, -29, -17, 32, -10, -19, 10, -31, -20, -29, 23, 46, -5, -23, -26, -38, -28, 31, -2, 4, -13, -22, -17, -23, 4, -13, -24, -12, 10, -12, -13, -15, 21, 20, -3, -3, -22, 2, -16, -18, -7, 14, 4, 5, 12, -21, 13, 8, -10, 31, -4, -42, -20, -23, -22, 51, 2, 16, -10, 18, 16, -12, 3, 10, -23, -5, 10, -16, -23, 24, 39, 1, -4, 4, -7, -5, -9, -6, 6, 12, -15, -26, 16, 5, -15, 9, -1, -34, 26, -5, 3, -4, -6, -24, 10, -7, 25, 18, -9, -12, -18, -13, -7, 29, 3, 6, -4, 0, 9, -16, 2, -7, 28, -7, -3, 6, -12, -18, 12, -17, -1, 16, 11, 23, -4, 1, 9, 1, 13, 31, 2, -5, -11, -7, 9, -12, 15, 24, 2, 22, -11, -23, -14, 12, 6, 2, -23, 28, -12, -11, -15, 6, 10, 6, 12, 8, -18, -15, 12, -20, -23, -8, -2, -9, 2, -13, -16, -5, 22, 32, 3, -17, -15, -32, 6, -6, -9, 42, -5, 6, -21, -20, -1, -42, 4, 11, 7, 3, -9, -15, -28, -34, 21, 5, 18, -13, -23, 4, -10, -35, 4, 25, -3, 18, -3, 0, 17, 5, -3, -11, 10, -8, -24, -30, -18, -26, -14, 16, -3, 14, 18, 1, 10, -10, 13, -8, 20, -4, -12, -28, -3, -3, -74, -15, 12, 14, -14, 12, 2, -9, -10, -19, -19, 15, 12, 31, -26, 19, 32, -15, -5, -1, 17, -7, 8, -4, -2, 24, -19, 6, -11, 14, 20, -21, -36, 21, 15, 8, -3, 6, 4, -24, 34, 0, 5, 3, -21, 11, 11, -17, 0, 5, -11, 24, -23, -21, -23, 23, 4, 21, 11, -4, 15, 2, 9, 3, -12, 21, -4, 16, -8, 37, 12, -4, 26, 11, -1, 11, 13, -3, -32, -16, 6, 16, -8, -7, -3, -1, -3, -3, -18, 4, -22, 21, -4, -1, 23, -18, 1, -16, 10, -9, 1, -13, 20, 4, -17, -2, -2, 12, 0, -28, -3, 40, -16, 23, -8, -10, -18, 8, 23, 28, -35, -19, -11, 26, -21, 6, 0, -24, 20, -6, -13, 22, -9, -3, -5, -23, 9, -11, -2, 1, 17, -6, 1, -13, -26, 20, 6, 20, 15, 15, 17, 3, -1, 13, 15, 22, 2, 28, 25, -7, 17, 27, -10, 11, 15, -16, -44, -12, -25, 27, -17, 21, -18, 10, -3, -4, -22, -11, 20, 15, -15, 19, -2, 7, 16, -13, -14, 16, 11, 29, -4, 13, -23, 8, 1, -14, -1, 10, 5, -3, -17, -12, -6, 17, -1, -1, -29, -11, -12, -2, -4, 4, 11, 28, 21, 22, 6, -16, 12, -9, -5, 15, 13, -27, -23, 7, -20, 2, -16, 6, -2, -11, -3, 44, 10, 29, -22, 19, -7, -32, -22, 0, 1, 8, -3, -8, 18, 22, 0, 29, 7, 22, -1, 14, 9, 4, 37, -35, 8, 36, -14, 14, -14, 25, 25, 32, 3, 2, 4, 20, -7, -14, -12, -12, -16, 42, 12, -7, 10, -4, 10, 19, -6, 7, -5, 12, 22, 9, -16, -8, 11, 5, 2, 0, 40, 14, 26, 3, -13, 4, -12, 7, 6, 27, -8, 24, -16, -6, 4, -6, 31, 8, -43, 10, -13, 21, 14, -11, -14, 4, 5, 11, 6, 9, -12, -18, -45, 13, -6, -21, 18, -38, -14, 17, 0, 25, -24, 26, 13, 0, 7, 22, 2, -5, -30, -16, 18, 10, 6, 12, -14, 5, -17, 7, 15, -14, 17, -33, -41, 7, 12, 8, 1, 29, -22, 0, 19, 19, -3, -9, -13, -11, 8, -9, -10, -27, -1, -31, 17, -7, -14, -20, 2, -27, -20, -7, 21, -15, 14, -5, 25, 14, 20, -17, 0, 15, -5, -23, -5, -9, 7, -5, -2, -12, 0, -7, -35, -25, -37, 1, 11, -5, 1, -30, 23, 6, 16, 13, 13, 11, -17, 3, 35, -16, 40, 11, 17, -5, 21, 35, -18, -6, -14, -2, 10, -37, -17, -24, -24, -34, 18, -16, 18, 3, -3, 7, -11, -5, -15, -4, 16, -14, -12, -26, -3, 8, -63, -4, -1, 4, 3, -39, -12, -33, -13, -1, 0, -5, -11, 5, 38, -2, -13, -14, -21, -13, -18, 0, 7, 5, 14, -2, -7, -32, 6, -25, 15, -22, -5, -6, -9, -4, -12, 13, -12, -6, 14, -10, -11, -17, 15, 6, -33, -22, -57, -10, 8, 32, -11, -14, -30, 12, -20, -2, 10, 19, 16, -40, -24, 21, 29, 19, -12, -6, 18, -8, 22, -8, -5, 9, -6, -2, -7, -18, 49, 0, -33, -13, -19, -21, -20, 0, -4, 8, -29, -1, 7, 27, -14, -24, -3, -10, -34, 10, -20, 15, -13, -40, -59, -34, -42, 11, 9, -13, 0, 1, -2, 4, 0, -20, -18, 10, 9, -8, -12, -1, 5, 5, -1, -10, -18, -30, 8, 2, 1, -17, -4, -17, 3, -17, -19, 3, 18, -9, 17, 16, 4, 22, 21, -18, -7, -28, -16, 18, -17, -5, 4, 12, 2, -6, -3, -18, -6, 22, 3, -1, 13, 11, 14, -32, 19, 2, 20, 9, -10, -1, 8, 16, 7, -28, -15, -8, 49, 6, -10, 24, -2, -10, 34, 9, -2, -3, -11, -12, 13, -8, -1, 12, 7, 8, -21, 20, -9, -1, 13, -8, -28, -1, 12, 4, 1, 15, -8, 7, -40, 4, -18, 8, -19, 14, 2, -5, -1, 4, -13, 13, 1, 2, -11, 5, -25, 11, 5, 20, -17, 7, -22, -17, -14, -27, 1, -9, -16, -41, -19, -8, -4, -11, 10, 35, -23, -22, 17, 22, -27, -8, 1, -7, -7, 15, -11, -21, -1, 14, -21, 0, -13, -47, -10, 6, -15, -10, 2, 24, -12, -29, 20, -29, -10, -10, -15, 7, 1, -7, -11, 2, -28, -5, 5, -13, -16, -41, -37, -4, -16, -23, -19, 9, 14, -9, -25, -25, 13, -26, 13, 7, 12, -26, -14, -14, -27, 14, 7, 2, -18, 18, -17, -39, 11, -9, -22, 18, -22, -25, 15, -1, 28, -6, -14, -12, 17, -17, 10, -13, 2, 8, 8, -17, 9, -25, 25, -19, 15, -12, -22, -2, -15, -16, -34, -19, 21, -4, 13, -14, -11, -10, 10, 27, 8, -3, -13, -7, 8, 13, 25, -24, -3, -6, -9, -5, -14, -8, -32, 18, -7, -10, -6, -5, 0, -3, 13, -18, 5, -8, -22, 16, -1, -26, 21, 10, 6, 21, -7, 19, 8, -3, 14, -25, -2, 1, -8, 17, -17, -8, 16, -12, -2, -27, 4, -16, -15, -5, -14, -20, 4, -14, 3, -13, -2, -30, -3, -14, -2, 3, 1, -3, 13, -16, 9, -3, 25, 0, -24, -14, 7, 10, 3, -15, -4, -5, -9, -4, 13, -29, 4, 14, -5, -11, -20, -13, 0, -2, 0, 16, 10, -24, 0, -21, 17, -6, 4, 2, -29, 21, -12, 18, -2, -29, -8, -18, 5, -8, -5, -3, 4, -7, -18, -2, 0, 12, -19, 11, 8, -29, 11, -22, -24, 1, -21, -20, 1, -27, -5, -5, 9, -12, -2, 2, -20, 14, -8, 19, 4, -9, -23, -16, 4, 8, 3, -15, 3, -11, -15, -6, 6, -22, -7, -26, -13, -13, 13, 27, -13, 3, -5, -6, 6, -25, 4, -3, 16, -18, 25, -22, -14, 12, 10, 1, 13, 21, -39, 21, 4, -4, 0, 5, -1, 16, -15, -33, -2, -18, 8, -7, 14, 9, -13, -5, 1, 9, -11, -22, 19, 4, 7, -39, 0, -9, -18, 5, 3, -14, 10, 0, 19, -17, -19, -1, 18, -36, -2, 0, 6, 3, 0, -21, 4, 6, -1, 9, 3, 13, -12, 0, -11, -19, -12, 18, -4, -10, 7, -15, 11, -4, -8, -33, 20, 18, -18, 6, -7, 12, -3, 20, -32, 21, 2, 28, -3, 21, 3, -4, -35, -6, 5, -20, -21, 19, -29, -4, 4, -13, -3, -4, -10, -9, 26, -8, -3, 27, -6, -4, 8, -7, -6, 19, 10, 7, -4, 24, -22, 1, 13, 1, -17, -15, -10, 0, 14, -14, 27, 13, 3, -34, 10, -5, 19, -41, 2, -3, 10, 8, 7, -4, -17, -24, -18, 10, -7, -23, 9, -3, -4, -14, 12, 14, 13, -10, 8, 20, 3, 13, -3, -21, -1, -8, 15, 2, 6, 7, 9, -11, 6, -24, -14, -11, -12, -12, 6, -13, 32, -24, 9, 29, -10, -9, -52, -17, 19, -14, -17, -10, 13, -13, -9, -27, 5, -37, -18, -18, -9, -47, -2, -2, -16, -32, -11, 6, 18, -32, 7, -13, 4, 6, 10, 10, 13, 2, 28, 24, -23, 5, 2, -5, -17, -13, -13, -24, -48, 16, -1, -12, 18, 12, -20, -12, -8, 18, -7, -22, 5, 19, -21, -24, 10, -22, 12, -4, 2, -9, 8, 3, -13, -3, -10, 2, -10, -5, 18, -12, 7, -11, -18, -30, -18, -43, -14, 1, 18, -25, -8, 5, 1, -17, 44, 3, 5, -31, -4, 15, 8, -18, -3, 37, -38, 13, 8, 14, -1, -17, -9, 17, -52, -34, -21, -18, -21, -16, 25, -5, 18, -16, 8, 5, -11, 1, -11, -6, 14, -11, -11, -19, -6, -10, -13, 1, -10, 4, -6, -17, 4, 9, -40, 1, -17, 7, -17, -9, -7, -33, 6, 6, -3, -19, 20, -15, 7, -34, -7, 5, -14, -8, 1, 4, 3, 8, -7, -18, 11, 3, 15, -10, 11, 14, 8, -43, 17, -45, 11, 6, 4, 10, 25, 3, -11, 4, 13, 5, -8, 2, -22, 0, 17, 16, -6, 15, 8, -9, -43, 12, -3, -35, 9, -17, -14, 13, 18, 3, 3, -2, -15, 11, -7, -40, -25, 25, 0, -9, -9, 26, -18, -17, -8, -36, -14, -7, -14, 18, -9, -23, 18, 15, -22, 6, -6, -4, 6, -5, 18, 2, -4, -15, 9, 12, 14, 21, -32, 17, -21, 6, -13, 0, -11, 30, 5, 9, 28, -12, -3, -6, -3, -31, -2, -13, 16, -1, -2, -1, 12, 34, -4, 13, -35, 12, 14, 2, -7, -19, 2, -13, -14, -26, 8, 3, 10, -17, -28, -10, 28, 9, 16, 5, -20, 20, 8, 24, -31, 27, 13, 8, 9, -33, 11, 4, -16, -5, 2, 22, 1, -9, 22, 11, 3, 2, -14, 16, -8, 15, -32, 8, 0, -2, 10, -8, -10, 8, -19, 40, 4, -35, 12, -12, 13, -7, 15, -14, -28, -6, -10, -3, 3, 20, 4, -31, -29, 4, 10, 21, 16, 5, 4, 24, -30, -5, 6, -4, 2, 0, 34, 21, -9, -11, 7, 10, -2, 18, 10, -8, -18, 8, -9, 21, -12, -6, -4, -13, -6, -5, 16, 11, -18, -17, -4, 2, -4, 0, -7, -17, 9, 16, -4, 4, 1, 7, 10, -4, 6, 21, -1, -12, -8, 13, 4, -2, -16, -29, 10, 27, -10, -5, -12, -14, 5, 26, 16, -6, 13, 7, -5, -17, 3, -8, -15, -3, 11, 3, -18, 11, 18, -28, 19, 3, -43, 1, -6, -9, -2, -20, -3, -29, 0, 27, 19, 11, -16, -11, -18, -21, 4, -6, -20, -19, 14, -20, 8, -17, -12, 11, -5, -1, -2, 9, 12, 9, -9, -8, -5, -8, 14, -3, -20, 9, 0, -14, -20, -9, 17, 6, -24, -42, 26, -25, 16, 21, -2, 6, -20, 20, -24, 9, -13, -10, 18, -17, 8, 7, 17, 5, -7, -9, -4, 6, 2, -25, -15, 9, 15, 18, -21, -9, -3, 10, -5, -7, 3, -27, -8, -24, -28, -8, 9, 37, 1, -10, 2, 21, 0, -7, 22, -29, -2, -2, -18, 5, 35, 8, 5, -5, -3, 6, 9, 15, -13, -33, 6, 5, 6, 1, -4, -9, 17, -10, -16, 17, 7, 11, -5, 11, -26, -9, -17, 6, -7, 14, -6, -4, -10, -6, -6, 8, -4, -12, 0, 3, -5, 0, 29, -12, 0, 1, 19, -2, 9, 11, -20, 17, -3, 13, -13, -18, -33, -10, -17, -10, 10, 30, -7, 16, 15, 12, 2, 9, -11, 23, 11, -30, -11, -18, -17, -1, -7, 23, 18, -7, 18, -13, -26, -22, -9, 24, 12, -21, 28, 2, -14, -16, 17, 23, 14, 11, -1, -21, 16, -31, -2, 19, 12, 4, -15, -11, -2, -5, -8, 15, -19, -24, -14, 8, 9, -1, -18, -20, 3, -10, -19, 29, 14, 25, 2, 24, -24, -19, 6, 13, 13, -3, 2, -25, -15, -12, 8, 11, 11, -6, 15, 2, 19, -14, 32, -6, 8, 6, -4, 24, 12, -18, 17, -26, 14, -7, -1, 23, 0, -33, -2, -6, 13, -11, -3, 2, 17, -10, 4, 3, 23, 11, 2, 3, -15, 20, 1, 7, -25, -2, 11, -7, -4, -12, -26, -7, -14, -13, 17, -12, -12, -6, 6, -10, -22, -3, 4, -5, 11, 18, 13, -12, 22, -8, -19, 15, 7, 22, -2, -15, -13, -9, -15, -3, -23, 8, -14, 2, -25, 3, -10, -23, -37, -10, 27, 8, 11, -5, -20, 5, -9, 6, -23, -14, 1, 17, 14, 3, -19, -1, 5, -11, -18, -24, 16, 12, 5, 24, -9, -10, -1, -11, -25, 6, -26, 29, 8, -3, 21, -10, 8, -11, -20, 18, 7, -10, 18, 4, 23, 36, -7, 10, 1, -19, 5, -22, -3, -20, -39, 23, -3, 12, 21, -14, -28, 15, -17, 25, 3, -23, 13, 2, -19, -9, -21, -25, 15, 8, -7, 14, 13, 0, -3, 6, -18, 11, -11, 9, 5, -33, -27, -22, -19, -5, 20, -4, 13, 1, -23, -9, -17, -11, -11, 22, 22, -9, -21, -23, -10, 7, 14, 10, -19, -18, 6, 40, -18, -28, 23, 6, -30, -19, 4, 18, -20, 22, 9, -16, 17, -14, -22, 10, -5, -7, 4, 17, -35, -21, -15, -17, -16, 32, 20, 8, 2, -22, -23, -13, 16, 9, 16, 21, -16, 11, -21, -4, 4, -6, -1, 17, 1, 3, -24, -3, 17, -22, -29, -9, -8, 11, -34, -20, -10, -18, 6, -11, 11, -10, -1, -13, -19, 2, 17, -25, -18, 16, -4, -10, 3, 16, 3, -9, 21, 19, 4, -12, -4, -19, -8, 24, -16, -23, 7, -2, 2, -26, -5, -12, 9, 32, 17, 17, 9, -20, -4, -2, -9, 9, -1, 22, -13, 2, 19, -15, 0, -44, -2, -12, 5, 4, -1, -14, 7, 18, -6, 13, 15, -35, 16, 6, 10, -15, 15, 31, 28, -3, -14, -6, 6, -19, -14, 4, -11, -33, -12, 25, 19, -12, 14, -11, -6, 36, 2, 5, -17, -16, 2, -23, -8, 22, -10, -16, -9, -16, 8, 18, 15, 36, 5, 15, -21, -4, 9, -6, -8, 7, -18, 8, 9, 10, -7, -16, 0, -29, 15, 14, -1, -20, -13, -5, 21, 1, 8, 14, 5, 24, 12, 10, -15, -50, 6, -23, -13, -10, -23, 54, 6, 40, 1, 4, 21, 1, 1, -46, 14, 6, 32, 21, -8, -20, 7, -26, 11, -17, 15, 15, 4, -5, 14, -22, 16, 32, 6, 23, -11, -10, -4, -47, 3, 22, -1, 10, -40, 2, 5, -7, 10, -9, -32, 56, 25, -27, -24, 32, 15, 23, 15, -19, 0, -24, 18, 11, -14, 8, 35, 1, 3, -6, -9, 3, -2, 15, 28, 40, 7, -16, 30, -38, 2, 20, 16, 17, -23, 10, 10, 5, -16, 1, 0, 29, -23, 0, 21, -9, -10, -4, -6, 1, 3, -18, -24, -27, 2, 7, 19, 15, 23, 13, 2, 20, -10, -2, 21, 25, -16, 5, -4, 24, 26, -23, 5, 3, 10, -11, 24, -2, -6, 29, 13, -20, -3, 3, -8, 36, -15, -27, -14, 12, 20, -16, -11, 2, -3, 8, 28, 34, 5, 2, -20, -33, 11, 9, -3, -10, -7, -38, -7, 32, 27, 35, -19, 13, -5, -9, 12, -6, -2, 4, 19, 22, 8, 37, -6, -19, -7, -9, -12, 16, -5, 4, -7, -13, -13, 21, 4, 12, -18, -5, -19, 26, 23, 22, -14, -38, 42, -16, -10, 18, -10, 1, 15, 27, -2, 21, -13, -6, 22, 19, 22, 21, 18, -8, -8, 27, 7, 32, 33, -14, 16, -35, 8, -17, 12, 46, 18, 19, -10, 7, -22, -36, 10, -6, 28, 18, -9, 1, 10, -33, 16, -1, -35, 13, -2, -5, 8, 21, 39, 15, 11, 1, -17, -9, -12, -16, 12, 3, 23, 3, 4, 2, 8, 23, -14, 18, 41, 0, -5, 16, 4, 19, -7, -19, 39, -12, 38, 2, 11, 31, -8, -2, -8, -13, 20, 18, -5, 18, -10, 18, 14, 8, 20, -17, 3, 20, 22, 1, 23, 4, 9, -31, 2, 14, 8, 10, -11, -18, -8, 6, 1, 37, -14, -1, -13, 6, -13, -6, -3, 26, 12, 27, 10, 7, -6, 20, -14, 7, -9, 6, 10, -8, 7, -6, -6, -1, -6, 12, 6, -23, 13, 15, -37, 30, -16, 32, 5, 14, -28, -12, -10, -15, -13, 16, 39, -16, -8, -15, -16, -10, 12, -9, 21, 4, 16, -12, 25, 8, -8, -3, -8, -4, 18, -25, -7, -11, -3, 27, 25, -7, -12, -11, 19, -1, -15, 24, 2, -29, -44, -33, -2, 33, 20, 6, 17, 20, 25, 19, -12, 30, -8, 3, -12, 0, 35, -33, -23, 14, -6, 46, 4, 2, -4, 10, -15, 22, 12, -29, 14, -13, 13, -23, 17, -12, -1, -13, -11, -1, 5, -11, 10, 8, 17, 8, 9, 1, -7, 5, -17, 29, -13, 12, 16, -16, -1, -16, -2, 10, -1, 38, 11, 5, -21, -4, 15, -35, -23, 10, -15, 6, -26, 1, 18, -2, -2, 26, -33, -5, 17, -18, 7, -5, -7, 2, 26, -14, -13, -27, -8, 2, -9, 1, 12, -5, 0, 4, -33, 4, 5, 0, 17, -3, -11, 13, 11, -54, 16, 13, 8, 10, 1, -1, -14, 1, -8, -12, 20, 14, -5, -4, 24, 3, 15, 4, -3, -5, -17, -33, -7, 28, 8, 28, -11, -18, 0, -11, -1, 24, 10, -6, 16, 5, 22, 18, -9, 11, -30, 30, -11, 5, -18, -14, -29, 28, 1, 6, -1, -10, 7, 2, -12, 4, 25, 3, -10, -10, 3, -7, 12, -26, 0, -6, 2, 8, -26, 15, 9, -8, 12, -1, 20, -6, -27, 10, -12, 1, -2, -43, 31, 6, -21, 30, -1, -1, -18, 4, 6, -16, -2, 13, -37, 9, -18, -4, 19, 17, -17, 11, -12, -32, 1, -23, -11, -9, -12, -9, -17, -15, -40, 34, -1, 2, -19, 16, -37, 6, 7, -10, 8, -10, -7, -17, 0, -18, 4, 15, -8, 17, -22, 15, -4, 9, -23, 22, -15, -3, 5, -5, -33, -9, 9, 15, 7, -9, -15, 14, -28, -30, -8, -29, -11, 16, 3, 3, -17, -23, -23, 12, -23, -17, -23, 30, -19, 14, 7, -32, -19, -2, 4, 7, 4, 2, -7, -39, 8, 19, -2, 34, -14, 8, -13, -6, -6, 18, -3, 13, -24, -12, -13, 18, -8, -6, 6, 5, 9, -32, 21, -15, -24, 24, -30, -17, -3, -28, 7, 22, -10, -3, 0, -25, -3, -11, 13, 27, 8, 19, 18, 4, -14, -12, -6, -25, 17, -9, 0, 1, -14, 10, -16, -13, 23, 13, 10, 11, -33, -32, -15, -20, 1, -11, -14, 8, -31, 5, 3, 4, -2, -7, 10, -26, -3, -27, 3, -26, -31, -13, -19, 16, -7, 10, -20, 36, 24, 32, 2, -13, 15, -1, 2, 20, -4, 3, 0, 27, 15, -14, 14, 1, 1, -13, -32, 0, -1, 10, 21, -68, -16, -15, -1, 28, -21, -1, -16, -37, -10, 21, -16, -4, 9, -11, -67, 0, 9, -5, 31, 9, -9, 3, -6, 10, 9, -2, -7, -19, 6, 23, -21, 1, 23, 2, -22, 5, 13, -8, -12, 22, -6, -15, 9, -5, -13, 7, -13, -23, -9, 7, 5, 9, -7, -16, 21, 6, 11, -26, 10, -6, 6, 2, 21, 4, -37, -8, -8, 15, 13, 1, 21, 15, -4, -14, 2, 29, 28, -2, 11, -47, -5, -8, -4, 7, 1, -17, 9, -31, -10, 0, 10, 24, -31, -15, 55, -16, -14, 11, -17, -30, -10, 0, -6, 21, 7, 25, -14, 22, 0, -29, 10, -9, 19, -1, -36, -13, 21, 33, 5, 24, 13, 28, 29, 18, 4, -9, 11, -22, 16, -21, 11, 13, 5, 16, -1, -31, 26, 36, -7, 23, -36, 6, -3, -29, -15, -4, -19, 15, 5, 15, 24, -11, 11, 5, 9, -14, 8, -41, -15, 3, 14, -20, -19, 15, 6, -15, 38, 4, -3, 2, 7, -19, 1, 25, 8, 6, -2, -7, 23, 4, 15, -22, 14, 26, 23, 19, -26, -17, -2, 9, 17, -42, -22, -19, 22, 10, 0, 24, 21, 0, 17, 2, 12, 10, -17, 2, 1, 25, 6, -7, -18, 31, 8, 10, 37, 7, -12, -13, 0, 19, -18, 11, 30, -28, 21, 9, 2, -9, -6, -13, -3, -13, -35, 9, 2, 5, -10, 16, 9, -10, -5, 4, -4, -1, 18, -12, -43, -22, 21, -15, -12, 8, -2, 16, 5, 1, 40, 13, 30, -14, 7, -15, -7, 18, -12, 0, -13, 14, 9, 13, -3, -12, 29, -48, -11, -3, -8, 17, 16, -9, -12, -30, -12, 25, -21, 21, -1, 9, 9, 8, -17, 0, -12, 11, 9, 6, -8, 10, -14, 0, -5, -6, -33, 19, -5, -6, 7, -34, -17, 1, -5, 4, 32, -9, -21, -26, 23, 30, 28, -19, -14, 7, -5, -19, 10, -5, 27, -16, -19, -36, 0, -13, -14, 3, -5, 15, -19, 8, -21, -34, -11, 2, -9, -1, 11, -14, 15, 11, -10, 17, -3, 5, -17, -7, 5, -11, 5, 20, -28, 17, 26, -23, 16, -6, -21, -4, 0, 19, -8, -11, 17, -12, -22, -17, -4, 32, 23, -2, 15, -8, -8, 0, -15, -28, 5, 0, -13, -22, 13, -8, -17, 31, 0, -18, -18, -12, -3, -10, 26, 15, 20, -15, -9, -16, -2, 6, 12, -2, 11, -40, -28, 2, -23, 27, 4, -14, -10, 33, -26, -22, -13, 19, -14, -19, 22, -1, 5, 9, -3, 2, 10, -15, -10, -21, -21, 20, 4, -4, -26, -17, -25, -38, -18, -3, -27, 6, 1, 23, 0, -16, 9, -16, 7, -38, 1, -6, 8, -5, 4, -14, -28, -11, 28, -5, -15, -3, 7, 14, -8, 11, 7, 6, 19, -36, -12, -17, -26, 9, 0, 4, 37, 11, -2, -17, -3, 15, -20, -20, -6, 17, -17, -3, -9, -6, -12, 0, 13, -4, -27, 27, 20, -6, 13, 15, 27, -5, -15, 14, -29, 16, 12, 3, -23, -24, 16, -6, -23, -14, 0, 15, -23, -12, -31, 19, -4, -1, 10, -5, -15, -29, -1, 19, -34, -8, -1, -2, 23, 10, 10, 6, -32, 19, -35, -8, 17, -22, -13, 1, 2, -37, -15, 26, 11, 21, -14, -20, -16, 6, -30, -9, 17, 6, -7, 24, -6, -13, -13, -4, -5, -5, -16, 11, 4, -2, -26, 8, 13, 9, -6, 9, 2, 4, 11, 0, 17, -7, 20, 25, 18, 13, 13, 14, -22, 5, 2, -10, 12, 0, 6, 1, 20, 17, -5, 20, 20, 12, -16, -28, 11, 1, 12, 8, -28, 32, 13, 16, -2, 13, -6, 16, -13, -2, -12, -2, 14, -2, -18, -11, -18, 16, -15, -13, -27, -2, 3, 3, -12, -20, -2, 7, 22, -10, -10, -4, -19, 19, -2, -3, 20, 12, -29, -13, -2, -5, 15, -22, 5, -3, -6, -12, 22, 18, -16, -12, -10, -3, -11, -3, -25, -25, -8, 8, -2, -5, 13, -9, -13, 4, -8, -48, -12, -15, 16, 18, -28, 22, -9, 13, 36, 11, -24, -18, -5, -7, -7, -6, 22, 12, -30, -2, -26, -19, 32, 10, -23, -4, 17, -8, 4, 1, 22, 12, -22, -7, -10, 20, -30, 21, -12, 7, 7, -16, 15, 28, -26, -16, -6, 9, -20, -10, 9, 0, 10, 19, -24, 4, 6, -20, -26, 36, -3, -6, 6, 24, -9, -2, 3, -11, -5, -13, 8, 14, -13, 19, 28, 18, -30, 4, -1, 9, 7, -19, 4, -5, -1, -8, -4, -1, -2, -19, -13, -3, 6, 20, -21, 16, -24, -6, -19, -9, -6, 10, 29, -2, -22, 0, 8, 7, -6, -6, -10, 3, -5, -1, 16, 40, -2, -13, -11, 4, -7, 0, 7, 18, -38, 32, 18, -11, 27, 13, -19, -11, -23, 6, 2, 9, 20, -13, 12, 19, -18, -5, 5, 31, -27, -2, 7, -19, 10, 22, -14, -7, 7, -24, 22, -25, -12, -13, -17, -27, 21, 4, -11, 14, 5, -3, 15, -28, -15, -9, 23, -19, 4, -16, -14, 20, 7, 29, 5, -36, -1, 31, -23, -21, 13, -38, 1, -14, 1, 19, -14, -30, -21, 17, 16, 28, 1, 14, -2, -5, 12, -3, -33, -21, -14, 1, -3, 0, -10, 21, -10, -1, -19, -7, 7, -15, -17, 37, 19, 4, 21, -24, -2, 11, 4, 10, -3, 15, -22, 1, 30, 1, -1, -27, 3, -6, 10, 5, -11, -7, -7, -25, -10, -2, 6, 6, -17, -2, 4, 3, -4, -10, -35, -8, -31, -19, 1, 26, -6, 3, 13, 13, 26, 2, 16, -1, 9, -11, 4, 41, 20, -23, -7, -27, -12, -3, 6, 19, -10, -11, -14, -17, -27, -23, -4, -5, 8, 18, 5, -8, 10, 28, -23, -14, 10, -10, 17, -20, 25, 2, -24, -6, -16, -7, 26, 18, -8, -1, -9, -9, -1, 1, 18, -4, -1, 26, 16, 3, 27, -30, -7, -29, -40, -1, -16, -8, -2, 15, 5, -2, -17, 30, -18, -1, -21, 13, 2, -4, -23, 18, 19, 2, -33, -3, -24, 25, 17, 0, -2, 10, -18, -3, 15, 20, -26, -3, 1, 29, -6, -37, -10, -8, 10, 3, -4, -5, -32, 15, -24, 16, -11, 1, -22, -2, 19, -10, -11, -29, -11, 23, 12, 13, -14, -25, -29, 3, 10, -1, -24, 46, -47, -8, -3, -19, -10, 3, 6, 8, -4, -7, -8, 4, 20, -6, -25, -17, -52, 24, -22, 11, 6, 18, -14, 6, -36, 33, -5, 13, 13, -25, 5, 26, -13, -13, 21, -3, 5, 6, -24, 14, 15, 33, -16, 17, 13, -12, 18, 23, -1, -1, -21, 11, 21, 25, 6, -19, 10, 24, -2, 11, -3, -12, -8, -9, -7, 0, -15, -3, -27, 0, 1, -1, -5, -6, 29, -5, 25, -13, 14, -14, -16, 7, -33, -17, -15, 6, -8, 25, 18, -3, -22, 6, 9, 1, 24, 15, -4, 11, -2, 14, 7, -1, -11, 9, -40, -2, -15, 17, -18, -19, -17, -34, -22, -11, 8, 20, -21, 20, -17, 4, -17, -4, 12, -13, 22, 0, -4, -7, -25, 18, 6, 4, -4, 9, -5, -16, 17, 9, 10, -12, -10, 8, -3, -15, 4, -3, 13, 16, 1, 6, -11, -13, -2, -1, 15, 25, 5, -15, -16, -25, -14, 26, 17, -4, -25, 13, 9, 20, 20, -5, 8, 30, -10, 23, -5, 14, -16, -24, -5, -26, -1, 6, -15, -26, 27, 6, 20, 3, 10, 9, 21, -26, 13, 19, -9, 13, 21, 22, 4, -18, -9, 20, -29, 16, -8, -16, 6, 12, -12, -6, -13, 5, -29, 5, 5, 14, 0, -12, -5, -14, -19, -1, -17, -3, 9, -16, 5, -6, -9, 0, 8, 10, 9, -13, 9, 2, 9, 4, 13, -37, 15, -21, 23, 3, -35, 8, 17, -18, 26, -12, -4, 31, -2, 8, -12, 8, 25, 4, 16, 9, -5, 23, -12, 0, 6, -6, 6, 10, -2, -6, -27, -25, -9, -23, -9, 10, 0, -14, -2, -4, -18, 2, 25, -19, -7, 0, 0, -22, -21, -31, -2, 5, -24, -17, -11, 11, -15, 4, 10, 5, 19, 5, 20, 13, -22, 28, 8, 14, -11, 21, -10, -18, 3, 5, 6, 17, 24, 5, -20, 3, 13, 6, 1, 3, -6, 20, -6, 3, -3, -8, 6, -53, 22, 26, -15, -7, 26, 16, -4, 21, -14, -23, 18, 3, -31, -9, 23, 21, -31, 9, 10, -7, -18, 20, 21, -29, 13, 5, 5, -1, 22, -19, 13, 22, 15, 7, -14, 15, 1, 10, 14, -17, -11, -24, 9, -5, -10, -16, -1, 1, 0, 2, 7, -18, 13, 18, -14, -10, -6, 23, -38, -10, -7, 6, 6, 5, -4, -26, -19, 26, 17, 22, -4, -10, 0, -1, -17, 32, -14, -4, -15, 16, 5, 0, -39, -7, -11, -14, -5, -14, -4, 19, -3, 43, 23, 13, 9, -19, 18, -21, -19, 0, 23, -19, 13, 13, -5, -25, 4, -14, -11, 16, -6, 24, -20, 29, -13, -1, -19, 16, -6, 22, -23, 25, -14, -14, -25, 24, 16, -16, -5, -23, 6, -28, 16, -10, 12, 13, -31, -14, 9, -16, 14, -2, -17, 26, 6, 1, -3, 10, -7, 14, 1, -7, -15, 17, -18, 11, -3, -3, -10, -23, 14, 33, 5, -6, 13, -7, -1, 13, -25, 10, -35, 6, -9, 12, 23, 17, -21, -7, 12, 6, 8, -30, 12, 6, 18, -28, -7, -4, -8, -4, 15, -22, 20, 26, -22, -14, -33, 17, 21, 3, 4, -1, -16, -22, 30, -16, -18, -5, -1, -6, 14, 4, 10, 13, -19, 10, -6, -11, 17, -8, -1, -25, 16, -9, -3, 3, 9, 1, 29, -35, 1, 20, 2, 43, 34, -29, -26, 22, 8, -16, 9, 1, -16, -18, -14, -19, 31, -3, -19, 7, -9, -8, -5, 26, -28, 45, 6, 8, -4, -13, -4, 11, 1, 11, -14, -34, 0, -30, 15, -9, -7, 7, -23, -15, -10, 0, 6, -26, 0, 15, -20, -1, 23, -9, 24, -3, -25, 18, -11, -7, -3, -12, 5, 5, 15, -3, -5, 9, -26, -15, 11, 0, 29, 11, -10, 4, -17, -24, 19, 12, 10, -13, -5, 13, -14, 14, -5, 0, 1, 16, 19, -9, 9, -14, -10, 11, -8, 14, -11, -14, -7, -18, 3, -37, -4, 8, -12, 8, -10, -17, -1, 16, 19, 5, 1, 6, 7, 7, -7, 4, -14, -35, -3, 10, -17, 8, 16, -9, 2, 28, 16, -4, -8, 3, -1, 2, 9, 0, -4, 9, 5, 14, 11, -5, 7, -12, 31, -17, -3, 1, -4, -5, -22, 40, -21, 15, 14, 0, -19, -13, 35, 26, 12, 11, -32, -2, -9, 22, 10, 8, -18, 24, 13, 17, 9, 17, -26, 34, -36, -15, 11, -9, 41, -8, 0, -23, 6, -10, -5, -25, 5, -1, -60, -24, 11, 6, -34, 6, 0, -3, 17, -18, 9, 28, 20, -2, -21, 1, -15, 8, 20, 8, -2, 2, -16, -27, -1, -7, -31, -12, 17, 39, 20, 7, -41, 16, -9, 20, 15, 35, 24, 2, -20, -13, -19, -4, 9, -12, 8, -5, -38, 20, 29, 9, -5, -18, -31, -13, -40, -10, -11, -7, 6, -10, -3, -22, -37, 15, -6, -32, -7, -11, -12, 21, 38, -4, -35, 1, -34, 19, 38, -7, 32, -6, 7, 6, 18, -15, 1, -8, -3, 14, 11, 27, 4, -21, -7, -4, -4, 13, -38, 4, 19, -10, 16, -3, -35, 17, -8, 10, 2, -12, -8, -1, 19, 31, -41, 6, 11, -5, 21, 3, -2, -3, -40, -19, -12, 37, 32, -28, 9, -4, -4, -14, -5, -16, -10, -25, 15, -6, -43, -16, 1, 26, 38, -6, -2, -32, 7, 7, -14, 27, 21, 2, 6, -7, 22, -17, -19, -27, 10, 0, -2, -2, -19, -2, 14, -13, 31, 20, -31, 8, -7, 6, 6, -19, 13, -29, 17, -3, -11, -1, -4, -18, 0, -14, -4, -12, -23, -28, 11, -11, -7, 0, 20, 9, -18, -34, -1, -3, -8, 2, 15, -1, 1, -13, 9, -21, 6, 0, -3, 19, 8, -11, 5, -12, -17, -23, -1, 20, -14, -9, -20, 6, 10, 6, -5, -20, 12, -11, -24, -7, 22, -4, 22, -12, -19, -28, -4, -28, -13, -15, -13, -23, 10, -17, 7, -19, -2, -22, 0, 1, 1, -28, 8, -23, 34, -6, 18, 18, 0, -11, 4, 22, -15, -56, 36, -4, 10, 12, -1, -8, -5, 27, -21, 15, -22, -13, -7, -1, -15, -28, 9, 5, 2, -6, -16, -11, 0, -21, 17, -27, 5, -3, 25, 18, 28, 7, 5, -20, 11, 6, 3, -8, 9, -2, -15, -9, -19, -1, 2, -3, 9, 12, -6, -17, 15, -11, 10, -6, 13, -2, 0, 12, -8, -10, -16, 2, 17, -21, -13, 19, -18, -13, -17, 3, 11, -38, -9, 1, 9, 16, -16, 11, -2, 29, 5, 22, 4, -2, 2, -4, -9, 5, -1, 3, 9, 13, 11, 7, 12, 8, -26, -1, -18, -13, 6, 6, 16, 6, 9, -5, 18, 27, 7, 11, -12, 20, 8, -3, 25, 31, -17, 21, 56, -4, 9, 23, 24, 8, 0, 40, 11, 1, -1, -17, -2, 1, 11, 6, 3, -25, 6, 3, 13, -19, -19, -3, -15, 4, 13, -14, -18, -30, -14, 10, -8, -34, 18, 3, 6, 20, 0, 18, 26, 2, -8, 19, -9, 13, -13, 31, 5, 4, 10, -11, -8, 23, -16, -2, -6, -10, -3, -16, -6, 28, 16, 21, -19, 15, 22, 13, 3, 9, -15, -18, 28, -3, 3, 8, -22, 2, 15, -10, -22, 17, -17, -16, -14, -15, 13, -11, 22, 6, -9, 22, -13, 10, -20, 1, -22, -21, -9, 35, 7, -12, -3, -18, -32, 11, -26, 4, -2, 17, -18, 11, 14, -23, -18, -7, -7, -15, 6, -5, 14, 14, -29, -27, 7, 9, -13, -24, 7, 24, -18, 15, 15, -9, 12, 23, -5, -7, 14, -2, 12, -2, 0, 22, 2, 16, -11, 23, -28, -2, -2, -55, -3, -25, 5, -2, -14, -7, -1, 12, 16, -6, -10, -28, -14, -3, -19, 17, 22, 4, 19, 9, -16, -12, -2, 26, -1, 2, 5, -8, 11, -36, -13, 18, 5, -14, 3, -20, -18, -1, 24, 13, 8, 3, -10, -3, -24, 16, -6, 31, -17, -5, 4, -37, 4, -9, 18, -1, 19, 12, -1, -2, -14, -7, 8, -24, 21, -2, 14, -13, 16, 11, -21, -37, 36, -28, -21, 19, -7, 9, -1, -7, 12, -20, 10, -3, -17, -4, 15, 5, 21, -35, 40, 25, -8, 3, -8, 6, -21, 9, 12, 1, -19, 5, 16, -6, -25, 1, 13, -21, -8, 16, -16, -27, -2, -10, 10, -28, -14, -6, -28, -4, 5, -21, -7, 31, -4, 7, 11, -28, 28, -11, -5, -1, 3, 19, -10, -11, 11, 11, 13, 13, 2, -16, 12, 5, -15, -18, 20, -3, -10, -16, -7, 18, 2, -24, 34, -9, -16, 17, 1, -11, -1, -3, -9, 3, 0, 0, -19, -25, -10, 10, -6, -14, 4, 5, -14, -24, -7, -1, 6, -4, -21, -6, -1, 18, -6, -13, -4, 4, -5, -12, 19, -31, 4, -9, 1, 11, -20, -18, -4, -29, 22, -17, 5, -9, -5, 10, 2, -21, -10, -14, -9, -21, 14, -3, 17, -26, 36, -2, -22, 15, -14, 12, -12, -25, 11, -37, 7, 53, 1, 3, -20, 3, -18, -29, 44, 18, -5, -22, 18, -43, -22, 13, 24, -9, -15, 2, -8, -30, 7, 7, 23, -17, -16, 12, 1, -42, -22, -12, 4, 5, -5, -17, -4, -14, 5, -4, -8, 7, 6, -5, -3, -7, -6, -26, -12, 13, 5, -13, -19, -8, 2, 2, -3, -12, -4, -9, -15, -25, -4, 5, -3, 11, 7, -10, 15, -39, 7, -36, -7, -23, 11, -19, -9, -35, 5, -10, 16, -8, 3, 6, 2, -22, 14, -29, 40, -25, 13, -8, 18, -34, -13, -22, -6, 9, -19, 3, -1, 2, -8, 34, -1, 1, -3, -23, 8, -1, -6, -41, 29, -1, 17, -23, -7, -7, 2, 5, 5, 5, -20, -10, -14, -32, -15, -6, 11, 1, 1, 23, -18, 8, 6, -40, 18, 7, -11, -23, -24, -30, 32, 14, 10, -16, -16, -12, -12, -8, 5, -23, 4, 20, -16, -5, 6, -17, 2, -6, 5, -5, 9, 12, -13, 10, 7, 9, 14, -7, 22, -20, -20, 7, -9, -17, 35, 6, 4, -25, 13, 5, -4, -18, 13, -26, -1, -23, -8, -5, 16, -30, 31, 3, 15, 1, -13, -20, 26, 8, -20, 1, 7, -4, 0, -23, 27, -4, -9, -22, -17, -23, -26, -16, 15, 10, -8, -15, 3, -8, -14, -13, -18, 30, -30, -14, 6, 4, 11, -14, 25, -43, 31, -11, 8, -12, 18, -13, -10, 11, 5, -1, 11, -12, 20, 4, -4, -10, 15, 15, 4, -6, -12, -19, -6, 18, 11, -15, 12, -10, 12, -5, 8, 7, 18, -8, -16, 6, -13, -27, 6, 34, -2, -2, -12, 0, 15, -14, 2, 5, -13, 11, -2, 1, 0, -3, -24, -1, -1, 6, 8, -12, -19, -7, -1, 10, 3, -14, -8, -27, -15, 13, -15, 1, 1, 26, -8, -3, -17, -38, -2, -6, 13, 0, -10, -2, -8, 2, 11, 13, 22, 0, -3, -24, -6, -32, -8, 5, 7, -33, 2, -20, -7, -6, -2, -26, -2, 2, -7, -5, -21, 15, 11, -20, 7, 15, -11, 3, -15, 14, -32, -48, 25, 1, 11, -11, -19, 30, -45, -12, -15, -2, -10, 7, -17, 9, -24, 23, -4, 1, -2, -5, 0, 14, -8, -26, 5, -17, -21, 2, 15, -12, -8, -11, 19, 51, -10, -5, 5, 18, 7, 24, 5, 1, -20, 11, 11, 2, -16, -14, -17, 3, -13, -10, -9, 18, 15, -20, 4, -15, -16, 9, 5, 22, -24, -24, -44, 14, -2, -17, 14, 7, 2, -4, 9, -9, -5, 15, -3, 2, -45, -15, 6, -25, -14, 1, -18, -7, -8, -9, -17, 20, -22, -24, -16, -28, -17, 2, 15, 14, 2, 2, -20, 10, -10, 28, -6, -20, -14, -7, 2, 0, -24, 16, -5, -18, 13, 21, -9, -15, 33, -50, 21, 20, -4, 8, -4, -5, 3, 11, 2, -10, 8, 2, -18, -6, 0, -22, 26, 11, -25, 16, -12, -10, -9, -3, -2, 17, -14, -14, 4, -10, -18, -10, -14, 18, -15, 19, 18, -8, 19, -2, 24, 9, -20, 0, 2, 3, -19, 0, -12, 5, -14, 15, -14, -51, -1, -16, -18, 6, 18, 3, -22, 19, -4, 10, -17, 15, -3, -2, 8, -3, -18, -12, -7, 5, 10, 8, -7, 0, -18, -8, 17, 13, -23, -20, -12, -3, -13, 10, -9, 6, -9, 40, 0, 16, -9, -17, 7, -14, 10, 18, -10, 2, 20, -21, 9, -6, -21, -11, -17, -28, 1, 9, -5, -5, 9, -7, 14, 7, 20, -16, -20, 14, 4, 11, -8, -16, 8, 24, 22, -9, -9, -2, -23, 20, 35, -17, -3, 15, -5, 31, -19, 8, 5, -30, 52, -34, -10, -7, 8, -33, 0, -10, 6, 34, 6, -3, 2, 11, 14, -5, 29, 3, 12, 16, 11, 9, -27, -16, 21, 2, 2, -14, -7, 2, 28, -7, -3, 6, 10, 4, -10, -4, 3, 8, 13, 8, -7, -21, -17, -16, -9, -23, 40, 9, -12, -24, -18, -29, -8, -3, -8, -30, -24, 21, -6, 1, -14, 6, 6, -24, -20, -12, 4, 8, 3, 15, -5, 9, 17, 25, 2, -9, 0, 21, 2, 2, -6, -16, 7, -33, 6, 4, 0, -1, 5, -2, 9, 6, -23, -8, 14, -21, -5, 32, -21, -1, -16, -3, 3, 7, 17, -1, 10, -35, -29, 10, 22, -15, 17, 18, 18, -7, 26, -17, 4, 0, -21, 7, -6, -31, 0, -1, 1, 0, 19, -14, 13, 7, -3, 3, -9, -13, -10, -13, 3, -6, 3, 0, 3, -1, -3, -2, -3, -38, -4, -13, 14, -17, 0, -12, -24, 10, 13, -11, -6, -10, -16, -3, 5, 16, 24, -24, -32, 2, 1, 9, -11, -29, -26, -11, 23, -16, -6, 20, -20, -19, 8, -7, -1, 14, 15, 27, -11, -27, -40, -20, -43, 23, -22, -6, 14, -19, -7, -30, -20, -5, -14, 7, -19, -44, -16, -28, -13, -22, 3, 27, -15, 15, 15, -20, 1, -7, 2, 14, 18, 10, 19, -19, 22, -2, -16, 20, 16, -39, 14, -37, -9, 14, -2, 1, -25, 10, 22, -12, 12, -14, 0, -13, 16, -13, 9, -18, 23, -6, 15, 27, -1, -23, 10, -33, 20, 16, -11, -13, 1, -14, 15, -21, 3, -16, 17, 9, -11, 33, -11, 40, -4, -35, -24, 8, 17, -9, -22, -1, 25, 14, -12, -12, 7, -13, 3, -8, -4, 16, -18, 9, -6, 24, 1, -17, 11, 2, 17, -13, 16, -34, -16, -8, -15, -16, 3, 8, 7, -5, -9, -15, 4, 7, -19, -18, -23, -21, 10, -2, -21, 39, 15, 33, -21, 2, -8, -17, -22, -11, -1, -23, -6, -8, -14, 0, -6, 13, -14, -11, 14, -20, -17, -15, -6, -10, -7, 18, -4, 15, 12, 8, -13, 14, 5, 42, -10, -8, -19, -9, -25, -26, -9, 14, -17, -18, 20, 16, -28, -10, -16, -10, -15, 0, 24, -17, 36, 14, 8, 7, -15, -14, -2, 17, -6, 29, -12, -22, 14, -3, 4, -23, 8, -16, -16, -21, 14, -10, 17, 14, 23, 23, -20, -8, -2, 10, -15, -10, 12, 21, -19, 13, 0, -5, -12, -5, 10, 8, 6, -13, -3, 23, 5, -9, 17, 4, -11, -3, 13, 22, -9, 20, -29, 6, -6, -4, 17, -10, 18, 20, -18, -23, 3, 22, -12, 7, 1, -5, -30, 30, -23, 22, -4, 3, -6, 16, -17, -2, 16, 17, -18, -9, 6, 25, -30, 14, -4, -13, 13, 9, 12, 11, 0, 5, 8, 15, 10, 7, 13, -4, 10, -15, -20, -31, -11, 2, -2, -3, 16, -22, -1, -17, 4, -12, 2, 0, 14, -5, 13, 5, -22, 30, -26, 30, -14, -2, 12, 1, -20, -24, -16, -15, -2, -23, -5, 35, 21, 19, -15, -8, 2, -29, 16, 33, -20, -7, 21, 46, -15, -2, 1, 6, -12, -3, 13, -4, -4, 20, 12, -20, 10, -11, 9, 20, 4, -2, -17, 50, -17, -16, -23, 34, -22, 17, -6, -21, -9, 12, -16, 22, 28, 9, -14, 27, -20, -12, -6, 26, 8, -3, -7, -5, -16, 6, -32, 18, -22, 25, -21, -5, -9, 28, -2, 17, -8, -9, -10, -27, -14, -17, 12, -14, 1, -16, 14, -21, -9, 15, 10, 0, 15, 11, -12, 12, -12, -5, -26, 8, -31, 1, 17, -4, 13, -18, -11, 20, 15, -6, -20, -4, -18, 23, 13, 15, 20, -10, -1, -1, -3, -9, 8, -4, 1, 16, -18, -22, -11, 9, -24, -4, -25, 6, -11, 26, -11, -2, 10, 13, -5, -4, 14, 10, 5, 8, -16, 8, 16, 20, -19, -23, -16, 10, 13, -8, 10, 0, -13, -35, 17, 18, 17, -6, -13, -7, -13, -24, 2, 8, 5, 16, 18, 21, 11, 15, -10, -23, -6, 2, -31, -10, 17, -6, -21, 5, 10, -9, 1, 26, 5, -12, -19, -3, 16, 17, 13, 17, -11, -6, -25, 11, -11, 11, 2, 13, 18, 35, -14, -24, 12, 30, -10, 6, -24, 1, -9, -20, -14, -19, 7, 19, 2, -3, 19, 23, 15, 14, -21, 28, 7, -4, -19, -23, -32, 2, -23, 14, 5, 11, -20, -21, -2, 12, 17, 21, 3, -12, -4, 2, -16, -14, -30, 1, -23, 8, 3, 7, 33, 12, 17, 27, -8, -13, 15, -4, 0, 5, 13, 14, -10, -15, 8, -4, 8, 21, -25, 18, -3, -9, 15, -14, 3, -2, 2, -6, 12, -18, 9, 9, -11, 8, -26, 27, 2, 4, -6, 11, -10, 10, 15, -1, -18, 20, -9, -14, 10, 27, -16, 15, 2, -2, -4, 11, 18, -2, 17, 26, -22, -13, 13, -9, 9, 5, 21, -16, -18, 2, -11, -1, -21, -9, -24, 0, 13, 7, 10, 18, -4, -43, 4, 7, 2, 5, -10, 4, 14, 0, -3, -18, 0, 12, -22, 4, 27, -2, -3, 11, 21, 37, -9, 5, -3, 17, 4, 12, 17, -15, 12, 2, -6, -6, -20, -21, 5, 17, 9, -18, -7, 5, 13, 2, -3, 23, -21, -7, 15, 18, -3, -1, -11, -14, -16, -4, 4, 5, 15, 13, -13, 23, 17, 6, 1, -24, 2, 13, -9, -18, 15, -34, -24, -2, 23, -34, -11, 7, 1, -15, 25, 4, 16, -20, 12, -3, -12, -20, 2, -4, 3, 8, -4, 20, 13, -47, 6, 10, 0, -21, -18, 5, -11, -15, -4, 9, -7, 1, -14, 40, -2, 4, -1, -10, -3, 22, -6, -24, -26, -12, -32, -23, -6, -15, -14, -23, -3, -32, 17, 12, -11, -16, 5, -6, 12, 14, 10, -16, 16, -8, -1, 26, -20, -20, -8, -5, 0, -8, -10, -24, 12, 11, 15, -11, -8, 7, -8, -12, -24, -6, -3, -7, -9, -32, -12, 14, -21, -2, 1, 12, -3, -5, 16, 15, -17, -33, 12, -35, -18, -11, 7, -3, -7, -7, -9, -21, 5, 44, -2, 15, -12, -5, -3, 5, -4, -7, -15, 24, 13, -22, -7, -1, 0, 38, -5, -4, 16, -1, -23, 3, 21, -15, -14, -26, -6, 13, 4, 20, 23, 0, 11, -24, 2, 3, 3, 12, 8, -3, -19, 7, 10, 1, -3, -4, -1, -13, -17, 12, 12, 18, 7, 3, 17, 33, -21, 37, -22, 0, 26, 26, -44, 15, -14, -7, -7, 7, 17, -11, 2, -18, 1, 27, -18, -4, -35, 4, 11, 31, 13, -21, -2, -9, 33, 9, 6, 39, 3, -6, -17, 18, -20, -13, -2, 14, 18, 13, 18, 6, 2, -13, 1, 2, 2, -2, -11, 14, 8, 13, 19, 0, 7, -12, 12, 9, 12, 5, 2, -16, 13, 1, -15, -24, 25, 19, -13, -6, 4, 15, 5, 17, -14, 16, -9, 0, 17, -16, 19, 3, 9, 20, -9, -4, -21, 28, -10, -5, -5, 13, 1, -4, 9, 17, 3, 21, 3, -9, 10, -18, -5, -8, 3, -14, 3, -7, -1, 22, 18, -45, 7, -18, -23, -20, 6, 5, -9, 20, 6, 4, -19, 8, -11, -30, 11, 0, 17, 18, -1, 12, 12, 4, 5, -23, -14, 3, -13, -19, 15, 10, -7, 14, 14, -3, 13, -2, -22, 2, 9, 15, -21, -21, -13, 3, -38, 16, 16, -24, 15, 0, 9, 1, 14, -22, 19, 2, 9, -20, 0, 18, 15, 16, -22, 6, -4, 23, -22, 13, -9, 48, -12, -19, -10, 46, -37, 8, -2, 6, -13, -3, -19, 1, 9, 3, 8, -44, -16, -17, -5, -1, 4, 7, 6, -2, 14, 14, 3, 21, 19, 8, -10, 13, -22, -10, 8, 2, 30, 22, -12, 17, 5, 13, 2, 20, 9, -12, -19, -3, 7, -32, -11, 30, 14, -6, -4, -1, -13, -26, 17, -13, -5, -13, 38, -37, 12, 8, -12, -3, 6, -6, 7, -21, 4, 2, -1, 14, 5, -4, 14, 1, -1, 18, 17, -17, -27, -11, 12, -37, 17, -27, 12, -28, 4, 8, -9, -2, 6, -9, -4, 30, 0, -13, 9, -4, -20, -17, -12, -6, 13, 7, 6, -22, 16, 0, -20, -4, -3, -2, 17, 4, 10, -16, -11, 18, -4, -18, -8, 10, 12, 20, -10, 28, 5, 26, 16, -19, 11, -15, 21, 14, -6, -16, -2, -12, -4, -24, -1, -13, 10, 17, 14, -1, 4, -3, 9, 3, -10, -14, -5, 45, -8, -3, 14, 7, -23, 18, -14, -11, 7, -33, 3, 16, 14, -22, 17, 2, 12, -3, 15, 18, -17, 18, -21, 6, -3, -8, 12, -6, -19, 10, -20, 20, -15, -6, -3, 6, -26, -12, -9, 1, -8, 31, 14, 9, 5, -15, 0, -16, -16, -5, -8, 9, -5, -17, -13, -1, 14, 9, -20, 6, 7, -14, -18, -1, -2, -4, 21, 17, -13, 10, 9, -15, 21, 7, 4, 14, -14, 14, 1, 16, -1, 16, 9, 26, -9, -1, -4, -9, -2, -4, -7, 25, 12, 9, -4, 9, -8, -27, 13, 5, 28, -2, -29, -12, -12, 24, -6, 7, 21, 1, -19, 6, -23, -7, 4, 7, -23, -5, -3, 16, -10, -13, 19, 12, 18, 10, -3, -19, -14, -3, 12, 15, -11, 20, 2, -17, -9, -9, -9, 25, 2, 0, 7, -5, 5, 1, 5, 30, 3, -6, 15, -10, -1, -32, 22, 10, -3, 14, 15, 18, -22, 7, 3, 15, -15, -16, -22, -6, 16, 18, 18, 20, -4, 1, -20, -20, 13, 5, -4, 14, -8, 13, 4, 5, -8, 13, 4, -6, -23, 17, -14, 0, 17, -3, 14, -1, 3, -12, -6, -20, 3, -12, -19, 0, -15, 21, 10, -11, -11, 12, 18, 27, 4, 16, -1, 30, 6, -6, -15, -14, 0, 13, -4, -21, 15, 18, -7, 28, 13, -6, 14, -9, 8, 20, 20, 7, -11, -10, 15, -19, -19, 12, 0, 17, -10, -1, 2, -21, 14, 18, -14, 18, 12, -15, -7, -30, -21, 20, 0, 21, -21, -7, -10, 27, 2, 9, -13, -17, -27, 22, -1, -15, -11, -3, 17, -21, -44, -3, -11, -16, 7, 28, -2, 12, 0, 8, -4, -7, -25, 44, -19, 4, 18, -14, -13, 24, -1, 21, -10, 37, 31, -8, 0, -3, -6, 22, 15, 17, -6, 8, 1, 9, -8, 12, -17, 2, -14, -22, 11, -5, -8, 6, -21, -9, -22, -15, -12, 19, -5, -11, 16, 6, -13, 18, -21, 27, 3, -7, -2, -7, 26, -3, 1, 4, -5, -14, -19, 1, -9, 15, -5, 14, -3, 8, 17, -15, -32, 2, -2, 0, 10, 10, -1, 2, -16, -19, -3, 19, -17, -9, -15, -4, -9, 8, -15, -15, -11, 10, 14, 7, -5, 21, 1, 3, -10, -5, 8, 10, 18, -20, -8, 30, 16, -19, -7, -1, -17, 6, -12, -9, -10, -10, -7, 39, 7, -17, -27, 20, 11, -5, -5, 9, -23, -12, 8, -7, -22, 2, -7, 16, -14, 7, -7, 12, -17, 42, 23, 9, 6, 13, -3, 8, -16, 3, 33, -11, 5, -19, -4, 7, -24, 12, -11, 7, -35, 13, 7, -29, -28, -6, -16, -17, -36, -6, -31, 16, -20, 0, 3, 17, -16, -10, -19, -6, -10, 14, 26, 9, 14, -5, -14, 23, -24, 2, 11, 19, -25, -19, -7, 24, 22, -9, -3, 11, -15, 3, 2, 17, 21, -13, 11, -18, -12, -10, -9, -8, 12, 15, -3, -11, 4, 20, -29, 19, -8, -10, -12, 4, 3, -20, -23, -3, -33, 2, -22, 12, -27, 21, -25, -14, 29, 2, -20, 14, -17, -10, -15, -20, -13, 3, 15, -18, 4, -9, -32, -1, 4, 9, 3, 0, -7, -21, 9, 19, -28, -12, -20, -4, -16, -19, 14, -2, -13, 37, 2, 7, 13, -22, -15, 3, 28, 25, 7, -3, -22, 8, -9, 22, 33, 9, 2, -21, -1, -10, -11, 17, -7, 2, -10, -10, -6, -13, -28, 15, 16, -2, -2, -16, 7, 13, 10, 23, -17, -23, 2, 0, -19, 12, -35, 16, 5, -2, 4, -2, 5, -14, 10, 10, -6, 5, -21, 8, 19, -3, -14, 16, 4, 5, 12, -1, 1, -6, 17, 15, -20, 4, -14, 3, 9, 9, -27, -8, -20, 3, -42, 8, -5, -22, -14, -5, -36, -20, -8, 2, 7, 0, -1, 21, -2, 7, -5, -22, -11, -15, 16, 11, -12, -11, -18, 7, -3, -15, 14, 0, 9, 2, 25, -7, 23, 17, 23, -17, 9, -11, -8, 0, -7, 10, -31, 10, 35, -19, -24, 1, -11, 3, -20, 0, -22, 11, -27, -22, -7, -9, -23, 19, 28, -11, -16, 2, 3, -21, -28, 33, 8, 0, 4, 12, 22, -19, 16, 10, 20, -22, 15, -12, 16, -8, -7, 15, -14, 1, -1, 1, 16, 1, 7, -33, -37, -12, 2, 11, -35, -18, 10, 2, 25, -30, 9, -23, 11, 1, -14, 34, -7, 0, 2, -8, 7, 5, -18, 19, -14, -16, -8, 19, 4, 5, -17, 18, 16, -23, -15, -12, 10, -6, 5, -3, -10, -22, -20, -19, 22, -23, 6, -51, -16, 8, 14, -9, 0, 7, 12, 8, -20, 25, 15, -2, 17, -8, -7, -37, -42, -1, 5, 16, -25, -16, -12, 13, 33, 8, -34, -1, 30, 0, 3, -10, 8, 9, 1, -18, 22, -20, -7, -2, 2, 16, 24, 15, 21, 6, 2, 34, 5, 6, -2, 14, 21, 1, -14, -12, -8, -11, 3, -1, 2, 5, 6, 3, 4, -12, 28, -5, -6, -9, 7, 27, 21, -9, -11, 13, 34, -18, 19, -21, -20, 12, 15, -2, -11, -10, 9, -2, -3, 9, -8, 1, -29, -15, 6, -9, 0, 3, -32, -11, -8, 19, -13, -18, -9, -12, -37, 4, -24, -4, -43, 16, 4, -1, -26, -9, 23, -5, -3, 14, 24, -8, 33, 7, 13, 5, 11, 23, 27, -8, -3, -3, 2, -9, -8, -22, -4, -10, -14, 12, -9, -20, -7, -28, -29, 29, -11, 1, -64, -14, 17, 22, 11, -15, -17, -17, 21, -6, -20, -18, -20, 10, -19, 16, 13, -16, -5, 15, -3, 4, -57, -21, 11, -15, -64, -4, 11, -5, -13, 0, 25, 9, 16, 1, 23, -3, -14, -5, 10, 13, 3, -14, -26, -13, -1, 1, -8, 2, -26, 19, 19, 13, -25, -15, 0, -23, 17, -18, -21, -21, -15, -12, -13, -10, -33, 0, -18, -1, 26, 2, 8, -22, 5, -17, -27, -12, 4, 1, -39, -19, 12, -3, -7, -13, -5, -3, -3, -7, 20, -34, -28, 3, 13, -20, -7, 14, -17, 8, 3, 26, -26, -4, -4, -11, 4, -2, -38, -26, 6, 6, 0, -6, 19, -20, -28, -7, -1, 7, 3, -4, 0, -15, -16, -3, -10, 13, -9, -22, 4, 16, -6, -10, 16, -8, -27, 18, -21, -7, -27, -14, -7, 10, 13, 18, -15, 25, 16, -15, 10, -8, 8, -20, 31, -20, -28, -23, 21, -3, 10, -12, 6, 1, -29, -29, -20, -14, -28, 1, -31, -8, -23, 5, -15, 13, -24, -7, 1, 12, 5, 23, -15, 6, -11, -9, -25, 0, -17, 27, 8, 4, -18, -5, 7, -32, -20, -18, 25, 20, 19, -1, 9, -17, -2, 14, -25, -1, -27, -4, -10, 2, -4, 7, -9, -16, 5, -10, -15, -12, -1, 16, -30, -5, 17, 5, -13, -1, 16, 2, -24, 3, 14, 1, -20, -5, -10, 17, -8, 7, 6, 8, 21, 10, 5, -6, -29, -4, -11, 18, -20, 40, 12, -15, -18, 14, -37, 13, -9, -8, 7, -10, 15, -11, -6, -17, -24, 11, -16, -12, -24, -23, 8, 7, -41, 12, 13, -1, -2, -22, 26, -9, -25, -8, 9, -14, 1, 19, -14, 5, 2, 8, -9, -11, 6, 16, 0, -18, 30, -28, 7, 20, -3, -17, -28, -16, -11, -13, -17, -3, 4, -21, -29, -22, 5, 15, 10, -6, -7, -16, -11, 1, -10, -15, -2, -31, -26, -22, 14, 11, -43, 27, 26, -21, 7, 14, -14, 17, 19, 4, -24, -17, -3, -21, -21, 18, -5, -6, -5, -25, 0, 9, 14, -7, -2, -16, 24, -27, -7, 18, -17, 18, -14, -9, 1, -20, 43, 0, -14, 11, 31, -31, -19, 24, 6, 15, -24, 8, 17, 20, -22, -17, -15, -21, 19, -9, -7, -7, 13, -12, 28, 14, 4, -1, 2, 5, 0, -25, -10, 20, -6, -7, 14, 25, -13, -22, -21, -20, -20, -2, 18, 20, -15, -1, 5, 11, 2, -8, -11, -15, -2, -27, 1, -15, -5, 2, -18, -17, 4, -5, -11, -16, 24, -14, 14, -15, -14, 6, 5, -12, -12, -17, -1, 29, 0, -2, -8, -10, 0, -20, -25, 21, 21, 16, 12, 4, 3, 18, 4, -15, 0, -7, 39, -7, -9, -14, 37, -1, -21, 12, -3, 12, 19, 4, 8, 3, -32, -9, 7, 9, -5, -11, -11, -15, 19, -19, 12, -9, -1, -6, -10, 9, 18, -9, -25, 10, 21, -20, -27, -14, 13, -18, -14, 11, 24, -17, -24, 24, -2, 34, -21, 14, 22, -19, 0, -24, -19, -7, 6, -4, 34, -22, -15, -4, -2, 7, 18, 11, 0, -18, 8, -8, 24, -18, 18, 12, -8, 3, -16, -16, -11, -7, 5, -4, 3, 17, 29, 8, 7, 33, 20, 5, 17, -19, 9, 27, 9, 1, -31, 5, 11, -18, -7, -37, 7, -2, 14, -22, -23, -2, -2, -11, -23, -18, 7, -17, -11, -17, 13, 0, -20, -6, -3, 6, 10, -8, 13, 26, 11, -14, -14, -13, -2, -5, 8, 7, -8, -8, 5, -8, -21, -7, -5, 0, -3, -10, 4, -19, -32, 10, 0, 15, 15, -17, 18, -11, -12, -10, -6, 25, -56, -18, -27, -20, -53, 4, 22, 10, -18, 27, 1, 11, -10, -21, -20, 11, 16, 20, -15, -7, -8, 4, -38, 13, 8, 11, -6, 6, 16, 14, -28, 19, 14, -20, 1, 19, -21, -3, -3, -2, 13, -11, -49, -14, 4, 5, -19, 6, 2, -5, -13, 5, -27, -12, 2, 1, -2, 15, 23, -16, -6, -15, 32, -22, 18, -28, 5, 4, 11, 11, -30, -15, 19, 2, 11, -21, 7, 11, 17, -18, -6, 0, 4, 11, -14, -4, -39, -32, 4, -27, -7, -10, -15, -13, -3, 33, -9, -9, -18, 5, -23, 15, -12, -16, 4, -21, 7, -10, 0, -22, 3, 5, 7, -18, -21, -23, -13, -20, -7, 25, -10, 12, 11, 10, 8, -21, 17, -2, -5, 4, 8, -17, -23, 3, 8, 3, -10, -17, -35, -14, 21, 16, -6, -11, -5, 1, -3, 9, -8, 19, 6, 12, 11, 0, -20, 19, 15, 10, 6, 2, 13, 16, 14, -19, -3, 1, 7, -15, -23, -24, -23, -14, 6, -22, -5, 5, 7, -3, 16, -11, -19, 2, 26, 16, 0, -8, -27, -11, 4, -17, -10, 36, 10, -1, -27, -16, 26, -12, -39, 8, -23, 7, -12, 8, -25, -3, 10, 11, -31, 1, -6, -8, -26, -19, -14, -26, -26, -13, 9, 4, -32, 18, -12, -19, -18, -18, 1, -2, 5, -21, -18, 13, -5, -14, 16, -2, -24, 18, -9, -11, -4, -5, -11, 7, -23, -7, -2, 14, -13, -37, 5, -21, -16, -5, -8, 5, -5, 1, 4, -21, -2, -4, -2, 1, -27, -26, 0, -2, -29, 16, 5, 9, 16, -7, 26, -22, 8, 1, -32, -7, -18, -21, -16, -2, -13, 6, -19, 11, -8, 17, 0, -6, -9, -22, 7, 15, 11, -12, 0, -2, -38, 1, -13, -23, -1, 21, 8, -8, -20, -1, -6, 14, -4, 17, -34, 7, 19, 19, 9, 20, -16, -9, -23, -2, -25, 18, -8, -8, -10, 21, -24, -8, -13, -1, -19, 36, 1, 2, -19, 14, -13, 4, -12, -25, -19, -4, 10, 6, 16, -6, -33, 4, -3, -22, -8, 7, 18, -17, 4, 25, 24, 6, 3, -19, -17, 2, 2, -17, 19, 7, 3, 15, -7, -14, -23, 23, -18, -2, 13, -18, -27, -22, 15, 8, 22, 18, 17, -15, -4, 12, -4, -11, -14, 5, -4, 8, -29, -16, -3, -17, -18, 20, 25, -13, 10, 11, -15, 22, -2, -24, 1, -11, -31, 0, 6, -2, 12, 16, -15, 17, -4, 11, -19, 18, -16, 26, 11, -13, -20, 11, -19, 15, -7, 8, -8, 17, -8, -21, -19, -7, -24, -25, -19, 17, 10, -17, 20, -6, -8, 54, 23, -4, -23, 9, -4, 5, 8, 34, 0, -9, 9, 13, 26, -3, -14, -12, -25, 1, -8, -19, -27, -23, 13, 11, -4, -20, 1, -8, 9, 25, 30, -1, -5, -9, 28, 19, 8, -20, 15, -17, 13, 13, -4, 4, 2, 19, -17, -7, -4, -12, -1, 4, -15, 19, -6, 10, 21, 12, -7, -9, -2, 11, 3, -6, -25, 4, 14, -16, -15, 1, -1, 14, 24, 12, -1, -17, 25, -3, -9, -14, -25, -8, -5, -16, 15, -8, 7, 16, -10, 11, -11, -16, -24, -10, -11, 1, -12, 18, 5, -10, -26, 18, 20, -14, 22, 14, -22, -2, 34, 23, 25, -15, -10, -17, 15, -9, 9, -7, -5, 0, -14, 1, 6, -11, 9, 15, 6, -11, 2, 19, -17, -2, 16, -2, -19, -9, 18, -5, -1, -23, -9, 24, -11, 10, -10, -7, 12, -6, -1, -17, 10, -12, 4, -12, -4, 6, -12, 9, -5, 15, 9, -22, -10, 0, -15, 13, -7, 43, 14, -2, 1, 11, 19, 7, -7, 16, -11, 7, -5, 6, 17, 20, -2, -1, -3, 13, 2, -21, 20, 16, -6, 40, 33, 13, -9, -14, 10, 33, 19, -38, -27, -11, -3, -17, 12, 10, -10, -2, 7, 15, -8, 8, -13, 31, -8, 5, 17, 11, 13, 7, 15, -7, -22, 16, 2, 14, 10, -21, -5, 14, 25, -1, 1, -1, -15, -16, 31, 0, -15, -36, 4, 16, 14, 16, 10, -19, -5, -11, 8, -11, -12, -10, -19, -8, -20, 11, 24, 9, 17, -17, 11, 0, 26, -12, -21, 13, 15, -13, 8, 23, -9, -28, -19, -11, -20, -1, -9, -8, -11, 14, 20, -8, -20, -6, 24, 7, -31, 32, 7, -11, -8, -3, 3, -6, 4, -9, 0, -15, -4, 11, 26, -14, -13, -24, -17, 7, -10, 2, -4, -20, 9, 18, 26, 12, -9, -15, 25, 6, -25, -25, -29, 18, -10, -12, -10, -3, -15, -10, -17, -21, 9, -20, -12, -29, 2, -21, 3, 14, 8, -12, 21, -15, 4, -20, -16, -5, -16, 13, -12, 25, 22, -4, 3, 19, -7, -1, -13, -8, 7, -15, -6, 1, -9, 6, -16, 10, -18, -4, -14, 0, 4, 10, -20, 21, 35, 26, 11, -11, 4, -15, 2, 32, -9, 14, -33, -22, -27, -12, -25, -13, 7, 30, 1, 3, -15, -19, 20, -14, 7, 13, -27, 17, 19, 14, -11, -25, -14, 18, -17, -2, 10, -5, -18, -15, -7, -6, 17, -19, -34, 2, 4, 24, 4, 37, -10, -22, 14, 16, 20, 24, 9, 3, 10, -10, -11, -4, -2, 9, 12, -7, -6, 8, -18, 2, -17, 14, 15, 28, 7, -13, -16, 0, 1, -13, 7, -17, 9, 11, -5, 18, -25, 15, 7, 13, -14, -6, 10, -14, 10, 14, -12, -19, -3, 9, 6, -23, -24, 24, 14, 16, 9, -7, -22, 19, -22, -3, 12, -10, 8, 12, -4, -12, -27, -16, -19, 0, -11, 5, -13, -19, 0, 4, -7, 5, -2, -13, -36, 11, 23, -3, -4, -1, -21, -5, 9, -9, 0, 5, -7, -6, 3, -15, -12, 10, -17, -22, -19, -27, -10, 19, -26, 10, 0, -2, -22, 17, 6, -8, -42, -20, -9, -23, -10, 23, -15, 14, 18, 0, 11, -3, -21, -12, -12, 1, -4, -18, -12, 4, 10, -14, -7, 10, -11, 2, -9, 7, 10, 21, 9, -7, 27, -21, -27, -20, -16, 11, -1, 8, -11, 7, -14, -10, -9, 18, -14, 11, -14, 7, 13, -6, -4, 15, -33, 14, -42, -7, -27, 31, 12, 3, -24, -1, -8, -16, -2, 10, -1, -15, -6, 14, -26, -18, -15, -12, -8, -25, -17, -12, 14, 12, -1, 13, -23, 9, 4, -11, -30, 18, -9, -12, -4, 3, 11, -8, 3, 2, -37, 3, -26, -27, 21, -5, -32, -21, 21, 0, -4, -9, 17, -20, 13, -3, 3, -23, -11, 4, 11, -9, -14, 1, -25, 4, -1, -20, 1, -22, -28, -20, -28, -18, -9, 25, -24, 5, 7, 5, -41, -8, 25, -1, -18, -16, 9, 5, -11, 5, 2, 13, -13, -13, -27, -19, -25, 24, 1, -18, 2, -7, 1, -11, -8, -1, 3, -11, -3, -19, 18, -8, 16, 4, 26, -34, -16, 5, 15, -5, -17, -7, 28, 7, -10, 8, 23, -8, -14, -6, 26, 1, -8, 6, 0, 9, 17, 39, -31, 42, 29, 11, -11, -22, 22, -11, 11, -25, 3, 9, 29, 8, -14, 27, 42, -17, -13, -13, -3, 9, 16, -49, -62, 24, 19, -10, -34, 11, 3, 11, -2, -14, -29, 16, 3, -19, 14, 46, 18, -2, 0, 6, 22, -17, -12, -5, 12, -1, 1, 12, 3, -10, 1, -2, 11, 1, -7, 9, 17, -11, 15, -19, -24, -1, 29, 7, 17, -16, -10, -5, 0, -11, 2, -12, 10, 3, 25, -12, -35, 16, 19, 15, -22, -5, -4, 31, 7, -5, -1, 3, -3, 10, -14, 16, 23, -4, -36, 13, 26, 19, -10, -9, 4, -33, -25, 3, 17, -1, 4, 32, -1, -33, 9, -21, 5, 7, -21, 15, -4, 5, -15, 11, 7, -12, 14, 14, 22, 8, -8, -13, -13, -13, 9, -13, -36, 8, 3, -17, -6, -20, 25, -27, -33, 14, 6, 16, 22, -15, -3, 9, 9, 24, 20, -13, 16, 18, 13, -3, -17, 11, -7, 19, -2, -6, 29, 23, 46, -2, -3, -19, 23, -13, 24, 9, -10, 5, 24, 15, -13, 4, -7, 55, -1, 13, 25, -12, 1, 14, -10, -16, 30, -5, 20, -4, 21, 14, -11, -21, 7, -53, -18, -7, 36, -2, 9, 36, 0, -12, 13, 13, 8, 13, -14, 1, -49, 16, 45, 11, 40, -8, 6, 8, 3, -15, -6, -18, -7, 11, 6, 16, 2, 0, 10, 0, 0, -3, 40, 31, 18, -32, 1, 6, -3, -19, 33, 24, 9, -1, 7, -19, 23, 19, 8, 7, 30, 11, -7, 14, 9, 6, 18, -18, 9, 15, 14, 5, -2, -3, 3, 15, 2, 33, 7, 17, 23, 5, 31, -16, 8, 2, -6, -1, 5, 6, -6, 13, 21, -10, 22, 14, 9, 6, -13, 8, 19, 19, 20, -13, -2, 10, 2, 31, 27, -6, 28, 14, -3, -13, 36, -5, -11, -15, -7, 8, 9, 8, -1, 9, 17, -11, -15, -5, 18, -17, 4, 5, -14, 16, 7, -14, 5, 11, 31, 22, 3, 4, 24, -21, 4, 19, 15, 39, 0, 18, 41, 2, 6, -8, 13, -15, 11, 11, 30, 13, -2, -23, 1, 47, 39, 6, 16, 19, 3, 1, 8, -5, 3, 19, 9, 8, 5, 14, -9, 16, -15, 2, 15, 5, -29, -1, -4, 8, 12, -1, 14, -18, 9, -2, 0, 34, 10, -16, -3, -10, -16, 9, -4, -5, 7, 0, -12, -10, 13, -21, -11, -12, -19, -7, 9, 10, -6, 4, 21, -12, 15, -19, -12, 8, -17, -14, 8, 18, -18, -3, 24, 14, -6, -7, 13, 9, 0, 27, 17, -6, 25, 12, 9, -38, -17, 11, -8, 4, 21, 0, -10, -16, 15, 2, -18, -5, 8, 11, -26, -5, -6, 5, 0, 0, 11, 2, -14, 28, 11, 35, -1, 14, 16, -4, 19, 2, -3, -26, -6, 15, -5, -16, 13, 16, 25, -10, -17, -7, 1, -6, 4, 19, -6, 39, 26, -4, 14, -17, 16, 13, 23, 44, 33, 13, 20, 18, 33, -2, 15, -2, -1, 3, 17, 3, -25, 29, 0, 8, 16, 4, 31, -5, -23, 4, -18, 21, 23, 0, -1, 3, 13, 3, 40, 31, 19, -22, 17, -22, 15, 24, 16, 32, 20, -11, -29, -2, 21, 33, 16, 23, 15, 12, -4, -11, 46, -18, 15, -4, 4, -13, 56, 8, -4, 19, -1, 2, 0, 15, -22, 12, -10, 28, 37, 14, 20, 10, 1, 18, -10, 7, -4, 1, -4, -9, 14, -9, -12, 7, -17, 18, 10, 7, 20, 20, -31, 25, 12, -5, -18, 11, 25, -21, -28, 7, -10, 34, -20, -21, -15, 14, -9, 21, -6, -7, 0, 9, -19, -15, 31, 7, 15, 25, 24, -10, -11, -9, 15, 29, 17, 12, 11, -16, -32, -12, -24, -17, 21, -6, -1, -16, -18, 16, 1, -33, -12, -19, -12, -17, 22, -5, -30, 10, -12, 17, 6, 8, -7, -16, 1, 19, 9, 1, -12, 19, -16, 14, -13, 24, 18, -6, -2, 8, 15, -14, -17, 7, 32, -3, -16, 19, -7, -6, 4, 3, -5, 19, 13, -1, -25, 14, -10, -10, 13, 14, -15, 2, -10, -18, 25, 31, 13, 6, 3, 19, -29, -3, -35, 14, -2, 15, -20, 18, 0, -5, -6, 29, 25, 10, -14, -18, -15, 5, 3, 17, 12, 16, 5, -16, 41, 7, -11, -19, 5, -7, 22, -1, -2, -13, -10, 13, -19, 5, 9, -16, -18, -8, -13, -20, 25, -9, -8, 13, -8, -10, -3, 30, -11, -20, 2, -13, -10, -15, -17, -11, -20, 17, -9, -21, 2, 10, 3, 1, -23, 38, -4, -34, -11, 10, 17, 16, -6, -15, 5, -14, 4, 0, -18, -3, -16, 9, 0, 19, 2, -17, 2, -34, -5, 2, 4, 6, -17, -28, -8, 0, 5, -29, 10, -4, -20, -21, 8, -5, 12, -10, 10, -22, -1, -22, 28, 12, -17, 16, -21, -7, -2, 9, 14, 7, -2, -14, 2, 11, -17, -25, -19, -7, -12, -14, 8, -14, 19, 1, -1, -11, 10, -4, 15, 5, -12, -3, -13, -25, -2, -11, -14, -10, -2, -14, -3, -8, -3, 2, 16, -15, -26, -12, 23, 12, -1, -6, -14, -23, 2, -13, 12, 20, 18, 12, -4, -18, -34, -5, 15, -14, 19, -2, -9, 12, -4, -36, -13, -4, 7, 30, 4, 39, 3, -18, 10, 6, 19, 16, -2, -25, 9, 0, -9, -13, 6, 5, -13, -39, 5, -20, 0, 27, -22, 4, 13, -7, -15, -21, -18, 4, -5, 2, 16, -28, -4, -30, -5, -12, 9, -16, -18, -6, 7, -22, 12, 13, -13, 12, -4, -14, 12, -6, 17, 43, -16, -25, -7, 4, 7, -10, -21, 16, -4, -5, -4, -11, 5, -15, 2, 8, -10, 5, -10, -7, 9, 20, 3, -2, -14, -23, 11, 10, -5, -6, 13, 18, 14, 11, -23, 25, -7, 19, 6, -2, -7, 11, -9, 10, 9, 8, 8, 1, 11, 1, -1, -1, -15, 9, 3, -15, -15, 1, 11, 17, -2, 24, 22, 17, -13, -17, 6, -4, 9, -9, 19, -22, -8, 0, 3, 7, -5, 23, -31, 20, -19, -16, 27, -8, -1, 14, 6, -23, 8, 11, 22, 18, -8, 4, -19, -9, -5, -20, 7, -19, 6, -6, -28, 1, 21, 8, -11, 3, -3, -8, 11, 10, 0, -16, -15, 17, 10, -8, -1, -21, -15, -4, -16, -24, 0, -17, 17, -22, -16, -18, -13, 33, -43, 37, -10, 2, 5, -29, -5, -13, -2, -4, 33, 7, 8, 6, 7, -11, 14, 11, -11, -5, -16, 2, -6, -14, -9, 19, -16, 28, 8, -10, -13, -26, 4, 26, -11, 8, 7, 9, 10, -2, 6, 4, -11, -36, -15, -11, -1, 21, 36, 15, 15, -4, -18, 9, -10, 25, -8, 23, -2, -1, -12, -32, -9, 9, 40, -5, 14, 16, 18, -21, -7, -11, 4, -1, -8, -8, 13, -9, -8, 16, -16, 25, -20, 13, -1, -1, -8, -12, -2, -2, -17, 19, 5, -31, -8, -8, 2, -13, 3, -17, -17, 6, -9, 5, -48, 19, 4, 40, -27, 7, -6, 11, -23, 7, -7, 26, -13, 23, -7, -4, -24, 8, -23, 3, -23, 19, 19, 31, 30, -18, 9, -5, 6, -34, -6, 10, 3, -7, 8, 19, -16, -13, -13, 8, 1, -17, 8, -7, -3, -23, 13, 34, 3, -2, -31, -3, -19, 18, -11, -1, 7, 34, -24, 29, 14, 4, -10, 13, 6, -17, -12, -3, -6, -13, -15, 14, -7, -3, 12, 9, -5, -33, -8, 27, -2, 2, 7, -22, 14, -19, -22, 31, 7, -2, 9, -1, -10, 14, -22, -10, -22, 21, 3, -5, 2, -15, -1, 8, 3, 8, -9, 0, -13, 8, 17, 12, 0, -10, -27, -14, -16, -21, 18, -2, -7, -10, -12, -14, -11, -12, -6, 6, 18, 4, -5, -20, -14, 0, 7, -19, 3, 9, 7, -7, -21, 25, -11, -11, -12, 12, -13, -31, -21, -3, -18, 20, 36, -34, 16, -15, 5, -17, -11, 10, 16, 18, 25, 4, 20, 17, 14, 6, 12, 6, -18, -14, 0, 8, -27, 10, -13, -18, -12, -1, -3, -11, 5, 10, 18, 2, -6, -25, 6, -16, 16, 17, 42, 38, -23, -25, 1, 4, -9, -4, -5, -26, 4, -1, 4, 14, -13, -26, -25, 17, -27, 3, -1, -13, 12, -12, 52, 14, -16, 0, -9, 9, 5, 2, 20, -4, -2, -21, 17, -22, 8, -9, -14, 2, -26, -3, -6, -4, -15, -2, 26, -3, 7, -9, -1, 20, 5, 12, -23, -9, -2, -3, -11, -3, 14, 30, 24, 14, -9, -38, 14, 0, -6, 14, -4, 6, 6, -18, 4, -16, -6, -2, 7, 28, 12, -24, 9, 8, -8, -17, 23, 26, -13, -1, -3, -30, -7, -15, 12, -3, -45, -2, -8, -14, -10, -1, 11, 18, 6, -14, 1, 4, -18, 1, 1, -29, -22, -1, -5, -26, -4, 1, -21, 12, 7, -1, 14, 4, 22, 1, -7, 28, 33, -45, -6, -7, -1, 11, -31, -14, 10, -5, -20, 3, 19, -22, -13, 11, 20, 34, 14, 16, 4, 0, 7, 21, -8, 6, 5, -41, 15, -30, 7, -5, -9, 17, 9, 0, -12, 20, -18, -11, 5, -1, -7, -6, -25, -20, -6, -18, 9, -34, -7, -27, -19, -35, -22, -11, -8, 69, 15, 1, -21, 34, 40, 1, 27, -23, -17, 38, 15, 7, -14, -1, 20, -7, 1, -6, -7, -17, -13, -15, -10, -15, 5, -11, 6, 15, -2, 19, 6, -3, -14, -2, 19, 8, -16, -24, -22, -12, 7, -16, 13, 3, -23, -5, 5, -28, 2, -5, -15, 1, -18, -20, -26, 19, 17, -24, 5, -30, 9, 7, 22, 5, 12, -15, -3, -6, -15, -21, -10, -6, 8, -33, -12, -27, -23, -10, 17, -3, -4, 16, 15, -42, 27, -19, 22, -18, 2, -8, 5, 8, -2, 1, -5, -30, -23, 35, 20, -16, 2, 11, 26, -17, 17, -22, -3, -3, -15, -5, 3, 25, -11, 14, -10, 17, -22, -11, -14, 24, -7, 1, 10, -12, 1, -5, -6, 9, 2, -29, 7, -31, 31, -7, -25, 10, 10, -32, -16, -22, -35, -2, 7, -6, -25, -24, -2, -3, 4, 1, 1, 14, -9, -15, -21, 2, 10, -14, -7, 6, -21, 5, -1, 32, -8, 6, 13, -13, -5, -13, -19, 19, -10, -10, 9, -8, 10, -9, 10, 13, -19, -13, 25, -22, -9, 4, 22, -17, -25, 0, -21, -7, -6, -23, -24, -23, 19, -2, 26, 22, -17, 29, 19, 1, 24, 11, -12, 0, -18, -6, -11, -15, 12, -6, 6, -5, -7, 17, -17, 23, 11, 12, 8, 26, 0, 9, 11, 20, 26, -2, -3, -10, 3, 20, 3, 26, -2, 0, 11, -11, -1, -23, 9, -16, -19, 7, 17, -6, 11, -5, -8, -32, 0, 9, 7, -10, 17, 0, -16, 0, -1, -5, -8, -1, 3, -25, -4, 12, -20, 2, -4, -33, -23, -17, -13, -28, 21, -14, -2, -19, -8, -22, -4, 2, 33, 22, 18, 6, -25, 24, 12, -19, -4, -27, 19, -16, 11, 2, -13, 9, 1, -16, -7, -12, -7, 17, -12, -1, -18, 19, 20, 1, -15, -22, -1, 10, 13, -20, 14, 4, 1, -14, -18, 25, 4, -6, -5, -19, -9, -22, 13, -22, 10, 11, 2, 8, -7, 21, 16, -4, 0, 16, 9, 13, -4, -1, -18, -3, -10, -20, -2, 10, -25, -6, -4, 23, 2, -6, -24, 0, -27, -2, -8, -8, 5, -15, -18, 13, 9, -26, -1, -11, 5, 11, 44, 6, 5, 12, 10, -34, 15, -1, 13, -4, -13, -9, -8, 35, 16, -17, -2, -14, 16, 13, -32, 3, -9, -9, 5, 13, -7, 14, 7, -22, 29, -11, 6, -13, 20, -2, -10, 1, 2, 9, 2, -25, 11, 13, 25, -12, 20, -50, 15, -11, 14, -13, 0, -22, -27, -21, 27, -16, -10, 21, 10, -25, 13, -26, 1, 9, 5, 6, -3, 4, 17, -9, -1, 3, -17, 10, -9, 11, -4, 0, 7, 6, 23, -3, 1, -10, 24, -6, -21, 2, 17, -3, 19, 5, -4, -32, -29, -9, 15, 12, 18, 4, 40, -8, -10, -2, 13, 24, -12, -20, 19, -13, 8, 17, -1, 17, -4, -14, -18, -11, 4, 8, 23, -23, 11, 25, 6, -14, -7, -2, 17, 4, -10, -17, -3, 24, 11, -5, 3, -16, -11, -13, -4, 15, 45, 6, 12, -23, 6, -4, -20, 11, -21, 6, -11, 25, -19, -6, -7, 12, -8, -4, -7, -14, 18, -19, -19, -3, 19, -2, 14, 17, 19, -19, 3, -16, 14, -3, 1, -11, -18, -21, 4, -7, 16, 1, 12, 10, 18, -3, -37, 13, 10, -4, 16, -5, -3, 0, 1, 8, 0, -3, -6, -16, 0, 42, 3, -15, -33, 0, 10, -20, 3, -30, -20, -27, 20, 3, -19, -26, 8, 28, 3, -31, 5, -2, 16, -14, -20, 16, -5, 5, -12, -6, 16, 28, 27, 18, 24, 29, -1, -13, -20, -19, -21, -20, 29, 22, 10, -5, 10, 5, -8, 26, 29, -24, -20, -13, -9, 17, -24, 6, -29, 27, 16, -24, -1, 12, 5, -16, -20, -18, -1, 20, 0, 0, 4, 7, -14, 32, 22, -16, 13, -2, 20, -6, 13, -4, -19, 3, -12, -4, -12, 17, 14, 1, -22, -3, -17, 8, -19, 6, -20, -17, 25, 16, 12, -12, -6, -16, -33, -7, 7, 23, 16, -5, 11, -23, -24, -17, -9, -11, 28, -2, 2, -8, 0, -18, -23, 7, 17, -1, -12, -2, -8, 10, -2, 0, -20, 11, -13, 17, -21, -11, 19, 20, -11, 5, -5, 4, 10, 17, -9, -19, -7, -2, 19, -9, 7, -4, -13, 17, 12, 3, -14, 24, -5, -7, -22, 14, -17, 22, 11, 13, 36, 49, 37, -17, 4, -5, -13, 30, 11, 0, 15, 34, 3, -20, 5, 5, -6, -14, -10, 0, -5, -20, -12, 21, -9, 21, 3, 14, 8, 12, 17, 4, 22, 46, 41, -11, 11, 23, -1, -15, -22, 37, -12, -14, -19, -11, -6, -34, -9, -9, -5, 1, 4, -34, 15, -25, 1, 6, 12, 22, 10, 7, -9, 2, 15, -37, -30, 5, -5, 21, -6, -22, -38, -9, -10, 20, 18, -5, 7, 23, 29, -9, -14, -24, -3, -15, -1, 19, 11, 14, 20, 28, -16, -17, -22, 24, -4, -7, 12, -31, -28, -2, 0, -2, 2, 58, 42, 17, 4, 8, 4, -13, -26, -33, -39, -3, 15, -4, -23, -1, -25, 39, 6, -8, 8, -2, -6, 5, 1, 8, 22, 7, -24, 0, 4, 15, 24, 12, 16, -6, -5, 10, 5, 22, 37, -7, 14, 14, 0, 25, -3, 18, -19, -6, -32, -18, 5, 14, 3, 17, 2, -26, -40, 18, -22, -7, 1, 10, -41, 4, -5, 13, -27, 11, 3, -6, -13, 23, 21, 0, 19, -7, -5, 3, 3, 1, -8, 10, 15, 16, 2, 18, 9, -14, 16, -16, -2, -4, -25, 2, -3, 38, 11, 23, 3, -15, -18, 14, 11, -5, 8, -20, 4, 10, -8, 10, 13, -18, 1, -13, 4, 1, -2, 10, 8, 48, 55, -5, -2, -2, 19, 45, 35, -26, 8, -3, -6, 2, -18, 7, -1, 22, 47, -9, 9, -16, -22, 50, 15, 17, 8, -1, -18, -1, -22, -5, -1, 10, -2, 16, 10, -4, -6, 6, 12, 21, -10, -10, -9, -15, 9, 18, -22, 10, -28, -18, 8, 22, 12, -4, -18, 9, 0, 6, -29, -15, -5, 15, -9, -4, -8, 16, 0, 4, 3, 16, -14, 8, -4, -3, 25, -26, 6, 4, 6, 12, 17, 20, 6, 5, 9, 26, -1, 11, -8, 23, 1, 31, -9, -19, -24, 10, 1, 1, -20, -24, -14, 32, -1, -8, -9, 7, -2, 17, -15, 18, 14, -8, -12, 31, 9, 10, 11, 6, -33, -16, 10, 0, -19, 3, 20, 32, -9, -7, 4, 19, -6, -10, -4, -3, 0, 1, 6, -17, 9, -16, -4, 5, -7, -15, -19, 8, 9, 9, 12, -16, -2, 10, -1, -8, 6, -13, -12, -2, -1, -19, 15, 0, -16, -20, 11, -9, 7, 22, 11, -1, 16, 21, -11, -8, 9, 25, 18, 17, 31, -1, -31, -10, 18, -2, -8, 0, 3, -5, 1, 0, -23, 20, 16, 3, -15, 3, -17, 11, 2, 40, -1, -9, -12, 2, 7, -15, 18, -5, -4, -26, -12, 35, 2, 12, 9, 27, 1, -28, -3, -12, -9, -20, 22, 14, -1, -2, -5, 7, -19, -1, 22, 8, 27, -14, -20, 5, -15, -4, 9, -8, 8, 23, -10, 4, -22, 16, -23, 8, -5, -17, 0, -18, 12, -9, -12, -6, -20, -20, -18, -3, -3, 12, 27, 15, 23, 15, 12, 10, 13, -19, 5, 40, 6, 18, -26, -3, -6, -4, -12, -10, -18, -5, 6, 21, -2, 16, -3, 10, 18, 9, -23, -15, -3, 25, 13, -21, 8, -11, 3, 0, -27, -26, 12, -16, -9, -9, 18, 18, -8, -13, -6, -3, 28, -18, -25, -2, -13, -3, 30, 27, 15, -8, 11, 9, -17, 10, -6, 5, -18, 6, 16, -13, 21, -2, 10, -36, -21, 7, 7, -6, 22, 4, -16, 15, 16, -21, -20, 1, -10, -2, 3, 19, 1, -13, 12, -12, 23, 5, -11, 15, 19, 27, 19, -3, -12, 11, 13, -19, 2, -17, 13, 3, -3, -17, -18, 8, 13, 1, 19, 17, 7, -14, -6, 18, -3, 10, -2, 17, 4, -27, -9, 6, 1, -13, 0, 13, -13, -13, -25, -2, -2, -1, 5, 4, -7, 9, 1, -23, -8, 18, 23, -10, 7, 32, 9, -35, -7, -20, 3, -15, -18, -9, -29, -43, -5, -19, -10, -3, 11, 2, -6, 9, -15, 1, 16, 3, -27, 5, -22, -2, -5, -25, -3, 21, -7, -16, 23, -9, -40, 1, 8, 23, -12, 15, 20, -19, 14, 6, -16, -24, 5, -28, -7, -4, -25, -5, 6, 4, 18, -8, -11, -28, -31, -6, -4, -14, 1, 5, -6, -13, -33, 3, -8, -35, 12, 7, 31, -6, 26, -2, 19, -22, 4, 32, 7, -4, -13, 23, -11, -8, 12, 33, 10, 4, -24, -18, 8, 13, -1, -3, 17, -1, -35, 21, 19, -20, -17, 7, -31, -13, -24, -1, 0, -9, 2, 0, 1, -14, 9, -15, 14, -1, 6, 21, 9, -23, -1, -8, 14, -3, -17, 28, -17, 58, 45, -16, 20, -11, 0, 2, 5, 2, 9, -12, 3, 0, -19, 25, 21, 16, 5, 14, 3, -7, -16, -4, -13, -8, 37, 9, -5, -18, -15, 30, 17, 1, -22, -22, -5, -26, -11, 6, 55, -23, 24, 12, 12, 27, 20, 16, -21, -7, -11, 15, -12, 2, -17, -27, -11, -1, -16, 29, -2, 17, 9, -13, -20, -13, -7, 2, -13, 12, -18, 27, 1, 3, -3, 27, 21, -15, -3, -24, -3, 10, -6, -8, -17, -7, -18, -4, 18, -15, -4, -11, -17, 1, -7, 13, 29, 17, -23, -8, 8, 0, -17, -2, -3, -15, 0, 32, -20, -10, -15, 31, -14, -12, -9, 24, 25, -9, -8, 32, 5, 13, -18, -31, 19, 19, 19, -17, -8, 20, 24, 20, -13, 6, 13, 3, -32, -2, -12, 5, -22, 15, 1, -20, -33, 12, 7, 7, -22, 1, -6, 20, 21, 27, 52, -8, 0, -11, -6, 11, -12, -1, 14, 14, 9, 2, -6, -12, 0, 10, 1, 19, 7, 8, 11, -8, -10, 7, 11, 10, 6, -24, 18, 27, 26, -15, 22, -27, -16, -12, 10, 5, 29, 7, 23, -7, 18, -4, -19, 2, 1, -13, 2, 28, -21, -14, -28, -8, 22, -10, 10, 26, -24, -24, -9, 17, 7, -6, 32, 8, -8, 15, 3, 10, 25, -24, -14, -5, 16, -21, 3, 18, 16, 9, 42, 3, 11, -7, 5, 14, 16, -4, -4, -4, -20, -15, -22, -3, 0, -17, -16, -38, -2, -3, 9, 2, 20, -5, 22, 21, 1, -16, -28, 3, -15, 18, 10, -25, 26, -16, 1, 14, 47, 15, 6, -4, -14, 7, -5, -17, -13, -11, -9, 15, 23, -24, -2, 16, -12, 35, 1, 13, -2, -20, 0, 28, 29, 25, 4, 8, 7, -54, -17, 17, 5, 21, 61, -5, -16, -9, -14, 6, 1, 11, -11, -9, 13, 3, 7, 10, 28, -20, -13, -17, 10, -3, 14, -24, -12, -20, 23, 14, 9, 4, 3, 37, 14, 2, -3, 27, -16, 36, 24, 32, 44, -14, 9, -16, -13, -21, -20, -6, -17, -11, 30, 22, -12, 8, 14, 17, 17, -17, -1, 0, 10, 24, -9, 20, -19, -8, 3, 10, 9, 4, -3, 19, -11, -16, 14, 8, -21, -3, 26, -11, 3, -11, 12, -12, 1, 9, 9, -2, 3, 23, 18, -14, 0, 13, -11, 12, 38, 3, 12, 3, -26, -1, -2, -10, -12, -26, -11, 4, 6, -21, 16, -1, -19, 5, -10, -15, 8, 12, -13, 16, -25, 13, 15, 6, -6, -12, 0, 18, 7, 8, -4, -26, 12, 3, -4, -3, 7, 14, -32, -40, -18, 20, -22, 3, 16, 0, -9, -5, -16, 13, 4, 6, 3, 16, -11, 12, -23, 11, -14, -6, 24, 7, 17, -14, 4, -19, -13, -17, 8, 4, 11, -20, 2, 33, 9, 6, -5, 6, -1, 13, -1, -17, 1, 11, 25, 3, 1, 24, -8, -7, -5, 13, -14, 0, 16, 19, 18, 10, -17, 19, 1, 12, 4, 19, 6, -4, -9, -11, 8, -4, -2, -22, -11, 13, -23, 9, -20, -10, -18, -3, 10, -13, -10, 13, 26, -1, -20, 27, -9, -10, -5, 23, 26, 7, 11, 5, 3, -5, -11, 15, 5, 28, 37, -15, 13, -12, 0, 25, 58, -4, 11, -4, -22, -7, -12, 13, -14, 8, -21, 13, 5, -25, -13, 11, 27, 1, 4, -17, -6, -12, 4, 28, 27, 2, -12, 25, 17, 3, -11, 8, 33, -2, 10, -4, -8, -23, 7, -8, 35, 4, -3, -4, -27, -10, -16, 11, -15, 41, -6, 24, 14, -3, -20, 28, -2, 7, -4, 7, 5, 4, -7, 13, -10, -5, -16, 10, -7, 1, 12, 35, -5, 20, -8, 15, -22, -3, -18, 10, -7, 6, 14, -6, -12, 11, -17, 11, -19, 4, -14, -10, -18, -13, -3, 8, 24, 18, 1, 4, 11, 12, -22, -15, -17, 5, 16, 9, -5, 16, 3, -3, -14, 31, -13, 11, -3, 16, -10, 13, 28, 12, -16, -3, 3, 5, -12, 3, 17, 1, 24, 4, 16, -11, -6, 12, -10, 14, 4, 5, -12, 9, 10, 16, 8, -3, 32, 2, 0, 1, -19, 31, -12, -3, -9, -20, 12, 10, 11, 22, 18, 17, 10, -28, 16, -5, 10, -21, 9, 14, -13, -21, -17, -4, -16, 21, 27, -17, -1, -1, -9, 6, -23, 15, 17, -13, -13, -13, 7, 10, -16, -12, -7, 12, 13, -31, -18, 1, -27, 10, 4, -24, 11, -12, 12, -18, 3, 8, -13, 18, -17, -7, 9, -48, 22, -22, -3, 17, -2, 6, -9, -24, 9, 4, -7, -12, 13, 9, -4, 6, -4, 29, -4, 19, 4, 21, 14, -22, 9, 0, 3, 4, 18, -5, 19, 14, -1, 5, 10, 2, -17, 16, -10, 8, -6, -12, -18, 22, 0, -14, 8, -4, 4, 3, -20, -11, -13, -2, 16, -16, 2, -3, -21, 10, 5, 13, 5, 14, 9, -6, -14, 8, 9, -5, -2, 20, 2, -9, 5, -5, -13, 4, 26, -14, 2, 12, -3, 15, 17, 30, 8, -19, -16, -6, 12, 1, -15, -10, 18, 20, 4, 10, -23, -15, -8, -3, -11, -11, -8, -2, 22, 0, 14, 21, 16, 1, -20, 3, 5, -23, 4, 11, 8, 0, -26, 9, -11, 9, -16, 6, 14, -40, -3, -12, -21, 4, 1, -17, -45, 9, -8, -15, -16, -20, 10, 12, 15, -40, -10, -9, -8, 7, -8, 3, -5, 5, 11, 10, -2, -18, 11, 6, -25, 1, 28, 1, 18, 23, 8, -6, -6, 11, -6, 17, -11, 9, 11, -21, 5, -8, 11, -12, 8, -15, 16, 3, -3, 24, 7, 9, -20, -12, 1, -8, -5, -27, 15, 18, -23, 6, -5, 6, 15, 3, 13, 9, 2, -5, 9, 25, 22, 26, 13, 0, -22, 24, -11, -6, -10, -1, 14, -3, -6, 12, 14, -8, -2, 15, -20, 19, 18, -12, -6, 22, 12, 23, 17, 14, 6, 14, 16, 14, 22, -20, -2, -5, -3, -15, 12, 9, 9, 28, -15, 0, -21, 10, 15, 1, 2, 7, 17, -3, -17, 24, -12, 26, 32, 17, -2, 19, -4, 11, 6, 0, -22, -3, 17, 10, 6, 11, -17, -18, -4, 11, -11, -17, 15, 12, -9, -21, 19, 9, 8, 8, 0, 24, -14, 9, 31, 2, 9, 25, -8, -11, -4, 10, -16, -6, 11, 19, -7, 14, 7, -19, -4, 23, 22, 20, -10, 4, 13, -15, 26, -17, 26, -14, -5, 12, -17, -5, -14, 6, 10, -4, 19, 14, -2, -23, -12, -10, 15, -8, -3, -1, 18, -20, 17, -16, -3, -3, -6, 23, 13, 54, 35, 19, 27, 39, 5, -8, -6, 13, 12, -35, -7, 13, -18, 0, -21, 17, 46, -3, 22, 16, -17, 21, -6, 4, 15, 3, -10, -3, 6, 0, 2, -12, 0, -13, 16, 1, -13, 8, -15, -10, -25, -14, -17, -21, -16, 1, -13, -37, -6, -11, 12, -34, -19, 32, -11, -23, 16, -10, -7, -7, 6, 0, -6, -12, -7, -17, -3, 15, 13, -5, -14, -36, -7, 5, 3, -11, 20, -12, -18, 35, 9, -19, -16, 1, 18, -18, -14, 0, -8, 0, 12, -19, -23, 8, -19, 21, -14, 11, 23, -26, 12, 4, 2, 29, 24, -22, 5, 22, 13, 14, -9, 17, -14, 12, 9, -29, 16, 18, 13, -8, -5, 2, -7, 26, 19, 3, -12, -25, 19, 10, -8, 24, -9, -1, 10, 17, -9, 25, 20, 16, -3, 15, 15, 19, -20, 3, 46, 2, 3, -10, 19, -21, 30, -7, 0, -19, -17, 35, 5, 14, 18, -9, 1, 18, -12, 19, -12, 24, -6, -1, -14, -22, 11, -5, -9, -9, 0, 16, 5, -34, 6, 22, 16, -4, 6, 19, 27, 22, -10, 9, -3, -9, 57, 33, -12, 39, 12, -6, -9, 1, -13, -5, 16, -9, 1, 53, 12, 18, 31, -10, 27, 3, 10, 32, -1, 35, -8, -2, 28, -10, -22, 1, -9, 7, 9, -6, -8, -3, -15, -10, 6, 17, 31, -29, -10, -19, 16, -7, 3, 3, 20, 2, -1, 29, -19, 16, 21, 19, -17, 38, 18, -13, 20, -11, 18, 34, 28, 17, 27, 12, -22, -10, -12, -12, 51, 13, -3, 3, 0, -1, 19, 24, 35, 6, 18, 4, 9, -12, 12, 29, 24, -23, -3, -11, 14, -20, -21, -9, 0, -22, 50, -23, -5, 10, 0, 0, 5, -11, 57, -13, 1, 13, -22, -8, 4, -15, -9, -24, -15, 7, -18, 39, 26, -3, -4, 20, -8, 14, -4, 11, 18, 9, 13, -5, 12, 11, -6, 10, 18, 26, 0, -25, 6, -24, -2, 17, 23, 36, 46, 4, -15, -28, 6, -1, 32, -23, 0, 15, -17, -8, -5, -9, 2, 24, 21, -24, 1, 10, 20, 2, -9, -19, -17, 2, 19, -18, 6, 5, 28, 15, 24, -7, 3, -16, 5, 9, -11, 45, 47, 12, 10, 9, -11, 27, 49, -31, -21, -7, -1, 16, 3, -22, -8, -5, 8, -16, -18, 30, -5, 3, 17, -14, -13, -11, 11, 35, -10, 10, 8, 4, -3, -2, 13, -23, -12, 7, -13, -31, -16, -17, -18, 4, 14, 2, 5, 16, -15, 17, -1, 4, -19, 18, -8, -10, -7, -8, 2, -19, 1, -9, 45, -17, 10, -3, -16, 11, -9, 4, -13, 2, -11, -28, 10, 1, 14, 12, -23, -9, -19, -14, -21, -8, -13, 14, -23, -2, 7, 5, -19, -13, 18, -8, 2, -20, -15, 11, -23, 4, -18, 16, -1, 3, 6, 1, -14, 8, 9, -6, 3, -19, -24, -18, -6, 4, -5, -25, 6, 15, 2, -20, 13, 15, -10, -12, 11, 22, -11, -15, -22, -2, 15, -6, -11, -27, -9, -24, 2, -1, -19, 0, 1, -14, -1, 0, 14, -6, -10, 14, 33, -1, 4, 20, 13, -20, -18, -4, -6, 11, -7, -7, -20, -2, -25, 15, -27, 23, 13, 18, -7, 0, -7, -4, 2, -1, 17, 12, -4, 11, 5, -13, -6, -15, -7, -4, -20, -23, 18, 5, -22, 25, -4, 14, -2, 0, 16, -18, -10, -3, -17, -19, 4, -15, -18, -11, -24, -10, 10, -8, -22, -4, -20, 7, -14, -13, -17, -11, 15, 12, -11, 12, 9, -14, 3, -10, 9, -16, 0, -10, 23, -9, 18, 8, -3, -16, -23, -9, -19, -10, -20, 15, -14, 31, -1, 1, 4, 1, -11, -10, -15, 24, -18, 41, 27, 3, -7, -13, -13, 1, 13, -18, -27, -1, -21, 1, -21, -10, 13, -31, 15, 13, 39, -7, -2, 9, -24, -10, 11, 9, 22, -5, -6, 18, 4, 3, 8, -17, 9, 37, 7, 3, -21, -8, 10, 2, 20, 7, -2, 2, -9, -30, -5, -19, 22, 3, 9, -15, -1, -6, -12, 29, 28, 4, 6, 17, 10, -1, -12, 0, 18, -6, -2, -5, 14, 22, 22, 6, 23, -14, -14, 30, 15, 7, 8, -5, -17, 14, 8, 9, -17, 29, -21, 26, 4, 5, -2, 16, -11, -14, 2, 6, -17, -30, 13, -12, -16, 12, 9, -10, 12, -21, 13, -19, -9, -2, 6, 11, 8, 8, -13, 2, 3, 7, -21, 0, 7, 10, -2, -4, -12, -10, -12, 15, 17, -5, -10, -10, -14, 21, -15, -6, 6, 5, 4, 3, -14, 27, 1, -11, -3, -14, -20, -14, -19, 12, 17, 9, -15, -12, -1, 13, -21, -12, 5, 2, -27, 7, 19, -28, 4, 1, 12, -14, -1, 18, 2, 12, -14, -3, -9, 44, -4, 15, -19, 12, 5, -3, -13, 5, 3, -23, -8, -30, -13, 33, 53, -36, -24, 38, 5, -16, 4, 2, -6, 17, 34, 9, -15, 25, -25, 4, -2, 23, -24, -23, 14, -16, -16, -16, -39, 7, 18, -34, -23, -2, 9, 12, -35, 16, -60, 1, -13, -24, -10, -8, 7, 9, -19, 18, -8, -18, 19, 28, -50, 5, -37, -43, -6, -49, -6, -21, 17, 16, -16, 12, 0, -22, -2, -1, -6, -15, -6, -13, -11, 11, 12, 15, -9, 3, -20, 15, -3, -3, 6, -22, 22, -18, -23, 11, -16, 9, 3, 6, 29, 4, -13, 30, 9, 8, 2, -3, -19, 25, 40, 10, 11, -15, -9, -2, 11, -20, -2, 21, -19, -5, -18, 34, -48, 37, -32, -11, 13, -16, -10, 10, 20, -4, -20, -2, 11, 2, 8, 4, 43, 34, 20, 6, 3, 1, 5, -49, 8, 4, -50, 32, -21, -30, 16, -20, 12, 21, -26, 9, 4, -22, -21, 19, -3, 36, 47, 16, 6, 24, -11, 8, 17, -3, -18, -11, 8, 1, 13, 15, -15, 26, -9, 11, -5, -19, 1, -18, -28, -4, -10, 36, -23, 10, -8, -4, -6, -7, 7, -19, 16, 7, -20, 13, 17, 5, -17, 17, 14, 18, -9, -19, 8, -10, -16, -15, -13, 29, 13, 30, 1, 15, 2, -10, 12, 1, -13, 25, 39, -5, 13, 1, -3, 19, 4, 50, -15, 16, 14, 31, -7, 15, 11, -12, 3, 24, 22, 27, 7, 7, 9, 19, 32, 13, 24, -10, 12, 22, 8, 19, -26, 14, 40, 16, -5, -6, 2, 11, 23, 27, -21, -4, 9, -8, 7, 37, -3, 45, 39, 8, -22, 3, -3, 13, -16, -20, -26, 22, 11, 17, -2, 21, 44, -19, 2, 20, -9, -18, -5, -9, 5, 9, 14, 14, 10, 0, -21, 0, -21, 5, 6, 0, 12, 24, -23, -28, -6, 1, -34, 10, 8, -38, 4, 9, -19, 9, -1, 21, 8, -19, 15, 1, -1, -21, 9, -20, 10, -6, 18, 7, -14, 0, 55, 10, 14, 22, 12, -16, 16, 24, 31, 6, 9, 5, 11, 14, 22, 23, -16, 23, -6, -34, 2, 14, -2, -27, -19, -24, 6, 24, 13, 0, 10, 6, 21, 13, -15, 9, -22, 23, -12, 16, 2, -24, -7, -29, 7, -23, -11, 13, -5, 30, -10, 21, -13, -2, 9, -6, -2, 12, -8, -10, 15, -2, 12, 22, 33, -15, -14, -4, -24, -1, 8, -5, 37, 17, 14, 10, 6, 10, -15, 1, 1, 9, 4, -9, 7, -18, 7, -13, -11, 10, 16, -41, -24, -16, 32, -18, -1, -10, -4, 16, -18, 3, -2, 14, -15, -11, 9, 20, -10, -4, 41, -4, 13, -19, 22, 2, -9, -3, 4, 30, 12, -11, -19, -12, 17, 4, 28, -10, -30, -17, -11, -22, -4, 4, 3, -4, 58, 9, -13, -33, -8, -18, -12, -1, 14, 6, 0, 7, -15, 18, -3, 31, 9, -5, -13, -28, -5, -4, -12, 6, 12, -16, 3, -2, -2, 3, 9, -8, -24, 11, -10, 14, 17, 27, 22, -3, -27, -7, -14, -2, 12, -6, 1, -27, -2, -1, -10, 19, -14, -17, -12, -12, -25, -3, -20, 12, 15, -11, -25, 9, -15, 22, -7, 20, 15, -9, -11, 13, 5, 14, -13, -7, 5, 15, -15, 10, 31, 19, 14, -2, -1, 35, -14, 4, -4, 15, 16, -10, -20, 0, 14, -2, 50, 13, -19, -8, -4, -9, -15, 20, 17, -11, 5, 0, 11, 0, -17, 5, -12, -1, -18, 7, 14, 12, -23, 15, 18, 7, -15, -11, 14, 29, -10, 4, 9, -32, -12, 4, -12, -17, 26, 9, 9, 12, -7, -10, 7, 6, 37, -1, 8, -18, -6, -8, -16, 10, -5, -19, 16, 14, 13, 16, -7, -22, -15, 2, -9, -17, 13, 9, -7, 8, 20, -20, 4, 10, -12, 20, 10, 20, 1, 4, 4, -14, -4, -14, -17, 18, 6, 2, -5, 14, 12, 6, -19, 10, -1, -8, -21, 0, 2, -6, 2, -7, -29, 21, 9, -11, -4, -8, 18, -13, -11, 13, 27, 6, -19, -8, 8, -11, 9, 1, -12, 0, -6, -14, -14, 1, 2, 7, 20, 5, 2, 21, -18, 26, 5, 3, 9, -30, -20, 15, -21, -5, -3, -21, -23, 33, -3, -12, -8, -10, -13, -12, 15, 16, 11, 40, 6, 6, 15, -15, 9, 6, -3, -24, 16, 1, 16, 13, 11, 25, -15, 23, 8, 16, -34, 7, 7, -9, 7, -32, 16, 2, 2, -1, 32, 23, -17, -10, 8, 7, 7, 36, -1, -31, -14, 10, 16, -20, -7, -2, -3, -10, 2, 18, -17, 11, -64, -13, 24, -16, 7, -11, -17, 9, 20, -1, -2, 5, 4, -3, 14, -1, 15, -20, 6, -12, 5, 15, 2, -4, -7, -17, -18, -20, -21, 9, -19, 10, -8, 24, -10, -6, -19, -2, -4, 13, -11, 22, -19, -24, 19, 3, -16, -7, -14, -17, 22, 9, -1, -25, 0, 1, 6, 10, 4, 25, 4, -4, 17, -14, 17, 1, 6, 6, -26, -10, -24, 11, 10, 10, -2, 12, -3, -26, -21, 14, -19, 17, -32, -25, 10, -11, 0, 10, 1, 16, 6, -20, 7, -4, -20, 19, -9, -2, -27, 9, -22, -3, 12, -3, 16, 5, -1, -26, 6, 2, 16, -3, -7, 0, -24, 25, 19, -32, -18, 0, -6, 17, 12, -6, -21, -27, -11, -17, -22, -22, 0, -1, 16, -10, -10, -8, 36, 3, 8, -26, 14, -16, 9, 4, 16, -22, 24, 7, -15, -1, -15, -1, -5, 13, -29, -8, -4, 13, -15, 8, -48, 11, 7, -11, 11, 10, 16, 13, 1, -13, 11, 2, 1, 4, 6, -2, -17, 21, 3, 12, -18, -8, -11, 12, -22, 10, -22, 16, 0, 13, 15, -4, -33, 10, -5, 7, 1, 8, -22, 7, 1, -17, -20, 9, -14, 23, -11, -14, -73, 15, -20, -20, -16, 4, -17, -16, -16, 4, -4, -33, 11, 33, -15, 22, -30, 2, -12, 15, 13, 0, 5, -7, -28, -8, -40, 8, -9, -6, 15, -14, -26, -4, 16, 16, 3, 32, -6, -8, 6, -2, -47, 4, -11, -19, 14, 18, -30, 3, -24, 6, 13, 0, -7, 18, -9, -6, -6, 10, 2, 26, -17, -24, 4, -3, 18, -19, -5, 14, 0, 3, -31, -11, -13, -18, -15, -4, 19, 22, -24, 0, -12, -6, 14, 1, 3, -20, -24, 26, -14, 17, 6, 19, -18, 29, -19, 8, -11, 28, -17, 9, -17, 18, -38, 3, -22, 15, -3, 6, -13, -21, -7, 4, -14, -10, -13, -27, 6, -1, -18, -20, -23, -7, -7, 19, 0, -19, 7, 23, -19, 5, 19, -16, -3, -15, 17, -24, 25, 16, -1, -3, 14, -2, -6, -13, 2, -17, 6, 4, 13, -12, 22, 5, 39, 19, 0, -34, -10, -14, -16, 1, 30, -6, -2, 25, 12, -9, 27, -20, 11, -15, 1, -11, 12, 13, -7, 6, 10, 5, -10, 22, 6, 6, 19, 24, 3, -28, -22, 16, -22, -17, 4, 15, 4, -40, 11, 5, 12, -19, 9, 7, 8, -7, 8, 7, 5, -31, 13, -19, 9, -7, 14, 20, -4, -30, 4, -22, -21, 21, 2, 10, -17, 18, -15, 12, 1, -10, -5, -4, -11, -18, 1, -26, 12, 3, 4, 16, -16, -13, 6, 20, -9, -4, -18, 5, -6, -20, 13, -19, -2, -18, 0, 41, 14, -17, 15, 6, 5, -12, -16, 29, 5, -19, -11, -2, -22, -6, 6, -16, 0, -27, 31, 8, 16, -26, -3, -20, -22, 9, -9, -18, 14, -19, -8, 0, -2, -3, -7, -33, 37, 1, -15, -5, 0, 8, 14, 3, 8, -5, -8, -5, -11, -2, 4, -6, -32, 18, -24, -9, -14, 6, -13, 4, 7, -6, 12, -20, -20, -4, 8, 2, 1, -32, -9, -12, 17, -4, 35, 4, 9, 4, -17, 3, 18, -15, 43, -13, -34, -13, -10, -23, 17, 21, -14, 24, 11, 12, 2, -27, -15, -14, -28, -26, 9, 1, 2, 20, -20, -14, -15, -16, 13, 3, 7, -4, -12, 23, 2, 2, -1, 37, 10, -27, 16, -5, 25, -5, 6, -25, -7, 39, 10, -20, 30, -1, -12, -8, -18, -32, 18, -19, -11, 6, -6, -17, 0, 9, -3, -12, -31, -12, -11, -26, 9, 28, 14, -4, -18, 1, -1, 13, 2, -26, -2, 9, 4, -10, 27, -4, -21, 14, 3, 44, -31, -10, -21, -11, 8, 1, 6, 13, 31, -8, 9, -21, 9, 20, -21, -2, 23, -7, 15, 6, 7, 10, 10, 6, -7, 11, -7, -11, 6, -11, 5, -4, -2, -13, -26, 2, 4, 9, 15, -2, -14, -12, -5, -9, -10, -8, -4, -12, -29, -15, -8, 8, -11, 9, -2, -12, 13, -11, -14, -14, -13, -2, 16, -11, 11, -12, -14, -17, 14, -12, 20, -8, 10, -9, -11, 6, -14, 40, -5, -9, 0, -21, -33, -2, 16, -1, -13, -20, -12, -13, -9, -26, -17, -14, 1, -8, 13, 12, 22, 18, 3, 7, 19, 6, 27, -30, -32, 17, 10, -31, 16, -10, -12, 5, -30, -4, -7, -14, 3, -27, -28, -5, 7, -16, 2, 21, 14, -15, -7, -3, 3, -4, -14, 22, -21, -11, 6, -21, 0, -4, 8, -4, -2, -5, 8, 35, -13, 14, -12, 29, -4, -17, -3, 3, -12, 13, -16, -1, 4, -11, 24, -7, -36, -20, -17, 8, -12, 35, -4, -19, 3, 49, 5, 4, -3, 13, -6, 13, 30, 0, 5, -15, -17, -11, -8, -23, 8, 15, -4, 3, -21, -4, 3, -19, -20, -33, -3, 6, 10, 8, -22, 17, -19, -19, 1, 0, 1, -3, -7, -24, 25, -17, -16, -10, -21, -6, -3, 0, -34, -21, 13, -27, 19, 15, 17, 1, 16, -21, -14, -12, -15, 9, 22, -10, -5, 16, 19, 8, -16, -33, -19, 12, -11, -17, -2, 17, -20, -12, 14, -31, -19, 23, 10, -8, 13, -27, -27, -1, 1, -23, 6, 1, 3, -20, 47, 11, 27, 12, -15, -18, 13, -35, -13, -2, 42, 4, -2, -23, 4, 4, 3, 12, 13, 13, 19, 2, -22, 19, -3, -21, -9, 14, -14, 21, 20, -2, -27, 18, 14, -1, -12, 16, 14, -9, -6, 14, 9, -5, -19, -2, -12, 27, -6, 25, -20, 15, -10, 7, -7, -20, -4, -2, 2, 18, 2, -3, -22, -5, -10, 8, -11, -4, 17, -16, 17, -18, -16, -5, 14, 12, 2, 10, -2, -6, -7, -10, -6, 1, -16, -13, 20, 13, -15, -4, 10, -1, -17, -4, -8, 17, 16, 7, -11, 28, -6, -6, 7, 21, 1, -14, -1, 5, 5, 3, -13, 11, -16, -5, -20, 22, 15, 24, 4, 10, -11, -15, -35, 14, -19, -7, -15, 7, -25, -9, -7, 3, -2, -8, -13, 2, 10, -2, 4, -3, 16, 26, 17, -13, 7, -14, 21, 29, 4, 16, 14, 18, -10, 6, 6, 13, -12, -13, 7, -5, 2, -13, 4, -2, -15, 42, 16, 24, -11, 19, -10, -3, 1, 9, -16, -9, 14, 12, 3, -4, 4, 15, -10, -18, -4, -1, 9, -27, 7, -10, -11, 17, -6, -28, 4, 1, -9, 8, 9, -16, 12, -9, 13, 7, -16, 11, 10, 9, 7, -16, 18, 2, 8, 1, -6, 5, 7, 3, -13, -20, 25, 16, 6, 6, -2, -16, 21, 2, -28, 13, 2, -7, 1, -30, 31, -13, 10, 7, -4, 10, 3, -25, 27, -21, 1, 14, 7, 16, 7, -21, -16, -5, -25, 11, -17, 3, 12, -11, 5, 0, 29, 21, -3, -4, 10, -20, 9, -3, 29, -2, 22, 19, 3, -21, 15, -19, -10, 7, -6, 13, 9, -12, 17, -7, -19, 12, -13, -22, 9, -14, 22, -16, -12, 2, -34, 12, 23, 21, 15, 9, -4, -5, -18, -2, 3, 6, 8, 11, 7, -19, -4, 4, 5, -16, 21, -13, 13, 18, 13, -8, -15, -25, 23, 6, -3, -14, 1, -8, -4, -47, 28, 10, -11, -12, 15, -26, 4, -12, 17, -14, 20, -8, 21, 1, 8, 15, -15, -3, -21, -18, -8, -24, -16, 11, 4, -6, -11, -3, 8, -11, -1, -23, -1, 10, 15, 19, 0, 8, 33, 10, 9, 1, 10, -11, -17, -18, 3, -16, -12, 5, -1, -18, 15, -15, 18, 5, 14, 16, -12, 8, -15, 5, -27, -24, 18, -13, 12, 14, 7, 10, -8, 2, -15, -16, -2, 18, 10, -19, 4, 34, -18, 1, -3, 9, -21, -14, 16, -5, -19, -12, -10, -5, -7, 12, 5, -29, 3, -16, 26, -5, -23, -12, 4, -10, 17, 14, 25, 5, 2, -12, -4, -8, 4, 10, 5, -22, -10, -13, 1, 5, -10, -25, 21, 0, 0, -23, 8, 10, 25, 2, -10, -1, 22, -11, 3, 11, -18, 14, 2, 14, -11, -5, 15, -12, 27, 9, -3, -17, 7, 6, -19, -21, -22, 16, -13, -22, -6, -18, 23, 0, 14, -18, -4, 12, 9, 5, 7, 26, -23, 15, -16, -12, -15, -17, -4, 2, -14, 10, 11, -3, 13, 1, 20, -12, 11, -20, 7, -21, 11, -17, -5, 9, 20, -21, -25, -12, 15, 11, 25, -19, 30, 13, 15, 1, -1, 6, -9, -20, -9, -22, 5, 8, -27, 14, -3, 3, -3, -12, -32, -19, 14, 13, 22, 9, 20, 18, -11, 14, 3, 13, 15, 1, -9, -21, -21, -8, -9, -6, 6, 7, 11, -1, 16, 12, -7, 13, 27, 9, -9, -11, -5, -11, 8, 51, 13, 8, -21, -13, -2, 17, 9, 29, 2, -2, 20, -9, -26, -13, -10, -35, -29, -13, 32, -16, -1, -11, 7, 7, 14, 15, -7, 18, -29, -3, -25, 3, -10, 30, 8, 2, -20, 0, -32, -3, 19, 12, 5, -2, -12, 7, 12, 4, 24, -1, 24, -1, -51, -17, -9, -18, 29, 14, 6, -1, -27, -18, -45, 21, 6, -4, 22, 11, -7, -19, -16, 21, 16, 21, -18, -7, 2, -20, -19, -27, 1, 10, 9, 17, 14, 13, 1, -9, -13, -30, -22, -14, -27, 18, -13, -11, 21, 13, 8, -7, -19, -7, -21, 40, 15, 8, 0, 2, -3, 13, 2, 4, 3, 22, 5, 12, -19, 19, -14, 21, 25, 6, 29, 15, -18, -20, -22, 19, 17, 17, -2, -14, -21, -19, -15, -1, -21, -7, -23, -12, -3, 4, -28, -16, -3, -13, 17, 7, 4, 0, -33, 10, 14, 21, 1, 15, -25, -20, 14, 22, -16, -6, 18, -5, -45, -21, -26, -14, -8, -30, -42, 7, -3, 17, -10, -10, 6, 8, 8, -19, -32, -7, -4, -13, -2, 10, 18, 1, -18, 16, -3, -36, -24, 22, 3, 21, -2, -8, 4, -3, -16, 0, -6, 5, 8, -21, -6, 1, -9, -5, 5, -19, 17, 1, -10, 5, -5, -28, 15, 4, -20, 7, -43, -13, -2, -8, -10, 3, 7, 7, 5, -6, 19, 6, 10, -7, -14, -5, -36, 6, 6, -4, -12, -13, -26, 7, -3, -10, 2, -7, -8, -5, 15, 6, -18, -18, -23, 4, 3, 18, -28, 5, -24, 16, 8, -2, -12, -17, 1, -22, -21, 5, -13, -7, -20, 17, 24, 10, -16, -11, -12, -34, 27, 19, -10, -14, -35, -17, -15, -14, 5, 19, -47, 0, 19, -16, 20, 21, -6, 15, -39, -21, -17, -20, -14, -11, -19, -3, -17, -15, -4, 6, -35, 2, -14, -15, 35, -19, -11, 22, 16, 10, -2, -21, -10, -5, -25, -18, -8, -21, -4, -18, -24, -20, -28, -27, -9, 1, -4, 8, 4, -8, -14, 5, -21, 11, -14, -11, -37, 10, -29, 14, -24, -7, 16, 16, -9, 16, -34, -16, 16, 2, -15, 8, -34, 3, -35, -3, -9, -24, -16, 14, -11, 9, -32, -7, 13, -6, -19, -9, -22, 4, -26, 22, -21, -11, 13, -13, 5, 9, -24, -23, 9, -14, -20, -10, -39, 23, 14, -22, 23, 12, 10, -19, 15, 2, -4, 5, 31, -30, -28, 15, -3, -10, -6, -28, -19, -37, 15, 18, -26, 13, 40, -7, 12, -20, -28, 6, -25, 11, -2, -27, -26, -14, -24, -12, -6, -9, 8, -23, -4, -15, -16, -21, -6, 14, -17, -19, -8, -13, 3, -17, 0, -6, 7, 15, 4, -24, -9, -5, 5, 2, 0, -15, -22, -17, -11, 16, -1, -5, 2, 12, 13, -20, 12, 4, 9, 13, 48, -11, -9, 16, -21, -4, -7, -6, 8, 0, -17, -7, -21, -11, 7, -19, -1, -14, 32, 7, 0, -4, -15, 14, -10, 7, 15, -25, -15, 15, -6, 1, -8, -8, -15, -5, -4, 2, 13, 16, -16, 26, 24, -3, 8, 17, -24, -24, 4, 7, -14, -7, -28, 0, 19, -13, -21, -5, 5, 2, 37, -10, 7, -22, 25, -10, -2, -15, -22, -17, -13, 20, -11, -1, 45, 7, -6, 8, -10, 5, 14, -16, 20, -25, -9, 9, -16, -3, 12, -14, 18, -27, -31, 2, -1, -8, 0, -7, 13, -6, -25, -8, -17, -11, -17, 8, -7, 19, 11, -15, -23, 7, 14, -19, 9, 9, 32, -8, -20, 12, 1, 16, -6, 2, 0, -5, 27, -11, -8, 6, -9, -17, -7, -14, 5, -20, 12, -15, 3, 17, 25, 12, 29, 3, -14, 38, -13, 9, 23, 9, 5, 15, -9, 34, -15, 22, -9, 19, 16, 11, 28, -7, 25, -22, -6, -19, 19, 7, -11, -11, 30, 17, -13, -13, -6, -11, 18, 17, 22, 5, 11, -5, -1, 1, -7, 10, 41, -12, -7, -16, 7, -21, 7, -3, -18, -10, 3, -7, -10, 18, -14, 20, 32, 2, 19, -1, -1, 13, 21, 2, 9, 12, 1, 5, 24, -2, 11, -17, 9, -5, 31, 18, 11, -7, -1, 30, -14, 4, -19, 5, -11, 11, 5, 11, -4, 1, -9, 7, -11, -17, 1, 11, -9, -15, -16, 14, 11, -3, -31, -20, -18, 4, 18, 16, 17, -10, 2, 0, -17, 16, 13, -20, 24, -15, 37, 32, 18, -7, -17, -8, -16, -18, 10, 12, 0, 20, -12, 2, 11, 1, 17, -1, -18, 11, 8, -5, -28, 1, 18, 4, -3, -6, -8, -6, 10, 6, -19, -16, -17, 16, 6, 16, -21, 17, 3, -11, -20, -15, 17, -3, -17, -6, -9, -30, -31, -6, -7, -1, 4, -11, -21, -26, -18, 2, 17, -21, 4, -15, 2, 10, -16, 24, -15, -17, -13, 13, 6, -5, -28, -19, -11, 14, 19, 0, -33, -15, -24, -10, 9, -17, -8, 9, 20, -6, -21, -11, -28, 8, -22, -3, 30, -6, -7, 18, 2, 15, -10, -19, 10, 28, 10, -4, -6, 9, -1, -20, -5, 5, 0, -13, -2, -6, 22, -10, 5, -43, -12, -23, 15, -5, 33, -15, -20, -16, -39, -2, -4, 10, -14, -10, -20, 5, 17, -22, -21, 10, 23, 6, -32, 15, 3, -11, -16, 0, 9, 6, 25, -29, 7, 14, 17, -21, 6, -18, -23, 14, 22, -7, 10, 8, -3, 14, 29, -12, 23, -15, 2, -11, -2, -20, -23, -7, -3, -1, -15, -12, 1, -7, -27, 4, 0, -16, 4, 7, 6, -5, 8, -2, -31, 1, -17, -17, 12, -1, -12, -44, -9, 24, 0, -4, -1, -16, -23, -18, -6, 31, -15, -17, 3, -20, 1, 12, 54, 2, -35, 12, 6, 6, -1, 25, 11, 12, -25, 19, -33, 16, -15, 4, 27, 2, -12, 14, 23, -6, -8, -22, -14, -37, -50, 16, 16, -13, -9, 12, 9, -8, 1, 18, 11, 8, -32, 9, -37, -15, -19, -25, -3, 7, 22, -29, -17, 19, -4, -1, 16, -9, -13, 7, -15, -9, -3, -14, 0, -6, 7, 16, 28, -27, 6, -22, -11, 9, 5, 7, -16, 4, -4, -9, 25, -25, 4, -6, 17, 17, -22, 3, 7, 5, 5, -15, -26, 5, 7, 19, 0, -8, 20, 0, -11, 19, -15, 15, 20, -5, -28, -17, -3, 5, -3, 21, -5, -22, -32, 16, -1, -37, -49, -5, -16, -18, -2, 9, 8, -25, -10, 9, -13, -2, 5, 11, -35, -28, -28, 15, 30, 3, -7, -8, -29, 0, -6, 17, 3, -4, -15, -14, 21, 9, -5, -16, -28, -5, -5, -13, 16, -13, -30, -14, -16, 13, -3, 24, -3, -9, 11, -17, 6, -5, 5, -15, 25, 16, -16, -12, 42, 12, -20, -45, -12, 21, -18, -22, 18, -15, 10, -23, -5, -5, 8, -14, -13, 12, 20, 21, 6, 14, 20, 11, -10, -10, -25, -39, -5, 17, -12, -1, 11, 19, -2, -12, 14, 12, 3, -15, -8, -5, -14, 8, -3, 10, 11, 9, 1, -2, -11, 14, 21, -25, -7, 20, -1, 8, -25, -16, 16, 6, 5, -11, 16, -7, -25, 13, -6, 8, 4, -13, -2, 5, -8, 13, 17, -33, -59, -9, -34, -20, -22, -26, -3, -7, -10, 3, -32, -17, -15, 24, 32, -11, 5, -14, -35, 13, -1, -5, 3, -10, -9, 11, 24, 4, 8, 16, -17, 7, -24, -5, -1, 10, -2, -20, -23, 15, 30, -9, 8, 4, -34, 5, -9, -5, 3, -3, 1, 17, 8, -21, 8, -12, 6, 11, -23, -1, 6, 0, 14, 0, 11, 10, -2, -6, -19, -9, -8, 19, -12, -7, -6, 6, -19, 1, 16, -31, -34, 7, -12, -21, -24, 23, 40, 9, 7, 8, -1, 0, 6, -15, -13, -28, -17, -4, -10, -1, -28, -13, -21, -8, -14, -5, -4, -17, -2, -49, -23, -19, -2, 14, -4, -10, -22, 6, 5, -23, -19, -20, -3, -6, -31, -6, 8, 10, -11, -12, -5, 11, -4, -39, -39, -3, -15, 13, 6, -8, 10, -2, 20, -12, -18, -6, -15, -6, 13, 10, -24, -24, -19, 1, 5, -16, -13, -7, 8, 2, 10, -5, 3, 3, 1, 4, -17, -17, 8, 14, -18, 2, 8, 1, -6, -5, -21, -21, 3, -16, -30, -17, 21, 6, -12, 4, -35, -15, -14, -28, 0, 27, 22, -19, -3, -15, -29, -12, -17, -10, -32, 13, 13, 17, -16, -36, 7, 0, -6, -6, -22, 5, 8, 26, -4, 19, 12, 10, -7, -17, 18, -10, -1, -10, -27, -10, -25, -2, 2, 28, 5, -25, -17, -16, 15, 1, 5, 2, -5, 13, 22, -16, -24, 5, -6, 12, -19, 34, 27, 16, 12, -13, -20, -20, -25, 7, -3, -19, 7, -5, -23, -11, -14, -2, 28, 14, -20, -14, -31, 6, 0, 7, -12, -5, 15, 14, 18, -2, 30, 4, 14, 4, 15, 8, -12, 19, -2, -28, 14, -8, -14, 8, 2, 12, 18, -13, 13, 10, 11, 0, 6, -25, 9, 41, 30, 2, 13, -17, -12, -3, 4, 21, 10, 0, -30, -9, -5, 10, 24, 29, 31, -23, 14, 0, -32, -23, -35, 4, 19, -14, 22, -14, -15, -12, 2, -11, -10, -5, 1, 2, -10, 14, 1, -21, 3, -6, 23, 6, 24, 12, 12, 1, -9, 16, 39, 14, -31, 10, 17, -23, -29, 2, -6, 13, 20, 0, 11, 9, -62, 8, 7, -14, -11, 14, 27, -6, 4, -9, -15, 10, 7, -16, 19, -1, -26, -13, 9, 18, -19, -7, 11, 2, 14, -14, 10, -6, -3, -22, -10, 0, 14, -5, -6, 2, -19, -6, -13, -2, 14, 11, -26, -6, -25, 10, -3, -6, -14, 3, -6, 19, -4, 17, -6, 1, 8, -18, 18, 19, 14, -2, 12, -18, -28, 4, 14, -17, -8, 22, 15, -27, -26, 6, -32, -17, 1, -3, 25, 12, -7, -16, 31, 13, -17, -2, 8, -17, 6, -18, 13, 13, -25, -29, -26, 16, -15, -13, -17, -2, -3, 5, 8, 1, -2, -24, 21, -18, -37, -16, -1, -24, 7, -2, -3, -21, -2, 1, -16, -29, -4, 5, 5, -20, 1, -15, -30, -2, -19, 16, 17, -9, 2, -4, -11, 6, -11, -9, 12, 14, -14, 9, 23, -11, -13, 2, -15, 10, 16, -29, -29, 20, 17, -23, 14, -10, -45, 18, -26, 7, 11, -9, -11, -22, 20, -20, -2, -11, 17, 5, 5, 13, 30, 18, 37, 26, 44, 9, 26, 14, 10, -4, 4, 13, 10, 9, -12, -12, 3, -3, -11, 26, -6, 1, 11, 8, 2, 0, 39, -14, 4, -12, -36, -20, 22, 4, 3, -6, -21, -9, -13, -22, 2, -20, 4, -4, 38, 11, -12, -12, 15, 4, 11, -15, 5, 7, 15, -3, 13, -27, -11, 28, 15, 12, 6, -11, -18, 31, 32, -7, -25, -4, 0, -7, -8, 20, 43, 11, 24, -18, -25, -14, -3, 18, 15, 27, -2, 8, 12, -3, 4, -11, 8, -15, -12, -19, -4, 22, 12, 9, -13, 16, 1, -16, 30, -19, 22, 1, -14, 7, 2, -8, 22, -15, 27, -8, 20, 4, -8, -2, -17, 7, -45, 15, 28, 26, -8, -24, 19, -8, 6, 11, -14, -15, -20, 6, 21, 17, -1, 14, -20, -16, -9, 5, 4, 6, 7, -3, 17, -5, -26, 10, 17, -1, -16, 4, 18, 6, -13, -8, -14, -8, -9, 26, 41, -6, 7, 8, -23, 19, 2, -17, -18, -3, -1, -20, 15, 10, 23, 32, 23, -23, 11, 16, -12, -5, -20, 7, -2, 0, 2, 11, -23, 8, 20, 16, 7, -10, 10, 15, -40, 4, -26, -8, -8, 3, -1, 20, 32, -6, -5, 26, 29, -22, 7, -17, -3, -12, -32, -26, 2, 1, 2, 16, -28, 19, -4, -30, 1, 15, 39, -15, -20, 9, 1, 6, -21, -33, 15, -4, -26, 4, -13, -13, -6, -12, 24, -18, -9, -21, 6, -11, 0, 49, 43, 14, -44, -20, -30, 33, 8, 6, -2, -7, -26, -16, -18, 41, 29, 0, 28, -14, 8, -17, 0, 4, 2, -3, 30, -1, 2, 7, -16, 7, -8, 5, -4, 16, 20, 15, -8, -8, 13, -10, 26, 1, -20, 8, -12, -4, 6, 38, 29, 10, 11, 10, 26, 2, 3, 28, -5, -11, 17, 17, -13, -43, -7, 1, 29, 19, -21, 19, -5, 0, 27, 2, -1, -6, -30, -8, -9, -9, 17, -2, -17, -21, 4, -5, -12, 5, -19, 8, 33, 5, -10, 4, 5, 43, 34, 11, 6, -6, 5, -2, -7, 10, -4, -44, 4, -22, -26, -5, 4, -7, 33, 1, 29, -12, -15, 8, -6, -27, -17, 5, -3, -8, -7, -20, -19, 20, 3, -10, 11, -1, -28, -4, -17, -14, -1, 1, 26, -3, 14, -8, -25, 19, -5, -24, -12, -13, -12, -13, -15, 10, 20, -4, 6, 4, -41, -7, 15, -16, -24, 16, 29, -5, 3, 5, -1, -17, 29, -37, -38, 16, 5, -4, -13, 4, -26, -2, -3, -5, -18, -15, 7, 13, 15, -30, 19, -23, -9, 16, -16, -9, 16, 42, 28, 5, -35, -27, -7, -1, 26, -16, 4, 13, -26, 6, -33, -42, 11, -16, -2, -18, -50, -14, 18, 1, 7, 7, 1, 9, 9, -18, -21, -25, 12, 1, -6, -18, 3, -15, -20, 12, -16, 17, 17, -16, -13, -21, -21, 12, 7, -25, -6, -18, 9, 7, -25, -13, -1, -12, 1, -13, -29, -14, -55, 3, 18, -10, 13, 17, 21, -10, -43, 3, 2, 4, 0, 6, -11, -7, -24, -3, 36, 10, 9, -1, -12, 7, -48, 13, 20, 17, 20, 12, -22, 18, -16, 14, -6, 7, 10, -8, -41, 17, -18, -8, -22, 0, -5, 9, -14, 2, 5, 9, 6, -30, 16, 8, -6, -21, -24, -48, -4, 2, 4, -21, 16, -21, -30, 27, -14, 15, -13, 19, -32, -3, -5, 20, -8, 7, -7, 12, 3, -7, 5, -2, 11, 20, 13, 1, -37, 13, 9, -35, 4, 31, 30, 17, -25, -8, 27, -18, 17, 28, 6, -11, -9, 1, -16, 1, -23, 14, 23, 8, -10, -5, 1, 16, 5, 0, 34, -14, -11, -6, 18, 18, 4, -19, 7, -8, -3, 14, -11, 0, -11, -7, 37, 8, -21, -11, -42, 9, 3, 29, 15, 3, 0, 11, -11, -1, 2, 13, -6, 19, 36, -18, -23, 21, -15, -7, -1, 15, 17, -9, -31, 7, 1, 25, 13, -9, -36, -12, -49, 16, 14, -2, 0, -14, -37, -16, -21, -15, 9, -31, -22, -14, -2, 14, -3, -26, -1, -19, 4, -9, -17, -1, -39, 7, -11, -23, 8, -23, 8, 1, -19, 12, 24, 12, 19, 3, -36, 6, -12, -21, 8, 30, 11, -18, -38, -7, -22, -7, 0, 25, -9, 7, -17, 10, -41, -4, -15, 5, 29, -2, -15, 3, 1, -7, -21, -8, 0, 15, 13, 7, 1, -2, 4, -6, 5, -9, -49, 10, 18, -32, -22, -12, 11, 9, 59, -19, -14, 6, -3, 24, 21, -3, -7, 7, -15, -28, 7, -2, 7, 13, 10, 15, -24, -9, -8, 1, 0, -8, -23, -18, 10, 11, -19, 16, 24, -17, -4, 19, 33, -5, 13, 7, -7, -1, 0, 7, -1, 6, -13, -1, 7, -8, -9, -2, 3, 10, -1, -38, 2, -12, -28, -12, -9, 19, -8, 19, -20, 7, 5, -16, -40, -1, 10, -14, 9, -12, -3, 18, -10, -18, -7, 14, 20, -5, 14, 8, 28, -28, -37, 13, 14, -20, -3, -17, -3, -1, 25, 23, 0, 17, 32, 15, -11, 31, 20, 26, 40, 7, -10, 13, -1, 8, -3, -7, -11, 20, -15, 10, 12, -7, 15, 17, -10, 12, 9, -16, 42, 3, -45, -18, -9, 14, 32, 9, 22, 13, -5, 12, 12, 11, -28, -16, -19, 11, 17, 6, -7, -16, -27, -6, 17, -18, -18, 38, -4, -21, -15, -18, -20, 26, -1, -26, 14, 3, -37, -18, 1, -30, -12, -20, -18, 20, -27, -8, 1, -18, -28, -2, -3, 15, -1, 5, -31, -5, -36, 18, -8, 7, -29, -20, -2, -28, -31, 19, 0, 4, -10, -19, -39, 43, -16, -11, 19, -22, -45, 5, 18, 19, 4, 11, -6, 18, -32, -4, 7, -23, -11, 56, 14, 7, -6, -19, -10, -10, 14, -14, 8, -1, -26, 16, -20, -21, -19, -14, -4, 3, -19, -11, -25, -4, -8, -14, 6, 26, 5, -4, -56, 19, 0, 5, 3, -16, -25, 1, 2, -23, -13, -15, 0, -10, 11, 15, -30, 15, 4, 2, 13, -13, -27, 25, -9, -21, -11, -1, -18, 21, -3, -7, 5, 16, -3, -45, 15, 26, -6, -1, 15, -14, -5, -11, 8, 11, 4, 13, -5, -31, -20, -18, -16, 30, -22, 10, -23, -16, -5, -8, 9, 44, -9, 13, -3, 35, 12, -14, 11, -10, -9, 39, -24, 14, -10, 12, 7, -19, -33, 15, -39, -23, -4, -40, -10, 3, 19, -4, 5, 13, 1, -6, 14, 25, -15, 6, -30, -7, -21, 46, -3, 29, -18, -15, -24, 10, -25, -5, 15, -22, -13, 25, 23, 13, 4, 8, -14, -10, 1, -13, -44, 31, -3, -2, 6, -9, 1, 20, 14, -1, -22, -3, 0, -19, 9, 12, -18, -24, -22, 2, 15, -3, -13, 8, 7, 20, -20, 29, 19, -23, -23, -18, -12, 7, 7, -26, -16, -15, -14, -10, 7, 17, 9, 17, -23, -19, -14, 21, -17, 17, -3, -9, -20, 21, 13, 30, -3, 19, -1, 24, 20, 8, 12, -9, 26, 21, 6, 14, 18, 13, 19, 26, -13, 31, 3, 18, 1, 6, 6, 10, 8, 11, -12, -14, -10, 4, 3, 5, -8, 8, -1, -17, -5, -4, 11, 4, -8, -4, 2, 6, 9, 2, 9, 20, -15, 19, -23, 1, 9, -13, -16, -6, 14, 7, 8, -17, 13, 10, -9, 26, 26, 20, -9, -32, 11, 2, -12, 0, 15, 25, 14, 25, 11, -20, -14, 2, -15, 24, 3, 9, -10, 9, -31, 8, 3, -53, -10, 4, 6, 14, -4, -12, 1, -10, 13, 16, 11, 46, 12, 2, 1, 18, 3, -17, -12, -39, -23, -10, -11, 11, -19, 18, -15, -15, 1, -34, -32, 27, 0, -4, -14, -6, -12, -6, 4, 6, -3, -17, 17, -6, -24, -3, -1, -11, 6, -18, 0, 25, -29, 11, 29, -4, -6, 13, 0, -5, 30, 15, -21, -6, -13, 23, -10, 24, 16, -3, 5, -26, -21, 7, 3, -8, 25, 17, -20, 6, 4, -19, -21, 13, -16, 11, 21, 10, -12, 19, 1, -14, 7, 13, -6, 25, -3, -13, 7, -5, -6, 0, 32, 18, 3, 11, -23, -16, -5, 30, -23, 23, 18, -4, -18, 2, 1, 9, -20, 6, -20, -4, 9, -36, -28, -8, -4, -23, -20, 0, 19, 23, -21, -12, 6, 12, -20, 4, 6, -3, 15, 15, 8, -11, 15, 10, -16, 22, 6, 22, -12, 10, 11, -3, 11, 4, -13, -11, -25, 14, -3, 9, 0, 41, 21, 8, -19, 9, 17, -9, 6, -13, -7, 17, 5, 6, -1, -2, -18, -12, -10, -1, -16, 6, -2, 0, -3, -24, -22, -2, -13, -27, 0, -22, 5, -5, 17, 37, 26, -27, -20, 14, -3, 24, 23, 20, -14, 22, 15, 9, 15, -26, -20, -4, 24, -14, -13, 25, 1, 28, 30, 23, -22, -1, -3, -3, -15, 8, 28, 12, -9, -7, 4, 7, 0, -17, 0, -4, -15, -12, -19, 18, 18, -6, -27, 7, 0, 12, -10, 0, -13, -19, -6, 20, -9, 2, -6, 5, -22, 2, 19, -34, -27, -19, -9, -23, -14, 0, 38, 5, -19, -25, 7, -31, 9, 38, 13, 17, 6, -35, 8, -9, -13, 41, 17, 3, -14, 7, -2, 3, 7, 15, 4, -12, 15, -20, -3, 16, 3, -1, 15, 1, -32, 30, 17, -11, 0, 33, 35, 53, -3, 0, 6, -19, -9, 0, -2, 24, 10, -35, 5, 7, -12, 10, 6, -6, -2, -25, 6, -26, 12, -34, -3, -10, 16, -38, 15, -14, -14, 52, 9, 31, 5, -7, -20, -36, -3, 11, 2, -15, 15, -20, 18, -15, 10, 31, 7, 8, -27, 5, 7, 10, 10, 18, 8, -16, -20, -5, -19, -11, -10, 16, 33, 24, 44, -32, 12, -31, 17, 31, 22, 22, -22, -3, -14, -32, 18, -4, 4, 47, 18, 4, 1, -38, -10, -3, 7, 10, 21, -11, 0, 14, -2, 28, 21, -6, 18, -26, -19, -2, -3, 4, 11, 39, 25, 11, 7, -13, 19, 35, 10, -20, 3, -15, -3, -31, 6, 31, 6, 47, 15, -16, 2, -26, -18, -5, 22, 28, 5, -1, -21, 11, -24, 35, 6, 10, -6, -3, 0, -10, -8, 22, -16, -25, -9, -1, -10, 8, -19, 31, -16, -19, -30, 28, 17, 2, -14, 13, 7, -9, -5, 18, -15, 19, 5, 4, 12, 20, -55, 18, -19, -7, -12, -8, -8, 3, -6, -15, -2, 14, -16, -4, -5, -15, 9, 31, -18, 16, -15, 20, -41, -18, 8, -27, -18, -10, 15, 8, 19, 31, -5, 17, -10, 13, -17, -17, -1, 24, -1, 2, -13, 3, -12, 23, 9, 2, 28, -11, -15, -8, -16, -6, 13, 21, -35, -5, 3, 7, -7, 15, 20, 0, -8, -4, 18, 0, 9, 9, 5, -22, 16, 8, -3, -24, -6, 10, -4, -23, -14, -5, 9, 2, 16, 4, -36, 13, 1, 18, 7, 32, 12, -16, 26, -6, -4, -6, 14, -10, -8, 5, -12, -7, -22, -7, 1, -29, 7, 11, 20, 1, 14, -27, -13, 20, -23, -17, 13, 4, 7, -17, 2, -23, -6, 7, 24, 11, 5, -12, 14, 0, -3, 6, 11, -24, 2, -16, -22, -15, -20, 24, 11, 1, -3, 16, -6, -2, -22, 25, -21, -14, 14, 6, -18, -10, 12, 8, 2, 21, 24, -23, -23, -13, -17, -8, 20, 16, -1, 20, -5, 5, 8, 2, 31, 8, -36, 7, 14, -36, -11, 8, 5, 25, 25, -17, 4, 12, 4, -15, 3, 4, -3, -20, 14, 7, 1, 21, -9, 35, -3, -30, 19, -5, 12, 19, 0, 15, 11, -3, -5, 7, -15, -9, -11, 16, -2, -3, -7, -5, -17, -3, -19, -4, -7, 5, 16, -20, -23, -9, -19, -9, -3, -2, 12, 14, 19, -8, 22, 17, 5, -13, -10, -24, -6, -5, -9, -3, -11, -7, 1, 19, -12, -10, -4, 24, -27, -19, -12, -12, 2, 2, 6, 23, -29, 0, -7, -21, 5, 8, 9, -13, -3, 8, -9, -6, 3, 8, 2, -28, 12, -18, 16, -8, -12, 0, 29, 10, 17, -31, 15, -23, 15, 28, -25, 14, 9, -6, 14, 6, 19, 31, -31, 32, 11, 6, -11, 8, -9, 10, 21, -3, -28, -33, 13, 9, -17, 9, 2, 7, 11, -25, 4, -9, 1, -4, -4, 1, -15, -3, -17, -4, 1, 18, -13, 27, 14, -5, 1, 7, 2, -9, 28, 0, 5, -35, -13, -8, -20, 40, 11, -11, 5, -21, 1, -2, -23, 28, 29, -12, 6, -20, -19, -11, 12, 8, 25, 29, -12, -18, 11, 20, -9, -2, -19, 29, 13, 1, -17, -19, -20, -22, -17, -19, -14, 0, -15, -31, -10, 10, -24, 23, 8, 22, 9, 15, -10, 0, -17, 9, 1, -18, -8, 6, -6, 44, -2, -6, 16, 11, 4, -25, 14, 11, 6, 6, -9, -15, 13, -7, -12, 2, 0, 11, 32, -11, -1, -14, 9, 25, -16, 16, -29, 4, -5, -3, -10, 4, -5, -2, -33, 18, -1, 12, -7, 17, -11, 36, -9, -8, 15, 12, -2, 25, 26, -12, -10, -10, -4, -3, -1, -12, -14, 10, -2, -8, -24, 2, 9, 29, 9, -2, -9, 21, 4, -11, -14, 26, -13, 9, -12, 7, 3, 12, -11, -7, 10, 34, -10, -25, -2, 31, 5, 12, 17, 11, 2, -10, 15, -11, -8, 20, 19, 13, -25, -9, -4, 19, -10, -10, 9, -26, -22, 11, 1, 31, -12, 14, 12, 19, 17, -11, 9, -19, -17, 22, -27, 13, 22, 27, -13, -1, -2, 16, -15, 36, 2, 3, -17, 17, -7, -10, 6, 13, 33, -24, -6, -4, -18, -18, 0, -6, -12, -31, 2, -23, 12, 19, 3, 29, 3, -17, 14, 17, 19, 2, 11, -6, -22, -31, -23, 4, -19, 6, -4, -2, -8, 5, -13, -13, 11, -5, -14, -17, -12, -2, -6, -12, -16, 44, -10, 21, 22, 16, 6, -3, 5, 21, 9, 6, -27, 11, 9, -13, -15, -1, -22, 4, 4, -41, -8, -15, -14, 32, 19, 33, 18, -6, -20, -7, -19, 38, 4, -13, -1, -14, 16, 1, -21, -6, 32, -14, -16, -15, -10, -21, -20, -8, -40, 32, 14, -23, -17, -27, 3, 28, 34, 4, 16, -15, 10, -14, 11, 7, -25, -3, 11, -10, 15, 12, -22, 15, -7, -2, -9, -4, -8, 4, -12, 10, 11, -6, 12, 27, -8, 7, -21, 3, -3, 34, -2, -2, 14, -14, 7, 12, 3, 11, -35, -5, -9, -40, 19, 1, -14, 26, 40, 2, 14, -5, 16, -10, 7, 29, -5, 16, -12, 9, -17, -29, -25, 9, 40, 14, -12, -21, -20, -6, -21, 8, -21, -6, -1, -1, 17, 21, 23, 15, 11, 9, 15, -4, 9, 5, -3, 18, -29, 16, -3, -8, 0, -16, -16, 21, -2, -3, -17, -15, -21, -5, -3, 25, 36, 15, 14, 25, 3, 5, -30, -27, 14, 20, -5, -1, -17, 7, 21, 25, 15, -9, 16, -24, -21, -15, 18, 14, 0, 22, -3, -14, 2, -16, 14, -12, -5, 21, 0, 33, 6, 7, 11, -5, 2, -16, 5, 12, -18, 22, 10, 28, 11, -6, 0, 9, -13, -5, 12, -2, -17, 18, -8, -4, 0, -5, -23, 5, -34, -10, -3, -13, 18, -20, -1, 0, -12, -10, -5, -17, 13, 15, 6, 33, 11, -13, -4, -17, 7, -10, -4, 12, -19, 3, 8, 15, -14, 1, 2, -7, 7, -22, 8, 24, -5, 48, 8, 13, 19, 20, 19, -18, 13, 10, 14, 16, -25, 14, -1, 20, -2, -14, 16, -10, 28, -13, 4, -11, -18, 4, -22, 4, -19, -6, 17, 11, 5, 10, -5, 9, 27, -6, -18, 12, 13, -39, -5, -3, -1, 34, -18, -18, -6, -9, -12, 17, 45, 12, -7, 21, -5, -2, -5, -9, 3, 19, 0, -15, 9, -5, -10, -26, -28, 22, -13, 5, 16, 12, -3, -14, -21, 2, -2, 17, 8, 5, -5, 18, -1, 10, -23, 1, 3, -40, 11, -12, 16, 15, 2, -1, -3, -18, -13, 4, 2, 24, -11, 25, 5, 31, 20, -18, -15, -27, 2, -22, 10, 12, 12, 24, 27, -15, 4, -1, 11, 8, 17, -14, 19, -2, 2, -10, 15, 36, 22, 3, 16, 21, 15, 12, 1, 12, 36, -5, 37, 7, 18, -4, 4, 1, 5, 14, -33, -18, 5, -15, 3, -16, 12, -14, 6, -6, -12, -32, 4, 8, 3, 1, 37, 11, -22, -5, -13, -31, -10, -15, 1, -3, -11, -4, -15, 16, 17, 7, -6, -13, 0, -37, 11, -6, 13, 9, -16, 4, -24, 12, -12, -6, 27, -17, 6, 16, -5, -39, -19, 9, 9, 27, 22, -6, 17, 14, 2, 9, 13, 21, -5, 10, -22, -13, -18, 14, 7, 15, 5, 3, -6, 6, -16, 13, -8, -3, 10, 17, -11, 30, 4, 8, -19, 11, -5, 23, -15, -5, 19, -41, 10, -11, 15, -4, -3, 2, -15, -14, 22, 12, -15, -17, 19, 3, -22, -13, -26, 8, 0, 49, -9, -9, 19, -22, 6, 2, -16, 26, -8, 3, 9, -15, -21, -20, 10, 17, -1, 14, -9, -25, -34, -22, 26, 23, 12, -7, 3, 2, -8, 7, 10, -2, -22, 16, 12, -5, -9, -2, -19, 7, 0, -3, 20, -14, 0, 20, -5, 13, 6, -25, -4, -23, 6, 16, 12, -12, 0, 18, -7, 31, 18, -30, -15, 6, 7, 21, -15, 7, -12, 4, 3, -24, -23, 20, -10, 6, -6, 0, -2, 14, 10, 15, 0, -10, 11, 13, 15, 7, -15, -2, -18, 43, 16, -15, 7, -17, -15, 22, -5, -18, 12, -2, 6, 11, -19, -13, -5, 11, -21, -9, 23, 15, -8, 7, -6, -20, 5, 20, 0, 3, -10, 13, 18, -11, -26, -18, -9, -13, 13, 2, -9, -3, -10, 1, -2, 6, 19, 15, 12, 19, 25, 3, 22, 33, -16, 0, -15, -29, 1, 12, 4, 19, -11, -16, 3, 15, -3, 21, 13, -5, 19, 18, 15, 14, -13, -26, 0, 9, 19, -17, 1, -45, -16, 15, -28, 1, -1, 2, 5, -6, 0, 8, 7, -5, 19, 9, -10, -12, -14, -13, 5, -6, -9, -29, -19, -17, 4, 25, 21, 12, -15, 3, -8, -30, -16, -11, 10, -8, 1, -21, 4, 5, 6, -14, -12, -2, -17, 39, 6, -1, 10, -27, -3, 14, 9, 10, -20, -2, -7, 12, 15, 28, -9, -19, 16, 3, 18, 17, 24, 3, 3, -13, 2, 38, -15, 4, -28, 16, 3, -25, -20, -5, -29, 6, -11, 20, -15, -6, -15, -11, -18, -23, 11, -9, 3, -9, 5, 27, 13, 16, -7, 17, -19, 36, -22, 19, -10, -44, 14, -21, -16, 20, 14, 5, 18, -16, -4, -3, 3, 13, -8, -39, 18, 26, 8, 1, 12, -24, -8, 15, 13, 17, 3, -13, 13, 2, 5, -16, -22, 5, -12, 19, -17, 12, 14, -10, 5, 8, -10, 8, 19, -21, 4, 1, 11, 15, -30, -15, 4, -2, 2, -8, -12, -34, -5, 8, -17, 9, -19, 0, -9, 3, -26, 6, 19, 20, 18, 10, -23, 20, 20, -5, -7, -26, -7, 10, 3, 12, -19, 25, -15, 11, -22, -29, 5, -7, 3, -9, -7, -5, 15, -2, 18, -7, 10, 18, 6, 19, -12, -8, 11, 14, -8, 25, 9, 22, 11, -2, -4, -30, -21, 4, 7, 3, 6, -36, -33, -13, -22, 29, 8, -10, -20, -10, 17, -27, -20, -26, -2, -18, -8, 24, 8, 20, -17, -13, -5, 1, 13, -21, 11, 22, 37, -15, 17, -22, 18, 11, 17, -8, -26, -4, -5, 22, 6, 8, -9, -1, -15, 53, -13, 3, -20, -23, -8, 18, -13, 7, 3, 14, -2, -11, -3, 18, -6, -20, -15, 36, -8, 27, 33, 4, -16, 11, 14, -7, 5, 15, 18, 3, 12, -33, -4, 22, -1, -8, -2, 5, -4, -3, -9, 1, 2, -11, -15, 26, -17, -9, -13, 25, 19, 5, -8, 15, -5, 18, 9, -2, -4, -19, -1, -3, -9, -12, 19, 12, -13, 4, 5, -24, -33, 28, 0, 1, -13, -3, 11, 13, -19, -3, -3, -31, 18, 6, -17, -11, -17, -3, -3, -22, 9, 1, 12, 2, 9, 28, -20, -1, -25, -6, 10, 11, 13, -1, 13, -7, 7, 6, 4, 16, 18, 6, -6, -30, 12, -14, -4, 6, -33, -27, 12, 19, -16, 7, 0, -32, 12, 4, 19, 28, -10, 14, 19, -45, -2, 13, -13, -12, -7, -1, -16, 40, 8, 8, -12, 14, -12, -6, 11, 19, 14, -2, 3, 21, -1, -5, -8, 13, -4, 51, -6, -19, 20, -40, 5, 17, 9, -46, -15, 11, 16, 27, 29, 4, 3, -12, -1, -12, 7, 4, -4, -21, -13, -6, -9, -5, -10, -6, 2, -3, -10, 9, 3, 10, -12, -9, 22, 24, 22, -16, -6, -1, -22, 5, 25, -46, -13, 9, -19, -45, 15, -1, 17, 42, 51, 19, -19, -9, 11, -10, 8, 7, 2, -10, -8, 7, 13, 21, 0, 3, -27, -25, 18, 4, 4, 27, 31, -8, 19, 18, -2, 3, -16, -11, 4, 17, 13, -40, -20, -34, -10, 34, 51, 23, 7, -15, 8, 15, -6, -32, 12, -23, -9, 20, 10, 2, -26, -5, -16, 28, 34, -5, 11, -14, -3, 1, 16, 43, 38, 0, 8, -58, 19, -30, -4, 21, 9, 10, 13, -6, -23, 7, 4, -5, 4, -20, -4, -3, 0, 13, 24, 12, -8, -23, -17, -23, -2, 13, -26, 15, -17, -20, 16, -1, -9, 4, 11, 17, 3, 7, 22, 32, 0, -18, 25, -50, -3, 8, 4, -42, -9, 4, -5, -1, 10, 26, 3, 15, -6, -24, -19, 19, 11, 17, 7, -10, 13, 6, 20, -18, -24, -2, -13, 19, -11, -36, -12, 19, 10, 10, -20, -10, -19, 1, -28, -23, 12, -12, 11, -25, -13, 36, 4, -28, -7, 6, -5, -4, -3, 4, 39, -16, 19, -13, 6, 10, 9, -23, 4, 12, 17, 17, -9, -11, -19, 16, 24, 28, 21, 9, -12, -10, 16, -15, 20, -10, -20, 19, -4, 26, 13, -9, 3, 23, 9, 15, -3, 15, -4, -18, 19, 15, 29, -32, -1, -6, 11, 41, -3, -29, 11, 31, -13, -16, 7, -40, -28, -14, 5, 19, -17, -8, 3, 24, -10, -9, 6, -3, -7, -20, 18, 5, 16, -12, -2, -26, 12, 16, -4, -14, 12, -8, -23, 13, 16, -19, -16, -5, 0, 2, 6, -13, -14, -6, 18, -20, -31, 7, -9, -17, -1, 16, 17, -1, 6, -16, -16, -23, 17, 5, -23, 18, -8, -13, -7, -2, -14, 3, 3, 3, 16, -3, 2, -3, -19, 19, 9, 0, 29, 5, -3, 40, -16, 9, 2, -42, -19, 22, -11, -12, -19, 4, 11, -2, -31, -16, 18, 15, -11, 19, -14, -29, 35, -11, 18, -13, -11, 6, -12, -23, 0, -1, 21, 28, -16, 1, 2, -40, 43, 2, 12, -25, 3, 12, 16, 8, 39, -25, 8, -38, -1, -13, -19, 16, 26, 2, 6, 23, -11, -6, -11, 5, -6, -14, 15, 8, -10, -3, 5, -11, -27, 5, 61, -2, 15, 9, 19, 11, 14, 5, -14, -12, -3, -3, 19, 7, 37, 9, 27, 5, -7, -5, 3, 7, -18, -21, 25, -9, 9, -4, 12, -4, -10, 13, -16, 1, -12, 16, 16, -26, -14, -12, 19, 7, 6, 3, 5, -16, -21, -18, 17, 22, 9, 24, 18, 9, -5, -4, 7, -3, 12, 21, -22, -22, 2, 11, 10, -13, -16, 17, -7, -38, -1, -34, -29, 24, 5, 25, 16, 3, -24, 9, -17, 1, -4, 11, 15, -19, -5, 7, 20, -3, -7, -10, -20, -26, 5, -22, 19, -6, -13, -13, -21, -28, -10, 25, 27, 22, -13, -19, 18, 8, 22, -14, 17, 10, -14, 13, -1, -20, 8, -27, 13, 27, -6, 16, 11, -2, 17, -30, 6, 24, 15, -11, 16, -22, 28, 3, -38, 27, -18, 17, -4, 3, 4, 4, -6, 42, 15, -21, 14, -18, -10, -16, -8, -7, 3, 8, -22, -4, -13, -17, -12, -25, -6, 14, -19, -10, 22, -11, -21, -7, -25, 12, -4, 4, -7, -27, -4, -20, 11, -2, -3, 38, -9, -5, 0, -21, -17, 18, -15, 39, -10, -7, -7, 9, -26, -27, -18, -16, 10, -7, -16, -19, -25, -15, 3, -8, -10, -18, -10, -10, 14, -6, 5, 23, 4, 15, 11, -11, 8, -10, 3, 13, 20, 2, 7, -6, 3, -31, -5, -18, -3, 32, -16, 5, -22, -3, 0, 7, -15, -1, 5, -2, -13, 28, -7, -17, -6, 10, 19, -21, 8, -28, 16, 24, -2, -17, -11, -12, -8, -13, 11, 2, -16, 0, 30, 19, -16, 17, -12, -1, -11, -28, 3, 5, -17, -27, -2, 4, 16, 21, 29, 4, 2, -29, -1, -7, 23, -14, 30, -3, -12, 50, -24, -22, -5, -33, -5, -8, 1, 0, -4, -39, -15, -21, -6, -10, 4, 17, -12, -24, -18, 21, 1, 10, -13, -27, 0, -21, 25, 17, -5, 13, 18, -2, -23, -6, 15, 7, -17, 0, -18, -3, -25, 13, -5, 20, 22, 17, -4, 4, -3, -60, 0, 19, -22, -22, -8, -7, -13, -32, -4, 4, -2, -9, -4, 11, -5, -2, -7, -27, 14, -15, -3, -3, 13, 15, 3, 7, 24, -21, -12, -5, -6, 6, 5, 7, -23, -6, -15, 3, 9, 30, 29, 12, -7, 32, 14, 12, 10, 13, 1, -19, 5, -10, -3, 11, 13, -1, 11, 10, 10, -2, -17, -4, 8, -14, -10, 10, 7, -6, 11, -28, 10, 24, -20, 13, -11, 11, -16, 0, -16, -18, 16, 10, -15, 3, -11, -7, 6, 12, 4, -4, 9, 9, 15, 9, -1, -1, 8, 2, 23, 8, 19, 12, 10, -26, -11, -10, 1, -3, -22, -18, -21, -11, -9, 26, 15, 9, 7, -16, 9, 13, 19, -18, 12, 23, -8, -4, -16, 52, 7, 15, -20, 0, -16, 6, -1, -32, 0, -17, -6, 10, -27, 20, 16, -4, 6, 2, -4, 19, -14, -16, -10, 5, -9, 16, -8, -11, -10, 18, -17, -10, -21, 32, -6, -8, 14, 16, 11, -18, 10, -8, -11, 36, -2, 7, 11, 74, -34, 7, -15, -4, -13, 9, -7, -11, -2, 15, 16, 16, 13, 29, -26, -25, -6, 13, 6, -8, 6, 7, 14, -40, 0, 7, -11, 21, -6, 19, -21, -14, -13, 10, 1, -15, -21, 5, -16, -22, 8, -25, -15, -8, -14, -20, -1, -27, 10, 21, -8, 9, -8, -16, -1, 5, 6, 17, -13, 6, -17, -8, 7, 18, 17, -3, -6, -32, 9, 6, 24, 2, -23, -11, -4, 0, -9, 13, 1, 35, 11, -31, -8, -5, -11, 1, -4, -23, 34, 9, 19, 3, -7, -13, 9, -4, -21, -6, -13, -29, -10, -4, -14, 55, -17, 35, 1, 12, -10, 6, -1, 14, 6, -4, 2, 6, -4, -17, 9, -18, -19, -25, 20, 0, 18, 8, -12, 8, 18, 7, 13, 5, 1, -8, -13, 20, -11, 13, -24, 7, 25, -7, 18, 38, 39, -8, -4, 18, -6, 0, -23, 11, -3, 6, -14, -3, 7, -8, 1, -1, -31, 13, -19, -11, -1, 14, 8, -8, 4, 26, 41, -8, -16, 17, 9, -43, -5, 19, -10, -1, -10, 15, 12, 12, 0, -3, 8, 25, -12, 11, -15, 0, 5, 19, -10, -3, 15, 27, 1, 9, 3, 5, 0, 6, -10, 30, -11, 27, 3, 10, -10, -17, 1, -11, -7, 37, 1, -19, -13, 5, -9, 20, 13, 20, -3, 1, -5, -1, -12, 2, -2, 26, -24, -20, -8, 16, -4, -18, 12, 37, 1, -3, 20, -3, 22, -20, -8, 11, -17, 11, 32, 1, 13, -3, -20, 0, -3, -8, -17, 11, 12, -29, -2, 20, -12, 18, -3, 25, -13, -10, -1, 19, -18, 12, 0, 0, 14, -6, -23, -10, 25, 9, -5, -16, -14, 5, -10, 25, -5, 4, -25, -48, -15, -16, -4, -3, -9, 10, -11, -17, -19, -19, -6, -6, -14, -16, 8, 15, 22, 3, -10, 23, -13, 22, -14, -14, 18, -16, -15, 1, -10, -11, -4, -20, 2, -24, 2, -6, 3, 24, 24, 8, -12, -10, 9, 10, -18, -8, -12, -2, -11, 24, 7, 21, 13, 26, -44, 2, 1, -36, 5, 6, 10, 44, 6, 2, -7, 13, -16, 22, 3, -12, 11, -1, 15, 14, 12, 18, 1, 17, 5, 6, -18, 35, -15, 17, -15, 11, 5, 7, -1, -9, -5, 43, 5, -18, 10, -14, 11, 25, -2, -4, 4, -4, -24, -36, 6, 38, 12, -5, 5, 16, 37, -17, -20, -19, -6, -8, 14, 18, 0, 30, -1, -8, -15, -22, -5, 8, 19, 20, 7, -12, 11, 8, 17, 3, 13, -8, -23, 21, -24, 4, -12, 4, -6, 26, 6, -13, -1, -25, 44, 22, -14, -8, -11, -2, -17, 8, 4, -1, 10, 21, 5, 14, 9, 11, -18, 7, 21, -27, 12, 22, -5, 8, 0, 11, -11, 8, -21, 5, -4, 11, -15, 34, 39, -5, 12, 21, 18, 8, -10, 5, -22, 14, -27, 2, -7, 0, -6, 7, -11, 8, 6, -17, 17, -33, 24, 5, 3, -23, -1, 19, -10, -1, -28, -5, 5, -26, 3, 23, 19, 9, 18, 23, -38, -25, 14, -10, -17, -14, -16, 3, -14, 0, 4, -3, -2, 9, 3, 4, 12, -28, 15, 17, -24, 9, 6, -24, 7, -41, -21, -20, -3, 15, -23, 17, 0, -38, 2, 6, 17, -12, 36, 10, 24, 2, 5, 10, 4, 10, 39, 3, 7, 5, -22, 30, -5, -32, -8, 17, -20, -4, -20, -3, -7, -1, 34, 7, -7, 22, 10, 5, -24, -6, -5, -5, 6, 6, -16, 14, -25, -12, 16, -30, 16, -4, -19, 10, -11, -24, 10, -4, -10, -10, -11, 5, -18, -4, 23, -25, -19, 13, -6, 6, -10, 14, 9, -8, 11, -4, 9, 6, -26, 13, -8, -5, 2, 13, -10, -17, 6, -29, -43, 19, -1, -25, -1, -16, -17, -14, 1, 5, 31, 1, -2, 5, 8, -22, -28, 41, -6, -12, -6, 14, -20, -8, -10, -17, 23, 4, -4, 12, -11, -4, 3, 7, 29, -8, -17, -6, 16, 14, 17, -27, -21, -15, 11, -23, 7, -4, 2, -5, -7, 19, -26, 0, -1, 1, 9, 8, 11, -27, -23, 5, -23, -16, -6, 9, 9, -30, 2, 26, 3, 26, -1, 33, 16, 23, -17, 5, -7, 7, 2, 0, 23, -15, -18, -4, 4, 9, 9, 5, 20, 1, 15, -20, 10, 10, -8, -55, 1, 17, -18, 26, -1, 6, -4, 8, -30, -8, -18, 1, -3, -5, 8, -4, -7, 8, 1, -12, -21, -16, 9, 28, -10, 19, -19, -16, 17, 6, 12, -16, -2, -25, 9, 2, 19, 11, 18, 26, -16, 6, -21, -1, -7, 25, -15, -22, 4, -14, -5, -2, 10, -7, -21, 4, 25, -7, -23, -10, -21, 11, 23, 7, 45, 28, -8, 22, 0, -4, -16, 6, -1, -5, -16, 42, 18, 8, 21, -9, -14, 19, 11, 3, 0, 30, -5, 2, 0, -5, 14, -16, -15, 21, -15, -11, 15, -7, 0, 1, -3, -2, -25, 13, -9, -11, -27, -11, 13, -23, -17, 22, 1, 21, -4, 16, 11, 43, -10, 16, 16, 2, -8, -6, 15, -17, 16, 7, -6, 7, 17, 11, -8, 21, 48, -13, -15, -18, 11, 3, -28, 7, 13, -4, -1, 10, -3, 12, -16, 22, -11, -21, 8, 17, 2, 15, 10, 12, 4, -10, -4, 7, 14, -5, -21, -20, -1, -17, 5, 2, -2, -13, 10, -2, 14, 2, 15, -14, -17, -4, -6, -23, -24, 16, 0, -11, -5, 17, -14, -14, 19, -3, -23, -2, -7, 12, -25, 23, 16, -23, 8, 35, -3, 35, 14, 8, 28, -5, 20, 24, -7, -18, 4, -22, 28, 6, -8, -5, -9, 4, 9, 17, 18, -8, 19, -23, 11, 20, 3, -13, -39, 23, 7, -5, -14, 14, 7, 17, 7, 12, 10, -18, -23, 30, -18, -3, 26, -4, -15, 2, 11, 67, -10, 0, 27, -10, 53, 24, -2, 24, 4, 2, -25, -11, 4, -13, 17, 32, -16, 27, 23, 18, -22, 9, 7, -13, 14, 5, 39, 2, 11, -19, 2, 16, -5, 49, 7, 24, -20, 15, -28, 29, 16, 12, 4, 10, 28, 10, 15, -20, 6, -12, 13, 32, -7, -19, -15, 14, -7, -15, 8, -21, 16, 13, -10, 19, -22, 21, 30, 4, 17, -13, 11, -17, -3, -32, 11, -14, -4, -9, -12, -13, -26, 19, 11, 14, -20, 13, 9, 16, -7, 1, -8, 9, -4, 10, -5, 5, 10, 4, -9, 9, 19, 20, -25, 36, 17, 13, 22, -1, 17, 4, 16, -15, 9, 24, -9, 11, 14, -22, 0, 11, -4, 8, 0, 16, 23, 5, -13, 3, -2, 15, -24, -10, -9, 9, -10, 9, 1, -15, -18, 21, 4, 17, 5, 2, -5, -31, 1, -8, -9, 10, -7, 19, 1, -1, 7, 1, -4, -34, -17, -6, 8, -9, 10, -13, -4, -24, 4, 3, -8, 11, 13, -5, 15, 23, 22, -4, -3, -18, 6, 15, 14, 14, -11, -39, 8, 14, 3, -19, 23, 28, 4, 21, -7, -1, 24, 8, 5, 7, -1, -12, 7, -27, -20, -27, 5, 25, -3, 7, -18, 15, -8, -1, -18, 42, 14, 8, -27, -18, 12, 15, 4, -18, 26, 4, -7, 35, -38, 20, 10, -5, -15, 15, -11, -25, 10, -16, -4, -15, 3, 26, -22, 5, 11, -25, -8, 2, -2, 22, 1, 30, -4, -8, 0, 35, 11, -21, -22, -1, -14, -18, -1, 19, 5, -14, -16, -13, -5, -4, -2, -9, 12, 1, -8, 4, 19, 0, 14, 25, 4, 16, 0, -14, -29, -10, 0, -20, 4, 9, 5, -11, -22, 5, -8, 31, -12, -6, -22, -20, 1, 28, 6, -2, 16, 8, 17, -2, -6, -8, -36, 7, 16, 32, -22, 22, -3, -1, 8, 0, 3, 19, -18, -12, -9, 15, 12, 35, -15, 5, -17, 1, 19, -25, -4, 16, 23, 12, -21, 13, 20, -19, 21, -12, 5, -7, 5, -15, -30, -1, 14, -13, -8, 1, 14, 6, 4, 18, 5, -3, 19, 13, 9, 12, 13, 4, -12, 40, -25, 6, -20, 30, 10, 22, -14, 43, 5, -12, -18, 2, -18, 12, 7, 38, 10, -24, -1, -18, -4, 25, -2, 0, 7, 10, 16, -3, -3, -18, 2, -17, -16, -14, 6, -12, -20, 11, -45, -16, 15, -22, -16, 18, -7, 17, -31, 47, -7, -2, 12, 18, -2, 10, -21, 15, 3, -10, 15, 8, 8, -36, -15, -8, 0, 11, 18, -14, 15, 26, -32, -12, 15, 1, 11, -7, 10, -22, -20, -29, 7, -40, 14, 16, -29, 14, -17, 29, -22, -22, 6, -2, -3, 14, -12, -11, 2, 9, -3, 3, 19, 26, 14, 28, 8, -13, 5, -3, 1, 10, -18, 24, -10, 24, -9, 11, 21, -5, 23, 11, 11, -29, 1, -3, 8, 32, -20, -7, -4, -23, 14, 16, -9, 2, -21, 9, 4, 3, -17, 11, 4, 7, -15, -7, 10, 13, 14, 8, 11, -18, 9, 4, -7, -7, -15, 15, 0, -17, 17, 46, -23, 20, -10, 14, 3, 24, -17, 6, -4, 25, 10, -10, 4, -9, 17, -4, -17, -41, -10, -11, 24, -3, -3, 10, 19, -11, 18, 6, 45, 11, 3, -6, -14, -17, 15, 19, 26, 6, 0, 33, -21, 4, 9, -20, -24, -15, -2, 24, -2, -13, -23, 4, 6, -14, 2, 4, 8, 10, 3, -17, -2, 12, 5, 12, 9, 15, -16, 18, 19, -18, -6, -30, 23, -4, 3, 5, 14, -13, 31, 8, 3, -20, 9, 17, 26, -2, 4, -4, -5, -9, -11, 4, 18, -23, -29, 2, 12, 6, -22, -16, 6, -1, -27, 9, 10, -5, -21, -11, 17, 16, 20, 22, -10, -4, -20, 14, -24, -20, 16, 19, -16, 26, -1, 1, -11, 0, -19, -1, -6, 4, -19, 10, 19, -10, -4, 6, -9, -8, 0, -20, 6, -6, -14, 27, -17, -19, -6, -13, 16, -8, -2, -17, -14, 17, -5, -26, -1, -15, -15, 0, -23, 5, 17, 20, -8, -6, 12, -8, 7, 10, -3, 13, -11, -4, -10, 9, -17, 9, -12, -15, 21, -11, 21, -24, -21, 26, 5, 1, 9, -29, 16, 23, 9, 2, -21, 4, -4, 16, -22, 3, -24, 16, -19, -20, -17, -10, -4, 18, 0, 1, 2, 28, -4, 11, 12, 15, -1, -29, 15, -2, -14, 24, -31, 1, 17, 3, 4, 16, 7, 18, 3, 1, -13, -3, 12, -1, 9, 1, 12, 14, -8, -25, -14, 3, 7, 2, 6, 10, 15, -4, 0, 7, 8, 2, 20, 9, -19, -4, 2, -17, 6, -8, -34, -3, 0, 0, -2, -24, 27, -17, 2, -14, -8, -8, -1, 8, -10, -22, -2, 23, -9, 6, -7, -17, 22, -27, -12, 14, -14, -20, 19, 16, 51, 17, 22, -1, -16, 23, -20, 11, 20, -19, 17, -16, 10, 29, -21, 17, -1, 17, 45, -9, 1, -13, 7, -26, 1, -22, 19, -12, 0, -14, -19, -12, 9, -11, 13, 26, 15, -2, 7, -5, -11, -17, 68, -12, 9, -17, -24, -17, 25, -4, 27, 21, -22, 3, 1, 3, 5, 13, 25, -27, -20, -10, 10, -11, 24, 10, -22, -4, -24, 19, -9, 19, 1, -8, -7, -6, -7, 21, -19, -23, 28, -7, 30, -7, 3, -16, -22, 15, -12, 7, 44, -3, 0, 1, -8, 2, 20, -7, -42, 12, 14, 14, -19, -33, 20, 17, 20, -2, -10, 23, -3, 3, -25, -1, 22, -21, 6, -11, -16, 4, 2, -20, -12, -11, -3, 18, 0, -3, -20, -4, 1, 12, 16, 16, -9, 0, 0, -26, 0, -53, -5, -6, 13, 30, -4, 4, -21, 10, -4, -42, -10, 22, 16, -9, -15, 10, 19, 19, 5, -5, -2, -17, -1, -29, -17, -6, -24, 6, -16, -12, -2, 54, 9, 0, 5, 3, -22, 32, -23, -10, -15, -2, 13, -9, 11, 22, -16, -30, -22, 26, 1, -29, -5, -17, 11, -22, 11, 10, -7, 0, 18, 24, 22, -9, 15, 23, -8, -11, -15, 11, -11, 4, 1, -36, -1, 9, 24, -13, -3, -14, 1, -3, -8, 1, 2, 13, 6, 10, 19, -23, 16, -12, 33, -3, -16, -19, -19, 4, 7, -9, -17, 9, -3, -8, -3, 25, 4, -13, -14, 13, 8, -39, -11, 17, -15, -20, -19, 15, 23, 16, -8, -16, 10, 13, 5, 28, -2, -33, -6, 8, 7, -10, 3, -20, 16, -14, 14, -2, 9, -22, 26, 10, -20, 29, -16, 3, 1, -1, -8, 6, 16, 15, -9, -5, 4, 23, 20, -18, 6, -30, 9, 35, -22, -14, 18, -20, 3, 12, 10, -48, -10, -20, 8, 23, -23, -31, -7, 9, 13, 8, 21, -4, -2, -17, -23, -1, -21, 6, 14, -17, 9, 28, 11, -9, 1, -29, -5, -12, -10, 3, -21, 16, -17, 18, 22, -22, -9, -51, -24, 9, 2, 7, 27, 22, 1, -8, -17, -1, -3, -3, -22, 8, 0, 38, 2, 8, 3, -2, 1, -15, 3, 6, 14, 58, 15, -8, 6, -34, -15, 6, 13, -48, 20, -20, 4, 9, 18, -8, 18, -10, -6, 6, 20, 10, 4, -24, 25, 21, 3, 1, -14, 7, 11, -23, -22, 9, -21, 17, 16, 5, -16, -4, 6, 6, 16, 17, 19, -1, 2, -37, 3, -36, -13, 38, 15, 4, -10, -8, -8, 28, -21, -10, -13, -1, -18, 1, -15, -17, -17, -4, 1, 0, 5, -35, -6, -47, 2, -9, 22, 28, 14, -5, -6, -54, -14, 12, 4, 31, 12, -13, -20, 19, 19, 2, -29, 20, -9, -36, -19, -28, -1, 25, -9, -6, -17, 13, 11, -10, -18, 9, 10, 29, -4, -20, -3, -24, -22, 14, 1, -2, -16, -11, -2, 32, -9, -8, 15, 16, 12, 17, -14, -46, 9, 0, 0, 6, -4, 16, -20, -1, 9, -20, 19, -11, 0, 16, 6, -9, 15, -10, 3, -25, -12, -16, 1, -31, -7, -44, -20, 8, 13, 0, -12, 28, 1, -3, -11, 0, 15, -43, 0, 11, 0, 6, 21, 12, -5, -13, 11, -19, -13, -15, -5, -7, -11, 9, 9, 11, -6, 0, 2, -6, 17, -5, -2, -8, 18, 13, -24, 1, -7, 25, 13, -31, 15, 1, -32, -21, -12, 14, -18, -30, -13, -22, -5, 15, -17, 19, 3, -10, -11, 7, -21, 16, -1, 13, -12, 24, -4, -13, 7, -23, 0, 43, 9, -10, 1, -9, -13, -23, 14, -15, -4, -29, 10, 11, -6, 6, 2, -12, 14, 5, -6, 13, -13, 13, 6, -21, -15, 25, -16, -14, -22, -5, -2, -26, -12, -46, 25, -19, -22, 7, 16, -10, -18, -42, 8, 8, 4, -2, -1, -11, 12, 18, -3, 17, 6, -16, -22, -36, -6, 6, 18, -16, 16, -13, -13, 10, 11, 1, -19, 10, -14, -12, -7, -13, -17, -26, -21, -4, 27, -4, 4, -7, -10, -33, 4, 9, -6, -18, -15, -11, 13, 17, -17, -11, -2, 18, -1, 23, 17, -23, 16, -2, 9, -4, 4, 17, 10, 4, 14, -25, -7, 9, -12, 22, 18, -17, -20, 19, -13, -5, -15, -7, -4, 28, -19, 2, -7, 6, -3, 5, -2, -26, 4, 19, 27, 1, -8, -16, -12, -9, -14, -2, -3, -12, 14, 3, -20, -7, -6, -33, -2, -5, -3, 29, -18, -17, -10, -16, 8, -3, -8, 13, -18, -21, 7, -6, -8, 10, 7, -14, -15, -12, 2, -15, 3, -28, -2, 11, 17, -34, 12, 8, 9, 0, -13, 47, 10, 2, -14, 38, 11, -6, 0, -8, -11, -5, -2, -42, 16, -3, 0, -16, 8, -17, -18, -14, -9, 15, -12, -17, -22, -15, -2, -24, -13, 8, 3, 6, 0, 22, -21, -11, 1, -5, -6, 52, -2, 0, -15, 8, 19, 27, 6, -1, 1, -29, 9, -1, -21, -28, 1, 22, -12, 5, -15, -4, 3, -32, -17, 0, -17, -3, -4, 0, 10, -14, -13, -13, -1, 14, 10, -30, 1, -2, 17, -36, -6, -6, 13, -36, -31, 11, 15, 18, -22, 27, -8, -10, -6, -19, -8, -4, 0, 0, -20, -3, 12, -7, -12, 20, -16, -5, 9, 19, -16, -26, 2, -23, 1, 20, -14, 34, 30, 34, 9, 5, -10, 22, -20, -23, 1, -7, -7, 15, -8, -18, -13, 25, -4, 2, 2, 16, -18, -18, 15, 1, -14, 1, 16, 16, -8, -7, -13, -12, -30, 7, 6, -10, -18, -16, -11, -43, -6, -17, -10, -13, -5, -9, 6, 21, -8, 20, 29, 14, -20, 18, -16, 26, -5, -7, -3, 10, 17, -12, -10, -16, 1, 12, 7, -20, 15, -20, -17, 0, -18, 1, -11, -17, 19, 14, 1, -21, 11, 11, 7, 8, -8, -13, -1, 20, -13, 17, -8, -13, 14, 13, -18, -3, 15, -36, -16, -12, 4, -8, 7, -5, -18, 3, 23, -5, 11, 6, 5, -10, -3, -12, 7, -19, -7, 21, 7, 15, -5, -12, 13, -18, -14, -7, 23, -20, -9, 14, -24, 5, -1, 19, -5, -33, 11, 11, 31, 0, -8, -18, -28, 1, 23, 25, 10, 3, -11, 1, -24, 39, 27, 10, -11, -18, -20, -5, -10, 11, -9, 3, 5, 11, -10, -8, -3, 22, 22, 12, -2, 7, -15, -15, -44, 9, -11, 5, 8, 9, -11, -18, 24, 8, -11, 1, -22, -11, -11, 3, 6, -3, 8, -5, 15, -10, 13, -5, -1, 17, 26, -21, -1, 10, -3, 0, -3, 17, 15, 0, -3, 17, 10, -9, 18, 2, 18, -15, 27, 2, -8, -18, 7, -11, -2, -26, 1, -4, -17, 4, 7, -13, 10, -35, -3, -2, 13, 18, 25, -39, 29, 19, 29, -17, 6, 8, 29, -32, 2, 5, 0, -9, -20, -14, 3, -3, 6, 5, 20, -22, -11, 2, -28, 3, 17, -22, -14, -17, 9, -17, -5, -2, 6, 5, 27, -12, -21, 4, 0, -16, -1, -32, -20, 6, 13, -14, -9, 22, 1, 0, -14, -21, 17, -18, 4, -22, 14, -10, 0, -2, 13, -19, 9, 14, 18, 3, -21, 13, 10, -8, 7, 7, -16, 10, -4, -11, -10, 2, 19, -44, -8, -25, -20, -9, -10, -14, 3, 25, 19, -2, -17, 13, 0, -15, 1, 19, -20, 28, -23, 0, 8, 6, 3, -31, 15, -4, -19, -9, -3, 4, 0, 13, 10, -10, -34, 10, 13, -1, 9, 17, 2, -27, 15, -17, 16, 8, 6, -47, -45, 4, -15, -14, -20, -19, -5, -17, 15, -13, 27, 12, 5, -2, 11, -14, -40, -2, -1, -11, -16, 16, 36, 2, 7, -23, 15, -1, -22, 11, -8, -11, -4, 0, 13, -10, -11, -24, -1, -8, 5, 11, -5, 6, 7, -25, -1, 9, 45, -22, -1, -14, 15, -15, -6, 19, 36, -22, 2, -21, 1, 18, -4, 15, 8, 19, 25, -2, 9, 17, -6, -2, 38, -22, 7, 4, -21, 3, -4, -27, -29, 26, 28, -18, 2, -21, -14, -23, -3, 15, 2, -5, 16, 13, 8, 0, -10, 16, 10, -4, -12, -4, 6, -32, 14, -4, 5, 16, -17, 3, 13, 15, 21, -20, 11, -15, -13, 5, -25, 15, 10, 12, 11, 5, 11, -14, 15, 19, 11, -16, -1, 3, -16, 5, 19, -8, -22, -26, -32, 9, 20, 4, 1, -21, -19, -6, -4, -19, -3, 10, 12, 4, 0, 15, 22, -17, -4, -13, 2, -12, -22, -37, 4, -2, 11, 6, 16, -32, 10, -15, -3, 14, 3, -16, 17, 16, -5, -22, -11, -8, -6, 11, -13, 13, 20, 15, -4, 21, -1, -18, 2, -6, -38, -25, -2, -7, 25, -12, 5, 15, -1, 2, 14, -14, 0, -3, 6, 5, -15, -5, -15, 4, 17, -13, -13, -11, 3, -27, -30, -3, 14, 8, -18, -2, 5, 17, -2, -5, -3, 18, 14, -36, -11, 24, -3, -15, -16, -14, 9, -14, -23, -27, -18, 16, 15, -17, 25, -17, -19, -29, 2, -14, 11, 12, -19, -41, -33, 21, 24, 2, -4, 11, 8, 16, -30, -4, -21, -5, 16, 15, -18, -24, -54, 11, -16, -9, 18, 14, -3, -31, -20, 18, -14, 15, -22, 0, -6, 2, -18, -6, -5, -4, -13, 18, 14, -13, 15, -58, -14, 8, 23, -14, 1, -1, 14, 15, -25, -20, 10, 17, 33, -27, -20, -13, 4, 14, 1, -13, 6, -4, -20, 15, -12, -22, 7, -14, 7, -17, -16, -31, -14, -7, -13, -3, -22, -29, -43, -25, -19, -8, 13, -7, 9, -7, -20, 20, 33, -6, 7, -13, 7, -7, -6, -11, 0, -14, -33, 9, 7, -12, 25, -5, -27, 2, 13, 7, 14, -23, -4, -27, -16, 10, -27, 10, 13, 7, 8, -46, -31, -8, -32, -20, -19, -8, -18, 10, -17, 5, -12, -22, -24, -17, -14, -21, -39, -2, 16, -11, -3, -3, -13, -24, 39, 20, 6, -1, -12, 21, 24, 9, -3, -26, -15, -15, -5, -9, -4, -3, 9, -7, 6, 4, 4, 23, 3, 13, 10, -12, -9, 9, -7, 26, 2, -12, 9, -5, 29, 16, -20, -54, 4, 3, -21, 13, -13, 3, -9, 17, 2, -16, -4, 19, -18, -15, 0, -9, -9, 1, 14, -3, -5, 3, -9, 7, 2, -28, 1, 12, -25, -3, 2, 19, 0, 10, 27, -23, 4, -19, -22, -6, 3, -11, 16, -11, -19, -9, 0, -7, -17, 23, 3, 7, 6, -17, -16, -7, 4, -6, -19, -20, 3, -1, -2, -19, 27, 18, -4, 13, -20, 0, -2, 11, -10, 18, -4, -2, 10, -3, 22, -5, -13, -13, -1, -21, -6, 13, -1, -7, -8, 28, -15, -2, -3, -22, -35, 8, 15, 10, 19, -10, 17, 6, -12, 33, -26, 12, 16, -5, -25, 0, -11, 26, 9, -16, 15, 15, 5, 19, -6, -9, 21, 12, 19, -14, -16, -10, -5, 18, -10, -3, 7, -23, -3, 12, 16, -9, 21, 3, -41, -19, -18, -11, 14, 6, -5, 22, 1, -9, -3, -14, -12, 3, 8, 14, 4, -20, 0, -23, -6, 3, 10, -3, -22, -3, -3, -10, -9, -15, -21, 27, -13, 6, 14, 15, 11, -19, -18, -7, 25, -6, 12, 16, -1, -18, 14, 18, 16, -18, 14, 16, 6, 34, 7, -24, 2, -17, 14, -20, -8, 6, 21, 24, 4, 16, -17, -13, 14, 4, 16, -3, -23, -3, -2, -13, -15, -23, -2, -4, -27, 3, 28, 15, 21, -15, -18, 16, 20, 17, 4, -4, 20, 1, -6, -10, 17, 17, -13, -15, 28, -5, -7, -1, -13, 11, 1, 16, 20, 25, -29, -9, 4, -2, 8, -15, -19, 1, 0, 8, -5, 22, 5, -19, 24, 18, -18, -11, -5, 16, -37, 6, -19, 18, -7, -2, -7, -7, -11, 11, -3, -18, 5, -4, -4, -6, 7, -5, -11, 4, 16, -9, 8, 18, -18, -10, 7, 2, -4, 7, -3, 5, -5, 3, 9, 20, 19, 11, -2, -11, -4, 11, 8, 13, 19, -26, 14, -19, -10, -8, -2, 7, 1, 11, -26, -2, -24, -5, 11, -14, 9, -8, 6, 3, 13, -10, 7, -12, -26, 8, -3, 1, -6, -8, 3, -21, -18, 6, -14, 3, 15, -28, -14, -7, -23, 22, 13, -13, -1, -10, -13, 13, -4, -5, -14, -8, 19, 9, -8, -6, 13, 1, 3, 18, 8, 7, -33, -22, 16, -10, 2, 3, 2, 7, 3, -46, -30, 31, 19, -1, -23, 2, -28, 7, -5, -17, -7, 7, -5, -18, 14, 32, -20, 14, -13, 14, -28, -4, -1, 26, 12, 16, -21, 3, -11, 9, 7, 38, 11, 42, 17, -3, -14, -18, -33, -8, -18, 14, -16, 19, 6, -1, 24, 20, -23, -3, 16, 14, 2, 3, -19, -22, -22, 32, 1, -8, -36, 18, 3, -25, -6, 12, -4, -9, 0, -15, 19, -20, 14, 2, 26, -25, 23, -1, 5, 1, 1, 0, 31, 8, -8, -1, -10, -8, -31, 13, -6, -21, -9, 12, -13, 15, 25, -1, 3, 2, 14, -12, 15, -35, 18, 32, 23, -8, -4, -13, -5, -2, -4, -21, 14, -11, -6, 16, 3, -11, -24, 10, -12, 2, -28, 17, -12, -4, -3, -26, -9, 14, 22, 17, 28, 13, 15, 21, 8, -14, 2, -6, 8, 13, -6, -9, -11, 3, 24, -15, -7, -16, 20, -24, -30, 3, -20, 2, 33, 9, -3, 13, 12, 5, -17, 19, 6, 17, 24, 18, 7, -1, -31, 22, 12, 9, 8, -8, -34, 5, -16, -6, -7, 3, -31, -19, -18, 10, 19, 17, -22, -7, 28, 47, 5, -24, -18, -9, -14, 4, 17, 4, 9, -20, -6, -27, -16, -18, -9, -22, 3, -4, 6, 17, -6, 2, -5, -16, 19, -12, -13, 15, -16, -22, -27, -16, -6, 15, 9, -12, -6, -13, 5, -21, -16, 2, 20, -24, 16, -44, -17, 15, -2, 15, -20, 19, -3, 22, 27, -26, -23, 1, -6, 9, 0, 15, -17, 25, -12, 5, 11, 13, -26, -1, -7, -40, -20, 16, -21, 2, -12, 8, -28, 13, 12, -5, -14, -4, -14, -14, -20, 8, 19, -21, -6, -15, 0, 22, 3, -26, -16, 15, -29, 16, -4, -3, 3, 9, -14, -3, -3, 6, -11, 14, 7, 8, 2, -20, -4, -18, 8, -15, -5, 5, 3, -12, 14, -15, 1, -23, 7, -3, 35, -2, -19, 8, 13, 5, 6, -20, 10, -9, 8, 16, -11, 3, -26, -19, 15, -18, 1, 20, -6, -8, 9, 5, -23, 2, -2, -18, -18, -1, 13, 9, 18, -8, -9, 11, 9, -25, 21, -11, 2, -18, 3, -20, 10, 5, 15, -4, -8, 14, -20, -13, 10, -6, 6, 15, 14, -9, -15, 16, 1, -17, -2, -25, 11, 10, -17, 2, 24, -8, -18, -31, -20, -14, -17, 13, -7, 14, 37, -19, -30, -17, -17, -15, 7, 2, 9, 3, 16, -15, 6, -13, 7, 3, -1, 15, -4, -8, 20, -13, 2, -9, 3, 21, 7, -21, -15, -17, -2, 16, 20, 7, 13, -12, -6, -9, -24, -5, -7, 5, 0, 16, -10, 16, -28, -16, -1, -27, -14, -21, -9, 15, -5, -1, 19, -23, 16, 0, 1, -20, -7, -1, -4, -19, -21, -9, 9, -2, 5, 14, 29, 23, 37, 0, -23, -20, -23, 0, 6, -5, -10, 8, -25, -16, -29, 16, -16, -22, 4, 11, -19, 1, -8, -13, -18, -9, -29, -21, 6, -13, -8, -21, 10, 17, -21, -3, 1, 20, -23, -33, 0, -1, -4, -20, -24, -12, -7, 17, -4, 34, -4, -11, -16, 6, -26, -8, 19, -16, 19, -17, -4, -23, -13, 16, 2, 0, -35, 1, 21, 1, 15, -6, 24, 25, 8, 12, 2, 7, -19, -20, 0, 7, -10, 3, 0, 1, 12, -3, 30, -26, -9, 5, -7, 7, -3, 2, 5, -16, -4, 9, -3, -5, -9, -30, -31, 13, -6, 7, -10, 19, -3, -19, -17, -33, -5, -3, -11, -21, -9, -1, -17, -10, 27, 12, -16, 6, 11, 11, -12, -12, 11, -8, 3, -6, -11, -34, -23, -7, -25, 23, 4, -1, -3, 8, 3, 19, 5, -4, 19, 12, 7, -6, -23, 18, 6, 16, -9, -18, 8, -9, -12, 10, 11, -13, -27, 9, -16, 6, -3, -1, -14, -10, -21, -19, 2, 11, -5, 14, -13, -16, -20, 1, 2, 2, -22, 17, -9, -10, -13, -23, -14, -9, -15, 2, 0, -11, 15, -14, -19, 13, -21, 24, -25, 9, -15, 5, 16, 19, 14, -7, 0, 14, -10, 4, -25, 30, 1, 1, 34, 2, 17, -16, -18, 5, -10, 7, 8, 4, -15, -5, 2, 11, 42, 28, 30, -24, -6, 19, 12, -14, -21, 9, 17, 2, -9, 0, -12, 16, -3, -13, 9, 8, 22, 7, -20, 16, 28, 3, 23, 6, 5, -7, -11, -10, -9, -4, -2, -4, -4, 5, -9, -12, 13, -27, -10, 2, 14, -3, -18, 4, -8, -4, -4, 17, 1, 5, 0, 7, 18, -22, 10, -22, -2, 17, 7, 25, 2, -16, -13, -8, 17, 14, 25, -18, 4, -15, 19, -20, 9, -19, 21, -6, 5, -4, 17, -2, -14, -20, 17, 16, -25, -11, -11, 3, -14, -12, -10, -18, 25, -2, -11, 18, 15, -17, -3, 18, -24, -3, 5, 13, -31, -16, -15, -18, -16, -2, -10, -11, 17, 15, 11, -21, 10, -10, -31, -13, -16, 11, -6, 3, 29, -22, 20, 8, 6, -14, 3, -7, 22, 14, -14, -9, -6, -7, 13, 11, -20, 11, 4, 2, -3, 3, 7, 9, -19, -9, -11, -17, -23, 18, -11, -19, -16, 7, 32, -10, -15, -19, 15, 7, -20, -6, -6, -2, -8, -12, 19, -10, -6, -16, -19, 13, -4, -13, 17, 13, 8, -20, 1, 0, -17, -18, -28, 18, -2, -14, 7, -9, 23, 20, 11, -27, -7, -4, -9, -14, 19, 9, -11, 12, -18, 7, 12, -15, -18, 4, 11, -9, 15, 13, 23, 19, -8, -12, -16, 8, -9, -10, -6, -9, 5, 19, -2, 10, -11, -14, -10, 18, -36, -8, 0, -5, 5, -30, 16, -14, 17, -13, -20, 18, 21, 9, 39, -12, 13, 19, -26, 26, 6, -4, 2, 6, -3, -12, 7, 4, 15, 15, -5, -11, 14, -10, -23, 11, 15, 18, 9, -9, -18, 25, -29, 12, 32, 26, -5, 14, -23, 3, 0, 4, 13, 23, 27, 11, -28, 7, 25, -7, 8, 0, 9, 7, 14, -18, -6, -1, 25, -10, 16, -6, 3, -21, 12, 4, -16, 25, 19, -7, -24, -1, -11, 12, -2, 7, -16, 7, -25, -11, 8, 20, -7, 20, 26, 4, -17, 6, 7, 0, -7, -4, 7, 0, -9, -3, -18, 23, 33, -1, -3, -10, -12, -22, -3, -23, -1, 5, 22, 3, -33, -5, 6, 22, -17, 20, 6, 18, 6, -10, 3, 10, 1, 1, -23, -22, -11, 2, -16, 12, 6, 7, 13, 13, -18, 3, -13, 9, -3, -12, 26, 19, -12, -13, 15, -13, 4, 11, 23, -22, 7, -2, -6, 26, 21, 3, 12, -18, 9, 3, 8, 5, 13, 15, -13, 8, -32, 19, -5, -19, -10, -5, 24, -7, 15, 9, 10, 1, -10, 3, -38, -27, -8, 11, 1, 7, 5, -21, 7, 9, -12, 15, -5, -8, -39, 15, 16, 1, -21, 13, -16, -6, 55, 2, -29, 15, 14, 0, -11, -12, -34, -1, 35, -17, 14, -10, -27, -19, -10, -5, 10, -21, -11, 7, 2, 25, -14, -12, 4, -7, 8, 17, 2, 8, 17, -1, 18, 22, 12, -12, -12, 12, 20, 1, 25, 19, -26, 20, -11, -10, -6, 20, 24, 16, 7, -17, -16, 9, 30, 11, 17, -12, 3, 10, 9, -8, -11, -11, 30, -9, 15, -12, 10, -16, -17, -1, -4, -1, 14, 18, 4, 7, 37, 3, 17, 7, 3, -18, 8, 25, 21, 5, 27, -10, -2, 18, 11, -18, 4, 13, 13, 0, 20, 2, -23, -10, 15, -17, 6, 18, -16, -2, -6, 21, 5, 38, 13, -4, -10, -19, -19, 3, 7, -15, 21, -23, -9, -12, -17, -11, -3, 3, -24, 12, -2, -18, 5, 17, 1, 22, -4, -12, 13, -5, -3, 2, 0, 0, 14, -14, -15, -24, -13, -10, -1, -3, 0, 13, 17, -6, -5, -22, -11, 13, 7, -30, -23, -17, -12, -18, -4, -22, -25, 17, -3, 3, -8, 30, -31, 17, 4, -19, -12, 1, -7, 1, -6, -19, 9, -10, -7, -2, 14, -6, 28, 19, -9, 4, -2, 6, 12, -15, 5, 4, 18, -7, 10, 19, -7, -21, 13, -11, -34, 12, -7, 10, 17, -20, -15, -15, 34, 16, 10, 5, 6, 21, -10, 20, -10, 15, 13, 1, 16, 28, 1, 1, -1, -5, -7, 18, 14, 4, -13, -19, -17, 11, 11, 19, 15, -11, -33, 10, -21, -20, 18, 6, 24, -4, 23, -5, 28, -8, -9, 15, -11, 10, 12, -30, -30, -6, -14, 14, -38, -9, 0, 23, -13, -24, 13, -7, -17, 25, 29, -5, -25, 19, 20, -1, 25, -21, -13, 13, 5, 5, -3, 14, -12, 7, -5, 21, -5, -20, 9, 0, -1, -6, 25, 27, -13, 16, -8, -10, -16, 8, 1, -3, 0, -9, -4, -18, -18, -7, -23, 6, -4, 0, -19, 2, 3, -5, -4, 38, -29, -14, 5, -3, -11, 9, -22, -7, 14, -21, -5, 3, -18, 11, -10, 4, -11, -18, 3, -17, -6, 20, 10, 14, -21, 5, -6, -6, -1, 7, 6, 14, -4, -15, -24, -21, -6, 20, -3, 27, 14, -9, -26, 18, -6, 26, -14, -10, -6, -6, 0, -16, -18, -12, -3, 0, 17, 7, 27, 12, 1, -5, 11, 14, 14, 8, 23, -11, -20, 15, -17, -21, 12, -17, -23, -1, -3, -28, -20, 21, -17, -17, -16, -18, -19, 11, 22, -7, -4, -32, 9, 2, 23, 13, -34, -21, 19, 0, -5, 9, -3, -3, 9, -2, -9, -10, -1, 10, 6, -15, -3, -9, -2, -17, -10, 9, -12, 22, -5, 15, 10, 0, -20, 17, 0, -3, -22, 6, -6, 4, 2, 6, 10, 0, -31, 20, -19, 4, 12, 4, 3, 4, -17, 4, 10, -17, 22, -4, -20, -19, 8, 15, 20, -7, -4, -17, 19, 32, -24, -12, 0, -16, -33, 6, -1, 3, 7, -9, -25, -19, 23, 7, -5, 18, -36, 4, 0, -16, 11, 4, -14, -22, -25, -29, 5, -3, -9, -23, -15, 22, 17, -9, -33, 9, -14, 7, -3, 0, 3, 6, 17, -13, 25, 16, 17, 5, -2, -7, -16, 11, 10, 3, 7, 43, -8, -12, -27, 5, -18, 0, 7, -15, -10, 20, -10, 18, 9, 0, 11, -16, -34, 30, 0, 13, 10, -9, -5, 2, -24, -12, 15, -3, -4, 7, -5, -23, 16, 18, -12, -14, 20, -7, -6, -1, -17, 3, 12, -10, -20, 24, 2, -23, -12, -21, -2, 5, -22, 15, -1, -27, 0, 5, 4, 12, -3, -12, -7, -8, 8, 4, -11, -15, 0, 5, -12, 1, 6, -3, 6, 14, -17, 14, 4, -1, 19, 10, 12, 15, -24, -15, -19, 15, -35, 2, -21, 3, -15, -16, 13, 20, -27, 1, -9, 1, -8, 14, 4, -8, -34, -15, 16, 6, 2, 20, 4, -20, 24, -29, 5, 3, 7, 9, 11, -10, -2, 7, -21, -20, 10, -20, -7, 22, 10, 25, -6, 1, 9, -17, 9, -25, -25, 10, 13, -17, 15, 12, 12, 10, -5, -28, -23, -10, -16, 8, 3, 41, -16, -13, -25, -13, 13, -17, -9, 12, 13, 19, 2, -13, -17, -17, 3, -12, -5, -35, -10, -19, 3, 1, -7, 29, 12, -9, 8, -1, -11, 27, -5, 12, -3, 15, 23, 5, 13, 5, 12, 7, -26, -15, -9, -17, 6, -28, -4, -5, -2, 19, -13, 20, -24, 0, 13, -17, -20, 0, 20, 4, -17, -10, -23, -14, 3, 28, -2, 22, -24, 5, -11, -15, -10, -13, 2, -5, -20, -7, -7, 8, 12, 10, 7, 10, -20, 8, -8, -21, 14, -18, -19, 5, -25, 24, -13, -26, 0, 16, -15, -2, -9, 18, -18, 24, 10, -14, -7, 31, 12, 18, -26, 6, -12, 9, -3, -9, 16, 20, 1, -21, -4, -3, 12, 25, -16, 18, -24, -23, 8, -10, -43, 25, -18, -16, 12, 10, -24, 28, -25, 18, -11, -8, 0, -12, 1, 13, -34, -3, 6, -1, -9, 26, 0, -36, -10, 7, -8, 27, -9, 12, 7, 11, -12, 0, -11, -19, 8, 3, -16, -10, -6, 14, 10, 19, -15, 17, -17, -2, -1, -17, -1, -5, -22, -1, -1, -2, 26, 2, 6, -11, 1, -8, 10, -24, 9, 3, -24, 25, 2, -17, 15, 5, 17, -2, -8, 4, -11, 4, 30, -11, -20, 9, -15, 13, -4, -21, 10, 10, -12, 19, -9, 8, -9, -13, -21, 14, 0, 10, 14, -10, -2, -13, -1, -9, 9, 0, -13, 33, 8, 16, 18, -4, 0, 13, 6, 23, -19, 1, 8, -19, -9, 8, 1, -9, 14, -5, -28, 3, -17, 8, 6, -9, 29, -23, -3, 10, -28, -18, -7, 0, -6, 8, -24, 0, -1, 26, 16, -4, -9, -17, -9, -25, -2, -24, 1, 13, -22, 3, 23, -15, 15, -11, -20, 2, -15, 18, -15, -19, -13, 15, -12, -10, 14, -5, 16, 0, 10, -22, -14, -21, 10, 0, -7, -9, -7, 8, -7, -4, -3, 8, -4, -1, 16, -5, -11, -11, 13, -12, 11, -14, 2, -18, -16, 16, -2, 1, -19, 11, -30, -1, -25, 0, -24, 12, -26, -2, -19, 21, 1, 29, -14, -25, -18, -2, -25, -17, 24, -29, -4, -28, 4, 11, -14, -10, 16, -11, 0, 4, 7, 5, 5, -13, 5, -17, 1, -8, -33, 23, -31, -7, -16, 28, -13, -10, 8, -2, -29, 25, -1, -26, 2, -1, 2, 16, 8, -30, -23, -6, -15, 27, -23, -9, -11, -16, 9, -3, -6, 6, 26, 7, 6, -8, 16, -9, -2, 8, -2, 15, -38, -21, -15, 0, 8, -5, 34, 12, -1, 2, -6, 24, -22, 16, -12, -16, -4, -18, 9, -11, -13, -7, 1, -16, 24, 4, 2, 0, -2, 4, 8, 12, -27, 16, 6, 2, 6, -9, -5, -1, -15, -17, -19, -9, -22, 9, -2, 1, 21, 30, -4, 10, 16, 1, -24, 0, -7, -9, 5, 13, -1, 9, -32, 18, 13, 7, -5, 14, -20, -17, -15, 28, 10, 7, -18, -8, 11, 2, -6, -14, -5, -10, 7, 38, 1, 22, -42, -27, 2, 17, -19, 40, -16, -5, 7, -8, 4, 14, -14, -22, 3, 0, 23, 4, 14, 16, -6, 8, 16, -12, -20, 12, -18, 21, -6, -17, -13, 2, -10, -8, -24, 21, 12, 15, 14, -10, 6, -8, 7, 6, 2, -13, 0, -15, -10, -8, -13, 0, -25, 3, 14, 11, 10, 15, -8, -22, -5, 21, -9, 17, -2, 15, 13, 24, -25, -21, 14, -1, 3, -11, -10, 6, -1, -9, 4, 8, 11, -3, -15, -12, -12, -10, -10, 20, -29, -11, 19, -7, 13, 11, 7, 15, 18, -27, -4, -10, 4, 6, -10, -13, -29, 11, -20, 5, 10, 18, 14, -5, -10, -4, -3, 4, -7, -12, -2, 2, 12, 16, 24, 8, 12, -3, -11, -21, -4, -2, 8, -40, 23, 16, -17, 14, -53, -14, -13, -23, 5, 2, 6, -21, -4, -34, -20, 11, 9, -4, 12, -14, -12, -11, -8, 1, -16, 19, 4, -17, 9, 8, -15, -11, 4, 15, -5, 17, -36, -12, 18, 27, 3, 0, -22, 4, -17, 14, -19, 24, -19, -34, 12, -6, 4, -17, -21, 27, 0, 38, -5, 33, 8, -6, -25, 11, -11, 20, 14, 8, 4, 17, -8, 3, 26, 15, -4, 9, -13, -16, -11, -19, -7, 22, 9, 9, -6, -13, 3, -8, -8, 17, -6, -3, -2, 22, -30, -14, 8, 20, 18, -10, 2, 12, -30, -2, -21, 14, -9, 19, -29, 16, -5, 0, 13, 50, 19, 2, 7, 14, -4, 26, 6, 24, 1, 15, -10, 2, -10, -3, 17, 3, 16, 8, -7, -11, -1, 21, -8, -9, -13, 4, -7, -17, -29, 8, 4, -6, -26, -1, 2, 5, 3, 5, 9, -10, -9, 5, -8, -20, -21, -9, -18, -11, 14, -14, 8, -32, 21, -12, 14, 2, 15, -9, -5, 37, 10, 17, -17, -27, -8, 23, 5, 3, -12, 15, -7, -4, -2, -6, 13, 20, -7, 0, -5, 4, 12, 28, -21, -7, -10, 14, -12, -12, -6, -13, 0, 51, -27, 7, -4, -17, 5, -8, 14, -25, -13, 12, -18, -11, 7, 13, 3, 19, -14, 8, -20, 4, -13, 10, -4, 13, -30, -9, -15, -20, -1, -5, 16, 0, -17, 1, -15, -20, -29, 10, 23, 10, 25, 4, 7, 7, -9, 7, 26, 11, -13, 1, 9, 1, -16, -8, 4, 50, -1, 2, -9, -5, 11, 4, -22, 8, -16, 20, 4, -5, -9, 8, 7, 25, -36, -4, 2, 25, 11, 19, -9, 7, 18, 11, -22, -12, -22, 2, -15, 22, 7, 4, 4, -5, -12, -4, 36, -10, -24, -7, -20, 13, -18, -1, 4, 14, 4, -8, -12, 6, -19, -43, 43, 8, 12, 3, 14, 7, -9, -12, 13, 18, -27, -26, 12, 10, -18, 8, -25, 29, -1, -17, 2, -32, -7, -13, 4, 48, -19, -6, -2, 19, 1, 24, -16, -11, 8, 5, 10, -21, 9, -13, -19, -15, -5, -7, -22, -1, -17, -27, 13, -10, 12, 12, 0, -23, 8, -4, -17, 6, 21, -1, -21, -7, -6, 0, -26, 10, -5, -6, -15, -6, -20, -12, 17, 16, 1, -17, 8, 16, 7, 2, 15, 9, -19, 14, 9, 3, -14, 0, -24, -3, 11, 17, 13, 18, -19, 10, 7, 4, -19, -18, 20, 13, -1, -9, -2, -11, 2, 14, 14, -15, 0, -11, 23, 3, -12, 14, 7, -19, 2, -25, 10, -9, 9, 10, 17, 17, 17, 13, -3, -2, -18, 11, 7, -2, 7, -16, -17, -12, -22, 16, -5, 34, 13, 14, 8, -30, 15, 2, 12, 2, 9, -12, -17, 12, -30, 1, -21, 1, 3, 27, -4, -14, -14, -24, 3, -6, -11, 12, 2, 3, 15, -18, -14, 4, -18, 16, -8, 13, 20, -20, 16, -25, -14, 5, 8, 15, 17, 4, -18, -15, 3, -32, 58, 19, -15, 6, -13, 12, -2, -12, 2, 8, -22, 21, -7, 11, -2, 10, -9, 17, -2, -5, -18, 10, -16, -2, -2, -23, 8, -25, -13, 6, -22, 18, -2, 23, 12, 32, -25, -13, 6, -4, 18, -2, -10, 10, -12, -21, -13, 12, 0, 18, 30, -9, 19, -13, -8, 4, 2, -1, -4, -1, 9, -45, 11, 2, -12, -2, 16, -7, 5, -13, -15, 6, 2, 33, -14, -8, 13, 12, 15, -2, -29, 10, 16, -9, 3, -14, -27, 6, 18, -1, -10, -17, -5, -36, -11, -8, -17, 14, 9, -23, -18, -7, -23, 32, -13, -5, -31, -31, 6, -33, -19, 30, -11, 27, 7, 27, -23, -13, -10, 15, 0, 19, -17, -41, -13, -19, -14, 16, 12, 16, 17, -20, 1, -38, 3, -15, 3, 14, 6, -24, -3, -8, -23, 12, -3, -8, 8, -3, 13, -1, -26, 9, -1, 24, 20, 13, -17, 10, 7, 0, -11, 19, 24, -41, -11, -15, 11, -1, 2, 3, 2, 6, -24, 25, -26, 24, -15, -9, 7, -4, -15, -8, -21, 12, -7, 19, 0, -7, 9, -23, -4, 14, 17, 12, 14, 20, -11, 4, 11, 18, -25, 22, 15, 19, -18, 9, -9, -37, -23, 12, -23, 13, 10, -33, -23, -21, 18, 30, 21, -16, -12, -7, 13, 24, -12, -12, 1, 35, 17, -4, -7, -30, 22, -29, -30, 22, 1, -1, 5, -17, 27, -12, 9, 18, 11, 2, -6, -10, 26, 20, 11, 4, -1, -22, -25, 17, 6, 4, -6, 11, -21, 22, -11, -19, -34, 12, -10, 35, 21, -17, -7, -24, -9, -1, 30, -7, -7, 13, 6, 13, 24, 18, -8, 25, 20, -17, -8, 0, 0, 31, 0, 35, 10, -21, 13, -28, 9, 3, 9, -39, 9, -27, 3, -27, -53, -33, -26, -36, -12, 41, 8, 3, 2, -1, 9, 10, -13, 14, 4, 13, -29, -26, 3, 23, 6, -7, 14, -12, -9, 2, -9, 2, 17, 14, -24, 7, 24, -7, 13, 10, 9, 10, -8, -12, 8, -13, -19, 18, -3, -24, 12, 26, -25, -5, 11, 39, -11, 21, -13, -35, -6, -10, 12, -8, -23, 15, 6, -12, 12, -10, -6, -4, -2, 16, -23, -7, -1, -25, 27, -10, 0, -21, -11, -13, -2, 15, 22, 21, -25, 25, -14, -4, -15, -12, 16, 4, -4, 22, -21, 4, -16, -17, 24, -17, 4, 17, -21, 1, 29, -49, -9, -5, 6, 15, 0, -10, -29, -7, -17, 0, -1, -13, 2, 9, -8, 18, -19, -9, 12, 2, 2, -38, -1, 25, 17, 20, -7, 15, 2, -22, -7, -1, 4, 0, -27, 24, 8, 1, -17, -15, 17, 16, 30, 17, -19, -21, 8, -9, 13, 1, 7, 3, 17, -11, -34, 7, -23, -1, 11, -7, 17, -26, -16, -26, -57, 2, -9, 8, -18, -2, 1, -29, -17, 17, 5, -6, -17, -5, 16, 5, -1, -17, 6, -8, -17, -4, 26, 22, -17, 7, -19, 4, -1, -8, 7, 16, 3, 28, 4, -17, -3, -5, 28, -6, -5, 7, 18, 10, -9, -26, -26, 8, -4, -6, 2, 20, -14, -9, 11, 2, -15, 26, -14, -9, 4, -45, 14, 33, -18, -19, 7, 19, -10, 7, 6, -28, -24, -18, -16, 22, -23, 21, 6, -14, 6, -16, -3, -13, 16, 11, -13, 16, 4, -9, -16, -19, 17, 16, -2, -12, -24, -37, 16, -29, -12, 40, -24, 36, 12, 20, 12, -18, -18, -10, -25, -9, 5, -23, 1, 4, -18, -4, 9, -21, 17, 6, 6, -19, 7, 16, 1, 0, 2, -14, -17, -6, 13, 2, 34, -2, 18, 13, 17, -29, 0, -20, -19, -8, -26, -19, 1, -7, 8, -24, 4, -3, -13, 5, -19, -8, 0, 6, 6, -23, -12, -6, 1, 15, 6, -4, 27, -27, -14, -22, 3, -16, 15, 23, -4, 5, -28, -9, -12, -18, -11, -12, -24, 23, 21, -15, -24, 11, -17, -12, -27, -18, -12, -21, 18, -4, -7, 41, -13, 10, -1, -15, -4, 9, 16, 0, 18, -26, 0, 23, 17, 22, -12, 1, -20, 15, -28, -15, 6, -10, 11, -18, -6, 22, -2, 4, -14, 16, 6, -6, -19, -5, -18, 3, 14, 11, -23, -13, -11, -2, -7, 10, -7, 7, 5, 11, 18, -21, 9, 7, -10, -23, -3, 6, -3, 22, -2, 10, -19, 0, -22, -1, 12, 4, -13, -4, 4, -5, 7, 19, -6, 40, 3, -6, -1, 16, -18, -9, 4, -11, -6, -5, -11, -13, -10, 1, 10, 17, 12, -4, -11, -17, -5, -16, -8, 0, 30, -21, -13, -10, -10, 0, 8, -7, 8, 7, 7, 10, -19, -21, 43, 19, 16, -24, -8, -2, -15, 19, -21, -6, -22, -34, -10, 10, -9, 7, -6, 1, -2, 12, -2, -1, 16, -6, 6, 26, 21, -21, 10, -4, -23, -21, -16, 30, 4, -5, 13, -3, -11, -45, 23, 0, -6, -10, 10, -17, 22, -9, -22, 4, 3, -14, 1, -1, -18, 1, -5, 17, 21, -39, -2, 20, -3, 31, -18, -34, 6, 27, -19, -2, -10, -18, 25, -10, 13, 3, -16, -15, 5, -23, 9, -1, 17, -20, 5, -31, 8, 37, -15, -2, 17, -3, 8, 19, -4, 45, 14, -29, 10, -44, -23, -15, 10, 7, -9, -11, 21, 14, 14, -15, 12, 2, 0, 22, -2, 10, 9, 8, 16, -17, 13, -7, -7, -14, 12, -5, -9, -26, 8, -10, -10, 10, 6, -17, 15, 9, 12, 27, 1, -29, -20, -44, 17, 17, -28, 29, -10, -15, 20, 9, 16, 39, -16, 17, 9, 10, -11, -3, -9, -5, 13, -2, -2, 2, -15, 32, 13, -16, -23, -43, 6, -4, 5, -29, 7, -10, -2, 34, -24, -19, -7, 16, -12, -6, 9, 16, -13, -31, 11, 19, 0, 23, 24, 5, 9, 16, 15, 9, 6, 4, 8, 10, -20, -5, 23, -16, -26, -9, 11, 11, 10, -12, 8, -26, -1, 6, 8, 28, 24, -11, -3, -11, -9, 15, 18, -9, -20, -20, 14, 16, 11, 13, 22, -33, -12, 8, 6, 11, 17, 1, -15, -33, -33, -13, -6, -11, -2, -15, 29, -6, 5, 2, 6, 22, 11, 18, 18, -5, -11, -2, -23, -18, 8, 17, -22, 4, -7, -28, -23, -38, -23, 14, 25, 30, -15, 2, -12, -11, -1, 15, 1, 1, 25, 6, -21, -26, -5, -3, 15, -12, 24, -24, 7, -24, -16, -5, 32, -14, 14, 8, -12, 15, -3, -4, 19, -8, -7, -18, 6, -2, 12, -12, -17, 21, 18, -26, 8, -2, -12, 1, -8, -10, 16, -12, -7, 3, -3, 16, 11, 3, 23, 13, -22, 4, -25, -15, 26, 22, 5, -14, 6, -11, 6, -1, -11, 18, -19, 4, -17, 2, 6, -18, 2, 10, 19, 12, 9, -2, 3, 2, 1, 9, 15, -27, 0, -25, -15, 3, 4, 26, 23, -30, 10, -20, -17, 17, 1, 19, 19, -38, -12, 1, -1, 8, 20, 6, -7, -15, 15, 1, -23, 29, 12, 2, 30, 25, -25, 5, -26, -30, 7, -5, -9, 21, -14, -17, 7, 7, -12, 0, -3, -13, -8, 32, -3, 35, -23, -19, 23, 4, 2, -4, 12, -7, 9, 19, -42, -8, -22, 11, 15, 14, 8, -32, 2, 8, -12, -3, -6, 12, -43, -10, 23, 9, -24, -21, -14, -26, 52, 27, -3, -6, 27, -10, -12, -13, -9, 8, 8, -12, 13, -1, 24, 2, -55, 7, -2, 4, 11, -13, 3, -12, -11, -23, 41, 10, -18, 4, -18, -20, 22, -17, -4, 6, -13, -19, -23, -44, 38, -11, -5, 20, -6, -16, -14, 7, 10, -13, 12, 11, -7, -18, -21, 3, -1, 4, 7, 12, -5, 3, 15, 2, -15, 0, -2, -19, 12, -36, -3, -14, -39, -4, 14, -3, -4, -2, -3, 15, 11, -11, 5, -2, -27, -17, -18, 9, -5, 33, 1, 16, -13, 14, -12, -10, 2, -19, 1, -13, -7, 24, 22, 2, 2, -35, 20, -2, 0, 33, 14, -17, 19, -3, 56, -5, -20, -5, -17, -19, 16, -27, -6, -23, -11, -28, 3, 10, 8, 18, 1, -17, 15, 6, 10, 0, -10, 13, -12, 22, 13, 17, -22, 36, -40, -17, -3, -2, 15, -2, -11, -46, 16, 9, -12, 6, 13, -7, -4, -36, -12, 25, -23, 9, -3, -11, -4, 42, -7, -11, -21, -17, 4, -13, -14, 36, -32, 47, -13, 15, 3, -14, -24, -8, -22, -11, 28, -5, -26, 4, -10, -13, 4, 24, -1, 22, 5, -6, 9, -20, -10, -21, 15, 7, -1, -24, 1, -25, 13, 52, -62, 1, -19, 32, 11, 15, -7, -2, 34, -9, 0, 0, -4, 49, -54, -25, 22, -6, 3, -3, 11, 46, -43, -24, -13, -2, -25, 9, -8, -16, -7, 2, -19, -35, 5, -16, -8, 68, -52, 27, 4, 37, -13, 19, -4, -24, 2, -16, -19, 1, -19, -4, 19, 8, 22, 22, -35, -19, 8, -2, -9, 25, -21, 43, -38, 15, 11, -10, 8, -8, -6, 63, -61, 15, 9, 10, -11, 4, -8, -4, -7, 17, 4, 9, 22, 24, -14, -12, 10, 15, -11, -16, -14, -25, 16, 43, -8, 5, 4, 21, 15, -4, -12, -12, 14, 6, -8, -19, -7, 13, -11, 43, 5, 18, 17, -5, -2, 13, 10, 11, -28, -14, 2, 18, -23, -7, -8, -27, -7, -2, -13, 9, 14, -3, 27, 3, 13, -8, -5, 4, 13, -66, 53, 11, 15, 16, 0, -34, -5, -11, 2, -11, 24, -26, -4, -31, -11, 3, 3, 8, 33, -48, 10, 13, -20, 48, -3, -15, 2, 7, 9, 14, -17, 1, -10, -14, -3, -27, 4, -58, 0, 4, -3, 39, -3, 24, 13, 20, -19, -21, -9, 18, -4, 29, -8, 1, -5, -12, -6, 33, 9, -9, -21, 9, 1, 3, 32, -10, -13, -16, 17, 14, 14, 50, -5, -47, 13, -15, 5, 29, 9, -7, 21, 9, 11, -1, 10, -24, 3, 24, 3, -15, -21, 1, 4, 3, 9, -5, 17, 13, 16, 2, 15, -12, 9, 29, 6, -4, 17, -13, 12, -39, -17, 22, -2, 37, -24, 10, -20, 6, 5, -25, 13, 14, -32, 19, 12, -3, 18, -24, -3, 7, 6, 7, -3, -6, -7, -6, -10, 3, 25, 15, -5, 2, 20, 33, -5, 5, -3, -3, -1, -7, -5, 50, 5, 7, 0, 8, -4, 2, 0, -52, 10, -14, -10, -14, 2, -13, 15, 8, -3, 1, -26, -34, 7, 8, 1, 34, -13, 0, -1, -16, 0, -17, -4, -6, -2, -33, 0, -10, 16, 23, 4, 42, 14, -4, -18, 23, -21, 8, 15, 13, -10, 23, 2, -15, 20, -30, -3, 22, -41, 20, -6, -13, 13, -5, -6, 34, -14, -3, 23, 18, -29, -12, -18, -2, 13, -6, -11, 12, -3, -1, 19, 7, 13, 25, -8, -12, 16, 15, 5, -13, 4, 7, -2, 14, -6, -34, -15, -28, 27, -22, 23, -19, 1, -17, -17, 17, 7, 15, -6, -22, 19, -1, 7, 31, -33, 8, 5, -3, -22, -17, 0, -14, 8, -3, 21, 21, -23, -32, 14, 0, 11, 12, 10, 0, -17, 14, -6, 18, 8, 10, 9, -4, 7, 17, 13, 16, 3, 10, -21, -30, 0, 13, 8, 5, 8, -18, 2, -10, 13, 18, 14, -18, -2, -13, -15, -10, -3, -32, 12, -6, 2, 9, 16, 7, 2, -30, -6, 1, 9, 6, 3, 13, -14, 6, -5, -13, 13, 14, -4, -49, 5, -14, -2, 25, -35, -12, 11, 11, -23, 3, -13, 30, -13, -25, 6, -7, -21, 31, -24, -5, 5, -5, 15, -15, 3, 16, -2, 31, -31, -19, -5, -7, -2, 9, 10, -16, 14, 12, 7, 11, 21, -19, 17, -29, 4, -15, -15, -15, -12, 17, -6, 22, -18, -3, 8, 14, -14, -2, -6, 4, 5, -9, -21, 18, 9, -14, 20, -3, -23, -5, -4, -8, 5, 8, 33, -49, -1, -27, 0, -7, 5, 2, 5, 5, -4, -19, -4, -7, -14, 10, -10, 11, -7, 13, 13, -9, 8, 13, 19, 12, -15, -33, 13, -10, 7, 15, -12, -9, 2, -7, -17, -21, 2, -8, 23, -6, -20, 15, -28, -10, 13, 18, -4, -3, 11, 15, -10, 1, -9, -11, -14, -14, 16, 2, 10, -22, -1, 5, -15, -9, -9, -7, -14, -19, -7, 4, -6, -29, -16, -7, 7, -11, 2, 4, -5, 15, -21, -28, -25, -4, -2, 0, 3, 13, -1, 19, -16, -8, -8, -17, 3, 1, -25, 3, -26, 12, -6, -17, 19, -23, -1, 20, -11, -23, -11, -21, -20, 4, -16, -9, -17, -24, 11, 17, -1, 5, 10, 13, -4, 5, 8, -23, 11, 1, -18, 0, -19, 15, 15, -4, 4, 22, 6, 7, -3, -4, -16, -10, -6, -13, -26, 2, -2, -16, 24, 10, -24, -12, -16, -14, 19, -14, -17, 12, -19, -3, -30, -2, 1, -18, -12, -10, -7, 5, -3, -12, -22, -6, 7, 8, -14, -10, -13, -4, 14, 7, -24, 16, -19, -1, -8, 1, 7, 2, 26, 11, -2, 5, 6, -3, -20, 11, 0, -15, -8, -8, -1, -2, -15, -10, 12, 6, 3, 9, -15, 7, 7, -4, -26, 3, -18, -4, -10, 22, -10, -18, -13, -1, -14, -27, 13, -14, -11, 13, -12, -21, -30, 11, -18, 24, 16, -4, -30, 2, -16, -12, 17, 24, -17, -15, -12, -1, 22, 11, -5, 12, -7, -10, -19, -9, 9, 10, -17, 21, -19, 11, 14, -9, 28, -30, -25, -2, 10, 13, 5, -6, -1, -8, 5, 21, 12, -9, -14, -23, -23, -3, 13, 12, 10, -9, -9, 15, -3, 19, 11, -28, -2, -10, 1, 7, -6, 5, -3, -4, 10, 15, -3, 1, -13, 15, 24, 7, -5, 9, -18, -1, 19, 6, -22, -20, -17, -7, 28, 15, -32, 1, -34, 18, -11, -7, -20, -4, 19, -15, -5, 15, 10, -19, 11, -10, -9, -11, 1, 19, -14, -8, -1, 13, -24, 18, -8, -7, 19, -19, -24, -2, 7, 27, -7, -20, -9, -16, -4, 2, -2, 18, -15, -13, -8, -2, -14, -15, -11, 11, -20, 3, 8, -5, 1, 8, 1, 3, -16, -17, -1, -15, -15, 1, 2, -2, -5, -16, 1, -18, 7, 1, -11, 14, 10, 5, -10, -11, 13, -16, -18, 15, 10, 10, 30, -8, 0, -19, 12, -30, 30, -10, 12, 7, -5, 5, -25, 25, 14, 9, -15, 10, -12, 22, -17, -11, 2, -7, 4, -1, -19, 13, 0, -15, 35, 15, 10, 1, 13, -21, -2, -4, -16, 17, 7, 10, 5, -13, -8, 15, -6, -6, -14, -3, 5, -13, -30, 30, -8, -10, 14, -5, -9, 11, -24, -19, 3, -19, 8, -17, 18, -9, -20, -4, 21, -5, -11, -5, -1, -9, -6, 12, -6, 2, 11, 17, -20, -14, -15, 1, 27, 0, 15, -1, 13, 11, -24, -30, 13, -33, 8, 6, -3, 1, 24, -5, -12, -15, -15, -24, 2, 12, -22, 2, 15, 24, 13, -4, 2, -6, -31, -39, 22, 5, -15, -20, -2, -9, -14, -26, 15, 6, 8, 11, 4, 12, 17, -28, -10, -22, -18, -1, 7, -22, -22, -9, 9, -50, -15, -20, -6, -23, -21, -15, -16, 15, -22, 12, -32, -14, 16, -26, 6, -4, 1, -10, 8, -15, -1, -32, 0, 10, -12, 3, -3, 15, 20, -12, 27, 11, 10, -9, -1, -21, -11, -35, 8, -12, 13, -4, 16, -15, 6, 1, 11, -16, -22, 14, -19, -17, 7, -35, 1, -10, -3, -24, 14, 10, 4, -22, 16, 10, 35, -11, -1, -14, -5, 15, 14, -18, -29, -19, 11, 19, -32, 6, -13, -8, 20, 17, -17, 7, -20, 6, 4, 17, 14, 4, 4, -5, -6, -19, -12, 18, 19, -11, 6, 14, -9, 17, -14, 2, -11, 7, 27, 17, -9, 13, 27, -12, 8, -3, -8, -12, -18, -39, -19, -7, 26, -17, -6, 5, 5, -6, 22, -18, 7, -11, 23, -2, -6, -10, -11, -9, -6, -1, 2, -6, -7, 11, 12, -11, -11, 10, -8, -14, -12, -2, 2, -25, 4, -7, -5, 7, 2, -15, 8, -39, -6, 21, -26, 4, -1, -3, 14, -20, 3, -22, 6, 13, -4, -19, -8, -9, -25, -4, 6, -13, 14, 16, -27, 3, 15, 0, 5, -23, 1, 17, 3, -17, 1, 21, -11, 9, -8, -2, 5, -21, -8, 7, -26, 10, -10, -21, -20, -30, -14, 19, 3, 8, 11, -25, -23, -1, 26, -14, -1, -11, -11, -25, -21, -32, 6, -20, -1, -11, -17, -22, 9, 2, -9, -14, -23, 16, 5, -5, 19, -16, 20, -4, 0, -23, -19, -8, -9, -21, 14, -24, -2, 10, 22, 3, -15, -18, 21, 0, -4, 9, 10, -13, -14, 2, 2, -19, -10, -3, -9, 0, 19, -27, -8, 0, 14, 3, -16, 22, 11, -9, 16, 9, -7, -12, 8, 6, 7, -9, 17, 10, 24, -16, 0, 3, 0, -23, 12, -15, 10, 18, -5, -18, 4, 1, -20, 9, -11, 8, -20, 7, -12, -7, -14, 12, 5, -15, 18, 6, -22, 0, -14, 11, -19, 7, 18, -11, 12, 7, -23, 10, -2, -22, -15, 69, 15, -15, 31, -16, 17, 3, 7, 8, 4, -8, -2, -23, 7, 11, 23, 4, -4, 11, -8, 6, -24, 24, 8, 28, 4, -30, -12, 1, -10, 3, -16, -10, -20, -6, -2, -14, 4, -4, 21, -6, -30, -7, -8, 17, -12, -2, -22, 22, -17, -6, 4, 12, -13, -5, 12, 14, -6, 9, 0, -22, -12, 6, 19, -17, 21, 32, -14, 6, 23, -15, 12, 18, -27, 14, -7, -14, -10, -15, 2, 6, -16, -7, -23, -22, -25, 14, -13, -2, 8, 13, -17, 11, -11, -5, 33, -3, -21, 1, -21, -19, -9, 10, 16, 7, 10, 14, -20, 14, -21, 12, 14, 14, 17, 21, 8, 15, 15, -8, -16, -6, 19, -11, -5, 8, -25, -15, -19, 17, 9, -7, 14, 14, -14, -18, -2, 16, -25, -12, -17, 0, 1, -3, 12, -2, -5, 42, -28, 18, -17, 8, 5, 26, -36, 0, -12, 5, 0, -20, 23, 20, 12, 0, 17, -10, -9, 17, -1, 7, 2, 12, 16, 14, -23, -22, -21, -14, -11, 12, -29, -17, -8, -7, -13, -14, 6, -15, 2, -22, 29, -19, -24, 36, 4, -25, -17, -14, -16, 18, 1, 7, -20, 6, 16, 4, 14, 14, 3, -17, -15, -11, -20, -16, 0, -21, -7, 26, 19, -11, 7, -21, -9, -13, 0, -25, -15, 27, -14, 11, -18, -15, 15, 6, 8, 2, -24, 12, -18, -10, 15, -26, -19, 23, 3, -12, 3, 0, -8, 7, -9, -9, 12, -20, -21, -6, -4, -1, -14, 8, 12, -9, 18, -8, -8, -33, -4, -16, -12, 16, 0, -22, 14, -37, 8, -14, 11, -18, -30, -23, -11, 5, 12, -28, -6, -14, 4, 6, 18, 12, -10, -8, -18, 16, -7, 15, 14, 11, 15, -26, -43, -4, -15, -17, 3, 1, -9, -21, 14, 19, 30, -17, 16, -12, -26, -20, 8, -16, 11, -10, -3, -16, 17, -9, -19, -18, 11, -5, 17, -22, -15, -8, -17, -22, -1, -1, 4, 13, -19, -21, -12, 11, -8, -19, 11, -6, -19, 5, 9, 9, 6, -1, 36, -11, 3, 21, 3, 13, 5, 2, -7, -10, 3, -7, 11, 15, -20, -24, -5, 20, 4, -11, 7, -21, -8, 7, -22, 12, 21, 23, 13, -22, -28, 4, 11, -13, 15, -16, -2, -8, -23, -9, 3, 5, -6, 13, 19, -20, -13, -11, 14, -15, 1, -6, 32, 0, -15, -14, 8, 47, 1, 6, 12, -17, 7, 0, 10, 19, 10, 12, -17, -4, 9, -16, -10, 27, -5, 2, 10, 11, -3, 5, 23, 15, -17, -26, 3, 9, 8, -19, -21, -3, 28, -4, 3, -17, 9, -2, -12, -14, 17, -22, 0, -16, -8, 9, 1, -33, -16, 15, -15, 12, 5, 13, 4, 7, -7, 18, 38, -12, 13, -19, -6, -11, -13, 1, 1, 10, -26, -6, -8, -6, -7, -32, 22, 12, 9, -23, 1, -7, -22, 9, -22, -23, -11, -6, 21, 3, -25, -12, 12, -24, 10, -25, 9, 2, 12, 20, 1, -18, -27, 6, -28, -31, 5, 6, 20, -4, -13, 14, -42, -18, -12, -11, -18, -4, 16, 12, 10, 7, 17, -11, 8, -1, 2, 10, 5, -26, 10, -40, 3, -18, -2, 15, 30, 7, 23, 17, 9, 8, 6, 19, 17, 7, 24, 9, 6, 5, -30, 0, -7, -27, 4, -20, 7, 18, 17, -1, -12, 0, 26, 1, 30, 2, 17, -18, -10, 3, -15, -8, 21, -18, 7, 7, -2, 3, 4, -8, 15, -19, 36, -7, 8, 17, -5, 0, 17, -5, 20, -21, 21, -11, 32, -8, -16, 13, -23, -13, 9, -49, -14, -18, -7, -3, -12, -24, 9, -13, -12, 3, 15, -6, -7, 19, 18, 3, -11, 12, -3, 12, -4, -23, -1, 11, 16, 9, 22, -13, 9, -16, 16, 7, -4, -12, -2, -13, -12, -6, -9, 19, 19, -17, -12, 17, -21, -20, -18, -28, -6, -48, 18, -11, -4, -14, 1, 19, 9, -26, 9, -7, -18, 18, -35, 12, 12, 3, -2, 15, 13, -8, 6, 6, -5, 12, 18, -22, -19, 15, -14, -13, -17, -24, -15, -9, 3, -21, -33, -12, 2, 1, 5, -21, 7, 4, 6, 29, 16, 15, 16, 4, -37, -3, -22, -27, -15, 0, 28, 0, -29, 0, -1, 2, -4, -8, -17, 2, 2, -14, -9, 11, 22, 5, 9, 7, -24, -11, -8, 35, 22, -3, -3, -15, 11, -12, 7, 38, -5, 16, -9, -22, -26, 9, 12, 16, 23, -23, 8, -21, -19, 6, -13, 12, -17, -31, 9, -2, -10, -4, 4, 8, -6, -16, -4, -11, -16, 13, 9, -16, -11, -2, -5, -24, 13, -19, 0, 14, -9, 29, -5, 8, -17, 23, 4, 14, -2, 7, 39, -12, -24, 4, 14, -5, 18, 1, -12, -5, -15, -4, -23, 21, 18, -8, -15, -9, 5, -17, -8, 23, 12, 2, 1, -21, -18, -23, 3, -19, -17, -7, 15, 6, 12, 11, 0, 6, -7, -9, -29, 13, 3, 9, -26, 16, -24, 4, 12, -5, -11, -21, -23, 11, -14, -1, 12, 16, -31, -11, -25, -29, -12, -8, -35, -10, -8, 7, -27, -9, 6, 20, -12, -19, 7, 11, -29, -3, -4, -10, -29, -20, -28, 10, 5, 18, 1, 5, -5, -19, -23, 2, -15, -5, 22, -9, 6, -11, 10, 4, 6, -11, 0, -15, 11, -7, -6, -20, 14, -21, -9, -4, 16, -4, -18, -14, -16, -22, 9, -10, 7, -12, 5, -13, 2, -11, -7, -18, 12, -12, 10, -7, -2, 15, -2, 4, 5, -3, 8, -12, -14, 9, -6, -13, -1, -11, 4, 17, 10, 15, -11, 4, -3, -18, -17, 0, -12, 10, -1, 6, 0, 2, 15, -20, 7, 5, -21, 11, -8, 16, -25, -23, 9, -7, -5, 8, 16, -11, 18, -20, 2, 41, 17, 7, 3, -17, -14, 14, 12, 9, 15, -4, -13, -18, -4, -23, -2, 6, 21, -22, -28, 16, 7, 0, -11, -14, 0, 20, -4, 15, 3, 11, -17, -3, -12, 0, 8, 5, -2, -2, -23, 29, 8, 7, -19, -6, -9, -17, -19, -22, -5, 10, -19, 13, 13, -4, -18, 16, -23, 7, -13, 10, 23, -12, 0, -5, -3, 24, -3, -9, 8, 12, 15, 26, 7, -1, -12, -3, 17, -17, -10, -18, 3, 24, 11, -9, 8, -2, -12, -14, -9, 6, 1, 3, 13, 17, 6, -25, -18, 3, -19, 18, -4, -16, 7, -10, -6, 1, -2, -15, 16, 5, -4, 23, 19, 19, 1, 10, -8, 11, -19, 26, -4, -4, 12, 1, 7, -13, 7, 5, 9, 2, -26, -7, 2, 1, 11, 9, -16, -21, 4, -6, 10, -2, 7, -34, -28, -12, 2, -11, -23, -11, -30, 17, 14, -23, 13, -16, 16, 12, 11, 3, -19, 3, -7, -21, -12, -18, -16, 11, 14, -14, 10, -10, -5, -4, -12, 8, 12, -9, 2, -2, -9, -17, -8, 16, -12, 1, -5, -10, 5, -9, -22, -18, -13, -3, -4, 12, -6, -18, -17, -30, -9, 14, 4, -13, -11, 17, 17, -22, -20, 2, -22, -17, 33, 15, -3, 7, 11, 22, 7, 8, -4, 20, -1, -4, -23, 31, -13, 13, -5, 9, 21, 11, 17, 15, 7, 0, 20, 2, 1, -15, -10, 7, -19, 13, 5, -1, 3, 33, -1, 19, 13, -9, -8, -12, -13, 18, 14, 20, -4, -23, 20, 10, 6, 0, 4, 24, -4, -14, 7, 17, 19, 32, 2, 27, 21, 0, -11, -12, 20, -13, -3, 15, -18, -19, 9, -4, -6, 41, -21, 8, 11, 18, -5, 5, 21, 0, 0, 5, 2, -12, 1, -22, -4, 13, 0, -8, -20, 0, 5, -14, 3, 15, 14, 27, -6, 10, -2, -12, -5, 12, -20, 13, 8, 16, 17, 1, -17, -15, -5, 13, 7, -18, 6, 9, 8, 2, -2, 10, 9, 8, 12, -9, -10, -26, -16, -9, 7, 1, 26, 12, -8, -13, -25, 4, 13, 6, 12, -2, 16, -22, 3, 23, -25, -14, -5, 7, 1, -3, 1, 19, 8, 1, 22, 15, 17, 17, -5, -13, 2, 2, 10, -2, -3, 52, -23, -17, -15, -7, 17, 12, -23, 24, -17, -3, -2, -21, 19, -9, -6, 9, -22, -8, -18, -23, -17, -20, -16, 1, -15, 30, 8, -10, -6, -17, -8, 0, 8, -2, -15, -16, 12, -18, -33, 12, -24, -18, -16, -4, 15, -11, -4, 15, 8, 21, 18, -20, -4, -23, 7, -20, -1, 20, 25, 18, -11, 2, 3, 4, -13, -16, 3, -5, -26, 2, 8, -20, 4, 15, -8, 10, -27, -18, 11, -10, -1, 1, 19, -23, 12, 4, 11, 6, 8, 23, 3, 12, 10, -3, 5, 5, -11, 29, 18, 12, -24, 8, 6, 26, -5, 2, 2, 2, -21, -5, -19, 13, 12, 10, 10, 9, -22, 16, 2, -2, 7, 14, -1, 14, 15, -15, 17, 17, 24, 28, 5, 16, -14, 7, -23, 6, 23, 23, 6, 19, 26, -5, 15, 18, -3, 3, -2, 13, 3, -13, -14, 3, -24, -20, -16, -10, -18, 15, -16, -7, -22, 2, 30, 3, 7, 16, -27, 51, 25, -4, -6, -25, -21, 21, -17, 10, -10, 28, 32, -23, 22, 3, -2, 20, -8, 17, 25, -23, -14, 2, 1, 16, 24, 15, 16, 19, 5, -7, 2, 0, 35, -3, -3, -2, -11, -6, -19, -38, -26, 3, 6, -18, -8, -4, 13, 10, -5, 8, -15, -21, 13, -5, 21, 7, 3, 12, 0, -5, 1, 14, 11, -7, -2, -17, -21, -15, 14, 18, -4, -42, 12, 21, 5, -13, 10, 4, -4, 13, -28, -1, 17, -23, 7, 6, -18, 22, 2, -10, -15, 16, 6, 14, -16, 16, -17, 25, -9, 17, 7, 21, -15, 12, 1, -20, 8, -2, 4, 2, 24, 4, -21, -2, 30, 2, -7, 17, -11, 2, 17, 13, -8, -10, -3, -8, -21, -29, 0, 20, 2, -4, 14, -3, -21, 14, -8, 11, -1, -1, 1, 16, 21, -36, 19, 7, -8, -8, -29, -1, 1, -8, 5, 10, 36, 13, 5, 14, -13, -1, 2, -15, -25, -22, -7, 11, -9, 18, 4, -37, 6, -16, -20, 20, -12, 0, -8, -15, -2, -2, -23, -7, -17, 9, 7, 18, 17, -17, -1, -10, 1, -17, 3, 12, -11, -19, 0, 8, -11, 13, 7, 11, -21, -22, 5, 5, -5, 24, -19, -11, 9, 9, -27, 6, 9, -21, -7, -2, 24, 5, -24, 11, -20, -7, 18, -20, -16, -11, 14, -2, -6, -5, 8, 20, 16, -16, 4, -21, 8, 26, 6, -18, -12, 0, 15, 6, -1, 52, -1, 21, -14, -17, -2, -24, -18, -11, -7, 6, 27, -7, 18, 7, 24, 29, 14, 38, -8, 10, 17, 12, -15, 16, -13, 28, -27, 5, 7, -14, 12, -12, -12, 10, -14, 8, 19, 2, 5, 12, -18, 4, 11, -21, -13, 1, 23, 1, -27, 4, -6, -1, -18, 4, 0, 7, -20, 16, 9, -17, -1, 23, -8, -12, -4, 25, -6, 1, 16, -20, 8, -22, 22, 25, -11, 2, 19, -2, -19, -13, -20, -10, 1, 17, 16, 6, 19, -24, 14, 35, -2, -12, 0, 8, 15, 1, -21, -8, -12, -19, 8, 14, 12, -7, -14, 0, 15, 6, -19, -10, 17, -10, 1, -1, -13, -21, -4, 1, -12, -6, 6, -24, -13, 17, -7, -5, -18, 5, -22, 8, -23, -17, 11, -5, -21, -7, 10, 4, -1, 8, -1, -5, 7, 19, -19, 23, 15, 16, -29, 3, -10, -25, 15, 27, 11, -2, 2, 17, -24, 11, -13, -2, 15, 1, 16, 6, -27, 28, -1, -37, -14, 8, -20, 10, 8, -41, 33, 12, 12, -10, 14, 15, 2, 1, -1, 22, -8, 1, -19, -15, -16, 20, -23, -2, -4, 16, 5, -11, 13, -3, -18, 3, -18, -9, 8, -18, 2, -32, 17, 46, -5, -7, -22, -11, 9, -24, -5, -5, -18, -12, 0, 15, 20, -24, -4, 15, -2, 18, -17, 5, -18, -11, -2, -22, -1, -13, -2, 3, -11, -19, -30, 10, 13, 8, 12, -17, -10, 28, -16, 25, -5, -6, -7, 5, -7, -12, 7, 3, -15, 4, -41, -18, 31, -43, 6, 17, 6, -7, 27, -16, -6, 8, 4, 8, -11, -19, -7, 3, 24, 28, -15, 23, -1, 23, 3, -12, 24, 17, 0, 17, 7, 20, 18, -18, 2, 7, -18, 1, 15, 14, -25, -21, -37, -31, -6, -49, 2, -15, -9, 24, -2, -10, -23, 3, -11, -16, 19, -14, 41, 10, 11, 27, -21, 5, -24, 0, 19, 7, 12, 8, -21, -7, -29, 7, -8, 21, 8, 1, -18, 0, 9, 7, -4, -24, 5, 5, 12, 11, 6, -4, 0, -23, 7, 4, -24, -10, -15, -20, 9, 6, -15, -17, 7, -20, -35, -5, -13, -6, 5, 5, -3, 13, -5, 4, 6, 7, -10, -16, 15, -20, -17, 15, -9, 23, -21, 22, -11, -10, 15, 19, 7, 38, 11, -23, -6, -22, -23, 1, -10, 34, -4, -5, -11, -17, -13, -19, -9, 32, 11, 14, -20, 13, 14, -21, 1, 13, 1, 29, -36, 15, -13, -21, -5, -16, 5, 40, 12, -1, 14, -2, 20, 27, 17, -13, 22, -11, -7, -8, -3, -4, -15, 11, -18, 13, 1, 0, -4, 12, 9, -25, 8, 5, 6, 3, -2, 21, -15, -6, 33, -1, 6, 12, 16, 6, 19, 5, 6, 18, 13, 2, 12, 40, 3, 20, 16, 7, 16, 5, -5, 7, -7, 35, -21, -4, 8, -14, -18, -8, 2, 42, -13, -19, 19, -6, -15, -10, -11, 23, -5, 11, 11, 14, -11, 2, 4, 5, 9, 16, -19, -23, -5, 25, -4, 36, -35, 17, -17, 9, -16, 20, -18, -14, 2, -15, 0, 4, -11, 14, 13, 15, 7, -5, -10, 9, 18, -3, 12, -1, -12, 6, 3, 19, -15, 26, -13, 1, -18, -2, 8, -15, 9, -4, 16, 8, -1, 14, 4, 6, -3, 5, 7, 5, -32, -20, 6, 14, 13, -9, -17, -16, 26, 6, 2, 20, 10, 1, -18, -17, 19, 8, 0, 2, -1, -17, 11, 30, -17, -20, -7, 12, -4, -2, -9, 19, 12, 6, 10, -23, 18, 0, -3, 14, -20, -6, 21, -10, 7, 21, -57, 8, -18, -18, 16, -10, 1, 6, -8, 5, -18, -10, 12, 13, -8, 7, 7, -21, -24, 5, -8, -22, -1, -20, -3, 6, -10, -16, -19, -12, 5, -11, -8, 13, 12, 1, -9, 7, 7, -7, -11, -14, -2, 5, -4, -18, -5, 11, 25, -8, -27, -20, -12, -13, 18, -14, 1, -18, 5, -6, 10, 5, -11, 16, -33, -18, 6, -15, 10, -6, -17, -18, -26, -1, 0, 13, -6, -7, -16, -15, 40, 8, 8, 0, 7, -16, 7, 48, 7, 8, -17, -15, -12, -9, -6, 11, 14, -5, 3, -9, -4, 7, -8, 13, -7, -10, 0, 1, -6, 1, 10, 3, 1, 26, 6, 2, -23, 18, -5, -18, 16, 8, 15, -21, 6, -8, -10, 20, 16, -2, -13, 15, 12, 6, -7, -21, 22, -1, 12, -15, 12, 8, 7, 15, -11, -7, -37, 3, -12, 13, 16, -25, 25, -25, -14, -6, -17, 9, 13, 1, 31, -4, -8, -15, -20, -12, 18, 15, -17, 18, 9, -20, 11, -20, 14, 13, 3, -9, -10, 3, -7, -16, -23, 21, -10, 9, -17, -10, 1, -21, -1, 24, 13, 16, -23, 12, -14, -13, -20, -17, -9, -14, -15, 16, -11, 2, -20, 21, -18, 21, -7, 19, -11, -17, 0, -7, -1, 13, -10, 3, -17, 0, -6, 29, 17, -19, 6, 15, -1, 12, 7, -8, 27, -8, -12, 2, -5, -3, 3, 19, -11, 49, -10, -10, -8, 18, 1, -9, 3, 21, -10, 2, -20, -18, -7, -15, 4, 2, 14, -19, 13, 9, -18, -2, -12, 1, -3, 18, -14, 9, -20, 1, -13, 2, 7, -2, -15, 18, -22, 27, -3, -13, 22, 13, -12, -4, -17, -6, 11, -18, 15, 17, 2, 17, -5, -26, 6, 29, -28, 1, 16, 11, 14, 13, -3, 40, -6, -9, -18, 2, 3, -16, 19, 13, -14, 4, 6, 6, -18, -21, 11, -2, -23, -16, -22, -14, 0, -42, 53, 27, -12, 16, 7, -18, -16, -19, -14, -14, -16, -8, 3, -13, -2, -30, 35, 17, 14, -13, -6, 7, 15, 15, 27, -6, 22, -13, -16, -2, 11, 10, 4, 11, 1, 1, -3, -7, 0, 20, 7, -2, 4, 1, -16, -3, 4, -20, 9, -8, 26, 8, -5, -2, -14, 11, 13, -1, 11, 6, -6, 17, 3, -27, 22, 5, 19, 7, -13, 20, 8, -14, 13, 13, 11, 14, -18, -20, -21, -24, 48, 15, 10, 13, 4, -11, -13, 20, 27, 19, 0, -3, -1, 14, -1, 5, 1, -26, 21, 14, -4, 7, 8, 46, 34, 20, 34, 16, -1, -16, 19, 4, 20, 12, -14, -7, -11, 18, 6, -10, 28, 10, 20, -22, -13, -6, -10, 18, 14, 5, -7, -22, 3, 10, 6, 19, 13, 42, -23, -8, 14, 12, 2, -41, 42, -12, 9, 10, -4, -21, 2, -8, 10, 9, 3, -20, 5, 12, -13, 13, 22, 17, -20, 8, 10, 8, 18, 19, 10, -25, -8, 14, -5, 2, 19, 17, 23, 7, -14, 6, 16, 8, -22, 15, -4, -15, 20, 14, -18, 18, -22, 33, -1, 4, -2, 13, 15, 8, 9, 20, 6, -1, 36, 13, 18, 20, -22, 19, -38, 15, -19, 11, 0, -9, 1, 19, -4, -26, 31, 18, -16, -10, 3, -7, 28, 46, -74, 15, -9, -15, 3, -4, 2, 32, -16, -15, -22, 3, 9, -17, 2, 12, 8, 7, 2, -20, -9, 7, -13, -22, -6, 12, 12, -16, -4, 15, -15, 31, -14, -14, 0, 17, 8, -6, 15, 13, -10, -13, -4, -13, -13, 2, 22, -34, 0, -11, -13, 8, 7, -5, 33, 18, -37, -17, 0, -2, 14, 2, 12, -27, -5, -2, -9, 12, -12, 9, 15, -9, 4, 17, -20, -23, 10, 1, -18, -3, 17, -8, 8, -1, 19, 1, -24, -9, 11, 1, -11, 0, 16, 4, 8, -23, 19, -14, 16, 0, 15, 15, -14, 28, 21, -16, -12, 1, -4, -15, 5, -21, 17, -23, -14, 6, -10, 25, 7, 29, -30, 7, 1, 4, -21, 32, 43, 18, -11, 15, -7, -3, 18, 30, 7, 0, -2, 8, -4, -12, 10, 25, -14, -13, 7, -15, 4, 15, -17, -16, -14, -25, 10, 17, -13, -18, 15, 36, 3, -12, -1, -15, -4, -18, 15, -13, 1, 16, 6, 0, -19, -17, -19, -8, -14, 7, -19, 8, -4, -15, -11, 10, 5, -15, 28, -18, -6, 16, -17, -3, 2, -28, 14, -8, -20, -4, -5, -7, 14, 41, -2, -4, -9, -7, -6, 5, 3, 21, 16, -6, -7, -20, -17, 7, 27, -9, 3, 5, -9, 9, -7, 13, -16, 2, -8, -18, -3, -11, 18, 9, 13, 10, 28, -12, -4, -3, -16, -4, -2, 22, 15, 5, -10, -7, -3, 22, -4, 14, -24, -21, -8, 11, 1, -14, 27, 21, 7, -20, 4, 15, 4, 17, -5, 13, -12, -17, 10, -15, 18, 16, 11, -11, 0, -15, 5, 16, -2, 14, -3, -5, -5, 5, -2, -18, 16, -1, 0, 0, 17, 9, -5, 0, 6, -12, -1, 5, -1, 2, 12, -21, 16, 14, -11, -8, -16, -23, -15, -10, -11, 23, 5, -8, 0, -3, -1, -10, 12, -11, 29, -17, 5, 13, 5, 13, -15, 14, 16, 5, 24, -14, 16, 16, -21, 22, -10, 12, 8, 16, 18, -9, -19, -9, 21, -5, 3, -11, 7, 11, -2, -16, -32, 10, 14, -18, -22, -4, 0, 11, -11, 3, 3, 1, 3, -13, -22, -19, -8, -4, -3, -4, 17, 0, -19, -5, 17, 23, -44, -5, -22, 10, 11, 1, 18, 7, 8, 4, 2, -20, 19, 19, -16, -33, 9, 10, -7, 4, 11, -2, -12, -24, -16, 5, 4, -10, -10, 11, 47, 9, -19, -8, -22, -15, -5, 2, 15, -24, -4, 12, 7, -4, -2, -13, 23, -28, -27, 1, -16, -16, 2, -3, -14, 3, 2, -2, 13, -12, -15, -21, -1, 15, -38, -12, 8, 0, -9, 44, -17, 1, -11, 7, -8, -14, -14, -22, -23, -3, -26, -23, -14, -18, -16, 19, -8, 26, -9, -16, -6, 3, -15, -21, 18, -13, 22, -9, -1, -19, 2, -10, -11, 1, -34, 9, -21, -10, 0, 39, -26, 60, -15, 14, 1, 7, 15, -6, 11, -14, -13, -13, 1, -19, 3, -14, -8, -4, 13, -20, 13, 6, -22, 9, -12, -9, 3, 4, -2, -14, -2, -35, -29, 0, -10, 7, -11, -17, -19, 25, -14, 22, 16, 13, -16, 10, -1, 10, 23, -4, -26, -16, -21, -17, -4, -3, -5, -17, -36, 3, 16, -10, -5, -5, 21, 8, 4, 16, -3, -19, -3, 4, 14, -5, 41, -15, 16, -9, -20, -4, 13, -36, -6, -12, -8, -12, -20, 28, 4, 12, 7, -12, 13, -5, -9, 18, -17, -28, 30, 11, -14, 3, 13, 22, -20, 33, -13, 0, -9, -1, 9, 25, 6, -8, 18, -1, -4, 17, 19, 29, 8, -1, -4, 13, 17, -13, 9, 3, 13, -1, -1, -10, 10, 17, 18, 22, 5, 11, -1, 5, 1, -6, -6, 0, 8, 8, 8, -13, -1, 6, 5, -11, 3, 9, 13, 11, 9, -2, -1, -27, 22, -12, 14, -20, 9, -11, 12, -5, 1, -16, 45, 18, 1, -2, 2, -6, 25, -9, -5, -3, 11, 16, 3, 7, 0, -11, 0, 16, 6, -3, -10, -20, -12, 43, -41, -1, 13, 8, 4, 40, 11, 43, -13, 12, 8, 6, -11, 5, 10, 1, 28, -2, -1, 4, 9, 1, 3, 17, -5, 13, 3, -19, -12, 0, 16, -8, -8, -5, 9, -17, 8, 21, 21, 15, 13, -19, 7, -6, 0, 26, -5, 31, 13, -13, -12, 16, 16, 34, -38, 27, 8, -5, 9, -20, -16, -12, 3, 0, 19, -2, 8, -2, 1, -8, -7, 16, 13, 2, 17, -7, -15, 0, -43, -9, 14, 9, 7, -6, -1, -10, -17, -13, -26, -1, -23, -11, 3, -19, -19, -8, 5, 1, -4, 10, 8, -33, -6, 20, 19, -4, 14, -17, 2, 34, -29, -37, 11, -15, 18, 17, -13, -5, -21, -22, -25, 18, -18, -22, 6, 43, -2, -1, -17, -18, 10, 8, 2, 17, 12, 1, 1, -11, 1, 15, 1, 1, 26, 4, 28, 11, 10, 1, 14, -14, 13, 24, -13, -15, 7, -10, -10, -6, -5, -1, 26, -8, -14, -4, -1, -4, 10, -19, 1, 10, -12, -13, 9, 39, -25, -19, -17, 0, -10, -6, 17, -1, -11, 21, -38, -15, 9, -24, 11, 2, 1, -1, 14, 4, -22, 6, 0, 17, 22, 23, 29, 14, -2, -16, 18, 5, 17, -18, 6, 13, -3, -18, -20, -35, -35, -11, 19, 6, 9, 15, -3, -13, -9, -19, 2, -23, 7, -7, 9, -12, -4, -21, -19, 15, -19, -10, -7, 12, -43, -21, -11, 6, -5, -18, 13, 26, -10, -21, -8, 17, -10, 14, -8, 5, 14, -20, 23, -8, 1, -15, 1, 3, 7, -18, 8, -12, 7, 10, -18, -14, 10, 9, 6, -18, 0, 16, 18, -10, 8, -6, -1, 15, -4, 10, -13, -18, -3, -11, 30, -18, -18, 3, 14, -25, -7, -8, 22, 2, 14, 12, 5, -41, -20, 20, 27, -20, -13, -23, -19, -22, -14, -40, 6, 10, -9, 3, -17, -19, -13, -20, 4, 13, 9, 7, -15, 21, 1, 7, 5, 1, -10, 17, -9, 27, 3, -12, 23, -12, -10, -17, -8, -24, 7, -6, 2, -19, 7, 9, -19, 6, 9, -17, 5, -4, 19, -17, 5, 8, 6, 3, 13, 1, 13, -15, -23, -15, 13, -11, 0, -5, 1, -1, 17, -26, 3, -13, -14, -18, -7, 2, -6, 20, -21, -6, -23, -11, -10, 20, -8, 8, -10, -12, -19, -18, 16, 15, -10, 4, -15, -10, 9, -11, -16, 10, -6, 1, 21, -1, -26, 6, 8, -16, -18, -33, 8, 14, 3, 15, 14, -18, 13, -31, -17, 2, -7, 2, -20, -8, 7, 21, 11, 36, -21, -21, -7, -22, -13, -42, 21, -12, -8, 8, 0, -22, 5, -24, -2, 8, -3, 7, -5, -15, 18, 12, -6, 9, -11, -13, 0, 17, -15, 11, 11, -39, 2, 18, 11, -12, 11, -2, 12, 18, 1, -21, 9, -14, -1, 7, -15, -39, 26, -6, -1, 1, -19, 30, -13, 13, -16, -21, 6, -11, -13, -7, -13, 18, 14, -24, -22, -20, 15, -5, 14, -14, -20, -12, -18, 5, -2, 29, -11, -18, 20, 5, -19, -23, 9, -17, -9, -25, -32, -18, -20, 1, -11, -35, -18, 4, 4, 2, -13, -12, 8, -5, 3, 0, 11, -19, -21, 16, -7, -17, -3, -35, -12, 0, -4, 5, -14, 4, 9, -17, -5, -9, -13, 12, -16, 36, 5, 20, 17, 3, 3, -19, -17, 12, -17, -18, -8, 12, -18, -11, -13, -25, -15, -19, -24, -14, -11, -8, 7, -14, 9, -4, -2, -14, -1, 6, -14, -11, 14, 33, -27, -17, -13, 6, 2, 5, -18, -1, 13, 11, 7, 11, -12, -20, 18, -18, 2, 12, -7, -14, -16, -9, 13, -2, 25, 16, -14, 0, -16, 1, -32, -19, 15, -17, 13, 13, -23, 3, 13, -25, 6, 18, 5, -18, 13, -24, 6, -18, 18, -10, -13, -3, -6, 4, -30, 35, -24, 5, -7, 2, 9, 10, -11, 20, -21, -20, -14, -16, 7, -22, -5, 7, 9, 12, 4, 17, 5, -23, -44, 19, -9, 19, 9, -22, -15, 3, -51, 31, 1, 19, 15, 19, 11, 14, 5, -4, -10, 16, 1, -19, 19, 33, 3, 7, -4, -3, 10, -21, -17, 46, -64, -12, -34, 14, 1, -14, -2, 20, -9, 14, -28, 17, -12, -12, -5, 10, -27, 16, 1, 4, -4, -2, -19, -6, -26, 29, -10, -17, -9, -2, -10, 13, 17, 30, -6, -17, -8, 5, -18, -22, -16, 45, -31, 7, 7, 4, -10, 13, -14, 18, 5, -4, 6, 5, -16, 10, -17, 51, 12, 5, -4, -3, 12, 1, 3, 12, -8, -11, 18, -12, 1, 27, -14, -9, -13, -10, -23, -21, -9, 14, -17, 34, -27, 21, 3, -19, -9, -1, 2, 14, -14, -10, -5, 20, -17, -23, -18, 10, -1, 17, -6, -19, 8, 29, -24, -38, 8, 11, 14, -10, 9, 6, -21, 21, -22, -7, 12, 19, -8, -17, -12, 11, -20, 14, -9, 20, -15, 44, 9, -7, -16, -13, -23, -21, 5, -16, 14, -12, -14, 4, -12, -6, -2, 5, -4, 26, -11, 19, 17, -20, 6, 41, -21, -19, 3, 17, 5, 1, 19, 6, -17, -22, 12, 13, -20, 11, 0, -18, 5, -15, -21, -21, 7, 0, -17, 28, -19, 7, 0, 8, -24, 19, -18, -10, -10, -19, -14, -3, 17, 0, 21, 4, -27, 7, 25, -11, 17, 7, -20, -2, -13, -10, -26, -21, 11, -4, -17, 15, 33, -29, 9, 9, -22, -8, -6, 19, 7, 12, -3, -17, 15, 2, -10, 1, -2, -21, 11, 17, -16, -19, -9, -12, 3, -6, -10, 6, -18, 11, 2, 7, -26, 7, -21, 1, 2, 19, -20, -22, 3, -7, -18, -23, -11, 20, 13, 10, -23, 5, 4, -6, -13, -20, -19, 14, -33, 32, 26, -24, 19, -23, 16, 9, 0, -15, -17, 9, 8, -18, 0, -3, -2, -14, 5, 11, 6, -1, 9, -19, 23, 25, -19, 8, 9, -7, -8, 30, 35, -12, -16, -7, -1, -16, 12, -5, 6, -39, -17, -17, -17, -14, -1, 5, 4, 24, -8, 15, -21, -19, -15, 0, -24, -11, -2, -11, -18, -12, -9, 0, 17, 8, 4, -13, -4, -13, 18, -22, 5, -3, -20, 0, 2, -13, 5, 9, -8, -33, 10, -8, 11, 13, 1, 7, 1, 17, 27, -12, -21, -23, -16, -12, -5, 8, 14, -20, 2, -8, -22, -14, -14, -23, 15, -15, 3, 6, 1, -23, -9, -28, 20, 4, -18, 8, -13, -7, 4, -9, -18, 4, 7, -18, -4, 7, 4, 8, -1, 10, -16, 18, -15, 6, -30, -9, 6, 11, -5, 16, 13, 10, -1, -1, 18, 1, 14, 7, -7, -12, -3, 9, 20, 7, -13, -3, -9, -13, -26, -9, 13, 0, -5, -18, -22, -18, 17, 5, 13, 4, -20, 1, -16, 7, 24, -18, -14, -22, -19, 5, -6, 12, 20, 21, 11, 6, 18, -5, -5, -28, -20, 9, -23, 2, -23, -18, -10, -12, 18, 18, 16, 7, -4, -1, 19, 9, 11, 24, 17, -9, -6, 15, 2, 29, 5, 7, -22, 5, -8, -21, 18, 1, -27, 20, -5, 8, -7, 2, 15, -24, -2, -7, -9, 13, -21, -7, 11, -4, 7, 3, -20, -14, 19, 4, -1, -23, -23, 22, 2, -7, 8, -14, 15, 15, 23, 18, 24, -10, 6, 21, -1, -8, 25, 25, -21, 14, -11, 16, -15, 9, 25, -27, 3, -3, 8, -17, -20, -8, -26, 10, -17, 17, -2, 4, 14, -14, 1, -5, 13, 13, -5, -17, 18, -7, 32, -4, -26, 1, -3, 20, -15, -11, 10, 19, -16, 8, -13, -23, -17, 10, 7, -1, -1, 6, 11, 12, 0, 12, 8, 0, -32, 5, -15, 5, -18, -33, -2, -3, 5, 14, -16, -17, 16, -3, -12, 18, 26, -15, -2, -19, -22, -22, 6, -1, -5, 3, -2, -17, -2, 23, 2, -13, 3, 17, 3, -2, -22, -15, -2, -2, 24, 3, 11, 18, 10, -1, -5, -32, 15, -12, 20, -21, -11, 0, -29, 8, -15, 5, -18, 4, 15, 6, 23, 8, 12, 15, 9, -20, -5, -12, -10, 3, -10, -17, -2, -3, 9, 17, 5, 9, 12, 4, -4, 15, -5, 34, -2, -5, -28, 7, -14, 11, 9, -40, 23, 18, 6, 10, 5, -7, -6, 4, -22, -6, 6, 21, 0, -16, -14, 17, -7, 3, 2, 10, 1, 13, -3, -41, 28, 13, 4, -2, 17, -20, -3, -23, 24, 3, 3, 10, 19, -15, 13, -20, 24, 18, -2, 0, -3, -9, 3, 3, 5, -1, -19, -14, 6, 11, 0, 5, -15, -21, -23, 18, 0, -10, -4, 15, -16, -8, -18, -8, -17, -1, -20, -14, 8, 3, -11, 6, 6, -12, -2, -13, 14, 11, 20, -3, -8, -19, 15, -19, 25, 19, 23, -21, -20, 7, -19, 17, -10, 13, -3, 10, 15, -17, -9, 19, -24, 19, -2, -9, 2, 0, -4, -25, 19, -18, 15, 17, -19, -18, -17, -26, -11, -7, -20, -12, 8, -4, -12, -7, 1, 14, -21, -6, -6, 21, 9, 2, 7, 10, -1, 6, -2, 8, 12, -33, 29, 0, -7, -13, 0, 5, -6, -19, 12, 16, -2, -12, 14, -2, 18, 12, -6, -3, -16, -8, -5, 17, -5, -7, -10, 15, -16, -8, -17, 14, -13, 5, -2, 20, -2, 16, -7, 10, 4, 13, 3, 8, -11, -22, 8, 4, 18, -1, 13, -7, 15, 11, -16, -8, 0, -9, 25, -8, -9, 10, 17, -2, 14, -26, 13, -8, 18, 14, 15, -17, -13, -25, -6, 13, 19, -13, 28, 23, -11, 9, 7, -6, 24, -8, -17, -2, -18, 6, -4, -16, -4, -1, -4, -42, 7, 17, -1, 16, 11, 15, -35, 25, -13, 20, -6, 19, 13, 4, 1, -3, 10, -22, 0, -4, 6, -14, -16, 9, -9, -3, 3, -18, 14, 7, 33, -2, -23, -27, 12, -9, 14, -18, 11, -13, -17, 8, -11, -7, -14, -1, 13, -15, 12, -13, -17, -14, -9, 10, -8, 11, -1, -22, 6, -22, 24, -13, 3, 12, -27, -3, -5, -3, 5, 13, -23, 30, -17, -21, 6, -12, 22, 7, -43, 4, -8, 8, -6, 15, 0, -3, -14, 13, -24, -5, 17, -3, 0, -39, 10, -3, -26, -1, 14, -5, -16, 18, 20, -16, -7, -16, -16, -25, 19, -7, 2, 20, 9, -5, 14, 17, 5, -10, -4, -2, -7, -3, -15, -8, -13, -33, 18, 9, 3, -19, 6, 14, 14, -22, 8, 18, -4, -20, 10, -9, 2, 11, -8, -26, -16, 16, 4, -6, -15, 13, -17, 9, -23, -10, -17, -25, -12, 2, -1, -15, -12, 7, -8, 13, -6, -3, -10, -4, -14, -6, 11, -15, -33, -11, -35, -10, 11, -22, -1, -14, 2, -18, 4, -10, 6, -7, 14, 6, 17, -11, 2, -1, -11, -19, 18, 3, 29, 10, 10, -3, -2, -21, -3, 9, 2, 7, -22, 7, 18, 13, -21, -23, 9, 15, -14, 7, -9, 14, -38, -3, -42, -20, 2, 17, -28, -13, -10, -26, -7, 2, -5, 2, 11, -21, 23, 12, 2, -29, 22, -2, 8, -20, -6, -26, 1, -16, 15, 16, 6, -14, 13, 11, -6, -13, -9, 26, 5, -15, 5, 10, 6, -5, -4, 5, -18, -15, -5, 15, -22, 7, -20, -2, 24, -11, 7, -22, -17, -14, 15, -18, -20, 10, -8, -13, 9, -27, -1, -25, -13, -20, 15, -21, -18, 19, -17, -26, -9, -9, 24, 5, 22, 42, 14, -7, 4, -21, -41, -4, 14, -13, 20, -10, -27, 6, 25, -17, 10, -5, -5, 2, 37, 7, -12, 14, -24, -2, -8, 9, -6, 1, 0, -9, 1, -20, -6, -3, -4, 11, 7, 18, 27, 9, -11, 7, 6, 14, 22, -12, 6, -78, 23, 9, -17, 1, 7, -21, 17, 5, 2, -8, 7, -12, -3, 18, 5, 0, 7, -28, 16, -9, 19, -2, -26, -25, 14, -15, 2, -23, -13, -5, -22, 13, -5, 18, 4, 17, -16, 8, 15, 7, 17, 2, 8, 13, -7, 0, -3, 4, 23, 3, 8, -15, -6, 2, -11, 9, 15, 1, 22, 4, 14, -9, -1, 6, 33, 4, -17, -10, -2, -1, 4, 21, 3, 21, 3, 15, 3, -4, 5, -14, -14, -7, -3, 10, 15, -20, 6, 42, -15, -6, 6, -11, -7, -14, -7, 11, 17, -7, 15, 14, 4, 11, 18, -16, -2, 27, -17, -19, -14, -15, -17, -6, 7, 18, -11, -6, -7, -16, 4, 0, 9, 14, 19, 1, 4, -12, 10, 7, -16, -5, 1, 9, 20, 9, -14, -16, 5, -20, -17, -5, -13, 9, -5, 48, -9, 9, -10, -7, -48, 15, 16, 3, 6, -33, 17, -22, 7, 9, -15, -17, 5, -19, 9, -4, -15, 8, -14, -20, -7, 32, 8, -9, -18, 4, -34, 3, -16, -11, -8, -3, 11, -2, 7, -24, 14, 1, -6, 8, 28, -4, -16, -47, 15, -13, -7, -4, 55, 15, 1, -16, -15, 19, 5, -13, 5, 12, 16, -23, 13, -18, 38, -11, 0, 15, 0, -7, -5, 5, -30, -3, 5, -17, 31, 9, -3, -9, 26, -8, -7, -15, 16, 2, -26, 4, -2, -14, 12, -15, -9, -17, 40, 12, 2, -17, 18, 19, 18, -13, 5, 35, -1, -12, -24, -9, -14, 12, -6, 5, -6, 16, 1, 14, -6, 4, 13, 1, -5, -15, 30, -21, -19, -28, 24, -8, 10, -6, 53, 16, -10, 26, -32, -8, -21, 4, 24, -6, 4, -8, 18, 8, 7, 3, 17, 11, 9, 34, -26, -4, -10, 2, 11, -3, 26, 14, 6, -5, -7, 16, 0, -4, 32, -1, 1, -10, -21, 9, 8, 9, 28, -5, 12, -7, -15, 1, 7, -11, 8, 27, 14, 19, 8, 16, -18, -7, -15, -3, -3, -7, -24, -14, 20, -8, 9, -11, 3, -3, 34, -21, -11, 9, -14, 20, -8, 35, -10, 19, -4, -9, 17, 29, -15, 8, 7, -18, 11, 13, -11, 9, -23, 8, 9, -19, 19, 6, -20, -14, 12, 5, -13, 12, -6, 10, 8, 19, 9, -19, 10, 8, 9, 8, 16, 2, -2, 3, -13, 5, -8, 1, 8, -4, -46, 21, 33, 2, 5, 14, -26, -26, 14, 11, 11, -4, -1, 6, 16, 4, -6, -19, 14, -10, -7, 2, -61, 10, 4, 4, 7, 5, -10, -12, -12, -18, 17, 8, 11, 0, -5, 12, -3, 2, -53, -46, 17, -20, 20, -8, 9, 21, 8, 26, -29, 22, 10, -9, 5, -3, 33, 3, -3, 9, -13, 12, -30, 3, 2, 1, 11, 13, -6, -23, -2, 6, -11, 13, 2, -17, -14, 2, -35, -6, -2, 7, 26, -16, 14, -1, 18, -11, 10, -10, 14, -4, -27, 14, 12, 25, -17, -15, 16, 12, -28, -13, -4, -18, -10, 4, -9, -18, 4, 4, 4, 12, -14, -56, 19, 1, -22, 11, 1, -6, 3, -10, -18, 8, -4, -1, 0, -31, -1, -10, 0, -24, -8, -24, -8, 20, -27, -12, 10, -2, 26, 5, 7, 0, -19, -3, -19, -20, 27, -13, 6, 48, -50, 15, 0, 0, -14, 1, -11, 24, -9, -14, -4, -23, -23, 3, -21, -1, 28, 13, 29, -12, -30, 2, -20, 26, 7, 5, 1, -17, 10, -20, 16, -1, 27, 12, 13, -16, 4, 12, -12, 0, -14, -1, 15, -18, -13, -2, -12, 14, -34, -10, 5, -13, 37, 12, 27, -11, 6, -7, -7, -13, -7, -19, 2, 4, 21, 8, -32, 9, 7, 3, -26, 9, -26, 1, -21, -18, 15, -7, -7, -35, 1, 2, -32, -15, 40, -21, -5, -16, 6, 27, -14, -5, -4, -1, 0, -19, -26, 22, -2, -6, 7, 0, 16, -13, -30, 5, 13, -24, 24, -19, 6, 18, -34, 7, -16, 15, -9, -15, -25, 33, -4, -13, 9, -14, 12, 6, 14, 7, -16, 6, -21, -12, 19, -6, 19, 3, 15, -1, 11, 5, -19, -14, -13, -11, -20, 8, -53, 20, 3, 14, 9, 15, -15, -22, 16, 15, -2, -14, 0, -12, 18, 31, 8, 10, 8, 7, 3, -37, 30, 8, -14, -28, -46, 8, -16, -4, -20, -17, 13, 1, 15, -22, 6, 17, 4, 1, 2, -3, -4, -15, -12, 63, -27, -6, 12, 0, 12, 0, 17, 28, -28, -3, 7, -18, -13, 12, -12, -13, -17, -22, -5, -15, 22, -13, 27, 43, -23, 5, 12, -3, -9, -5, 3, 10, 12, 12, -15, 14, 11, 2, -8, -5, -7, 3, -6, -17, 11, -5, 16, 1, -8, 11, -1, -3, 11, 4, -23, -40, 8, -3, -6, -24, -2, -6, 10, 6, -20, -22, 40, -1, 2, -8, -49, -10, 37, 7, 28, 12, -3, -6, -18, -29, -3, -25, -9, 4, 33, -25, 9, 0, -3, -1, 17, -8, 1, -4, 24, 0, 18, -21, 19, -13, -18, 4, -26, -8, -2, 10, 7, 16, -29, -1, -24, 4, -8, -16, 13, 1, -4, -16, -48, 30, -16, -15, -16, -12, 10, -21, -5, -21, 5, -5, 9, -20, -45, -2, -42, -17, 9, -15, 8, -23, 17, 1, -28, -18, -24, -14, 18, 14, -6, -18, 4, -16, -9, 11, -4, -2, -15, 12, -3, 2, 7, 45, 1, -8, -4, -15, -10, -12, 3, -1, 12, -4, 16, 11, -4, 9, -11, -14, 10, 12, -1, -24, 26, 0, 17, -7, -13, 16, 11, -8, 5, -22, -1, 2, 36, -23, -44, 9, -33, 21, 6, -13, -2, 20, -3, 13, 19, -3, -12, -4, -6, -11, 37, -19, -18, 25, -9, 0, -8, 11, 15, -3, -38, -3, 28, -5, 7, 2, 2, -22, -22, 18, -27, 19, 0, -14, -1, 6, 21, 47, -12, 2, 23, 4, 7, 8, -6, 8, 0, -18, 17, -21, -16, -17, -12, 28, 13, -14, 7, 16, -28, -10, 17, 60, -11, 14, -19, -21, 22, 0, 25, -5, -22, 17, 16, -20, -7, -1, -9, -2, 9, -2, 27, -14, 0, -19, -23, 34, 16, -6, 24, -5, 18, -16, -20, 6, -35, -4, 24, -6, 17, -22, 7, -15, 24, -21, 3, -18, -3, -9, 7, -4, -14, 23, -22, 1, -5, -11, 55, 19, -9, 12, -15, -3, 37, 4, 18, -9, -4, 3, -9, 19, -17, 9, 32, 9, 5, 30, -4, -6, 12, 5, -28, 36, -11, 15, 1, -9, -17, 0, 33, -17, 6, 27, -15, -17, -12, 14, -5, -1, -19, 39, -5, -17, 14, 4, 0, 19, 21, 28, -15, 4, 27, -1, 6, -12, 8, 22, 12, -22, -26, 6, -19, -26, -9, -16, 5, -20, 28, 15, -32, 28, 5, 35, -21, -7, 12, -19, -26, 38, -9, 30, -32, -16, -5, -4, 24, 4, -18, -10, -21, 12, -25, -19, 33, -22, -6, 35, -1, 16, 24, -18, 23, -6, -8, -1, -43, -22, 9, -27, 13, 3, -39, 0, 15, -8, -12, 14, 1, 0, -37, 18, -15, -5, -2, -9, -3, -14, 7, 0, 7, -9, 12, 2, 16, -1, 4, 19, 11, 13, -25, -6, 13, -30, -7, -31, 22, -25, -14, -8, -23, 11, -15, -33, -37, -8, 11, -7, 17, -5, 2, -2, -10, -5, 7, 10, -3, 12, 15, 6, 20, -23, -12, -13, -16, 12, -3, -3, -7, -1, 1, -5, -14, 5, -16, 37, 4, -22, 29, -19, 2, 20, 19, 18, 13, -21, -14, 9, 12, -26, -17, -21, 10, 5, 9, 0, 10, 19, -19, -10, 17, -16, -18, 17, 6, 1, -21, -4, 0, 8, 19, -1, -30, 6, -21, -43, -23, 13, 10, -23, 31, 11, -3, 36, 23, 16, 10, 15, 4, -4, 7, 9, -11, -22, -21, 10, -8, -22, 9, 9, 7, 19, -4, 17, 22, -20, 3, -20, 7, 13, -16, -15, 5, -15, -30, -12, 15, -8, 49, -1, 2, -11, -29, 24, 1, -4, -28, -1, 8, 2, -13, 5, 30, 4, 1, 14, -26, 28, 4, -3, 16, 8, -4, 12, 2, 15, 23, -2, -17, -15, -7, 2, 22, -1, -7, 14, 14, -10, 1, -10, 19, -15, 20, 2, 10, 12, -32, -7, 7, 4, 16, -33, -58, -15, 16, 6, 40, -23, 17, -10, -35, -23, -23, 6, 15, -1, -18, -11, 18, 4, -37, 8, -2, 6, -6, -8, -38, -5, -2, 9, 17, -4, -19, -32, 0, -10, 1, 6, -38, 11, 11, -37, -10, -5, 1, -7, 10, -31, -29, 8, -20, 10, -4, -6, 5, -8, 12, -5, -23, -14, -6, -21, -5, 13, -30, 5, 0, 2, -10, -11, 10, 8, -2, 22, 19, -8, -4, -17, -2, 1, 17, -3, -8, -23, 6, 15, 2, 8, 1, -16, -23, -2, -19, 2, -3, 2, -20, -22, 8, 17, -21, -13, -10, 4, -29, -27, -25, 12, -3, -22, -5, 8, -7, 11, -39, 14, -21, 6, 40, 23, -7, 8, 7, -14, -21, -14, 13, -19, 10, 11, 18, -7, 21, -1, 5, -38, 23, -9, -6, -14, -5, 17, -20, 26, 10, 22, -29, -10, 11, -8, 9, -3, 25, -24, 3, 4, -17, -13, 8, -9, 15, -7, -8, 19, 4, -21, 5, 9, 16, 18, 5, -21, -3, 5, -25, -19, 6, -8, 17, -19, -8, 0, -17, 24, -35, 6, 25, 3, 32, 0, 3, -1, -5, 3, 27, -8, -3, -12, 4, 13, 7, 29, 13, 12, -16, -4, 10, 9, 15, 19, 5, 7, -49, -22, 18, 34, 14, 1, -24, 3, -8, 1, 5, -1, -1, -7, -15, -3, 6, -9, 11, -8, 3, -6, 6, -20, -17, 0, -10, 7, 1, 10, -23, 0, -22, -4, 19, -29, -2, 7, -4, 13, -6, -17, -4, 1, -38, -20, -3, 2, 27, -14, -8, 22, -7, -27, 5, 12, -6, 3, -19, -9, -2, 6, -16, -21, -7, 9, 21, 4, 11, 10, 10, -3, -26, -18, -3, -13, 4, -3, 13, 9, -18, -28, -16, 12, 13, -32, 14, -3, 21, 17, -10, 13, 21, 21, 7, -5, -17, 0, -14, 5, -10, 17, -13, -3, 29, -18, 22, 7, 1, -25, -2, 0, -12, -21, -20, -11, 15, 1, -1, 0, 7, 0, -1, -11, -3, -3, 6, -7, -31, 4, -23, -24, -12, -21, -11, 13, 7, 14, 15, -17, 4, 5, 20, -10, 12, 8, 14, 15, 31, 14, 11, 20, 0, -9, -35, 32, 11, -14, -21, -28, -18, 13, -5, 11, 3, -4, -18, 10, 3, 11, 11, 0, -5, 18, -23, -8, -6, -17, 10, 17, -22, 7, 20, -9, -25, -10, -13, -11, 14, 28, -22, 8, -19, 17, 7, -13, 3, -11, -18, -5, 10, -21, -7, 6, -22, 6, -2, -15, -37, -20, 5, -7, 32, 26, 15, -13, -16, -16, -38, 6, -31, 32, 23, -12, -13, -12, -33, 23, 23, 32, 29, -15, -4, 6, -34, 36, -4, 23, 20, -2, -10, -9, 0, 1, 11, 36, -14, -10, -12, 10, 3, 17, 26, -21, 10, -7, -12, -11, -22, -3, 13, 26, -20, -5, -13, -9, 2, 34, -27, 0, 4, 14, 17, -6, 23, -17, 5, -25, 28, -5, -1, 12, 16, 4, 22, 17, 2, -4, 2, 18, -27, 14, 19, 23, 13, 20, 18, -20, -31, -6, 21, 2, 18, -6, -10, -15, -3, 19, -25, -21, 31, -16, -30, -3, -7, -9, 9, -21, 31, -17, -21, -15, 6, 17, 5, 29, -11, 5, -6, -14, -5, 22, -43, 13, 19, -16, -2, -5, -2, 13, 2, 23, 17, 7, 12, 21, 9, -14, -13, -8, -11, -13, 15, -12, 19, 30, -20, -34, -57, -17, -8, -4, 43, 11, 10, 19, 20, -17, 9, 3, 6, -27, -39, -17, 7, -18, 14, -12, 17, -20, 42, -27, -29, 8, -38, -19, -15, -11, -21, 12, -11, -2, 27, 1, -19, -37, -27, -21, 19, -20, 35, 9, -31, -7, -10, -1, -39, -19, 5, -9, -4, 38, -1, 23, -20, -5, -7, -15, -9, 1, 39, -5, -17, 23, -3, -8, 6, -22, -11, -21, 20, 7, -14, 16, -2, 42, 5, -13, 1, 6, 3, 19, -15, -10, -28, -9, -8, 7, 27, -14, 15, -20, -22, -6, 1, 2, 34, 9, -32, 10, -16, 10, 30, -4, 23, -19, -14, -13, 13, -14, 7, -1, -3, 2, -7, -19, -21, 11, -13, -15, 33, 19, -9, 15, -1, 12, -8, -14, 11, 11, 30, 8, -3, 18, -12, 10, -24, -5, -4, -6, 20, -6, 0, 9, -8, -2, -15, 6, 6, 3, -32, 17, -12, 16, -16, -14, -22, -17, -38, 19, 11, 18, -6, -19, -15, -19, -24, 16, 27, -13, 21, 8, 5, -25, 10, -5, 6, 17, -6, -22, -53, -18, -5, -16, 16, -10, 1, -6, -12, -20, -16, -4, -9, -1, 2, -1, -16, -11, 28, -5, 1, -2, -8, -8, -33, -15, 9, 8, 6, 11, -9, 0, 8, 0, -1, -3, -14, -5, 9, 18, -12, -10, 18, -6, -1, 8, 16, 7, -12, -32, -19, -20, -1, 1, 0, 16, -37, 4, 29, -18, 23, 4, -19, 8, -57, -10, 22, 17, 4, 11, 22, -30, -27, -24, -12, 13, -17, 2, 3, -11, 10, 12, 9, 18, -1, 2, 10, -33, -34, 13, -7, 8, -19, 2, 15, 13, -4, 10, 3, -12, 3, -2, -12, 10, -33, 9, -5, -15, -9, -2, 6, 0, -38, -9, -47, -10, -5, 17, -14, 10, 20, -38, -7, -15, -11, 17, 4, 6, -28, 7, 27, -6, 24, -16, 24, 4, 16, 16, -21, 19, -9, -18, 25, 0, 10, -18, -6, -16, 18, 7, -11, 12, -17, -19, -4, 16, 8, 19, -9, 3, -31, -22, 1, -12, -5, -11, -6, -5, 36, 14, -57, -22, -13, 14, -23, -20, -37, 14, -2, 11, 24, 11, 14, -1, -17, 17, -17, 0, -18, -15, -3, -7, -16, 4, -36, -19, 9, -14, 19, -14, 24, -4, 16, 7, 7, 16, -21, -10, -47, -14, -11, 6, 1, -1, 8, 11, -29, -9, 1, -5, -14, 17, 7, -2, 4, 20, -19, -7, 29, 11, 10, 11, 10, 2, 20, -10, -6, -17, -19, -4, 4, 5, 7, -15, -9, -18, 5, -9, -30, -23, -34, -5, 37, 7, -6, -39, 1, 4, 25, 7, 19, 6, -26, 3, 11, -16, 5, -7, -11, -1, 29, -1, 11, 5, 11, 4, -11, -11, -2, -24, -38, 8, -23, 18, 3, -8, 10, 17, 13, -23, 20, -1, 16, 14, 24, -23, -19, -32, 22, -10, 3, 3, -10, 10, -29, -17, -29, 11, -13, 6, -19, 10, 2, 10, -38, -12, 37, -12, 2, -12, 11, 7, 21, 16, 17, 6, -4, 17, -42, 15, -16, 10, -8, -22, -21, 10, -2, 17, -33, 10, -23, 8, 16, 13, -14, 11, -43, 10, 26, 2, -16, -9, 17, 10, -12, 6, 9, -19, -4, 26, -32, -14, -10, -25, -18, 16, 42, -49, 35, -3, -20, 15, -1, -12, 19, -2, 4, -1, -1, -14, 16, -10, -1, -31, -10, 1, -10, -22, -16, 3, 12, 19, -39, 6, 17, 6, -11, -18, -3, 7, 7, -1, -20, 0, 18, -12, -26, -37, -5, 21, 0, 19, 2, 2, -16, 8, 1, -8, -13, 4, 18, -12, 0, 10, 8, -17, 16, 1, -8, 4, 3, -25, 6, 24, -27, 5, 21, -3, 17, 17, -27, 11, -19, 15, 22, 6, -18, 4, 31, 4, -13, -6, 21, 3, -12, -31, 21, 23, -5, -13, 10, 11, 4, -10, 12, 14, 12, 3, 22, 4, 9, 1, -25, 15, 8, 0, 15, -6, -11, -14, -4, 17, -31, 8, 5, -8, 7, -7, -8, 13, -4, -14, 14, 13, -6, -12, 19, -28, 24, -1, -2, 2, 1, -3, 12, 3, -15, 15, 22, 3, 47, 0, 16, -5, -16, 15, -26, 19, 18, 19, 10, -6, -30, -13, 22, -17, 9, 11, -33, 1, -13, 19, -5, -12, 23, -7, 28, -11, -17, -15, 10, 3, -18, -36, 16, -9, -4, 22, 3, -6, 19, 3, 2, -13, 11, 17, -17, 15, 42, -38, 36, 14, -13, -20, -1, -1, 2, 18, -30, 3, 11, -29, 6, 24, -8, 30, 1, -2, 16, 9, 15, -11, -3, -1, -8, 6, -29, 10, 1, -17, -23, -11, -8, -19, -13, -18, 11, 8, 29, -7, 28, 7, -9, 7, 7, 4, 17, 18, -8, 41, -7, 17, 22, -13, 16, 13, 3, 12, 2, 12, -9, 18, -9, -19, -12, -17, 8, 4, 10, -37, -1, 3, -3, 39, 24, -6, 19, -1, 21, -9, -10, -28, 9, 11, 5, -17, -26, 23, 10, 20, -1, 1, 3, 19, 7, 2, -4, -1, 11, 7, 17, 6, -12, 8, 4, -1, -9, 14, 19, -20, 2, 22, -10, 23, 5, 33, 19, -7, 8, 15, -8, 41, -37, -30, 0, -19, 30, -24, -2, -6, -33, -20, 5, -2, 27, -17, 1, 9, 19, 5, -9, 0, -26, -1, -12, 2, -9, 25, 19, -10, 15, 6, -11, 3, -15, -26, 8, -10, -3, -15, -7, 29, 9, -3, -14, -1, -6, -13, 6, 15, 11, -6, 0, -29, -11, -4, 8, 31, 23, -10, 10, 15, -22, 28, 23, -12, 5, 33, -23, -29, 3, 12, 17, 4, 22, -2, 19, 11, 4, -21, -34, 17, -6, -20, 39, 31, 18, -10, 0, -5, -7, -21, -8, 13, -5, -3, -5, -7, -9, 15, -13, 10, 9, 5, 4, 2, 10, 8, -6, -14, 5, 5, -6, 12, 10, 37, 13, 2, -7, 24, -23, 2, 2, 13, 27, 18, -20, -22, 6, -11, -14, 5, -1, 9, -2, 12, 23, 24, -17, 16, -9, -4, -19, -14, 12, 17, -15, -29, -15, 25, 17, -19, 15, 9, 29, 21, -9, 18, 15, -4, -26, 20, 31, -11, -8, 26, 2, -1, 3, 22, -5, 4, -13, -1, -6, 7, 0, 21, -5, -22, 12, 20, 21, -26, -9, -22, -24, -6, 0, -22, 8, 8, 0, -10, 12, -34, 25, -22, -7, -5, 22, -14, -17, -17, -31, -53, 32, 36, 39, 2, 5, 25, -4, 6, -5, -24, 4, 15, -18, -21, 6, 10, 4, 5, 0, -34, -14, -20, 13, -29, -11, 19, -6, 15, 35, 8, 27, 15, -4, -16, -1, 12, -3, -13, 14, 3, 3, -14, -3, -18, 20, -29, 2, 22, -20, -16, 42, -5, -16, 6, -41, -8, 0, 29, -6, 3, -16, 18, -2, -10, 20, 2, -1, -15, 27, -38, 22, -28, -7, -15, -27, 11, 15, -15, -21, -8, 5, 19, 13, -17, -17, -2, -12, 15, 17, 4, 11, -24, 7, 6, 12, 16, 17, -24, 0, 15, 34, 20, 12, 23, -2, -10, 8, -20, -9, -14, 5, 13, -16, 4, -2, -1, 2, -12, 12, -18, 19, -17, 27, 15, 23, 19, 1, 4, -16, -38, 12, -11, -8, -7, -19, 2, -9, -11, 6, 1, -3, -28, 21, -13, -3, -1, 12, -11, 19, 2, 23, -13, 23, 7, 51, 41, 21, 10, -13, 9, -8, 4, -2, 15, 9, 2, -20, 33, -10, -21, 16, -23, -18, 0, -10, -8, 16, -13, -10, 1, 20, -14, -9, 1, -9, -16, 21, -26, -14, 4, -12, -28, 18, 14, 15, -29, -19, -19, 24, -4, 10, 6, -19, -12, -3, -21, 6, 14, -15, -8, 5, -9, -6, 17, 11, 6, 3, -8, -11, 15, 52, -11, 18, -5, -9, -17, -31, -24, -7, -19, 25, -25, -5, -11, -19, -31, -17, -35, 21, 7, -20, -4, -10, -23, -9, -47, -14, 14, 9, -27, 14, -14, -2, 22, 5, 4, 1, -14, -7, 32, 34, -7, -37, -41, 4, -30, -5, -18, -30, 19, -7, -4, 34, 13, -17, 17, -1, -14, 19, 12, 15, -13, 21, -1, -9, 31, 18, 16, -2, -42, 6, 16, -28, 2, -29, -21, -7, 15, -41, 7, -17, 27, -5, 19, 9, 11, -15, 5, 25, 5, -17, -12, 22, -23, 7, 3, 2, -25, -29, 10, 11, -32, 16, -21, 1, -25, -9, 9, -5, -29, -30, 2, 17, -11, 34, -3, -15, -27, 8, 13, 9, 14, 10, -34, -38, -9, -23, 25, 4, 29, 7, -27, 47, -21, 28, -11, -12, 26, 13, -7, 14, -25, -11, -19, -10, 3, 1, -11, 2, -7, -2, 46, -3, -7, -5, -12, 26, -3, -2, 4, 16, 27, 16, 29, 32, 22, 19, 9, -19, -44, 2, -2, 43, -5, -1, -2, 24, -18, -1, 25, -7, 12, 11, 10, 15, 10, 20, 33, 10, 20, 32, 0, -24, -1, -10, 26, -7, -30, -16, -10, 23, -8, -16, 10, 28, 13, 31, -23, 11, -1, 9, -8, 2, 17, 44, 12, 19, 28, 13, 0, 0, 23, 15, -10, -12, -17, 24, -37, -15, 3, -36, -1, -15, -17, 9, 20, -3, 21, -12, -3, 6, 12, -9, 18, -23, 27, -3, 45, -42, 7, -1, -11, 6, -21, 3, 26, -9, 10, -16, 6, 9, 9, 21, -4, 22, 7, 11, 10, 18, 12, -71, 8, 32, -15, 39, -21, -19, 17, 10, -6, -23, 26, 6, 8, 0, 34, -7, 25, 8, -2, 1, -5, -27, 17, 9, -25, 13, 22, -11, 17, -10, 3, 1, -9, -14, 0, -2, -16, -6, -9, 23, 25, -5, -11, -10, 1, -17, -14, 16, 2, 11, 9, -12, -8, -30, 40, -31, -31, 26, -38, -12, -10, -22, 16, -5, 7, 9, 13, 29, 23, -10, 2, 3, 4, 18, 5, -18, -16, -25, 21, -10, 2, -5, 17, -16, -15, 4, 3, -2, 2, 37, -9, -27, 1, -6, -10, 10, -7, -27, 23, 20, -16, -9, 25, -11, 26, 0, -22, -21, -14, 1, -24, -37, 10, 25, -31, 2, -7, 0, 25, -8, 9, -15, 23, 1, -20, 16, -3, -35, -5, 30, -29, 3, -11, -7, 6, 17, -7, 14, -9, -1, 17, -20, -9, 4, -8, 24, -13, -8, 21, 13, 13, 2, 14, -17, 10, 17, -27, -4, -2, -18, -7, -2, 3, 2, 8, 4, -9, 3, 11, -24, 1, 6, 5, -8, 14, 26, -10, -42, 5, 15, 8, -2, 29, 36, -2, -7, 30, 0, -3, 0, -17, -2, -4, 0, 3, -4, 33, -15, 21, -25, 9, -6, -21, 7, -15, 5, 1, -13, 1, 50, -23, 21, -25, 15, 12, 17, -11, -11, 10, -9, -19, 3, -9, -31, -8, 3, 11, 0, -11, 19, 6, 7, 12, -28, -8, -8, -45, 10, 0, 0, 15, -9, 8, -12, 11, -5, -1, 21, -16, 0, -8, 17, 30, -5, -1, -25, 21, -18, -16, -2, 14, -10, 12, 20, -5, 20, -1, -10, -7, 3, -12, 11, 15, -7, -8, 7, -6, -26, -11, -32, 18, 10, -16, -15, 9, 5, -10, 15, -26, -5, 22, 18, -8, 11, -8, -2, -20, 5, -16, -11, -19, -18, -3, 8, 15, -10, 26, 15, -15, 2, 29, 10, 1, -1, -2, -18, -3, -18, -2, 19, -9, -2, -6, -23, -6, 15, 5, -42, -32, 19, -14, -22, 12, 13, 4, 17, 9, -3, 22, -11, -3, 5, 3, -11, -5, -12, 13, 4, -39, -5, 10, 4, 29, 8, -20, 20, 33, -7, -18, 15, -17, 2, -1, 4, 3, -5, 25, 16, -9, -30, -7, 20, -12, -14, 8, -17, 21, 1, -3, 9, -7, -5, 6, 25, 28, 3, -1, 6, 20, 3, -28, -4, 13, -4, -11, -13, -34, -6, 7, 5, -9, -8, -19, 15, 27, -32, 3, 9, 19, 4, 36, -15, -33, 12, 1, -6, 20, -29, 7, -10, 11, -9, 24, 7, -15, -29, 2, 12, -17, 21, 9, 7, 8, -15, 11, -41, 9, 5, -3, 3, 21, -21, 1, 9, -1, -34, -12, -7, 7, -8, -17, 22, -6, 9, 14, -11, -15, -5, -7, -10, 7, -14, -22, 9, 14, 36, -4, 6, -11, 9, -2, -39, 5, -3, -29, 1, 17, -13, -18, 22, 14, 10, 11, 2, -19, 17, 9, 26, -17, 23, 16, 1, -3, -2, -4, -17, -7, 4, 8, -14, -3, -28, -6, -15, -4, 13, -24, 5, 17, -12, -16, 30, -14, -14, -23, 35, -22, -7, 23, 1, 5, 5, -22, 24, 31, -43, 22, 19, 8, -14, -10, -11, 13, -18, -11, -15, -20, 6, 8, 24, -20, 36, -7, 13, 25, -12, 14, -11, 2, 31, 7, 5, 15, 4, -15, 14, -13, 2, 37, 17, 10, 24, 33, 2, -27, -19, -6, 10, 13, -30, 7, 33, -6, -4, 11, 37, -17, 18, 54, 14, 8, -31, -29, 4, 3, -5, 12, 8, -17, 13, -25, 1, 29, 25, -15, -3, -7, -6, 1, -3, 19, 15, 30, 37, 3, 16, -10, -15, 14, -38, -3, -22, -29, -11, 20, -20, -13, 0, -3, -33, 8, 39, -30, -18, -23, 17, -13, 16, -5, 13, 17, 22, 5, -10, 1, 25, -26, 30, 2, 10, -7, -17, 10, 23, -6, -18, -21, -12, 12, -23, 2, 31, -21, 15, 13, 10, 42, -2, -13, 3, 25, -43, -8, 20, 27, 7, 11, 27, 29, 11, 0, 23, -24, -5, -20, 8, 4, 27, -7, 34, -15, 15, 10, 6, -35, 24, -7, 9, 27, 19, -18, 0, 15, -40, -1, -1, 25, 30, -25, -4, 25, -6, 33, 4, 0, 17, 41, 1, 30, 25, 12, -7, 0, -12, 6, 1, -7, 16, 20, 5, -21, -9, -32, 12, 23, 0, 15, 4, 4, 3, -13, -14, 10, 13, -19, -11, -17, 33, -16, -14, -11, 4, 2, -27, -2, -29, -17, 34, -16, -15, -24, -12, 9, 23, -20, 20, 12, -14, -20, -19, 15, 31, -16, 4, 18, 14, 32, 4, 9, -16, 6, -12, 20, 23, 10, -3, -5, -48, 5, 15, -19, -4, -19, -1, -12, -27, -10, 6, -19, 15, 18, 42, -2, 5, -3, -4, 17, 0, 17, 10, 34, -5, -4, 18, 0, -21, -30, 11, -5, 7, 14, 20, 14, -4, 9, 15, -13, 10, 9, 6, 25, 13, -16, -16, 9, -2, 2, 3, -7, -28, -21, -5, -1, 12, 2, 20, 7, -10, -5, -15, 26, 20, -3, 5, 31, -10, 5, -17, -31, -6, 19, -2, -1, 8, 23, 16, -5, 11, 7, 2, 22, 16, 7, 13, -14, 20, -4, 10, -5, -21, 0, -25, -5, -29, -19, -18, -4, -15, 3, 0, -6, -17, -21, -36, -18, -29, -2, 6, -8, -18, 9, 30, -11, 16, 18, 11, 2, 17, 29, 10, -4, 23, 15, 17, -8, 25, 25, 7, 20, 11, -1, 6, -16, 34, 12, -12, 15, -6, -11, 1, 5, -12, 6, 4, 26, 9, 9, -24, 0, 33, -13, -18, -6, 15, -11, 1, 1, -25, 12, -3, -22, -10, -9, 15, 2, -21, 0, 17, 19, 12, 6, -26, -4, -17, -12, -14, 12, -8, 1, -23, 0, 25, 13, -8, 9, 12, -2, -28, -27, -17, 3, -11, -7, 4, 16, 2, 12, 4, -4, 7, 2, -16, 14, 13, -4, -18, -14, 0, -12, 4, 1, -20, 24, 0, -14, -6, 29, 11, -25, -10, -3, -1, 7, -5, 13, -26, -6, -15, 3, 26, -9, -18, -6, 12, 9, -8, -18, 26, -23, -19, 13, -8, -9, 21, -28, 24, 16, 10, 7, -9, -7, -6, -8, 5, 20, 4, 32, -36, 2, -12, -4, -14, 8, -34, 0, -24, 12, 2, 7, -4, 2, -4, 30, 6, -19, -3, 8, 21, 11, -9, -4, 18, 10, 6, -11, -25, -5, -5, -14, 0, 8, 33, -3, 22, 2, -22, 28, -6, -36, -1, 4, -6, -22, -27, 3, -7, 3, -5, -1, -6, -1, -1, -9, -1, 23, 10, -20, 26, -27, -42, -1, -17, -3, -37, 10, 3, -13, -37, -15, 1, -9, 14, 3, 6, 7, 2, 7, -12, -11, -10, -9, 12, -5, -4, 3, -12, -32, 11, -29, 15, 8, 30, -30, 41, -19, -18, -13, 16, 10, -24, 19, 31, -21, -30, 3, -10, 5, -13, 25, 5, 4, 3, 9, 19, 41, -54, 4, 19, -8, 11, 8, -4, -20, -4, -9, -4, -5, -17, -4, 22, 3, 11, 4, 7, -6, 9, -5, -9, -14, -3, 6, -29, 23, 20, 27, 1, 29, 6, 19, 16, -20, -7, 15, -10, -12, -32, 13, -18, 31, -12, -1, -14, -5, 18, 13, -28, -12, 7, 22, -17, -27, 24, 16, -24, 16, -6, -6, -12, 10, 9, 4, 0, -16, 14, 27, -29, 12, 7, -8, -23, 13, -24, 14, -3, 6, 9, -15, -22, -2, -7, 4, -19, 14, -27, 14, -18, -4, -1, 28, -2, 17, 5, 5, 16, -24, -27, 17, 12, 7, -12, -22, 24, -11, 16, 8, -39, 17, -14, -4, -4, -11, -1, 15, 14, -3, -22, -4, -9, -33, 27, -16, -20, 16, -2, 19, -23, -3, 2, 23, -14, 4, 12, 21, -4, 11, -4, -16, -19, 5, -4, 7, -9, -4, 10, 34, -10, -6, -41, -5, -34, 22, -7, 21, 6, -4, -11, -30, -19, -16, 21, -16, -9, 8, 0, 4, 4, 2, 0, -33, -10, -8, 8, -2, 20, 0, -15, 30, 15, -18, -35, -4, -34, -1, 9, 17, 3, -9, 0, 13, 40, 4, -8, -9, -8, 0, 18, -33, -16, 15, -6, 6, -19, 5, -56, -23, -22, 28, 16, -6, 3, 2, -20, -26, -34, -28, -18, -4, -14, -13, -6, -11, -18, -19, -26, 30, -3, -3, -19, 16, -2, 3, -2, 11, 16, 24, 6, 13, 15, 16, 19, 33, -1, -9, 17, 13, 10, 0, 18, -2, 0, -3, 1, 5, -24, 2, -19, -2, 37, 15, -32, 31, 27, -9, -10, 3, 24, 15, 27, -36, -5, 15, 14, -5, 11, 3, -16, 7, 16, 6, -9, 5, -10, -5, -16, 12, -6, 9, 9, -4, -3, -20, 12, 18, -10, -9, 0, 16, -10, 25, -34, 15, -21, -14, -14, 21, 4, -23, -46, -11, -15, -25, -17, 27, 30, -31, -37, 26, 4, -9, 2, 6, 25, -3, -4, -15, -2, -4, 25, -8, 26, 1, 6, 15, -8, 16, 11, -38, -20, 11, -4, -19, 19, 7, -12, 0, 8, 12, -9, 13, -10, 28, 13, -10, -30, 26, 26, 0, -1, -25, -2, -19, 5, -12, -1, -26, -4, -10, -29, 7, 2, -11, 4, -17, -6, -1, 9, -2, -18, -6, -24, -8, -3, -7, 3, -22, -16, -5, 23, 26, -4, 7, -25, -3, -3, -20, -2, -4, 6, -1, 15, -35, 1, 19, 9, 19, 20, -8, 8, -43, -6, 18, 8, -16, 11, 11, 38, -28, -7, 29, 32, -23, -10, 1, -12, 6, 6, -8, 24, 17, -14, -3, 17, 4, -19, 32, -3, -22, 26, -19, 0, -15, 5, -2, -11, 23, 9, -33, -37, 8, 2, -23, 16, -20, -29, -9, -9, 4, 38, -8, 13, 12, 3, 5, -2, -12, 27, 7, -17, -15, -21, 23, 13, -23, 1, 7, 20, 1, 35, -7, -1, -15, 3, -3, 9, 9, -1, -22, 14, 1, 20, -2, -5, 3, 42, -26, 47, -28, 7, 18, 32, -21, -6, 6, -24, 42, -7, -15, -30, -7, -16, -12, -12, 29, 13, -16, 12, 31, -6, 32, 4, 11, -14, -25, -17, 13, -18, -11, 12, -35, -13, 13, 24, 7, -10, 15, -4, 21, 8, -20, 20, -6, -13, 6, 19, 17, 3, 17, -33, 19, 29, 12, 12, -6, 7, -5, -12, -28, -21, -11, -24, -19, -3, 6, -10, -4, -15, -21, 4, -20, -6, -5, -10, 18, 7, -7, -7, -13, 12, 14, 0, -19, -4, -10, 21, 34, 5, 23, -7, 3, -29, -1, -19, -12, 14, -8, -9, 13, 18, 5, -19, -32, 3, 1, -22, 3, 0, 1, 6, -30, -19, 28, -41, 10, 11, 9, -18, -12, 16, -31, 2, 5, -5, 41, 17, -16, -20, 33, -29, 7, 15, -25, -8, -4, -8, 9, -4, -11, 7, -2, 14, -11, -19, -11, -7, 10, -10, -15, -24, 0, 4, -13, -31, 19, -18, 1, 8, 27, -27, -1, 10, 11, -44, 12, -6, -31, -5, -5, 1, -2, 2, -24, 5, -3, 2, 9, -4, -11, 11, -29, 19, -1, 10, 0, 10, 19, -4, -6, -3, -12, 29, 12, 22, 9, 12, -17, -33, -10, -8, 15, -17, 1, -40, -11, 4, 1, -6, 1, 24, -27, -20, 10, -14, -33, 17, -21, -23, -16, 29, -18, -2, -37, 3, 6, -6, -5, 17, 10, 20, 14, -12, -7, 22, -19, -12, 8, -7, 7, 4, -3, 9, -16, -37, -6, -14, 7, -11, -8, 18, 5, -32, -15, -16, 10, 4, -4, -27, 2, 14, 10, 9, -12, -2, -6, 13, -4, 6, -2, -12, 12, 16, -13, 8, 10, -88, -13, 9, 28, 7, 3, 1, -18, 0, 7, 8, 4, 0, 14, 10, -8, -4, -10, 14, 4, -5, -18, 2, 10, -35, 39, -15, -31, 6, 3, -38, -19, 25, 2, -13, 3, 19, -9, -30, -17, -8, 9, -28, 23, -7, -18, 30, -20, 11, -20, 3, -5, 6, 17, -18, -16, -10, 7, -16, -3, 10, 5, -26, -36, -13, -4, -20, 2, -40, -16, 0, 2, 2, 2, 23, 14, -4, 25, -4, -18, -8, -31, 15, 2, 22, -3, 15, 7, -21, -17, -6, -25, -17, -5, 4, 2, -9, 19, 13, -8, -31, 23, 32, -1, -10, 19, -3, 7, -19, -31, -20, 8, -5, 21, 3, 17, -5, 3, 38, 0, -8, -6, 11, -27, -4, -30, -5, -16, 6, 16, 4, 9, 9, 4, -8, 18, 19, -14, 2, 7, -16, 14, 21, 18, 11, 15, -13, -21, 11, -8, -8, -8, 4, -5, 3, -7, 20, 23, -5, -20, -13, 16, -21, 0, -20, -23, 19, 5, -28, 13, 6, 3, 11, 4, -3, 8, -5, -20, 23, 2, -36, 16, 10, -10, -25, 0, -15, -28, -6, -25, -3, -5, -30, 19, -17, -1, -3, 2, -14, -3, 23, -20, -17, -2, -5, 2, 4, -3, -4, -2, -11, 2, -40, -17, -16, -28, -5, 2, 31, 12, 8, -18, -5, -19, -19, 8, -26, -24, -19, -12, -15, -19, -27, -2, 21, 25, 2, 8, 26, -20, -38, -18, 3, -15, -17, -15, -21, 3, -16, -22, -16, -5, -26, -20, 11, -13, 0, -8, -15, 1, -6, -23, -4, 14, 10, 11, -2, -2, 15, -1, 11, -19, -4, -13, -1, -1, -1, -5, -25, 8, -17, 4, 8, -28, 0, 0, 23, -13, -21, -19, -35, 8, -10, 5, 5, -16, -13, -1, -24, -1, 11, -26, -10, -22, 9, 12, 16, -15, -9, -19, 0, -22, -2, -22, -3, 17, -6, -23, 36, 7, 38, 27, -5, 8, 16, -36, -18, 0, -13, -8, 15, -23, -12, -28, 27, -8, -26, 1, 6, 8, 2, -35, 11, -12, 16, 15, -6, -2, 9, -22, 11, 11, 52, 8, -10, 15, -22, 8, -4, -23, 21, 30, 6, -2, -9, 22, 10, -18, 17, 6, -3, 36, -2, 8, -21, 6, 27, 8, -11, 31, -19, 4, -15, 12, -2, -3, 1, -23, -23, -13, -18, 18, -6, 24, -19, -8, -29, -16, 8, -1, -7, -26, -10, 1, -4, -24, -6, -18, -27, 3, -5, 3, -2, -18, -8, -16, -10, 2, 5, -21, -13, -13, -23, -26, -27, 18, 14, 15, -11, -22, -8, -6, -22, -12, 2, 15, 1, -12, -5, -25, -15, 1, 14, 58, -21, -21, 17, -39, 9, -35, 11, 25, 30, -26, 11, 0, 39, -7, -13, 17, -15, 2, -20, 11, 9, 19, 13, 27, -2, -3, 7, 20, -4, 24, -15, 10, 4, -7, 19, -26, 30, 1, 9, 14, -11, -21, 2, -2, -28, 7, 23, 6, -13, -14, 3, -12, 1, 8, -7, -10, 1, 5, -15, -11, 17, -3, 10, -14, -16, -10, -12, 3, -1, 8, -21, 11, -28, -13, 4, 15, -13, 12, 5, 3, -25, -5, 30, 29, -20, 7, 7, -19, -4, -5, 8, -2, -15, 6, 11, 7, -4, -13, 9, 5, 13, 17, -26, 23, 20, 8, 9, 26, 5, -1, 10, -10, -14, 30, 11, 6, -8, 33, 20, -4, 12, 14, 32, 21, 13, 32, 2, 5, 0, 24, 43, -24, 15, 22, 16, -15, -15, 16, -14, 9, 2, 19, -9, -8, 8, 6, 3, -1, -19, 8, -14, 4, -30, 18, 9, -11, -1, -3, 26, -12, 1, -17, 24, 27, 0, -15, 7, 8, -25, 13, -15, 14, 12, 4, 18, -5, -7, -8, 15, 1, -35, 15, 3, 16, 19, 22, 6, 5, 15, 6, 7, 8, 6, -7, 6, -16, 14, -19, -17, -1, 0, 26, -10, 7, 30, 19, 15, 9, -6, 0, 13, -8, -2, 19, -15, -11, 9, 22, 20, -2, 10, 6, -8, -17, 7, -4, 29, 4, -14, 9, -9, -3, -11, 3, 19, -13, -14, -24, 12, -13, 5, -17, 18, -6, 1, 25, 4, -8, 20, 5, -2, 7, 13, -9, 5, -15, 4, 41, 3, 2, 10, 37, 6, 44, -11, -3, -28, -1, 8, -36, 0, -8, 5, 4, -30, 8, 20, 6, 7, 5, 9, 12, 14, 13, 6, -4, -35, -9, 4, -25, -15, 8, 4, 8, -13, 12, -19, 22, 11, -2, -14, 18, -2, 22, -7, -16, -4, -5, -4, -10, 21, 31, -6, -15, 1, 17, 27, -23, -10, 0, 8, -14, 15, 8, -9, 33, -21, 21, 5, 4, -7, 7, 4, -4, -12, 21, 15, -2, 6, 15, 12, 8, -25, -2, 8, 2, 15, -10, 12, -3, 6, 13, 10, -8, -3, -8, -11, 28, -1, 6, -10, 4, -8, -18, 10, -14, -19, 44, -17, 7, -3, 6, -3, -27, -13, -2, 15, 23, 3, -15, -5, 25, -27, -9, 6, 18, 31, -14, -6, 5, -22, -13, 5, 5, -11, 27, 0, -6, -12, 31, -8, 13, 16, 21, -24, -12, -22, -10, 8, 5, 21, 12, -16, -13, -5, -4, 3, 32, -3, -3, 32, 21, 3, 8, -8, 6, -5, -13, 16, 4, -19, 20, -17, 1, -8, 26, -1, -2, -16, -6, -3, -12, -2, 13, 18, -36, 14, 1, 7, -12, -32, 10, -4, -15, -21, 17, -25, 5, 9, 4, 15, -13, -12, -19, -29, 31, -54, 13, 14, 15, -8, 15, -2, 27, -33, 6, -14, 31, 9, -16, 9, 22, -11, -1, 11, 8, -5, -20, -35, -3, 5, -22, -19, -39, -9, 23, 8, 8, -2, -30, -1, 34, 4, 33, 5, -9, -13, 15, -3, -20, 20, 13, 0, -3, -5, -23, -26, -15, -21, 11, 20, -12, -39, -33, -20, -5, -20, 5, -19, 29, -34, -15, -19, 6, -17, 30, 1, -22, -19, -27, 0, 6, 10, -16, -23, -4, -23, 13, -10, 36, -11, 46, 7, -1, -21, -5, 12, 14, -5, 16, 16, 15, -9, 8, -26, -22, 26, 8, 8, -8, 2, -6, 2, -5, 8, -9, 7, -3, -15, -16, 0, 8, -21, 21, 5, -8, -13, -29, 5, -30, -8, 0, -4, 11, -44, 9, 13, -1, -26, 9, 9, -5, -11, -6, -48, -11, -11, 23, -20, 9, -6, -5, 10, 29, -19, -18, 12, 7, 10, 1, -2, -20, -9, 7, -4, -16, -1, -4, -21, -5, -6, 11, -17, -24, 4, 14, -25, -8, -15, -10, -26, 4, -14, -29, 10, -11, -15, 6, -31, -8, -5, 16, -24, 43, 11, 33, 0, -10, 21, -14, -13, -3, -5, -29, -30, 7, -7, 2, -31, -18, -2, 12, -4, 7, -15, 6, 41, -19, 11, 27, -10, -24, 7, -30, -3, -25, -23, -15, -5, -31, -17, 8, -4, 55, -11, -1, 2, 12, 61, 5, -25, -7, 22, 18, -10, 8, -2, 5, 52, -29, 0, -7, -31, -24, 10, -14, 16, -26, -31, -8, -30, -25, -35, -4, -7, -12, -8, 27, -4, 3, -15, 14, -3, 19, 4, -24, -32, -21, 2, 2, -5, -21, -27, -3, -6, -1, -1, 8, -1, -4, -18, -15, -13, -11, 29, -8, -17, 7, 15, 10, -1, -14, 18, -8, -32, 7, 15, -41, 7, 2, 6, 14, 5, -1, 22, 8, -9, 25, -26, 35, -1, -24, -4, -30, -21, 13, -33, -8, -22, -6, 9, 19, 20, -13, -31, 2, 12, -14, -7, 14, 8, -8, -41, 13, -7, -1, -28, -14, -2, 10, 10, -7, -3, 39, -11, -7, -4, -16, -4, 9, -9, -6, -11, -15, -15, 5, 40, -5, -12, 6, 9, -23, 4, 3, -19, -14, -7, -49, -26, 5, 8, -9, -29, 0, 3, 31, 0, 10, 10, -35, 29, 17, 25, 1, -24, 18, -20, -4, -20, -16, 0, 7, -4, -26, 17, 8, -8, -15, -15, 3, -11, 33, 9, -13, 5, 38, 34, 18, -6, -11, -4, 30, -38, 4, 17, 22, 16, 15, -19, 43, -6, -7, -39, -6, -5, -4, -3, -17, 9, 28, -7, 20, -6, -27, 12, 1, 7, 30, -30, 11, -9, 27, -6, 8, -4, -10, 15, 21, 28, 16, -9, 9, -1, 28, 7, -6, -19, -22, 5, -22, -8, 4, 28, 20, 18, 25, 6, 28, 11, 1, 22, 5, -29, 9, -13, 2, -22, 20, -10, 4, -15, 14, 0, -13, -2, 9, -30, 6, -7, 10, -13, -20, -34, 4, 4, -13, -8, -2, -11, 19, 0, -15, -27, 9, -17, -2, 4, 25, 0, 27, 1, -12, -3, 14, -9, -14, 1, 11, 24, -1, -1, -15, 9, -32, -42, -9, -19, 21, -2, -18, -27, -12, -39, 13, -19, 5, 20, 9, 2, 6, 9, 30, 17, -30, -12, -18, 16, -10, 6, -14, -1, -7, 3, 14, 23, 37, 17, 26, 2, 11, -3, -1, -10, -2, -17, 6, 20, 13, -3, 4, -11, -25, -10, -9, 37, 18, -1, 20, 3, -35, -11, -17, 0, -8, -9, -20, -19, -15, 10, -20, 9, 23, 3, -19, -4, 8, 13, 50, 0, -9, 9, -26, -6, -31, -2, 2, -16, 26, -21, -6, -3, 10, -12, 5, 8, 0, -19, 4, -23, -16, 7, 19, -21, -6, -16, 9, 14, 15, -17, 46, 11, -18, -25, 15, -18, -15, 17, 13, -3, -27, -11, -44, -16, -6, -25, 16, 25, 34, -1, 9, 2, -14, 20, -2, 17, 1, -18, -15, -14, 37, -11, 1, 2, 6, -20, -11, -3, 14, -10, 14, -5, -7, 8, -9, 6, 6, 13, -22, -19, 15, -3, -2, -5, 11, -2, 2, 21, 28, 4, 18, 21, -12, 21, 28, 12, -21, 7, -1, 7, 6, 13, -4, 0, -1, 9, 0, -9, 4, 16, -21, 5, 4, 11, 5, -13, 11, -13, -27, 8, 12, -13, -21, -13, -1, -1, 4, -10, 20, -6, 21, -23, -17, 18, 17, -3, 4, -4, 19, 4, -29, -9, 9, -18, 16, -16, -8, -22, 0, 2, 33, -7, -16, -5, 1, -15, 13, 5, -11, 1, 34, -24, -7, -18, -13, -9, 11, 2, 12, -4, -17, 14, -17, -2, -8, -2, 17, -6, -29, -3, 12, -13, 5, 13, -25, -5, -29, -19, 9, 8, -16, -29, 21, -20, 12, 2, -43, 8, -10, -3, 60, -4, -34, 6, 12, 8, 8, -14, 11, -8, -24, -11, 4, -11, 11, 9, -3, -21, -2, -8, 20, -36, -26, -7, 55, -16, 19, 25, 6, 7, -18, -12, -32, 10, -5, 14, 9, 11, 25, 17, 29, -21, 41, -29, 17, 22, 7, -11, 34, -22, 13, 7, 1, 0, -11, -3, 17, -19, -1, -15, 2, 9, -16, -22, 13, -1, 10, -4, -24, 5, -20, -4, 10, 15, 30, -14, -14, -2, 24, 6, -17, -12, 20, -23, -9, -20, -18, 6, 43, -14, -1, 6, 18, -11, -40, -4, -4, -19, -17, 9, -7, -2, 13, -33, 15, 21, -8, -14, -17, -10, 26, -8, 20, 5, -6, -15, 22, 24, 31, -1, -12, 11, -8, -11, -18, 15, -9, 3, 19, -3, 26, -19, 2, -7, -50, -23, 0, -3, 34, -16, -13, -11, 11, 20, -10, -22, 27, -8, -2, 13, -20, -16, -1, -15, -8, -13, -18, 1, -19, -3, 31, 8, 0, -13, 8, 7, -21, -18, 14, 6, 29, 24, 14, 19, -4, 22, -13, -12, -5, -30, 14, -14, -24, 0, -3, -24, -9, -18, -8, 7, -3, 1, -10, 8, 7, 15, 18, -6, 21, -8, 21, 6, 26, -17, -13, 23, 19, 9, 22, 2, 23, 14, 8, -20, -13, -12, -20, -23, 15, 26, -10, -11, 11, 31, -27, -27, 11, -25, 6, -7, -4, -27, 10, 5, 10, -26, 19, -1, -13, 2, 1, 2, -27, -11, -9, -26, -12, -16, 28, -19, -5, -10, -21, 36, -1, 3, 26, -27, -12, 6, -5, -5, 20, 3, 11, -1, 20, -9, -12, 28, 12, 17, 13, -14, 40, -11, -23, 8, -11, -14, -7, 0, -20, -33, 0, 1, -1, 6, 11, 4, -2, 4, 1, -1, -20, -1, 12, 2, 27, -9, 4, 20, -15, -5, -22, -28, -2, 8, -21, 10, 7, -18, 10, -21, -12, -5, -17, -13, -10, 1, 29, -4, 11, -30, -3, 0, -6, -6, 12, -12, -5, 6, 7, 17, -21, -26, -12, -14, -10, -29, 17, -3, 10, -25, -2, -21, -6, 8, -11, -5, -11, -20, -12, 1, -24, -17, -16, 2, -4, -24, 14, 3, 8, 21, 8, -9, 24, -12, -5, -24, 37, -13, 21, -21, -8, 5, 11, -1, -10, -18, 14, 17, 7, -13, 6, -1, -17, 2, 11, 2, 20, -17, -21, 20, 25, -15, -14, 18, -10, 8, -2, -24, 2, 35, -9, 2, 25, -7, -2, -16, -2, -28, 6, 9, -5, 27, 9, -3, 1, -10, 23, -7, -3, -11, -3, -12, -2, 2, 26, -13, -21, 2, -2, -9, -17, -20, -18, 2, 8, 0, -12, -7, -10, -26, 0, -5, 3, 9, 12, -15, 18, -29, 3, -7, -3, -4, -1, 2, 8, -11, -20, -26, 24, 17, -5, 3, -7, 1, 6, 9, 23, 3, 5, -24, -7, 6, -19, 4, -6, -24, 19, -6, 0, 5, 10, -10, -40, -25, -14, 9, 13, 14, 16, -2, 3, -17, -37, -1, 2, 4, -17, -8, 21, -17, 11, -13, 10, 21, -13, 20, -2, 20, 15, 4, 6, -14, 7, 12, -21, 7, -16, -11, -11, -24, -4, 8, 9, 20, 14, 0, 0, -30, 7, 21, 15, 13, 1, -19, 1, -16, -16, 8, -10, -22, 12, -18, -10, -17, -2, -10, 10, -18, 12, 12, 2, -19, 16, 13, -14, -19, -27, 4, -25, 0, -15, 17, 13, -18, 0, -23, -3, 29, 23, 11, -4, 16, -11, -7, 30, -10, 10, 16, -6, -20, 23, -22, -5, 12, 3, 12, 18, 19, 15, 4, 15, -4, -20, 25, -3, 9, -15, 10, -6, 1, 0, -35, 6, 24, 2, -2, 21, -18, -2, -11, -18, -13, -27, -18, -5, -5, 9, 25, 15, -16, 17, -8, -21, 0, -11, -20, -27, -31, 27, -24, -22, -15, -5, -14, -15, 4, 25, -22, 31, -16, 18, 2, 7, -18, 4, 2, -26, -18, 30, 6, -2, -6, -8, -2, -11, -12, -14, 2, 11, -11, -6, 17, 2, -2, -28, 7, 24, -28, 20, -24, 14, -22, -21, -6, -23, 8, -4, -12, 25, -31, -3, -11, -17, 21, -16, -15, -19, 17, -20, 5, 21, 21, 3, -5, -18, 6, 30, 19, 5, -14, -1, -25, 8, -6, 15, 8, 21, -2, 25, -11, 3, -14, -11, 16, -18, -22, -11, 2, 18, -7, 12, 19, 5, -3, 3, -2, 15, 4, 18, 18, -1, 25, 8, 13, 36, -26, 9, 22, 10, -10, -2, -6, -1, -12, 27, -20, -24, -7, 16, -17, 19, -21, -2, -13, 4, -3, 15, -21, 9, -28, -9, 31, -6, 6, -17, 13, 4, 17, -31, -3, 17, -2, 28, 21, 4, 8, 7, 11, 16, -19, -14, -19, 4, 10, 22, 36, -4, 26, -3, 7, -17, -4, -15, 12, 39, 13, 51, -28, -3, -15, 29, 39, 10, -16, 7, -3, 1, 8, 26, 19, 15, 28, 0, 6, 2, -15, -6, 26, 6, 9, -11, -3, 17, 7, 10, 7, -28, 24, 8, -7, -5, -17, -24, -8, -9, 27, -30, 27, -9, 1, 22, 22, -38, 21, 30, -4, -18, 14, 29, -4, 26, -12, 19, -27, -12, -30, -18, -1, -14, 12, -3, -17, 19, 7, -20, -14, 11, 21, -17, -12, -1, -2, 2, -6, 17, 14, -32, -8, -3, 17, 21, 19, 7, -33, -14, -16, -20, 3, -5, 10, 3, -5, -2, -28, 6, -2, 19, -19, 2, 19, 18, -3, 17, -22, -6, -6, -10, 6, 16, 5, 4, -5, -16, 19, 17, -7, 21, -11, 29, -23, -15, -13, 5, -4, -4, -8, 5, -6, -27, -7, -6, -19, 36, -1, 15, -10, -9, 4, -22, 26, -6, -10, 33, 0, -4, -3, -22, 10, 4, 8, 11, 11, -20, 10, -6, 4, -1, -13, 19, 2, 8, 11, 23, 13, 24, -13, 8, -25, -12, 4, 11, -25, 10, 15, -10, -20, 6, 5, 1, -14, 12, -12, 31, 20, -12, 7, 31, -4, 3, -6, 9, 3, -2, -6, -7, 2, -5, -8, 7, -20, 28, -25, -9, 26, 23, 6, -2, 9, -16, -20, -14, -3, -21, -2, -12, -17, -5, 18, 4, 21, -13, 9, -7, -7, 7, -3, 17, -5, 21, -25, 3, 5, 24, 17, 0, -7, -3, 1, 26, -1, 9, 1, 32, -18, 19, -23, -8, -13, 8, 10, 6, 12, -8, 14, 0, -6, -24, 3, -10, -7, 6, -7, 14, -27, -10, 14, 12, 6, 3, -22, 8, -2, 15, 16, 5, -17, -10, -18, 1, -29, 6, 0, -20, -11, 3, -17, -22, -1, -6, -7, -46, 2, -7, -13, -3, -14, -11, -5, -10, -6, 0, 17, 4, -9, -3, 19, -17, 10, -4, -4, 13, -1, 11, -12, 4, 5, 29, 21, -23, 9, -28, 38, -13, -11, -28, 30, -1, 0, 11, 1, -18, 0, 9, -11, -7, -11, -14, 27, 22, -19, -11, 8, 10, -18, -14, -8, 8, 0, 12, -3, -24, -5, -6, 14, -3, 7, 13, -6, -32, -28, -9, -14, -25, -8, 12, -4, 1, -1, -10, 12, 0, -7, 20, -13, 29, -25, 0, -15, 37, 19, 30, -28, 11, -12, -25, -20, 21, -31, 1, 26, -6, 8, -25, -2, 8, 9, -10, 3, 21, -10, 1, 18, 10, 16, -21, 8, 14, 13, 10, 13, -2, 18, 18, -34, -5, -27, -11, -6, 4, -4, 0, 16, -8, -2, -9, -13, 3, -10, 11, 9, -9, -5, 7, 6, -2, -5, -13, -18, -14, 22, 15, 1, 3, 13, -8, 1, -4, -15, -11, 13, 9, -1, -3, 7, 15, 8, 15, -8, 0, -15, 39, -1, 6, -4, 18, -1, 11, 0, 20, -13, 13, 13, 16, -18, -2, -3, 23, 14, -18, 11, -17, 2, -18, 15, -2, -11, -4, -1, 7, 11, -23, -3, -14, -5, -7, 7, -33, 10, -11, -3, -12, 9, 11, -9, -6, 9, 5, -4, -13, 13, -3, 17, -17, 8, -20, 9, 14, -32, -8, -2, 2, -20, 1, 20, 25, -2, -12, 4, -14, 0, 10, -16, -41, 10, 19, -3, -27, 7, -11, -12, -12, 12, 10, -7, -3, -9, 16, -4, 16, -16, -26, 0, 13, 13, -8, -1, -8, -22, 4, -20, 25, -25, -22, -18, 7, -14, 7, -10, 3, -35, 8, -21, -23, 9, -22, -25, 18, 10, -8, -1, 4, 29, 22, 7, 1, 7, 28, -12, -12, -24, 20, 8, -3, 6, 21, -17, 24, 5, 0, 20, -17, -14, -6, -3, -2, -25, -5, -19, 17, -12, -23, 13, -7, -13, 3, 21, -9, 15, -2, 11, -10, 4, 15, 22, -34, -30, -18, -22, 31, -16, 19, 15, 4, -14, -28, 18, -13, -17, 4, -26, 8, 9, 11, 15, 15, -13, 16, 5, -24, 6, 15, 8, 38, -2, 10, 4, 18, -21, -13, -3, -44, 17, 26, -19, -11, 6, -19, -3, 22, -1, 29, 2, 7, -16, 8, 14, 33, -1, -18, 2, -13, 20, 10, -7, -47, 16, 7, -9, -26, -31, 20, -22, -5, 8, 16, 2, 12, -33, -2, 24, -21, 15, 13, -1, -1, -30, 17, 17, 8, 16, 4, 7, -18, -30, 18, 29, 13, 17, -34, 11, 16, 18, -5, -3, 5, 10, 12, 12, 19, 6, -17, -23, 28, -12, -31, -17, 10, 4, 3, -10, 6, -7, 1, -25, -16, -26, -8, -11, -26, -19, -12, 8, 2, -40, -10, -49, 18, -25, -7, -17, -2, 8, 1, -13, -13, -9, 29, -11, -10, 9, -2, -2, 25, 12, -11, -24, -7, -2, 7, 5, 27, 11, 11, -19, -5, 32, 14, 2, 4, 1, 7, 0, 6, -45, 6, 11, -13, -9, -4, 10, 20, -16, -8, 7, -37, 10, 2, -5, -7, -2, -11, 20, 16, -21, 20, -17, -31, 33, -26, 6, 7, -21, 0, -16, -11, 10, -17, -36, -21, 1, -7, 12, 1, -10, 8, 14, 1, -11, -25, 1, -9, -10, 54, 11, 3, -11, -2, 16, 22, -1, -18, 14, -8, -3, -11, 4, -11, -27, 14, -14, 4, 9, -5, 7, 4, -19, -24, -5, -17, -10, 28, -1, -14, -25, -4, 17, 14, 12, 12, -14, -12, 12, 15, -25} + +#define TENSOR_DENSE_KERNEL_0_DEC_BITS {8} + +#define TENSOR_DENSE_BIAS_0 {19, -29, -30, 28, -15, -17, 6, 6, 8, 35, 4, -17, 12, -28, -17, 12, -13, 18, -22, -3, 17, 24, -6, -11, -22, -5, -11, 17, 29, -18, 24, 48, -24, -12, -91, -28, 31, -70, 8, 34, -10, -13, 39, -2, 22, 41, -15, 38, 22, -35, 31, 7, -11, 58, 17, -14, 32, 45, -12, -20, 32, -14, -12, -12, -3, -27, 27, 0, -17, -1, -14, 35, 32, -25, -19, 15, -24, -46, 62, -18, -23, -20, 46, 19, -2, -22, -17, 40, -1, 35, 31, 34, 62, -86, -4, -14} + +#define TENSOR_DENSE_BIAS_0_DEC_BITS {11} + +#define DENSE_BIAS_LSHIFT {1} + +#define DENSE_OUTPUT_RSHIFT {9} + +#define TENSOR_DENSE_1_KERNEL_0 {-55, 67, 47, -19, 50, 47, 15, -41, 28, 35, 13, -67, -11, -4, -54, 6, 14, -13, 10, 65, -59, 10, -59, -54, -19, -35, -3, 16, 37, -71, 46, -25, 42, -62, -67, -28, 17, 26, -57, 48, -16, -28, 62, 32, 48, -15, 54, -21, -35, 14, -22, -9, 45, 15, 32, -52, 52, 22, -54, -4, -3, 15, -58, -1, 55, -54, 58, -89, -27, -39, -63, -69, -40, 31, -2, -61, 41, 52, -53, 10, -10, 57, 12, -46, 43, -15, 43, -17, -68, -34, 22, -89, -25, 18, 2, -40, -61, -53, -18, 51, -55, -7, 8, -16, -43, -66, 80, 25, 43, 24, 23, -49, 44, 1, 7, 56, -27, 60, 31, -84, -44, 21, -38, -48, -29, -40, 53, 57, 11, -85, -40, -37, -40, -65, 16, -3, 33, 34, -21, 61, 29, 56, -50, 2, 28, 29, 6, 15, 10, -23, 10, 8, -3, -44, 8, -16, 8, -22, -44, 45, 30, 47, 51, 46, 39, 22, -9, 44, -11, 37, 67, 37, -21, 11, 8, -61, -58, 25, -29, -36, 41, 61, 15, -10, -36, -68, -23, -5, -11, 51, -77, 16, -65, -51, -49, 52, 41, 37, 5, 43, 29, 52, -14, 47, 59, -4, -23, 25, 50, 9, -31, 42, -70, -65, 47, -46, -57, 14, -22, 11, -78, 16, -22, -58, 42, 54, 58, 56, 26, -73, 11, -49, -35, 24, 26, -13, 19, 7, 51, 18, -1, -43, -39, 38, 20, 34, -63, -73, -18, 44, 25, 44, 34, 11, -54, -47, 57, -15, 22, 47, 43, 42, -71, -75, -40, 28, -44, -41, -24, -26, 47, -13, 5, -7, 45, -81, 10, -46, 57, -18, -37, 50, 58, 20, -23, -11, 44, 23, -82, -44, 16, 16, -90, 24, -66, -36, 58, 43, 38, -49, -49, 54, 43, -18, 46, -14, -59, 46, -20, 43, 66, 6, -40, -31, 36, 17, 52, -20, -70, -61, -29, -60, -38, 21, 58, 44, 0, -26, -21, -45, 24, -58, -43, 25, -65, -21, -55, -65, -14, -24, 23, -49, -11, -27, 60, -86, -72, -2, 0, -19, -86, 45, 22, -32, 58, 35, 41, 13, -62, -17, 43, 17, 7, -51, -39, -44, -9, 49, -89, 53, 17, 44, 17, 42, 25, -62, 7, 45, -13, 28, -31, -49, 51, 49, 46, -21, 47, -12, 33, 60, 56, 35, -62, -38, -77, 17, -52, 18, 45, -95, 39, -35, -88, 53, 55, -61, 1, 36, 22, 15, 69, -50, 41, -92, -13, 32, -76, 14, -25, 46, -38, 13, -47, 29, -15, -38, 33, 30, 29, -43, 0, -51, 47, -30, -4, -17, 13, 60, -12, -29, 12, 10, 38, -10, 54, -10, -27, -17, -3, -40, -46, 67, -28, 2, 57, 50, -68, -32, 42, 8, 40, 50, -42, 23, -11, -63, -83, 42, 48, -37, -19, 40, 2, 12, 45, -48, 51, -14, -92, 3, 42, 26, 16, -60, -83, 31, -11, -47, -57, 32, -72, -54, -22, 31, -10, -18, -6, -30, 36, -65, -63, 21, -24, -1, 55, 16, -10, -81, 30, 29, -27, -47, 17, 42, 2, 24, 41, 14, -16, 48, 11, 34, -45, 19, 58, 46, -39, -44, -70, -63, 71, -3, -87, 37, 55, -49, -24, 42, -86, -3, -29, -25, 31, 28, -64, 52, -44, -44, -35, -63, -72, -63, -26, 3, 40, 8, -47, 13, -46, 66, 45, 42, -57, -28, -63, 37, 41, -28, -17, -39, -45, -63, -38, 37, -81, 1, -50, -9, 55, 47, -104, 11, 4, -75, -42, 38, -52, 43, -1, 50, -61, 43, 20, 47, -46, -32, -6, -40, 64, -49, -32, 32, -17, -34, 36, -83, -57, -14, -42, -46, -44, -24, -15, -50, -17, 37, -33, -89, -72, -17, -51, 27, 17, -45, -9, -45, 49, 30, -11, -45, -57, 47, 7, -46, 75, 35, 57, 7, -48, -59, -4, 41, 37, -29, 59, -79, 51, -27, -56, -36, 37, 16, 29, -41, -4, 21, -18, 16, 11, -67, 2, -22, 28, 33, -1, 35, -6, -61, -44, 16, -21, 31, 40, 23, 33, -63, 7, -30, 9, 51, 35, 40, -36, -20, -59, -37, -76, -45, 41, 35, -29, -45, -61, 31, -69, -25, 47, -18, -43, 23, 3, 18, -14, 11, 53, -31, 23, -81, 37, -20, -50, 22, -15, -31, -44, 25, 45, -42, 34, -88, 29, 3, -5, -24, -27, -40, 0, 33, -10, -51, -17, 41, 55, -83, 37, -17, 34, -37, 52, -52, -11, 41, -33, -28, 32, -46, 19, 53, 59, -79, 12, 5, 28, 29, -66, 43, -34, 26, -3, -23, -25, -65, -14, -13, 3, 14, -46, 71, -42, 1, -47, 30, -36, 16, 21, 51, 39, 24, -16, -29, -48, -3, 25, 38, -44, -71, 7, -30, -23, 55, 54, -56, 16, 4, -33, 20, -37, 13, -44, 24, 29, 27, -1, -76, 13, -15, -25, -35, -38, 56, -4, 25, 38, 27, 34, 14, -5, 18, -19, -85, -69, 22, 24, 11, 31, 17, -48, -32, -65, 46, -11, -36, 15, -31, -37, -19, -17, 6, 46, 43, 55, -42, -58, 59, -24, 33, 51, 27, 28, -41, 36, 33, 24, -58, -8, 55, -13, 28, -2, 52, 31, -33, -10, -40, -56, 3, -30, -8, -10, 9, -70, 16, 38, -50, 34, -73, 37, -34, 39, 70, -40, -10, -22, -46, -43, 4, -53, 41, 48, -34, 14, -47, 56, 25, 12, -14, 37, -12, 5, -56, 39, 8, -10, -48, 40, 9, 39, -53, 48, 60, -48, 37, -18, 29, 20, 43, -43, -9, 3, -53, -26, 8, 51, -21, -20, 51, -5, 67, 1, 43, -36, -23, 2, -49, 53, -45, -39, 41, 47, -28, 20, 3, 16, 45, -31, -13, -71, 17, -76, -14, -31, 48, -22, -19, -5, -32, -26, 38, -53, -28} + +#define TENSOR_DENSE_1_KERNEL_0_DEC_BITS {8} + +#define TENSOR_DENSE_1_BIAS_0 {-27, 45, -79, 21, 36, -19, 9, -24, 46, -42} + +#define TENSOR_DENSE_1_BIAS_0_DEC_BITS {11} + +#define DENSE_1_BIAS_LSHIFT {0} + +#define DENSE_1_OUTPUT_RSHIFT {9} + + +/* output q format for each layer */ +#define INPUT_1_OUTPUT_DEC 7 +#define INPUT_1_OUTPUT_OFFSET 17 +#define CONV2D_OUTPUT_DEC 6 +#define CONV2D_OUTPUT_OFFSET 3 +#define RE_LU_OUTPUT_DEC 6 +#define RE_LU_OUTPUT_OFFSET 0 +#define MAX_POOLING2D_OUTPUT_DEC 6 +#define MAX_POOLING2D_OUTPUT_OFFSET 0 +#define CONV2D_1_OUTPUT_DEC 5 +#define CONV2D_1_OUTPUT_OFFSET -1 +#define RE_LU_1_OUTPUT_DEC 5 +#define RE_LU_1_OUTPUT_OFFSET 0 +#define MAX_POOLING2D_1_OUTPUT_DEC 5 +#define MAX_POOLING2D_1_OUTPUT_OFFSET 0 +#define CONV2D_2_OUTPUT_DEC 4 +#define CONV2D_2_OUTPUT_OFFSET -4 +#define RE_LU_2_OUTPUT_DEC 4 +#define RE_LU_2_OUTPUT_OFFSET 0 +#define DROPOUT_OUTPUT_DEC 4 +#define DROPOUT_OUTPUT_OFFSET 0 +#define MAX_POOLING2D_2_OUTPUT_DEC 4 +#define MAX_POOLING2D_2_OUTPUT_OFFSET 0 +#define FLATTEN_OUTPUT_DEC 4 +#define FLATTEN_OUTPUT_OFFSET 0 +#define DENSE_OUTPUT_DEC 3 +#define DENSE_OUTPUT_OFFSET -7 +#define DROPOUT_1_OUTPUT_DEC 3 +#define DROPOUT_1_OUTPUT_OFFSET 0 +#define RE_LU_3_OUTPUT_DEC 3 +#define RE_LU_3_OUTPUT_OFFSET 0 +#define DENSE_1_OUTPUT_DEC 2 +#define DENSE_1_OUTPUT_OFFSET -4 +#define SOFTMAX_OUTPUT_DEC 7 +#define SOFTMAX_OUTPUT_OFFSET 13 + +/* bias shift and output shift for none-weighted layer */ + +/* tensors and configurations for each layer */ +static int8_t nnom_input_data[784] = {0}; + +const nnom_shape_data_t tensor_input_1_0_dim[] = {28, 28, 1}; +const nnom_qformat_param_t tensor_input_1_0_dec[] = {7}; +const nnom_qformat_param_t tensor_input_1_0_offset[] = {0}; +const nnom_tensor_t tensor_input_1_0 = { + .p_data = (void*)nnom_input_data, + .dim = (nnom_shape_data_t*)tensor_input_1_0_dim, + .q_dec = (nnom_qformat_param_t*)tensor_input_1_0_dec, + .q_offset = (nnom_qformat_param_t*)tensor_input_1_0_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 3, + .bitwidth = 8 +}; + +const nnom_io_config_t input_1_config = { + .super = {.name = "input_1"}, + .tensor = (nnom_tensor_t*)&tensor_input_1_0 +}; +const int8_t tensor_conv2d_kernel_0_data[] = TENSOR_CONV2D_KERNEL_0; + +const nnom_shape_data_t tensor_conv2d_kernel_0_dim[] = {3, 3, 1, 12}; +const nnom_qformat_param_t tensor_conv2d_kernel_0_dec[] = TENSOR_CONV2D_KERNEL_0_DEC_BITS; +const nnom_qformat_param_t tensor_conv2d_kernel_0_offset[] = {0}; +const nnom_tensor_t tensor_conv2d_kernel_0 = { + .p_data = (void*)tensor_conv2d_kernel_0_data, + .dim = (nnom_shape_data_t*)tensor_conv2d_kernel_0_dim, + .q_dec = (nnom_qformat_param_t*)tensor_conv2d_kernel_0_dec, + .q_offset = (nnom_qformat_param_t*)tensor_conv2d_kernel_0_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 4, + .bitwidth = 8 +}; +const int8_t tensor_conv2d_bias_0_data[] = TENSOR_CONV2D_BIAS_0; + +const nnom_shape_data_t tensor_conv2d_bias_0_dim[] = {12}; +const nnom_qformat_param_t tensor_conv2d_bias_0_dec[] = TENSOR_CONV2D_BIAS_0_DEC_BITS; +const nnom_qformat_param_t tensor_conv2d_bias_0_offset[] = {0}; +const nnom_tensor_t tensor_conv2d_bias_0 = { + .p_data = (void*)tensor_conv2d_bias_0_data, + .dim = (nnom_shape_data_t*)tensor_conv2d_bias_0_dim, + .q_dec = (nnom_qformat_param_t*)tensor_conv2d_bias_0_dec, + .q_offset = (nnom_qformat_param_t*)tensor_conv2d_bias_0_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 1, + .bitwidth = 8 +}; + +const nnom_qformat_param_t conv2d_output_shift[] = CONV2D_OUTPUT_RSHIFT; +const nnom_qformat_param_t conv2d_bias_shift[] = CONV2D_BIAS_LSHIFT; +const nnom_conv2d_config_t conv2d_config = { + .super = {.name = "conv2d"}, + .qtype = NNOM_QTYPE_PER_TENSOR, + .weight = (nnom_tensor_t*)&tensor_conv2d_kernel_0, + .bias = (nnom_tensor_t*)&tensor_conv2d_bias_0, + .output_shift = (nnom_qformat_param_t *)&conv2d_output_shift, + .bias_shift = (nnom_qformat_param_t *)&conv2d_bias_shift, + .filter_size = 12, + .kernel_size = {3, 3}, + .stride_size = {1, 1}, + .padding_size = {0, 0}, + .dilation_size = {1, 1}, + .padding_type = PADDING_SAME +}; + +const nnom_pool_config_t max_pooling2d_config = { + .super = {.name = "max_pooling2d"}, + .padding_type = PADDING_SAME, + .output_shift = 0, + .kernel_size = {2, 2}, + .stride_size = {2, 2}, + .num_dim = 2 +}; +const int8_t tensor_conv2d_1_kernel_0_data[] = TENSOR_CONV2D_1_KERNEL_0; + +const nnom_shape_data_t tensor_conv2d_1_kernel_0_dim[] = {3, 3, 12, 24}; +const nnom_qformat_param_t tensor_conv2d_1_kernel_0_dec[] = TENSOR_CONV2D_1_KERNEL_0_DEC_BITS; +const nnom_qformat_param_t tensor_conv2d_1_kernel_0_offset[] = {0}; +const nnom_tensor_t tensor_conv2d_1_kernel_0 = { + .p_data = (void*)tensor_conv2d_1_kernel_0_data, + .dim = (nnom_shape_data_t*)tensor_conv2d_1_kernel_0_dim, + .q_dec = (nnom_qformat_param_t*)tensor_conv2d_1_kernel_0_dec, + .q_offset = (nnom_qformat_param_t*)tensor_conv2d_1_kernel_0_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 4, + .bitwidth = 8 +}; +const int8_t tensor_conv2d_1_bias_0_data[] = TENSOR_CONV2D_1_BIAS_0; + +const nnom_shape_data_t tensor_conv2d_1_bias_0_dim[] = {24}; +const nnom_qformat_param_t tensor_conv2d_1_bias_0_dec[] = TENSOR_CONV2D_1_BIAS_0_DEC_BITS; +const nnom_qformat_param_t tensor_conv2d_1_bias_0_offset[] = {0}; +const nnom_tensor_t tensor_conv2d_1_bias_0 = { + .p_data = (void*)tensor_conv2d_1_bias_0_data, + .dim = (nnom_shape_data_t*)tensor_conv2d_1_bias_0_dim, + .q_dec = (nnom_qformat_param_t*)tensor_conv2d_1_bias_0_dec, + .q_offset = (nnom_qformat_param_t*)tensor_conv2d_1_bias_0_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 1, + .bitwidth = 8 +}; + +const nnom_qformat_param_t conv2d_1_output_shift[] = CONV2D_1_OUTPUT_RSHIFT; +const nnom_qformat_param_t conv2d_1_bias_shift[] = CONV2D_1_BIAS_LSHIFT; +const nnom_conv2d_config_t conv2d_1_config = { + .super = {.name = "conv2d_1"}, + .qtype = NNOM_QTYPE_PER_TENSOR, + .weight = (nnom_tensor_t*)&tensor_conv2d_1_kernel_0, + .bias = (nnom_tensor_t*)&tensor_conv2d_1_bias_0, + .output_shift = (nnom_qformat_param_t *)&conv2d_1_output_shift, + .bias_shift = (nnom_qformat_param_t *)&conv2d_1_bias_shift, + .filter_size = 24, + .kernel_size = {3, 3}, + .stride_size = {1, 1}, + .padding_size = {0, 0}, + .dilation_size = {1, 1}, + .padding_type = PADDING_SAME +}; + +const nnom_pool_config_t max_pooling2d_1_config = { + .super = {.name = "max_pooling2d_1"}, + .padding_type = PADDING_SAME, + .output_shift = 0, + .kernel_size = {2, 2}, + .stride_size = {2, 2}, + .num_dim = 2 +}; +const int8_t tensor_conv2d_2_kernel_0_data[] = TENSOR_CONV2D_2_KERNEL_0; + +const nnom_shape_data_t tensor_conv2d_2_kernel_0_dim[] = {3, 3, 24, 48}; +const nnom_qformat_param_t tensor_conv2d_2_kernel_0_dec[] = TENSOR_CONV2D_2_KERNEL_0_DEC_BITS; +const nnom_qformat_param_t tensor_conv2d_2_kernel_0_offset[] = {0}; +const nnom_tensor_t tensor_conv2d_2_kernel_0 = { + .p_data = (void*)tensor_conv2d_2_kernel_0_data, + .dim = (nnom_shape_data_t*)tensor_conv2d_2_kernel_0_dim, + .q_dec = (nnom_qformat_param_t*)tensor_conv2d_2_kernel_0_dec, + .q_offset = (nnom_qformat_param_t*)tensor_conv2d_2_kernel_0_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 4, + .bitwidth = 8 +}; +const int8_t tensor_conv2d_2_bias_0_data[] = TENSOR_CONV2D_2_BIAS_0; + +const nnom_shape_data_t tensor_conv2d_2_bias_0_dim[] = {48}; +const nnom_qformat_param_t tensor_conv2d_2_bias_0_dec[] = TENSOR_CONV2D_2_BIAS_0_DEC_BITS; +const nnom_qformat_param_t tensor_conv2d_2_bias_0_offset[] = {0}; +const nnom_tensor_t tensor_conv2d_2_bias_0 = { + .p_data = (void*)tensor_conv2d_2_bias_0_data, + .dim = (nnom_shape_data_t*)tensor_conv2d_2_bias_0_dim, + .q_dec = (nnom_qformat_param_t*)tensor_conv2d_2_bias_0_dec, + .q_offset = (nnom_qformat_param_t*)tensor_conv2d_2_bias_0_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 1, + .bitwidth = 8 +}; + +const nnom_qformat_param_t conv2d_2_output_shift[] = CONV2D_2_OUTPUT_RSHIFT; +const nnom_qformat_param_t conv2d_2_bias_shift[] = CONV2D_2_BIAS_LSHIFT; +const nnom_conv2d_config_t conv2d_2_config = { + .super = {.name = "conv2d_2"}, + .qtype = NNOM_QTYPE_PER_TENSOR, + .weight = (nnom_tensor_t*)&tensor_conv2d_2_kernel_0, + .bias = (nnom_tensor_t*)&tensor_conv2d_2_bias_0, + .output_shift = (nnom_qformat_param_t *)&conv2d_2_output_shift, + .bias_shift = (nnom_qformat_param_t *)&conv2d_2_bias_shift, + .filter_size = 48, + .kernel_size = {3, 3}, + .stride_size = {1, 1}, + .padding_size = {0, 0}, + .dilation_size = {1, 1}, + .padding_type = PADDING_SAME +}; + +const nnom_pool_config_t max_pooling2d_2_config = { + .super = {.name = "max_pooling2d_2"}, + .padding_type = PADDING_SAME, + .output_shift = 0, + .kernel_size = {2, 2}, + .stride_size = {2, 2}, + .num_dim = 2 +}; + +const nnom_flatten_config_t flatten_config = { + .super = {.name = "flatten"} +}; +const int8_t tensor_dense_kernel_0_data[] = TENSOR_DENSE_KERNEL_0; + +const nnom_shape_data_t tensor_dense_kernel_0_dim[] = {768, 96}; +const nnom_qformat_param_t tensor_dense_kernel_0_dec[] = TENSOR_DENSE_KERNEL_0_DEC_BITS; +const nnom_qformat_param_t tensor_dense_kernel_0_offset[] = {0}; +const nnom_tensor_t tensor_dense_kernel_0 = { + .p_data = (void*)tensor_dense_kernel_0_data, + .dim = (nnom_shape_data_t*)tensor_dense_kernel_0_dim, + .q_dec = (nnom_qformat_param_t*)tensor_dense_kernel_0_dec, + .q_offset = (nnom_qformat_param_t*)tensor_dense_kernel_0_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 2, + .bitwidth = 8 +}; +const int8_t tensor_dense_bias_0_data[] = TENSOR_DENSE_BIAS_0; + +const nnom_shape_data_t tensor_dense_bias_0_dim[] = {96}; +const nnom_qformat_param_t tensor_dense_bias_0_dec[] = TENSOR_DENSE_BIAS_0_DEC_BITS; +const nnom_qformat_param_t tensor_dense_bias_0_offset[] = {0}; +const nnom_tensor_t tensor_dense_bias_0 = { + .p_data = (void*)tensor_dense_bias_0_data, + .dim = (nnom_shape_data_t*)tensor_dense_bias_0_dim, + .q_dec = (nnom_qformat_param_t*)tensor_dense_bias_0_dec, + .q_offset = (nnom_qformat_param_t*)tensor_dense_bias_0_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 1, + .bitwidth = 8 +}; + +const nnom_qformat_param_t dense_output_shift[] = DENSE_OUTPUT_RSHIFT; +const nnom_qformat_param_t dense_bias_shift[] = DENSE_BIAS_LSHIFT; +const nnom_dense_config_t dense_config = { + .super = {.name = "dense"}, + .qtype = NNOM_QTYPE_PER_TENSOR, + .weight = (nnom_tensor_t*)&tensor_dense_kernel_0, + .bias = (nnom_tensor_t*)&tensor_dense_bias_0, + .output_shift = (nnom_qformat_param_t *)&dense_output_shift, + .bias_shift = (nnom_qformat_param_t *)&dense_bias_shift +}; +const int8_t tensor_dense_1_kernel_0_data[] = TENSOR_DENSE_1_KERNEL_0; + +const nnom_shape_data_t tensor_dense_1_kernel_0_dim[] = {96, 10}; +const nnom_qformat_param_t tensor_dense_1_kernel_0_dec[] = TENSOR_DENSE_1_KERNEL_0_DEC_BITS; +const nnom_qformat_param_t tensor_dense_1_kernel_0_offset[] = {0}; +const nnom_tensor_t tensor_dense_1_kernel_0 = { + .p_data = (void*)tensor_dense_1_kernel_0_data, + .dim = (nnom_shape_data_t*)tensor_dense_1_kernel_0_dim, + .q_dec = (nnom_qformat_param_t*)tensor_dense_1_kernel_0_dec, + .q_offset = (nnom_qformat_param_t*)tensor_dense_1_kernel_0_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 2, + .bitwidth = 8 +}; +const int8_t tensor_dense_1_bias_0_data[] = TENSOR_DENSE_1_BIAS_0; + +const nnom_shape_data_t tensor_dense_1_bias_0_dim[] = {10}; +const nnom_qformat_param_t tensor_dense_1_bias_0_dec[] = TENSOR_DENSE_1_BIAS_0_DEC_BITS; +const nnom_qformat_param_t tensor_dense_1_bias_0_offset[] = {0}; +const nnom_tensor_t tensor_dense_1_bias_0 = { + .p_data = (void*)tensor_dense_1_bias_0_data, + .dim = (nnom_shape_data_t*)tensor_dense_1_bias_0_dim, + .q_dec = (nnom_qformat_param_t*)tensor_dense_1_bias_0_dec, + .q_offset = (nnom_qformat_param_t*)tensor_dense_1_bias_0_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 1, + .bitwidth = 8 +}; + +const nnom_qformat_param_t dense_1_output_shift[] = DENSE_1_OUTPUT_RSHIFT; +const nnom_qformat_param_t dense_1_bias_shift[] = DENSE_1_BIAS_LSHIFT; +const nnom_dense_config_t dense_1_config = { + .super = {.name = "dense_1"}, + .qtype = NNOM_QTYPE_PER_TENSOR, + .weight = (nnom_tensor_t*)&tensor_dense_1_kernel_0, + .bias = (nnom_tensor_t*)&tensor_dense_1_bias_0, + .output_shift = (nnom_qformat_param_t *)&dense_1_output_shift, + .bias_shift = (nnom_qformat_param_t *)&dense_1_bias_shift +}; + +const nnom_softmax_config_t softmax_config = { + .super = {.name = "softmax"} +}; +static int8_t nnom_output_data[10] = {0}; + +const nnom_shape_data_t tensor_output_dim[] = {10}; +const nnom_qformat_param_t tensor_output_dec[] = {SOFTMAX_OUTPUT_DEC}; +const nnom_qformat_param_t tensor_output_offset[] = {0}; +const nnom_tensor_t tensor_output = { + .p_data = (void*)nnom_output_data, + .dim = (nnom_shape_data_t*)tensor_output_dim, + .q_dec = (nnom_qformat_param_t*)tensor_output_dec, + .q_offset = (nnom_qformat_param_t*)tensor_output_offset, + .qtype = NNOM_QTYPE_PER_TENSOR, + .num_dim = 1, + .bitwidth = 8 +}; + +const nnom_io_config_t output_config = { + .super = {.name = "output"}, + .tensor = (nnom_tensor_t*)&tensor_output +}; +/* model version */ +#define NNOM_MODEL_VERSION (10000*0 + 100*4 + 0) + +/* nnom model */ +static nnom_model_t* nnom_model_create(void) +{ + static nnom_model_t model; + nnom_layer_t* layer[16]; + + check_model_version(NNOM_MODEL_VERSION); + new_model(&model); + + layer[0] = input_s(&input_1_config); + layer[1] = model.hook(conv2d_s(&conv2d_config), layer[0]); + layer[2] = model.active(act_relu(), layer[1]); + layer[3] = model.hook(maxpool_s(&max_pooling2d_config), layer[2]); + layer[4] = model.hook(conv2d_s(&conv2d_1_config), layer[3]); + layer[5] = model.active(act_relu(), layer[4]); + layer[6] = model.hook(maxpool_s(&max_pooling2d_1_config), layer[5]); + layer[7] = model.hook(conv2d_s(&conv2d_2_config), layer[6]); + layer[8] = model.active(act_relu(), layer[7]); + layer[9] = model.hook(maxpool_s(&max_pooling2d_2_config), layer[8]); + layer[10] = model.hook(flatten_s(&flatten_config), layer[9]); + layer[11] = model.hook(dense_s(&dense_config), layer[10]); + layer[12] = model.active(act_relu(), layer[11]); + layer[13] = model.hook(dense_s(&dense_1_config), layer[12]); + layer[14] = model.hook(softmax_s(&softmax_config), layer[13]); + layer[15] = model.hook(output_s(&output_config), layer[14]); + model_compile(&model, layer[0], layer[15]); + return &model; +} \ No newline at end of file diff --git a/examples/nnom_mnist/nnom_mnsit_example.c b/examples/nnom_mnist/nnom_mnsit_example.c new file mode 100644 index 00000000..40773772 --- /dev/null +++ b/examples/nnom_mnist/nnom_mnsit_example.c @@ -0,0 +1,120 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + *

    © Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

    + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ************** + **************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "dcmi.h" +#include "dma.h" +#include "i2c.h" +#include "usart.h" +#include "spi.h" +#include "gpio.h" +#include "cmsis_os.h" +#include "nnom.h" +#include "image.h" +#include "weights.h" + +//task1 +#define TASK1_STK_SIZE 256 +void task1(void *pdata); +osThreadDef(task1, osPriorityNormal, 1, TASK1_STK_SIZE); + +//task2 +#define TASK2_STK_SIZE 256 +void task2(void *pdata); + +osThreadDef(task2, osPriorityNormal, 1, TASK2_STK_SIZE); + +#ifdef NNOM_USING_STATIC_MEMORY + uint8_t static_buf[1024*20]; +#endif + +nnom_model_t *model; +const char codeLib[] = "@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~<>i!lI;:,\"^`'. "; +void print_img_nnom(int8_t * buf) +{ + for(int y = 0; y < 28; y++) + { + for (int x = 0; x < 28; x++) + { + int index = 69 / 127.0 * (127 - buf[y*28+x]); + if(index > 69) index =69; + if(index < 0) index = 0; + printf("%c",codeLib[index]); + printf("%c",codeLib[index]); + } + printf("\n"); + } +} + +void mnist_nnom() +{ + uint32_t tick, time; + uint32_t predic_label; + float prob; + int32_t index = 0; + + printf("\nprediction start.. \n"); + tick = tos_systick_get(); + + // copy data and do prediction + memcpy(nnom_input_data, (int8_t*)&img[index][0], 784); + nnom_predict(model, &predic_label, &prob); + time = tos_systick_get() - tick; + + //print original image to console + print_img_nnom((int8_t*)&img[index][0]); + + printf("Time: %d tick\n", time); + printf("Truth label: %d\n", label[index]); + printf("Predicted label: %d\n", predic_label); + printf("Probability: %d%%\n", (int)(prob*100)); +} + + + +void task1(void *pdata) +{ + nnom_set_static_buf(static_buf, sizeof(static_buf)); + model = nnom_model_create(); + model_run(model); + mnist_nnom(); + while(1) + { + osDelay(1000); + } +} + +void task2(void *pdata) +{ + while(1) + { + osDelay(1000); + } +} + + +void application_entry(void *arg) +{ + printf("***nnom mnist example\r\n"); + osThreadCreate(osThread(task1), NULL); // Create task1 + osThreadCreate(osThread(task2), NULL); // Create task2 +} +