#include <string.h>
#include "TuiLayout.h"
#include "TuiRotation.h"
#include "TZ_Vendor_debug_tl.h"


uint32_t BACKUP_MNEMONIC_LIST_COLUMN_COUNT;
uint32_t BACKUP_MNEMONIC_LIST_TOP_MARGIN;
uint32_t BACKUP_MNEMONIC_LIST_SIDE_MARGIN;
uint32_t BACKUP_MNEMONIC_LIST_TEXTBOX_WIDTH;
uint32_t BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT;
uint32_t BACKUP_MNEMONIC_LIST_NUMBER_WIDTH;
uint32_t BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE;
uint32_t BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE;
uint32_t BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE;
uint32_t BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_TOP_MARGIN;
uint32_t BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_WIDTH;
uint32_t BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_HEIGHT;

uint32_t BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN;
uint32_t BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN;
uint32_t BACKUP_QUIZ_TEXTINPUT_WIDTH;
uint32_t BACKUP_QUIZ_TEXTINPUT_HEIGHT;
uint32_t BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE;
uint32_t BACKUP_QUIZ_BUTTON_START_TOP_MARGIN;
uint32_t BACKUP_QUIZ_BUTTON_LEFT_MARGIN;
uint32_t BACKUP_QUIZ_BUTTON_WIDTH;
uint32_t BACKUP_QUIZ_BUTTON_HEIGHT;
uint32_t BACKUP_QUIZ_NEXT_DISTANCE;
uint32_t BACKUP_QUIZ_KEYPAD_START_X;
uint32_t BACKUP_QUIZ_KEYPAD_START_Y;

//confirm
uint32_t CONFIRM_TEXT_SIDE_MARGIN;

uint32_t CONFIRM_TEXT_ADDRESS_TYPE_TOP_MARGIN;
uint32_t CONFIRM_TEXT_EXTRA_GUIDE_HEIGHT;
uint32_t CONFIRM_TEXT_DATA_MEMO_HEIGHT;

uint32_t CONFIRM_TEXT_ADDRESS_HEIGHT;
uint32_t CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE;
uint32_t CONFIRM_TEXT_AREA_WIDTH;
uint32_t CONFIRM_DIVIDER_SIDE_MARGIN;
uint32_t CONFIRM_DIVIDER_LINE_DISTANCE;
uint32_t CONFIRM_DIVIDER_LINE_DISTANCE2;
uint32_t CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE;
uint32_t CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE;
uint32_t CONFIRM_TEXT_AMOUNT_LINE_DISTANCE;
uint32_t CONFIRM_TEXT_GAS_SIDE_MARGIN;
uint32_t CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE;
uint32_t CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE;
uint32_t CONFIRM_TEXT_DATA_LINE_DISTANCE;
uint32_t CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE;
uint32_t CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE;
uint32_t CONFIRM_TEXT_FEE_LINE_DISTANCE;

//keypad
uint32_t CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH;
uint32_t CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT;
uint32_t CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH;
uint32_t CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT;
uint32_t CONTROL_KEYPAD_BUTTON_WIDTH;
uint32_t CONTROL_KEYPAD_BUTTON_HEIGHT;
uint32_t CONTROL_KEYPAD_TOP_MARGIN;
uint32_t CONTROL_KEYPAD_SIDE_MARGIN_LEFT;
uint32_t CONTROL_KEYPAD_SIDE_MARGIN_RIGHT;
uint32_t CONTROL_KEYPAD_BACK_SPACE_WIDTH;
uint32_t CONTROL_KEYPAD_BACK_SPACE_HEIGHT;

//restore
uint32_t RESTORE_KEYPAD_START_X;
uint32_t RESTORE_KEYPAD_START_Y;
uint32_t RESTORE_MNEMONIC_TEXTBOX_WIDTH;
uint32_t RESTORE_MNEMONIC_TEXTBOX_HEIGHT;
uint32_t RESTORE_MNEMONIC_TEXTINPUT_START_X;
uint32_t RESTORE_MNEMONIC_TEXTINPUT_START_Y;
uint32_t RESTORE_MNEMONIC_TEXTINPUT_WIDTH;
uint32_t RESTORE_MNEMONIC_TEXTINPUT_HEIGHT;
uint32_t RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN;
uint32_t RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y;
uint32_t RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN;
uint32_t RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN;
uint32_t RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH;
uint32_t RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT;
uint32_t RESTORE_MNEMONIC_LIST_TOP_MARGIN;
uint32_t RESTORE_MNEMONIC_LIST_SIDE_MARGIN;
uint32_t RESTORE_MNEMONIC_LIST_MAX_COUNT;
uint32_t RESTORE_MNEMONIC_LIST_COLUMN_COUNT;
uint32_t RESTORE_MNEMONIC_LIST_LINE_DISTANCE;
uint32_t RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN;
uint32_t RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN;
uint32_t RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT;
uint32_t RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE;
uint32_t RESTORE_MNEMONIC_RECOMMEND_WIDTH;
uint32_t RESTORE_MNEMONIC_RECOMMEND_MORE_WIDTH;
uint32_t RESTORE_MNEMONIC_RECOMMEND_HEIGHT;
uint32_t RESTORE_MNEMONIC_RECOMMEND_MORE_HEIGHT;
uint32_t RESTORE_MNEMONIC_RECOMMEND_LIST_COUNT;

//pinpad
uint32_t PINPAD_SOFTKEY_DP;			// pinpad_softkey : backkey in pinpad page
uint32_t PINPAD_SOFTKEY_HEIGHT;
uint32_t PINPAD_BOTTOM_BAR_HEIGHT;
uint32_t PINPAD_KEY_WIDTH;
uint32_t PINPAD_KEY_HEIGHT;
uint32_t PINPAD_STAR_SIZE;
uint32_t PINPAD_HEIGHT_DP;		//pinpad total height as dp

uint32_t PINPAD_COL1_LEFT_HD;
uint32_t PINPAD_COL1_RIGHT_HD;
uint32_t PINPAD_COL2_LEFT_HD;
uint32_t PINPAD_COL2_RIGHT_HD;
uint32_t PINPAD_COL3_LEFT_HD;
uint32_t PINPAD_COL3_RIGHT_HD;

uint32_t PINPAD_LINE1_TOP_HD;		//line1_top : top location of pinpad on a first row (y value in vector)
uint32_t PINPAD_LINE1_BOTTOM_HD;
uint32_t PINPAD_LINE2_TOP_HD;
uint32_t PINPAD_LINE2_BOTTOM_HD;
uint32_t PINPAD_LINE3_TOP_HD;
uint32_t PINPAD_LINE3_BOTTOM_HD;
uint32_t PINPAD_LINE4_TOP_HD;
uint32_t PINPAD_LINE4_BOTTOM_HD;

uint32_t PINPAD_SOFTKEY_LEFT;
uint32_t PINPAD_SOFTKEY_TOP;
uint32_t PINPAD_SOFTKEY_BACK_LEFT;
uint32_t PINPAD_SOFTKEY_BACK_RIGHT;
uint32_t PINPAD_SOFTKEY_BACK_TOP;
uint32_t PINPAD_SOFTKEY_BACK_BOTTOM;
uint32_t PINPAD_SOFTKEY_BACK_BHR_LEFT;
uint32_t PINPAD_SOFTKEY_BACK_BHR_RIGHT;
uint32_t PINPAD_SOFTKEY_BACK_BHR_TOP;
uint32_t PINPAD_SOFTKEY_BACK_BHR_BOTTOM;

uint32_t PINPAD_STATUS_BAR_HEIGHT;
uint32_t PINPAD_ACTION_BAR_TOP;
uint32_t PINPAD_ACTION_BAR_HEIGHT;
uint32_t PINPAD_ACTION_BAR_TEXT_LEFT_DP;

uint32_t PINPAD_PIN_BOX_DISTANCE;	//pinbox : The area of inserting a pin value shaped like a square
uint32_t PINPAD_PIN_BOX_WIDTH;
uint32_t PINPAD_PIN_BOX_HEIGHT;
uint32_t PINPAD_PIN_BOX_SPACE;
uint32_t PINPAD_PIN_BOX_IMG_WIDTH;
uint32_t PINPAD_PIN_BOX_IMG_HEIGHT;
uint32_t PINPAD_PIN_BOX_TOP;
uint32_t PINPAD_PIN_BOX_BOTTOM;

uint32_t PINPAD_PIN_TEXT_TOP;
uint32_t PINPAD_PIN_TEXT_BOTTOM;

uint32_t PINPAD_PROMPT_DISTANCE;
uint32_t PINPAD_PROMPT_AREA_TOP;
uint32_t PINPAD_PROMPT_AREA_BOTTOM;

uint32_t PINPAD_SECURE_ICON_WIDTH;
uint32_t PINPAD_SECURE_ICON_TOP;
uint32_t PINPAD_SECURE_ICON_TEXT_DISTANCE;
uint32_t PINPAD_SECURE_MODE_TEXT_TOP;

uint32_t PINPAD_ACTION_BAR_BACK_BUTTON_SIZE;
uint32_t PINPAD_ACTION_BAR_BACK_BUTTON_LEFT;
uint32_t PINPAD_ACTION_BAR_BACK_BUTTON_RIGHT;
uint32_t PINPAD_ACTION_BAR_BACK_BUTTON_TOP;
uint32_t PINPAD_ACTION_BAR_BACK_BUTTON_BOTTOM;

//screen
float SCREEN_PIX_PER_DP;	// (screen height as pixel / screen height as dp)
uint32_t SCREEN_PUNCHCUT_HEIGHT;
uint32_t SCREEN_WIDTH;
uint32_t SCREEN_HEIGHT;		//screen height as pixel
int32_t keypadLoctionAdjustment[CONTROL_KEYPAD_COLUMN_COUNT * 3][2];
int32_t backspaceLoctionAdjustment[2];
static EScreenType gScreenType = SCREEN_TYPE_DEFAULT;

//pinpad
sLayout_t g_pinpad_layout;
sPinPadKey_t g_softkey[SOFTKEY_SIZE];
sPinPadKey_t g_softkey_bhr[SOFTKEY_SIZE];
uint32_t g_pinbox_space;
uint32_t g_pinbox_width;
uint32_t g_pinbox_height;
uint32_t g_pinbox_y;

void setPinpadLayout(void);
void setSoftkey(void);

#define W720_SCREEN_HEIGHT_DEFAULT 1520         //beyond
#define W1080_SCREEN_HEIGHT_DEFAULT 2280        //beyond
#define W1440_SCREEN_HEIGHT_DEFAULT 3040        //beyond

#define W1536_SCREEN_HEIGHT_DEFAULT 2152        //winner
#define W1536_SCREEN_WIDTH 1536                 //winner

#define W1768_SCREEN_HEIGHT_DEFAULT 2208        //TOP
#define W1768_SCREEN_WIDTH 1768                 //TOP

enum DISPLAY_SUPPORT_TYPE display_type;

uint32_t STANDARD_SCREEN_WIDTH_DP;
uint32_t STANDARD_SCREEN_HEIGHT_DP;
uint32_t STANDARD_SOFTKEY_HEIGHT_DP;

bool _SUPPORT_DISPLAY_HIDE_NOTCH;
uint32_t STANDARD_BOTTOM_BAR_HEIGHT_DP;

void initLayoutWith(layoutParams_t params) {
    STANDARD_BOTTOM_BAR_HEIGHT_DP = 0;

    display_type = (DISPLAY_SUPPORT_TYPE)(params.DISPLAY_SUPPORT_TYPE & 0xF);
    _SUPPORT_DISPLAY_HIDE_NOTCH = params.DISPLAY_SUPPORT_TYPE & (1<<7);

    STANDARD_SCREEN_WIDTH_DP = params.STANDARD_SCREEN_WIDTH_DP;
    STANDARD_SCREEN_HEIGHT_DP = params.STANDARD_SCREEN_HEIGHT_DP;
    STANDARD_SOFTKEY_HEIGHT_DP = params.STANDARD_SOFTKEY_HEIGHT_DP;

    //screen
	SCREEN_PIX_PER_DP						= params.SCREEN_PIX_PER_DP;

	SCREEN_WIDTH								= params.SCREEN_WIDTH;
	SCREEN_HEIGHT								= params.SCREEN_HEIGHT;

    if (display_type == _SUPPORT_DUAL_LCD_WINNER_SUB) {
		setScreenType(SCREEN_TYPE_WINNER_SUB);
    } else if (display_type == _SUPPORT_DUAL_LCD_WINNER_MAIN) {
        setScreenType(SCREEN_TYPE_WINNER_MAIN);
        SCREEN_PIX_PER_DP                       = 1;
        SCREEN_WIDTH							= W1536_SCREEN_WIDTH;
        SCREEN_HEIGHT							= W1536_SCREEN_HEIGHT_DEFAULT;
    } else if (display_type == _SUPPORT_DUAL_LCD_TOP_SUB) {
		setScreenType(SCREEN_TYPE_TOP_SUB);
	} else if (display_type == _SUPPORT_DUAL_LCD_TOP_MAIN) {
		setScreenType(SCREEN_TYPE_TOP_MAIN);
		SCREEN_PIX_PER_DP                       = 1;
		SCREEN_WIDTH							= W1768_SCREEN_WIDTH;
		SCREEN_HEIGHT							= W1768_SCREEN_HEIGHT_DEFAULT;
	} else {
        setScreenType(SCREEN_TYPE_DEFAULT);
    }

    uint32_t SCREEN_STRETCH_VALUE_DP = 0;
    if (display_type == _SUPPORT_SOFTKEY_PUNCHCUT_800) {
		uint32_t defaultHeight = 0;
    	if (SCREEN_HEIGHT <= 1600) {
    		defaultHeight = W720_SCREEN_HEIGHT_DEFAULT;
    	} else if (SCREEN_HEIGHT <= 2636) { //including bloom
			defaultHeight = W1080_SCREEN_HEIGHT_DEFAULT;
		} else {
			defaultHeight = W1440_SCREEN_HEIGHT_DEFAULT;
    	}
        SCREEN_STRETCH_VALUE_DP = (uint32_t)((SCREEN_HEIGHT - defaultHeight)/SCREEN_PIX_PER_DP);
    }

    SCREEN_PUNCHCUT_HEIGHT			= params.SCREEN_PUNCHCUT_HEIGHT * SCREEN_PIX_PER_DP;

    TTY_LOG("initLayoutWith Screen size: %f, %u, %u %d", SCREEN_PIX_PER_DP, SCREEN_WIDTH, SCREEN_HEIGHT, display_type);

    BACKUP_MNEMONIC_LIST_COLUMN_COUNT			= params.BACKUP_MNEMONIC_LIST_COLUMN_COUNT;
    BACKUP_MNEMONIC_LIST_TOP_MARGIN				= params.BACKUP_MNEMONIC_LIST_TOP_MARGIN * SCREEN_PIX_PER_DP;

    BACKUP_MNEMONIC_LIST_SIDE_MARGIN			= params.BACKUP_MNEMONIC_LIST_SIDE_MARGIN * SCREEN_PIX_PER_DP;
    BACKUP_MNEMONIC_LIST_TEXTBOX_WIDTH			= params.BACKUP_MNEMONIC_LIST_TEXTBOX_WIDTH * SCREEN_PIX_PER_DP;
    BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT			= params.BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT * SCREEN_PIX_PER_DP;
    BACKUP_MNEMONIC_LIST_NUMBER_WIDTH			= params.BACKUP_MNEMONIC_LIST_NUMBER_WIDTH * SCREEN_PIX_PER_DP;
    BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE		= params.BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE * SCREEN_PIX_PER_DP;
    BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE		= params.BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE * SCREEN_PIX_PER_DP;
    BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE	= params.BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE * SCREEN_PIX_PER_DP;
	BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_TOP_MARGIN = params.BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_TOP_MARGIN * SCREEN_PIX_PER_DP;
	BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_WIDTH = params.BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_WIDTH * SCREEN_PIX_PER_DP;
	BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_HEIGHT= params.BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_HEIGHT * SCREEN_PIX_PER_DP;

    BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN		= params.BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN * SCREEN_PIX_PER_DP;
    BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN			= params.BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN * SCREEN_PIX_PER_DP;
    BACKUP_QUIZ_TEXTINPUT_WIDTH					= params.BACKUP_QUIZ_TEXTINPUT_WIDTH * SCREEN_PIX_PER_DP;
    BACKUP_QUIZ_TEXTINPUT_HEIGHT				= params.BACKUP_QUIZ_TEXTINPUT_HEIGHT * SCREEN_PIX_PER_DP;
    BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE			= params.BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE * SCREEN_PIX_PER_DP;

    BACKUP_QUIZ_BUTTON_START_TOP_MARGIN			= BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN;

    BACKUP_QUIZ_BUTTON_LEFT_MARGIN				= params.BACKUP_QUIZ_BUTTON_LEFT_MARGIN * SCREEN_PIX_PER_DP;
    BACKUP_QUIZ_BUTTON_WIDTH					= params.BACKUP_QUIZ_BUTTON_WIDTH * SCREEN_PIX_PER_DP;
    BACKUP_QUIZ_BUTTON_HEIGHT					= params.BACKUP_QUIZ_BUTTON_HEIGHT * SCREEN_PIX_PER_DP;
    BACKUP_QUIZ_NEXT_DISTANCE					= params.BACKUP_QUIZ_NEXT_DISTANCE * SCREEN_PIX_PER_DP;
    BACKUP_QUIZ_KEYPAD_START_X					= params.BACKUP_QUIZ_KEYPAD_START_X;
    BACKUP_QUIZ_KEYPAD_START_Y					= (SCREEN_STRETCH_VALUE_DP + params.BACKUP_QUIZ_KEYPAD_START_Y) * SCREEN_PIX_PER_DP;

    //confirm
    CONFIRM_TEXT_SIDE_MARGIN					= params.CONFIRM_TEXT_SIDE_MARGIN * SCREEN_PIX_PER_DP;

	CONFIRM_TEXT_ADDRESS_TYPE_TOP_MARGIN = params.CONFIRM_TEXT_ADDRESS_TYPE_TOP_MARGIN * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_EXTRA_GUIDE_HEIGHT = params.CONFIRM_TEXT_EXTRA_GUIDE_HEIGHT * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_DATA_MEMO_HEIGHT = params.CONFIRM_TEXT_EXTRA_GUIDE_HEIGHT * SCREEN_PIX_PER_DP;

    CONFIRM_TEXT_ADDRESS_HEIGHT					= params.CONFIRM_TEXT_ADDRESS_HEIGHT * SCREEN_PIX_PER_DP;
    CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE         = params.CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE * SCREEN_PIX_PER_DP;
    CONFIRM_TEXT_AREA_WIDTH						= params.CONFIRM_TEXT_AREA_WIDTH * SCREEN_PIX_PER_DP;
    CONFIRM_DIVIDER_SIDE_MARGIN				    = params.CONFIRM_DIVIDER_SIDE_MARGIN				   * SCREEN_PIX_PER_DP;
    CONFIRM_DIVIDER_LINE_DISTANCE				= params.CONFIRM_DIVIDER_LINE_DISTANCE		 * SCREEN_PIX_PER_DP;
    CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE       = params.CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE      * SCREEN_PIX_PER_DP;
    CONFIRM_DIVIDER_LINE_DISTANCE2              = params.CONFIRM_DIVIDER_LINE_DISTANCE2             * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE     = params.CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE    * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_AMOUNT_LINE_DISTANCE			= params.CONFIRM_TEXT_AMOUNT_LINE_DISTANCE	 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_GAS_SIDE_MARGIN				= params.CONFIRM_TEXT_GAS_SIDE_MARGIN		 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE		= params.CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE		= params.CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_DATA_LINE_DISTANCE				= params.CONFIRM_TEXT_DATA_LINE_DISTANCE		 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE      = params.CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE     * SCREEN_PIX_PER_DP;

    CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE       = params.CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE      * SCREEN_PIX_PER_DP;
    CONFIRM_TEXT_FEE_LINE_DISTANCE				= params.CONFIRM_TEXT_FEE_LINE_DISTANCE * SCREEN_PIX_PER_DP;

	//keypad
	CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH		= params.CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH* SCREEN_PIX_PER_DP;
	CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT		= params.CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT* SCREEN_PIX_PER_DP;
	CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH			= CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH / 2;
	CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT			= CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT / 2;
	CONTROL_KEYPAD_BUTTON_WIDTH					= params.CONTROL_KEYPAD_BUTTON_WIDTH			 * SCREEN_PIX_PER_DP + CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH;
	CONTROL_KEYPAD_BUTTON_HEIGHT				= params.CONTROL_KEYPAD_BUTTON_HEIGHT		 * SCREEN_PIX_PER_DP + CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT;
	CONTROL_KEYPAD_TOP_MARGIN					= params.CONTROL_KEYPAD_TOP_MARGIN			 * SCREEN_PIX_PER_DP - CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT;
	CONTROL_KEYPAD_SIDE_MARGIN_LEFT				= params.CONTROL_KEYPAD_SIDE_MARGIN_LEFT		* SCREEN_PIX_PER_DP - CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH;
	CONTROL_KEYPAD_SIDE_MARGIN_RIGHT			= params.CONTROL_KEYPAD_SIDE_MARGIN_RIGHT	* SCREEN_PIX_PER_DP - CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH;
	CONTROL_KEYPAD_BACK_SPACE_WIDTH				= params.CONTROL_KEYPAD_BACK_SPACE_WIDTH		 * SCREEN_PIX_PER_DP + CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH;
	CONTROL_KEYPAD_BACK_SPACE_HEIGHT			= params.CONTROL_KEYPAD_BACK_SPACE_HEIGHT	 * SCREEN_PIX_PER_DP + CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT;

	if (display_type == _SUPPORT_DUAL_LCD_WINNER_MAIN || display_type == _SUPPORT_DUAL_LCD_TOP_MAIN) {
        int32_t keyAdjustment[CONTROL_KEYPAD_COLUMN_COUNT * 3][2] = {
                {-2,0}, {-1,0}, {-1,0}, {0,0}, {1,0}, {2,0}, {3,0}, {3,0}, {4,0}, {5,0}, // qwert...
                {-4,0}, {-4,0}, {-3,0}, {-2,0}, {-1,0}, {0,0}, {1,0}, {2,0}, {3,0}, {0,0}, // asdaf...
                {-4,0}, {-3,0}, {-1,0}, {-1,0}, {0,0}, {1,0}, {2,0}, {0,0}, {0,0}, {0,0} }; // zxcv
        memcpy(keypadLoctionAdjustment, keyAdjustment, sizeof(keyAdjustment));
	} else {
        int32_t keyAdjustment[CONTROL_KEYPAD_COLUMN_COUNT * 3][2] = {
                {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, // qwert...
                {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {0,0}, // asdaf...
                {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {0,0}, {0,0}, {0,0} }; // zxcv
        memcpy(keypadLoctionAdjustment, keyAdjustment, sizeof(keyAdjustment));
	}

	backspaceLoctionAdjustment[0] = 1;
	backspaceLoctionAdjustment[1] = 0;

	//restore
	RESTORE_KEYPAD_START_X						= params.RESTORE_KEYPAD_START_X;
	RESTORE_KEYPAD_START_Y						= (SCREEN_STRETCH_VALUE_DP + params.RESTORE_KEYPAD_START_Y) * SCREEN_PIX_PER_DP;

	RESTORE_MNEMONIC_TEXTBOX_WIDTH				= params.RESTORE_MNEMONIC_TEXTBOX_WIDTH			* SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTBOX_HEIGHT				= params.RESTORE_MNEMONIC_TEXTBOX_HEIGHT			* SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_START_X			= params.RESTORE_MNEMONIC_TEXTINPUT_START_X		* SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_START_Y			= params.RESTORE_MNEMONIC_TEXTINPUT_START_Y		 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_WIDTH			= params.RESTORE_MNEMONIC_TEXTINPUT_WIDTH		 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_HEIGHT			= params.RESTORE_MNEMONIC_TEXTINPUT_HEIGHT		* SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN	= params.RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y		= params.RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y	 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN	= params.RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN = params.RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN* SCREEN_PIX_PER_DP;

	RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH		= params.RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT		= params.RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_TOP_MARGIN			= params.RESTORE_MNEMONIC_LIST_TOP_MARGIN  * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_SIDE_MARGIN			= params.RESTORE_MNEMONIC_LIST_SIDE_MARGIN * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_MAX_COUNT				= params.RESTORE_MNEMONIC_LIST_MAX_COUNT;
	RESTORE_MNEMONIC_LIST_COLUMN_COUNT			= params.RESTORE_MNEMONIC_LIST_COLUMN_COUNT;
	RESTORE_MNEMONIC_LIST_LINE_DISTANCE			= params.RESTORE_MNEMONIC_LIST_LINE_DISTANCE * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN		= params.RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN		= params.RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN	* SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT		= params.RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT;
	RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE	= params.RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE;
	RESTORE_MNEMONIC_RECOMMEND_WIDTH			= params.RESTORE_MNEMONIC_RECOMMEND_WIDTH * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_RECOMMEND_MORE_WIDTH			= params.RESTORE_MNEMONIC_RECOMMEND_MORE_WIDTH * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_RECOMMEND_HEIGHT			= params.RESTORE_MNEMONIC_RECOMMEND_HEIGHT * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_RECOMMEND_MORE_HEIGHT			= params.RESTORE_MNEMONIC_RECOMMEND_MORE_HEIGHT * SCREEN_PIX_PER_DP;
    RESTORE_MNEMONIC_RECOMMEND_LIST_COUNT       = params.RESTORE_MNEMONIC_RECOMMEND_LIST_COUNT;

	//pinpad
    if (display_type == _SUPPORT_DUAL_LCD_WINNER_MAIN) {
        setScreenType(SCREEN_TYPE_WINNER_MAIN);
        SCREEN_PIX_PER_DP = 3;
        SCREEN_WIDTH = W1536_SCREEN_HEIGHT_DEFAULT;
        SCREEN_HEIGHT = W1536_SCREEN_WIDTH;
    } else if (display_type == _SUPPORT_DUAL_LCD_TOP_MAIN) {
		setScreenType(SCREEN_TYPE_TOP_MAIN);
		SCREEN_PIX_PER_DP = 3;
		SCREEN_WIDTH = W1768_SCREEN_HEIGHT_DEFAULT;
		SCREEN_HEIGHT = W1768_SCREEN_WIDTH;
	}

    uint32_t SCREEN_HEIGHT_DP                   = (uint32_t)(SCREEN_HEIGHT/SCREEN_PIX_PER_DP);

	PINPAD_SOFTKEY_DP							= params.PINPAD_SOFTKEY_DP;
    PINPAD_SOFTKEY_HEIGHT						= params.PINPAD_SOFTKEY_HEIGHT;

    if (_SUPPORT_DISPLAY_HIDE_NOTCH) {
        PINPAD_BOTTOM_BAR_HEIGHT					= params.PINPAD_BOTTOM_BAR_HEIGHT;
    } else {
        PINPAD_BOTTOM_BAR_HEIGHT					= 0;
    }

	PINPAD_KEY_WIDTH							= params.PINPAD_KEY_WIDTH;
	PINPAD_KEY_HEIGHT							= params.PINPAD_KEY_HEIGHT;
	PINPAD_STAR_SIZE							= (params.PINPAD_STAR_SIZE * SCREEN_PIX_PER_DP);
	PINPAD_HEIGHT_DP							= params.PINPAD_HEIGHT_DP;

	PINPAD_SOFTKEY_LEFT							= params.PINPAD_SOFTKEY_LEFT;
	
    if(display_type == _SUPPORT_DUAL_LCD_WINNER_MAIN || display_type == _SUPPORT_DUAL_LCD_TOP_MAIN) {
        PINPAD_COL1_LEFT_HD							= (params.PINPAD_COL1_LEFT_HD);
        PINPAD_COL1_RIGHT_HD						= (PINPAD_COL1_LEFT_HD + PINPAD_KEY_WIDTH);
        PINPAD_COL2_LEFT_HD							= (PINPAD_COL1_RIGHT_HD + params.PINPAD_COL2_LEFT_HD);
        PINPAD_COL2_RIGHT_HD						= (PINPAD_COL2_LEFT_HD + PINPAD_KEY_WIDTH);
        PINPAD_COL3_LEFT_HD							= (PINPAD_COL2_RIGHT_HD + params.PINPAD_COL3_LEFT_HD);
        PINPAD_COL3_RIGHT_HD						= (PINPAD_COL3_LEFT_HD + PINPAD_KEY_WIDTH);

        //PINPAD_HEIGHT_DP = 278dp (834pixel), but the pixel real size is 831pixel
        PINPAD_LINE1_TOP_HD							= (SCREEN_WIDTH - PINPAD_SOFTKEY_HEIGHT - (PINPAD_HEIGHT_DP * SCREEN_PIX_PER_DP-3) + params.PINPAD_LINE1_TOP_HD * SCREEN_PIX_PER_DP);

        PINPAD_SOFTKEY_TOP = 0;
        PINPAD_SOFTKEY_BACK_TOP						= SCREEN_WIDTH - PINPAD_SOFTKEY_HEIGHT; // ((SCREEN_WIDTH_DP - SOFTKEY_DP) * PIX_PER_DP)
        PINPAD_SOFTKEY_BACK_BOTTOM					= SCREEN_WIDTH; // (SCREEN_WIDTH_DP * PIX_PER_DP)

        PINPAD_SOFTKEY_BACK_RIGHT					= ((params.PINPAD_SOFTKEY_BACK_RIGHT) * SCREEN_PIX_PER_DP) + PINPAD_KEY_WIDTH;

        PINPAD_SOFTKEY_BACK_BHR_LEFT				= SCREEN_HEIGHT - PINPAD_SOFTKEY_BACK_RIGHT;
        PINPAD_SOFTKEY_BACK_BHR_RIGHT				= SCREEN_HEIGHT - PINPAD_SOFTKEY_BACK_LEFT;

        PINPAD_STATUS_BAR_HEIGHT					= (params.PINPAD_STATUS_BAR_HEIGHT);
        PINPAD_ACTION_BAR_HEIGHT					= (params.PINPAD_ACTION_BAR_HEIGHT);

        PINPAD_SECURE_ICON_TOP						= (STANDARD_SCREEN_WIDTH_DP - PINPAD_SOFTKEY_DP - PINPAD_HEIGHT_DP + params.PINPAD_SECURE_ICON_TOP);
        PINPAD_SECURE_MODE_TEXT_TOP				    = (STANDARD_SCREEN_WIDTH_DP - PINPAD_SOFTKEY_DP - PINPAD_HEIGHT_DP + params.PINPAD_SECURE_MODE_TEXT_TOP);

        // PINPAD_LINE2_TOP_HD is 6dp(18pixel), but real pixel size is 17pixel
		PINPAD_LINE1_BOTTOM_HD						= (PINPAD_LINE1_TOP_HD + PINPAD_KEY_HEIGHT);
		PINPAD_LINE2_TOP_HD							= (PINPAD_LINE1_BOTTOM_HD + params.PINPAD_LINE2_TOP_HD * SCREEN_PIX_PER_DP -1);
		PINPAD_LINE2_BOTTOM_HD						= (PINPAD_LINE2_TOP_HD + PINPAD_KEY_HEIGHT);
		PINPAD_LINE3_TOP_HD							= (PINPAD_LINE2_BOTTOM_HD + params.PINPAD_LINE3_TOP_HD * SCREEN_PIX_PER_DP -1);
		PINPAD_LINE3_BOTTOM_HD						= (PINPAD_LINE3_TOP_HD + PINPAD_KEY_HEIGHT);
		PINPAD_LINE4_TOP_HD							= (PINPAD_LINE3_BOTTOM_HD + params.PINPAD_LINE4_TOP_HD * SCREEN_PIX_PER_DP -1);
		PINPAD_LINE4_BOTTOM_HD						= (PINPAD_LINE4_TOP_HD + PINPAD_KEY_HEIGHT);

    } else {
        PINPAD_COL1_LEFT_HD							= (params.PINPAD_COL1_LEFT_HD * SCREEN_PIX_PER_DP);
        PINPAD_COL1_RIGHT_HD						= (PINPAD_COL1_LEFT_HD + PINPAD_KEY_WIDTH);
        PINPAD_COL2_LEFT_HD							= (PINPAD_COL1_RIGHT_HD + params.PINPAD_COL2_LEFT_HD * SCREEN_PIX_PER_DP);
        PINPAD_COL2_RIGHT_HD						= (PINPAD_COL2_LEFT_HD + PINPAD_KEY_WIDTH);
        PINPAD_COL3_LEFT_HD							= (PINPAD_COL2_RIGHT_HD + params.PINPAD_COL3_LEFT_HD * SCREEN_PIX_PER_DP);
        PINPAD_COL3_RIGHT_HD						= (PINPAD_COL3_LEFT_HD + PINPAD_KEY_WIDTH);

        PINPAD_LINE1_TOP_HD							= (SCREEN_HEIGHT - PINPAD_SOFTKEY_HEIGHT - (PINPAD_HEIGHT_DP - params.PINPAD_LINE1_TOP_HD) * SCREEN_PIX_PER_DP);

        PINPAD_SOFTKEY_TOP							= ((STANDARD_SCREEN_HEIGHT_DP - PINPAD_SOFTKEY_DP) * SCREEN_PIX_PER_DP);
        PINPAD_SOFTKEY_BACK_TOP						= ((STANDARD_SCREEN_HEIGHT_DP - PINPAD_SOFTKEY_DP) * SCREEN_PIX_PER_DP);
        PINPAD_SOFTKEY_BACK_BOTTOM					= (STANDARD_SCREEN_HEIGHT_DP * SCREEN_PIX_PER_DP);

        PINPAD_SOFTKEY_BACK_RIGHT					= ((params.PINPAD_SOFTKEY_BACK_RIGHT) * SCREEN_PIX_PER_DP);

        PINPAD_SOFTKEY_BACK_BHR_LEFT				= SCREEN_WIDTH - PINPAD_SOFTKEY_BACK_RIGHT;
        PINPAD_SOFTKEY_BACK_BHR_RIGHT				= SCREEN_WIDTH - PINPAD_SOFTKEY_BACK_LEFT;

        PINPAD_STATUS_BAR_HEIGHT					= (params.PINPAD_STATUS_BAR_HEIGHT * SCREEN_PIX_PER_DP);
        PINPAD_ACTION_BAR_HEIGHT					= (params.PINPAD_ACTION_BAR_HEIGHT * SCREEN_PIX_PER_DP);

        PINPAD_SECURE_ICON_TOP						= (STANDARD_SCREEN_HEIGHT_DP - PINPAD_SOFTKEY_DP - PINPAD_HEIGHT_DP + params.PINPAD_SECURE_ICON_TOP);
        PINPAD_SECURE_MODE_TEXT_TOP				    = (STANDARD_SCREEN_HEIGHT_DP - PINPAD_SOFTKEY_DP - PINPAD_HEIGHT_DP + params.PINPAD_SECURE_MODE_TEXT_TOP);

		PINPAD_LINE1_BOTTOM_HD						= (PINPAD_LINE1_TOP_HD + PINPAD_KEY_HEIGHT);
		PINPAD_LINE2_TOP_HD							= (PINPAD_LINE1_BOTTOM_HD + params.PINPAD_LINE2_TOP_HD * SCREEN_PIX_PER_DP);
		PINPAD_LINE2_BOTTOM_HD						= (PINPAD_LINE2_TOP_HD + PINPAD_KEY_HEIGHT);
		PINPAD_LINE3_TOP_HD							= (PINPAD_LINE2_BOTTOM_HD + params.PINPAD_LINE3_TOP_HD * SCREEN_PIX_PER_DP);
		PINPAD_LINE3_BOTTOM_HD						= (PINPAD_LINE3_TOP_HD + PINPAD_KEY_HEIGHT);
		PINPAD_LINE4_TOP_HD							= (PINPAD_LINE3_BOTTOM_HD + params.PINPAD_LINE4_TOP_HD * SCREEN_PIX_PER_DP);
		PINPAD_LINE4_BOTTOM_HD						= (PINPAD_LINE4_TOP_HD + PINPAD_KEY_HEIGHT);

    }

    PINPAD_SOFTKEY_BACK_LEFT					= ((params.PINPAD_SOFTKEY_BACK_LEFT) * SCREEN_PIX_PER_DP);
//    PINPAD_SOFTKEY_BACK_RIGHT					= ((params.PINPAD_SOFTKEY_BACK_RIGHT) * SCREEN_PIX_PER_DP);

	//PINPAD_SOFTKEY_BACK_BHR_LEFT				= SCREEN_WIDTH - PINPAD_SOFTKEY_BACK_RIGHT;
	//PINPAD_SOFTKEY_BACK_BHR_RIGHT				= SCREEN_WIDTH - PINPAD_SOFTKEY_BACK_LEFT;
	PINPAD_SOFTKEY_BACK_BHR_TOP					= PINPAD_SOFTKEY_BACK_TOP;
	PINPAD_SOFTKEY_BACK_BHR_BOTTOM				= PINPAD_SOFTKEY_BACK_BOTTOM;

//    PINPAD_STATUS_BAR_HEIGHT					= (params.PINPAD_STATUS_BAR_HEIGHT * SCREEN_PIX_PER_DP);

	PINPAD_ACTION_BAR_TOP						= (PINPAD_STATUS_BAR_HEIGHT);
//	PINPAD_ACTION_BAR_HEIGHT					= (params.PINPAD_ACTION_BAR_HEIGHT * SCREEN_PIX_PER_DP);
	PINPAD_ACTION_BAR_TEXT_LEFT_DP				= params.PINPAD_ACTION_BAR_TEXT_LEFT_DP;

	PINPAD_PIN_BOX_DISTANCE					= params.PINPAD_PIN_BOX_DISTANCE; // 225 + 26 [(100(increased dp)-48(soft_key dp))/2]
	PINPAD_PIN_BOX_WIDTH						= (params.PINPAD_PIN_BOX_WIDTH * SCREEN_PIX_PER_DP);
	PINPAD_PIN_BOX_HEIGHT						= (params.PINPAD_PIN_BOX_HEIGHT * SCREEN_PIX_PER_DP);
	PINPAD_PIN_BOX_SPACE						= (params.PINPAD_PIN_BOX_SPACE * SCREEN_PIX_PER_DP);
	PINPAD_PIN_BOX_IMG_WIDTH				= PINPAD_PIN_BOX_WIDTH;
	PINPAD_PIN_BOX_IMG_HEIGHT				= PINPAD_PIN_BOX_HEIGHT;
	PINPAD_PIN_BOX_TOP							= (PINPAD_PIN_BOX_DISTANCE * SCREEN_PIX_PER_DP);
	PINPAD_PIN_BOX_BOTTOM						= (PINPAD_PIN_BOX_TOP + PINPAD_PIN_BOX_HEIGHT);

	PINPAD_PIN_TEXT_TOP							= (PINPAD_PIN_BOX_BOTTOM + params.PINPAD_PIN_TEXT_TOP * SCREEN_PIX_PER_DP);
	PINPAD_PIN_TEXT_BOTTOM					= (PINPAD_LINE1_TOP_HD - params.PINPAD_PIN_TEXT_BOTTOM);

	PINPAD_PROMPT_DISTANCE						= params.PINPAD_PROMPT_DISTANCE;
	PINPAD_PROMPT_AREA_TOP						= (PINPAD_ACTION_BAR_TOP + PINPAD_ACTION_BAR_HEIGHT);
	PINPAD_PROMPT_AREA_BOTTOM					= ((PINPAD_PIN_BOX_DISTANCE - PINPAD_PROMPT_DISTANCE) * SCREEN_PIX_PER_DP);

	PINPAD_SECURE_ICON_WIDTH					= params.PINPAD_SECURE_ICON_WIDTH;
    //PINPAD_SECURE_ICON_TOP						= (STANDARD_SCREEN_HEIGHT_DP - PINPAD_SOFTKEY_DP - PINPAD_HEIGHT_DP + params.PINPAD_SECURE_ICON_TOP);
    //PINPAD_SECURE_MODE_TEXT_TOP				    = (STANDARD_SCREEN_HEIGHT_DP - PINPAD_SOFTKEY_DP - PINPAD_HEIGHT_DP + params.PINPAD_SECURE_MODE_TEXT_TOP);

	PINPAD_SECURE_ICON_TEXT_DISTANCE	        = params.PINPAD_SECURE_ICON_TEXT_DISTANCE;

	PINPAD_ACTION_BAR_BACK_BUTTON_SIZE			= (params.PINPAD_ACTION_BAR_BACK_BUTTON_SIZE * SCREEN_PIX_PER_DP);
	PINPAD_ACTION_BAR_BACK_BUTTON_LEFT			= (params.PINPAD_ACTION_BAR_BACK_BUTTON_LEFT * SCREEN_PIX_PER_DP);
	PINPAD_ACTION_BAR_BACK_BUTTON_RIGHT			= (PINPAD_ACTION_BAR_BACK_BUTTON_LEFT + PINPAD_ACTION_BAR_BACK_BUTTON_SIZE);
	PINPAD_ACTION_BAR_BACK_BUTTON_TOP			= (params.PINPAD_ACTION_BAR_BACK_BUTTON_TOP * SCREEN_PIX_PER_DP + (PINPAD_ACTION_BAR_HEIGHT - PINPAD_ACTION_BAR_BACK_BUTTON_SIZE) / 2);
	PINPAD_ACTION_BAR_BACK_BUTTON_BOTTOM		= (PINPAD_ACTION_BAR_BACK_BUTTON_TOP + PINPAD_ACTION_BAR_BACK_BUTTON_SIZE);
}


#if defined(TEST_LEGACY_LAYOUT)
bool testInitLayout() {
    TTY_LOG("saving current layout constants");

    uint32_t _BACKUP_MNEMONIC_LIST_COLUMN_COUNT = BACKUP_MNEMONIC_LIST_COLUMN_COUNT;
    uint32_t _BACKUP_MNEMONIC_LIST_TOP_MARGIN = BACKUP_MNEMONIC_LIST_TOP_MARGIN;
    uint32_t _BACKUP_MNEMONIC_LIST_SIDE_MARGIN = BACKUP_MNEMONIC_LIST_SIDE_MARGIN;
    uint32_t _BACKUP_MNEMONIC_LIST_TEXTBOX_WIDTH = BACKUP_MNEMONIC_LIST_TEXTBOX_WIDTH;
    uint32_t _BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT = BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT;
    uint32_t _BACKUP_MNEMONIC_LIST_NUMBER_WIDTH = BACKUP_MNEMONIC_LIST_NUMBER_WIDTH;
    uint32_t _BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE = BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE;
    uint32_t _BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE = BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE;
    uint32_t _BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE = BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE;
    uint32_t _BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_TOP_MARGIN = BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_TOP_MARGIN;
    uint32_t _BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_WIDTH = BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_WIDTH;
    uint32_t _BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_HEIGHT = BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_HEIGHT;
    uint32_t _BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN = BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN;
    uint32_t _BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN = BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN;
    uint32_t _BACKUP_QUIZ_TEXTINPUT_WIDTH = BACKUP_QUIZ_TEXTINPUT_WIDTH;
    uint32_t _BACKUP_QUIZ_TEXTINPUT_HEIGHT = BACKUP_QUIZ_TEXTINPUT_HEIGHT;
    uint32_t _BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE = BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE;
    uint32_t _BACKUP_QUIZ_BUTTON_START_TOP_MARGIN = BACKUP_QUIZ_BUTTON_START_TOP_MARGIN;
    uint32_t _BACKUP_QUIZ_BUTTON_LEFT_MARGIN = BACKUP_QUIZ_BUTTON_LEFT_MARGIN;
    uint32_t _BACKUP_QUIZ_BUTTON_WIDTH = BACKUP_QUIZ_BUTTON_WIDTH;
    uint32_t _BACKUP_QUIZ_BUTTON_HEIGHT = BACKUP_QUIZ_BUTTON_HEIGHT;
    uint32_t _BACKUP_QUIZ_NEXT_DISTANCE = BACKUP_QUIZ_NEXT_DISTANCE;
    uint32_t _BACKUP_QUIZ_KEYPAD_START_X = BACKUP_QUIZ_KEYPAD_START_X;
    uint32_t _BACKUP_QUIZ_KEYPAD_START_Y = BACKUP_QUIZ_KEYPAD_START_Y;
    uint32_t _CONFIRM_TEXT_SIDE_MARGIN = CONFIRM_TEXT_SIDE_MARGIN;
    uint32_t _CONFIRM_TEXT_ADDRESS_HEIGHT = CONFIRM_TEXT_ADDRESS_HEIGHT;
    uint32_t _CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE = CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE;
    uint32_t _CONFIRM_TEXT_AREA_WIDTH = CONFIRM_TEXT_AREA_WIDTH;
    uint32_t _CONFIRM_DIVIDER_SIDE_MARGIN = CONFIRM_DIVIDER_SIDE_MARGIN;
    uint32_t _CONFIRM_DIVIDER_LINE_DISTANCE = CONFIRM_DIVIDER_LINE_DISTANCE;
    uint32_t _CONFIRM_DIVIDER_LINE_DISTANCE2 = CONFIRM_DIVIDER_LINE_DISTANCE2;
    uint32_t _CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE = CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE;
    uint32_t _CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE = CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE;
    uint32_t _CONFIRM_TEXT_AMOUNT_LINE_DISTANCE = CONFIRM_TEXT_AMOUNT_LINE_DISTANCE;
    uint32_t _CONFIRM_TEXT_GAS_SIDE_MARGIN = CONFIRM_TEXT_GAS_SIDE_MARGIN;
    uint32_t _CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE = CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE;
    uint32_t _CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE = CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE;
    uint32_t _CONFIRM_TEXT_DATA_LINE_DISTANCE = CONFIRM_TEXT_DATA_LINE_DISTANCE;
    uint32_t _CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE = CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE;
    uint32_t _CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE = CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE;
    uint32_t _CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH = CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH;
    uint32_t _CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT = CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT;
    uint32_t _CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH = CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH;
    uint32_t _CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT = CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT;
    uint32_t _CONTROL_KEYPAD_BUTTON_WIDTH = CONTROL_KEYPAD_BUTTON_WIDTH;
    uint32_t _CONTROL_KEYPAD_BUTTON_HEIGHT = CONTROL_KEYPAD_BUTTON_HEIGHT;
    uint32_t _CONTROL_KEYPAD_TOP_MARGIN = CONTROL_KEYPAD_TOP_MARGIN;
    uint32_t _CONTROL_KEYPAD_SIDE_MARGIN_LEFT = CONTROL_KEYPAD_SIDE_MARGIN_LEFT;
    uint32_t _CONTROL_KEYPAD_SIDE_MARGIN_RIGHT = CONTROL_KEYPAD_SIDE_MARGIN_RIGHT;
    uint32_t _CONTROL_KEYPAD_BACK_SPACE_WIDTH = CONTROL_KEYPAD_BACK_SPACE_WIDTH;
    uint32_t _CONTROL_KEYPAD_BACK_SPACE_HEIGHT = CONTROL_KEYPAD_BACK_SPACE_HEIGHT;
    uint32_t _RESTORE_KEYPAD_START_X = RESTORE_KEYPAD_START_X;
    uint32_t _RESTORE_KEYPAD_START_Y = RESTORE_KEYPAD_START_Y;
    uint32_t _RESTORE_MNEMONIC_TEXTBOX_WIDTH = RESTORE_MNEMONIC_TEXTBOX_WIDTH;
    uint32_t _RESTORE_MNEMONIC_TEXTBOX_HEIGHT = RESTORE_MNEMONIC_TEXTBOX_HEIGHT;
    uint32_t _RESTORE_MNEMONIC_TEXTINPUT_START_X = RESTORE_MNEMONIC_TEXTINPUT_START_X;
    uint32_t _RESTORE_MNEMONIC_TEXTINPUT_START_Y = RESTORE_MNEMONIC_TEXTINPUT_START_Y;
    uint32_t _RESTORE_MNEMONIC_TEXTINPUT_WIDTH = RESTORE_MNEMONIC_TEXTINPUT_WIDTH;
    uint32_t _RESTORE_MNEMONIC_TEXTINPUT_HEIGHT = RESTORE_MNEMONIC_TEXTINPUT_HEIGHT;
    uint32_t _RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN = RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN;
    uint32_t _RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y = RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y;
    uint32_t _RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN = RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN;
    uint32_t _RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN = RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN;
    uint32_t _RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH = RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH;
    uint32_t _RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT = RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT;
    uint32_t _RESTORE_MNEMONIC_LIST_TOP_MARGIN = RESTORE_MNEMONIC_LIST_TOP_MARGIN;
    uint32_t _RESTORE_MNEMONIC_LIST_SIDE_MARGIN = RESTORE_MNEMONIC_LIST_SIDE_MARGIN;
    uint32_t _RESTORE_MNEMONIC_LIST_MAX_COUNT = RESTORE_MNEMONIC_LIST_MAX_COUNT;
    uint32_t _RESTORE_MNEMONIC_LIST_COLUMN_COUNT = RESTORE_MNEMONIC_LIST_COLUMN_COUNT;
    uint32_t _RESTORE_MNEMONIC_LIST_LINE_DISTANCE = RESTORE_MNEMONIC_LIST_LINE_DISTANCE;
    uint32_t _RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN = RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN;
    uint32_t _RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN = RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN;
    uint32_t _RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT = RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT;
    uint32_t _RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE = RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE;
    uint32_t _RESTORE_MNEMONIC_RECOMMEND_WIDTH = RESTORE_MNEMONIC_RECOMMEND_WIDTH;
    uint32_t _RESTORE_MNEMONIC_RECOMMEND_HEIGHT = RESTORE_MNEMONIC_RECOMMEND_HEIGHT;
    uint32_t _PINPAD_SOFTKEY_DP = PINPAD_SOFTKEY_DP;
    uint32_t _PINPAD_SOFTKEY_HEIGHT = PINPAD_SOFTKEY_HEIGHT;
    uint32_t _PINPAD_BOTTOM_BAR_HEIGHT = PINPAD_BOTTOM_BAR_HEIGHT;
    uint32_t _PINPAD_KEY_WIDTH = PINPAD_KEY_WIDTH;
    uint32_t _PINPAD_KEY_HEIGHT = PINPAD_KEY_HEIGHT;
    uint32_t _PINPAD_STAR_SIZE = PINPAD_STAR_SIZE;
    uint32_t _PINPAD_HEIGHT_DP = PINPAD_HEIGHT_DP;
    uint32_t _PINPAD_COL1_LEFT_HD = PINPAD_COL1_LEFT_HD;
    uint32_t _PINPAD_COL1_RIGHT_HD = PINPAD_COL1_RIGHT_HD;
    uint32_t _PINPAD_COL2_LEFT_HD = PINPAD_COL2_LEFT_HD;
    uint32_t _PINPAD_COL2_RIGHT_HD = PINPAD_COL2_RIGHT_HD;
    uint32_t _PINPAD_COL3_LEFT_HD = PINPAD_COL3_LEFT_HD;
    uint32_t _PINPAD_COL3_RIGHT_HD = PINPAD_COL3_RIGHT_HD;
    uint32_t _PINPAD_LINE1_TOP_HD = PINPAD_LINE1_TOP_HD;
    uint32_t _PINPAD_LINE1_BOTTOM_HD = PINPAD_LINE1_BOTTOM_HD;
    uint32_t _PINPAD_LINE2_TOP_HD = PINPAD_LINE2_TOP_HD;
    uint32_t _PINPAD_LINE2_BOTTOM_HD = PINPAD_LINE2_BOTTOM_HD;
    uint32_t _PINPAD_LINE3_TOP_HD = PINPAD_LINE3_TOP_HD;
    uint32_t _PINPAD_LINE3_BOTTOM_HD = PINPAD_LINE3_BOTTOM_HD;
    uint32_t _PINPAD_LINE4_TOP_HD = PINPAD_LINE4_TOP_HD;
    uint32_t _PINPAD_LINE4_BOTTOM_HD = PINPAD_LINE4_BOTTOM_HD;
    uint32_t _PINPAD_SOFTKEY_LEFT = PINPAD_SOFTKEY_LEFT;
    uint32_t _PINPAD_SOFTKEY_TOP = PINPAD_SOFTKEY_TOP;
    uint32_t _PINPAD_SOFTKEY_BACK_LEFT = PINPAD_SOFTKEY_BACK_LEFT;
    uint32_t _PINPAD_SOFTKEY_BACK_RIGHT = PINPAD_SOFTKEY_BACK_RIGHT;
    uint32_t _PINPAD_SOFTKEY_BACK_TOP = PINPAD_SOFTKEY_BACK_TOP;
    uint32_t _PINPAD_SOFTKEY_BACK_BOTTOM = PINPAD_SOFTKEY_BACK_BOTTOM;
    uint32_t _PINPAD_SOFTKEY_BACK_BHR_LEFT = PINPAD_SOFTKEY_BACK_BHR_LEFT;
    uint32_t _PINPAD_SOFTKEY_BACK_BHR_RIGHT = PINPAD_SOFTKEY_BACK_BHR_RIGHT;
    uint32_t _PINPAD_SOFTKEY_BACK_BHR_TOP = PINPAD_SOFTKEY_BACK_BHR_TOP;
    uint32_t _PINPAD_SOFTKEY_BACK_BHR_BOTTOM = PINPAD_SOFTKEY_BACK_BHR_BOTTOM;
    uint32_t _PINPAD_STATUS_BAR_HEIGHT = PINPAD_STATUS_BAR_HEIGHT;
    uint32_t _PINPAD_ACTION_BAR_TOP = PINPAD_ACTION_BAR_TOP;
    uint32_t _PINPAD_ACTION_BAR_HEIGHT = PINPAD_ACTION_BAR_HEIGHT;
    uint32_t _PINPAD_ACTION_BAR_TEXT_LEFT_DP = PINPAD_ACTION_BAR_TEXT_LEFT_DP;
    uint32_t _PINPAD_PIN_BOX_DISTANCE = PINPAD_PIN_BOX_DISTANCE;
    uint32_t _PINPAD_PIN_BOX_WIDTH = PINPAD_PIN_BOX_WIDTH;
    uint32_t _PINPAD_PIN_BOX_HEIGHT = PINPAD_PIN_BOX_HEIGHT;
    uint32_t _PINPAD_PIN_BOX_SPACE = PINPAD_PIN_BOX_SPACE;
    uint32_t _PINPAD_PIN_BOX_IMG_WIDTH = PINPAD_PIN_BOX_IMG_WIDTH;
    uint32_t _PINPAD_PIN_BOX_IMG_HEIGHT = PINPAD_PIN_BOX_IMG_HEIGHT;
    uint32_t _PINPAD_PIN_BOX_TOP = PINPAD_PIN_BOX_TOP;
    uint32_t _PINPAD_PIN_BOX_BOTTOM = PINPAD_PIN_BOX_BOTTOM;
    uint32_t _PINPAD_PIN_TEXT_TOP = PINPAD_PIN_TEXT_TOP;
    uint32_t _PINPAD_PIN_TEXT_BOTTOM = PINPAD_PIN_TEXT_BOTTOM;
    uint32_t _PINPAD_PROMPT_DISTANCE = PINPAD_PROMPT_DISTANCE;
    uint32_t _PINPAD_PROMPT_AREA_TOP = PINPAD_PROMPT_AREA_TOP;
    uint32_t _PINPAD_PROMPT_AREA_BOTTOM = PINPAD_PROMPT_AREA_BOTTOM;
    uint32_t _PINPAD_SECURE_ICON_WIDTH = PINPAD_SECURE_ICON_WIDTH;
    uint32_t _PINPAD_SECURE_ICON_TOP = PINPAD_SECURE_ICON_TOP;
    uint32_t _PINPAD_SECURE_ICON_TEXT_DISTANCE = PINPAD_SECURE_ICON_TEXT_DISTANCE;
    uint32_t _PINPAD_SECURE_MODE_TEXT_TOP = PINPAD_SECURE_MODE_TEXT_TOP;
    uint32_t _PINPAD_ACTION_BAR_BACK_BUTTON_SIZE = PINPAD_ACTION_BAR_BACK_BUTTON_SIZE;
    uint32_t _PINPAD_ACTION_BAR_BACK_BUTTON_LEFT = PINPAD_ACTION_BAR_BACK_BUTTON_LEFT;
    uint32_t _PINPAD_ACTION_BAR_BACK_BUTTON_RIGHT = PINPAD_ACTION_BAR_BACK_BUTTON_RIGHT;
    uint32_t _PINPAD_ACTION_BAR_BACK_BUTTON_TOP = PINPAD_ACTION_BAR_BACK_BUTTON_TOP;
    uint32_t _PINPAD_ACTION_BAR_BACK_BUTTON_BOTTOM = PINPAD_ACTION_BAR_BACK_BUTTON_BOTTOM;
    float _SCREEN_PIX_PER_DP = SCREEN_PIX_PER_DP;
    uint32_t _SCREEN_PUNCHCUT_HEIGHT = SCREEN_PUNCHCUT_HEIGHT;
    uint32_t _SCREEN_WIDTH = SCREEN_WIDTH;
    uint32_t _SCREEN_HEIGHT = SCREEN_HEIGHT;
    EScreenType _gScreenType = gScreenType;
    uint32_t _g_pinbox_space = g_pinbox_space;
    uint32_t _g_pinbox_width = g_pinbox_width;
    uint32_t _g_pinbox_height = g_pinbox_height;
    uint32_t _g_pinbox_y = g_pinbox_y;


    // verify
    TTY_LOG("verify and return");
    if (_BACKUP_MNEMONIC_LIST_COLUMN_COUNT != BACKUP_MNEMONIC_LIST_COLUMN_COUNT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_MNEMONIC_LIST_COLUMN_COUNT", _BACKUP_MNEMONIC_LIST_COLUMN_COUNT, BACKUP_MNEMONIC_LIST_COLUMN_COUNT);
        return false;
    }
    if (_BACKUP_MNEMONIC_LIST_TOP_MARGIN != BACKUP_MNEMONIC_LIST_TOP_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_MNEMONIC_LIST_TOP_MARGIN", _BACKUP_MNEMONIC_LIST_TOP_MARGIN, BACKUP_MNEMONIC_LIST_TOP_MARGIN);
        return false;
    }
    if (_BACKUP_MNEMONIC_LIST_SIDE_MARGIN != BACKUP_MNEMONIC_LIST_SIDE_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_MNEMONIC_LIST_SIDE_MARGIN", _BACKUP_MNEMONIC_LIST_SIDE_MARGIN, BACKUP_MNEMONIC_LIST_SIDE_MARGIN);
        return false;
    }

    if (_BACKUP_MNEMONIC_LIST_TEXTBOX_WIDTH != BACKUP_MNEMONIC_LIST_TEXTBOX_WIDTH) {
    	TTY_LOG("%s is not matched! %d : %d ", "_BACKUP_MNEMONIC_LIST_TEXTBOX_WIDTH", _BACKUP_MNEMONIC_LIST_TEXTBOX_WIDTH, BACKUP_MNEMONIC_LIST_TEXTBOX_WIDTH);
    	return false;
    }

    if (_BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT != BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT", _BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT, BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT);
        return false;
    }
    if (_BACKUP_MNEMONIC_LIST_NUMBER_WIDTH != BACKUP_MNEMONIC_LIST_NUMBER_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_MNEMONIC_LIST_NUMBER_WIDTH", _BACKUP_MNEMONIC_LIST_NUMBER_WIDTH, BACKUP_MNEMONIC_LIST_NUMBER_WIDTH);
        return false;
    }
    if (_BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE != BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE", _BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE, BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE);
        return false;
    }
    if (_BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE != BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE", _BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE, BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE);
        return false;
    }
    if (_BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE != BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE", _BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE, BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE);
        return false;
    }
    if (_BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_TOP_MARGIN != BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_TOP_MARGIN) {
    	TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_TOP_MARGIN", _BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_TOP_MARGIN, BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_TOP_MARGIN);
        return false;
    }
    if (_BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_WIDTH != BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_WIDTH) {
    	TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_WIDTH", BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_WIDTH, BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_WIDTH);
        return false;
    }
    if (_BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_HEIGHT != BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_HEIGHT) {
    	TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_HEIGHT", _BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_HEIGHT, BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_HEIGHT);
        return false;
    }
    if (_BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN != BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN", _BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN, BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN);
        return false;
    }
    if (_BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN != BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN", _BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN, BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN);
        return false;
    }
    if (_BACKUP_QUIZ_TEXTINPUT_WIDTH != BACKUP_QUIZ_TEXTINPUT_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_TEXTINPUT_WIDTH", _BACKUP_QUIZ_TEXTINPUT_WIDTH, BACKUP_QUIZ_TEXTINPUT_WIDTH);
        return false;
    }
    if (_BACKUP_QUIZ_TEXTINPUT_HEIGHT != BACKUP_QUIZ_TEXTINPUT_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_TEXTINPUT_HEIGHT", _BACKUP_QUIZ_TEXTINPUT_HEIGHT, BACKUP_QUIZ_TEXTINPUT_HEIGHT);
        return false;
    }
    if (_BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE != BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE", _BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE, BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE);
        return false;
    }
    if (_BACKUP_QUIZ_BUTTON_START_TOP_MARGIN != BACKUP_QUIZ_BUTTON_START_TOP_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_BUTTON_START_TOP_MARGIN", _BACKUP_QUIZ_BUTTON_START_TOP_MARGIN, BACKUP_QUIZ_BUTTON_START_TOP_MARGIN);
        return false;
    }
    if (_BACKUP_QUIZ_BUTTON_LEFT_MARGIN != BACKUP_QUIZ_BUTTON_LEFT_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_BUTTON_LEFT_MARGIN", _BACKUP_QUIZ_BUTTON_LEFT_MARGIN, BACKUP_QUIZ_BUTTON_LEFT_MARGIN);
        return false;
    }
    if (_BACKUP_QUIZ_BUTTON_WIDTH != BACKUP_QUIZ_BUTTON_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_BUTTON_WIDTH", _BACKUP_QUIZ_BUTTON_WIDTH, BACKUP_QUIZ_BUTTON_WIDTH);
        return false;
    }
    if (_BACKUP_QUIZ_BUTTON_HEIGHT != BACKUP_QUIZ_BUTTON_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_BUTTON_HEIGHT", _BACKUP_QUIZ_BUTTON_HEIGHT, BACKUP_QUIZ_BUTTON_HEIGHT);
        return false;
    }
    if (_BACKUP_QUIZ_NEXT_DISTANCE != BACKUP_QUIZ_NEXT_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_NEXT_DISTANCE", _BACKUP_QUIZ_NEXT_DISTANCE, BACKUP_QUIZ_NEXT_DISTANCE);
        return false;
    }
    if (_BACKUP_QUIZ_KEYPAD_START_X != BACKUP_QUIZ_KEYPAD_START_X) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_KEYPAD_START_X", _BACKUP_QUIZ_KEYPAD_START_X, BACKUP_QUIZ_KEYPAD_START_X);
        return false;
    }
    if (_BACKUP_QUIZ_KEYPAD_START_Y != BACKUP_QUIZ_KEYPAD_START_Y) {
        TTY_LOG("%s is not mathced! %d : %d ", "_BACKUP_QUIZ_KEYPAD_START_Y", _BACKUP_QUIZ_KEYPAD_START_Y, BACKUP_QUIZ_KEYPAD_START_Y);
        return false;
    }
    if (_CONFIRM_TEXT_SIDE_MARGIN != CONFIRM_TEXT_SIDE_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_SIDE_MARGIN", _CONFIRM_TEXT_SIDE_MARGIN, CONFIRM_TEXT_SIDE_MARGIN);
        return false;
    }
    if (_CONFIRM_TEXT_ADDRESS_HEIGHT != CONFIRM_TEXT_ADDRESS_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_ADDRESS_HEIGHT", _CONFIRM_TEXT_ADDRESS_HEIGHT, CONFIRM_TEXT_ADDRESS_HEIGHT);
        return false;
    }
    if (_CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE != CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE", _CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE, CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE);
        return false;
    }
    if (_CONFIRM_TEXT_AREA_WIDTH != CONFIRM_TEXT_AREA_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_AREA_WIDTH", _CONFIRM_TEXT_AREA_WIDTH, CONFIRM_TEXT_AREA_WIDTH);
        return false;
    }
    if (_CONFIRM_DIVIDER_SIDE_MARGIN != CONFIRM_DIVIDER_SIDE_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_DIVIDER_SIDE_MARGIN", _CONFIRM_DIVIDER_SIDE_MARGIN, CONFIRM_DIVIDER_SIDE_MARGIN);
        return false;
    }
    if (_CONFIRM_DIVIDER_LINE_DISTANCE != CONFIRM_DIVIDER_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_DIVIDER_LINE_DISTANCE", _CONFIRM_DIVIDER_LINE_DISTANCE, CONFIRM_DIVIDER_LINE_DISTANCE);
        return false;
    }
    if (_CONFIRM_DIVIDER_LINE_DISTANCE2 != CONFIRM_DIVIDER_LINE_DISTANCE2) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_DIVIDER_LINE_DISTANCE2", _CONFIRM_DIVIDER_LINE_DISTANCE2, CONFIRM_DIVIDER_LINE_DISTANCE2);
        return false;
    }
    if (_CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE != CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE", _CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE, CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE);
        return false;
    }
    if (_CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE != CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE", _CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE, CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE);
        return false;
    }
    if (_CONFIRM_TEXT_AMOUNT_LINE_DISTANCE != CONFIRM_TEXT_AMOUNT_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_AMOUNT_LINE_DISTANCE", _CONFIRM_TEXT_AMOUNT_LINE_DISTANCE, CONFIRM_TEXT_AMOUNT_LINE_DISTANCE);
        return false;
    }
    if (_CONFIRM_TEXT_GAS_SIDE_MARGIN != CONFIRM_TEXT_GAS_SIDE_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_GAS_SIDE_MARGIN", _CONFIRM_TEXT_GAS_SIDE_MARGIN, CONFIRM_TEXT_GAS_SIDE_MARGIN);
        return false;
    }
    if (_CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE != CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE", _CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE, CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE);
        return false;
    }
    if (_CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE != CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE", _CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE, CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE);
        return false;
    }
    if (_CONFIRM_TEXT_DATA_LINE_DISTANCE != CONFIRM_TEXT_DATA_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_DATA_LINE_DISTANCE", _CONFIRM_TEXT_DATA_LINE_DISTANCE, CONFIRM_TEXT_DATA_LINE_DISTANCE);
        return false;
    }
    if (_CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE != CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE", _CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE, CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE);
        return false;
    }
    if (_CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE != CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE", _CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE, CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE);
        return false;
    }
    if (_CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH != CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH", _CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH, CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH);
        return false;
    }
    if (_CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT != CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT", _CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT, CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT);
        return false;
    }
    if (_CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH != CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH", _CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH, CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH);
        return false;
    }
    if (_CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT != CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT", _CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT, CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT);
        return false;
    }
    if (_CONTROL_KEYPAD_BUTTON_WIDTH != CONTROL_KEYPAD_BUTTON_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONTROL_KEYPAD_BUTTON_WIDTH", _CONTROL_KEYPAD_BUTTON_WIDTH, CONTROL_KEYPAD_BUTTON_WIDTH);
        return false;
    }
    if (_CONTROL_KEYPAD_BUTTON_HEIGHT != CONTROL_KEYPAD_BUTTON_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONTROL_KEYPAD_BUTTON_HEIGHT", _CONTROL_KEYPAD_BUTTON_HEIGHT, CONTROL_KEYPAD_BUTTON_HEIGHT);
        return false;
    }
    if (_CONTROL_KEYPAD_TOP_MARGIN != CONTROL_KEYPAD_TOP_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONTROL_KEYPAD_TOP_MARGIN", _CONTROL_KEYPAD_TOP_MARGIN, CONTROL_KEYPAD_TOP_MARGIN);
        return false;
    }
    if (_CONTROL_KEYPAD_SIDE_MARGIN_LEFT != CONTROL_KEYPAD_SIDE_MARGIN_LEFT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONTROL_KEYPAD_SIDE_MARGIN_LEFT", _CONTROL_KEYPAD_SIDE_MARGIN_LEFT, CONTROL_KEYPAD_SIDE_MARGIN_LEFT);
        return false;
    }
    if (_CONTROL_KEYPAD_SIDE_MARGIN_RIGHT != CONTROL_KEYPAD_SIDE_MARGIN_RIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONTROL_KEYPAD_SIDE_MARGIN_RIGHT", _CONTROL_KEYPAD_SIDE_MARGIN_RIGHT, CONTROL_KEYPAD_SIDE_MARGIN_RIGHT);
        return false;
    }
    if (_CONTROL_KEYPAD_BACK_SPACE_WIDTH != CONTROL_KEYPAD_BACK_SPACE_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONTROL_KEYPAD_BACK_SPACE_WIDTH", _CONTROL_KEYPAD_BACK_SPACE_WIDTH, CONTROL_KEYPAD_BACK_SPACE_WIDTH);
        return false;
    }
    if (_CONTROL_KEYPAD_BACK_SPACE_HEIGHT != CONTROL_KEYPAD_BACK_SPACE_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_CONTROL_KEYPAD_BACK_SPACE_HEIGHT", _CONTROL_KEYPAD_BACK_SPACE_HEIGHT, CONTROL_KEYPAD_BACK_SPACE_HEIGHT);
        return false;
    }
    if (_RESTORE_KEYPAD_START_X != RESTORE_KEYPAD_START_X) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_KEYPAD_START_X", _RESTORE_KEYPAD_START_X, RESTORE_KEYPAD_START_X);
        return false;
    }
    if (_RESTORE_KEYPAD_START_Y != RESTORE_KEYPAD_START_Y) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_KEYPAD_START_Y", _RESTORE_KEYPAD_START_Y, RESTORE_KEYPAD_START_Y);
        return false;
    }
    if (_RESTORE_MNEMONIC_TEXTBOX_WIDTH != RESTORE_MNEMONIC_TEXTBOX_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_TEXTBOX_WIDTH", _RESTORE_MNEMONIC_TEXTBOX_WIDTH, RESTORE_MNEMONIC_TEXTBOX_WIDTH);
        return false;
    }
    if (_RESTORE_MNEMONIC_TEXTBOX_HEIGHT != RESTORE_MNEMONIC_TEXTBOX_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_TEXTBOX_HEIGHT", _RESTORE_MNEMONIC_TEXTBOX_HEIGHT, RESTORE_MNEMONIC_TEXTBOX_HEIGHT);
        return false;
    }
    if (_RESTORE_MNEMONIC_TEXTINPUT_START_X != RESTORE_MNEMONIC_TEXTINPUT_START_X) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_TEXTINPUT_START_X", _RESTORE_MNEMONIC_TEXTINPUT_START_X, RESTORE_MNEMONIC_TEXTINPUT_START_X);
        return false;
    }
    if (_RESTORE_MNEMONIC_TEXTINPUT_START_Y != RESTORE_MNEMONIC_TEXTINPUT_START_Y) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_TEXTINPUT_START_Y", _RESTORE_MNEMONIC_TEXTINPUT_START_Y, RESTORE_MNEMONIC_TEXTINPUT_START_Y);
        return false;
    }
    if (_RESTORE_MNEMONIC_TEXTINPUT_WIDTH != RESTORE_MNEMONIC_TEXTINPUT_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_TEXTINPUT_WIDTH", _RESTORE_MNEMONIC_TEXTINPUT_WIDTH, RESTORE_MNEMONIC_TEXTINPUT_WIDTH);
        return false;
    }
    if (_RESTORE_MNEMONIC_TEXTINPUT_HEIGHT != RESTORE_MNEMONIC_TEXTINPUT_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_TEXTINPUT_HEIGHT", _RESTORE_MNEMONIC_TEXTINPUT_HEIGHT, RESTORE_MNEMONIC_TEXTINPUT_HEIGHT);
        return false;
    }
    if (_RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN != RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN", _RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN, RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN);
        return false;
    }
    if (_RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y != RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y", _RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y, RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y);
        return false;
    }
    if (_RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN != RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN", _RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN, RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN);
        return false;
    }
    if (_RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN != RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN", _RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN, RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN);
        return false;
    }
    if (_RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH != RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH", _RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH, RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH);
        return false;
    }
    if (_RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT != RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT", _RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT, RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT);
        return false;
    }
    if (_RESTORE_MNEMONIC_LIST_TOP_MARGIN != RESTORE_MNEMONIC_LIST_TOP_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_LIST_TOP_MARGIN", _RESTORE_MNEMONIC_LIST_TOP_MARGIN, RESTORE_MNEMONIC_LIST_TOP_MARGIN);
        return false;
    }
    if (_RESTORE_MNEMONIC_LIST_SIDE_MARGIN != RESTORE_MNEMONIC_LIST_SIDE_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_LIST_SIDE_MARGIN", _RESTORE_MNEMONIC_LIST_SIDE_MARGIN, RESTORE_MNEMONIC_LIST_SIDE_MARGIN);
        return false;
    }
    if (_RESTORE_MNEMONIC_LIST_MAX_COUNT != RESTORE_MNEMONIC_LIST_MAX_COUNT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_LIST_MAX_COUNT", _RESTORE_MNEMONIC_LIST_MAX_COUNT, RESTORE_MNEMONIC_LIST_MAX_COUNT);
        return false;
    }
    if (_RESTORE_MNEMONIC_LIST_COLUMN_COUNT != RESTORE_MNEMONIC_LIST_COLUMN_COUNT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_LIST_COLUMN_COUNT", _RESTORE_MNEMONIC_LIST_COLUMN_COUNT, RESTORE_MNEMONIC_LIST_COLUMN_COUNT);
        return false;
    }
    if (_RESTORE_MNEMONIC_LIST_LINE_DISTANCE != RESTORE_MNEMONIC_LIST_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_LIST_LINE_DISTANCE", _RESTORE_MNEMONIC_LIST_LINE_DISTANCE, RESTORE_MNEMONIC_LIST_LINE_DISTANCE);
        return false;
    }
    if (_RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN != RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN", _RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN, RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN);
        return false;
    }
    if (_RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN != RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN", _RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN, RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN);
        return false;
    }
    if (_RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT != RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT", _RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT, RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT);
        return false;
    }
    if (_RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE != RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE", _RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE, RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE);
        return false;
    }
    if (_RESTORE_MNEMONIC_RECOMMEND_WIDTH != RESTORE_MNEMONIC_RECOMMEND_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_RECOMMEND_WIDTH", _RESTORE_MNEMONIC_RECOMMEND_WIDTH, RESTORE_MNEMONIC_RECOMMEND_WIDTH);
        return false;
    }
    if (_RESTORE_MNEMONIC_RECOMMEND_HEIGHT != RESTORE_MNEMONIC_RECOMMEND_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_RESTORE_MNEMONIC_RECOMMEND_HEIGHT", _RESTORE_MNEMONIC_RECOMMEND_HEIGHT, RESTORE_MNEMONIC_RECOMMEND_HEIGHT);
        return false;
    }
    if (_PINPAD_SOFTKEY_DP != PINPAD_SOFTKEY_DP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_DP", _PINPAD_SOFTKEY_DP, PINPAD_SOFTKEY_DP);
        return false;
    }
    if (_PINPAD_SOFTKEY_HEIGHT != PINPAD_SOFTKEY_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_HEIGHT", _PINPAD_SOFTKEY_HEIGHT, PINPAD_SOFTKEY_HEIGHT);
        return false;
    }
    if (_PINPAD_BOTTOM_BAR_HEIGHT != PINPAD_BOTTOM_BAR_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_BOTTOM_BAR_HEIGHT", _PINPAD_BOTTOM_BAR_HEIGHT, PINPAD_BOTTOM_BAR_HEIGHT);
        return false;
    }
    if (_PINPAD_KEY_WIDTH != PINPAD_KEY_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_KEY_WIDTH", _PINPAD_KEY_WIDTH, PINPAD_KEY_WIDTH);
        return false;
    }
    if (_PINPAD_KEY_HEIGHT != PINPAD_KEY_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_KEY_HEIGHT", _PINPAD_KEY_HEIGHT, PINPAD_KEY_HEIGHT);
        return false;
    }
    if (_PINPAD_STAR_SIZE != PINPAD_STAR_SIZE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_STAR_SIZE", _PINPAD_STAR_SIZE, PINPAD_STAR_SIZE);
        return false;
    }
    if (_PINPAD_HEIGHT_DP != PINPAD_HEIGHT_DP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_HEIGHT_DP", _PINPAD_HEIGHT_DP, PINPAD_HEIGHT_DP);
        return false;
    }
    if (_PINPAD_COL1_LEFT_HD != PINPAD_COL1_LEFT_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_COL1_LEFT_HD", _PINPAD_COL1_LEFT_HD, PINPAD_COL1_LEFT_HD);
        return false;
    }
    if (_PINPAD_COL1_RIGHT_HD != PINPAD_COL1_RIGHT_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_COL1_RIGHT_HD", _PINPAD_COL1_RIGHT_HD, PINPAD_COL1_RIGHT_HD);
        return false;
    }
    if (_PINPAD_COL2_LEFT_HD != PINPAD_COL2_LEFT_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_COL2_LEFT_HD", _PINPAD_COL2_LEFT_HD, PINPAD_COL2_LEFT_HD);
        return false;
    }
    if (_PINPAD_COL2_RIGHT_HD != PINPAD_COL2_RIGHT_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_COL2_RIGHT_HD", _PINPAD_COL2_RIGHT_HD, PINPAD_COL2_RIGHT_HD);
        return false;
    }
    if (_PINPAD_COL3_LEFT_HD != PINPAD_COL3_LEFT_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_COL3_LEFT_HD", _PINPAD_COL3_LEFT_HD, PINPAD_COL3_LEFT_HD);
        return false;
    }
    if (_PINPAD_COL3_RIGHT_HD != PINPAD_COL3_RIGHT_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_COL3_RIGHT_HD", _PINPAD_COL3_RIGHT_HD, PINPAD_COL3_RIGHT_HD);
        return false;
    }
    if (_PINPAD_LINE1_TOP_HD != PINPAD_LINE1_TOP_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_LINE1_TOP_HD", _PINPAD_LINE1_TOP_HD, PINPAD_LINE1_TOP_HD);
        return false;
    }
    if (_PINPAD_LINE1_BOTTOM_HD != PINPAD_LINE1_BOTTOM_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_LINE1_BOTTOM_HD", _PINPAD_LINE1_BOTTOM_HD, PINPAD_LINE1_BOTTOM_HD);
        return false;
    }
    if (_PINPAD_LINE2_TOP_HD != PINPAD_LINE2_TOP_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_LINE2_TOP_HD", _PINPAD_LINE2_TOP_HD, PINPAD_LINE2_TOP_HD);
        return false;
    }
    if (_PINPAD_LINE2_BOTTOM_HD != PINPAD_LINE2_BOTTOM_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_LINE2_BOTTOM_HD", _PINPAD_LINE2_BOTTOM_HD, PINPAD_LINE2_BOTTOM_HD);
        return false;
    }
    if (_PINPAD_LINE3_TOP_HD != PINPAD_LINE3_TOP_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_LINE3_TOP_HD", _PINPAD_LINE3_TOP_HD, PINPAD_LINE3_TOP_HD);
        return false;
    }
    if (_PINPAD_LINE3_BOTTOM_HD != PINPAD_LINE3_BOTTOM_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_LINE3_BOTTOM_HD", _PINPAD_LINE3_BOTTOM_HD, PINPAD_LINE3_BOTTOM_HD);
        return false;
    }
    if (_PINPAD_LINE4_TOP_HD != PINPAD_LINE4_TOP_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_LINE4_TOP_HD", _PINPAD_LINE4_TOP_HD, PINPAD_LINE4_TOP_HD);
        return false;
    }
    if (_PINPAD_LINE4_BOTTOM_HD != PINPAD_LINE4_BOTTOM_HD) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_LINE4_BOTTOM_HD", _PINPAD_LINE4_BOTTOM_HD, PINPAD_LINE4_BOTTOM_HD);
        return false;
    }
    if (_PINPAD_SOFTKEY_LEFT != PINPAD_SOFTKEY_LEFT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_LEFT", _PINPAD_SOFTKEY_LEFT, PINPAD_SOFTKEY_LEFT);
        return false;
    }
    if (_PINPAD_SOFTKEY_TOP != PINPAD_SOFTKEY_TOP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_TOP", _PINPAD_SOFTKEY_TOP, PINPAD_SOFTKEY_TOP);
        return false;
    }
    if (_PINPAD_SOFTKEY_BACK_LEFT != PINPAD_SOFTKEY_BACK_LEFT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_BACK_LEFT", _PINPAD_SOFTKEY_BACK_LEFT, PINPAD_SOFTKEY_BACK_LEFT);
        return false;
    }
    if (_PINPAD_SOFTKEY_BACK_RIGHT != PINPAD_SOFTKEY_BACK_RIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_BACK_RIGHT", _PINPAD_SOFTKEY_BACK_RIGHT, PINPAD_SOFTKEY_BACK_RIGHT);
        return false;
    }
    if (_PINPAD_SOFTKEY_BACK_TOP != PINPAD_SOFTKEY_BACK_TOP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_BACK_TOP", _PINPAD_SOFTKEY_BACK_TOP, PINPAD_SOFTKEY_BACK_TOP);
        return false;
    }
    if (_PINPAD_SOFTKEY_BACK_BOTTOM != PINPAD_SOFTKEY_BACK_BOTTOM) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_BACK_BOTTOM", _PINPAD_SOFTKEY_BACK_BOTTOM, PINPAD_SOFTKEY_BACK_BOTTOM);
        return false;
    }
    if (_PINPAD_SOFTKEY_BACK_BHR_LEFT != PINPAD_SOFTKEY_BACK_BHR_LEFT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_BACK_BHR_LEFT", _PINPAD_SOFTKEY_BACK_BHR_LEFT, PINPAD_SOFTKEY_BACK_BHR_LEFT);
        return false;
    }
    if (_PINPAD_SOFTKEY_BACK_BHR_RIGHT != PINPAD_SOFTKEY_BACK_BHR_RIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_BACK_BHR_RIGHT", _PINPAD_SOFTKEY_BACK_BHR_RIGHT, PINPAD_SOFTKEY_BACK_BHR_RIGHT);
        return false;
    }
    if (_PINPAD_SOFTKEY_BACK_BHR_TOP != PINPAD_SOFTKEY_BACK_BHR_TOP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_BACK_BHR_TOP", _PINPAD_SOFTKEY_BACK_BHR_TOP, PINPAD_SOFTKEY_BACK_BHR_TOP);
        return false;
    }
    if (_PINPAD_SOFTKEY_BACK_BHR_BOTTOM != PINPAD_SOFTKEY_BACK_BHR_BOTTOM) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SOFTKEY_BACK_BHR_BOTTOM", _PINPAD_SOFTKEY_BACK_BHR_BOTTOM, PINPAD_SOFTKEY_BACK_BHR_BOTTOM);
        return false;
    }
    if (_PINPAD_STATUS_BAR_HEIGHT != PINPAD_STATUS_BAR_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_STATUS_BAR_HEIGHT", _PINPAD_STATUS_BAR_HEIGHT, PINPAD_STATUS_BAR_HEIGHT);
        return false;
    }
    if (_PINPAD_ACTION_BAR_TOP != PINPAD_ACTION_BAR_TOP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_ACTION_BAR_TOP", _PINPAD_ACTION_BAR_TOP, PINPAD_ACTION_BAR_TOP);
        return false;
    }
    if (_PINPAD_ACTION_BAR_HEIGHT != PINPAD_ACTION_BAR_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_ACTION_BAR_HEIGHT", _PINPAD_ACTION_BAR_HEIGHT, PINPAD_ACTION_BAR_HEIGHT);
        return false;
    }
    if (_PINPAD_ACTION_BAR_TEXT_LEFT_DP != PINPAD_ACTION_BAR_TEXT_LEFT_DP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_ACTION_BAR_TEXT_LEFT_DP", _PINPAD_ACTION_BAR_TEXT_LEFT_DP, PINPAD_ACTION_BAR_TEXT_LEFT_DP);
        return false;
    }
    if (_PINPAD_PIN_BOX_DISTANCE != PINPAD_PIN_BOX_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PIN_BOX_DISTANCE", _PINPAD_PIN_BOX_DISTANCE, PINPAD_PIN_BOX_DISTANCE);
        return false;
    }
    if (_PINPAD_PIN_BOX_WIDTH != PINPAD_PIN_BOX_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PIN_BOX_WIDTH", _PINPAD_PIN_BOX_WIDTH, PINPAD_PIN_BOX_WIDTH);
        return false;
    }
    if (_PINPAD_PIN_BOX_HEIGHT != PINPAD_PIN_BOX_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PIN_BOX_HEIGHT", _PINPAD_PIN_BOX_HEIGHT, PINPAD_PIN_BOX_HEIGHT);
        return false;
    }
    if (_PINPAD_PIN_BOX_SPACE != PINPAD_PIN_BOX_SPACE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PIN_BOX_SPACE", _PINPAD_PIN_BOX_SPACE, PINPAD_PIN_BOX_SPACE);
        return false;
    }
    if (_PINPAD_PIN_BOX_IMG_WIDTH != PINPAD_PIN_BOX_IMG_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PIN_BOX_IMG_WIDTH", _PINPAD_PIN_BOX_IMG_WIDTH, PINPAD_PIN_BOX_IMG_WIDTH);
        return false;
    }
    if (_PINPAD_PIN_BOX_IMG_HEIGHT != PINPAD_PIN_BOX_IMG_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PIN_BOX_IMG_HEIGHT", _PINPAD_PIN_BOX_IMG_HEIGHT, PINPAD_PIN_BOX_IMG_HEIGHT);
        return false;
    }
    if (_PINPAD_PIN_BOX_TOP != PINPAD_PIN_BOX_TOP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PIN_BOX_TOP", _PINPAD_PIN_BOX_TOP, PINPAD_PIN_BOX_TOP);
        return false;
    }
    if (_PINPAD_PIN_BOX_BOTTOM != PINPAD_PIN_BOX_BOTTOM) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PIN_BOX_BOTTOM", _PINPAD_PIN_BOX_BOTTOM, PINPAD_PIN_BOX_BOTTOM);
        return false;
    }
    if (_PINPAD_PIN_TEXT_TOP != PINPAD_PIN_TEXT_TOP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PIN_TEXT_TOP", _PINPAD_PIN_TEXT_TOP, PINPAD_PIN_TEXT_TOP);
        return false;
    }
    if (_PINPAD_PIN_TEXT_BOTTOM != PINPAD_PIN_TEXT_BOTTOM) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PIN_TEXT_BOTTOM", _PINPAD_PIN_TEXT_BOTTOM, PINPAD_PIN_TEXT_BOTTOM);
        return false;
    }
    if (_PINPAD_PROMPT_DISTANCE != PINPAD_PROMPT_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PROMPT_DISTANCE", _PINPAD_PROMPT_DISTANCE, PINPAD_PROMPT_DISTANCE);
        return false;
    }
    if (_PINPAD_PROMPT_AREA_TOP != PINPAD_PROMPT_AREA_TOP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PROMPT_AREA_TOP", _PINPAD_PROMPT_AREA_TOP, PINPAD_PROMPT_AREA_TOP);
        return false;
    }
    if (_PINPAD_PROMPT_AREA_BOTTOM != PINPAD_PROMPT_AREA_BOTTOM) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_PROMPT_AREA_BOTTOM", _PINPAD_PROMPT_AREA_BOTTOM, PINPAD_PROMPT_AREA_BOTTOM);
        return false;
    }
    if (_PINPAD_SECURE_ICON_WIDTH != PINPAD_SECURE_ICON_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SECURE_ICON_WIDTH", _PINPAD_SECURE_ICON_WIDTH, PINPAD_SECURE_ICON_WIDTH);
        return false;
    }
    if (_PINPAD_SECURE_ICON_TOP != PINPAD_SECURE_ICON_TOP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SECURE_ICON_TOP", _PINPAD_SECURE_ICON_TOP, PINPAD_SECURE_ICON_TOP);
        return false;
    }
    if (_PINPAD_SECURE_ICON_TEXT_DISTANCE != PINPAD_SECURE_ICON_TEXT_DISTANCE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SECURE_ICON_TEXT_DISTANCE", _PINPAD_SECURE_ICON_TEXT_DISTANCE, PINPAD_SECURE_ICON_TEXT_DISTANCE);
        return false;
    }
    if (_PINPAD_SECURE_MODE_TEXT_TOP != PINPAD_SECURE_MODE_TEXT_TOP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_SECURE_MODE_TEXT_TOP", _PINPAD_SECURE_MODE_TEXT_TOP, PINPAD_SECURE_MODE_TEXT_TOP);
        return false;
    }
    if (_PINPAD_ACTION_BAR_BACK_BUTTON_SIZE != PINPAD_ACTION_BAR_BACK_BUTTON_SIZE) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_ACTION_BAR_BACK_BUTTON_SIZE", _PINPAD_ACTION_BAR_BACK_BUTTON_SIZE, PINPAD_ACTION_BAR_BACK_BUTTON_SIZE);
        return false;
    }
    if (_PINPAD_ACTION_BAR_BACK_BUTTON_LEFT != PINPAD_ACTION_BAR_BACK_BUTTON_LEFT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_ACTION_BAR_BACK_BUTTON_LEFT", _PINPAD_ACTION_BAR_BACK_BUTTON_LEFT, PINPAD_ACTION_BAR_BACK_BUTTON_LEFT);
        return false;
    }
    if (_PINPAD_ACTION_BAR_BACK_BUTTON_RIGHT != PINPAD_ACTION_BAR_BACK_BUTTON_RIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_ACTION_BAR_BACK_BUTTON_RIGHT", _PINPAD_ACTION_BAR_BACK_BUTTON_RIGHT, PINPAD_ACTION_BAR_BACK_BUTTON_RIGHT);
        return false;
    }
    if (_PINPAD_ACTION_BAR_BACK_BUTTON_TOP != PINPAD_ACTION_BAR_BACK_BUTTON_TOP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_ACTION_BAR_BACK_BUTTON_TOP", _PINPAD_ACTION_BAR_BACK_BUTTON_TOP, PINPAD_ACTION_BAR_BACK_BUTTON_TOP);
        return false;
    }
    if (_PINPAD_ACTION_BAR_BACK_BUTTON_BOTTOM != PINPAD_ACTION_BAR_BACK_BUTTON_BOTTOM) {
        TTY_LOG("%s is not mathced! %d : %d ", "_PINPAD_ACTION_BAR_BACK_BUTTON_BOTTOM", _PINPAD_ACTION_BAR_BACK_BUTTON_BOTTOM, PINPAD_ACTION_BAR_BACK_BUTTON_BOTTOM);
        return false;
    }
    if (_SCREEN_PIX_PER_DP != SCREEN_PIX_PER_DP) {
        TTY_LOG("%s is not mathced! %d : %d ", "_SCREEN_PIX_PER_DP", _SCREEN_PIX_PER_DP, SCREEN_PIX_PER_DP);
        return false;
    }
    if (_SCREEN_PUNCHCUT_HEIGHT != SCREEN_PUNCHCUT_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_SCREEN_PUNCHCUT_HEIGHT", _SCREEN_PUNCHCUT_HEIGHT, SCREEN_PUNCHCUT_HEIGHT);
        return false;
    }
    if (_SCREEN_WIDTH != SCREEN_WIDTH) {
        TTY_LOG("%s is not mathced! %d : %d ", "_SCREEN_WIDTH", _SCREEN_WIDTH, SCREEN_WIDTH);
        return false;
    }
    if (_SCREEN_HEIGHT != SCREEN_HEIGHT) {
        TTY_LOG("%s is not mathced! %d : %d ", "_SCREEN_HEIGHT", _SCREEN_HEIGHT, SCREEN_HEIGHT);
        return false;
    }
    if (_gScreenType != gScreenType) {
        TTY_LOG("%s is not mathced! %d : %d ", "_gScreenType", _gScreenType, gScreenType);
        return false;
    }
    if (_g_pinbox_space != g_pinbox_space) {
        TTY_LOG("%s is not mathced! %d : %d ", "_g_pinbox_space", _g_pinbox_space, g_pinbox_space);
        return false;
    }
    if (_g_pinbox_width != g_pinbox_width) {
        TTY_LOG("%s is not mathced! %d : %d ", "_g_pinbox_width", _g_pinbox_width, g_pinbox_width);
        return false;
    }
    if (_g_pinbox_height != g_pinbox_height) {
        TTY_LOG("%s is not mathced! %d : %d ", "_g_pinbox_height", _g_pinbox_height, g_pinbox_height);
        return false;
    }
    if (_g_pinbox_y != g_pinbox_y) {
        TTY_LOG("%s is not mathced! %d : %d ", "_g_pinbox_y", _g_pinbox_y, g_pinbox_y);
        return false;
    }

    return true;
}
#endif

void initLayout() {
    if (display_type == _SUPPORT_DUAL_LCD_WINNER_MAIN) {
#ifndef USE_VS
	setRotationType(CLOCKWISE_ROTATION_TYPE);
#endif
        if (getTuiMode() == PINPAD_TUI_MODE) {
            SCREEN_PIX_PER_DP                       = 3;
            SCREEN_WIDTH = W1536_SCREEN_HEIGHT_DEFAULT;
            SCREEN_HEIGHT = W1536_SCREEN_WIDTH;
        } else {
            SCREEN_PIX_PER_DP                       = 2.625;
            SCREEN_WIDTH							= W1536_SCREEN_WIDTH;
            SCREEN_HEIGHT							= W1536_SCREEN_HEIGHT_DEFAULT;
        }
    } else if (display_type == _SUPPORT_DUAL_LCD_TOP_MAIN) {
#ifndef USE_VS
		setRotationType(CLOCKWISE_ROTATION_TYPE);
#endif
		if (getTuiMode() == PINPAD_TUI_MODE) {
			SCREEN_PIX_PER_DP                       = 3;
			SCREEN_WIDTH = W1768_SCREEN_HEIGHT_DEFAULT;
			SCREEN_HEIGHT = W1768_SCREEN_WIDTH;
		} else {
			SCREEN_PIX_PER_DP                       = 2.625;
			SCREEN_WIDTH							= W1768_SCREEN_WIDTH;
			SCREEN_HEIGHT							= W1768_SCREEN_HEIGHT_DEFAULT;
		}
	}

	if (getTuiMode() == PINPAD_TUI_MODE) {
		setPinpadLayout();
		setSoftkey();
	}
}

void setScreenType(EScreenType type) {
	gScreenType = type;
}

EScreenType getScreenType() {
	return gScreenType;
}

void setPinpadLayout() {
	sLayout_t pinpad_layout = {
		/* sPinPadKey_t buttons_array[PINPAD_SIZE+1] */ {
								 {0, 0, 0, 0,
								  PAD_NOKEY_VAL, NOKEY}
								 ,
								 {PINPAD_COL1_LEFT_HD,
								  PINPAD_COL1_RIGHT_HD,
								  PINPAD_LINE1_TOP_HD,
								  PINPAD_LINE1_BOTTOM_HD,
								  1, PAD_NUM}
								 ,
								 {PINPAD_COL2_LEFT_HD,
								  PINPAD_COL2_RIGHT_HD,
								  PINPAD_LINE1_TOP_HD,
								  PINPAD_LINE1_BOTTOM_HD,
								  2, PAD_NUM}
								 ,
								 {PINPAD_COL3_LEFT_HD,
								  PINPAD_COL3_RIGHT_HD,
								  PINPAD_LINE1_TOP_HD,
								  PINPAD_LINE1_BOTTOM_HD,
								  3, PAD_NUM}
								 ,
								 {PINPAD_COL1_LEFT_HD,
								  PINPAD_COL1_RIGHT_HD,
								  PINPAD_LINE2_TOP_HD,
								  PINPAD_LINE2_BOTTOM_HD,
								  4, PAD_NUM}
								 ,
								 {PINPAD_COL2_LEFT_HD,
								  PINPAD_COL2_RIGHT_HD,
								  PINPAD_LINE2_TOP_HD,
								  PINPAD_LINE2_BOTTOM_HD,
								  5, PAD_NUM}
								 ,
								 {PINPAD_COL3_LEFT_HD,
								  PINPAD_COL3_RIGHT_HD,
								  PINPAD_LINE2_TOP_HD,
								  PINPAD_LINE2_BOTTOM_HD,
								  6, PAD_NUM}
								 ,
								 {PINPAD_COL1_LEFT_HD,
								  PINPAD_COL1_RIGHT_HD,
								  PINPAD_LINE3_TOP_HD,
								  PINPAD_LINE3_BOTTOM_HD,
								  7, PAD_NUM}
								 ,
								 {PINPAD_COL2_LEFT_HD,
								  PINPAD_COL2_RIGHT_HD,
								  PINPAD_LINE3_TOP_HD,
								  PINPAD_LINE3_BOTTOM_HD,
								  8, PAD_NUM}
								 ,
								 {PINPAD_COL3_LEFT_HD,
								  PINPAD_COL3_RIGHT_HD,
								  PINPAD_LINE3_TOP_HD,
								  PINPAD_LINE3_BOTTOM_HD,
								  9, PAD_NUM}
								 ,
								 {PINPAD_COL2_LEFT_HD,
								  PINPAD_COL2_RIGHT_HD,
								  PINPAD_LINE4_TOP_HD,
								  PINPAD_LINE4_BOTTOM_HD,
								  0, PAD_NUM}
								 ,
								 {PINPAD_COL1_LEFT_HD,
								  PINPAD_COL1_RIGHT_HD,
								  PINPAD_LINE4_TOP_HD,
								  PINPAD_LINE4_BOTTOM_HD,
								  PAD_CORRECT_VAL,
								  PAD_CORRECT}
								 ,
								 {PINPAD_COL3_LEFT_HD,
								  PINPAD_COL3_RIGHT_HD,
								  PINPAD_LINE4_TOP_HD,
								  PINPAD_LINE4_BOTTOM_HD,
								  PAD_VALIDATE_VAL,
								  NOKEY} // Actual key type is PAD_VALIDATE, but replaced with NOKEY because of issue that pressed button image left even finger is released.
								 ,
								 {PINPAD_ACTION_BAR_BACK_BUTTON_LEFT,
								  PINPAD_ACTION_BAR_BACK_BUTTON_RIGHT,
								  PINPAD_ACTION_BAR_BACK_BUTTON_TOP,
								  PINPAD_ACTION_BAR_BACK_BUTTON_BOTTOM,
								  PAD_CANCEL_VAL,
								  PAD_CANCEL}
								 }
		,
		/* sTextAreaLayout_t textarea */ {
						  0, 0,
						  PINPAD_PIN_TEXT_TOP,
						  PINPAD_PIN_TEXT_BOTTOM,
						  0, 0,
						  }
		,
		/* secret image */
		{
		 0, 0, 0, 0}
		,
		/* prompt message */
		{
		 0,			// not used (dynamically center all prompts)
		 PINPAD_PIN_TEXT_TOP,
		 0,			// not used (dynamically center)
		 PINPAD_PIN_TEXT_TOP,
		 }
		,
		/* OK enable/disable */
		{
		 0, 0}
	};
	memcpy(&g_pinpad_layout, &pinpad_layout, sizeof(pinpad_layout));

	g_pinbox_space = PINPAD_PIN_BOX_SPACE;
	g_pinbox_width = PINPAD_PIN_BOX_WIDTH;
	g_pinbox_height = PINPAD_PIN_BOX_HEIGHT;
	g_pinbox_y = PINPAD_PIN_BOX_TOP;


    DBG_LOG("initlayout : %d %d %d %d", g_pinbox_y, g_pinbox_height, g_pinbox_width, g_pinbox_space);
}

void setSoftkey() {
/*#if defined(SUPPORT_SOFTKEY) \
	|| defined(SUPPORT_SOFTKEY_PUNCHCUT) \
	|| defined(SUPPORT_SOFTKEY_PUNCHCUT_800) \
	|| defined(SUPPORT_SOFTKEY_PUNCHHOLE) \
	|| defined(SUPPORT_DISPLAY_HIDE_NOTCH) \
	|| defined(SUPPORT_DUAL_LCD_MAIN) \
	|| defined(SUPPORT_DUAL_LCD_SUB)*/
	sPinPadKey_t softkey[SOFTKEY_SIZE] =
	{
		{
			PINPAD_SOFTKEY_BACK_LEFT,
			PINPAD_SOFTKEY_BACK_RIGHT,
			PINPAD_SOFTKEY_BACK_TOP,
			PINPAD_SOFTKEY_BACK_BOTTOM,
			PAD_SOFTKEY_BACK_VAL,
			PAD_SOFTKEY_BACK
		}
	};
	memcpy(g_softkey, softkey, sizeof(softkey));

	sPinPadKey_t softkey_bhr[SOFTKEY_SIZE] =
	{
		{
			PINPAD_SOFTKEY_BACK_BHR_LEFT,
			PINPAD_SOFTKEY_BACK_BHR_RIGHT,
			PINPAD_SOFTKEY_BACK_BHR_TOP,
			PINPAD_SOFTKEY_BACK_BHR_BOTTOM,
			PAD_SOFTKEY_BACK_VAL,
			PAD_SOFTKEY_BACK
		}
	};
	memcpy(g_softkey_bhr, softkey_bhr, sizeof(softkey_bhr));
//#endif
}
