from . baseform import BaseForm
from wtforms import *
from wtforms . validators import Email , InputRequired , Length , NumberRange
if 82 - 82: Iii1i
__all__ = [
 "AddControllerForm" ,
 "AddControllerNetConfigureForm" ,
 "AddControllerWifiConfigureForm" ,
 "AddDepartmentForm" ,
 "Addextern_elevatorForm" ,
 "Addextern_tasklistForm" ,
 "AddThirdpartynetdeviceForm" ,
"AddTimeProfileForm" ,
 "AddUserForm" ,
 "AddUserForm5678" ,
 "AddUserFormWithoutCard" ,
 "AddUserFormWithoutCard5678" ,
 "EditOperatorForm" ,
"extern_inter_lock_setup_form" ,
 "extern_multi_card_setup_form" ,
"extern_peripheral_control_setup_form" ,
 "extern_setup_form" ,
"LoginForm" ,
 "MealSetupForm" ,
"report_attSetupForm" ,
# Ii * i1i1i1111I . Oo / OooOoo * I1Ii1I1 - I1I
]
if 81 - 81: i1 + ooOOO / oOo0O00 * i1iiIII111 * IiIIii11Ii
if 84 - 84: ooo000 - Ooo0Ooo + iI1iII1I1I1i . IIiIIiIi11I1
class LoginForm ( BaseForm ) :
 password = StringField ( validators = [ Length ( min = 2 , max = 20 , message = "Please input valid password！" ) ] )
 operatorname = StringField ( validators = [ Length ( min = 2 , max = 20 , message = "Please input valid username！" ) ] )
 if 98 - 98: I11iiIi11i1I % oOO
 if 31 - 31: i1I
class AddControllerForm ( BaseForm ) :
 if 9 - 9: IiI11Ii111 / oOo0O00 / IiIIii11Ii - I11iiIi11i1I - iI1iII1I1I1i
 f_ControllerNO = IntegerField ( label = 'Controller number' , validators = [ InputRequired ( message = "please input ID!" ) ] )
 if 16 - 16: i1i1i1111I / i1iiIII111
 f_ControllerSN = IntegerField ( label = 'Product serial number SN' ,
 validators = [ NumberRange ( 110000001 , 459999999 , message = "please input Controller SN!" ) ] )
 f_Enabled = BooleanField ( label = 'Enabled' , default = 'True' )
 if 3 - 3: i1 % i1 % i1i1i1111I . Ii * i1
 if 9 - 9: i1iiIII111
 f_DoorName1 = StringField ( label = '1# Door Name' )
 if 10 - 10: ooOOO / IIiIIiIi11I1 * oOO / i1I / i1I
 if 61 - 61: Ooo0Ooo - I1I
 f_DoorControl1 = SelectField ( label = '1#DoorControlMode' ,
 choices = [ ( 3 , 'OnLine' ) , ( 2 , 'NormalClosed' ) , ( 1 , 'NormalOpen' ) ] , default = 3 )
 if 13 - 13: Ooo0Ooo
 f_DoorDelay1 = IntegerField ( label = '1#DoorOpenDelay(seconds)' , default = 3 ,
 validators = [ NumberRange ( 0 , 6550 , message = "please input valid delay" ) ] )
 if 46 - 46: iI1iII1I1I1i - Ii * Oo * Ii
 f_DoorEnabled1 = BooleanField ( label = 'Door 1 usage status' , default = 1 )
 if 52 - 52: Oo + I1I / oOO / OooOoo - I1Ii1I1 - ooOOO
 if 60 - 60: iI1iII1I1I1i . oOO
 if 13 - 13: oOO
 f_DoorName2 = StringField ( label = '2# Door Name' )
 if 2 - 2: i1
 f_DoorControl2 = SelectField ( label = '2#DoorControlMode' ,
 choices = [ ( 3 , 'OnLine' ) , ( 2 , 'NormalClosed' ) , ( 1 , 'NormalOpen' ) ] , default = 3 )
 if 22 - 22: IIiIIiIi11I1 - ooo000 / I1Ii1I1 . ooo000
 f_DoorDelay2 = IntegerField ( label = '2#DoorOpenDelay(seconds)' , default = 3 ,
 validators = [ NumberRange ( 0 , 6550 , message = "please input valid delay" ) ] )
 f_DoorEnabled2 = BooleanField ( label = '2# Door Enabled' , default = 1 )
 if 1 - 1: iI1iII1I1I1i + Ooo0Ooo + oOO * IIiIIiIi11I1
 if 20 - 20: I1I + Ii
 if 75 - 75: Ii % i1iiIII111 * Ii . IIiIIiIi11I1 % I11iiIi11i1I % I1Ii1I1
 f_DoorName3 = StringField ( label = '3# Door Name' )
 if 8 - 8: I1Ii1I1 . IiI11Ii111 . i1 . Oo - i1I
 f_DoorControl3 = SelectField ( label = '3#DoorControlMode' ,
 choices = [ ( 3 , 'OnLine' ) , ( 2 , 'NormalClosed' ) , ( 1 , 'NormalOpen' ) ] , default = 3 )
 if 32 - 32: Ii % i1i1i1111I % i1I - I11iiIi11i1I % i1iiIII111
 f_DoorDelay3 = IntegerField ( label = '3#DoorOpenDelay(seconds)' , default = 3 ,
 validators = [ NumberRange ( 0 , 6550 , message = "please input valid delay" ) ] )
 f_DoorEnabled3 = BooleanField ( label = '3# Door Enabled' , default = 1 )
 if 34 - 34: i1iiIII111 * i1
 if 34 - 34: oOo0O00 / i1iiIII111 - Iii1i . iI1iII1I1I1i
 if 80 - 80: i1i1i1111I . I1I % ooOOO % IiIIii11Ii / i1i1i1111I
 f_DoorName4 = StringField ( label = '4# Door Name' )
 f_DoorControl4 = SelectField ( label = '4#DoorControlMode' ,
 choices = [ ( 3 , 'OnLine' ) , ( 2 , 'NormalClosed' ) , ( 1 , 'NormalOpen' ) ] , default = 3 )
 if 32 - 32: I1Ii1I1 + oOO - oOo0O00
 f_DoorDelay4 = IntegerField ( label = '4#DoorOpenDelay(seconds)' , default = 3 ,
 validators = [ NumberRange ( 0 , 6550 , message = "please input valid delay" ) ] )
 f_DoorEnabled4 = BooleanField ( label = 'Door 4 usage status' , default = 1 )
 if 79 - 79: Iii1i % oOO * Oo + ooOOO / Oo . oOO
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 producttype = IntegerField ( label = 'Product type' , default = 0 ,
 validators = [ NumberRange ( 0 , 4 , message = "Please input valid type" ) ] )
 f_ControllerID = IntegerField ( label = 'Controller ID' )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 20 - 20: IiI11Ii111 + i1iiIII111 / I1I
 f_ForceWarn = BooleanField ( label = 'Duress password' , default = 0 )
 f_DoorOpenTooLong = BooleanField ( label = 'Door not closed' , default = 0 )
 f_DoorInvalidOpen = BooleanField ( label = 'Forced intrusion' , default = 0 )
 f_InvalidCardWarn = BooleanField ( label = 'Invalid swipe' , default = 0 )
 if 88 - 88: I11iiIi11i1I + ooOOO - i1i1i1111I . Ooo0Ooo * Ii + Iii1i
 f_PeripheralControl_1_source = IntegerField ( label = 'Trigger source' , default = 0 )
 f_PeripheralControl_2_source = IntegerField ( label = 'Trigger source' , default = 0 )
 f_PeripheralControl_3_source = IntegerField ( label = 'Trigger source' , default = 0 )
 f_PeripheralControl_4_source = IntegerField ( label = 'Trigger source' , default = 0 )
 if 43 - 43: ooOOO * I1Ii1I1
 f_PeripheralControl_1_event1 = BooleanField ( label = 'Open too long[Valid Open]' , default = 0 )
 f_PeripheralControl_1_event2 = BooleanField ( label = 'Forced Open' , default = 0 )
 f_PeripheralControl_1_event3 = BooleanField ( label = 'Invalid swipe' , default = 0 )
 f_PeripheralControl_1_event4 = BooleanField ( label = 'Fire' , default = 0 )
 f_PeripheralControl_1_event5 = BooleanField ( label = 'Threat' , default = 0 )
 f_PeripheralControl_1_event6 = BooleanField ( label = 'Forced door lock' , default = 0 )
 f_PeripheralControl_2_event1 = BooleanField ( label = 'Open too long[Valid Open]' , default = 0 )
 f_PeripheralControl_2_event2 = BooleanField ( label = 'Forced Open' , default = 0 )
 f_PeripheralControl_2_event3 = BooleanField ( label = 'Invalid swipe' , default = 0 )
 f_PeripheralControl_2_event4 = BooleanField ( label = 'Fire' , default = 0 )
 f_PeripheralControl_2_event5 = BooleanField ( label = 'Threat' , default = 0 )
 f_PeripheralControl_2_event6 = BooleanField ( label = 'Forced door lock' , default = 0 )
 f_PeripheralControl_3_event1 = BooleanField ( label = 'Open too long[Valid Open]' , default = 0 )
 f_PeripheralControl_3_event2 = BooleanField ( label = 'Forced Open' , default = 0 )
 f_PeripheralControl_3_event3 = BooleanField ( label = 'Invalid swipe' , default = 0 )
 f_PeripheralControl_3_event4 = BooleanField ( label = 'Fire' , default = 0 )
 f_PeripheralControl_3_event5 = BooleanField ( label = 'Threat' , default = 0 )
 f_PeripheralControl_3_event6 = BooleanField ( label = 'Forced door lock' , default = 0 )
 f_PeripheralControl_4_event1 = BooleanField ( label = 'Open too long[Valid Open]' , default = 0 )
 f_PeripheralControl_4_event2 = BooleanField ( label = 'Forced Open' , default = 0 )
 f_PeripheralControl_4_event3 = BooleanField ( label = 'Invalid swipe' , default = 0 )
 f_PeripheralControl_4_event4 = BooleanField ( label = 'Fire' , default = 0 )
 f_PeripheralControl_4_event5 = BooleanField ( label = 'Threat' , default = 0 )
 f_PeripheralControl_4_event6 = BooleanField ( label = 'Forced door lock' , default = 0 )
 if 95 - 95: Ooo0Ooo % Iii1i % i1i1i1111I . OooOoo
 f_PeripheralControl_1_output_duration = IntegerField ( label = 'Fixed delay duration (seconds)' , default = 10 , validators = [ NumberRange ( 0 , 6550 , message = "please input valid delay" ) ] )
 f_PeripheralControl_2_output_duration = IntegerField ( label = 'Fixed delay duration (seconds)' , default = 10 , validators = [ NumberRange ( 0 , 6550 , message = "please input valid delay" ) ] )
 f_PeripheralControl_3_output_duration = IntegerField ( label = 'Fixed delay duration (seconds)' , default = 10 , validators = [ NumberRange ( 0 , 6550 , message = "please input valid delay" ) ] )
 f_PeripheralControl_4_output_duration = IntegerField ( label = 'Fixed delay duration (seconds)' , default = 10 , validators = [ NumberRange ( 0 , 6550 , message = "please input valid delay" ) ] )
 if 70 - 70: IiIIii11Ii
 f_PeripheralControl_1_control_mode = IntegerField ( label = 'DoorControlMode' , default = 1 )
 f_PeripheralControl_2_control_mode = IntegerField ( label = 'DoorControlMode' , default = 1 )
 f_PeripheralControl_3_control_mode = IntegerField ( label = 'DoorControlMode' , default = 1 )
 f_PeripheralControl_4_control_mode = IntegerField ( label = 'DoorControlMode' , default = 1 )
 if 75 - 75: Ooo0Ooo / Ii / IiIIii11Ii + IiIIii11Ii . I1I
 f_PeripheralControl_1_signal_1 = BooleanField ( label = 'Trigger source corresponding door relay [normally closed]' , default = 0 )
 f_PeripheralControl_1_signal_2 = BooleanField ( label = 'Trigger source corresponding door contact [normally closed]' , default = 0 )
 f_PeripheralControl_1_signal_3 = BooleanField ( label = 'Trigger source corresponding button [normally open]' , default = 0 )
 f_PeripheralControl_1_signal_4 = BooleanField ( label = 'Forced door lock input port [normally open]' , default = 0 )
 f_PeripheralControl_1_signal_5 = BooleanField ( label = 'Expansion board A1 input port [normally closed]' , default = 0 )
 f_PeripheralControl_1_signal_6 = BooleanField ( label = 'Expansion board A2 input port [normally closed]' , default = 0 )
 f_PeripheralControl_1_signal_7 = BooleanField ( label = 'Expansion board A3 input port [normally closed]' , default = 0 )
 f_PeripheralControl_1_signal_8 = BooleanField ( label = 'Expansion board fire alarm input port [normally open]' , default = 0 )
 f_PeripheralControl_2_signal_1 = BooleanField ( label = 'Trigger source corresponding door relay [normally closed]' , default = 0 )
 f_PeripheralControl_2_signal_2 = BooleanField ( label = 'Trigger source corresponding door contact [normally closed]' , default = 0 )
 f_PeripheralControl_2_signal_3 = BooleanField ( label = 'Trigger source corresponding button [normally open]' , default = 0 )
 f_PeripheralControl_2_signal_4 = BooleanField ( label = 'Forced door lock input port [normally open]' , default = 0 )
 f_PeripheralControl_2_signal_5 = BooleanField ( label = 'Expansion board A1 input port [normally closed]' , default = 0 )
 f_PeripheralControl_2_signal_6 = BooleanField ( label = 'Expansion board A2 input port [normally closed]' , default = 0 )
 f_PeripheralControl_2_signal_7 = BooleanField ( label = 'Expansion board A3 input port [normally closed]' , default = 0 )
 f_PeripheralControl_2_signal_8 = BooleanField ( label = 'Expansion board fire alarm input port [normally open]' , default = 0 )
 f_PeripheralControl_3_signal_1 = BooleanField ( label = 'Trigger source corresponding door relay [normally closed]' , default = 0 )
 f_PeripheralControl_3_signal_2 = BooleanField ( label = 'Trigger source corresponding door contact [normally closed]' , default = 0 )
 f_PeripheralControl_3_signal_3 = BooleanField ( label = 'Trigger source corresponding button [normally open]' , default = 0 )
 f_PeripheralControl_3_signal_4 = BooleanField ( label = 'Forced door lock input port [normally open]' , default = 0 )
 f_PeripheralControl_3_signal_5 = BooleanField ( label = 'Expansion board A1 input port [normally closed]' , default = 0 )
 f_PeripheralControl_3_signal_6 = BooleanField ( label = 'Expansion board A2 input port [normally closed]' , default = 0 )
 f_PeripheralControl_3_signal_7 = BooleanField ( label = 'Expansion board A3 input port [normally closed]' , default = 0 )
 f_PeripheralControl_3_signal_8 = BooleanField ( label = 'Expansion board fire alarm input port [normally open]' , default = 0 )
 f_PeripheralControl_4_signal_1 = BooleanField ( label = 'Trigger source corresponding door relay [normally closed]' , default = 0 )
 f_PeripheralControl_4_signal_2 = BooleanField ( label = 'Trigger source corresponding door contact [normally closed]' , default = 0 )
 f_PeripheralControl_4_signal_3 = BooleanField ( label = 'Trigger source corresponding button [normally open]' , default = 0 )
 f_PeripheralControl_4_signal_4 = BooleanField ( label = 'Forced door lock input port [normally open]' , default = 0 )
 f_PeripheralControl_4_signal_5 = BooleanField ( label = 'Expansion board A1 input port [normally closed]' , default = 0 )
 f_PeripheralControl_4_signal_6 = BooleanField ( label = 'Expansion board A2 input port [normally closed]' , default = 0 )
 f_PeripheralControl_4_signal_7 = BooleanField ( label = 'Expansion board A3 input port [normally closed]' , default = 0 )
 f_PeripheralControl_4_signal_8 = BooleanField ( label = 'Expansion board fire alarm input port [normally open]' , default = 0 )
 if 88 - 88: Oo * IiIIii11Ii
 f_InterLock = IntegerField ( label = 'Multi-door interlock' , default = 0 )
 if 100 - 100: IiI11Ii111 - OooOoo * I1Ii1I1 / Ooo0Ooo / Iii1i
 if 23 - 23: Ooo0Ooo + i1 * I1Ii1I1 + Oo * Ii - IIiIIiIi11I1
 f_InterLock_share_group = IntegerField ( label = 'Interlock group number' , default = 0 , validators = [ NumberRange ( 0 , 14 , message = "Please enter valid group number" ) ] )
 if 29 - 29: IiIIii11Ii - oOo0O00
 f_inter_lock_share = IntegerField ( label = 'Multi-door interlock sharing' , default = 0 )
 if 30 - 30: I1I . ooo000
 f_AntiBack = IntegerField ( label = 'Antiback' , default = 0 )
 f_AntiBack_option = IntegerField ( label = 'Antiback' , default = 0 )
 f_AntiBack_IndoorPersonsMax = IntegerField ( label = 'Maximum number of people inside door limit [default is 0, meaning unlimited]' , default = 0 , validators = [ NumberRange ( 0 , 65534 , message = "Please enter valid person count" ) ] )
 if 43 - 43: ooOOO . I11iiIi11i1I + ooo000
 if 87 - 87: Iii1i + ooOOO . i1I / Ii + Oo
 if 77 - 77: i1iiIII111 + IiI11Ii111 - Oo % ooo000
 if 74 - 74: Ii + Ooo0Ooo
 if 1 - 1: I1I % Ooo0Ooo + i1iiIII111 . i1iiIII111 % Oo
 if 93 - 93: oOo0O00 % Ooo0Ooo * i1iiIII111
 if 52 - 52: oOO + I1I / ooo000 - I1Ii1I1 * i1I % oOo0O00
 if 52 - 52: oOo0O00 . I1I + i1I - i1iiIII111 % iI1iII1I1I1i
 if 57 - 57: I1I * IIiIIiIi11I1 % I1Ii1I1 * i1i1i1111I
 if 37 - 37: IiI11Ii111 * i1i1i1111I + oOo0O00 / I1I / OooOoo
 if 4 - 4: i1
class AddDepartmentForm ( BaseForm ) :
 f_GroupNO = IntegerField ( label = 'Number' , default = 0 , validators = [ InputRequired ( message = "please input ID!" ) ] )
 f_GroupName = StringField ( label = 'Department name [/slash hierarchy, e.g.: Headquarters/Marketing Department/South China Region]' , validators = [ Length ( min = 1 , message = "Please input department name！" ) ] )
 f_GroupID = IntegerField ( label = 'Department ID' )
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 if 61 - 61: iI1iII1I1I1i . i1I - ooo000 / ooo000 - i1
 if 19 - 19: Iii1i * Ooo0Ooo . I1Ii1I1 / I11iiIi11i1I * Ii - oOO
class AddUserForm ( BaseForm ) :
 if 32 - 32: iI1iII1I1I1i
 f_ConsumerNO = StringField ( label = 'Employee ID' , validators = [ Length ( min = 1 , max = 20 , message = "Please input User ID! " ) ] )
 f_ConsumerName = StringField ( label = 'Name' , validators = [ Length ( min = 1 , max = 50 , message = "Please input User Name! " ) ] )
 f_ConsumerID = IntegerField ( label = 'ID' )
 f_CardNO = IntegerField ( label = 'CardNO' , validators = [ NumberRange ( min = 1 , message = "Please input Card NO" ) ] )
 f_GroupID = IntegerField ( label = 'Department' )
 if 18 - 18: I11iiIi11i1I * IiI11Ii111 % iI1iII1I1I1i + IiI11Ii111
 if 93 - 93: oOO - I1Ii1I1 - IIiIIiIi11I1 * ooOOO - i1
 f_BeginYMD = StringField ( label = 'BeginDate' , default = '2023-01-01' )
 f_EndYMD = StringField ( label = 'EndDate' , default = '2099-12-31' )
 imagerandom = IntegerField ( label = 'imagerandom' , default = 0 )
 f_photostr = StringField ( label = 'PhotoInformation' )
 if 82 - 82: IIiIIiIi11I1 % i1 * ooOOO
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 57 - 57: oOo0O00
 if 31 - 31: i1iiIII111 + i1i1i1111I % OooOoo
class AddUserForm5678 ( BaseForm ) :
 if 20 - 20: OooOoo - I1I
 f_ConsumerNO = StringField ( label = 'Employee ID' , validators = [ Length ( min = 1 , max = 20 , message = "Please input User ID! " ) ] )
 f_ConsumerName = StringField ( label = 'Name' , validators = [ Length ( min = 1 , max = 50 , message = "Please input User Name! " ) ] )
 f_ConsumerID = IntegerField ( label = 'ID' )
 f_CardNO = IntegerField ( label = 'CardNO' , validators = [ NumberRange ( min = 1 , message = "Please input Card NO" ) ] )
 f_GroupID = IntegerField ( label = 'Department' )
 if 9 - 9: i1iiIII111 - iI1iII1I1I1i % Ii - I1I
 if 54 - 54: Iii1i % ooo000 % Iii1i - IiIIii11Ii
 f_BeginYMD = StringField ( label = 'BeginDate' , default = '2023-01-01' )
 f_EndYMD = StringField ( label = 'EndDate' , default = '2099-12-31' )
 f_BatchCnt = IntegerField ( label = 'Batch User Number' , default = 100 , validators = [ NumberRange ( min = 0 , max = 100000 ) ] )
 if 39 - 39: oOO - oOO * i1 % IIiIIiIi11I1
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 29 - 29: IIiIIiIi11I1 - ooo000 . i1iiIII111
 if 86 - 86: I1Ii1I1 - OooOoo - oOO % ooo000 . i1I % Iii1i
class AddUserFormWithoutCard5678 ( BaseForm ) :
 if 11 - 11: OooOoo - I1Ii1I1 - ooOOO . i1iiIII111 - iI1iII1I1I1i / i1iiIII111
 f_ConsumerNO = StringField ( label = 'Employee ID' , validators = [ Length ( min = 1 , max = 20 , message = "Please input User ID! " ) ] )
 f_ConsumerName = StringField ( label = 'Name' , validators = [ Length ( min = 1 , max = 50 , message = "Please input User Name! " ) ] )
 f_ConsumerID = IntegerField ( label = 'ID' )
 if 44 - 44: Ooo0Ooo + i1i1i1111I + Iii1i - oOO
 f_CardNO = StringField ( label = 'CardNO' )
 f_GroupID = IntegerField ( label = 'Department' )
 if 7 - 7: i1i1i1111I / Ii * Iii1i
 if 32 - 32: IiI11Ii111 . OooOoo
 f_BeginYMD = StringField ( label = 'BeginDate' , default = '2023-01-01' )
 f_EndYMD = StringField ( label = 'EndDate' , default = '2099-12-31' )
 f_BatchCnt = IntegerField ( label = 'Batch User Number' , default = 100 , validators = [ NumberRange ( min = 0 , max = 100000 ) ] )
 if 31 - 31: Oo - i1I
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 28 - 28: ooOOO * I1Ii1I1 + IiI11Ii111 % Oo
 if 100 - 100: Oo + i1I
class AddUserFormWithoutCard ( BaseForm ) :
 if 4 - 4: ooo000 % I1I - i1i1i1111I
 f_ConsumerNO = StringField ( label = 'Employee ID' , validators = [ Length ( min = 1 , max = 20 , message = "Please input User ID! " ) ] )
 f_ConsumerName = StringField ( label = 'Name' , validators = [ Length ( min = 1 , max = 50 , message = "Please input User Name! " ) ] )
 f_ConsumerID = IntegerField ( label = 'ID' )
 if 76 - 76: i1 * oOo0O00 . IiI11Ii111 * i1I . IiIIii11Ii . oOO
 f_CardNO = StringField ( label = 'CardNO' )
 f_GroupID = IntegerField ( label = 'Department' )
 if 55 - 55: i1i1i1111I + i1iiIII111 % Ooo0Ooo . Oo - IiIIii11Ii - iI1iII1I1I1i
 if 91 - 91: I1Ii1I1 - I11iiIi11i1I
 f_BeginYMD = StringField ( label = 'BeginDate' , default = '2023-01-01' )
 f_EndYMD = StringField ( label = 'EndDate' , default = '2099-12-31' )
 imagerandom = IntegerField ( label = 'imagerandom' , default = 0 )
 f_photostr = StringField ( label = 'PhotoInformation' )
 if 84 - 84: oOO % iI1iII1I1I1i - Ooo0Ooo
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 94 - 94: i1iiIII111 + i1i1i1111I / iI1iII1I1I1i + iI1iII1I1I1i / i1I
 if 79 - 79: i1iiIII111 - IIiIIiIi11I1 . I1Ii1I1 + I1I - ooOOO + i1iiIII111
class AddControllerNetConfigureForm ( BaseForm ) :
 f_ControllerSN = IntegerField ( label = 'Controller SN' )
 f_MAC = StringField ( label = 'MAC address' )
 f_DHCP = SelectField ( label = 'IP acquisition method' ,
 choices = [ ( 0 , 'Static IP' ) , ( 1 , 'DHCP' ) ] , default = 0 )
 if 36 - 36: ooOOO * Iii1i % I1I % i1 . Ooo0Ooo
 f_IP = StringField ( label = 'IP Address(Required)' )
 f_MASK = StringField ( label = 'NetMask(Required)' , default = '255.255.255.0' )
 f_Gateway = StringField ( label = 'Gateway(Required)' )
 if 63 - 63: IIiIIiIi11I1 / IIiIIiIi11I1 * Iii1i - oOo0O00 . i1
 f_UdpServerIP = StringField ( label = 'UDP DataServer IP(Optional)' )
 f_UdpServerPort = IntegerField ( label = 'UDP DataServer Port(Optional)' , default = 61005 ,
 validators = [ NumberRange ( 50 , 65500 , message = "Please input valid port" ) ] )
 f_TcpServerIP = StringField ( label = 'TCP DataServer IP(Optional)' )
 f_TcpServerPort = IntegerField ( label = 'TCP DataServer Port(Optional)' , default = 61005 ,
 validators = [ NumberRange ( 50 , 65500 , message = "Please input valid port" ) ] )
 if 52 - 52: oOo0O00 / i1I * IIiIIiIi11I1 + I11iiIi11i1I % Ooo0Ooo + oOO
 if 43 - 43: iI1iII1I1I1i * oOo0O00 + ooOOO
 if 30 - 30: I1I
 if 41 - 41: oOO
 if 98 - 98: I1I / IIiIIiIi11I1 / i1I + IiI11Ii111 % Oo + I1I
 if 38 - 38: I1Ii1I1 + oOo0O00
 if 2 - 2: OooOoo % Ii + oOO . OooOoo + IIiIIiIi11I1 * Oo
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 2 - 2: IIiIIiIi11I1 + iI1iII1I1I1i - I1Ii1I1 + ooOOO . IIiIIiIi11I1
 if 15 - 15: ooo000
class AddControllerWifiConfigureForm ( BaseForm ) :
 f_Wi_Fi_ControllerSN = IntegerField ( label = 'Controller SN' )
 f_Wi_Fi_Name = StringField ( label = 'Wi-Fi SSID(Required)' )
 f_Wi_Fi_Password = StringField ( label = 'Wi-Fi Password' )
 if 63 - 63: i1I
 f_Wi_Fi_UdpServerIP = StringField ( label = 'Wire Network 1001-UDP DataServer IP(Required)' )
 f_Wi_Fi_UdpServerPort = IntegerField ( label = '1001-UDP DataServer Port(Required)' , default = 61005 ,
 validators = [ NumberRange ( 50 , 65500 , message = "Please input valid port" ) ] )
 f_Wi_Fi_TcpServerIP = StringField ( label = 'Wireless Network 1001-TDP DataServer IP(Required)' )
 f_Wi_Fi_TcpServerPort = IntegerField ( label = '1001-TCP DataServer Port(Required,default=61005)' , default = 61005 ,
 validators = [ NumberRange ( 50 , 65500 , message = "Please input valid port" ) ] )
 if 81 - 81: OooOoo . i1I / i1i1i1111I + Oo / Ooo0Ooo % IiI11Ii111
 wifisubmitsave = SubmitField ( label = "Save" )
 wifisubmitcancel = SubmitField ( label = "Cancel" )
 if 77 - 77: I11iiIi11i1I / iI1iII1I1I1i - oOo0O00 - Ooo0Ooo % oOo0O00
 if 73 - 73: IiI11Ii111 . Oo * I1I / i1i1i1111I + I1Ii1I1
class AddTimeProfileForm ( BaseForm ) :
 if 31 - 31: i1i1i1111I % I1Ii1I1
 f_ControlSegID = IntegerField ( label = 'TimeProfileID' )
 f_ControlSegName = StringField ( label = 'Description' )
 if 1 - 1: IiI11Ii111 - oOo0O00 - i1 . oOo0O00
 f_DateControl = IntegerField ( label = 'Weekday' )
 if 91 - 91: iI1iII1I1I1i * i1 . ooOOO
 if 81 - 81: I1I * Oo - i1 % OooOoo * ooOOO
 if 19 - 19: Ii
 if 22 - 22: i1I % iI1iII1I1I1i + Oo
 if 60 - 60: ooo000 + I11iiIi11i1I + IIiIIiIi11I1 % i1i1i1111I - Ii % Ooo0Ooo
 if 95 - 95: ooOOO % i1i1i1111I . i1
 if 87 - 87: Iii1i % ooOOO * Ii % IIiIIiIi11I1 / I11iiIi11i1I
 f_Monday = BooleanField ( label = 'Mon' , default = 1 )
 f_Tuesday = BooleanField ( label = 'Tue' , default = 1 )
 f_Wednesday = BooleanField ( label = 'Wed' , default = 1 )
 f_Thursday = BooleanField ( label = 'Thu' , default = 1 )
 f_Friday = BooleanField ( label = 'Fri' , default = 1 )
 f_Saturday = BooleanField ( label = 'Sat' , default = 1 )
 f_Sunday = BooleanField ( label = 'Sun' , default = 1 )
 f_BeginYMD = StringField ( label = 'BeginDate' , default = '2023-01-01' )
 f_EndYMD = StringField ( label = 'EndDate' , default = '2099-12-31' )
 if 84 - 84: I1Ii1I1 + Ooo0Ooo % IIiIIiIi11I1 * i1i1i1111I
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 61 - 61: i1iiIII111 - Oo + I1Ii1I1
 f_BeginHMS1 = StringField ( label = 'Start time' , default = '00:00' )
 f_EndHMS1 = StringField ( label = 'End time' , default = '23:59' )
 f_BeginHMS2 = StringField ( label = 'Start time' , default = '00:00' )
 f_EndHMS2 = StringField ( label = 'End time' , default = '00:00' )
 f_BeginHMS3 = StringField ( label = 'Start time' , default = '00:00' )
 f_EndHMS3 = StringField ( label = 'End time' , default = '00:00' )
 if 43 - 43: IIiIIiIi11I1 * ooo000 + Ii % iI1iII1I1I1i
 f_ControlSegIDLinked = IntegerField ( label = 'Next Linked Time Profile ID' ,
 validators = [ NumberRange ( min = 0 , max = 254 , message = "Default = 0" ) ] ,
 default = 0 )
 if 12 - 12: i1iiIII111 + ooo000 . I11iiIi11i1I
 if 1 - 1: iI1iII1I1I1i % Ii - I11iiIi11i1I / IiI11Ii111 + iI1iII1I1I1i - Ii
 if 27 - 27: OooOoo % iI1iII1I1I1i + IIiIIiIi11I1
 if 16 - 16: IiI11Ii111
 if 31 - 31: oOo0O00 / Iii1i % Ooo0Ooo % i1 . iI1iII1I1I1i . Oo
 if 83 - 83: oOo0O00 - I11iiIi11i1I
 f_ControlByHoliday = IntegerField ( label = 'If selected, not allow in holiday' , default = 1 )
 f_ReaderCount = IntegerField ( label = 'Limit mode [=0 all card readers swipe counts are counted uniformly, =1 each card reader swipe counts are counted independently]' ,
 validators = [ NumberRange ( min = 0 , max = 1 , message = "Limit mode. Default is 0 (uniform counting)" ) ] ,
 default = 0 )
 f_LimitedTimesOfDayCurrentDay = IntegerField ( label = 'Daily limit [0 means unlimited, maximum 254]' ,
 validators = [ NumberRange ( min = 0 , max = 254 , message = "Daily limit, maximum 254 times. Default is 0 (unlimited)" ) ] ,
 default = 0 )
 f_LimitedTimesOfDayMonth = IntegerField ( label = 'Monthly limit [0 means unlimited, maximum 254]' ,
 validators = [ NumberRange ( min = 0 , max = 254 , message = "Monthly limit, maximum 254 times. Default is 0 (unlimited)" ) ] ,
 default = 0 )
 f_LimitedTimesOfHMS1 = IntegerField ( label = 'Time zone 1 limit [0 means unlimited, maximum 31]' ,
 validators = [ NumberRange ( min = 0 , max = 31 , message = "Time zone limit, maximum 31 times. Default is 0 (unlimited)" ) ] ,
 default = 0 )
 f_LimitedTimesOfHMS2 = IntegerField ( label = 'Time zone 2 limit [0 means unlimited, maximum 31]' ,
 validators = [ NumberRange ( min = 0 , max = 31 , message = "Time zone limit, maximum 31 times. Default is 0 (unlimited)" ) ] ,
 default = 0 )
 f_LimitedTimesOfHMS3 = IntegerField ( label = 'Time zone 3 limit [0 means unlimited, maximum 31]' ,
 validators = [ NumberRange ( min = 0 , max = 31 , message = "Time zone limit, maximum 31 times. Default is 0 (unlimited)" ) ] ,
 default = 0 )
 if 91 - 91: IIiIIiIi11I1 - i1 - iI1iII1I1I1i
 if 71 - 71: I1I - IiI11Ii111
class EditOperatorForm ( BaseForm ) :
 if 66 - 66: i1i1i1111I / Ooo0Ooo + I11iiIi11i1I + Iii1i + oOo0O00 + i1I
 if 75 - 75: OooOoo - oOO - IiIIii11Ii - oOO + ooo000 % iI1iII1I1I1i
 f_OperatorPwdOld = StringField ( label = 'Original password' , validators = [ Length ( min = 3 , max = 50 , message = "Please enter original password!" ) ] , default = '' )
 f_OperatorName4Edit = StringField ( label = 'New operator name' , validators = [ Length ( min = 0 , max = 50 , message = "Please enter new operator name!" ) ] , default = '' )
 f_OperatorName4EditConfirm = StringField ( label = 'Confirm new operator name' , validators = [ Length ( min = 0 , max = 50 , message = "Please enter new operator name!" ) ] , default = '' )
 f_OperatorPwd = StringField ( label = 'New password' , validators = [ Length ( min = 8 , max = 50 , message = "Please enter new password, requires 8 characters or more!" ) ] , default = '' )
 f_OperatorPwdConfirm = StringField ( label = 'Confirm new password' ,
 validators = [ Length ( min = 8 , max = 50 , message = "Please enter confirm new password, requires 8 characters or more!" ) ] , default = '' )
 if 42 - 42: i1 * i1I
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 50 - 50: Ii - i1iiIII111
 if 96 - 96: ooo000 * OooOoo - Ii - OooOoo
 if 65 - 65: Oo + Oo - iI1iII1I1I1i % OooOoo . Ooo0Ooo
class AddThirdpartynetdeviceForm ( BaseForm ) :
 if 84 - 84: IIiIIiIi11I1 . ooOOO
 if 44 - 44: ooo000 * i1i1i1111I * oOO + i1iiIII111 - IIiIIiIi11I1
 if 70 - 70: IiI11Ii111
 if 9 - 9: oOo0O00 * i1
 if 96 - 96: Ooo0Ooo
 if 13 - 13: Oo * I1Ii1I1 - oOo0O00 * Ii . Ii + oOo0O00
 if 46 - 46: OooOoo - I11iiIi11i1I / Ooo0Ooo
 if 73 - 73: I1Ii1I1 / i1i1i1111I / ooo000 % i1 % i1I - OooOoo
 if 30 - 30: ooOOO * ooOOO - Iii1i * iI1iII1I1I1i
 if 37 - 37: I1Ii1I1 % iI1iII1I1I1i . i1I + Ooo0Ooo + ooOOO * iI1iII1I1I1i
 if 39 - 39: IIiIIiIi11I1 - Oo
 if 31 - 31: IiIIii11Ii % oOo0O00 % oOo0O00 * Iii1i
 if 85 - 85: Iii1i + Ii % IIiIIiIi11I1 % oOo0O00
 f_DeviceName = StringField ( label = 'Device name' , validators = [ Length ( min = 1 , max = 20 , message = "Please Input Device Name" ) ] )
 f_DeviceIP = StringField ( label = 'IP Address' , validators = [ Length ( min = 7 , max = 20 , message = "Please Input IP Address" ) ] )
 f_DevicePort = IntegerField ( label = 'Port' , default = 8090 )
 if 100 - 100: IiIIii11Ii % i1
 if 82 - 82: ooOOO % OooOoo
 f_DeviceId = IntegerField ( label = 'DeviceID' )
 if 81 - 81: Ii
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 40 - 40: i1I . OooOoo + oOo0O00 . i1iiIII111
 if 96 - 96: I1I / oOO / I11iiIi11i1I + I11iiIi11i1I
class MealSetupForm ( BaseForm ) :
 meal_rule_a = IntegerField ( label = 'Rule 1' , default = 0 , validators = [ NumberRange ( min = 0 , max = 2 , message = "Please enter rule" ) ] )
 meal_rule_b = IntegerField ( label = 'Rule 2' , default = 1 , validators = [ NumberRange ( min = 0 , max = 1 , message = "Only count (allowed to pass) swipe records" ) ] )
 f_morning_meal = BooleanField ( label = 'Breakfast' , default = 1 )
 f_lunch_meal = BooleanField ( label = 'Lunch' , default = 1 )
 f_evening_meal = BooleanField ( label = 'Dinner' , default = 1 )
 f_other_meal = BooleanField ( label = 'Night snack' , default = 1 )
 f_BeginHMS1 = StringField ( label = 'Start time' , default = '04:00' )
 f_EndHMS1 = StringField ( label = 'End time' , default = '09:59' )
 f_BeginHMS2 = StringField ( label = 'Start time' , default = '10:00' )
 f_EndHMS2 = StringField ( label = 'End time' , default = '15:59' )
 f_BeginHMS3 = StringField ( label = 'Start time' , default = '16:00' )
 f_EndHMS3 = StringField ( label = 'End time' , default = '21:59' )
 f_BeginHMS4 = StringField ( label = 'Start time' , default = '22:00' )
 f_EndHMS4 = StringField ( label = 'End time' , default = '03:59' )
 f_cost1 = FloatField ( label = "Consumption amount" , default = '0.00' , validators = [ NumberRange ( min = 0 , max = 1000 , message = "Please enter valid amount" ) ] )
 f_cost2 = FloatField ( label = "Consumption amount" , default = '0.00' , validators = [ NumberRange ( min = 0 , max = 1000 , message = "Please enter valid amount" ) ] )
 f_cost3 = FloatField ( label = "Consumption amount" , default = '0.00' , validators = [ NumberRange ( min = 0 , max = 1000 , message = "Please enter valid amount" ) ] )
 f_cost4 = FloatField ( label = "Consumption amount" , default = '0.00' , validators = [ NumberRange ( min = 0 , max = 1000 , message = "Please enter valid amount" ) ] )
 if 35 - 35: IIiIIiIi11I1 + oOo0O00
 if 96 - 96: iI1iII1I1I1i . OooOoo . i1
 if 87 - 87: ooo000 * IiIIii11Ii % ooo000 . ooOOO . Oo % iI1iII1I1I1i
 if 48 - 48: ooOOO * ooo000 % IiIIii11Ii * i1 . Iii1i - IiI11Ii111
 if 72 - 72: i1 % i1i1i1111I * iI1iII1I1I1i
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 90 - 90: Ooo0Ooo * OooOoo . Ii
 if 5 - 5: Oo - i1 . oOO
class extern_multi_card_setup_form ( BaseForm ) :
 f_DoorID = IntegerField ( label = 'Door ID number' )
 f_DoorName = StringField ( label = 'Door name' )
 if 18 - 18: IiIIii11Ii - oOO * i1I - OooOoo
 if 54 - 54: IIiIIiIi11I1 . Ooo0Ooo % Ii + IiIIii11Ii * iI1iII1I1I1i / iI1iII1I1I1i
 if 31 - 31: IiIIii11Ii . IiIIii11Ii % Ii
 if 51 - 51: Oo / i1i1i1111I - I1I
 f_MoreCards_GoInOut_IN = BooleanField ( label = 'Entry requires multiple cards' , default = 1 )
 f_MoreCards_GoInOut_Out = BooleanField ( label = 'Exit requires multiple cards' , default = 0 )
 f_MoreCards_Total = IntegerField ( label = 'Number of simultaneous card swipes' , default = 0 , validators = [ NumberRange ( min = 0 , max = 10 , message = "Please enter multiple card person count" ) ] )
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 if 83 - 83: Iii1i % i1iiIII111 . OooOoo / I1I % oOO . I1I
 if 76 - 76: i1iiIII111 / OooOoo
class extern_setup_form ( BaseForm ) :
 if 77 - 77: ooOOO
 f_extfunc5678_record_doorstatus_pb = BooleanField ( label = 'ActiveRecordDSPushButtonEvent' , default = False )
 f_extfunc5678_multi_card = BooleanField ( label = 'Multiple cards' , default = False )
 f_extfunc5678_fire_warn = BooleanField ( label = 'Alarm.Fire protection.Linkage' , default = False )
 if 19 - 19: ooOOO % I1Ii1I1
 f_extfunc5678_inter_lock = BooleanField ( label = 'Multi-door interlock' , default = False )
 f_extfunc5678_valid_swipe_gap = BooleanField ( label = 'Valid swipe interval 30 seconds (only 1 swipe is valid within this time range)' , default = False )
 f_extfunc5678_timeprofile = BooleanField ( label = 'TimeProfile' , default = False )
 if 15 - 15: OooOoo . IiIIii11Ii . i1I / Iii1i + ooOOO / Ii
 if 17 - 17: I11iiIi11i1I - i1i1i1111I . iI1iII1I1I1i - I11iiIi11i1I + Oo % iI1iII1I1I1i
 if 65 - 65: Ii % I11iiIi11i1I
 f_extfunc5678_Meal = BooleanField ( label = 'Fixed amount consumption' , default = False )
 f_extfunc5678_multi_card_group_active = BooleanField ( label = 'Multiple card grouping' , default = False )
 f_extfunc5678_anti_back = BooleanField ( label = 'Antiback' , default = False )
 f_extfunc5678_one_key = BooleanField ( label = 'One-click operation [Real-time monitoring interface displays: One-click unlock (normally open), One-click lock (online)]' , default = False )
 f_extfunc5678_console_displayMoreLog = BooleanField ( label = 'Large screen displays recent 8 swipe records [Real-time monitoring interface]' , default = False )
 f_extfunc5678_firewall = BooleanField ( label = '1001 firewall [Prohibit other computers from accessing 1001 service; Other computers accessing vw3000 real-time monitoring will show as not connected]' , default = False )
 f_extfunc5678_tasklist = BooleanField ( label = 'Scheduled task' , default = False )
 f_extfunc5678_elevator = BooleanField ( label = 'Elevator control' , default = False )
 f_extfunc5678_console_location_query = BooleanField ( label = 'Personnel positioning' , default = False )
 f_extfunc5678_develop_mode = BooleanField ( label = 'Development mode' , default = False )
 if 39 - 39: Iii1i * IIiIIiIi11I1 . Ooo0Ooo - Oo
 submitsaveandadd = SubmitField ( label = "Get default value" )
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 if 63 - 63: i1i1i1111I - i1iiIII111 . OooOoo % OooOoo . IiI11Ii111 + i1I
 if 71 - 71: ooo000 + I11iiIi11i1I % iI1iII1I1I1i + IiI11Ii111 % Oo - Oo
class extern_peripheral_control_setup_form ( BaseForm ) :
 f_fire_share = BooleanField ( label = 'Fire alarm signal sharing [In the same LAN, communication must be normal] If one controller has fire alarm, other controllers doors also open (at least 15 seconds)' , default = False )
 f_forceopen_password = IntegerField ( label = 'Duress password' , default = 889988 , validators = [ NumberRange ( min = 1 , max = 999999 , message = "Please enter duress password not exceeding 6 digits" ) ] )
 f_opendoor_timeout = IntegerField ( label = 'Door open timeout (unit: seconds) [default=25]' , default = 25 , validators = [ NumberRange ( min = 3 , max = 6553 , message = "Please enter door open timeout duration" ) ] )
 if 84 - 84: I1I % iI1iII1I1I1i - Ooo0Ooo / iI1iII1I1I1i + Ooo0Ooo - Oo
 submitsaveandadd = SubmitField ( label = "Get default value" )
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 if 41 - 41: ooOOO + OooOoo + IIiIIiIi11I1 * i1i1i1111I
 if 12 - 12: i1i1i1111I
class extern_inter_lock_setup_form ( BaseForm ) :
 if 56 - 56: IiIIii11Ii
 if 17 - 17: i1I . oOO % Oo + IiIIii11Ii - Ooo0Ooo
 if 93 - 93: oOo0O00
 f_inter_lock_share = IntegerField ( label = 'Interlock signal sharing' , default = 0 )
 if 77 - 77: Oo + I11iiIi11i1I % I1I
 submitsaveandadd = SubmitField ( label = "Get default value" )
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 if 20 - 20: i1 - IiIIii11Ii . IiIIii11Ii % ooOOO . i1 % Ooo0Ooo
 if 72 - 72: oOO % IiI11Ii111 . ooOOO * I1Ii1I1 . ooOOO
class report_attSetupForm ( BaseForm ) :
 t_a_Attendence_LateTimeout = IntegerField ( label = 'Not considered late if within minutes' , default = 5 , validators = [ NumberRange ( min = 0 , max = 600 , message = "Please enter valid numerical value" ) ] )
 t_a_Attendence_LateAbsenceTimeout = IntegerField ( label = 'Minutes count as absenteeism' , default = 120 , validators = [ NumberRange ( min = 0 , max = 600 , message = "Please enter valid numerical value" ) ] )
 if 90 - 90: IiIIii11Ii + I1Ii1I1 . OooOoo
 t_a_Attendence_LateAbsenceDay = SelectField ( label = 'Late absenteeism half-day count' , choices = [ ( 0 , '0 days' ) , ( 1 , 'Half day' ) , ( 2 , 'One day' ) ] , default = 0 )
 t_a_Attendence_LeaveTimeout = IntegerField ( label = 'Leaving within minutes not considered early departure' , default = 5 , validators = [ NumberRange ( min = 0 , max = 600 , message = "Please enter valid numerical value" ) ] )
 t_a_Attendence_LeaveAbsenceTimeout = IntegerField ( label = 'Minutes count as absenteeism' , default = 120 , validators = [ NumberRange ( min = 0 , max = 600 , message = "Please enter valid numerical value" ) ] )
 if 73 - 73: i1i1i1111I - Iii1i / I11iiIi11i1I . ooo000 / iI1iII1I1I1i - i1iiIII111
 t_a_Attendence_LeaveAbsenceDay = SelectField ( label = 'Early departure absenteeism half-day count' , choices = [ ( 0 , '0 days' ) , ( 1 , 'Half day' ) , ( 2 , 'One day' ) ] , default = 0 )
 t_a_Attendence_OvertimeTimeout = IntegerField ( label = 'Swipe card after minutes to count as overtime' , default = 60 , validators = [ NumberRange ( min = 0 , max = 600 , message = "Please enter valid numerical value" ) ] )
 if 21 - 21: i1iiIII111 + IiI11Ii111 % i1i1i1111I
 if 7 - 7: IiI11Ii111 / Ii
 if 87 - 87: ooOOO
 if 57 - 57: IIiIIiIi11I1 - iI1iII1I1I1i % ooOOO - I11iiIi11i1I / IiIIii11Ii . Ooo0Ooo
 t_a_Attendence_ReadCardTwoTimes = IntegerField ( label = 'Swipe card 2 times daily' , default = 2 )
 t_a_Attendence_ReadCardFourTimes = IntegerField ( label = 'Swipe card 4 times daily' , default = 4 )
 t_a_Attendence_OnDuty0 = StringField ( label = 'Work start time' , default = '08:30' )
 t_a_Attendence_OffDuty0 = StringField ( label = 'Work end time' , default = '17:30' )
 t_a_Attendence_OnDuty1 = StringField ( label = 'Morning work start time' , default = '08:30' )
 t_a_Attendence_OffDuty1 = StringField ( label = 'Morning work end time' , default = '12:00' )
 t_a_Attendence_OnDuty2 = StringField ( label = 'Afternoon work start time' , default = '13:30' )
 t_a_Attendence_OffDuty2 = StringField ( label = 'Afternoon work end time' , default = '17:30' )
 if 15 - 15: i1I * I11iiIi11i1I - oOo0O00
 if 6 - 6: IiI11Ii111 - Ii
 if 1 - 1: I1I + OooOoo
 if 98 - 98: i1iiIII111 + Iii1i . IIiIIiIi11I1
 if 96 - 96: OooOoo / oOO - i1 * I11iiIi11i1I
 if 72 - 72: i1i1i1111I + Ii - Iii1i - i1i1i1111I - i1I + Ooo0Ooo
 if 74 - 74: Ooo0Ooo * Oo + Iii1i - i1iiIII111
 if 22 - 22: IiIIii11Ii - Ooo0Ooo . i1 . i1I - ooo000
 if 68 - 68: ooo000
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 40 - 40: i1 + I1Ii1I1 + I11iiIi11i1I . Oo * I11iiIi11i1I % I1I
 if 100 - 100: OooOoo + Oo / OooOoo
class Addextern_tasklistForm ( BaseForm ) :
 if 33 - 33: IiI11Ii111 / OooOoo
 f_Id = IntegerField ( label = 'Task number' )
 f_Notes = StringField ( label = 'Description' )
 if 98 - 98: I1Ii1I1 . IIiIIiIi11I1 * i1I - iI1iII1I1I1i % i1I * IiI11Ii111
 if 42 - 42: OooOoo + i1i1i1111I - iI1iII1I1I1i - oOo0O00 * i1I + Ii
 if 46 - 46: oOo0O00 . iI1iII1I1I1i - Ii . oOo0O00 + i1i1i1111I
 if 83 - 83: IiI11Ii111
 if 77 - 77: iI1iII1I1I1i - oOO % Ii * i1I - I1I
 if 42 - 42: I11iiIi11i1I - Ii / Oo - i1i1i1111I + I11iiIi11i1I
 if 83 - 83: i1 . iI1iII1I1I1i
 if 57 - 57: IiI11Ii111 % IiIIii11Ii / oOo0O00 + Ooo0Ooo - i1iiIII111
 f_Monday = BooleanField ( label = 'Mon' , default = 1 )
 f_Tuesday = BooleanField ( label = 'Tue' , default = 1 )
 f_Wednesday = BooleanField ( label = 'Wed' , default = 1 )
 f_Thursday = BooleanField ( label = 'Thu' , default = 1 )
 f_Friday = BooleanField ( label = 'Fri' , default = 1 )
 f_Saturday = BooleanField ( label = 'Sat' , default = 1 )
 f_Sunday = BooleanField ( label = 'Sun' , default = 1 )
 f_BeginYMD = StringField ( label = 'BeginDate' , default = '2023-01-01' )
 f_EndYMD = StringField ( label = 'EndDate' , default = '2099-12-31' )
 f_OperateTime = StringField ( label = 'ActionTime' , default = '00:00' )
 f_DoorControl = IntegerField ( label = 'DoorControlMode' , default = 0 )
 f_FloorNames = StringField ( label = 'Applicable to' , default = '00:00' )
 if 87 - 87: i1iiIII111 . i1iiIII111 . oOO . ooo000 * oOo0O00
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
 if 33 - 33: IiI11Ii111 * i1iiIII111 / i1I . OooOoo * oOo0O00 + ooo000
 if 17 - 17: i1i1i1111I * oOO + i1iiIII111 - I11iiIi11i1I / i1i1i1111I
class Addextern_elevatorForm ( BaseForm ) :
 f_FloorId = IntegerField ( label = 'Elevator ID' )
 f_FloorName = StringField ( label = 'Floor name' , validators = [ Length ( min = 1 , max = 32 , message = "Please enter floor name!" ) ] )
 f_DoorID = IntegerField ( label = 'Elevator name' , default = 0 )
 f_FloorNO = IntegerField ( label = 'Floor relay number' , default = 0 )
 submitsave = SubmitField ( label = "Save" )
 submitcancel = SubmitField ( label = "Cancel" )
 if 83 - 83: I11iiIi11i1I - Iii1i + oOo0O00 + I1I / IIiIIiIi11I1 + I1I
 f_ControllerID = IntegerField ( label = 'Controller ID' )
 submitsaveandadd = SubmitField ( label = "Save And Continue" )
# dd678faae9ac167bc83abf78e5cb2f3f0688d3a3
