summaryrefslogtreecommitdiffstats
path: root/data/mnet/GP10/Host/rm
diff options
context:
space:
mode:
Diffstat (limited to 'data/mnet/GP10/Host/rm')
-rw-r--r--data/mnet/GP10/Host/rm/Docs/CallFlowPreAlphaV0.2.pptbin0 -> 328192 bytes
-rw-r--r--data/mnet/GP10/Host/rm/Docs/ModuleRMV01.rtf4508
-rw-r--r--data/mnet/GP10/Host/rm/Docs/Q931cause.doc0
-rw-r--r--data/mnet/GP10/Host/rm/Makefile16
-rw-r--r--data/mnet/GP10/Host/rm/Shell.log_9812101080
-rw-r--r--data/mnet/GP10/Host/rm/Src/Makefile52
-rw-r--r--data/mnet/GP10/Host/rm/Src/cmdlogact5
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_CellCfg.cpp45
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_ClearRmChans.cpp68
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SendAsyncHoReqToDsp.cpp37
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SendCbCmd.cpp77
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SendChanActivation.cpp61
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SendChanDeActivation.cpp32
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SendDisc.cpp44
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SendPhConnIndToLapdm.cpp112
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SendPhRaIndToLapdm.cpp48
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SendPhyInfo.cpp34
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SendRrRelReqToRm.cpp50
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SendSabmLup.cpp63
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SetDlSG.cpp36
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SetGsmCodec.cpp35
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_SetUlSG.cpp37
-rw-r--r--data/mnet/GP10/Host/rm/Src/intg_ShowRmChans.cpp55
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_AllocSmCtxt.cpp172
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_ChanReq.cpp302
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_ConfigTrxSlots.cpp83
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_DlRaInd.cpp85
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_EntryIdTestPrint.cpp46
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_GetImsiMod100.cpp27
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_GetIrtEntryId.cpp56
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_HoReq.cpp225
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_InitAll.cpp694
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_InitIrt.cpp199
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_InitIrtTestPrint.cpp188
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_InitLAPDm.cpp223
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_InitLAPDmTestPrint.cpp54
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_InitRmTestPrint.cpp138
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_MdlErrRptCauseRel.cpp85
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_OamGetGsmData.cpp908
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_OamGetRmConfigData.cpp33
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_OamRegTrapVars.cpp2028
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_OamSendHoNCellToDsp.cpp119
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_OamSendHoSCellToDsp.cpp137
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_OamSendPcToDsp.cpp80
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_OamSendPwrRedStepToDsp.cpp70
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_PopulateSI2.cpp60
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_PopulateSI3.cpp92
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_PopulateSI4.cpp89
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_PopulateSI5.cpp46
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_PopulateSI6.cpp58
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_ProcClassMarkIE.cpp72
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_ProcMeasRes.cpp40
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_RetrvConfigFromOam.cpp105
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_RrEstReq.cpp52
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_RslReleasel.cpp393
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S0Null.cpp22
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S10TrafficModeEstablished.cpp216
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S11TrafficChanSuspendig.cpp212
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S1RmRunning.cpp233
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S2ActivatingSigTrafficChan.cpp147
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S3SigChanActivated.cpp142
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S4TrafficChanActivated.cpp203
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S4TrafficChanActivated.cpp.old158
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S5SigModeEstablished.cpp527
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S6ActivatingTrafficMode.cpp95
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S7ReleasingSigTrafficChan.cpp134
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S8TrafficModeActivated.cpp271
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_S9DeactivatingSigTrafficChan.cpp420
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendAllSystemInfosToBcchTrx.cpp26
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendAsyncHoRequired.cpp84
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendChanActivation.cpp58
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendChanAssignComplete.cpp40
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendChanModeModify.cpp96
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendChanRelease.cpp83
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendConfigFpgaToTrx.cpp47
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendDeactivateSacch.cpp36
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendHandoverCommand.cpp37
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendHoComplete.cpp43
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendHoFailure.cpp42
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendHoReqAck.cpp111
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendHoReqNAck.cpp35
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendImmAssign.cpp143
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendModeModify.cpp41
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendPagingRequestType1.cpp135
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendPagingRsp.cpp86
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendRfChanRelease.cpp35
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendRrRelCnf.cpp31
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendRrRelInd.cpp32
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendSacchFillingSI5.cpp119
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendSacchFillingSI6.cpp73
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendSetDGainToTrx.cpp40
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendSetUGainToTrx.cpp39
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendSlotActivateToTrx.cpp76
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendSynchInfoToBcchTrx.cpp42
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo2ToBcchTrx.cpp71
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo3ToBcchTrx.cpp71
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo4ToBcchTrx.cpp71
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendTrxConfigToTrx.cpp44
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SendTuneSynthToTrx.cpp141
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SolvePagingGroup.cpp32
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_StartTimer.cpp107
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_StopTimer.cpp91
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_SysCmd.cpp50
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_Task.cpp38
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_TestPrintOamRmConfigData.cpp149
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_TestPrintOamRmStdGsmData.cpp370
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_TimerExpired.cpp41
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_UmMmMsgTestPrint.cpp64
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_WaitForL1Bootstrap.cpp38
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_WaitForL1Rsp.cpp76
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_WaitForSlotActivateRsp.cpp71
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_despatch.cpp124
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_glob.cpp98
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_initL1.cpp121
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_initRm.cpp339
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_main.cpp601
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_msgQReceive.cpp24
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_oamif.cpp65
-rw-r--r--data/mnet/GP10/Host/rm/Src/rm_smscb.cpp249
-rw-r--r--data/mnet/GP10/Host/rm/Src_api/Makefile52
-rw-r--r--data/mnet/GP10/Host/rm/Src_api/api_SendMsgFromRmToCc.cpp48
-rw-r--r--data/mnet/GP10/Host/rm/Src_api/api_SendMsgFromRmToMm.cpp46
-rw-r--r--data/mnet/GP10/Host/rm/Src_api/l1rm_intf.cpp115
-rw-r--r--data/mnet/GP10/Host/rm/Src_api/rm_EntryIdVsTrxSlot.cpp296
-rw-r--r--data/mnet/GP10/Host/rm/Src_init/Makefile52
-rw-r--r--data/mnet/GP10/Host/rm/Src_init/debug.cpp76
-rw-r--r--data/mnet/GP10/Host/rm/Src_init/sys_init.cpp111
-rw-r--r--data/mnet/GP10/Host/rm/include/api_SendMsgFromRmToMm.h17
-rw-r--r--data/mnet/GP10/Host/rm/include/cc_user.datbin0 -> 920 bytes
-rw-r--r--data/mnet/GP10/Host/rm/include/debug.new.h78
-rw-r--r--data/mnet/GP10/Host/rm/include/rm_l1msg.h132
-rw-r--r--data/mnet/GP10/Host/rm/test/Makefile16
-rw-r--r--data/mnet/GP10/Host/rm/test/ctdt.c22
-rw-r--r--data/mnet/GP10/Host/rm/test/defs.bsp143
-rw-r--r--data/mnet/GP10/Host/rm/test/defs.x86-win3271
-rw-r--r--data/mnet/GP10/Host/rm/test/integ35
-rw-r--r--data/mnet/GP10/Host/rm/test/kill6
-rw-r--r--data/mnet/GP10/Host/rm/test/make.I80486gnu48
-rw-r--r--data/mnet/GP10/Host/rm/test/redirect4
-rw-r--r--data/mnet/GP10/Host/rm/test/rules.bsp582
-rw-r--r--data/mnet/GP10/Host/rm/test/sysinfo.log1230
141 files changed, 24190 insertions, 0 deletions
diff --git a/data/mnet/GP10/Host/rm/Docs/CallFlowPreAlphaV0.2.ppt b/data/mnet/GP10/Host/rm/Docs/CallFlowPreAlphaV0.2.ppt
new file mode 100644
index 0000000..dc245e8
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Docs/CallFlowPreAlphaV0.2.ppt
Binary files differ
diff --git a/data/mnet/GP10/Host/rm/Docs/ModuleRMV01.rtf b/data/mnet/GP10/Host/rm/Docs/ModuleRMV01.rtf
new file mode 100644
index 0000000..327dfd9
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Docs/ModuleRMV01.rtf
@@ -0,0 +1,4508 @@
+{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
+{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f4\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Times{\*\falt Times New Roman};}
+{\f5\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Helvetica{\*\falt Arial};}{\f6\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Courier{\*\falt Courier New};}
+{\f7\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Geneva{\*\falt Arial};}{\f8\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Tms Rmn;}{\f9\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Helv;}
+{\f10\froman\fcharset0\fprq2{\*\panose 00000000000000000000}MS Serif;}{\f11\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}MS Sans Serif;}{\f12\froman\fcharset0\fprq2{\*\panose 00000000000000000000}New York;}
+{\f13\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}System;}{\f14\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f15\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}
+{\f16\fmodern\fcharset2\fprq1{\*\panose 00000000000000000000}MS LineDraw;}{\f17\fmodern\fcharset0\fprq0{\*\panose 00000000000000000000}elite;}{\f18\fmodern\fcharset0\fprq0{\*\panose 00000000000000000000}cubicPS;}
+{\f19\froman\fcharset0\fprq2{\*\panose 00000000000000000000}CG Times (WN);}{\f20\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Marlett;}{\f21\fswiss\fcharset0\fprq2{\*\panose 020b0504020203020204}News Gothic MT;}
+{\f22\fscript\fcharset0\fprq2{\*\panose 03010101010101010101}Lucida Handwriting;}{\f23\fswiss\fcharset0\fprq2{\*\panose 020b0602030504090204}Lucida Sans;}{\f24\fswiss\fcharset0\fprq2{\*\panose 020b0602030504020204}Lucida Sans Unicode;}
+{\f25\froman\fcharset0\fprq2{\*\panose 02040602050305030304}Book Antiqua;}{\f26\fswiss\fcharset0\fprq2{\*\panose 020b0502020202020204}Century Gothic;}{\f27\fmodern\fcharset0\fprq1{\*\panose 02010509020102010303}OCR A Extended;}
+{\f28\froman\fcharset0\fprq2{\*\panose 02040603050505030304}Calisto MT;}{\f29\fswiss\fcharset0\fprq2{\*\panose 020b0306030101010103}Abadi MT Condensed Light;}{\f30\fswiss\fcharset0\fprq2{\*\panose 020e0705020206020404}Copperplate Gothic Bold;}
+{\f31\fswiss\fcharset0\fprq2{\*\panose 020e0507020206020404}Copperplate Gothic Light;}{\f32\fmodern\fcharset0\fprq1{\*\panose 020b0609040504020204}Lucida Console;}{\f33\fswiss\fcharset0\fprq2{\*\panose 020f0704030504030204}Arial Rounded MT Bold;}
+{\f34\froman\fcharset0\fprq2{\*\panose 02040604050505020304}Century Schoolbook;}{\f35\fdecor\fcharset0\fprq2{\*\panose 04020705040a02060702}Algerian;}{\f36\fdecor\fcharset0\fprq2{\*\panose 04030b070d0b02020403}Braggadocio;}
+{\f37\fswiss\fcharset0\fprq2{\*\panose 020b0903060703020204}Britannic Bold;}{\f38\fscript\fcharset0\fprq2{\*\panose 03060802040406070304}Brush Script MT;}{\f39\fdecor\fcharset0\fprq2{\*\panose 04020805060202030203}Colonna MT;}
+{\f40\fdecor\fcharset0\fprq2{\*\panose 04020505020e03040504}Desdemona;}{\f41\froman\fcharset0\fprq2{\*\panose 0204060206030a020304}Footlight MT Light;}{\f42\fdecor\fcharset0\fprq2{\*\panose 040307050d0c02020703}Kino MT;}
+{\f43\froman\fcharset0\fprq2{\*\panose 020a0a07050505020404}Wide Latin;}{\f44\fscript\fcharset0\fprq2{\*\panose 03020802060602070202}Matura MT Script Capitals;}{\f45\fdecor\fcharset0\fprq2{\*\panose 040506030a0602020202}Playbill;}
+{\f46\fscript\fcharset238\fprq2{\*\panose 03010101010201010101}Monotype Corsiva;}{\f47\fswiss\fcharset0\fprq2{\*\panose 020e0602030304020304}Albertus Medium;}{\f48\fswiss\fcharset0\fprq2{\*\panose 020e0802040304020204}Albertus Extra Bold;}
+{\f49\fswiss\fcharset0\fprq2{\*\panose 020b0603020204030204}Antique Olive;}{\f50\fswiss\fcharset0\fprq2{\*\panose 020b0502050508020304}CG Omega;}{\f51\froman\fcharset0\fprq2{\*\panose 02020603050405020304}CG Times;}
+{\f52\froman\fcharset0\fprq2{\*\panose 02040706040705040204}Clarendon Condensed;}{\f53\fscript\fcharset238\fprq2{\*\panose 03030502040406070605}Coronet;}{\f54\froman\fcharset0\fprq2{\*\panose 02020404030301010803}Garamond;}
+{\f55\fmodern\fcharset0\fprq1{\*\panose 020b0409020202030204}Letter Gothic;}{\f56\fscript\fcharset0\fprq2{\*\panose 03020702040402020504}Marigold;}{\f57\fswiss\fcharset0\fprq2{\*\panose 020b0603020202030204}Univers;}
+{\f58\fswiss\fcharset0\fprq2{\*\panose 020b0606020202060204}Univers Condensed;}{\f59\froman\fcharset0\fprq2{\*\panose 00050102010706020507}Map Symbols;}{\f60\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}
+{\f61\fscript\fcharset0\fprq2{\*\panose 030f0702030302020204}Comic Sans MS;}{\f62\fswiss\fcharset0\fprq2{\*\panose 020b0506020202030204}Arial Narrow;}{\f63\fswiss\fcharset0\fprq2{\*\panose 020b0a04020102020204}Arial Black;}
+{\f64\froman\fcharset0\fprq2{\*\panose 02050604050505020204}Bookman Old Style;}{\f65\fnil\fcharset2\fprq2{\*\panose 01010601010101010101}Monotype Sorts;}{\f66\fswiss\fcharset0\fprq2{\*\panose 020b0706040902060204}Haettenschweiler;}
+{\f67\fswiss\fcharset0\fprq2{\*\panose 020b0806030902050204}Impact;}{\f68\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Bookshelf Symbol 3;}{\f69\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}MS Outlook;}
+{\f70\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Albertus (W1);}{\f71\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Albertus Xb (W1);}{\f72\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Antique Olv (W1);}
+{\f73\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}CG Omega (W1);}{\f74\froman\fcharset0\fprq2{\*\panose 00000000000000000000}CG Times (W1);}{\f75\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Clarendon Cd (W1);}
+{\f76\fscript\fcharset0\fprq2{\*\panose 00000000000000000000}Coronet (W1);}{\f77\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Courier (W1);}{\f78\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Garmond (W1);}
+{\f79\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Letter Gothic (W1);}{\f80\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}LinePrinter;}{\f81\fscript\fcharset0\fprq2{\*\panose 00000000000000000000}Marigold (W1);}
+{\f82\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Univers (W1);}{\f83\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Univers Cd (W1);}{\f84\fnil\fcharset0\fprq1{\*\panose 00000000000000000000}Small Fonts;}
+{\f175\fswiss\fcharset238\fprq2 Tahoma CE;}{\f176\fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f178\fswiss\fcharset161\fprq2 Tahoma Greek;}{\f179\fswiss\fcharset162\fprq2 Tahoma Tur;}{\f180\fswiss\fcharset186\fprq2 Tahoma Baltic;}
+{\f229\fswiss\fcharset238\fprq2 Lucida Sans Unicode CE;}{\f230\fswiss\fcharset204\fprq2 Lucida Sans Unicode Cyr;}{\f232\fswiss\fcharset161\fprq2 Lucida Sans Unicode Greek;}{\f233\fswiss\fcharset162\fprq2 Lucida Sans Unicode Tur;}
+{\f277\fmodern\fcharset238\fprq1 Lucida Console CE;}{\f278\fmodern\fcharset204\fprq1 Lucida Console Cyr;}{\f280\fmodern\fcharset161\fprq1 Lucida Console Greek;}{\f281\fmodern\fcharset162\fprq1 Lucida Console Tur;}
+{\f367\fswiss\fcharset238\fprq2 Albertus Medium CE;}{\f368\fswiss\fcharset204\fprq2 Albertus Medium Cyr;}{\f371\fswiss\fcharset162\fprq2 Albertus Medium Tur;}{\f372\fswiss\fcharset186\fprq2 Albertus Medium Baltic;}
+{\f373\fswiss\fcharset238\fprq2 Albertus Extra Bold CE;}{\f374\fswiss\fcharset204\fprq2 Albertus Extra Bold Cyr;}{\f377\fswiss\fcharset162\fprq2 Albertus Extra Bold Tur;}{\f378\fswiss\fcharset186\fprq2 Albertus Extra Bold Baltic;}
+{\f379\fswiss\fcharset238\fprq2 Antique Olive CE;}{\f380\fswiss\fcharset204\fprq2 Antique Olive Cyr;}{\f383\fswiss\fcharset162\fprq2 Antique Olive Tur;}{\f384\fswiss\fcharset186\fprq2 Antique Olive Baltic;}{\f385\fswiss\fcharset238\fprq2 CG Omega CE;}
+{\f386\fswiss\fcharset204\fprq2 CG Omega Cyr;}{\f389\fswiss\fcharset162\fprq2 CG Omega Tur;}{\f390\fswiss\fcharset186\fprq2 CG Omega Baltic;}{\f391\froman\fcharset238\fprq2 CG Times CE;}{\f392\froman\fcharset204\fprq2 CG Times Cyr;}
+{\f395\froman\fcharset162\fprq2 CG Times Tur;}{\f396\froman\fcharset186\fprq2 CG Times Baltic;}{\f397\froman\fcharset238\fprq2 Clarendon Condensed CE;}{\f398\froman\fcharset204\fprq2 Clarendon Condensed Cyr;}
+{\f401\froman\fcharset162\fprq2 Clarendon Condensed Tur;}{\f402\froman\fcharset186\fprq2 Clarendon Condensed Baltic;}{\f409\froman\fcharset238\fprq2 Garamond CE;}{\f410\froman\fcharset204\fprq2 Garamond Cyr;}
+{\f412\froman\fcharset161\fprq2 Garamond Greek;}{\f413\froman\fcharset162\fprq2 Garamond Tur;}{\f414\froman\fcharset186\fprq2 Garamond Baltic;}{\f415\fmodern\fcharset238\fprq1 Letter Gothic CE;}{\f416\fmodern\fcharset204\fprq1 Letter Gothic Cyr;}
+{\f419\fmodern\fcharset162\fprq1 Letter Gothic Tur;}{\f420\fmodern\fcharset186\fprq1 Letter Gothic Baltic;}{\f421\fscript\fcharset238\fprq2 Marigold CE;}{\f425\fscript\fcharset162\fprq2 Marigold Tur;}{\f427\fswiss\fcharset238\fprq2 Univers CE;}
+{\f428\fswiss\fcharset204\fprq2 Univers Cyr;}{\f431\fswiss\fcharset162\fprq2 Univers Tur;}{\f432\fswiss\fcharset186\fprq2 Univers Baltic;}{\f433\fswiss\fcharset238\fprq2 Univers Condensed CE;}{\f434\fswiss\fcharset204\fprq2 Univers Condensed Cyr;}
+{\f437\fswiss\fcharset162\fprq2 Univers Condensed Tur;}{\f438\fswiss\fcharset186\fprq2 Univers Condensed Baltic;}{\f457\fswiss\fcharset238\fprq2 Arial Narrow CE;}{\f458\fswiss\fcharset204\fprq2 Arial Narrow Cyr;}
+{\f460\fswiss\fcharset161\fprq2 Arial Narrow Greek;}{\f461\fswiss\fcharset162\fprq2 Arial Narrow Tur;}{\f462\fswiss\fcharset186\fprq2 Arial Narrow Baltic;}{\f463\fswiss\fcharset238\fprq2 Arial Black CE;}{\f464\fswiss\fcharset204\fprq2 Arial Black Cyr;}
+{\f466\fswiss\fcharset161\fprq2 Arial Black Greek;}{\f467\fswiss\fcharset162\fprq2 Arial Black Tur;}{\f468\fswiss\fcharset186\fprq2 Arial Black Baltic;}{\f469\froman\fcharset238\fprq2 Bookman Old Style CE;}
+{\f470\froman\fcharset204\fprq2 Bookman Old Style Cyr;}{\f472\froman\fcharset161\fprq2 Bookman Old Style Greek;}{\f473\froman\fcharset162\fprq2 Bookman Old Style Tur;}{\f474\froman\fcharset186\fprq2 Bookman Old Style Baltic;}
+{\f487\fswiss\fcharset238\fprq2 Impact CE;}{\f488\fswiss\fcharset204\fprq2 Impact Cyr;}{\f490\fswiss\fcharset161\fprq2 Impact Greek;}{\f491\fswiss\fcharset162\fprq2 Impact Tur;}{\f492\fswiss\fcharset186\fprq2 Impact Baltic;}}{\colortbl;\red0\green0\blue0;
+\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;
+\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid \snext0 Normal;}{\s1\sb240\sa60\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb
+\brdrs\brdrw15\brsp20 \ls1\adjustright \b\fs28\lang2057\kerning28\cgrid \sbasedon0 \snext0 heading 1;}{\s2\sb240\sa60\keepn\widctlpar\ls1\ilvl1\adjustright \b\lang2057\cgrid \sbasedon0 \snext0 heading 2;}{
+\s3\sb240\sa60\keepn\widctlpar\ls1\ilvl2\adjustright \b\fs20\lang2057\cgrid \sbasedon0 \snext0 heading 3;}{\s4\sb240\sa60\keepn\widctlpar\ls1\ilvl3\adjustright \b\fs20\lang2057\cgrid \sbasedon0 \snext0 heading 4;}{
+\s5\sb240\sa60\widctlpar\ls1\ilvl4\adjustright \fs22\lang2057\cgrid \sbasedon0 \snext0 heading 5;}{\s6\sb240\sa60\widctlpar\ls1\ilvl5\adjustright \i\f1\fs22\lang2057\cgrid \sbasedon0 \snext0 heading 6;}{\s7\sb240\sa60\widctlpar\ls1\ilvl6\adjustright
+\f1\fs20\lang2057\cgrid \sbasedon0 \snext0 heading 7;}{\s8\sb240\sa60\widctlpar\ls1\ilvl7\adjustright \i\f1\fs20\lang2057\cgrid \sbasedon0 \snext0 heading 8;}{\s9\sb240\sa60\widctlpar\ls1\ilvl8\adjustright \b\i\f1\fs18\lang2057\cgrid \sbasedon0 \snext0
+heading 9;}{\*\cs10 \additive Default Paragraph Font;}{\s15\widctlpar\tx-720\hyphpar0\adjustright \f4\fs20\cgrid \snext15 Word4095Null;}{\*\cs16 \additive \f4\fs20\lang1033 \sbasedon10 Default Para;}{\s17\sb60\sa60\widctlpar
+\tqc\tx4320\tqr\tx8640\adjustright \fs20\lang2057\cgrid \sbasedon0 \snext17 footer;}{\s18\sb60\sa60\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \fs20\lang2057\cgrid \sbasedon0 \snext18 header;}{\*\cs19 \additive \f6\fs24\lang1033 \sbasedon10 B&M Border;}{
+\s20\sl480\slmult1\widctlpar\tqdec\tx360\hyphpar0\adjustright \f6\cgrid \snext20 Timesheet;}{\*\cs21 \additive \sbasedon10 Lit Index;}{\*\cs22 \additive \sbasedon10 Envelope;}{\s23\sl360\slmult1\widctlpar\tx-720\hyphpar0\adjustright \f6\cgrid \snext23
+Memo;}{\*\cs24 \additive \f6\fs24\lang1033 \sbasedon10 Letterhead;}{\*\cs25 \additive \f6\fs24\lang1033 \sbasedon10 Discontinue;}{\*\cs26 \additive \sbasedon10 Pleading;}{\s27\sl300\slmult1\widctlpar\tqc\tx4680\hyphpar0\adjustright \f1\fs16\cgrid
+\snext27 B&M Memo;}{\s28\sb120\sa120\widctlpar\adjustright \b\caps\fs20\lang2057\cgrid \sbasedon0 \snext0 \sautoupd toc 1;}{\s29\li200\widctlpar\adjustright \scaps\fs20\lang2057\cgrid \sbasedon0 \snext0 \sautoupd toc 2;}{\s30\li400\widctlpar\adjustright
+\i\fs20\lang2057\cgrid \sbasedon0 \snext0 \sautoupd toc 3;}{\s31\li600\widctlpar\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd toc 4;}{\s32\li800\widctlpar\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd toc 5;}{
+\s33\li1000\widctlpar\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd toc 6;}{\s34\li1200\widctlpar\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd toc 7;}{\s35\li1400\widctlpar\adjustright \fs18\lang2057\cgrid
+\sbasedon0 \snext0 \sautoupd toc 8;}{\s36\li1600\widctlpar\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd toc 9;}{\s37\fi-240\li240\sb60\sa60\widctlpar\tqr\tx4154\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd index 1;}{
+\s38\fi-240\li480\sb60\sa60\widctlpar\tqr\tx4154\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd index 2;}{\s39\sb60\sa60\widctlpar\tx9000\tqr\tx9360\adjustright \f6\fs20\lang2057\cgrid \sbasedon0 \snext0 toa heading;}{
+\s40\sb60\sa60\widctlpar\adjustright \b\fs20\lang2057\cgrid \sbasedon0 \snext0 caption;}{\*\cs41 \additive _Equation Caption;}{\s42\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid \sbasedon0 \snext42 footnote text;}{\*\cs43 \additive \super
+\sbasedon10 footnote reference;}{\*\cs44 \additive \sbasedon10 page number;}{\s45\fi-240\li720\sb60\sa60\widctlpar\tqr\tx4154\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd index 3;}{\s46\fi-240\li960\sb60\sa60\widctlpar
+\tqr\tx4154\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd index 4;}{\s47\fi-240\li1200\sb60\sa60\widctlpar\tqr\tx4154\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd index 5;}{\s48\fi-240\li1440\sb60\sa60\widctlpar
+\tqr\tx4154\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd index 6;}{\s49\fi-240\li1680\sb60\sa60\widctlpar\tqr\tx4154\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd index 7;}{\s50\fi-240\li1920\sb60\sa60\widctlpar
+\tqr\tx4154\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd index 8;}{\s51\fi-240\li2160\sb60\sa60\widctlpar\tqr\tx4154\adjustright \fs18\lang2057\cgrid \sbasedon0 \snext0 \sautoupd index 9;}{\s52\qc\sb240\sa120\widctlpar\box
+\brdrsh\brdrdb\brdrw15 \tqr\tx4154\adjustright \b\f1\fs22\lang2057\cgrid \sbasedon0 \snext37 index heading;}{\*\cs53 \additive \fs16 \sbasedon10 annotation reference;}{\s54\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid \sbasedon0 \snext54
+annotation text;}{\s55\sb60\sa60\widctlpar\pnrnot1\adjustright \i\fs20\ul\cf6\lang2057\cgrid \sbasedon0 \snext55 Body Text;}{\s56\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid \sbasedon0 \snext56 Body Text 2;}{\*\cs57 \additive \ul\cf2
+\sbasedon10 Hyperlink;}{\s58\fi-400\li400\widctlpar\adjustright \scaps\fs20\lang2057\cgrid \sbasedon0 \snext0 table of figures;}{\*\cs59 \additive \ul\cf12 \sbasedon10 FollowedHyperlink;}{\s60\sb60\sa60\widctlpar\adjustright \i\fs20\ul\lang2057\cgrid
+\sbasedon0 \snext60 Body Text 3;}{\s61\li540\sb60\sa60\widctlpar\adjustright \i\fs20\ul\lang2057\cgrid \sbasedon0 \snext61 Body Text Indent 2;}{\s62\qj\li540\sb60\sa60\widctlpar\adjustright \i\fs20\ul\lang2057\cgrid \sbasedon0 \snext62
+Body Text Indent 3;}{\s63\qc\li1440\ri1109\sb480\sa60\widctlpar\box\brdrdb\brdrw30\brsp20 \tx5040\adjustright \shading10000 \b\f1\fs48\lang2057\cgrid \sbasedon0 \snext63 Block Text;}{\s64\sb60\sa60\widctlpar\adjustright \cbpat9 \f15\fs20\lang2057\cgrid
+\sbasedon0 \snext64 Document Map;}{\*\cs65 \additive \b \sbasedon10 Strong;}{\*\cs66 \additive \i \sbasedon10 Emphasis;}}{\*\listtable{\list\listtemplateid-1{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace144\levelindent0
+{\leveltext\'02\'00.;}{\levelnumbers\'01;}\s1}{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace144\levelindent0{\leveltext\'03\'00.\'01;}{\levelnumbers\'01\'03;}\s2}{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1
+\levelold\levelspace144\levelindent0{\leveltext\'05\'00.\'01.\'02;}{\levelnumbers\'01\'03\'05;}\s3}{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace144\levelindent0{\leveltext\'07\'00.\'01.\'02.\'03;}{\levelnumbers
+\'01\'03\'05\'07;}\s4}{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace144\levelindent0{\leveltext\'09\'00.\'01.\'02.\'03.\'04;}{\levelnumbers\'01\'03\'05\'07\'09;}\s5}{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1
+\levelold\levelspace144\levelindent0{\leveltext\'0b\'00.\'01.\'02.\'03.\'04.\'05;}{\levelnumbers\'01\'03\'05\'07\'09\'0b;}\s6}{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace144\levelindent0{\leveltext
+\'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d;}\s7}{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace144\levelindent0{\leveltext\'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07;}{\levelnumbers
+\'01\'03\'05\'07\'09\'0b\'0d\'0f;}\s8}{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace144\levelindent0{\leveltext\'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f\'11;}\s9}
+{\listname ;}\listid-5}{\list\listtemplateid-1\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01*;}{\levelnumbers;}}{\listname ;}\listid-2}{\list\listtemplateid67698703\listsimple{\listlevel
+\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid15471781}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid62921821}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid210698406}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid241447689}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid273828814}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid283998363}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid296183848}{\list\listtemplateid67698693\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3929 ?;}{\levelnumbers;}\f14\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid325134463}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid326716340}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid361440515}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid445197422}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid485055982}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid487481280}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid527448271}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers
+;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid543565147}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0
+\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid547492102}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360
+\jclisttab\tx360 }{\listname ;}\listid556354303}{\list\listtemplateid67698699\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01\u-3880 ?;}{\levelnumbers;}\f14\fbias0 \fi-360\li360\jclisttab\tx360
+}{\listname ;}\listid574970712}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname
+;}\listid578055973}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid580263876
+}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid630400793}{\list\listtemplateid67698689
+\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid634145445}{\list\listtemplateid67698689\listsimple
+{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid637682566}{\list\listtemplateid67698689\listsimple{\listlevel
+\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid648898465}{\list\listtemplateid-1826095098\listsimple{\listlevel\levelnfc0
+\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-283\li1003 }{\listname ;}\listid658731854}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid661663139}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid668795718}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid676541764}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid682829892}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid688718073}{\list\listtemplateid1382460216{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers
+\'01;}\fi936\li360\jclisttab\tx1656 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03\'00-\'01;}{\levelnumbers\'01\'03;}\fi864\li792\jclisttab\tx2016 }{\listlevel\levelnfc0\leveljc0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'05\'00-\'01-\'02;}{\levelnumbers\'01\'03\'05;}\fi1368\li1224\jclisttab\tx3312 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'07\'00-\'01-\'02-\'03;}{\levelnumbers\'01\'03\'05\'07;}\fi-648\li1728\jclisttab\tx1728 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'09\'00-\'01-\'02-\'03-\'04;}{\levelnumbers\'01\'03\'05\'07\'09;}
+\fi-792\li2232\jclisttab\tx2232 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0c\'00.\'01.\'02.\'03.\'04.\'05.;}{\levelnumbers\'01\'03\'05\'07\'09\'0b;}\fi-936\li2736\jclisttab\tx2736 }{\listlevel
+\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0e\'00.\'01.\'02.\'03.\'04.\'05.\'06.;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d;}\fi-1080\li3240\jclisttab\tx3240 }{\listlevel\levelnfc0\leveljc0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'10\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f;}\fi-1224\li3744\jclisttab\tx3960 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'12\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08.;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f\'11;}\fi-1440\li4320\jclisttab\tx4320 }{\listname ;}\listid698160299}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23
+\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid720597341}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid724991898}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid737287469}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid750393811}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid753429916}{\list\listtemplateid-249416644\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3983 ?;}{\levelnumbers;}\f14\fs16\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid756054473}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid762528902}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers
+;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid803548876}{\list\listtemplateid67698699\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3880 ?;}{\levelnumbers;}\f14\fbias0
+\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid808087581}{\list\listtemplateid67698693\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f14\fbias0 \fi-360\li360
+\jclisttab\tx360 }{\listname ;}\listid815953957}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }
+{\listname ;}\listid821390011}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname
+;}\listid835651964}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid861437148
+}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid863250880}
+{\list\listtemplateid500721196{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\fi-432\li432\jclisttab\tx432 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'03\'00.\'01;}{\levelnumbers\'01\'03;}\fi-576\li576\jclisttab\tx576 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'05\'00.\'01.\'02;}{\levelnumbers\'01\'03\'05;}\fi-720\li720
+\jclisttab\tx720 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'07\'00.\'01.\'02.\'03;}{\levelnumbers\'01\'03\'05\'07;}\fi-864\li864\jclisttab\tx864 }{\listlevel\levelnfc0\leveljc0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'09\'00.\'01.\'02.\'03.\'04;}{\levelnumbers\'01\'03\'05\'07\'09;}\fi-1008\li1008\jclisttab\tx1008 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'0b\'00.\'01.\'02.\'03.\'04.\'05;}{\levelnumbers\'01\'03\'05\'07\'09\'0b;}\fi-1152\li1152\jclisttab\tx1152 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d;}\fi-1296\li1296\jclisttab\tx1296 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f;}\fi-1440\li1440\jclisttab\tx1440 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f\'11;}\fi-1584\li1584\jclisttab\tx1584 }{\listname ;}\listid863327551}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid864289667}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid873349574}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid913782311}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid944077847}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid977685371}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1013999608}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1026054755}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1043360863}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1054768167}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1062755366}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1071344639}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1075738273}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1118912057}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1121270000}{\list\listtemplateid67698699\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3880 ?;}{\levelnumbers;}\f14\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1142190456}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1161198732}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1194416140}{\list\listtemplateid67698699\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3880 ?;}{\levelnumbers;}\f14\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1194735173}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1245529338}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1285967081}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1308127679}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1320816205}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1325620645}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1328628986}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1346785873}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1360162540}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1368094668}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1371876853}{\list\listtemplateid67698699\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3880 ?;}{\levelnumbers;}\f14\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1382897517}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1407418107}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1423407589}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1423409080}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1465848190}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1499417366}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1534616004}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1551919662}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1641495640}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1650283949}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1653287557}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1662200708}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1665433118}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1673726400}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1707219634}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1712070705}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1720545875}{\list\listtemplateid67698725{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers
+\'01;}\fi-432\li432\jclisttab\tx432 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03\'00.\'01;}{\levelnumbers\'01\'03;}\fi-576\li576\jclisttab\tx576 }{\listlevel\levelnfc0\leveljc0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'05\'00.\'01.\'02;}{\levelnumbers\'01\'03\'05;}\fi-720\li720\jclisttab\tx720 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'07\'00.\'01.\'02.\'03;}{\levelnumbers\'01\'03\'05\'07;}\fi-864\li864\jclisttab\tx864 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'09\'00.\'01.\'02.\'03.\'04;}{\levelnumbers\'01\'03\'05\'07\'09;}
+\fi-1008\li1008\jclisttab\tx1008 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0b\'00.\'01.\'02.\'03.\'04.\'05;}{\levelnumbers\'01\'03\'05\'07\'09\'0b;}\fi-1152\li1152\jclisttab\tx1152 }{\listlevel
+\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d;}\fi-1296\li1296\jclisttab\tx1296 }{\listlevel\levelnfc0\leveljc0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f;}\fi-1440\li1440\jclisttab\tx1440 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f\'11;}\fi-1584\li1584\jclisttab\tx1584 }{\listname ;}\listid1729843793}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23
+\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1761104069}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1784496761}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1795563694}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1802723562}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1824009765}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1843735382}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1853183433}{\list\listtemplateid67698693\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3929 ?;}{\levelnumbers;}\f14\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1876918139}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1883706338}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1920748241}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1932467451}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1937591531}{\list\listtemplateid67698693\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3929 ?;}{\levelnumbers;}\f14\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1952004834}{\list\listtemplateid67698705\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'00);}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1962761534}{\list\listtemplateid67698693\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3929 ?;}{\levelnumbers;}\f14\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1992563179}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1996685746}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid2009282495}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid2028142822}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid2080401054}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid2101481477}}{\*\listoverridetable{\listoverride\listid-5\listoverridecount0\ls1}{\listoverride\listid658731854\listoverridecount0\ls2}
+{\listoverride\listid658731854\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-283\li1003 }}\ls3}
+{\listoverride\listid658731854\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-283\li1003 }}\ls4}
+{\listoverride\listid658731854\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-283\li1003 }}\ls5}
+{\listoverride\listid658731854\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-283\li1003 }}\ls6}
+{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-283\li1003 }}\ls7}
+{\listoverride\listid1853183433\listoverridecount0\ls8}{\listoverride\listid944077847\listoverridecount0\ls9}{\listoverride\listid1423407589\listoverridecount0\ls10}{\listoverride\listid630400793\listoverridecount0\ls11}{\listoverride\listid580263876
+\listoverridecount0\ls12}{\listoverride\listid1712070705\listoverridecount0\ls13}{\listoverride\listid634145445\listoverridecount0\ls14}{\listoverride\listid1346785873\listoverridecount0\ls15}{\listoverride\listid1346785873\listoverridecount0\ls16}
+{\listoverride\listid15471781\listoverridecount0\ls17}{\listoverride\listid688718073\listoverridecount0\ls18}{\listoverride\listid756054473\listoverridecount0\ls19}{\listoverride\listid210698406\listoverridecount0\ls20}{\listoverride\listid1121270000
+\listoverridecount0\ls21}{\listoverride\listid527448271\listoverridecount0\ls22}{\listoverride\listid1784496761\listoverridecount0\ls23}{\listoverride\listid1360162540\listoverridecount0\ls24}{\listoverride\listid1499417366\listoverridecount0\ls25}
+{\listoverride\listid1371876853\listoverridecount0\ls26}{\listoverride\listid1118912057\listoverridecount0\ls27}{\listoverride\listid1407418107\listoverridecount0\ls28}{\listoverride\listid547492102\listoverridecount0\ls29}{\listoverride\listid913782311
+\listoverridecount0\ls30}{\listoverride\listid720597341\listoverridecount0\ls31}{\listoverride\listid1423409080\listoverridecount0\ls32}{\listoverride\listid283998363\listoverridecount0\ls33}{\listoverride\listid682829892\listoverridecount0\ls34}
+{\listoverride\listid1653287557\listoverridecount0\ls35}{\listoverride\listid1673726400\listoverridecount0\ls36}{\listoverride\listid1161198732\listoverridecount0\ls37}{\listoverride\listid1824009765\listoverridecount0\ls38}{\listoverride\listid668795718
+\listoverridecount0\ls39}{\listoverride\listid808087581\listoverridecount0\ls40}{\listoverride\listid1382897517\listoverridecount0\ls41}{\listoverride\listid1142190456\listoverridecount0\ls42}{\listoverride\listid1194735173\listoverridecount0\ls43}
+{\listoverride\listid737287469\listoverridecount0\ls44}{\listoverride\listid1952004834\listoverridecount0\ls45}{\listoverride\listid815953957\listoverridecount0\ls46}{\listoverride\listid1992563179\listoverridecount0\ls47}{\listoverride\listid1876918139
+\listoverridecount0\ls48}{\listoverride\listid325134463\listoverridecount0\ls49}{\listoverride\listid1054768167\listoverridecount0\ls50}{\listoverride\listid1551919662\listoverridecount0\ls51}{\listoverride\listid977685371\listoverridecount0\ls52}
+{\listoverride\listid1920748241\listoverridecount0\ls53}{\listoverride\listid2101481477\listoverridecount0\ls54}{\listoverride\listid861437148\listoverridecount0\ls55}{\listoverride\listid1662200708\listoverridecount0\ls56}{\listoverride\listid648898465
+\listoverridecount0\ls57}{\listoverride\listid1641495640\listoverridecount0\ls58}{\listoverride\listid2080401054\listoverridecount0\ls59}{\listoverride\listid361440515\listoverridecount0\ls60}{\listoverride\listid487481280\listoverridecount0\ls61}
+{\listoverride\listid578055973\listoverridecount0\ls62}{\listoverride\listid724991898\listoverridecount0\ls63}{\listoverride\listid1729843793\listoverridecount0\ls64}{\listoverride\listid698160299\listoverridecount0\ls65}{\listoverride\listid296183848
+\listoverridecount0\ls66}{\listoverride\listid864289667\listoverridecount0\ls67}{\listoverride\listid1962761534\listoverridecount0\ls68}{\listoverride\listid1465848190\listoverridecount0\ls69}{\listoverride\listid1308127679\listoverridecount0\ls70}
+{\listoverride\listid241447689\listoverridecount0\ls71}{\listoverride\listid326716340\listoverridecount0\ls72}{\listoverride\listid863327551\listoverridecount0\ls73}{\listoverride\listid863327551\listoverridecount9{\lfolevel\listoverridestartat
+\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel
+\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}\ls74}{\listoverride\listid863250880\listoverridecount0\ls75}{\listoverride\listid1937591531\listoverridecount0\ls76}
+{\listoverride\listid661663139\listoverridecount0\ls77}{\listoverride\listid863327551\listoverridecount9{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel
+\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat
+\levelstartat1}\ls78}{\listoverride\listid1761104069\listoverridecount0\ls79}{\listoverride\listid863327551\listoverridecount9{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat
+\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel\listoverridestartat\levelstartat1}{\lfolevel
+\listoverridestartat\levelstartat1}\ls80}{\listoverride\listid637682566\listoverridecount0\ls81}{\listoverride\listid821390011\listoverridecount0\ls82}{\listoverride\listid1245529338\listoverridecount0\ls83}{\listoverride\listid1707219634
+\listoverridecount0\ls84}{\listoverride\listid543565147\listoverridecount0\ls85}{\listoverride\listid1013999608\listoverridecount0\ls86}{\listoverride\listid835651964\listoverridecount0\ls87}{\listoverride\listid445197422\listoverridecount0\ls88}
+{\listoverride\listid873349574\listoverridecount0\ls89}{\listoverride\listid2028142822\listoverridecount0\ls90}{\listoverride\listid556354303\listoverridecount0\ls91}{\listoverride\listid1720545875\listoverridecount0\ls92}{\listoverride\listid1026054755
+\listoverridecount0\ls93}{\listoverride\listid1043360863\listoverridecount0\ls94}{\listoverride\listid1325620645\listoverridecount0\ls95}{\listoverride\listid1328628986\listoverridecount0\ls96}{\listoverride\listid2009282495\listoverridecount0\ls97}
+{\listoverride\listid1802723562\listoverridecount0\ls98}{\listoverride\listid1062755366\listoverridecount0\ls99}{\listoverride\listid1883706338\listoverridecount0\ls100}{\listoverride\listid676541764\listoverridecount0\ls101}
+{\listoverride\listid1075738273\listoverridecount0\ls102}{\listoverride\listid1368094668\listoverridecount0\ls103}{\listoverride\listid753429916\listoverridecount0\ls104}{\listoverride\listid1071344639\listoverridecount0\ls105}
+{\listoverride\listid1795563694\listoverridecount0\ls106}{\listoverride\listid1843735382\listoverridecount0\ls107}{\listoverride\listid1320816205\listoverridecount0\ls108}{\listoverride\listid803548876\listoverridecount0\ls109}
+{\listoverride\listid1534616004\listoverridecount0\ls110}{\listoverride\listid1932467451\listoverridecount0\ls111}{\listoverride\listid1996685746\listoverridecount0\ls112}{\listoverride\listid750393811\listoverridecount0\ls113}
+{\listoverride\listid1650283949\listoverridecount0\ls114}{\listoverride\listid485055982\listoverridecount0\ls115}{\listoverride\listid1285967081\listoverridecount0\ls116}{\listoverride\listid273828814\listoverridecount0\ls117}
+{\listoverride\listid1194416140\listoverridecount0\ls118}{\listoverride\listid62921821\listoverridecount0\ls119}{\listoverride\listid1665433118\listoverridecount0\ls120}{\listoverride\listid574970712\listoverridecount0\ls121}}{\*\revtbl {Unknown;}{Preferred Customer;}}{\info
+{\title PocketBTS Software Architecture Specification}{\subject Software Architecture}{\author Sheausong Yang}{\keywords PocketBTS, Software, Architecture, Traditional, GSM}{\operator Preferred Customer}{\creatim\yr1998\mo10\dy7\hr10\min39}
+{\revtim\yr1998\mo10\dy8\hr10\min52}{\printim\yr1998\mo10\dy6\hr16\min45}{\version24}{\edmins318}{\nofpages29}{\nofwords7681}{\nofchars43783}{\*\company JetCell Inc.}{\nofcharsws53768}{\vern89}}{\*\userprops {\propname Owner}\proptype30{\staticval
+Sheausong Yang}}\margl1080\margr1080\margt4421 \deftab360\widowctrl\ftnbj\aenddoc\hyphhotz950\aftnnar\notabind\wraptrsp\nocolbal\transmf\lytprtmet\hyphcaps0\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot \fet0{\*\ftnsep \pard\plain
+\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\f6 \chftnsep }{
+\par }}{\*\aftnsep \pard\plain \sb60\sa60\sl-20\slmult0\widctlpar\adjustright \fs20\lang2057\cgrid {\f6
+\par }}{\*\aftnsepc \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\f6 }{
+\par }}{\*\aftncn \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\f6 }{
+\par }}\sectd \psz1\sbknone\linex0\headery706\footery788\endnhere\titlepg\sectdefaultcl {\footer \pard\plain \sb240\sa60\nowidctlpar\box\brdrs\brdrw15\brsp20 \adjustright \fs20\lang2057\cgrid {
+The master copy of this document is stored in electronic format as POCKET~1.DOC. Therefore any hard or soft copy version used for distribution should be considered as an uncontrolled copy, reference should be made to Pocket Wireless, Inc. to obtain the l
+atest version. This version was printed on }{\field{\*\fldinst {date \\@ "d"}}{\fldrslt {\lang1024 8}}}{ }{\field{\*\fldinst {date \\@ "MMMM"}}{\fldrslt {\lang1024 October}}}{ }{\field{\*\fldinst {date \\@ "yyyy"}}{\fldrslt {\lang1024 1998}}}{.
+\par }\pard\plain \s17\sb240\sa60\nowidctlpar\box\brdrs\brdrw15\brsp20 \tqc\tx4320\tqc\tx5400\tqr\tx8640\tqr\tx9720\adjustright \fs20\lang2057\cgrid {
+Any modifications to this document will be marked with a vertical bar in the margin. Added text is indicated with a double underline, deleted text with a strikethrough}{\b\f7
+\par }}{\headerf \pard\plain \s18\qr\sb60\sa60\nowidctlpar\tqc\tx4320\tqr\tx8640\tqr\tx9720\adjustright \fs20\lang2057\cgrid {{\*\shppict{\pict{\*\picprop\shplid1026{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
+{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fillColor}{\sv 268435473}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex384\picscaley380\piccropl0\piccropr0\piccropt0\piccropb0
+\picw1693\pich1074\picwgoal960\pichgoal609\pngblip\bliptag212867686{\*\blipuid 0cb01a6611f70f54a2b408decc78c103}89504e470d0a1a0a0000000d49484452000000c80000007f08030000009d497d610000000467414d410000b1889598f4a600000300504c54450000002626264b
+4b4b7171710f0f0f3535355a5a5a808080c0c0c04c4c4c969696e2e2e21d1d1d696969b3b3b3ffffff1800000000000000000000008000000000008000000000
+0080000000000000000000000000000000000000001e433a5c444f574e4c4f41445c5765622050616765735c4a657443656c6c5c000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000f6a657463656c6c6c6f676f2e4a50710500a0e82448008886470000d0e61990d243005cb84600000040
+00f0860ac12880f7bf04435981000000007d92f7bf0000400000000000d8344700d8344700c0ed410000000000d4344700d434470000004000f0860ac12880f7
+bf04435981000000007d92f7bf8abd410001000000f8626d503cb64600010000000000000038b646002013e0190000400075e462000100000038e3620010fa00
+5075e4620038e26200010000000000000038e26200baf9005038e2620075e46200010000000000000075e462007a03075038e2620075e4620077e3620074e562
+00007067004ce262000300000074e36200280000004a5045472c204a5045472046696c7465722c20433a5c50726f6772616d2046696c65735c436f6d6d6f6e20
+46696c65735c4d6963726f736f6674205368617265645c47727068666c745c4a504547494d33322e464c542c206a70670033776d660000d0e61990d243005cb8
+460000004000f0860ac12880f7bf04435981000000007d92f7bf0000400000000000d8344700d8344700c0ed410000000000d4344700d434478bb81bc6000000
+097048597300002e2500002e2601d38b282e0000096349444154789ced5ced8eac3a0e6c6e564a24ffe0fddf768190d8653b21e99d0674b59973663a7cba2897
+ed04e8cffa2f699fa70d302d7db7dbdb80244ae92b282f0392f646df4079159003031d50a6f77d11908c81dbdcdeaf01526050fe45b3acbc054845902a317352
+79059024bd4af8d70c296f0042ec55e203cd29e579209a0860641ccad340ce689b9809f369ccc19e05925603c1fd3070a82781a45541484a2cc46b2f0ff62010
+16b412baab95aba33d07c43158472fb5ba7bb887807051c58613da0d1cd1657e7c0a884b06a94f165dfb884f00413dab5211ac77f8691df47e2052e3a4ec241d
+00106aaf96bc1d88bac02e25b0567b6103c9cd40125cf26a33494752c6435239dbd34050cefbef10436e116cb559857dab9156ee0482ee1fc267f9c8b684e0d4
+2a1c7c31c63d06048d0b8881c1442d091bba4aff19202220b5611c2d78a31243884990f70081ab1a3a284e5abc4a92ede7657703113e45b1c7464122a54e1201
+840092586e000227bea4a3b8972a4e6c1559aecc5d40d0a2311c9f88763b41592ae60e20ca3d06dc8a7d8b3c77921cd5b5bf07a232da201f5b4baa81c4096165
+a9482029caf6ade9b283038a711c9f6a2e56f72016acbf049014c14dbf0111713f3c5d6c59edb460d33bfe118e95bd4b32f23f01d9e834fb41669be06317890a
+b92e30e16d6d2033e229200c1079ca51a1e7668de7da8005b2976c8e46e048338cc4c67ee5b4e3098481b0f1d5f6ad545e96adb6f4ba7fe35a2d20c2013a3862
+c83f4059c04bbfd5ca7575b4dd1e9019d76a02614f6838d6310ea93e13b87e5954de1017c2e9d20d8c5087902524f4f8ed73c1a272ba3840d82b36d1fdc3a8d5
+d5483ba5079b1bb27e4f73e5ca0e23f47751abc3488790220328628e16434559af0500a1a40ef36bd72ae67940a2aa68051eda1c2c48144901d18c288d2438cf
+df30929415b52d15029463a6442cf89a8ca45946d25e8a7db61f5b86f534d22ab2000219440620ef499aa0bed8954622ae8cc9df491c7fe5e2d7917a24d762c2
+2522a3f619a141d772ac2d501a388ee39e86387b2fb682825257a2d08ce8ae53c63780782e5e917481e4e6785621044d0799e01242cb8949ceebdb403e17388a
+ad8d755168c47ad682f61238513a358e14a1e5a29bd70f30d21946a43623b1ba163958a3a863558dabe356e9fc2380a8ee58f86df291b7e932d2f62cf42b33bc
+a80ec50b140582a00b8d94151d1c3b257d20a4caa4b32d560722008763567839a682198f386932dd81a885b925998dbe62248004001316f30b0f7981119ad608
+2c4a165bca131672bfdc123362b51eb427555c0674c1ac4431a391648c76e41f0db4f302accc88c181e358f1d19bdc2ed3a7326a91e92210d043d4d038b1c8a5
+0d20e786e407adaa718e5aad4aa6d217c4dea67b19b5e492e46ed7e6ad30e2681d0bf44a898b238f4c50142413a2a3118c50da42b19df6ad2e23360fb1449244
+24fc6a1fc2336e8f112599aba8d530b00764801111b444a51270bdec634d72f863378f588dc8056242552eee31426e206a30b2e06ae299c9c5c9ec731ae96575
+69778f1147c231294ad003eb42b0555589731a1999ad4d3d2094bc9291b39c507ac5bbd4158223020a4cad75a59111205db1371951032a39700a795e48ba4f30
+a97c42239f31d7ea33e217f191cb12ae0b796d3c9e22d8fe333615b5a63532ca8806c662876b27edd2756e776a7801469446ae32fbb71a31b3288e6be11024f7
+fa4080020cce578c8cb956341a316277c3af4924fdc97aea44ad64a35617484c915d61c526771b488851472d37dbc0418d46386ae50aa63faf05c8d6766b31d2
+1857c15ce989a6efc576b6a1cb889dd78283b581e80b008c58137980c8eee59496e74fc84345a4401530bd49ec6e35d801a235e25d6b3d50873c1279e0588333
+f51921644449db406b5292ba51cb01220721266af1435b30f9a028505d09449dd18c47c434a9d8a7eb5ad4c888705fed6c3a55035dc944ad0f744fd73ae291be
+7076106b90ec73da762bcd087d4c0bcc48bdf498c7912db5de2bfad766de4bd64409e5446e47f67951aa930fae8e53525060ab2039d94333321271141659ec6e
+de2b57ddac88f9eec2d971363aee3ce4f09d1ad5078c704f7b850716991cb77c42ae87396a459c541177ac3c4646261a1b404e5bd7720fd10112c4f52eca9607
+59f253a7e73deb8500a7268819f1ec603f1f00e26d938a6b79d3288b4e880dc0b9fd87406911bb7d8d08597773ae371f995b15bb4f0964441398d4c6b8324c68
+04925f8f1367f251ac390d756ff40842aa601a273114986e8b1195c43b0f2815e6ec166bd5886b60b0bee5a69c6a2ae2528c9c45a33a914d7ced6b955a58cf49
+6cd201a936507bfde55e320524a0ee1a8c44277f3758c12d75c659d7fade8e5bda2ec845fda40515620ec4ca7215c4cea2b1cc57a5de2b33fbc43be70fb75e39
+d61f69444e62379c7f1bbf1212727edc06ed9ffcdc7cbd4592f6a72152fe89f9da94aef7bcd61f3484576cf4c77f3cef636839ff9074bd3ab992b8cfbbfef629
+5336ca03c28f90a51a84cbbf10445856cd84885f30a280d47336925d79e0046babfd3e899590dc4e71486a60f5f740aa873473519075d50139dfede1896e5596
+d505cce18d8c74e7ad963c1db70d69e58d053580f46a1a5e4bbfd7483df9dc43a69fa46c87bf64b1ddc148769099c7973f7298a83f6868896baddf01910e3085
+04678c085140f794cacf19115e30f3e46ff01931c2a9ede76f2bc8734e205171d9e3407efeb5d8e1a1f26671eb3511744dc677a2d77acb1b3df5127a6345bf2d
+521e821143526663bd03083c583efc6a92bcdce474e4b2f52e20f086eee8cb62f9dacb22113b754939c74def21b23123afefc123a818aca4932539eab8edcd50
+768aeb84a26ec45716b4c8e509ee7c57b7167a7dff5af8aeaf50b4d4c6c9091cffc6b7a7e5c56d3b582e877b03110fc6edefb38b4bea3c9cb594013a2a5a9728
+daabee072213647e592486e59f0dd0f66babe4c152af5342d9e3df307042e1cb9d85b0124b42da0c1f6de67818887e7bd79acb18fceac43fea83df8b629c07a4
+21bad2195ff4bd287b43a339cc7a2c91f8fcb26faad95b8f127216531fc683dfe664edd4caa931aa9139b03dfefd5a4e85ae0baa74e155477bf41bcf9c66725f
+491f57077b12c8ca371e5449a8291938d2c340b06a5142af2b460ef434101c401aff1a85f10620eab5779d4b460ff2062035d73b3970f810ef0062aa965918af
+01526f414c640e6caf01220b7c9a52476e2f0222ef70cd7fbdf7ab80f02daef95ddf05a490f2c58e6f03b27e85627d21906fdbff81bcadfd178588ca302d19cd040000000049454e44ae426082}}{\nonshppict{\pict\picscalex384\picscaley379\piccropl0\piccropr0\piccropt0\piccropb0
+\picw1693\pich1074\picwgoal960\pichgoal609\wmetafile8\bliptag212867686\blipupi300{\*\blipuid 0cb01a6611f70f54a2b408decc78c103}010009000003fc3200000000da32000000000400000003010800050000000b0200000000050000000c027f00c8000400000007010400da320000430f2000cc00
+00007f00c800000000007f00c8000000000028000000c80000007f000000010008000000000038630000252e0000262e00008e0000008e000000000000001e00
+0000380000004000000074000000750000007d000000d0000000d4000000f800000000000100000018000000280000004000f000400000004600c0004700d400
+4700d80047000000620038006200750062000000660000008000000081000000bf00000100000003000007037a004304bf00c10a86006a0f00000f0f0f000019
+e0009019e6001d1d1d001320000043202c006a202c0046206e00262626008028c1004a2e6f002e3233004734d4004734d80035353500e23850005c3a43000040
+00000041ed00594304006f435c00654374000043d2005c4441006946200000473400204745002c47450072475c00004824004d494700504a0000504a2000654a
+5c004b4b4b00544c46004c4c4c004f4c4e00574f44006150200045504a00815943005a5a5a00b85c0000505c3a004d5c73006d6172000062e2000062e3000062
+e40072636900626557007365670073656c0064657200726574000067700061685300666870006c694600696969006c6c6500656c69005c6c6c00506d62006f6d
+6d00676f6c00676f720005715000717171006f736f00e574000063746500207466005c746c00e47550006d773300927d0000f780280080808000008159004786
+88000a86f000f7927d0096969600e8a00000b3b3b30046b6380046b63c0046b85c0041bd8a0000bff70004bff700c0c0c00028c10a0043d2900034d4000034d8
+000062e24c00e2e2e20062e3770062e4750019e6d00041edc00086f00000bff78000bff7920000f9ba0000fa1000ffffff008d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d7d837d
+7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d83
+7d7d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+7d7d7d7d837d7d7d7d7d7d837d7d7d7d837d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d7d7d7d7d837d7d837d7d837d7d7d7d837d7d7d837d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d837d7d7d7d837d837d7d837d7d7d7d7d7d7d7d837d7d7d7d7d837d7d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d837d837d7d7d837d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d83
+7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d
+7d7d7d837d7d7d7d7d7d837d7d837d7d7d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d7d837d7d837d7d7d7d837d7d7d837d
+7d7d7d7d7d7d837d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d7d7d7d7d
+837d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d837d837d7d7d837d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d
+7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d
+7d7d7d7d7d7d837d7d7d7d837d837d837d7d837d7d837d837d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d837d7d7d837d7d837d7d7d7d7d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d7d837d837d
+7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d7d837d7d7d837d7d7d7d7d7d7d837d837d7d7d7d7d7d7d7d7d
+837d7d7d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d7d7d837d837d7d837d838d837d7d837d7d837d837d7d7d7d7d7d7d837d7d837d7d7d7d7d7d
+7d837d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d837d837d7d6f6f65283e280000283e28656f657d7d7d7d837d7d7d7d7d7d
+7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d837d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d837d7d7d652800000000000000000000000000000000002865
+6f7d7d837d837d7d7d7d7d837d7d7d7d837d7d837d7d837d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d837d7d6f280000000000000000000000000000
+0000000000000000000065657d7d837d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d837d7d7d837d7d65000000000000000000
+0000000000000000000000000000000000000000286f7d7d7d7d837d7d837d837d7d837d7d837d7d837d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d837d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d7d7d837d6f000000
+000000000000000000000000000000000000000000000000000000000000657d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d7d7d7d7d
+7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d
+837d6f2800000000000000000000000000000000000000000000000000000000000000000000007d837d7d837d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d
+7d837d7d837d7d7d7d837d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d
+837d837d7d7d7d7d7d6500000000000000000000000000000000000000000000000000000000000000000000000000657d837d7d7d837d837d837d7d7d7d7d7d
+7d837d7d837d837d7d7d7d7d7d7d837d7d7d7d837d7d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d7d7d7d7d7d7d7d7d7d7d837d6500000000000000000000000000000000000000000000000000000000000000000000000000006f7d7d7d7d7d7d7d7d
+7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d837d7d7d837d0000000000000000000000000000000000000000000000000000000000000000000000000000000028
+837d7d837d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d837d7d7d837d7d7d7d7d7d837d7d837d7d837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d837d7d28000000000000000000000000000000000000000000000000000000000000000000
+00000000000000007d837d7d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d837d7d7d7d7d7d650000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000657d7d7d837d7d7d837d7d7d7d7d7d837d7d837d7d7d7d7d7d837d7d837d7d7d837d7d7d7d837d7d837d7d7d837d7d83
+7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d7d837d7d7d7d837d7d6500000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000657d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d7d
+7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d7d7d836f000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000657d7d7d7d837d7d837d7d7d7d7d837d7d837d7d7d7d7d7d837d7d7d7d837d7d
+837d7d7d7d7d7d837d7d837d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d837d7d837d836f0000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000007d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d
+7d7d7d837d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d837d7d7d7d7d
+7d7d28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007d7d7d7d7d837d7d837d7d7d7d7d7d
+7d837d7d7d7d7d7d7d837d7d7d7d837d7d837d7d7d7d837d7d837d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d83
+7d7d7d7d7d7d7d837d650000000000000000000000000000000000000000000000000000286565656f656565286528000000000000000000006f837d7d7d7d7d
+7d7d7d7d7d7d837d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d7d7d7d7d7d837d837d7d7d00000000000000000000000000000000000000000000000065657d7d837d7d837d837d837d7d7d7d7d656528000000
+00657d837d7d837d7d837d837d7d7d7d837d7d7d7d7d7d7d7d7d837d837d7d7d7d837d837d7d7d837d7d837d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d7d6500000000000000000000000000000000000000000000657d7d7d837d7d7d837d7d7d7d7d7d7d7d
+7d7d837d7d7d652800287d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d7d837d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d7d837d838d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d00000000000000000000000000000000000000000028657d7d837d7d7d7d7d7d
+7d837d7d7d837d7d837d7d837d7d837d65657d837d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d
+7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d8d8d8d8d8d8d8d8d8d8d8d8d8d837d7d7d7d837d7d83650000000000000000000000000000000000000000287d7d7d
+7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d837d7d837d7d837d7d7d7d837d837d837d837d837d7d7d7d7d7d7d837d837d837d7d
+837d7d7d7d7d837d7d8d8d8d8d8d6f6f6f6f6f6f6f6f7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d6f6f006f00000000000000
+6f6f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f006f00006f006f6f6f7d8d8d8d8d8d7d7d7d7d7d7d7d7d7d0000000000000000000000000000000000
+000000287d83837d837d7d837d7d7d7d837d7d7d7d7d837d7d7d7d836f6f65006500280000002865657d7d7d7d7d7d7d7d7d6f657d657d657d657d6f7d837d7d
+836f657d657d657d657d657d837d7d7d7d8d8d8d8d6f00000000000000000000006f6f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f0000000000
+0000000000000000000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000000000006f8d8d8d8d7d837d7d837d7d836f000000000000000000
+00000000000000000000287d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d65000000000000000000000000000000656f7d7d837d837d000000000000
+00000000657d7d7d7d28000000000000000000657d7d7d7d838d8d8d8d7d00000000000000000000000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d
+00000000000000000000000000000000000000000000006f7d8d8d8d8d8d8d8d7d6f0000000000000000000000000000006f8d8d8d8d7d7d837d7d7d837d2800
+0000000000000000000000000000000000007d7d7d7d7d7d7d837d7d837d7d7d7d837d7d7d7d837d6f0000000000000000000000000000000000000000657d7d
+7d7d00000000000000000000657d7d837d00000000000000000000657d7d7d7d7d8d8d8d8d6f000000000000000000000000000000006f8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d7d6f000000000000000000000000000000000000000000000000007d8d8d8d8d8d8d8d6f00000000000000000000000000000000008d8d8d8d837d
+7d7d7d7d7d7d00000000000000000000000000000000000000657d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d837d7d2800000000000000000000000000000000
+0000000000657d7d7d7d000000000000000000006f837d7d7d280000000000000000006f837d7d837d8d8d8d8d7d00000000000000000000000000000000006f
+8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000000000000000000000000000000000007d8d8d8d8d8d8d6f00000000000000000000000000000000
+00007d8d8d8d7d7d837d7d837d6f000000000000000000000000000000000000287d7d7d837d7d7d7d7d7d7d7d837d7d7d7d837d7d7d00000000000000000000
+000000000000000000000000006f837d7d8300000000000000000000657d7d7d8300000000000000000000657d7d7d7d7d8d8d8d8d6f00000000000000000000
+00000000000000007d8d8d8d8d8d8d8d8d8d8d6f000000000000000000000000000000000000000000000000000000006f8d8d8d8d8d8d6f0000000000000000
+000000000000000000008d8d8d8d7d7d7d7d7d7d7d6500000000000000000000000000000000000065837d7d7d7d7d7d837d7d837d7d7d837d7d7d7d7d280000
+000000000000000000000000000000000000000000667d7d7d7d28000000000000000000657d7d837d280000000000000000006f837d7d7d838d8d8d8d6f0000
+00000000000000000000000000000000008d8d8d8d8d8d8d8d8d7d00000000000000000000000000000000000000000000000000000000006f8d8d8d8d8d7d00
+0000000000000000000000000000000000007d8d8d8d7d837d7d7d837d000000000000000000000000000000000000287d7d837d7d837d7d7d7d7d7d7d7d7d7d
+7d7d7d7d650000000000000000000000000000000000000000000000000b837d7d83000000000000000000006f837d7d8300000000000000000000657d837d7d
+7d8d8d8d8d6f000000000000000000000000000000000000006f8d8d8d8d8d8d8d7d000000000000000000000000000000000000000000000000000000000000
+6f8d8d8d8d8d6f000000000000000000000000000000000000007d8d8d8d837d7d7d7d7d65000000000000000000000000000000000000657d7d7d7d7d7d7d7d
+837d7d837d7d837d7d7d836f000000000000000000000028656f7d7d7d7d656f652800000028837d837d28000000000000000000657d7d7d7d28000000000000
+0000006f837d7d7d838d8d8d8d7d00000000000000000000000000000000000000008d8d8d8d8d8d8d6f00000000000000000000000000000000006f6f6f6f00
+6f000000000000006f8d8d8d8d8d6f000000000000000000000000006f006f6f6f006f8d8d8d7d7d7d7d837d650000000000000000000000000000000000007d
+837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d2800000000000000000000657d7d837d7d837d837d837d6f6500287d7d7d7d3e0000000000000000006f837d7d
+7d3e000000000000000000657d7d7d7d7d8d8d8d8d6f00000000000000000000000000000000000000007d8d8d8d8d8d6f00000000000000000000000000006f
+7d8d8d8d8d8d8d8d8d7d7d6f000000006f7d8d8d8d8d6f0000000000000000000000006f7d8d8d8d7d7d8d8d8d8d7d837d7d7d7d650000000000000000000000
+000000000000287d7d7d837d7d7d7d7d837d7d7d837d7d7d7d7d6500000000000000000000657d837d7d7d7d7d7d7d7d7d7d837d7d657d7d7d7d280000000000
+000000006f7d7d837d280000000000000000006f837d7d7d838d8d8d8d7d6f7d7d7d6f0000000000000000000000000000006f8d8d8d8d8d6f00000000000000
+00000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f6f006f8d8d8d8d8d6f0000000000000000000000008d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d8300000000
+0000000000000000000000000000657d837d7d7d7d7d837d7d7d837d7d7d837d837d65000000000000000000657d7d7d7d7d837d7d837d7d837d7d7d7d7d837d
+837d6500000000000000000065837d7d7d65000000000000000000657d837d7d7d8d8d8d8d8d8d8d8d8d8d7d6f000000000000000000000000006f8d8d8d8d7d
+0000000000000000000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f8d8d8d8d8d0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d
+7d837d7d280000000000000000000000000000000000657d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d280000000000000000007d837d7d7d7d7d7d7d7d7d7d
+7d7d7d7d837d7d7d7d7d280000000000000000007d7d7d7d83000000000000000000007d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000
+0000008d8d8d8d6f0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d7d7d7d7d7d6f0000000000000000000000000000000000007d7d837d7d7d7d7d837d7d837d7d837d7d7d7d7d000000000000000000657d7d837d
+7d837d7d7d837d837d7d837d7d7d7d7d7d7d6500000000000000000065837d7d7d6500000000000000000065837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000
+000000000000000000006f8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d00000000000000000000
+00007d8d8d8d8d8d8d8d8d8d8d8d7d837d7d836f000000000000000000000000000000000000837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d000000000000
+0000006f7d837d7d7d837d837d7d837d837d7d837d7d7d837d83280000000000000000007d7d7d7d83280000000000000000007d7d7d837d7d8d8d8d8d8d8d8d
+8d8d8d8d8d6f000000000000000000000000008d8d8d8d0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d0000
+000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d6f0000000000000000000000000000000000287d7d837d7d7d7d7d7d837d7d837d7d837d7d
+7d6500000000000000000000000000000000002800280028002800652865657d7d7d3e00000000000000000065837d7d7d6500000000000000000065837d7d7d
+838d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d7d0000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d837d7d837d650000000000000000000000000000000000657d7d7d7d837d7d837d7d
+7d7d7d7d7d7d7d7d836f00000000000000000000000000000000000000000000000000000000007d7d83280000000000000000007d7d7d7d8328000000000000
+0000007d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d7d00000000000000000000006f7d6f7d7d7d7d7d7d7d7d7d7d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d6500000000000000000000000000000000006f837d
+7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d6500000000000000000000000000000000000000000000000000000000007d7d7d650000000000000000007d7d837d
+7d3e00000000000000000065837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d7d0000000000000000000000000000000000
+000000000000000000000000000000006f008d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d65000000000000000000000000
+0000000000657d7d837d7d837d7d837d7d837d7d7d7d7d7d83650000000000000000000000000000000000000000000000000000000000837d7d280000000000
+000000007d7d7d7d83280000000000000000007d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d000000000000000000000000008d8d8d6f000000000000000000
+00000000000000000000000000000000000000000000000000007d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d6500000000
+000000000000000000000000006f837d7d7d7d7d7d7d7d837d7d7d7d837d7d7d7d7d00000000000000000000000000000000000000000000000000000000287d
+7d7d650000000000000000007d837d7d7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d6f00
+000000000000000000000000000000000000000000000000000000000000000000008d8d8d8d0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d837d
+7d7d83280000000000000000000000000000000000657d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d6500000000000000000000000000000000000000000000
+000000000000287d837d280000000000000000007d7d7d7d83280000000000000000007d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d00000000000000000000
+0000008d8d8d7d00000000000000000000000000000000000000000000000000000000000000000000007d8d8d8d6f00000000000000000000007d8d8d8d8d8d
+8d8d8d8d8d8d7d7d837d7d2800000000000000000000000000000000006f837d837d7d7d7d7d7d7d837d837d7d837d7d7d7d0000000000000000006f6f656f65
+65656f6565000000000000000000657d7d7d650000000000000000007d7d837d7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000
+000000000000000000006f8d8d8d6f00000000000000000000000000000000000000000000000000000000000000000000008d8d8d8d6f000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d836500000000000000000000000000000000006f7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d837d7d000000000000
+00000065837d837d837d837d7d650000000000000000657d837d28000000000000000000837d7d7d83280000000000000000007d837d7d7d7d8d8d8d8d8d8d8d
+8d8d8d8d8d8d000000000000000000000000008d8d8d6f00000000000000000000000000000000000000000000000000000000000000000000007d8d8d8d6f00
+000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d28000000000000000000000000000000000065837d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d
+7d7d650000000000000000287d7d7d7d7d7d7d7d83280000000000000000657d837d650000000000000000007d7d837d7d3e0000000000000000007d7d7d7d7d
+838d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d7d000000000000000000000000000000000000000000000000000000000000000000
+006f8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d836500000000000000000000000000000000006f7d7d837d7d837d7d837d
+7d837d7d7d7d837d7d836f0000000000000000007d7d837d7d7d7d837d0000000000000000007d7d7d7d280000000000000000007d7d7d7d8328000000000000
+000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d0000000000000000000000006f8d8d8d8d0000000000000000000000007d6f6f6f6f6f6f6f6f6f6f0000
+000000000000000000008d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d837d7d650000000000000000000000000000000000657d7d
+7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d83280000000000000000657d7d7d7d7d837d6f0000000000000000287d837d7d3e0000000000000000007d7d837d
+7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d6f000000000000000000006f8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d65000000000000000000000000
+0000000000657d837d7d837d7d837d7d837d7d7d7d7d7d837d7d7d65000000000000000000657d837d7d7d6500000000000000000065837d7d83280000000000
+00000000837d7d7d83280000000000000000007d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d000000000000000000000000008d8d8d8d6f0000000000000000
+0000008d8d8d8d8d8d8d8d8d8d8d6f000000000000000000006f8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d836f00000000
+00000000000000000000000000657d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d28000000000000000000006f656f65000000000000000000287d7d7d
+7d7d650000000000000000007d7d7d7d7d3e0000000000000000007d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d7d
+00000000000000000000007d8d8d8d8d8d8d8d8d8d7d00000000000000000000007d8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d
+7d7d7d65000000000000000000000000000000000028837d7d7d7d837d7d7d7d7d837d7d7d7d837d7d7d7d7d7d00000000000000000000000000000000000000
+0000000065837d7d837d28000000000000000000837d837d8328000000000000000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d00000000000000000000
+00006f8d8d8d8d7d00000000000000000000006f8d8d8d8d8d8d8d8d8d7d00000000000000000000008d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d7d837d7d837d0000000000000000000000000000000000007d7d837d7d7d7d837d837d7d7d837d7d7d7d7d837d7d836500000000000000000000
+0000000000000000000000657d7d7d7d7d7d650000000000000000007d7d7d7d7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000
+000000000000000000006f7d8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d6f000000000000000000006f8d8d8d8d8d6f000000000000000000
+00006f8d8d8d8d8d7d8d8d8d8d8d7d7d7d7d7d7d0000000000000000000000000000000000007d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d6528
+000000000000000000000000000000000000287d837d7d7d7d7d280000000000000000007d7d837d7d280000000000000000007d7d837d7d7d8d8d8d8d8d8d8d
+8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d7d0000000000000000000000007d8d8d8d8d8d8d6f00000000000000000000007d7d6f6f6f6f6f00
+000000000000000000006f6f6f6f6f6f6f7d8d8d8d8d7d837d7d837d280000000000000000000000000000000000657d7d7d7d7d7d7d7d7d837d7d7d7d7d7d83
+7d7d837d7d837d7d6500000000000000000000000000000000657d837d7d837d7d7d3e0000000000000000007d7d7d7d7d3e0000000000000000007d7d7d7d83
+7d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d6f0000000000000000000000006f7d8d8d7d0000000000000000000000006f
+8d7d00000000000000000000000000000000000000000000006f8d8d8d8d7d7d7d7d7d7d650000000000000000000000000000000000657d837d7d837d7d837d
+7d7d837d837d7d7d7d7d7d7d7d7d7d7d7d65280000000000000000000000002865837d7d7d7d7d7d7d7d28000000000000000000837d7d837d28000000000000
+000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d8d8d8d8d00000000000000000000000000000000000000000000
+000000000000007d8d7d00000000000000000000000000000000000000000000006f8d8d8d8d7d837d7d837d650000000000000000000000000000000000287d
+7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d837d7d7d7d656565002800282865657d7d7d7d7d7d837d837d7d83000000000000000000007d7d7d7d
+83000000000000000000007d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d8d7d00000000000000000000000000
+00000000000000000000000000006f8d8d7d00000000000000000000000000000000000000000000006f8d8d8d8d7d7d7d7d7d7d650000000000000000000000
+000000000000006f7d7d7d7d7d837d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d837d7d837d7d7d7d7d7d7d280000000000
+00000000837d7d7d7d280000000000000000007d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d8d8d6f00000000
+000000000000000000000000000000000000000000007d8d8d8d00000000000000000000000000000000000000000000006f8d8d8d8d7d837d7d7d837d000000
+0000000000000000000000000000006f837d837d7d7d7d837d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d83
+7d7d3e0000000000000000007d7d837d7d3e0000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d8d8d
+8d8d8d8d7d0000000000000000000000000000000000000000000000008d8d8d8d7d00000000000000000000000000000000000000000000006f8d8d8d8d837d
+7d7d837d7d280000000000000000000000000000000000287d7d7d7d837d7d7d7d7d7d7d7d7d837d7d837d7d7d7d837d7d837d7d7d7d7d837d837d7d837d7d83
+7d7d7d837d7d7d7d7d7d280000000000000000007d7d7d7d7d28000000000000000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d00000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000000000000000000000006f7d8d8d8d8d8d00000000000000000000000000000000000000000000
+00008d8d8d8d7d7d7d7d7d7d7d650000000000000000000000000000000000006f837d7d7d7d7d7d837d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d
+7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d83000000000000000000007d837d7d83280000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000
+000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000000000000000006f7d8d8d8d8d8d8d0000000000000000000000000000
+000000000000000000008d8d8d8d7d837d7d7d7d836f000000000000000000000000000000000000287d837d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d837d
+7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d837d7d7d7d7d7d7d7d000000000000000000007d7d7d7d7d000000000000000000007d837d7d7d7d8d8d8d8d8d8d8d
+8d8d8d8d8d6f000000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d6f6f000000000000000000000000006f7d8d8d8d8d8d8d8d8d6f0000000000
+0000000000000000000000000000000000007d8d8d8d7d7d837d7d7d7d7d280000000000000000000000000000000000006f837d7d7d7d7d7d7d837d7d837d7d
+7d7d7d7d7d7d7d7d837d7d7d837d7d837d7d7d7d7d7d7d837d7d7d7d837d7d837d7d000000000000000000007d7d7d837d000000000000000000007d7d7d7d7d
+838d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d6f6f6f006f006f6f6f8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d7d7d837d7d8365000000000000000000000000000000000000007d837d7d837d
+7d7d7d7d7d7d7d837d7d837d7d837d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d00000000000000000000837d7d7d7d00000000000000
+0000007d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d0000000000000000000000000000000000
+0000287d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d837d837d7d7d7d837d7d000000000000000000007d7d7d83
+7d000000000000000000007d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d837d7d7d650000000000000000
+00000000000000000000006f7d837d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d837d7d7d837d837d6f28657d7d7d837d7d7d7d7d837d7d7d7d7d000000000000
+000000007d7d7d7d65000000000000000000007d837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d6f000000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d8365
+0000000000000000000000000000000000000000657d7d7d7d837d7d837d7d7d7d837d7d7d837d7d7d7d7d7d7d7d6f650000657d837d7d7d7d837d7d7d7d7d83
+7d7d000000000000000000007d7d7d837d00000000000000000000657d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d
+7d7d7d7d837d7d7d280000000000000000000000000000000000000000657d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d837d7d650000000065837d7d7d7d
+7d7d7d837d7d7d7d7d65000000000000000000007d7d7d7d65000000000000000000007d837d7d7d838d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d7d7d7d7d837d7d7d7d836500000000000000000000000000000000000000000028657d7d7d837d7d7d7d7d7d7d837d837d837d7d6f2800000000
+00007d7d837d7d7d837d7d7d7d7d7d837d650000000000000000000065837d836f00000000000000000000657d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000
+00000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d837d7d7d7d2800000000000000000000000000000000000000000000656f7d7d7d837d837d837d7d7d7d656f
+28000000000000000028837d7d7d7d7d7d7d837d7d7d7d7d7d65000000000000000000007d7d7d7d65000000000000000000007d7d7d7d837d8d8d8d8d8d8d8d
+8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00
+000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d836500000000000000000000000000000000000000000000000000006f656f65
+6f656f6528000000000000000000000000657d7d7d7d837d7d7d7d7d7d7d837d7d65652800000000000000006f837d7d65652800000000000000006f837d7d7d
+7d8d8d8d8d8d8d8d8d8d8d8d8d000000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d7d7d7d837d7d837d7d7d65000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000007d837d7d7d7d7d837d837d7d7d7d7d837d7d7d7d656f6528280028657d7d837d7d7d7d656f6528
+280028657d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d6f000000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f0000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d7d7d28000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000007d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d837d837d837d7d7d7d837d7d
+7d7d7d7d7d837d837d7d657d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f00000000006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d837d7d837d836500000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000287d7d837d7d7d837d7d7d7d837d7d7d7d837d7d7d7d7d7d
+7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d7d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d6f00006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d837d7d7d7d
+7d7d7d7d6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000065837d7d7d7d7d7d7d7d837d7d7d7d83
+7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d837d837d7d7d7d837d7d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f6f6f6f6f6f6f6f6f6f6f6f8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d8d8d8d8d8d8d8d8d8d8d8d7d83
+7d7d7d7d7d837d7d7d837d7d83650000000000000000000000000000000000000000000000000000000000000000000000000000000000007d7d7d837d7d837d
+7d837d7d7d837d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d7d7d837d7d7d7d7d7d7d7d7d7d7d7d650000000000000000000000000000000000000000000000000000000000000000000000000000000000
+7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d7d7d7d837d7d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d837d7d7d280000000000000000000000000000000000000000000000000000000000000000
+00000000000000287d837d7d837d7d837d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d837d7d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d7d7d7d650000000000000000000000000000000000000000000000
+0000000000000000000000000000006f837d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d7d837d7d837d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d7d7d837d7d7d650000000000000000000000000000
+0000000000000000000000000000000000000000000000657d7d7d837d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d837d7d7d7d
+837d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d837d7d7d7d837d836f2800000000
+000000000000000000000000000000000000000000000000000000000000287d837d7d7d7d7d837d7d7d7d837d7d7d837d7d7d837d7d7d7d837d7d7d7d7d837d
+7d7d7d7d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d
+7d7d837d650000000000000000000000000000000000000000000000000000000000000000286f837d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d
+7d7d837d7d7d7d7d7d837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d7d837d837d837d7d7d7d7d837d6528000000000000000000000000000000000000000000000000000000657d7d837d7d7d7d7d837d7d837d837d7d7d7d7d7d
+837d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d837d7d7d7d837d652800000000000000000000000000000000000000000000286f7d7d7d7d7d7d837d7d7d7d7d7d7d
+7d7d7d7d837d7d7d7d7d7d7d7d7d837d7d837d7d837d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d7d7d837d7d65650028000000000000000000000000002865657d7d837d7d837d7d7d
+7d7d7d7d7d837d7d7d7d837d7d7d837d7d837d7d837d7d7d7d7d7d7d7d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d7d837d7d7d837d837d7d7d656f656565656565656f7d7d7d7d837d
+837d7d7d7d7d7d837d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d837d837d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d837d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d83
+7d837d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d837d837d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d837d7d7d7d
+7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d
+7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d7d837d837d837d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d7d7d7d837d837d837d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d7d7d7d7d837d7d837d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d837d7d7d837d7d7d7d7d7d7d7d7d837d7d837d7d7d
+7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d837d7d7d837d7d7d7d7d7d7d7d837d7d7d7d837d
+7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d837d7d7d837d7d7d7d837d7d837d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d837d7d837d
+7d7d7d7d837d7d7d837d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d
+837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d7d7d7d7d7d7d7d7d837d7d837d7d7d
+7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d8d7d7d7d837d7d837d7d
+7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d837d837d7d837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d
+8d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d7d837d7d7d837d7d7d7d7d7d7d837d7d837d7d7d7d7d7d837d7d837d7d7d7d7d7d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d837d837d7d7d7d7d837d7d837d7d7d7d7d837d7d837d837d7d7d7d7d7d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d7d837d7d
+7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d
+7d7d837d7d7d7d837d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d837d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d0400000007010100030000000000}}}{\b\fs28
+
+\par }}{\footerf \pard\plain \s17\qj\sb60\sa60\nowidctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrl\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15 \brdrr\brdrs\brdrw15\brsp20 \tqc\tx4320\tqr\tx8640\adjustright \fs20\lang2057\cgrid {\f7\fs16
+This work constitutes an unpublished work under the copyright laws. It is submitted in confidence and contains proprietary and confidential information. The contents of this document may not be reproduc
+ed, transmitted or used without express written authority. The copyright and the foregoing restriction on reproduction, transmission and use extend to all media in which the information may be embodied.
+\par }\pard \s17\qc\sb60\sa60\nowidctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrl\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15 \brdrr\brdrs\brdrw15\brsp20 \tqc\tx4320\tqr\tx8640\adjustright {\i Copyright}{\i\f3 \'20}{\i\f3 {\field{\*\fldinst SYMBOL 227 \\f "Symbol"
+ \\s 10}{\fldrslt\f3\fs20}}}{\i 1997-98 JetCell, Inc. All rights reserved
+\par }{\i\f1 All information is subject to change without notice}{\f1
+\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}
+{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8
+\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s63\qc\li1440\ri1080\widctlpar\brdrt\brdrdb\brdrw30\brsp20 \brdrl\brdrdb\brdrw30 \brdrb\brdrdb\brdrw30\brsp20
+\brdrr\brdrdb\brdrw30 \tx5040\tx9000\adjustright \shading10000 \b\f1\fs48\lang2057\cgrid {PocketBTS Software Design Specification: Module RM
+\par }\pard\plain \li1440\ri1109\widctlpar\tx4140\outlinelevel0\adjustright \fs20\lang2057\cgrid {\i\fs28 Document Number:\tab }{\fs28 PBTS-SW-DS-RR-RC0000}{\i\fs28
+\par }\pard \li1440\ri1109\widctlpar\tx4140\adjustright {\i\fs28
+\par Version:\tab }{\fs28 0.}{\fs28\revised\revauth1\revdttm1714044015 1}{\deleted\fs28\revauthdel1\revdttmdel1714044015 0}{\i\fs28
+\par
+\par }\pard \li1440\ri1109\widctlpar\brdrb\brdrs\brdrw30\brsp240 \tx4140\tx9900\adjustright {\i\fs28 Revision Date:\tab }{\field{\*\fldinst {\fs28 TIME \\@ "dddd, dd MMMM yyyy" }}{\fldrslt {\fs28\lang1024 Thursday, 08 October 1998}}}{\i\fs28
+\par }\pard \widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \adjustright \shading10000 {\sect }\sectd \marglsxn1440\margrsxn1440\margtsxn1440\psz1\pgnrestart\linex0\headery1440\footery630\sectdefaultcl {\footer \pard\plain
+\s17\sb60\sa60\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \fs20\lang2057\cgrid {
+\par }}{\*\pnseclvl1\pnucrm\pnstart1 {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1 {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1 {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1 {\pntxta .}}{\*\pnseclvl5\pndec\pnstart1 {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1
+{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1 {\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1 {\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb
+\brdrs\brdrw15\brsp20 \outlinelevel0\adjustright \shading10000 \fs20\lang2057\cgrid {\b\fs28 Revision History
+\par }\pard \widctlpar\adjustright {
+\par }\trowd \trgaph108\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrdb\brdrw15 \clbrdrr
+\brdrs\brdrw15 \cltxlrtb \cellx1170\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrdb\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx3198\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrdb\brdrw15 \clbrdrr
+\brdrs\brdrw15 \cltxlrtb \cellx7650\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrdb\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx9270\pard \qc\widctlpar\intbl\adjustright {\b Version\cell }\pard\plain
+\s2\keepn\widctlpar\intbl\outlinelevel1\adjustright \b\lang2057\cgrid {{\*\bkmkstart _Toc428728098}{\*\bkmkstart _Toc429806407}{\*\bkmkstart _Toc429807404}{\*\bkmkstart _Toc432248044}Date{\*\bkmkend _Toc428728098}{\*\bkmkend _Toc429806407}
+{\*\bkmkend _Toc429807404}{\*\bkmkend _Toc432248044}\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b Comments/Remarks\cell }\pard\plain \s2\keepn\widctlpar\intbl\outlinelevel1\adjustright \b\lang2057\cgrid {
+{\*\bkmkstart _Toc428728099}{\*\bkmkstart _Toc429806408}{\*\bkmkstart _Toc429807405}{\*\bkmkstart _Toc432248045}Modified By{\*\bkmkend _Toc428728099}{\*\bkmkend _Toc429806408}{\*\bkmkend _Toc429807405}{\*\bkmkend _Toc432248045}\cell }\pard\plain
+\widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b \row }\trowd \trgaph108\trrh450\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \clvertalt\clbrdrl
+\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx1170\clvertalt\clbrdrl\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx3198\clvertalt\clbrdrl\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx7650\clvertalt\clbrdrl\brdrs\brdrw15 \clbrdrr
+\brdrs\brdrw15 \cltxlrtb \cellx9270\pard \qc\widctlpar\intbl\adjustright {0.0\cell }\pard \widctlpar\intbl\adjustright {October 5, 1998\cell }\pard\plain \s15\widctlpar\intbl\adjustright \f4\fs20\cgrid {\f0\lang2057 Creation\cell }\pard\plain
+\widctlpar\intbl\adjustright \fs20\lang2057\cgrid {Xiaode Xu\cell }\pard \widctlpar\intbl\adjustright {\row }\trowd \trgaph108\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv
+\brdrs\brdrw15 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx1170\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb
+\cellx3198\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx7650\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx9270
+\pard \qc\widctlpar\intbl\adjustright {\revised\revauth1\revdttm1714044015 0.1}{\cell }\pard \widctlpar\intbl\adjustright {\revised\revauth1\revdttm1714044015 October 7, 1998}{\cell }\pard \qj\widctlpar\intbl\adjustright {
+\revised\revauth1\revdttm1714044015 Added and modified as per Ian}{\revised\revauth1\revdttm1714044018 \rquote s comments}{\revised\revauth1\revdttm1714044019 as well as discussion of Ian\rquote s comments via}{\revised\revauth1\revdttm1714044018
+ conference call between Bhava, JoAnne and Xiaode}{\revised\revauth1\revdttm1714044020 . Please note two Appendices have been added.}{ \cell }\pard \widctlpar\intbl\adjustright {\revised\revauth1\revdttm1714044019 Xiaode}{\cell }\pard
+\widctlpar\intbl\adjustright {\row }\trowd \trgaph108\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb
+\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx1170\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx3198\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb
+\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx7650\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb \cellx9270\pard \qc\widctlpar\intbl\adjustright {0.2\cell }\pard
+\widctlpar\intbl\adjustright {\cell }\pard \qj\widctlpar\intbl\adjustright {Add Ian\rquote s another two emails as Appendix C and correct the order of SDCCH channels where SMS-CB rides over air in terms of Ian\rquote s email comments.\cell }\pard
+\widctlpar\intbl\adjustright {Xiaode\cell }\pard \widctlpar\intbl\adjustright {\row }\pard \qc\widctlpar\tx720\tx1260\tx1440\adjustright {\f5\fs60\expnd0\expndtw-2
+\par }\pard \widctlpar\tx720\tx1260\tx1440\adjustright {\f5\fs24\expnd0\expndtw-2
+\par \sect }\sectd \marglsxn1440\margrsxn2160\margtsxn990\psz1\pgnrestart\linex0\headery990\footery496\sectdefaultcl {\header \pard\plain \s18\qc\sb60\sa60\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \fs20\lang2057\cgrid {\lang1024
+{\shp{\*\shpinst\shpleft7717\shptop-23\shpright8633\shpbottom443\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz0\shplid2049{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn pib}{\sv
+{\pict\picscalex57\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw2833\pich822\picwgoal1606\pichgoal466\pngblip\bliptag-765742159{\*\blipuid d25bb3b16ccc7a045386ed43243ab77f}
+89504e470d0a1a0a0000000d49484452000000c80000007f08030000009d497d610000000467414d410000b1889598f4a600000300504c54450000002626264b
+4b4b7171710f0f0f3535355a5a5a808080c0c0c04c4c4c969696e2e2e21d1d1d696969b3b3b3ffffff1800000000000000000000008000000000008000000000
+0080000000000000000000000000000000000000001e433a5c444f574e4c4f41445c5765622050616765735c4a657443656c6c5c000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000f6a657463656c6c6c6f676f2e4a50710500a0e82448008886470000d0e61990d243005cb84600000040
+00f0860ac12880f7bf04435981000000007d92f7bf0000400000000000d8344700d8344700c0ed410000000000d4344700d434470000004000f0860ac12880f7
+bf04435981000000007d92f7bf8abd410001000000f8626d503cb64600010000000000000038b646002013e0190000400075e462000100000038e3620010fa00
+5075e4620038e26200010000000000000038e26200baf9005038e2620075e46200010000000000000075e462007a03075038e2620075e4620077e3620074e562
+00007067004ce262000300000074e36200280000004a5045472c204a5045472046696c7465722c20433a5c50726f6772616d2046696c65735c436f6d6d6f6e20
+46696c65735c4d6963726f736f6674205368617265645c47727068666c745c4a504547494d33322e464c542c206a70670033776d660000d0e61990d243005cb8
+460000004000f0860ac12880f7bf04435981000000007d92f7bf0000400000000000d8344700d8344700c0ed410000000000d4344700d434478bb81bc6000000
+097048597300001b9400003c5b017d7512ae0000096749444154789ced5c4bb2a4380c84f0c28ed082b9ffd566d91719c0d8524ab2313555404c8c5ff77b65be
+4a5229c9066a5afe236d7ada00d3d267bbbd0d48a2943e82f23220696bf409945701d931d00ee5f2be2f02923170bbb6f76b801418947fd15556de02a4224895
+986b5279059024bd4af8d71552de0084d8abc407baa694e7816822809171284f0339a26d6226cca731077b16485a0c04f7c3c0a19e049216052129b110af3d3d
+d8834058d04ae8ae56ce8ef61c10c7601dbdd4eaeee11e02c245151b4e68377044a7f9f129202e19a43e5974ed233e0104f5ac4a45b0dee1a775d0fb81488d93
+b293740040a8bd5af27620ea02bb94c05aed850d2437034970c9abcd241d49190f49e5684f0341396fbf430cb945b0d56615f6ad465ab91308ba7f08d33cc936
+87e0d42a1c7c31c63d06048d0b8881c1442d091bba4aff19202220b561ec2d78a31243884990f70081ab1a3a280e5abc4a92ede7657703113e45b1c7464122a5
+4e1201840092586e0002273ea5a3b8972a4e6c1559aecc5d40d0a2311c5344bb9da02c15730710e51e036ec5be459e3b498eeadadf0351196d908fb525d540e2
+84b0b25424901465fbd474d9c101c5388ea99a8bd53d8805eb2f01244570d34f4044dc0f4f175b563b2dd8f48e7f846365ef928cfc2b202b9d663fc86c17f8d8
+44a242ae0b4c785b1bc815f1141006883ce5a8d073b3c6736dc002d94a36472370a42b8cc4c67ee5b4e3098481b0f1d5f6b5549ee7b5b6f4badf71ad1610e100
+1d1c31e41fa02ce0a55f6be5ba3ada6e0fc815d76a02614f6838d63e0ea93e13b87e9955de1017c2e9d20d8c5087903924f4f8f573c1a272ba3840d82a36d1fd
+62d4ea6aa49dd283cd0d59bf87b972658711fa5ed4ea30d221a4c8008a98bdc55051d66b014028a9c3fcdab58a791e90a82a5a818756070b1245524034234a23
+09cef31d4692b2a2b6b9428072cc9488055f9391749591b49562d3fa63cbb09e465a4516402083c800e43d4913d417bbd248c49531f93b89e32f5cfc3a528fe4
+5a4cb84464d43e2334e85a8eb5054a03c77edcc31067efd9565050ea4a149a11dd75caf80610cfc52b922e90dc1ccf2a84a0e920135c42683931c9797d1bc874
+82a3d8da58178546ac67cd682f8113a543e348115a2eba79fd00239d61446a3312ab6b9183358a3a56d5b83a6e95ce1f014475c7c26f938fbc4d9791b667a15f
+99e14575285ea02810049d68a4ace8e0d828e9032155261d6db63a100138ecb3c2f33e15cc78c44993e90e442dcc2dc96cf4112301240098b0989f79c80b8cd0
+658dc0a264b1a53c6121f7cb2d312356eb417b52c5654017cc4a145734928cd18efca381765c8085193138701c2b3e7a93db65fa54462d325d04027a881a1a27
+16b9b401e4d890fca05535ce51ab55c954fa82d8db744fa3965c92dceddabc15461cad63815e297171e491098a826442743482114a5b28b6d3bed565c4e62196
+489288845f6d4378c6ed31a2247316b51a06f6800c30228296a85402ae977dac49767fece611ab11b9404ca8cac53d46c80d440d46665c4d3c33393b99fd9a46
+7a595ddadd63c491704c8a12f4c0ba106c5555e2358d8cccd6a61e104a5ec9c8594e28bde29deb0ac1110105a6d63ad3c80890aed89b8ca801951c38853c2f24
+dd2798547e4123d3986bf519f18bf8c86509d785bc36ee4f11acff199b8a5a973532ca8806c662876b27edd2756e776a7806469446ce32fba71a31b3288e6be1
+1024f7fa4080020cce678c8cb956341a316277c3af4924fdc97aea44ad64a35617484c915d61c126771b488851472d37dbc0418d46386ae50aa63faf05c89676
+6b31d21857c15ce981a6efc576b6a1cb889dd78283b581e80b008c58137980c8eee59496c74fc84345a4401530bd49ec6e35d801a235e25d6b3d50873c1279e0
+588333f51921644449db406b5292ba51cb01220721266af1435b30f9a028505d09449dd18c47c434a9d8a7eb5ad4c888705fed683a55035dc944ad09ba876bed
+f1485f383b883548b6396dbb95668426d30233522f3de671644badf78afea599f7923551423990db917d5e94eae483abe3941414d82a484eb6d08c8c441c8545
+16bb9bf7ca55372b62bebb70749c8df63b0f397ca746f50123dcc35ee1814526fb2d9f90eb618e5a112755c41d2b8f919189c60690c3d6a5dc4374800471bd8b
+b2e541e6fcd4e971cf7a26c0a90962463c3bd8cf078078dba4e25ade34caac136203706e7f11282d62b7af1121eb6ecef5e62373ab62f729818c680213b6bf71
+65b8a011487e3d4e9cc947b1e630d4bdd12308a982699cc45060ba2d465412ef3ca05498b35b2c5523ae81c1fa969b72aaa9884b3172148dea4436f1b5af556a
+613d26b14907a4da40edf5977bc9149080ba6b30129dfcdd6005b7d4196759ea7b3b6e693b2317f59316548839102bcb55103b8ac6325f957aafcc6c13ef9c3f
+dc7a655fbfa7113989dd70fe75fc4a48c8f1711db44ff9b9f97a8b246d4f43a4fc13f3b5295def79ad2f3484576cf4c77f3cef636839fe9074bd3ab992b8cfbb
+fef6295336ca03c28f90a51a84cbbf10445856cd84885f30a280d47336925d79e0046babed3e899590dc4e71486a60f57d20d5439ab928c8ba6a879ceff6f044
+b72acbea02e6f04646baf356739e8e5b87b4f2c6821a407a350dafa5df6ba49efcda43a65352b6c35fb2d8ee60243bc895c79727394cd41f34b4c4b5d6ef8048
+07b88404678c085140f790cacf19115e70e5c9dfe033628453dbcfdf5690e7bc8044c5658f03f9f9d7628787ca9bc5add744d03519df895ecb2d6ff4d44be88d
+15fd364b7908460c49998de50e20f060f9f0ab49f27293d391cb96bb80c01bbaa32f8be56b2f8b44ecd425e51c37bd87c8c68cbcbe078fa062b0924e96e4a8e3
+b63743d929ce138aba115f59d0229727b8f35ddd5ae8f5fd6be6bbbe42d1521b072770fc1bdf9e9617b7ed60b91cee0d443c18b7bfcf2e2ea9f370d65c06e8a8
+685da268afba1f884c90f9659118e63f2ba0f5d75ac983a55ea784b2c7bf61e080c2973b0b61219684b4193edaccf13010fdf6ae359731f8d5897fd407bf17c5
+380f484374a533bee87b51b686467398f55822f1f965df54b3b51e25e42ca63e8c07bfcdc9daa9955363542373607bfcfbb59c0a5d1754e9c4abf6f6e8379e39
+cde4be923ece0ef62490856f3ca89250533270a4878160d5a2845e578c1ce86920388034fe350ae30d40d46bef3a978c1ee40d406aae7772e0f021de01c4542d
+5761bc0648bd05712173607b0d1059e0d32575e4f62220f20ed7f5aff77e1510bec5757dd7770129a47cb0e3db802c1fa1585e08e4d3f63f90b7b57f00a959d681f2c2c8aa0000000049454e44ae426082}}}}{\shprslt\par\pard
+\widctlpar\pvpara\posx7716\posnegy-24\absh466\absw916\dxfrtext180\dfrmtxtx180\dfrmtxty0\adjustright {\pict\picscalex57\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
+\picw2833\pich822\picwgoal1606\pichgoal466\wmetafile8\bliptag-765742159\blipupi227{\*\blipuid d25bb3b16ccc7a045386ed43243ab77f}010009000003fc3200000000da32000000000400000003010800050000000b0200000000050000000c027f00c8000400000007010400da320000430f2000cc00
+00007f00c800000000007f00c8000000000028000000c80000007f000000010008000000000038630000941b00005b3c00008e0000008e000000000000001e00
+0000380000004000000074000000750000007d000000d0000000d4000000f800000000000100000018000000280000004000f000400000004600c0004700d400
+4700d80047000000620038006200750062000000660000008000000081000000bf00000100000003000007037a004304bf00c10a86006a0f00000f0f0f000019
+e0009019e6001d1d1d001320000043202c006a202c0046206e00262626008028c1004a2e6f002e3233004734d4004734d80035353500e23850005c3a43000040
+00000041ed00594304006f435c00654374000043d2005c4441006946200000473400204745002c47450072475c00004824004d494700504a0000504a2000654a
+5c004b4b4b00544c46004c4c4c004f4c4e00574f44006150200045504a00815943005a5a5a00b85c0000505c3a004d5c73006d6172000062e2000062e3000062
+e40072636900626557007365670073656c0064657200726574000067700061685300666870006c694600696969006c6c6500656c69005c6c6c00506d62006f6d
+6d00676f6c00676f720005715000717171006f736f00e574000063746500207466005c746c00e47550006d773300927d0000f780280080808000008159004786
+88000a86f000f7927d0096969600e8a00000b3b3b30046b6380046b63c0046b85c0041bd8a0000bff70004bff700c0c0c00028c10a0043d2900034d4000034d8
+000062e24c00e2e2e20062e3770062e4750019e6d00041edc00086f00000bff78000bff7920000f9ba0000fa1000ffffff008d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d7d837d
+7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d83
+7d7d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+7d7d7d7d837d7d7d7d7d7d837d7d7d7d837d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d7d7d7d7d837d7d837d7d837d7d7d7d837d7d7d837d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d837d7d7d7d837d837d7d837d7d7d7d7d7d7d7d837d7d7d7d7d837d7d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d837d837d7d7d837d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d83
+7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d
+7d7d7d837d7d7d7d7d7d837d7d837d7d7d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d7d837d7d837d7d7d7d837d7d7d837d
+7d7d7d7d7d7d837d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d7d7d7d7d
+837d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d837d837d7d7d837d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d
+7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d
+7d7d7d7d7d7d837d7d7d7d837d837d837d7d837d7d837d837d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d837d7d7d837d7d837d7d7d7d7d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d7d837d837d
+7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d7d837d7d7d837d7d7d7d7d7d7d837d837d7d7d7d7d7d7d7d7d
+837d7d7d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d7d7d837d837d7d837d838d837d7d837d7d837d837d7d7d7d7d7d7d837d7d837d7d7d7d7d7d
+7d837d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d837d837d7d6f6f65283e280000283e28656f657d7d7d7d837d7d7d7d7d7d
+7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d837d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d837d7d7d652800000000000000000000000000000000002865
+6f7d7d837d837d7d7d7d7d837d7d7d7d837d7d837d7d837d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d837d7d6f280000000000000000000000000000
+0000000000000000000065657d7d837d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d837d7d7d837d7d65000000000000000000
+0000000000000000000000000000000000000000286f7d7d7d7d837d7d837d837d7d837d7d837d7d837d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d837d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d7d7d837d6f000000
+000000000000000000000000000000000000000000000000000000000000657d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d7d7d7d7d
+7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d
+837d6f2800000000000000000000000000000000000000000000000000000000000000000000007d837d7d837d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d
+7d837d7d837d7d7d7d837d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d
+837d837d7d7d7d7d7d6500000000000000000000000000000000000000000000000000000000000000000000000000657d837d7d7d837d837d837d7d7d7d7d7d
+7d837d7d837d837d7d7d7d7d7d7d837d7d7d7d837d7d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d7d7d7d7d7d7d7d7d7d7d837d6500000000000000000000000000000000000000000000000000000000000000000000000000006f7d7d7d7d7d7d7d7d
+7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d837d7d7d837d0000000000000000000000000000000000000000000000000000000000000000000000000000000028
+837d7d837d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d837d7d7d837d7d7d7d7d7d837d7d837d7d837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d837d7d28000000000000000000000000000000000000000000000000000000000000000000
+00000000000000007d837d7d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d837d7d7d7d7d7d650000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000657d7d7d837d7d7d837d7d7d7d7d7d837d7d837d7d7d7d7d7d837d7d837d7d7d837d7d7d7d837d7d837d7d7d837d7d83
+7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d7d837d7d7d7d837d7d6500000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000657d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d7d
+7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d7d7d836f000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000657d7d7d7d837d7d837d7d7d7d7d837d7d837d7d7d7d7d7d837d7d7d7d837d7d
+837d7d7d7d7d7d837d7d837d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d837d7d837d836f0000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000007d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d
+7d7d7d837d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d837d7d7d7d7d
+7d7d28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007d7d7d7d7d837d7d837d7d7d7d7d7d
+7d837d7d7d7d7d7d7d837d7d7d7d837d7d837d7d7d7d837d7d837d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d83
+7d7d7d7d7d7d7d837d650000000000000000000000000000000000000000000000000000286565656f656565286528000000000000000000006f837d7d7d7d7d
+7d7d7d7d7d7d837d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d7d7d7d7d7d837d837d7d7d00000000000000000000000000000000000000000000000065657d7d837d7d837d837d837d7d7d7d7d656528000000
+00657d837d7d837d7d837d837d7d7d7d837d7d7d7d7d7d7d7d7d837d837d7d7d7d837d837d7d7d837d7d837d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d7d6500000000000000000000000000000000000000000000657d7d7d837d7d7d837d7d7d7d7d7d7d7d
+7d7d837d7d7d652800287d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d7d837d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d7d837d838d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d00000000000000000000000000000000000000000028657d7d837d7d7d7d7d7d
+7d837d7d7d837d7d837d7d837d7d837d65657d837d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d
+7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d8d8d8d8d8d8d8d8d8d8d8d8d8d837d7d7d7d837d7d83650000000000000000000000000000000000000000287d7d7d
+7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d837d7d837d7d837d7d7d7d837d837d837d837d837d7d7d7d7d7d7d837d837d837d7d
+837d7d7d7d7d837d7d8d8d8d8d8d6f6f6f6f6f6f6f6f7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d6f6f006f00000000000000
+6f6f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f006f00006f006f6f6f7d8d8d8d8d8d7d7d7d7d7d7d7d7d7d0000000000000000000000000000000000
+000000287d83837d837d7d837d7d7d7d837d7d7d7d7d837d7d7d7d836f6f65006500280000002865657d7d7d7d7d7d7d7d7d6f657d657d657d657d6f7d837d7d
+836f657d657d657d657d657d837d7d7d7d8d8d8d8d6f00000000000000000000006f6f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f0000000000
+0000000000000000000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000000000006f8d8d8d8d7d837d7d837d7d836f000000000000000000
+00000000000000000000287d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d65000000000000000000000000000000656f7d7d837d837d000000000000
+00000000657d7d7d7d28000000000000000000657d7d7d7d838d8d8d8d7d00000000000000000000000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d
+00000000000000000000000000000000000000000000006f7d8d8d8d8d8d8d8d7d6f0000000000000000000000000000006f8d8d8d8d7d7d837d7d7d837d2800
+0000000000000000000000000000000000007d7d7d7d7d7d7d837d7d837d7d7d7d837d7d7d7d837d6f0000000000000000000000000000000000000000657d7d
+7d7d00000000000000000000657d7d837d00000000000000000000657d7d7d7d7d8d8d8d8d6f000000000000000000000000000000006f8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d7d6f000000000000000000000000000000000000000000000000007d8d8d8d8d8d8d8d6f00000000000000000000000000000000008d8d8d8d837d
+7d7d7d7d7d7d00000000000000000000000000000000000000657d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d837d7d2800000000000000000000000000000000
+0000000000657d7d7d7d000000000000000000006f837d7d7d280000000000000000006f837d7d837d8d8d8d8d7d00000000000000000000000000000000006f
+8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000000000000000000000000000000000007d8d8d8d8d8d8d6f00000000000000000000000000000000
+00007d8d8d8d7d7d837d7d837d6f000000000000000000000000000000000000287d7d7d837d7d7d7d7d7d7d7d837d7d7d7d837d7d7d00000000000000000000
+000000000000000000000000006f837d7d8300000000000000000000657d7d7d8300000000000000000000657d7d7d7d7d8d8d8d8d6f00000000000000000000
+00000000000000007d8d8d8d8d8d8d8d8d8d8d6f000000000000000000000000000000000000000000000000000000006f8d8d8d8d8d8d6f0000000000000000
+000000000000000000008d8d8d8d7d7d7d7d7d7d7d6500000000000000000000000000000000000065837d7d7d7d7d7d837d7d837d7d7d837d7d7d7d7d280000
+000000000000000000000000000000000000000000687d7d7d7d28000000000000000000657d7d837d280000000000000000006f837d7d7d838d8d8d8d6f0000
+00000000000000000000000000000000008d8d8d8d8d8d8d8d8d7d00000000000000000000000000000000000000000000000000000000006f8d8d8d8d8d7d00
+0000000000000000000000000000000000007d8d8d8d7d837d7d7d837d000000000000000000000000000000000000287d7d837d7d837d7d7d7d7d7d7d7d7d7d
+7d7d7d7d650000000000000000000000000000000000000000000000000b837d7d83000000000000000000006f837d7d8300000000000000000000657d837d7d
+7d8d8d8d8d6f000000000000000000000000000000000000006f8d8d8d8d8d8d8d7d000000000000000000000000000000000000000000000000000000000000
+6f8d8d8d8d8d6f000000000000000000000000000000000000007d8d8d8d837d7d7d7d7d65000000000000000000000000000000000000657d7d7d7d7d7d7d7d
+837d7d837d7d837d7d7d836f000000000000000000000028656f7d7d7d7d656f652800000028837d837d28000000000000000000657d7d7d7d28000000000000
+0000006f837d7d7d838d8d8d8d7d00000000000000000000000000000000000000008d8d8d8d8d8d8d6f00000000000000000000000000000000006f6f6f6f00
+6f000000000000006f8d8d8d8d8d6f000000000000000000000000006f006f6f6f006f8d8d8d7d7d7d7d837d650000000000000000000000000000000000007d
+837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d2800000000000000000000657d7d837d7d837d837d837d6f6500287d7d7d7d3e0000000000000000006f837d7d
+7d3e000000000000000000657d7d7d7d7d8d8d8d8d6f00000000000000000000000000000000000000007d8d8d8d8d8d6f00000000000000000000000000006f
+7d8d8d8d8d8d8d8d8d7d7d6f000000006f7d8d8d8d8d6f0000000000000000000000006f7d8d8d8d7d7d8d8d8d8d7d837d7d7d7d650000000000000000000000
+000000000000287d7d7d837d7d7d7d7d837d7d7d837d7d7d7d7d6500000000000000000000657d837d7d7d7d7d7d7d7d7d7d837d7d657d7d7d7d280000000000
+000000006f7d7d837d280000000000000000006f837d7d7d838d8d8d8d7d6f7d7d7d6f0000000000000000000000000000006f8d8d8d8d8d6f00000000000000
+00000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f6f006f8d8d8d8d8d6f0000000000000000000000008d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d8300000000
+0000000000000000000000000000657d837d7d7d7d7d837d7d7d837d7d7d837d837d65000000000000000000657d7d7d7d7d837d7d837d7d837d7d7d7d7d837d
+837d6500000000000000000065837d7d7d65000000000000000000657d837d7d7d8d8d8d8d8d8d8d8d8d8d7d6f000000000000000000000000006f8d8d8d8d7d
+0000000000000000000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f8d8d8d8d8d0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d
+7d837d7d280000000000000000000000000000000000657d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d280000000000000000007d837d7d7d7d7d7d7d7d7d7d
+7d7d7d7d837d7d7d7d7d280000000000000000007d7d7d7d83000000000000000000007d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000
+0000008d8d8d8d6f0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d7d7d7d7d7d6f0000000000000000000000000000000000007d7d837d7d7d7d7d837d7d837d7d837d7d7d7d7d000000000000000000657d7d837d
+7d837d7d7d837d837d7d837d7d7d7d7d7d7d6500000000000000000065837d7d7d6500000000000000000065837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000
+000000000000000000006f8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d00000000000000000000
+00007d8d8d8d8d8d8d8d8d8d8d8d7d837d7d836f000000000000000000000000000000000000837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d000000000000
+0000006f7d837d7d7d837d837d7d837d837d7d837d7d7d837d83280000000000000000007d7d7d7d83280000000000000000007d7d7d837d7d8d8d8d8d8d8d8d
+8d8d8d8d8d6f000000000000000000000000008d8d8d8d0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d0000
+000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d6f0000000000000000000000000000000000287d7d837d7d7d7d7d7d837d7d837d7d837d7d
+7d6500000000000000000000000000000000002800280028002800652865657d7d7d3e00000000000000000065837d7d7d6500000000000000000065837d7d7d
+838d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d7d0000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d837d7d837d650000000000000000000000000000000000657d7d7d7d837d7d837d7d
+7d7d7d7d7d7d7d7d836f00000000000000000000000000000000000000000000000000000000007d7d83280000000000000000007d7d7d7d8328000000000000
+0000007d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d7d00000000000000000000006f7d6f7d7d7d7d7d7d7d7d7d7d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d6500000000000000000000000000000000006f837d
+7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d6500000000000000000000000000000000000000000000000000000000007d7d7d650000000000000000007d7d837d
+7d3e00000000000000000065837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d7d0000000000000000000000000000000000
+000000000000000000000000000000006f008d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d65000000000000000000000000
+0000000000657d7d837d7d837d7d837d7d837d7d7d7d7d7d83650000000000000000000000000000000000000000000000000000000000837d7d280000000000
+000000007d7d7d7d83280000000000000000007d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d000000000000000000000000008d8d8d6f000000000000000000
+00000000000000000000000000000000000000000000000000007d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d6500000000
+000000000000000000000000006f837d7d7d7d7d7d7d7d837d7d7d7d837d7d7d7d7d00000000000000000000000000000000000000000000000000000000287d
+7d7d650000000000000000007d837d7d7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d6f00
+000000000000000000000000000000000000000000000000000000000000000000008d8d8d8d0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d837d
+7d7d83280000000000000000000000000000000000657d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d6500000000000000000000000000000000000000000000
+000000000000287d837d280000000000000000007d7d7d7d83280000000000000000007d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d00000000000000000000
+0000008d8d8d7d00000000000000000000000000000000000000000000000000000000000000000000007d8d8d8d6f00000000000000000000007d8d8d8d8d8d
+8d8d8d8d8d8d7d7d837d7d2800000000000000000000000000000000006f837d837d7d7d7d7d7d7d837d837d7d837d7d7d7d0000000000000000006f6f656f65
+65656f6565000000000000000000657d7d7d650000000000000000007d7d837d7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000
+000000000000000000006f8d8d8d6f00000000000000000000000000000000000000000000000000000000000000000000008d8d8d8d6f000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d836500000000000000000000000000000000006f7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d837d7d000000000000
+00000065837d837d837d837d7d650000000000000000657d837d28000000000000000000837d7d7d83280000000000000000007d837d7d7d7d8d8d8d8d8d8d8d
+8d8d8d8d8d8d000000000000000000000000008d8d8d6f00000000000000000000000000000000000000000000000000000000000000000000007d8d8d8d6f00
+000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d28000000000000000000000000000000000065837d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d
+7d7d650000000000000000287d7d7d7d7d7d7d7d83280000000000000000657d837d650000000000000000007d7d837d7d3e0000000000000000007d7d7d7d7d
+838d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d7d000000000000000000000000000000000000000000000000000000000000000000
+006f8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d836500000000000000000000000000000000006f7d7d837d7d837d7d837d
+7d837d7d7d7d837d7d836f0000000000000000007d7d837d7d7d7d837d0000000000000000007d7d7d7d280000000000000000007d7d7d7d8328000000000000
+000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d0000000000000000000000006f8d8d8d8d0000000000000000000000007d6f6f6f6f6f6f6f6f6f6f0000
+000000000000000000008d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d837d7d650000000000000000000000000000000000657d7d
+7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d83280000000000000000657d7d7d7d7d837d6f0000000000000000287d837d7d3e0000000000000000007d7d837d
+7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d6f000000000000000000006f8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d65000000000000000000000000
+0000000000657d837d7d837d7d837d7d837d7d7d7d7d7d837d7d7d65000000000000000000657d837d7d7d6500000000000000000065837d7d83280000000000
+00000000837d7d7d83280000000000000000007d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d000000000000000000000000008d8d8d8d6f0000000000000000
+0000008d8d8d8d8d8d8d8d8d8d8d6f000000000000000000006f8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d836f00000000
+00000000000000000000000000657d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d28000000000000000000006f656f65000000000000000000287d7d7d
+7d7d650000000000000000007d7d7d7d7d3e0000000000000000007d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d7d
+00000000000000000000007d8d8d8d8d8d8d8d8d8d7d00000000000000000000007d8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d
+7d7d7d65000000000000000000000000000000000028837d7d7d7d837d7d7d7d7d837d7d7d7d837d7d7d7d7d7d00000000000000000000000000000000000000
+0000000065837d7d837d28000000000000000000837d837d8328000000000000000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d00000000000000000000
+00006f8d8d8d8d7d00000000000000000000006f8d8d8d8d8d8d8d8d8d7d00000000000000000000008d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d7d837d7d837d0000000000000000000000000000000000007d7d837d7d7d7d837d837d7d7d837d7d7d7d7d837d7d836500000000000000000000
+0000000000000000000000657d7d7d7d7d7d650000000000000000007d7d7d7d7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000
+000000000000000000006f7d8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d6f000000000000000000006f8d8d8d8d8d6f000000000000000000
+00006f8d8d8d8d8d7d8d8d8d8d8d7d7d7d7d7d7d0000000000000000000000000000000000007d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d6528
+000000000000000000000000000000000000287d837d7d7d7d7d280000000000000000007d7d837d7d280000000000000000007d7d837d7d7d8d8d8d8d8d8d8d
+8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d7d0000000000000000000000007d8d8d8d8d8d8d6f00000000000000000000007d7d6f6f6f6f6f00
+000000000000000000006f6f6f6f6f6f6f7d8d8d8d8d7d837d7d837d280000000000000000000000000000000000657d7d7d7d7d7d7d7d7d837d7d7d7d7d7d83
+7d7d837d7d837d7d6500000000000000000000000000000000657d837d7d837d7d7d3e0000000000000000007d7d7d7d7d3e0000000000000000007d7d7d7d83
+7d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d6f0000000000000000000000006f7d8d8d7d0000000000000000000000006f
+8d7d00000000000000000000000000000000000000000000006f8d8d8d8d7d7d7d7d7d7d650000000000000000000000000000000000657d837d7d837d7d837d
+7d7d837d837d7d7d7d7d7d7d7d7d7d7d7d65280000000000000000000000002865837d7d7d7d7d7d7d7d28000000000000000000837d7d837d28000000000000
+000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d8d8d8d8d00000000000000000000000000000000000000000000
+000000000000007d8d7d00000000000000000000000000000000000000000000006f8d8d8d8d7d837d7d837d650000000000000000000000000000000000287d
+7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d837d7d7d7d656565002800282865657d7d7d7d7d7d837d837d7d83000000000000000000007d7d7d7d
+83000000000000000000007d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d8d7d00000000000000000000000000
+00000000000000000000000000006f8d8d7d00000000000000000000000000000000000000000000006f8d8d8d8d7d7d7d7d7d7d650000000000000000000000
+000000000000006f7d7d7d7d7d837d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d837d7d837d7d7d7d7d7d7d280000000000
+00000000837d7d7d7d280000000000000000007d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d8d8d6f00000000
+000000000000000000000000000000000000000000007d8d8d8d00000000000000000000000000000000000000000000006f8d8d8d8d7d837d7d7d837d000000
+0000000000000000000000000000006f837d837d7d7d7d837d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d83
+7d7d3e0000000000000000007d7d837d7d3e0000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d8d8d
+8d8d8d8d7d0000000000000000000000000000000000000000000000008d8d8d8d7d00000000000000000000000000000000000000000000006f8d8d8d8d837d
+7d7d837d7d280000000000000000000000000000000000287d7d7d7d837d7d7d7d7d7d7d7d7d837d7d837d7d7d7d837d7d837d7d7d7d7d837d837d7d837d7d83
+7d7d7d837d7d7d7d7d7d280000000000000000007d7d7d7d7d28000000000000000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d00000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000000000000000000000006f7d8d8d8d8d8d00000000000000000000000000000000000000000000
+00008d8d8d8d7d7d7d7d7d7d7d650000000000000000000000000000000000006f837d7d7d7d7d7d837d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d
+7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d83000000000000000000007d837d7d83280000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000
+000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000000000000000006f7d8d8d8d8d8d8d0000000000000000000000000000
+000000000000000000008d8d8d8d7d837d7d7d7d836f000000000000000000000000000000000000287d837d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d837d
+7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d837d7d7d7d7d7d7d7d000000000000000000007d7d7d7d7d000000000000000000007d837d7d7d7d8d8d8d8d8d8d8d
+8d8d8d8d8d6f000000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d6f6f000000000000000000000000006f7d8d8d8d8d8d8d8d8d6f0000000000
+0000000000000000000000000000000000007d8d8d8d7d7d837d7d7d7d7d280000000000000000000000000000000000006f837d7d7d7d7d7d7d837d7d837d7d
+7d7d7d7d7d7d7d7d837d7d7d837d7d837d7d7d7d7d7d7d837d7d7d7d837d7d837d7d000000000000000000007d7d7d837d000000000000000000007d7d7d7d7d
+838d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d6f6f6f006f006f6f6f8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d7d7d837d7d8365000000000000000000000000000000000000007d837d7d837d
+7d7d7d7d7d7d7d837d7d837d7d837d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d00000000000000000000837d7d7d7d00000000000000
+0000007d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d0000000000000000000000000000000000
+0000287d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d837d837d7d7d7d837d7d000000000000000000007d7d7d83
+7d000000000000000000007d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d837d7d7d650000000000000000
+00000000000000000000006f7d837d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d837d7d7d837d837d6f28657d7d7d837d7d7d7d7d837d7d7d7d7d000000000000
+000000007d7d7d7d65000000000000000000007d837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d6f000000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d8365
+0000000000000000000000000000000000000000657d7d7d7d837d7d837d7d7d7d837d7d7d837d7d7d7d7d7d7d7d6f650000657d837d7d7d7d837d7d7d7d7d83
+7d7d000000000000000000007d7d7d837d00000000000000000000657d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d
+7d7d7d7d837d7d7d280000000000000000000000000000000000000000657d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d837d7d650000000065837d7d7d7d
+7d7d7d837d7d7d7d7d65000000000000000000007d7d7d7d65000000000000000000007d837d7d7d838d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d7d7d7d7d837d7d7d7d836500000000000000000000000000000000000000000028657d7d7d837d7d7d7d7d7d7d837d837d837d7d6f2800000000
+00007d7d837d7d7d837d7d7d7d7d7d837d650000000000000000000065837d836f00000000000000000000657d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000
+00000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d837d7d7d7d2800000000000000000000000000000000000000000000656f7d7d7d837d837d837d7d7d7d656f
+28000000000000000028837d7d7d7d7d7d7d837d7d7d7d7d7d65000000000000000000007d7d7d7d65000000000000000000007d7d7d7d837d8d8d8d8d8d8d8d
+8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00
+000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d836500000000000000000000000000000000000000000000000000006f656f65
+6f656f6528000000000000000000000000657d7d7d7d837d7d7d7d7d7d7d837d7d65652800000000000000006f837d7d65652800000000000000006f837d7d7d
+7d8d8d8d8d8d8d8d8d8d8d8d8d000000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d7d7d7d837d7d837d7d7d65000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000007d837d7d7d7d7d837d837d7d7d7d7d837d7d7d7d656f6528280028657d7d837d7d7d7d656f6528
+280028657d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d6f000000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f0000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d7d7d28000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000007d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d837d837d837d7d7d7d837d7d
+7d7d7d7d7d837d837d7d657d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f00000000006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d837d7d837d836500000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000287d7d837d7d7d837d7d7d7d837d7d7d7d837d7d7d7d7d7d
+7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d7d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d6f00006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d837d7d7d7d
+7d7d7d7d6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000065837d7d7d7d7d7d7d7d837d7d7d7d83
+7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d837d837d7d7d7d837d7d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f6f6f6f6f6f6f6f6f6f6f6f8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d8d8d8d8d8d8d8d8d8d8d8d7d83
+7d7d7d7d7d837d7d7d837d7d83650000000000000000000000000000000000000000000000000000000000000000000000000000000000007d7d7d837d7d837d
+7d837d7d7d837d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d7d7d837d7d7d7d7d7d7d7d7d7d7d7d650000000000000000000000000000000000000000000000000000000000000000000000000000000000
+7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d7d7d7d837d7d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d837d7d7d280000000000000000000000000000000000000000000000000000000000000000
+00000000000000287d837d7d837d7d837d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d837d7d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d7d7d7d650000000000000000000000000000000000000000000000
+0000000000000000000000000000006f837d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d7d837d7d837d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d7d7d837d7d7d650000000000000000000000000000
+0000000000000000000000000000000000000000000000657d7d7d837d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d837d7d7d7d
+837d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d837d7d7d7d837d836f2800000000
+000000000000000000000000000000000000000000000000000000000000287d837d7d7d7d7d837d7d7d7d837d7d7d837d7d7d837d7d7d7d837d7d7d7d7d837d
+7d7d7d7d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d
+7d7d837d650000000000000000000000000000000000000000000000000000000000000000286f837d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d
+7d7d837d7d7d7d7d7d837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d7d837d837d837d7d7d7d7d837d6528000000000000000000000000000000000000000000000000000000657d7d837d7d7d7d7d837d7d837d837d7d7d7d7d7d
+837d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d837d7d7d7d837d652800000000000000000000000000000000000000000000286f7d7d7d7d7d7d837d7d7d7d7d7d7d
+7d7d7d7d837d7d7d7d7d7d7d7d7d837d7d837d7d837d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d7d7d837d7d65650028000000000000000000000000002865657d7d837d7d837d7d7d
+7d7d7d7d7d837d7d7d7d837d7d7d837d7d837d7d837d7d7d7d7d7d7d7d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d7d837d7d7d837d837d7d7d656f656565656565656f7d7d7d7d837d
+837d7d7d7d7d7d837d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d837d837d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d837d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d83
+7d837d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d837d837d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d837d7d7d7d
+7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d
+7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d7d837d837d837d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d7d7d7d837d837d837d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d7d7d7d7d837d7d837d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d837d7d7d837d7d7d7d7d7d7d7d7d837d7d837d7d7d
+7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d837d7d7d837d7d7d7d7d7d7d7d837d7d7d7d837d
+7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d837d7d7d837d7d7d7d837d7d837d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d837d7d837d
+7d7d7d7d837d7d7d837d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d
+837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d7d7d7d7d7d7d7d7d837d7d837d7d7d
+7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d8d7d7d7d837d7d837d7d
+7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d837d837d7d837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d
+8d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d7d837d7d7d837d7d7d7d7d7d7d837d7d837d7d7d7d7d7d837d7d837d7d7d7d7d7d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d837d837d7d7d7d7d837d7d837d7d7d7d7d837d7d837d837d7d7d7d7d7d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d7d837d7d
+7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d
+7d7d837d7d7d7d837d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d837d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d0400000007010100030000000000}\par}}}{
+\b\f1\lang1033 PocketBTS Software Design Specification: Module RM
+\par }\pard \s18\sb60\sa60\widctlpar\tqc\tx4320\tqr\tx8640\adjustright {\b\f1\lang1033
+\par }\pard \s18\qc\sb60\sa60\widctlpar\tqc\tx4320\tqr\tx8640\adjustright {\b\i\f1\lang1033
+\par }}{\footer \pard\plain \s17\sb60\sa60\widctlpar\tqc\tx4680\tqr\tx9270\tqr\tx9720\adjustright \fs20\lang2057\cgrid {\b\f1
+\par }\pard \s17\sb60\sa60\widctlpar\tqc\tx4680\tx5940\tx7200\tx8460\tx8550\tqr\tx9270\tqr\tx9720\adjustright {\b\f1 PocketBTS Software Design}{\tab Page }{\field{\*\fldinst {\cs44 PAGE }}{\fldrslt {\cs44\lang1024 3}}}{\cs44 {\*\bkmkstart _Toc406834718}
+{\*\bkmkstart _Toc406838556}{\*\bkmkstart _Toc412979105} (of }{\field{\*\fldinst {\cs44 NUMPAGES \\* MERGEFORMAT }}{\fldrslt {\cs44\lang1024 1}}}{\cs44 )\tab \tab Version: 0.0
+\par }\pard \s17\qc\sb60\sa60\widctlpar\tqc\tx4320\tqc\tx5400\tqr\tx8640\tqr\tx9720\adjustright {\b\f1\fs16 JetCell, Inc. Proprietary and Confidential
+\par }\pard \s17\qc\sb60\sa60\widctlpar\tqc\tx4320\tqc\tx5220\tqr\tx8640\adjustright {\i\fs16 Copyright}{\i\f3\fs16 \'20\'e3}{\i\fs16 1997-98 JetCell, Inc. All rights reserved}{{\*\bkmkend _Toc406834718}{\*\bkmkend _Toc406838556}{\*\bkmkend _Toc412979105}
+
+\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}
+{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8
+\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \qc\widctlpar\brdrt\brdrs\brdrw15\brsp40 \brdrb\brdrs\brdrw15\brsp20 \outlinelevel0\adjustright \shading10000
+\fs20\lang2057\cgrid {\b\fs28 Table of Contents
+\par }\pard\plain \s29\li200\widctlpar\tqr\tldot\tx9350\adjustright \scaps\fs20\lang2057\cgrid {\b\f5\expnd0\expndtw-2
+\par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b\scaps\f5\expnd0\expndtw-2 REVISION HISTORY
+\par LIST OF FIGURES
+\par LIST OF TABLES}{\field\fldedit{\*\fldinst {\b\f5\expnd0\expndtw-2 TOC \\o "1-3" }}{\fldrslt {\lang1024
+\par }\pard\plain \s28\sb120\sa120\widctlpar\tx400\tqr\tldot\tx8630\adjustright \b\caps\fs20\lang2057\cgrid {\i\f1\lang1024 1.}{\lang1024 \tab }{\i\f1\lang1024 Introduction}{\lang1024 \tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248046 \\h }{\lang1024
+{\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380030003400360000000000000000000000000000}}}{\fldrslt {\lang1024 1}}}{\lang1024
+\par }\pard\plain \s29\li200\widctlpar\tx800\tqr\tldot\tx8630\adjustright \scaps\fs20\lang2057\cgrid {\i\f1\lang1024 1.1}{\lang1024 \tab }{\i\f1\lang1024 Scope}{\lang1024 \tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248047 \\h }{\lang1024 {\*\datafield
+08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380030003400370000000000000000000000000000}}}{\fldrslt {\lang1024 1}}}{\lang1024
+\par }{\i\f1\cf1\lang1024 1.2}{\lang1024 \tab }{\i\f1\cf1\lang1024 References}{\lang1024 \tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248048 \\h }{\lang1024 {\*\datafield
+08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380030003400380000000000000000000000000000}}}{\fldrslt {\lang1024 1}}}{\lang1024
+\par }{\i\f1\lang1024 1.3}{\lang1024 \tab }{\i\f1\lang1024 Abbreviations}{\lang1024 \tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248049 \\h }{\lang1024 {\*\datafield
+08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380030003400390000000000000000000000000000}}}{\fldrslt {\lang1024 2}}}{\lang1024
+\par }{\i\f1\lang1024 1.4}{\lang1024 \tab }{\i\f1\lang1024 Organization}{\lang1024 \tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248050 \\h }{\lang1024 {\*\datafield
+08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380030003500300000000000000000000000000000}}}{\fldrslt {\lang1024 2}}}{\lang1024
+\par }\pard\plain \s28\sb120\sa120\widctlpar\tx400\tqr\tldot\tx8630\adjustright \b\caps\fs20\lang2057\cgrid {\i\lang1024 2.}{\lang1024 \tab }{\i\lang1024 General Design}{\lang1024 \tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248051 \\h }{\lang1024
+{\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380030003500310000000000000000000000000000}}}{\fldrslt {\lang1024 4}}}{\lang1024
+\par }\pard\plain \s29\li200\widctlpar\tx800\tqr\tldot\tx8630\adjustright \scaps\fs20\lang2057\cgrid {\i\f1\lang1024 2.1}{\lang1024 \tab }{\i\f1\lang1024 Context Diagram}{\lang1024 \tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248052 \\h }{\lang1024
+{\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380030003500320000000000000000000000000000}}}{\fldrslt {\lang1024 4}}}{\lang1024
+\par }{\i\f1\lang1024 2.2}{\lang1024 \tab }{\i\f1\lang1024 State Machine}{\lang1024 \tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248053 \\h }{\lang1024 {\*\datafield
+08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380030003500330000000000000000000000000000}}}{\fldrslt {\lang1024 5}}}{\lang1024
+\par }{\i\f1\lang1024 2.3}{\lang1024 \tab }{\i\f1\lang1024 High-Level Decomposition}{\lang1024 \tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248054 \\h }{\lang1024 {\*\datafield
+08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380030003500340000000000000000000000000000}}}{\fldrslt {\lang1024 7}}}{\lang1024
+\par }{\i\f1\lang1024 2.4}{\lang1024 \tab }{\i\f1\lang1024 Core Data Structures}{\lang1024 \tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248055 \\h }{\lang1024 {\*\datafield
+08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380030003500350000000000000000000000000000}}}{\fldrslt {\lang1024 11}}}{\lang1024
+\par }{\i\f1\lang1024 2.5}{\lang1024 \tab }{\i\f1\lang1024 Module Architecture}{\lang1024 \tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248056 \\h }{\lang1024 {\*\datafield
+08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380030003500360000000000000000000000000000}}}{\fldrslt {\lang1024 12}}}{\lang1024
+\par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid }}\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\caps\f5\expnd0\expndtw-2
+\par }\pard\plain \s15\widctlpar\adjustright \f4\fs20\cgrid {\caps\f5\expnd0\expndtw-2\lang2057 \page
+\par }\pard\plain \qc\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \outlinelevel0\adjustright \shading10000 \fs20\lang2057\cgrid {\b\fs28 List of Figures}{
+\par }\pard\plain \s58\fi-400\li400\widctlpar\tqr\tldot\tx9350\adjustright \scaps\fs20\lang2057\cgrid {
+\par }\pard \s58\fi-400\li400\widctlpar\tqr\tldot\tx8630\adjustright {\field\fldedit{\*\fldinst {\scaps0 TOC \\c "Figure" }}{\fldrslt {\lang1024 Figure 2\_1 Module RM Context Diagram\tab }{\field{\*\fldinst {\lang1024 PAGEREF _Toc432248113 \\h }{\lang1024
+{\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630034003300320032003400380031003100330000000000000000000000000000}}}{\fldrslt {\lang1024 4}}}{\lang1024
+\par }}}\pard\plain \s58\fi-400\li400\widctlpar\tqr\tldot\tx8630\adjustright \scaps\fs20\lang2057\cgrid {\field\fldedit{\*\fldinst {\scaps0 TOC \\c "Figure" }}{\fldrslt {\lang1024 Figure 2\_2 Module RM State Transition Diagram\tab 6
+\par }{\field\fldedit{\*\fldinst {\scaps0 TOC \\c "Figure" }}{\fldrslt {\lang1024 Figure 2\_3 Module RM Module Architecture\tab 13
+\par }\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\par }}}\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\par }\pard \widctlpar\adjustright }}\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\scaps \page }{
+\par }\pard \qc\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \outlinelevel0\adjustright \shading10000 {\b\fs28 List of Tables}{
+\par }\pard \widctlpar\adjustright {
+\par }\pard\plain \s58\fi-400\li400\widctlpar\tqr\tldot\tx8630\adjustright \scaps\fs20\lang2057\cgrid {\field\fldedit{\*\fldinst {\b\scaps0 TOC \\c "Table" }}{\fldrslt {\lang1024
+\par }\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\par \sect }\sectd \marglsxn1440\margrsxn2160\margtsxn990\psz1\pgnrestart\linex0\headery990\footery496\sectdefaultcl {\header \pard\plain \s18\qc\sb60\sa60\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \fs20\lang2057\cgrid {\lang1024
+{\shp{\*\shpinst\shpleft7717\shptop-23\shpright8633\shpbottom443\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz1\shplid2050{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn pib}{\sv
+{\pict\picscalex57\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw2833\pich822\picwgoal1606\pichgoal466\pngblip\bliptag-765742159{\*\blipuid d25bb3b16ccc7a045386ed43243ab77f}
+89504e470d0a1a0a0000000d49484452000000c80000007f08030000009d497d610000000467414d410000b1889598f4a600000300504c54450000002626264b
+4b4b7171710f0f0f3535355a5a5a808080c0c0c04c4c4c969696e2e2e21d1d1d696969b3b3b3ffffff1800000000000000000000008000000000008000000000
+0080000000000000000000000000000000000000001e433a5c444f574e4c4f41445c5765622050616765735c4a657443656c6c5c000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000f6a657463656c6c6c6f676f2e4a50710500a0e82448008886470000d0e61990d243005cb84600000040
+00f0860ac12880f7bf04435981000000007d92f7bf0000400000000000d8344700d8344700c0ed410000000000d4344700d434470000004000f0860ac12880f7
+bf04435981000000007d92f7bf8abd410001000000f8626d503cb64600010000000000000038b646002013e0190000400075e462000100000038e3620010fa00
+5075e4620038e26200010000000000000038e26200baf9005038e2620075e46200010000000000000075e462007a03075038e2620075e4620077e3620074e562
+00007067004ce262000300000074e36200280000004a5045472c204a5045472046696c7465722c20433a5c50726f6772616d2046696c65735c436f6d6d6f6e20
+46696c65735c4d6963726f736f6674205368617265645c47727068666c745c4a504547494d33322e464c542c206a70670033776d660000d0e61990d243005cb8
+460000004000f0860ac12880f7bf04435981000000007d92f7bf0000400000000000d8344700d8344700c0ed410000000000d4344700d434478bb81bc6000000
+097048597300001b9400003c5b017d7512ae0000096749444154789ced5c4bb2a4380c84f0c28ed082b9ffd566d91719c0d8524ab2313555404c8c5ff77b65be
+4a5229c9066a5afe236d7ada00d3d267bbbd0d48a2943e82f23220696bf409945701d931d00ee5f2be2f02923170bbb6f76b801418947fd15556de02a4224895
+986b5279059024bd4af8d71552de0084d8abc407baa694e7816822809171284f0339a26d6226cca731077b16485a0c04f7c3c0a19e049216052129b110af3d3d
+d8834058d04ae8ae56ce8ef61c10c7601dbdd4eaeee11e02c245151b4e68377044a7f9f129202e19a43e5974ed233e0104f5ac4a45b0dee1a775d0fb81488d93
+b293740040a8bd5af27620ea02bb94c05aed850d2437034970c9abcd241d49190f49e5684f0341396fbf430cb945b0d56615f6ad465ab91308ba7f08d33cc936
+87e0d42a1c7c31c63d06048d0b8881c1442d091bba4aff19202220b561ec2d78a31243884990f70081ab1a3a280e5abc4a92ede7657703113e45b1c7464122a5
+4e1201840092586e0002273ea5a3b8972a4e6c1559aecc5d40d0a2311c5344bb9da02c15730710e51e036ec5be459e3b498eeadadf0351196d908fb525d540e2
+84b0b25424901465fbd474d9c101c5388ea99a8bd53d8805eb2f01244570d34f4044dc0f4f175b563b2dd8f48e7f846365ef928cfc2b202b9d663fc86c17f8d8
+44a242ae0b4c785b1bc815f1141006883ce5a8d073b3c6736dc002d94a36472370a42b8cc4c67ee5b4e3098481b0f1d5f6b5549ee7b5b6f4badf71ad1610e100
+1d1c31e41fa02ce0a55f6be5ba3ada6e0fc815d76a02614f6838d63e0ea93e13b87e9955de1017c2e9d20d8c5087903924f4f8f573c1a272ba3840d82a36d1fd
+62d4ea6aa49dd283cd0d59bf87b972658711fa5ed4ea30d221a4c8008a98bdc55051d66b014028a9c3fcdab58a791e90a82a5a818756070b1245524034234a23
+09cef31d4692b2a2b6b9428072cc9488055f9391749591b49562d3fa63cbb09e465a4516402083c800e43d4913d417bbd248c49531f93b89e32f5cfc3a528fe4
+5a4cb84464d43e2334e85a8eb5054a03c77edcc31067efd9565050ea4a149a11dd75caf80610cfc52b922e90dc1ccf2a84a0e920135c42683931c9797d1bc874
+82a3d8da58178546ac67cd682f8113a543e348115a2eba79fd00239d61446a3312ab6b9183358a3a56d5b83a6e95ce1f014475c7c26f938fbc4d9791b667a15f
+99e14575285ea02810049d68a4ace8e0d828e9032155261d6db63a100138ecb3c2f33e15cc78c44993e90e442dcc2dc96cf4112301240098b0989f79c80b8cd0
+658dc0a264b1a53c6121f7cb2d312356eb417b52c5654017cc4a145734928cd18efca381765c8085193138701c2b3e7a93db65fa54462d325d04027a881a1a27
+16b9b401e4d890fca05535ce51ab55c954fa82d8db744fa3965c92dceddabc15461cad63815e297171e491098a826442743482114a5b28b6d3bed565c4e62196
+489288845f6d4378c6ed31a2247316b51a06f6800c30228296a85402ae977dac49767fece611ab11b9404ca8cac53d46c80d440d46665c4d3c33393b99fd9a46
+7a595ddadd63c491704c8a12f4c0ba106c5555e2358d8cccd6a61e104a5ec9c8594e28bde29deb0ac1110105a6d63ad3c80890aed89b8ca801951c38853c2f24
+dd2798547e4123d3986bf519f18bf8c86509d785bc36ee4f11acff199b8a5a973532ca8806c662876b27edd2756e776a7806469446ce32fba71a31b3288e6be1
+1024f7fa4080020cce678c8cb956341a316277c3af4924fdc97aea44ad64a35617484c915d61c126771b488851472d37dbc0418d46386ae50aa63faf05c89676
+6b31d21857c15ce981a6efc576b6a1cb889dd78283b581e80b008c58137980c8eee59496c74fc84345a4401530bd49ec6e35d801a235e25d6b3d50873c1279e0
+588333f51921644449db406b5292ba51cb01220721266af1435b30f9a028505d09449dd18c47c434a9d8a7eb5ad4c888705fed683a55035dc944ad09ba876bed
+f1485f383b883548b6396dbb95668426d30233522f3de671644badf78afea599f7923551423990db917d5e94eae483abe3941414d82a484eb6d08c8c441c8545
+16bb9bf7ca55372b62bebb70749c8df63b0f397ca746f50123dcc35ee1814526fb2d9f90eb618e5a112755c41d2b8f919189c60690c3d6a5dc4374800471bd8b
+b2e541e6fcd4e971cf7a26c0a90962463c3bd8cf078078dba4e25ade34caac136203706e7f11282d62b7af1121eb6ecef5e62373ab62f729818c680213b6bf71
+65b8a011487e3d4e9cc947b1e630d4bdd12308a982699cc45060ba2d465412ef3ca05498b35b2c5523ae81c1fa969b72aaa9884b3172148dea4436f1b5af556a
+613d26b14907a4da40edf5977bc9149080ba6b30129dfcdd6005b7d4196759ea7b3b6e693b2317f59316548839102bcb55103b8ac6325f957aafcc6c13ef9c3f
+dc7a655fbfa7113989dd70fe75fc4a48c8f1711db44ff9b9f97a8b246d4f43a4fc13f3b5295def79ad2f3484576cf4c77f3cef636839fe9074bd3ab992b8cfbb
+fef6295336ca03c28f90a51a84cbbf10445856cd84885f30a280d47336925d79e0046babed3e899590dc4e71486a60f57d20d5439ab928c8ba6a879ceff6f044
+b72acbea02e6f04646baf356739e8e5b87b4f2c6821a407a350dafa5df6ba49efcda43a65352b6c35fb2d8ee60243bc895c79727394cd41f34b4c4b5d6ef8048
+07b88404678c085140f790cacf19115e70e5c9dfe033628453dbcfdf5690e7bc8044c5658f03f9f9d7628787ca9bc5add744d03519df895ecb2d6ff4d44be88d
+15fd364b7908460c49998de50e20f060f9f0ab49f27293d391cb96bb80c01bbaa32f8be56b2f8b44ecd425e51c37bd87c8c68cbcbe078fa062b0924e96e4a8e3
+b63743d929ce138aba115f59d0229727b8f35ddd5ae8f5fd6be6bbbe42d1521b072770fc1bdf9e9617b7ed60b91cee0d443c18b7bfcf2e2ea9f370d65c06e8a8
+685da268afba1f884c90f9659118e63f2ba0f5d75ac983a55ea784b2c7bf61e080c2973b0b61219684b4193edaccf13010fdf6ae359731f8d5897fd407bf17c5
+380f484374a533bee87b51b686467398f55822f1f965df54b3b51e25e42ca63e8c07bfcdc9daa9955363542373607bfcfbb59c0a5d1754e9c4abf6f6e8379e39
+cde4be923ece0ef62490856f3ca89250533270a4878160d5a2845e578c1ce86920388034fe350ae30d40d46bef3a978c1ee40d406aae7772e0f021de01c4542d
+5761bc0648bd05712173607b0d1059e0d32575e4f62220f20ed7f5aff77e1510bec5757dd7770129a47cb0e3db802c1fa1585e08e4d3f63f90b7b57f00a959d681f2c2c8aa0000000049454e44ae426082}}}}{\shprslt\par\pard
+\widctlpar\pvpara\posx7716\posnegy-24\absh466\absw916\dxfrtext180\dfrmtxtx180\dfrmtxty0\adjustright {\pict\picscalex57\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
+\picw2833\pich822\picwgoal1606\pichgoal466\wmetafile8\bliptag-765742159\blipupi227{\*\blipuid d25bb3b16ccc7a045386ed43243ab77f}010009000003fc3200000000da32000000000400000003010800050000000b0200000000050000000c027f00c8000400000007010400da320000430f2000cc00
+00007f00c800000000007f00c8000000000028000000c80000007f000000010008000000000038630000941b00005b3c00008e0000008e000000000000001e00
+0000380000004000000074000000750000007d000000d0000000d4000000f800000000000100000018000000280000004000f000400000004600c0004700d400
+4700d80047000000620038006200750062000000660000008000000081000000bf00000100000003000007037a004304bf00c10a86006a0f00000f0f0f000019
+e0009019e6001d1d1d001320000043202c006a202c0046206e00262626008028c1004a2e6f002e3233004734d4004734d80035353500e23850005c3a43000040
+00000041ed00594304006f435c00654374000043d2005c4441006946200000473400204745002c47450072475c00004824004d494700504a0000504a2000654a
+5c004b4b4b00544c46004c4c4c004f4c4e00574f44006150200045504a00815943005a5a5a00b85c0000505c3a004d5c73006d6172000062e2000062e3000062
+e40072636900626557007365670073656c0064657200726574000067700061685300666870006c694600696969006c6c6500656c69005c6c6c00506d62006f6d
+6d00676f6c00676f720005715000717171006f736f00e574000063746500207466005c746c00e47550006d773300927d0000f780280080808000008159004786
+88000a86f000f7927d0096969600e8a00000b3b3b30046b6380046b63c0046b85c0041bd8a0000bff70004bff700c0c0c00028c10a0043d2900034d4000034d8
+000062e24c00e2e2e20062e3770062e4750019e6d00041edc00086f00000bff78000bff7920000f9ba0000fa1000ffffff008d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d7d837d
+7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d83
+7d7d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+7d7d7d7d837d7d7d7d7d7d837d7d7d7d837d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d7d7d7d7d837d7d837d7d837d7d7d7d837d7d7d837d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d837d7d7d7d837d837d7d837d7d7d7d7d7d7d7d837d7d7d7d7d837d7d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d837d837d7d7d837d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d83
+7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d
+7d7d7d837d7d7d7d7d7d837d7d837d7d7d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d7d837d7d837d7d7d7d837d7d7d837d
+7d7d7d7d7d7d837d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d7d7d7d7d
+837d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d837d837d7d7d837d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d
+7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d
+7d7d7d7d7d7d837d7d7d7d837d837d837d7d837d7d837d837d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d837d7d7d837d7d837d7d7d7d7d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d7d837d837d
+7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d7d837d7d7d837d7d7d7d7d7d7d837d837d7d7d7d7d7d7d7d7d
+837d7d7d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d7d7d837d837d7d837d838d837d7d837d7d837d837d7d7d7d7d7d7d837d7d837d7d7d7d7d7d
+7d837d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d837d837d7d6f6f65283e280000283e28656f657d7d7d7d837d7d7d7d7d7d
+7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d837d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d837d7d7d652800000000000000000000000000000000002865
+6f7d7d837d837d7d7d7d7d837d7d7d7d837d7d837d7d837d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d837d7d6f280000000000000000000000000000
+0000000000000000000065657d7d837d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d837d7d7d837d7d65000000000000000000
+0000000000000000000000000000000000000000286f7d7d7d7d837d7d837d837d7d837d7d837d7d837d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d837d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d7d7d837d6f000000
+000000000000000000000000000000000000000000000000000000000000657d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d7d7d7d7d
+7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d
+837d6f2800000000000000000000000000000000000000000000000000000000000000000000007d837d7d837d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d
+7d837d7d837d7d7d7d837d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d
+837d837d7d7d7d7d7d6500000000000000000000000000000000000000000000000000000000000000000000000000657d837d7d7d837d837d837d7d7d7d7d7d
+7d837d7d837d837d7d7d7d7d7d7d837d7d7d7d837d7d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d7d7d7d7d7d7d7d7d7d7d837d6500000000000000000000000000000000000000000000000000000000000000000000000000006f7d7d7d7d7d7d7d7d
+7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d837d7d7d837d0000000000000000000000000000000000000000000000000000000000000000000000000000000028
+837d7d837d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d837d7d7d837d7d7d7d7d7d837d7d837d7d837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d837d7d28000000000000000000000000000000000000000000000000000000000000000000
+00000000000000007d837d7d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d837d7d7d7d7d7d650000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000657d7d7d837d7d7d837d7d7d7d7d7d837d7d837d7d7d7d7d7d837d7d837d7d7d837d7d7d7d837d7d837d7d7d837d7d83
+7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d7d837d7d7d7d837d7d6500000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000657d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d7d
+7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d7d7d836f000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000657d7d7d7d837d7d837d7d7d7d7d837d7d837d7d7d7d7d7d837d7d7d7d837d7d
+837d7d7d7d7d7d837d7d837d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d837d7d837d836f0000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000007d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d
+7d7d7d837d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d837d7d7d7d7d
+7d7d28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007d7d7d7d7d837d7d837d7d7d7d7d7d
+7d837d7d7d7d7d7d7d837d7d7d7d837d7d837d7d7d7d837d7d837d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d83
+7d7d7d7d7d7d7d837d650000000000000000000000000000000000000000000000000000286565656f656565286528000000000000000000006f837d7d7d7d7d
+7d7d7d7d7d7d837d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d7d7d7d7d7d837d837d7d7d00000000000000000000000000000000000000000000000065657d7d837d7d837d837d837d7d7d7d7d656528000000
+00657d837d7d837d7d837d837d7d7d7d837d7d7d7d7d7d7d7d7d837d837d7d7d7d837d837d7d7d837d7d837d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d7d6500000000000000000000000000000000000000000000657d7d7d837d7d7d837d7d7d7d7d7d7d7d
+7d7d837d7d7d652800287d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d7d837d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d7d837d838d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d00000000000000000000000000000000000000000028657d7d837d7d7d7d7d7d
+7d837d7d7d837d7d837d7d837d7d837d65657d837d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d
+7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d8d8d8d8d8d8d8d8d8d8d8d8d8d837d7d7d7d837d7d83650000000000000000000000000000000000000000287d7d7d
+7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d837d7d837d7d837d7d7d7d837d837d837d837d837d7d7d7d7d7d7d837d837d837d7d
+837d7d7d7d7d837d7d8d8d8d8d8d6f6f6f6f6f6f6f6f7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d6f6f006f00000000000000
+6f6f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f006f00006f006f6f6f7d8d8d8d8d8d7d7d7d7d7d7d7d7d7d0000000000000000000000000000000000
+000000287d83837d837d7d837d7d7d7d837d7d7d7d7d837d7d7d7d836f6f65006500280000002865657d7d7d7d7d7d7d7d7d6f657d657d657d657d6f7d837d7d
+836f657d657d657d657d657d837d7d7d7d8d8d8d8d6f00000000000000000000006f6f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f0000000000
+0000000000000000000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000000000006f8d8d8d8d7d837d7d837d7d836f000000000000000000
+00000000000000000000287d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d65000000000000000000000000000000656f7d7d837d837d000000000000
+00000000657d7d7d7d28000000000000000000657d7d7d7d838d8d8d8d7d00000000000000000000000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d
+00000000000000000000000000000000000000000000006f7d8d8d8d8d8d8d8d7d6f0000000000000000000000000000006f8d8d8d8d7d7d837d7d7d837d2800
+0000000000000000000000000000000000007d7d7d7d7d7d7d837d7d837d7d7d7d837d7d7d7d837d6f0000000000000000000000000000000000000000657d7d
+7d7d00000000000000000000657d7d837d00000000000000000000657d7d7d7d7d8d8d8d8d6f000000000000000000000000000000006f8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d7d6f000000000000000000000000000000000000000000000000007d8d8d8d8d8d8d8d6f00000000000000000000000000000000008d8d8d8d837d
+7d7d7d7d7d7d00000000000000000000000000000000000000657d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d837d7d2800000000000000000000000000000000
+0000000000657d7d7d7d000000000000000000006f837d7d7d280000000000000000006f837d7d837d8d8d8d8d7d00000000000000000000000000000000006f
+8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000000000000000000000000000000000007d8d8d8d8d8d8d6f00000000000000000000000000000000
+00007d8d8d8d7d7d837d7d837d6f000000000000000000000000000000000000287d7d7d837d7d7d7d7d7d7d7d837d7d7d7d837d7d7d00000000000000000000
+000000000000000000000000006f837d7d8300000000000000000000657d7d7d8300000000000000000000657d7d7d7d7d8d8d8d8d6f00000000000000000000
+00000000000000007d8d8d8d8d8d8d8d8d8d8d6f000000000000000000000000000000000000000000000000000000006f8d8d8d8d8d8d6f0000000000000000
+000000000000000000008d8d8d8d7d7d7d7d7d7d7d6500000000000000000000000000000000000065837d7d7d7d7d7d837d7d837d7d7d837d7d7d7d7d280000
+000000000000000000000000000000000000000000687d7d7d7d28000000000000000000657d7d837d280000000000000000006f837d7d7d838d8d8d8d6f0000
+00000000000000000000000000000000008d8d8d8d8d8d8d8d8d7d00000000000000000000000000000000000000000000000000000000006f8d8d8d8d8d7d00
+0000000000000000000000000000000000007d8d8d8d7d837d7d7d837d000000000000000000000000000000000000287d7d837d7d837d7d7d7d7d7d7d7d7d7d
+7d7d7d7d650000000000000000000000000000000000000000000000000b837d7d83000000000000000000006f837d7d8300000000000000000000657d837d7d
+7d8d8d8d8d6f000000000000000000000000000000000000006f8d8d8d8d8d8d8d7d000000000000000000000000000000000000000000000000000000000000
+6f8d8d8d8d8d6f000000000000000000000000000000000000007d8d8d8d837d7d7d7d7d65000000000000000000000000000000000000657d7d7d7d7d7d7d7d
+837d7d837d7d837d7d7d836f000000000000000000000028656f7d7d7d7d656f652800000028837d837d28000000000000000000657d7d7d7d28000000000000
+0000006f837d7d7d838d8d8d8d7d00000000000000000000000000000000000000008d8d8d8d8d8d8d6f00000000000000000000000000000000006f6f6f6f00
+6f000000000000006f8d8d8d8d8d6f000000000000000000000000006f006f6f6f006f8d8d8d7d7d7d7d837d650000000000000000000000000000000000007d
+837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d2800000000000000000000657d7d837d7d837d837d837d6f6500287d7d7d7d3e0000000000000000006f837d7d
+7d3e000000000000000000657d7d7d7d7d8d8d8d8d6f00000000000000000000000000000000000000007d8d8d8d8d8d6f00000000000000000000000000006f
+7d8d8d8d8d8d8d8d8d7d7d6f000000006f7d8d8d8d8d6f0000000000000000000000006f7d8d8d8d7d7d8d8d8d8d7d837d7d7d7d650000000000000000000000
+000000000000287d7d7d837d7d7d7d7d837d7d7d837d7d7d7d7d6500000000000000000000657d837d7d7d7d7d7d7d7d7d7d837d7d657d7d7d7d280000000000
+000000006f7d7d837d280000000000000000006f837d7d7d838d8d8d8d7d6f7d7d7d6f0000000000000000000000000000006f8d8d8d8d8d6f00000000000000
+00000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f6f006f8d8d8d8d8d6f0000000000000000000000008d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d8300000000
+0000000000000000000000000000657d837d7d7d7d7d837d7d7d837d7d7d837d837d65000000000000000000657d7d7d7d7d837d7d837d7d837d7d7d7d7d837d
+837d6500000000000000000065837d7d7d65000000000000000000657d837d7d7d8d8d8d8d8d8d8d8d8d8d7d6f000000000000000000000000006f8d8d8d8d7d
+0000000000000000000000006f7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f8d8d8d8d8d0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d
+7d837d7d280000000000000000000000000000000000657d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d280000000000000000007d837d7d7d7d7d7d7d7d7d7d
+7d7d7d7d837d7d7d7d7d280000000000000000007d7d7d7d83000000000000000000007d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000
+0000008d8d8d8d6f0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d7d7d7d7d7d6f0000000000000000000000000000000000007d7d837d7d7d7d7d837d7d837d7d837d7d7d7d7d000000000000000000657d7d837d
+7d837d7d7d837d837d7d837d7d7d7d7d7d7d6500000000000000000065837d7d7d6500000000000000000065837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000
+000000000000000000006f8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d00000000000000000000
+00007d8d8d8d8d8d8d8d8d8d8d8d7d837d7d836f000000000000000000000000000000000000837d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d000000000000
+0000006f7d837d7d7d837d837d7d837d837d7d837d7d7d837d83280000000000000000007d7d7d7d83280000000000000000007d7d7d837d7d8d8d8d8d8d8d8d
+8d8d8d8d8d6f000000000000000000000000008d8d8d8d0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d0000
+000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d6f0000000000000000000000000000000000287d7d837d7d7d7d7d7d837d7d837d7d837d7d
+7d6500000000000000000000000000000000002800280028002800652865657d7d7d3e00000000000000000065837d7d7d6500000000000000000065837d7d7d
+838d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d7d0000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d837d7d837d650000000000000000000000000000000000657d7d7d7d837d7d837d7d
+7d7d7d7d7d7d7d7d836f00000000000000000000000000000000000000000000000000000000007d7d83280000000000000000007d7d7d7d8328000000000000
+0000007d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d7d00000000000000000000006f7d6f7d7d7d7d7d7d7d7d7d7d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d6500000000000000000000000000000000006f837d
+7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d6500000000000000000000000000000000000000000000000000000000007d7d7d650000000000000000007d7d837d
+7d3e00000000000000000065837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d7d0000000000000000000000000000000000
+000000000000000000000000000000006f008d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d65000000000000000000000000
+0000000000657d7d837d7d837d7d837d7d837d7d7d7d7d7d83650000000000000000000000000000000000000000000000000000000000837d7d280000000000
+000000007d7d7d7d83280000000000000000007d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d000000000000000000000000008d8d8d6f000000000000000000
+00000000000000000000000000000000000000000000000000007d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d6500000000
+000000000000000000000000006f837d7d7d7d7d7d7d7d837d7d7d7d837d7d7d7d7d00000000000000000000000000000000000000000000000000000000287d
+7d7d650000000000000000007d837d7d7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d6f00
+000000000000000000000000000000000000000000000000000000000000000000008d8d8d8d0000000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d837d
+7d7d83280000000000000000000000000000000000657d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d6500000000000000000000000000000000000000000000
+000000000000287d837d280000000000000000007d7d7d7d83280000000000000000007d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d00000000000000000000
+0000008d8d8d7d00000000000000000000000000000000000000000000000000000000000000000000007d8d8d8d6f00000000000000000000007d8d8d8d8d8d
+8d8d8d8d8d8d7d7d837d7d2800000000000000000000000000000000006f837d837d7d7d7d7d7d7d837d837d7d837d7d7d7d0000000000000000006f6f656f65
+65656f6565000000000000000000657d7d7d650000000000000000007d7d837d7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000
+000000000000000000006f8d8d8d6f00000000000000000000000000000000000000000000000000000000000000000000008d8d8d8d6f000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d836500000000000000000000000000000000006f7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d837d7d000000000000
+00000065837d837d837d837d7d650000000000000000657d837d28000000000000000000837d7d7d83280000000000000000007d837d7d7d7d8d8d8d8d8d8d8d
+8d8d8d8d8d8d000000000000000000000000008d8d8d6f00000000000000000000000000000000000000000000000000000000000000000000007d8d8d8d6f00
+000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d28000000000000000000000000000000000065837d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d
+7d7d650000000000000000287d7d7d7d7d7d7d7d83280000000000000000657d837d650000000000000000007d7d837d7d3e0000000000000000007d7d7d7d7d
+838d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d7d000000000000000000000000000000000000000000000000000000000000000000
+006f8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d836500000000000000000000000000000000006f7d7d837d7d837d7d837d
+7d837d7d7d7d837d7d836f0000000000000000007d7d837d7d7d7d837d0000000000000000007d7d7d7d280000000000000000007d7d7d7d8328000000000000
+000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d0000000000000000000000006f8d8d8d8d0000000000000000000000007d6f6f6f6f6f6f6f6f6f6f0000
+000000000000000000008d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d837d7d650000000000000000000000000000000000657d7d
+7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d83280000000000000000657d7d7d7d7d837d6f0000000000000000287d837d7d3e0000000000000000007d7d837d
+7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d6f000000000000000000006f8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d65000000000000000000000000
+0000000000657d837d7d837d7d837d7d837d7d7d7d7d7d837d7d7d65000000000000000000657d837d7d7d6500000000000000000065837d7d83280000000000
+00000000837d7d7d83280000000000000000007d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d000000000000000000000000008d8d8d8d6f0000000000000000
+0000008d8d8d8d8d8d8d8d8d8d8d6f000000000000000000006f8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d836f00000000
+00000000000000000000000000657d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d28000000000000000000006f656f65000000000000000000287d7d7d
+7d7d650000000000000000007d7d7d7d7d3e0000000000000000007d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d7d
+00000000000000000000007d8d8d8d8d8d8d8d8d8d7d00000000000000000000007d8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d8d8d8d7d7d
+7d7d7d65000000000000000000000000000000000028837d7d7d7d837d7d7d7d7d837d7d7d7d837d7d7d7d7d7d00000000000000000000000000000000000000
+0000000065837d7d837d28000000000000000000837d837d8328000000000000000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d00000000000000000000
+00006f8d8d8d8d7d00000000000000000000006f8d8d8d8d8d8d8d8d8d7d00000000000000000000008d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d7d837d7d837d0000000000000000000000000000000000007d7d837d7d7d7d837d837d7d7d837d7d7d7d7d837d7d836500000000000000000000
+0000000000000000000000657d7d7d7d7d7d650000000000000000007d7d7d7d7d650000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000
+000000000000000000006f7d8d8d8d8d6f00000000000000000000007d8d8d8d8d8d8d8d8d6f000000000000000000006f8d8d8d8d8d6f000000000000000000
+00006f8d8d8d8d8d7d8d8d8d8d8d7d7d7d7d7d7d0000000000000000000000000000000000007d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d6528
+000000000000000000000000000000000000287d837d7d7d7d7d280000000000000000007d7d837d7d280000000000000000007d7d837d7d7d8d8d8d8d8d8d8d
+8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d7d0000000000000000000000007d8d8d8d8d8d8d6f00000000000000000000007d7d6f6f6f6f6f00
+000000000000000000006f6f6f6f6f6f6f7d8d8d8d8d7d837d7d837d280000000000000000000000000000000000657d7d7d7d7d7d7d7d7d837d7d7d7d7d7d83
+7d7d837d7d837d7d6500000000000000000000000000000000657d837d7d837d7d7d3e0000000000000000007d7d7d7d7d3e0000000000000000007d7d7d7d83
+7d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d6f0000000000000000000000006f7d8d8d7d0000000000000000000000006f
+8d7d00000000000000000000000000000000000000000000006f8d8d8d8d7d7d7d7d7d7d650000000000000000000000000000000000657d837d7d837d7d837d
+7d7d837d837d7d7d7d7d7d7d7d7d7d7d7d65280000000000000000000000002865837d7d7d7d7d7d7d7d28000000000000000000837d7d837d28000000000000
+000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d8d8d8d8d00000000000000000000000000000000000000000000
+000000000000007d8d7d00000000000000000000000000000000000000000000006f8d8d8d8d7d837d7d837d650000000000000000000000000000000000287d
+7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d837d7d7d7d656565002800282865657d7d7d7d7d7d837d837d7d83000000000000000000007d7d7d7d
+83000000000000000000007d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d8d7d00000000000000000000000000
+00000000000000000000000000006f8d8d7d00000000000000000000000000000000000000000000006f8d8d8d8d7d7d7d7d7d7d650000000000000000000000
+000000000000006f7d7d7d7d7d837d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d837d7d837d7d7d7d7d7d7d280000000000
+00000000837d7d7d7d280000000000000000007d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d8d8d6f00000000
+000000000000000000000000000000000000000000007d8d8d8d00000000000000000000000000000000000000000000006f8d8d8d8d7d837d7d7d837d000000
+0000000000000000000000000000006f837d837d7d7d7d837d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d83
+7d7d3e0000000000000000007d7d837d7d3e0000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d000000000000000000000000008d8d8d8d8d
+8d8d8d8d7d0000000000000000000000000000000000000000000000008d8d8d8d7d00000000000000000000000000000000000000000000006f8d8d8d8d837d
+7d7d837d7d280000000000000000000000000000000000287d7d7d7d837d7d7d7d7d7d7d7d7d837d7d837d7d7d7d837d7d837d7d7d7d7d837d837d7d837d7d83
+7d7d7d837d7d7d7d7d7d280000000000000000007d7d7d7d7d28000000000000000000837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d00000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000000000000000000000006f7d8d8d8d8d8d00000000000000000000000000000000000000000000
+00008d8d8d8d7d7d7d7d7d7d7d650000000000000000000000000000000000006f837d7d7d7d7d7d837d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d
+7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d83000000000000000000007d837d7d83280000000000000000007d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d7d0000
+000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000000000000000006f7d8d8d8d8d8d8d0000000000000000000000000000
+000000000000000000008d8d8d8d7d837d7d7d7d836f000000000000000000000000000000000000287d837d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d837d
+7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d837d7d7d7d7d7d7d7d000000000000000000007d7d7d7d7d000000000000000000007d837d7d7d7d8d8d8d8d8d8d8d
+8d8d8d8d8d6f000000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d6f6f000000000000000000000000006f7d8d8d8d8d8d8d8d8d6f0000000000
+0000000000000000000000000000000000007d8d8d8d7d7d837d7d7d7d7d280000000000000000000000000000000000006f837d7d7d7d7d7d7d837d7d837d7d
+7d7d7d7d7d7d7d7d837d7d7d837d7d837d7d7d7d7d7d7d837d7d7d7d837d7d837d7d000000000000000000007d7d7d837d000000000000000000007d7d7d7d7d
+838d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d6f6f6f006f006f6f6f8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d7d7d837d7d8365000000000000000000000000000000000000007d837d7d837d
+7d7d7d7d7d7d7d837d7d837d7d837d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d00000000000000000000837d7d7d7d00000000000000
+0000007d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d0000000000000000000000000000000000
+0000287d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d837d837d7d7d7d837d7d000000000000000000007d7d7d83
+7d000000000000000000007d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d837d7d7d650000000000000000
+00000000000000000000006f7d837d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d837d7d7d837d837d6f28657d7d7d837d7d7d7d7d837d7d7d7d7d000000000000
+000000007d7d7d7d65000000000000000000007d837d7d837d8d8d8d8d8d8d8d8d8d8d8d8d6f000000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d8365
+0000000000000000000000000000000000000000657d7d7d7d837d7d837d7d7d7d837d7d7d837d7d7d7d7d7d7d7d6f650000657d837d7d7d7d837d7d7d7d7d83
+7d7d000000000000000000007d7d7d837d00000000000000000000657d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d
+7d7d7d7d837d7d7d280000000000000000000000000000000000000000657d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d837d7d650000000065837d7d7d7d
+7d7d7d837d7d7d7d7d65000000000000000000007d7d7d7d65000000000000000000007d837d7d7d838d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d
+8d8d8d8d8d8d7d7d7d7d837d7d7d7d836500000000000000000000000000000000000000000028657d7d7d837d7d7d7d7d7d7d837d837d837d7d6f2800000000
+00007d7d837d7d7d837d7d7d7d7d7d837d650000000000000000000065837d836f00000000000000000000657d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000
+00000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f000000000000000000
+00006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d837d7d7d7d2800000000000000000000000000000000000000000000656f7d7d7d837d837d837d7d7d7d656f
+28000000000000000028837d7d7d7d7d7d7d837d7d7d7d7d7d65000000000000000000007d7d7d7d65000000000000000000007d7d7d7d837d8d8d8d8d8d8d8d
+8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d6f00
+000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d7d7d836500000000000000000000000000000000000000000000000000006f656f65
+6f656f6528000000000000000000000000657d7d7d7d837d7d7d7d7d7d7d837d7d65652800000000000000006f837d7d65652800000000000000006f837d7d7d
+7d8d8d8d8d8d8d8d8d8d8d8d8d000000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d6f00000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d837d7d7d7d837d7d837d7d7d65000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000007d837d7d7d7d7d837d837d7d7d7d7d837d7d7d7d656f6528280028657d7d837d7d7d7d656f6528
+280028657d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d6f000000000000000000000000008d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f0000000000000000006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d7d7d28000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000007d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d837d837d837d7d7d7d837d7d
+7d7d7d7d7d837d837d7d657d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f00000000006f8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d837d7d837d836500000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000287d7d837d7d7d837d7d7d7d837d7d7d7d837d7d7d7d7d7d
+7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d7d6f0000000000000000000000006f8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d6f00006f8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d837d7d7d7d
+7d7d7d7d6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000065837d7d7d7d7d7d7d7d837d7d7d7d83
+7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d837d837d7d7d7d837d7d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d7d6f6f6f6f6f6f6f6f6f6f6f6f6f8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d8d8d8d8d8d8d8d8d8d8d8d7d83
+7d7d7d7d7d837d7d7d837d7d83650000000000000000000000000000000000000000000000000000000000000000000000000000000000007d7d7d837d7d837d
+7d837d7d7d837d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d7d7d837d7d7d7d7d7d7d7d7d7d7d7d650000000000000000000000000000000000000000000000000000000000000000000000000000000000
+7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d7d7d7d837d7d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d837d7d7d280000000000000000000000000000000000000000000000000000000000000000
+00000000000000287d837d7d837d7d837d7d7d7d837d7d7d7d7d837d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d837d7d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d7d7d7d650000000000000000000000000000000000000000000000
+0000000000000000000000000000006f837d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d7d837d7d837d7d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d7d7d837d7d7d650000000000000000000000000000
+0000000000000000000000000000000000000000000000657d7d7d837d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d837d7d7d7d
+837d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d837d7d7d7d837d836f2800000000
+000000000000000000000000000000000000000000000000000000000000287d837d7d7d7d7d837d7d7d7d837d7d7d837d7d7d837d7d7d7d837d7d7d7d7d837d
+7d7d7d7d7d837d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d
+7d7d837d650000000000000000000000000000000000000000000000000000000000000000286f837d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d
+7d7d837d7d7d7d7d7d837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d7d837d837d837d7d7d7d7d837d6528000000000000000000000000000000000000000000000000000000657d7d837d7d7d7d7d837d7d837d837d7d7d7d7d7d
+837d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d837d7d7d7d837d652800000000000000000000000000000000000000000000286f7d7d7d7d7d7d837d7d7d7d7d7d7d
+7d7d7d7d837d7d7d7d7d7d7d7d7d837d7d837d7d837d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d7d7d7d7d7d7d837d7d65650028000000000000000000000000002865657d7d837d7d837d7d7d
+7d7d7d7d7d837d7d7d7d837d7d7d837d7d837d7d837d7d7d7d7d7d7d7d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d7d837d7d7d837d837d7d7d656f656565656565656f7d7d7d7d837d
+837d7d7d7d7d7d837d7d837d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d837d837d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d837d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d83
+7d837d7d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d837d837d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d837d7d7d7d
+7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d837d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d
+7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d837d7d7d837d837d837d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d7d7d7d837d837d837d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d7d7d7d7d837d7d837d7d7d7d837d7d837d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d837d7d7d7d837d7d7d837d7d7d7d7d7d7d7d7d837d7d837d7d7d
+7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d837d7d7d7d7d837d7d7d837d7d7d7d7d7d7d7d837d7d7d7d837d
+7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d837d7d7d837d7d7d7d837d7d837d7d7d837d7d7d7d837d7d7d7d7d7d7d7d7d837d7d837d
+7d7d7d7d837d7d7d837d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d
+837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d837d7d7d7d7d7d7d7d7d837d7d837d7d7d
+7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d8d7d7d7d837d7d837d7d
+7d7d7d7d7d7d7d7d837d7d7d7d7d837d7d837d7d7d7d837d837d7d837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d
+8d7d7d7d7d7d7d7d837d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d838d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d7d837d7d7d837d7d7d7d7d7d7d837d7d837d7d7d7d7d7d837d7d837d7d7d7d7d7d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d837d837d7d7d7d7d837d7d837d7d7d7d7d837d7d837d837d7d7d7d7d7d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d837d7d7d7d7d7d7d7d7d837d7d7d7d7d7d7d7d7d7d837d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d7d837d7d7d7d837d7d
+7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d7d
+7d7d837d7d7d7d837d837d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d7d7d837d7d7d7d7d7d7d7d7d7d7d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d837d7d837d7d7d837d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d7d7d7d7d837d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d837d7d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d
+8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d0400000007010100030000000000}\par}}}{
+\b\f1\lang1033 PocketBTS Software Design Specification: Module RM
+\par }\pard \s18\sb60\sa60\widctlpar\tqc\tx4320\tqr\tx8640\adjustright {\b\f1\lang1033
+\par }\pard \s18\qc\sb60\sa60\widctlpar\tqc\tx4320\tqr\tx8640\adjustright {\b\i\f1\lang1033
+\par }}{\footer \pard\plain \s17\sb60\sa60\widctlpar\tqc\tx4680\tqr\tx9270\tqr\tx9720\adjustright \fs20\lang2057\cgrid {\b\f1
+\par }\pard \s17\sb60\sa60\widctlpar\tqc\tx4680\tx5940\tx7200\tx8460\tx8550\tqr\tx9270\tqr\tx9720\adjustright {\b\f1 PocketBTS Software Design}{\tab Page }{\field{\*\fldinst {\cs44 PAGE }}{\fldrslt {\cs44\lang1024 12}}}{\cs44 (of }{\field{\*\fldinst {\cs44
+ NUMPAGES \\* MERGEFORMAT }}{\fldrslt {\cs44\lang1024 1}}}{\cs44 )\tab \tab Version: 0.0
+\par }\pard \s17\qc\sb60\sa60\widctlpar\tqc\tx4320\tqc\tx5400\tqr\tx8640\tqr\tx9720\adjustright {\b\f1\fs16 JetCell, Inc. Proprietary and Confidential
+\par }\pard \s17\qc\sb60\sa60\widctlpar\tqc\tx4320\tqc\tx5220\tqr\tx8640\adjustright {\i\fs16 Copyright}{\i\f3\fs16 \'20\'e3}{\i\fs16 1997-98 JetCell, Inc. All rights reserved.}{
+\par }}{\listtext\pard\plain\s1 \scaps\fs28\lang2057\kerning28\cgrid \hich\af0\dbch\af0\loch\f0 1.\tab}\pard\plain \s1\sb240\sa60\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \ls1\outlinelevel0\adjustright
+\b\fs28\lang2057\kerning28\cgrid }}\pard\plain \s1\sb240\sa60\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \ls1\outlinelevel0\adjustright \b\fs28\lang2057\kerning28\cgrid {{\*\bkmkstart _Toc432248046}Introduction
+{\*\bkmkend _Toc432248046}
+\par {\listtext\pard\plain\s2 \b\i\f1\lang2057\cgrid \hich\af1\dbch\af0\loch\f1 1.1\tab}}\pard\plain \s2\sb240\sa60\keepn\widctlpar\ls1\ilvl1\outlinelevel1\adjustright \b\lang2057\cgrid {\i\f1 Scope
+\par }\pard\plain \s55\qj\sa60\widctlpar\tqr\tldot\tx9350\adjustright \i\fs20\ul\cf6\lang2057\cgrid {\i0\ulnone\cf1 With reference to [1]\emdash Figure 10/PocketBTS Software Architecture, module RM is planned to cover the following functions}{
+\cs43\i0\ulnone\cf1\super {\field{\*\fldinst SYMBOL 167 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}{\footnote \pard\plain \s42\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\cs43\fs16\super {\field{\*\fldinst SYMBOL 167 \\f "Symbol" \\s 8}{\fldrslt
+\f3\fs16}}}{\fs16 RIL3-RR Encoder/Decoder will be combined with RIL3-MM Encoder/Decoder and RIL3-CC Encoder/Decoder to form an independent module. Thus it is not listed here.}}}{\i0\ulnone\cf1 :
+\par {\pntext\pard\plain\s55 \f3\fs20\cf1\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s55\qj\fi-90\li90\sa60\widctlpar\jclisttab\tx0\tx540\tqr\tldot\tx9350{\*\pn \pnlvlblt\ilvl0\ls91\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls91\adjustright {\i0\ulnone\cf1 SMS-CB
+\par {\pntext\pard\plain\s55 \f3\fs20\cf1\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s55\qj\fi-90\li90\sa60\widctlpar\jclisttab\tx0\tx540\tqr\tldot\tx9350{\*\pn \pnlvlblt\ilvl0\ls91\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls91\adjustright {\i0\ulnone\cf1 Frequency Hopping Control
+\par {\pntext\pard\plain\s55 \f3\fs20\cf1\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s55\qj\fi-90\li90\sa60\widctlpar\jclisttab\tx0\tx540\tqr\tldot\tx9350{\*\pn \pnlvlblt\ilvl0\ls91\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls91\adjustright {\i0\ulnone\cf1 BTS Power Control
+\par {\pntext\pard\plain\s55 \f3\fs20\cf1\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s55\qj\fi-90\li90\sa60\widctlpar\jclisttab\tx0\tx540\tqr\tldot\tx9350{\*\pn \pnlvlblt\ilvl0\ls91\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls91\adjustright {\i0\ulnone\cf1 B TS Measurement Report
+\par {\pntext\pard\plain\s55 \f3\fs20\cf1\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s55\qj\fi-90\li90\sa60\widctlpar\jclisttab\tx0\tx540\tqr\tldot\tx9350{\*\pn \pnlvlblt\ilvl0\ls91\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls91\adjustright {\i0\ulnone\cf1 MS Power Control
+\par {\pntext\pard\plain\s55 \f3\fs20\cf1\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s55\qj\fi-90\li90\sa60\widctlpar\jclisttab\tx0\tx540\tqr\tldot\tx9350{\*\pn \pnlvlblt\ilvl0\ls91\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls91\adjustright {\i0\ulnone\cf1 Timing Advance
+\par {\pntext\pard\plain\s55 \f3\fs20\cf1\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s55\qj\fi-90\li90\sa60\widctlpar\jclisttab\tx0\tx540\tqr\tldot\tx9350{\*\pn \pnlvlblt\ilvl0\ls91\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls91\adjustright {\i0\ulnone\cf1 RRM (RR)
+\par }\pard \s55\qj\sb60\sa60\widctlpar\tqr\tldot\tx9350\adjustright {\i0\ulnone\cf1 In fact, most of these functions will ride over module RR and PocketBTS\rquote relevant DSP part. The interface between RR and this DSP part is assumed to be over the RTOS
+\rquote inter-task communication mechanism. For some sp
+ecial case, RR may command, by operating relevant registers, some hardware components of either transmission path, receiving path or both. But this kind of direct access to hardware components should be avoided in principle.
+\par }\pard \s55\qj\widctlpar\tqr\tldot\tx9350\adjustright {\i0\fs16\ulnone\cf1
+\par }\pard \s55\qj\fi-450\li450\widctlpar\tqr\tldot\tx9350\adjustright {\b\ulnone\cf1 TBD Note}{\ulnone\cf1 : Reviewers please
+\par }\pard \s55\qj\fi900\widctlpar\tqr\tldot\tx9350\adjustright {\ulnone\cf1 1. Advise on the above-stated relationship between RR and the DSP functioning body.
+\par }\pard \s55\qj\fi1080\widctlpar\tqr\tldot\tx9350\pnrnot1\adjustright {\ulnone\cf1\revised\revauth1\revdttm1714043934 Bhava }{\ulnone\cf1\revised\revauth1\revdttm1714043935 judges only those}{\ulnone\cf1\revised\revauth1\revdttm1714043937
+ MPH interface messages}{\ulnone\cf1\revised\revauth1\revdttm1714043935 specified in [11]}{\ulnone\cf1\revised\revauth1\revdttm1714043937 \emdash }{\ulnone\cf1\revised\revauth1\revdttm1714043935 Frontier }{\ulnone\cf1\revised\revauth1\revdttm1714043937
+Design Doc.}{\ulnone\cf1\revised\revauth1\revdttm1714043934
+\par }\pard \s55\qj\fi900\widctlpar\tqr\tldot\tx9350\adjustright {\ulnone\cf1 2. Evaluate if there are any problems about the functional grouping considered for RR
+\par }\pard \s55\qj\fi634\li446\widctlpar\tqr\tldot\tx9350\pnrnot1\adjustright {\cf1\revised\revauth1\revdttm1714043933\crauth1\crdate1714043935 Bhava agrees upon the above-mentioned bulleted }{\cf1\revised\revauth1\revdttm1714043934\crauth1\crdate1714043935
+functional }{\cf1\revised\revauth1\revdttm1714043933\crauth1\crdate1714043935 grouping.
+\par }\pard \s55\qj\fi-403\li446\widctlpar\tqr\tldot\tx9350\adjustright {\i0\fs16\cf1
+\par }\pard \s55\qj\sb60\sa60\widctlpar\tqr\tldot\tx9350\adjustright {\i0\ulnone\cf1
+Module RR is supposed to accommodate all the radio resource management responsibilities riding over the traditional GSM BTS and BSC, but for PocketBTS Pre-Alpha Release, module RR is onl
+y capable of performing the RRM function. In compliance to the PocketBTS system development plan, the above functions constituting the RR module will be roll out phase by phase. This design specification focuses on the RRM function and the rest of the fun
+ctions will be either simply ignored or dummied wherever they should be present. From message-processing point of view, messages landed at module RR but not related to the RRM function will not be processed.
+\par }\pard \s55\qj\widctlpar\tqr\tldot\tx9350\adjustright {\i0\fs16\ulnone\cf1
+\par }\pard \s55\qj\sb60\sa60\widctlpar\tqr\tldot\tx9350\adjustright {\i0\cf1 In summary, RR Capability for PocketBTS Pre-Alpha Release:
+\par {\pntext\pard\plain\s55 \f3\fs20\cf1\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s55\qj\fi-360\li360\sb60\sa60\widctlpar\jclisttab\tx360\tqr\tldot\tx9350{\*\pn \pnlvlblt\ilvl0\ls93\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls93\adjustright {\i0\ulnone\cf1 RRM funtion
+\par }\pard \s55\qj\sb60\sa60\widctlpar\tqr\tldot\tx9350\adjustright {For the rest of this document, RR and RRM are functionally exchangeable for all their appearances unless an explicit distinction between them is noted.
+\par
+\par }{\f1
+\par {\listtext\pard\plain\s2 \b\i\f1\lang2057\cgrid \hich\af1\dbch\af0\loch\f1 1.2\tab}}\pard\plain \s2\sb240\sa60\keepn\widctlpar\ls1\ilvl1\outlinelevel1\adjustright \b\lang2057\cgrid {\i\f1 References
+\par }\pard\plain \qj\sb60\widctlpar\tx1350\adjustright \fs20\lang2057\cgrid {\cf1 [1] JetCell\tab : PocketBTS Software Architecture Specification V1.0 (Release Candidate), 9/6/1998
+\par }\pard \qj\sb60\widctlpar\tx1260\tx1350\tqr\tldot\tx9350\adjustright {\cf1 [2] CNI\tab \tab : GSM LAPDm Protocol Module API User Reference Manual, Rev. 1.0, 8/15/1998
+\par }\pard \qj\sb60\widctlpar\tx1350\tqr\tldot\tx9350\adjustright {\cf1 [3] ETSI\tab : GSM 04.07 Phase 2 (Layer 3 General Aspects)
+\par [4] ETSI\tab : GSM 04.04 (Layer 1 General)
+\par [5] ETSI\tab : GSM 08.58 Phase 2 (BTS-BSC Layer 3 I/F)
+\par [6] ETSI\tab : GSM 08.08 Phase 2 (BSS-MSC Layer 3 I/F)
+\par [7] ETSI\tab : GSM 04.08 Phase 2 (GSM Um I/F Messages)
+\par [8] ETSI\tab : GSM 03.09 Phase 2 (GSM Handover Procedures)
+\par [9] JetCell\tab : AirCore V1.0, 9/04/1998
+\par [10] JetCell\tab : PocketBTS Pre-Alpha Release Call Processing Flows V0.}{\cf1\revised\revauth1\revdttm1714043973 1}{\deleted\cf1\revauthdel1\revdttmdel1714043973 0}{\cf1 , 9/27/1998
+\par }\pard \qj\widctlpar\tx1350\tqr\tldot\tx9350\pnrnot1\adjustright {\cf1\revised\revauth1\revdttm1714043936 [11] Fronitier\tab : JetCell PocketBTS Physical Layer (L1) Software Interface Specification V0.1, 8/10/98
+\par }\pard \qj\widctlpar\tx1350\tqr\tldot\tx9350\adjustright {\cf1
+\par {\*\bkmkstart _Toc432248049}{\listtext\pard\plain\s2 \b\i\f1\lang2057\cgrid \hich\af1\dbch\af0\loch\f1 1.3\tab}}\pard\plain \s2\sb120\sa60\keepn\widctlpar\ls1\ilvl1\outlinelevel1\adjustright \b\lang2057\cgrid {\i\f1 Abbreviations{\*\bkmkend _Toc432248049}
+
+\par }\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {The following abbreviations and definitions apply to this document:
+\par }\pard \sb40\widctlpar\adjustright {API\tab \tab \tab Application Programming Interface
+\par HO\tab \tab \tab HandOver
+\par I/F\tab \tab \tab InterFace
+\par }\pard\plain \s15\sb60\widctlpar\adjustright \f4\fs20\cgrid {\f0\lang2057 IRT\tab \tab \tab Internal Routing Table
+\par L1\tab \tab \tab Layer 1 which may be exchangeable with the DSP Interface Driver module
+\par L2\tab \tab \tab Layer 2 which may be exchangeable with the LAPDm module
+\par LAPDm \tab Link Access Procedure\emdash D Channel for mobile
+\par LUP\tab \tab Location Updating Procedure
+\par MCSM\tab \tab Mobile Call State Machine
+\par MD\tab \tab \tab Message Delivery
+\par MOC\tab \tab Mobile Orginating Call procedure
+\par MTC\tab \tab Mobile Terminating Call procedure
+\par OACSU\tab \tab Off-Air Call Set Up
+\par }\pard\plain \sb40\widctlpar\adjustright \fs20\lang2057\cgrid {RM\tab \tab \tab Radio resource Management
+\par RR\tab \tab \tab Radio Resource
+\par RRM\tab \tab Radio Resource Management
+\par RSL\tab \tab Radio Signalling Link
+\par SAP\tab \tab Service Access Point
+\par SM\tab \tab \tab State Machine
+\par }\pard\plain \s15\sb40\widctlpar\adjustright \f4\fs20\cgrid {\f0\lang2057 STD\tab \tab State Transition Diagram
+\par TBD\tab \tab To Be Determined
+\par }{\i\f0\lang2057
+\par Note: The GSM 01.04 may be referred to for those abbreviations not listed above}{\f0\lang2057 .
+\par {\*\bkmkstart _Toc432248050}{\listtext\pard\plain\s2 \b\i\f1\lang2057\cgrid \hich\af1\dbch\af0\loch\f1 1.4\tab}}\pard\plain \s2\sb240\sa60\keepn\widctlpar\ls1\ilvl1\outlinelevel1\adjustright \b\lang2057\cgrid {\i\f1 Organization{\*\bkmkend _Toc432248050}
+
+\par }\pard\plain \sb60\widctlpar\tx1350\tqr\tldot\tx8640\adjustright \fs20\lang2057\cgrid {The rest of this document is organised into the following four sections:
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360\tx1350\tqr\tldot\tx8640{\*\pn \pnlvlblt\ilvl0\ls94\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls94\adjustright
+{Section 2: General Design
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360\tx1350\tqr\tldot\tx8640{\*\pn \pnlvlblt\ilvl0\ls94\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls94\adjustright
+{Section 3: External Interfaces
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360\tx1350\tqr\tldot\tx8640{\*\pn \pnlvlblt\ilvl0\ls94\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls94\adjustright
+{Section 4: Detailed Design-Data Section
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360\tx1350\tqr\tldot\tx8640{\*\pn \pnlvlblt\ilvl0\ls94\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls94\adjustright
+{Section 5: Detailed Design-Logic Section
+\par }\pard \sb60\widctlpar\tx1350\tqr\tldot\tx8640\adjustright {
+\par {\listtext\pard\plain\s1 \b\i\fs28\lang2057\kerning28\cgrid \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard\plain \s1\sb240\sa60\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \ls1\outlinelevel0\adjustright
+\b\fs28\lang2057\kerning28\cgrid {\i \page {\*\bkmkstart _Toc432248051}General Design{\*\bkmkend _Toc432248051}
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {This section develops the design points for module RR in high-level aspect, which is covered under the following five subsections:
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \qj\fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls95\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls95\adjustright {Context Diagram
+
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \qj\fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls95\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls95\adjustright {State Machine
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \qj\fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls95\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls95\adjustright {
+High-Level Decomposition
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \qj\fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls95\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls95\adjustright {Module Architecture
+
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \qj\fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls95\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls95\adjustright {
+Global Data/Functions
+\par }\pard \qj\widctlpar\adjustright {
+\par {\*\bkmkstart _Toc432248052}{\listtext\pard\plain\s2 \b\i\f1\lang2057\cgrid \hich\af1\dbch\af0\loch\f1 2.1\tab}}\pard\plain \s2\sb120\sa60\keepn\widctlpar\ls1\ilvl1\outlinelevel1\adjustright \b\lang2057\cgrid {\i\f1 Context Diagram
+{\*\bkmkend _Toc432248052}
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+PocketBTS can not exactly match to a particular functional entity defined in GSM system infrastructure. Thus it is not necessary to force PocketBTS to comply with any protocol architecture model specified for any particular GSM functional entity. But noti
+ng the fact that the whole GSM protocol stack composed of Layer 1, Layer 2 and Layer 3 elements is needed to be built into the PocketBTS, it would be natural to derive the protocol architecture for use by PocketBTS of the one suggested for mobile side.
+
+\par The protocol architecture chosen for PocketBTS is based on [3]\emdash GSM 04.07/Figure 5.1 and [4]\emdash GSM 04.04/Figure 2.1 with a RIL3 Message Delivery (MD) functionality intentionally introduced in [1]\emdash
+P ocketBTS Software Architecture in order to lessen interlayer signalling redundancy existing with [3]\emdash G SM 04.07 specification.
+\par With reference to [1]\emdash Figure 6 and 10/PocketBTS Software Architecture, Figure 2-1 below depicts the data context diagram of the RR module.
+\par }\pard\plain \s15\sb60\sa60\widctlpar\adjustright \f4\fs20\cgrid {\lang1024 {\shp{\*\shpinst\shpleft3570\shptop2620\shpright4245\shpbottom2916\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz3\shplid1028
+{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn lTxid}{\sv 65536}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1028}}
+{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt
+\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 MPH I/F}{\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8195\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 MPH I/F}{\fs16\lang1033
+\par }}\dpx3570\dpy2620\dpxsize675\dpysize296\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft2100\shptop2149\shpright2655\shpbottom2446\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz5\shplid1029{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 131072}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1029}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid { }{
+\fs16\lang1033 ED I/F
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8197\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid { }{\fs16\lang1033 ED I/F
+\par }}\dpx2100\dpy2149\dpxsize555\dpysize297\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft2430\shptop1090\shpright3105\shpbottom1386\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz1\shplid1030{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 196608}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1030}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16
+ RM I/F}{\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8193\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 RM I/F}{\fs16\lang1033
+\par }}\dpx2430\dpy1090\dpxsize675\dpysize296\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shpgrp{\*\shpinst\shpleft2807\shptop1569\shpright4207\shpbottom2321\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz59\shplid1031{\sp{\sn groupLeft}{\sv 8762}}{\sp{\sn groupTop}{\sv 8518}}{\sp{\sn groupRight}{\sv 10162}}
+{\sp{\sn groupBottom}{\sv 9128}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shp{\*\shpinst\shplid1032{\sp{\sn relLeft}{\sv 9060}}{\sp{\sn relTop}{\sv 8620}}{\sp{\sn relRight}{\sv 9611}}
+{\sp{\sn relBottom}{\sv 8785}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 262144}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}
+{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\shptxt \pard\plain
+\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Frequency}{
+\par }}}}{\shp{\*\shpinst\shplid1033{\sp{\sn relLeft}{\sv 8911}}{\sp{\sn relTop}{\sv 8757}}{\sp{\sn relRight}{\sv 9774}}{\sp{\sn relBottom}{\sv 8922}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fLockText}{\sv 0}}
+{\sp{\sn lTxid}{\sv 327680}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}
+{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs12\cf16\cgrid0 Hopping Control}{
+\par }}}}{\shp{\*\shpinst\shplid1034{\sp{\sn relLeft}{\sv 8764}}{\sp{\sn relTop}{\sv 8553}}{\sp{\sn relRight}{\sv 10162}}{\sp{\sn relBottom}{\sv 9128}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fLockText}{\sv 0}}
+{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 0}}}}{\shp{\*\shpinst\shplid1035{\sp{\sn relLeft}{\sv 8762}}{\sp{\sn relTop}{\sv 8518}}{\sp{\sn relRight}{\sv 10104}}{\sp{\sn relBottom}{\sv 9098}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16772300}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn lineColor}{\sv 13382451}}{\sp{\sn lineWidth}{\sv 6350}}{\sp{\sn fLine}{\sv 1}}}}
+{\shp{\*\shpinst\shplid1036{\sp{\sn relLeft}{\sv 8965}}{\sp{\sn relTop}{\sv 8643}}{\sp{\sn relRight}{\sv 10038}}{\sp{\sn relBottom}{\sv 8898}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fLockText}{\sv 0}}
+{\sp{\sn lTxid}{\sv 393216}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}
+{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+Module RM}{\lang1033
+\par }}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8251\dppolygon\dppolycount4\dpptx0\dppty0\dpptx1400\dppty0\dpptx1400\dppty752\dpptx0\dppty752\dpx2807\dpy1569\dpxsize1400\dpysize752
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft6012\shptop2782\shpright6426\shpbottom2986\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz58\shplid1037{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 458752}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Control}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8250\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Control}{
+\par }}\dpx6012\dpy2782\dpxsize414\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6035\shptop2613\shpright6404\shpbottom2817\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz57\shplid1038{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 524288}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 TRAU}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8249\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 TRAU}{
+\par }}\dpx6035\dpy2613\dpxsize369\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5844\shptop2610\shpright6534\shpbottom3085\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz56\shplid1039{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16772300}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn lineColor}{\sv 13382451}}{\sp{\sn lineWidth}{\sv 6350}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8248
+\dpellipse\dpx5844\dpy2610\dpxsize690\dpysize475\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr204\dpfillbgcg236\dpfillbgcb255\dpfillpat1\dplinew10\dplinecor51\dplinecog51\dplinecob204}}}
+{\shp{\*\shpinst\shpleft5891\shptop2653\shpright6592\shpbottom3140\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz55\shplid1040{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8247\dpellipse\dpx5891\dpy2653\dpxsize701\dpysize487
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr153\dpfillbgcg153\dpfillbgcb255\dpfillpat1\dplinehollow}}}{\shp{\*\shpinst\shpleft6063\shptop2903\shpright6477\shpbottom3107\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz54\shplid1041
+{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 589824}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}
+{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain
+\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Control}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8246\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Control}{
+\par }}\dpx6063\dpy2903\dpxsize414\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6086\shptop2735\shpright6455\shpbottom2939\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz53\shplid1042{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 655360}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 TRAU}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8245\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 TRAU}{
+\par }}\dpx6086\dpy2735\dpxsize369\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6837\shptop2508\shpright7251\shpbottom2712\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz52\shplid1043{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 720896}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Control}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8244\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Control}{
+\par }}\dpx6837\dpy2508\dpxsize414\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6770\shptop2357\shpright7330\shpbottom2561\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz51\shplid1044{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 786432}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 MS Power}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8243\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 MS Power}{
+\par }}\dpx6770\dpy2357\dpxsize560\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6669\shptop2317\shpright7359\shpbottom2792\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz50\shplid1045{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16772300}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn lineColor}{\sv 13382451}}{\sp{\sn lineWidth}{\sv 6350}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8242
+\dpellipse\dpx6669\dpy2317\dpxsize690\dpysize475\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr204\dpfillbgcg236\dpfillbgcb255\dpfillpat1\dplinew10\dplinecor51\dplinecog51\dplinecob204}}}
+{\shp{\*\shpinst\shpleft6716\shptop2360\shpright7417\shpbottom2846\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz49\shplid1046{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8241\dpellipse\dpx6716\dpy2360\dpxsize701\dpysize486
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr153\dpfillbgcg153\dpfillbgcb255\dpfillpat1\dplinehollow}}}{\shp{\*\shpinst\shpleft6888\shptop2610\shpright7302\shpbottom2814\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz48\shplid1047
+{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 851968}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}
+{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain
+\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Control}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8240\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Control}{
+\par }}\dpx6888\dpy2610\dpxsize414\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6821\shptop2441\shpright7381\shpbottom2645\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz47\shplid1048{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 917504}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 MS Power}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8239\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 MS Power}{
+\par }}\dpx6821\dpy2441\dpxsize560\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5667\shptop2073\shpright6081\shpbottom2277\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz46\shplid1049{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 983040}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Control}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8238\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Control}{
+\par }}\dpx5667\dpy2073\dpxsize414\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5578\shptop1904\shpright6183\shpbottom2108\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz45\shplid1050{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1048576}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 BTS Power}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8237\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 BTS Power}{
+\par }}\dpx5578\dpy1904\dpxsize605\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5499\shptop1882\shpright6189\shpbottom2357\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz44\shplid1051{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16772300}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn lineColor}{\sv 13382451}}{\sp{\sn lineWidth}{\sv 6350}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8236
+\dpellipse\dpx5499\dpy1882\dpxsize690\dpysize475\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr204\dpfillbgcg236\dpfillbgcb255\dpfillpat1\dplinew10\dplinecor51\dplinecog51\dplinecob204}}}
+{\shp{\*\shpinst\shpleft5546\shptop1925\shpright6247\shpbottom2412\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz43\shplid1052{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8235\dpellipse\dpx5546\dpy1925\dpxsize701\dpysize487
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr153\dpfillbgcg153\dpfillbgcb255\dpfillpat1\dplinehollow}}}{\shp{\*\shpinst\shpleft5718\shptop2176\shpright6132\shpbottom2379\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz42\shplid1053
+{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1114112}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}
+{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain
+\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Control}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8234\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Control}{
+\par }}\dpx5718\dpy2176\dpxsize414\dpysize203\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5629\shptop2008\shpright6234\shpbottom2212\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz41\shplid1054{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1179648}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 BTS Power}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8233\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 BTS Power}{
+\par }}\dpx5629\dpy2008\dpxsize605\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6704\shptop1131\shpright7172\shpbottom1334\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz40\shplid1055{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1245184}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Advance}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8232\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Advance}{
+\par }}\dpx6704\dpy1131\dpxsize468\dpysize203\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6742\shptop963\shpright7143\shpbottom1166\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz39\shplid1056{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1310720}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Timing}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8231\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Timing}{
+\par }}\dpx6742\dpy963\dpxsize401\dpysize203\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6564\shptop939\shpright7254\shpbottom1414\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz38\shplid1057{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16772300}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn lineColor}{\sv 13382451}}{\sp{\sn lineWidth}{\sv 6350}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8230
+\dpellipse\dpx6564\dpy939\dpxsize690\dpysize475\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr204\dpfillbgcg236\dpfillbgcb255\dpfillpat1\dplinew10\dplinecor51\dplinecog51\dplinecob204}}}
+{\shp{\*\shpinst\shpleft6611\shptop982\shpright7312\shpbottom1470\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz37\shplid1058{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8229\dpellipse\dpx6611\dpy982\dpxsize701\dpysize488
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr153\dpfillbgcg153\dpfillbgcb255\dpfillpat1\dplinehollow}}}{\shp{\*\shpinst\shpleft6755\shptop1234\shpright7223\shpbottom1438\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz36\shplid1059
+{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1376256}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}
+{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain
+\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Advance}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8228\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Advance}{
+\par }}\dpx6755\dpy1234\dpxsize468\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6793\shptop1065\shpright7194\shpbottom1269\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz35\shplid1060{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1441792}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Timing}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8227\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Timing}{
+\par }}\dpx6793\dpy1065\dpxsize401\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6730\shptop1723\shpright7593\shpbottom1927\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz34\shplid1061{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1507328}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Hopping Control}{
+
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8226\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Hopping Control}{
+\par }}\dpx6730\dpy1723\dpxsize863\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6880\shptop1553\shpright7431\shpbottom1756\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz33\shplid1062{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1572864}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Frequency}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8225\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Frequency}{
+\par }}\dpx6880\dpy1553\dpxsize551\dpysize203\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6617\shptop1587\shpright7689\shpbottom2062\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz32\shplid1063{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16772300}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn lineColor}{\sv 13382451}}{\sp{\sn lineWidth}{\sv 6350}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8224
+\dpellipse\dpx6617\dpy1587\dpxsize1072\dpysize475\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr204\dpfillbgcg236\dpfillbgcb255\dpfillpat1\dplinew10\dplinecor51\dplinecog51\dplinecob204}}}
+{\shp{\*\shpinst\shpleft6634\shptop1612\shpright7717\shpbottom2099\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz31\shplid1064{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8223\dpellipse\dpx6634\dpy1612\dpxsize1083\dpysize487
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr153\dpfillbgcg153\dpfillbgcb255\dpfillpat1\dplinehollow}}}{\shp{\*\shpinst\shpleft6781\shptop1864\shpright7644\shpbottom2067\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz30\shplid1065
+{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1638400}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}
+{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain
+\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Hopping Control}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8222\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Hopping Control}{
+\par }}\dpx6781\dpy1864\dpxsize863\dpysize203\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6930\shptop1694\shpright7481\shpbottom1898\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz29\shplid1066{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1703936}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Frequency}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8221\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Frequency}{
+\par }}\dpx6930\dpy1694\dpxsize551\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5825\shptop1327\shpright6201\shpbottom1530\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz28\shplid1067{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1769472}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Report}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8220\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Report}{
+\par }}\dpx5825\dpy1327\dpxsize376\dpysize203\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5665\shptop1176\shpright6375\shpbottom1380\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz27\shplid1068{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1835008}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Measurement}{
+
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8219\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 Measurement}{
+\par }}\dpx5665\dpy1176\dpxsize710\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5876\shptop1025\shpright6143\shpbottom1229\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz26\shplid1069{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1900544}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 BTS}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8218\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf1\cgrid0 BTS}{
+\par }}\dpx5876\dpy1025\dpxsize267\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5649\shptop1024\shpright6339\shpbottom1593\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz25\shplid1070{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16772300}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn lineColor}{\sv 13382451}}{\sp{\sn lineWidth}{\sv 6350}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8217
+\dpellipse\dpx5649\dpy1024\dpxsize690\dpysize569\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr204\dpfillbgcg236\dpfillbgcb255\dpfillpat1\dplinew10\dplinecor51\dplinecog51\dplinecob204}}}
+{\shp{\*\shpinst\shpleft5681\shptop1012\shpright6382\shpbottom1593\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz24\shplid1071{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8216\dpellipse\dpx5681\dpy1012\dpxsize701\dpysize581
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr153\dpfillbgcg153\dpfillbgcb255\dpfillpat1\dplinehollow}}}{\shp{\*\shpinst\shpleft5876\shptop1392\shpright6252\shpbottom1596\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz23\shplid1072
+{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 1966080}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}
+{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain
+\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Report}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8215\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Report}{
+\par }}\dpx5876\dpy1392\dpxsize376\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5716\shptop1223\shpright6426\shpbottom1427\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz22\shplid1073{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 2031616}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Measurement}{
+
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8214\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 Measurement}{
+\par }}\dpx5716\dpy1223\dpxsize710\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5926\shptop1054\shpright6193\shpbottom1258\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz21\shplid1074{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fLockText}{\sv 0}}{\sp{\sn lTxid}{\sv 2097152}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn WrapText}{\sv 2}}{\sp{\sn fSelectText}{\sv 1}}{\sp{\sn fRotateText}{\sv 1}}
+{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 BTS}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8213\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs12\cf16\cgrid0 BTS}{
+\par }}\dpx5926\dpy1054\dpxsize267\dpysize204\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinehollow}}}
+{\shp{\*\shpinst\shpleft4245\shptop1756\shpright5250\shpbottom1939\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz20\shplid1075{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn geoRight}{\sv 1245}}{\sp{\sn geoBottom}{\sv 238}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10;(0,195);(66,179);(133,163);(255,165);(377,167);(570,238);(735,210);(900,182);(1157,38)
+;(1245,0)}}{\sp{\sn pSegmentInfo}{\sv 2;9;16384;44288;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}
+{\sp{\sn lineDashing}{\sv 2}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8212\dppolygon\dppolycount53
+\dpptx0\dppty149\dpptx21\dppty145\dpptx40\dppty140\dpptx63\dppty136\dpptx87\dppty133\dpptx111\dppty130\dpptx140\dppty128\dpptx170\dppty126\dpptx188\dppty126\dpptx206\dppty126\dpptx216\dppty127\dpptx225\dppty127\dpptx245\dppty129\dpptx267\dppty131
+\dpptx290\dppty135\dpptx312\dppty139\dpptx336\dppty144\dpptx386\dppty152\dpptx412\dppty156\dpptx438\dppty160\dpptx465\dppty162\dpptx491\dppty165\dpptx503\dppty165\dpptx516\dppty166\dpptx529\dppty166\dpptx542\dppty165\dpptx555\dppty165\dpptx567\dppty164
+\dpptx580\dppty162\dpptx593\dppty161\dpptx606\dppty158\dpptx619\dppty156\dpptx632\dppty152\dpptx647\dppty149\dpptx660\dppty145\dpptx674\dppty141\dpptx689\dppty136\dpptx703\dppty131\dpptx733\dppty120\dpptx762\dppty108\dpptx793\dppty96\dpptx822\dppty83
+\dpptx851\dppty71\dpptx878\dppty58\dpptx904\dppty46\dpptx928\dppty35\dpptx950\dppty24\dpptx961\dppty19\dpptx971\dppty15\dpptx981\dppty10\dpptx989\dppty6\dpptx997\dppty3\dpptx1003\dppty0\dpx4245\dpy1756\dpxsize1005\dpysize183
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5220\shptop705\shpright7920\shpbottom3343\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz19\shplid1076{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lineColor}{\sv 13382451}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8211\dpellipse\dpx5220\dpy705\dpxsize2700\dpysize2638
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew25\dplinecor51\dplinecog51\dplinecob204}}}
+{\shp{\*\shpinst\shpleft1710\shptop2163\shpright2955\shpbottom2914\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz18\shplid1077{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 1}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineStartArrowhead}{\sv 1}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8210\dpline\dpptx1245\dppty0\dpptx0\dppty751\dpx1710\dpy2163\dpxsize1245\dpysize751\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft3504\shptop975\shpright3519\shpbottom1564\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz17\shplid1078{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineStartArrowhead}{\sv 1}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8209\dpline\dpptx15\dppty0\dpptx0\dppty589\dpx3504\dpy975\dpxsize15\dpysize589\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1920\shptop853\shpright2928\shpbottom1741\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz16\shplid1079{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineStartArrowhead}{\sv 1}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8208\dpline\dpptx0\dppty0\dpptx1008\dppty888\dpx1920\dpy853\dpxsize1008\dpysize888\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2748\shptop2260\shpright3135\shpbottom2958\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz15\shplid1080{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 1}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8207
+\dpline\dpptx387\dppty0\dpptx0\dppty698\dpx2748\dpy2260\dpxsize387\dpysize698\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft3852\shptop2275\shpright4467\shpbottom2916\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz14\shplid1081{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineStartArrowhead}{\sv 1}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8206\dpline\dpptx0\dppty0\dpptx615\dppty641\dpx3852\dpy2275\dpxsize615\dpysize641\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1935\shptop1919\shpright2799\shpbottom1919\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz13\shplid1082{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineStartArrowhead}{\sv 1}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 16}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8205\dpline\dpptx0\dppty0\dpptx864\dppty0\dpx1935\dpy1919\dpxsize864\dpysize0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft615\shptop2892\shpright1905\shpbottom3513\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz12\shplid1083{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2162688}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16 RIL3\endash RR Encoder/Decoder}{\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8204\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 RIL3\endash RR Encoder/Decoder}{\fs16\lang1033
+\par }}\dpx615\dpy2892\dpxsize1290\dpysize621\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft624\shptop1536\shpright1920\shpbottom2289\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz11\shplid1084{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2228224}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16 Mobility Management (MM+HO)}{\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8203\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 Mobility Management (MM+HO)}{\fs16\lang1033
+\par }}\dpx624\dpy1536\dpxsize1296\dpysize753\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft624\shptop439\shpright1920\shpbottom1000\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz10\shplid1085{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2293760}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16 Call Control (CC+CRSS)}{\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8202\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 Call Control (CC+CRSS)}{\fs16\lang1033
+\par }}\dpx624\dpy439\dpxsize1296\dpysize561\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2928\shptop439\shpright4164\shpbottom978\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz9\shplid1086{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2359296}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16 SNMP MIB Controller}{\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8201\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 SNMP MIB Controller}{\fs16\lang1033
+\par }}\dpx2928\dpy439\dpxsize1236\dpysize539\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft3756\shptop2928\shpright4932\shpbottom3490\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz8\shplid1087{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2424832}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16 DSP Interface Driver Module}{\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8200\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 DSP Interface Driver Module}{\fs16\lang1033
+\par }}\dpx3756\dpy2928\dpxsize1176\dpysize562\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2223\shptop2958\shpright3393\shpbottom3516\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz7\shplid1088{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2490368}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16 RIL3 Message Delivery}{\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8199\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 RIL3 Message Delivery}{\fs16\lang1033
+\par }}\dpx2223\dpy2958\dpxsize1170\dpysize558\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5910\shptop343\shpright7260\shpbottom787\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz6\shplid1089{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2555904}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}{\sp{\sn fillFocus}{\sv 100}}
+{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\b RM expansion }{\b\lang1033
+
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8198\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\b RM expansion }{\b\lang1033
+\par }}\dpx5910\dpy343\dpxsize1350\dpysize444\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft3555\shptop1108\shpright4230\shpbottom1404\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz2\shplid1090{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2621440}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1090}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16
+ OAM I/F}{\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8194\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 OAM I/F}{\fs16\lang1033
+\par }}\dpx3555\dpy1108\dpxsize675\dpysize296\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}}{\f0\lang1024
+\par
+\par
+\par
+\par }{\lang1024 {\shp{\*\shpinst\shpleft2100\shptop206\shpright2775\shpbottom502\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz0\shplid1091{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2686976}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1091}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16
+ RM I/F}{\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8192\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 RM I/F}{\fs16\lang1033
+\par }}\dpx2100\dpy206\dpxsize675\dpysize296\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}}{\f0\lang1024
+\par
+\par
+\par }{\lang1024 {\shp{\*\shpinst\shpleft2325\shptop100\shpright2880\shpbottom396\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz4\shplid1092{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2752512}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1092}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 16}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid { }{
+\fs16\lang1033 DL I/F
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8196\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid { }{\fs16\lang1033 DL I/F
+\par }}\dpx2325\dpy100\dpxsize555\dpysize296\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}}{\f0\lang1024
+\par
+\par }\pard\plain \s40\qc\widctlpar\adjustright \b\fs20\lang2057\cgrid {
+\par }\pard \s40\qc\sb60\sa60\widctlpar\adjustright {
+\par {\*\bkmkstart _Toc432248113}Figure }{\field{\*\fldinst { STYLEREF 1 \\s }}{\fldrslt {\lang1024 2}}}{\_}{\field{\*\fldinst { SEQ Figure \\* ARABIC \\s 1 }}{\fldrslt {\lang1024 1}}}{ Module RM Context Diagram{\*\bkmkend _Toc432248113}
+\par }\pard\plain \s15\widctlpar\adjustright \f4\fs20\cgrid {\f0\lang2057
+\par }\pard\plain \qj\fi-900\li900\sb60\sa60\widctlpar\pnrnot1\adjustright \fs20\lang2057\cgrid {\b\i TBD Note:}{\i Reviewers please help check if there is any un
+necessary function or something missing from this figure. For example, is there any interaction between RM and GPS as well as RM and CSU?
+\par }\pard \li990\sb60\sa60\widctlpar\pnrnot1\adjustright {\ul\revised\revauth1\revdttm1714043944 Ian advised that RR layer not be linked with the GPS system. Refer to Ian\rquote s comment 1, Appendix A.}{\ul\revised\revauth1\revdttm1714043943
+\par }\pard \sb60\sa60\widctlpar\adjustright {\ul Description of data flows related to module RM with reference to Figure 2-1:
+\par }\pard \qj\fi-1080\li1080\sb60\sa60\widctlpar\adjustright {OAM I/F\tab Definition of the interface between module RM and the SNMP MIB Controller module. The SNMP MIB Controller module is to define this I/F and thus bears its ownership.
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {OAM I/F is composed of da
+ta flows i.e. messages, message-passing mechanism as well as data structures used to carry these data flows over the RM-OA&M border. This holds true for all the I/Fs described in this subsection and will not be repeated any more in the description of thes
+e I/Fs.
+\par }\pard \qj\fi-1080\li1080\sb60\sa60\widctlpar\adjustright {RM I/F\tab \tab
+Definition of the interface between module RM and the Mobility Management module as well as the Call Control module. This I/F will be defined in this document and thus module RM owns this I/F.
+\par ED I/F\tab \tab Definition of the interface between modu
+le RM and the RIL3-RR Encoder/Decoder module. The latter module is to define and own this I/F. In fact, the RIL3-RR Encoder/Decoder module is to be an element of a functional bundle of modules RIL3 Encoder/Decoder, RIL3-MM Encoder/Decoder and RIL3-CC Enc
+oder/Decoder. The bundle may be named module RIL3 Encoder/Decoder.
+\par DL I/F\tab \tab Definition of the interface between module RM and the RIL3 Message Delivery module. This I/F is to inherit all the APIs provided in [2]\emdash GSM LAPDm Module API User Reference Manual and
+ furthermore introduce APIs associated with access to the IRT table.}{\i
+\par }\pard\plain \s42\qj\fi-1080\li1080\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {MPH I/F\tab \tab
+Definition of the interface between module RM and the DSP Interface Driver module. The DSP Interface Driver module is to give the definition of this I/F and thus bears the ownership of this I/F.
+\par }\pard \s42\qj\li1080\sb60\sa60\widctlpar\adjustright {Firstly, MPH I/F should conform to [5]\emdash BTS-BSC Layer 3 I/F and [6]\emdash
+BSS-MSC Layer 3 I/F to pass all the related messages received from the Host Interface Driver Module at the TI DSP side up to RM via the MPH-prefixed primitives defined in [4]\emdash
+Layer 1 General. Secondly, relevant messages used to command hardware components may be passed to the DSP Interface Driver module which in turn effects them through operation on related hardware components.
+\par }\pard \s42\qj\fi-990\li2070\sb60\sa60\widctlpar\adjustright {\b\i TBD Note:}{\i Reviewers please give you comment on the messages used to command or arm hardware components}{. }{\i Alternatively, another module may be added for this purpose if needed.
+
+\par {\*\bkmkstart _Toc432248053}{\listtext\pard\plain\s2 \b\i\f1\lang2057\cgrid \hich\af1\dbch\af0\loch\f1 2.2\tab}}\pard\plain \s2\sb240\sa60\keepn\widctlpar\ls1\ilvl1\outlinelevel1\adjustright \b\lang2057\cgrid {\i\f1 State Machine{\*\bkmkend _Toc432248053}
+
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {State Machine(SM) is used to describe the dynamic behaviour of module RM. The SM for RM is derived out of [1]\emdash PocketBTS Software Architecture, [7]\emdash
+GSM 04.08/RR Signalling Procedures, [8]\emdash GSM 03.09 Handover Procedures, [9]\emdash GSM 11.23/Handover Test Cases and [10]\emdash
+AireCore/Handover Signalling. The resulted STD description of the SM shown as in Figure 2-2 but the following points are assumed for this SM:
+\par }\pard \qj\fi-360\li360\sb60\sa60\widctlpar\adjustright {{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab RM establishes an air connection as per logical/functional c
+hannel basis. That is, the connection associated with one channel is independent of that of another. Thus all the air connections are equally and independently handled in the RM module. Handover functionality is assumed to be resident inside the Mobiliby
+Management module according to [1]\emdash PocketBTS Software Architecture.
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \qj\fi-360\li360\sb60\sa60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls109\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls109\adjustright {
+Only non-synchronized cell case handover is supported. Other cases may be considered for later PocketBTS Releases. It depends.
+\par }\pard \qj\sb60\sa60\widctlpar\adjustright {\lang1024 {\shp{\*\shpinst\shpleft7725\shptop3704\shpright7830\shpbottom7754\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz150\shplid1093
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 1}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}
+{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8342\dpline\dpptx0\dppty0\dpptx105\dppty4050\dpx7725\dpy3704\dpxsize105\dpysize4050\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft7230\shptop3719\shpright7230\shpbottom4709\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz149\shplid1094{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}
+{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8341\dpline\dpptx0\dppty0\dpptx0\dppty990
+\dpx7230\dpy3719\dpxsize0\dpysize990\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft5605\shptop3179\shpright6690\shpbottom3449\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz148\shplid1095
+{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn dxTextLeft}{\sv 91440}}{\sp{\sn dyTextTop}{\sv 45720}}{\sp{\sn dxTextRight}{\sv 91440}}{\sp{\sn dyTextBottom}{\sv 45720}}
+{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 1085}}{\sp{\sn geoBottom}{\sv 270}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10
+;(1085,0);(744,11);(403,22);(245,60);(87,98);(0,190);(140,225);(280,260);(682,265);(1085,270)}}{\sp{\sn pSegmentInfo}{\sv 2;9;16384;44288;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}
+{\sp{\sn fillType}{\sv 0}}{\sp{\sn fillColor}{\sv 16777215}}{\sp{\sn fillOpacity}{\sv 65536}}{\sp{\sn fillBackColor}{\sv 16777215}}{\sp{\sn fillBackOpacity}{\sv 65536}}{\sp{\sn fillCrMod}{\sv 536870912}}{\sp{\sn fillBlipFlags}{\sv 0}}
+{\sp{\sn fillWidth}{\sv 0}}{\sp{\sn fillHeight}{\sv 0}}{\sp{\sn fillAngle}{\sv 0}}{\sp{\sn fillFocus}{\sv 0}}{\sp{\sn fillToLeft}{\sv 0}}{\sp{\sn fillToTop}{\sv 0}}{\sp{\sn fillToRight}{\sv 0}}{\sp{\sn fillToBottom}{\sv 0}}{\sp{\sn fillRectLeft}{\sv 0}}
+{\sp{\sn fillRectTop}{\sv 0}}{\sp{\sn fillRectRight}{\sv 0}}{\sp{\sn fillRectBottom}{\sv 0}}{\sp{\sn fillDztype}{\sv 0}}{\sp{\sn fillShadePreset}{\sv 0}}{\sp{\sn fillOriginX}{\sv 0}}
+{\sp{\sn fillOriginY}{\sv 0}}{\sp{\sn fillShapeOriginX}{\sv 0}}{\sp{\sn fillShapeOriginY}{\sv 0}}{\sp{\sn fillShadeType}{\sv 1073741827}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fHitTestFill}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fillUseRect}{\sv 0}}
+{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}
+{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}
+{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}
+{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}
+{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn c3DSpecularAmt}{\sv 0}}{\sp{\sn c3DDiffuseAmt}{\sv 65536}}{\sp{\sn c3DShininess}{\sv 5}}
+{\sp{\sn c3DEdgeThickness}{\sv 12700}}{\sp{\sn c3DExtrudeForward}{\sv 0}}{\sp{\sn c3DExtrudeBackward}{\sv 457200}}{\sp{\sn c3DExtrudePlane}{\sv 0}}{\sp{\sn c3DExtrusionColor}{\sv 268435703}}{\sp{\sn c3DCrMod}{\sv 536870912}}
+{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn c3DYRotationAngle}{\sv 0}}{\sp{\sn c3DXRotationAngle}{\sv 0}}{\sp{\sn c3DRotationAxisX}{\sv 100}}
+{\sp{\sn c3DRotationAxisY}{\sv 0}}{\sp{\sn c3DRotationAxisZ}{\sv 0}}{\sp{\sn c3DRotationAngle}{\sv 0}}{\sp{\sn c3DRotationCenterX}{\sv 0}}{\sp{\sn c3DRotationCenterY}{\sv 0}}{\sp{\sn c3DRotationCenterZ}{\sv 0}}
+{\sp{\sn c3DRenderMode}{\sv 0}}{\sp{\sn c3DTolerance}{\sv 30000}}{\sp{\sn c3DXViewpoint}{\sv 1250000}}{\sp{\sn c3DYViewpoint}{\sv -1250000}}{\sp{\sn c3DZViewpoint}{\sv 9000000}}{\sp{\sn c3DOriginX}{\sv 32768}}
+{\sp{\sn c3DOriginY}{\sv -32768}}{\sp{\sn c3DSkewAngle}{\sv -8847360}}{\sp{\sn c3DSkewAmount}{\sv 50}}{\sp{\sn c3DAmbientIntensity}{\sv 20000}}{\sp{\sn c3DKeyX}{\sv 50000}}{\sp{\sn c3DKeyY}{\sv 0}}{\sp{\sn c3DKeyZ}{\sv 10000}}
+{\sp{\sn c3DKeyIntensity}{\sv 38000}}{\sp{\sn c3DFillX}{\sv -50000}}{\sp{\sn c3DFillY}{\sv 0}}{\sp{\sn c3DFillZ}{\sv 10000}}{\sp{\sn c3DFillIntensity}{\sv 38000}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}
+{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8340\dppolygon\dppolycount44\dpptx1083\dppty0\dpptx957\dppty4\dpptx832\dppty9
+\dpptx710\dppty14\dpptx653\dppty16\dpptx595\dppty20\dpptx542\dppty23\dpptx490\dppty27\dpptx441\dppty32\dpptx394\dppty36\dpptx352\dppty41\dpptx312\dppty47\dpptx276\dppty53\dpptx245\dppty60\dpptx215\dppty67\dpptx189\dppty76\dpptx165\dppty86\dpptx142\dppty96
+\dpptx122\dppty108\dpptx106\dppty119\dpptx92\dppty131\dpptx82\dppty143\dpptx73\dppty155\dpptx69\dppty167\dpptx71\dppty178\dpptx75\dppty189\dpptx85\dppty199\dpptx99\dppty209\dpptx116\dppty217\dpptx141\dppty224\dpptx170\dppty230\dpptx205\dppty236
+\dpptx245\dppty241\dpptx290\dppty245\dpptx340\dppty249\dpptx394\dppty252\dpptx451\dppty255\dpptx514\dppty258\dpptx578\dppty260\dpptx644\dppty262\dpptx713\dppty264\dpptx786\dppty265\dpptx932\dppty267\dpptx1083\dppty269
+\dpx5605\dpy3179\dpxsize1085\dpysize270\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1830\shptop3029\shpright5085\shpbottom3494\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz147\shplid1096{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn dxTextLeft}{\sv 91440}}{\sp{\sn dyTextTop}{\sv 45720}}{\sp{\sn dxTextRight}{\sv 91440}}{\sp{\sn dyTextBottom}{\sv 45720}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}
+{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}
+{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 3315}}{\sp{\sn geoBottom}{\sv 495}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10;(0,450);(596,452);(1193,455);(1680,450);(2167,445);(2653,495);(2925,420)
+;(3197,345);(3250,70);(3315,0)}}{\sp{\sn pSegmentInfo}{\sv 2;9;16384;44288;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fillType}{\sv 0}}{\sp{\sn fillColor}{\sv 16777215}}{\sp{\sn fillOpacity}{\sv 65536}}
+{\sp{\sn fillBackColor}{\sv 16777215}}{\sp{\sn fillBackOpacity}{\sv 65536}}{\sp{\sn fillCrMod}{\sv 536870912}}{\sp{\sn fillBlipFlags}{\sv 0}}{\sp{\sn fillWidth}{\sv 0}}{\sp{\sn fillHeight}{\sv 0}}{\sp{\sn fillAngle}{\sv 0}}
+{\sp{\sn fillFocus}{\sv 0}}{\sp{\sn fillToLeft}{\sv 0}}{\sp{\sn fillToTop}{\sv 0}}{\sp{\sn fillToRight}{\sv 0}}{\sp{\sn fillToBottom}{\sv 0}}{\sp{\sn fillRectLeft}{\sv 0}}
+{\sp{\sn fillRectTop}{\sv 0}}{\sp{\sn fillRectRight}{\sv 0}}{\sp{\sn fillRectBottom}{\sv 0}}{\sp{\sn fillDztype}{\sv 0}}{\sp{\sn fillShadePreset}{\sv 0}}{\sp{\sn fillOriginX}{\sv 0}}
+{\sp{\sn fillOriginY}{\sv 0}}{\sp{\sn fillShapeOriginX}{\sv 0}}{\sp{\sn fillShapeOriginY}{\sv 0}}{\sp{\sn fillShadeType}{\sv 1073741827}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fHitTestFill}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fillUseRect}{\sv 0}}
+{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}
+{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}
+{\sp{\sn lineStartArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}
+{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}
+{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}
+{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn c3DSpecularAmt}{\sv 0}}
+{\sp{\sn c3DDiffuseAmt}{\sv 65536}}{\sp{\sn c3DShininess}{\sv 5}}{\sp{\sn c3DEdgeThickness}{\sv 12700}}{\sp{\sn c3DExtrudeForward}{\sv 0}}{\sp{\sn c3DExtrudeBackward}{\sv 457200}}{\sp{\sn c3DExtrudePlane}{\sv 0}}
+{\sp{\sn c3DExtrusionColor}{\sv 268435703}}{\sp{\sn c3DCrMod}{\sv 536870912}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn c3DYRotationAngle}{\sv 0}}
+{\sp{\sn c3DXRotationAngle}{\sv 0}}{\sp{\sn c3DRotationAxisX}{\sv 100}}{\sp{\sn c3DRotationAxisY}{\sv 0}}{\sp{\sn c3DRotationAxisZ}{\sv 0}}{\sp{\sn c3DRotationAngle}{\sv 0}}{\sp{\sn c3DRotationCenterX}{\sv 0}}
+{\sp{\sn c3DRotationCenterY}{\sv 0}}{\sp{\sn c3DRotationCenterZ}{\sv 0}}{\sp{\sn c3DRenderMode}{\sv 0}}{\sp{\sn c3DTolerance}{\sv 30000}}{\sp{\sn c3DXViewpoint}{\sv 1250000}}{\sp{\sn c3DYViewpoint}{\sv -1250000}}
+{\sp{\sn c3DZViewpoint}{\sv 9000000}}{\sp{\sn c3DOriginX}{\sv 32768}}{\sp{\sn c3DOriginY}{\sv -32768}}{\sp{\sn c3DSkewAngle}{\sv -8847360}}{\sp{\sn c3DSkewAmount}{\sv 50}}{\sp{\sn c3DAmbientIntensity}{\sv 20000}}
+{\sp{\sn c3DKeyX}{\sv 50000}}{\sp{\sn c3DKeyY}{\sv 0}}{\sp{\sn c3DKeyZ}{\sv 10000}}{\sp{\sn c3DKeyIntensity}{\sv 38000}}{\sp{\sn c3DFillX}{\sv -50000}}{\sp{\sn c3DFillY}{\sv 0}}{\sp{\sn c3DFillZ}{\sv 10000}}{\sp{\sn c3DFillIntensity}{\sv 38000}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}
+{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8339\dppolygon\dppolycount43\dpptx0\dppty422\dpptx438\dppty424\dpptx864\dppty424\dpptx1073\dppty424\dpptx1271\dppty424\dpptx1469\dppty424
+\dpptx1651\dppty422\dpptx1740\dppty422\dpptx1828\dppty423\dpptx2005\dppty426\dpptx2177\dppty429\dpptx2260\dppty431\dpptx2338\dppty432\dpptx2416\dppty433\dpptx2495\dppty432\dpptx2563\dppty431\dpptx2635\dppty427\dpptx2697\dppty422\dpptx2760\dppty415
+\dpptx2817\dppty406\dpptx2870\dppty394\dpptx2896\dppty386\dpptx2916\dppty379\dpptx2943\dppty369\dpptx2963\dppty360\dpptx2979\dppty349\dpptx3000\dppty337\dpptx3036\dppty312\dpptx3067\dppty285\dpptx3094\dppty256\dpptx3119\dppty225\dpptx3140\dppty195
+\dpptx3162\dppty164\dpptx3176\dppty134\dpptx3192\dppty106\dpptx3208\dppty80\dpptx3219\dppty54\dpptx3224\dppty43\dpptx3234\dppty33\dpptx3239\dppty23\dpptx3244\dppty14\dpptx3250\dppty7\dpptx3255\dppty0\dpx1830\dpy3029\dpxsize3255\dpysize465
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5490\shptop454\shpright6720\shpbottom899\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz146\shplid1097{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn dxTextLeft}{\sv 91440}}{\sp{\sn dyTextTop}{\sv 45720}}{\sp{\sn dxTextRight}{\sv 91440}}{\sp{\sn dyTextBottom}{\sv 45720}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}
+{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}
+{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 1425}}{\sp{\sn geoBottom}{\sv 445}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10;(0,25);(466,12);(933,0);(1140,55);(1347,110);(1425,290);(1245,355)
+;(1065,420);(562,432);(60,445)}}{\sp{\sn pSegmentInfo}{\sv 2;9;16384;44288;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fillType}{\sv 0}}{\sp{\sn fillColor}{\sv 16777215}}{\sp{\sn fillOpacity}{\sv 65536}}
+{\sp{\sn fillBackColor}{\sv 16777215}}{\sp{\sn fillBackOpacity}{\sv 65536}}{\sp{\sn fillCrMod}{\sv 536870912}}{\sp{\sn fillBlipFlags}{\sv 0}}{\sp{\sn fillWidth}{\sv 0}}{\sp{\sn fillHeight}{\sv 0}}{\sp{\sn fillAngle}{\sv 0}}
+{\sp{\sn fillFocus}{\sv 0}}{\sp{\sn fillToLeft}{\sv 0}}{\sp{\sn fillToTop}{\sv 0}}{\sp{\sn fillToRight}{\sv 0}}{\sp{\sn fillToBottom}{\sv 0}}{\sp{\sn fillRectLeft}{\sv 0}}
+{\sp{\sn fillRectTop}{\sv 0}}{\sp{\sn fillRectRight}{\sv 0}}{\sp{\sn fillRectBottom}{\sv 0}}{\sp{\sn fillDztype}{\sv 0}}{\sp{\sn fillShadePreset}{\sv 0}}{\sp{\sn fillOriginX}{\sv 0}}
+{\sp{\sn fillOriginY}{\sv 0}}{\sp{\sn fillShapeOriginX}{\sv 0}}{\sp{\sn fillShapeOriginY}{\sv 0}}{\sp{\sn fillShadeType}{\sv 1073741827}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fHitTestFill}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fillUseRect}{\sv 0}}
+{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}
+{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}
+{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}
+{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}
+{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn c3DSpecularAmt}{\sv 0}}{\sp{\sn c3DDiffuseAmt}{\sv 65536}}{\sp{\sn c3DShininess}{\sv 5}}
+{\sp{\sn c3DEdgeThickness}{\sv 12700}}{\sp{\sn c3DExtrudeForward}{\sv 0}}{\sp{\sn c3DExtrudeBackward}{\sv 457200}}{\sp{\sn c3DExtrudePlane}{\sv 0}}{\sp{\sn c3DExtrusionColor}{\sv 268435703}}{\sp{\sn c3DCrMod}{\sv 536870912}}
+{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn c3DYRotationAngle}{\sv 0}}{\sp{\sn c3DXRotationAngle}{\sv 0}}{\sp{\sn c3DRotationAxisX}{\sv 100}}
+{\sp{\sn c3DRotationAxisY}{\sv 0}}{\sp{\sn c3DRotationAxisZ}{\sv 0}}{\sp{\sn c3DRotationAngle}{\sv 0}}{\sp{\sn c3DRotationCenterX}{\sv 0}}{\sp{\sn c3DRotationCenterY}{\sv 0}}{\sp{\sn c3DRotationCenterZ}{\sv 0}}
+{\sp{\sn c3DRenderMode}{\sv 0}}{\sp{\sn c3DTolerance}{\sv 30000}}{\sp{\sn c3DXViewpoint}{\sv 1250000}}{\sp{\sn c3DYViewpoint}{\sv -1250000}}{\sp{\sn c3DZViewpoint}{\sv 9000000}}{\sp{\sn c3DOriginX}{\sv 32768}}
+{\sp{\sn c3DOriginY}{\sv -32768}}{\sp{\sn c3DSkewAngle}{\sv -8847360}}{\sp{\sn c3DSkewAmount}{\sv 50}}{\sp{\sn c3DAmbientIntensity}{\sv 20000}}{\sp{\sn c3DKeyX}{\sv 50000}}{\sp{\sn c3DKeyY}{\sv 0}}{\sp{\sn c3DKeyZ}{\sv 10000}}
+{\sp{\sn c3DKeyIntensity}{\sv 38000}}{\sp{\sn c3DFillX}{\sv -50000}}{\sp{\sn c3DFillY}{\sv 0}}{\sp{\sn c3DFillZ}{\sv 10000}}{\sp{\sn c3DFillIntensity}{\sv 38000}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}
+{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8338\dppolygon\dppolycount45\dpptx0\dppty25\dpptx149\dppty21\dpptx297\dppty16
+\dpptx441\dppty14\dpptx510\dppty14\dpptx575\dppty14\dpptx640\dppty16\dpptx701\dppty18\dpptx758\dppty21\dpptx811\dppty25\dpptx862\dppty31\dpptx907\dppty37\dpptx949\dppty46\dpptx984\dppty55\dpptx1000\dppty61\dpptx1015\dppty66\dpptx1045\dppty80
+\dpptx1070\dppty98\dpptx1094\dppty115\dpptx1113\dppty135\dpptx1132\dppty157\dpptx1145\dppty178\dpptx1153\dppty201\dpptx1159\dppty223\dpptx1161\dppty245\dpptx1157\dppty267\dpptx1151\dppty288\dpptx1139\dppty307\dpptx1122\dppty325\dpptx1102\dppty340
+\dpptx1075\dppty354\dpptx1043\dppty365\dpptx1004\dppty376\dpptx961\dppty385\dpptx909\dppty394\dpptx856\dppty401\dpptx797\dppty408\dpptx734\dppty414\dpptx667\dppty419\dpptx596\dppty423\dpptx523\dppty427\dpptx449\dppty431\dpptx372\dppty434\dpptx212\dppty439
+\dpptx51\dppty444\dpx5490\dpy454\dpxsize1230\dpysize445\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5580\shptop4694\shpright7215\shpbottom4694\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz145\shplid1098{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}
+{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}
+{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8337\dpline\dpptx1635\dppty0\dpptx0\dppty0\dpx5580\dpy4694\dpxsize1635\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1320\shptop824\shpright4560\shpbottom1679\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz144\shplid1099{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn dxTextLeft}{\sv 91440}}{\sp{\sn dyTextTop}{\sv 45720}}{\sp{\sn dxTextRight}{\sv 91440}}{\sp{\sn dyTextBottom}{\sv 45720}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}
+{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}
+{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 3240}}{\sp{\sn geoBottom}{\sv 855}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;7;(0,630);(75,742);(150,855);(690,750);(1230,645);(2235,322);(3240,0)}}
+{\sp{\sn pSegmentInfo}{\sv 2;7;16384;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fillType}{\sv 0}}{\sp{\sn fillColor}{\sv 16777215}}{\sp{\sn fillOpacity}{\sv 65536}}{\sp{\sn fillBackColor}{\sv 16777215}}
+{\sp{\sn fillBackOpacity}{\sv 65536}}{\sp{\sn fillCrMod}{\sv 536870912}}{\sp{\sn fillBlipFlags}{\sv 0}}{\sp{\sn fillWidth}{\sv 0}}{\sp{\sn fillHeight}{\sv 0}}{\sp{\sn fillAngle}{\sv 0}}{\sp{\sn fillFocus}{\sv 0}}{\sp{\sn fillToLeft}{\sv 0}}
+{\sp{\sn fillToTop}{\sv 0}}{\sp{\sn fillToRight}{\sv 0}}{\sp{\sn fillToBottom}{\sv 0}}{\sp{\sn fillRectLeft}{\sv 0}}{\sp{\sn fillRectTop}{\sv 0}}{\sp{\sn fillRectRight}{\sv 0}}
+{\sp{\sn fillRectBottom}{\sv 0}}{\sp{\sn fillDztype}{\sv 0}}{\sp{\sn fillShadePreset}{\sv 0}}{\sp{\sn fillOriginX}{\sv 0}}{\sp{\sn fillOriginY}{\sv 0}}{\sp{\sn fillShapeOriginX}{\sv 0}}
+{\sp{\sn fillShapeOriginY}{\sv 0}}{\sp{\sn fillShadeType}{\sv 1073741827}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fHitTestFill}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fillUseRect}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}
+{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}
+{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineStartArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}
+{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}
+{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn c3DSpecularAmt}{\sv 0}}{\sp{\sn c3DDiffuseAmt}{\sv 65536}}{\sp{\sn c3DShininess}{\sv 5}}{\sp{\sn c3DEdgeThickness}{\sv 12700}}{\sp{\sn c3DExtrudeForward}{\sv 0}}
+{\sp{\sn c3DExtrudeBackward}{\sv 457200}}{\sp{\sn c3DExtrudePlane}{\sv 0}}{\sp{\sn c3DExtrusionColor}{\sv 268435703}}{\sp{\sn c3DCrMod}{\sv 536870912}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}
+{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn c3DYRotationAngle}{\sv 0}}{\sp{\sn c3DXRotationAngle}{\sv 0}}{\sp{\sn c3DRotationAxisX}{\sv 100}}{\sp{\sn c3DRotationAxisY}{\sv 0}}{\sp{\sn c3DRotationAxisZ}{\sv 0}}
+{\sp{\sn c3DRotationAngle}{\sv 0}}{\sp{\sn c3DRotationCenterX}{\sv 0}}{\sp{\sn c3DRotationCenterY}{\sv 0}}{\sp{\sn c3DRotationCenterZ}{\sv 0}}{\sp{\sn c3DRenderMode}{\sv 0}}{\sp{\sn c3DTolerance}{\sv 30000}}
+{\sp{\sn c3DXViewpoint}{\sv 1250000}}{\sp{\sn c3DYViewpoint}{\sv -1250000}}{\sp{\sn c3DZViewpoint}{\sv 9000000}}{\sp{\sn c3DOriginX}{\sv 32768}}{\sp{\sn c3DOriginY}{\sv -32768}}{\sp{\sn c3DSkewAngle}{\sv -8847360}}
+{\sp{\sn c3DSkewAmount}{\sv 50}}{\sp{\sn c3DAmbientIntensity}{\sv 20000}}{\sp{\sn c3DKeyX}{\sv 50000}}{\sp{\sn c3DKeyY}{\sv 0}}{\sp{\sn c3DKeyZ}{\sv 10000}}{\sp{\sn c3DKeyIntensity}{\sv 38000}}{\sp{\sn c3DFillX}{\sv -50000}}
+{\sp{\sn c3DFillY}{\sv 0}}{\sp{\sn c3DFillZ}{\sv 10000}}{\sp{\sn c3DFillIntensity}{\sv 38000}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}
+{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8336\dppolygon\dppolycount29\dpptx0\dppty629\dpptx31\dppty670\dpptx62\dppty710
+\dpptx83\dppty728\dpptx109\dppty744\dpptx135\dppty758\dpptx171\dppty770\dpptx207\dppty780\dpptx254\dppty787\dpptx306\dppty791\dpptx363\dppty791\dpptx430\dppty787\dpptx508\dppty778\dpptx596\dppty766\dpptx689\dppty750\dpptx798\dppty728\dpptx912\dppty700
+\dpptx1037\dppty669\dpptx1177\dppty633\dpptx1317\dppty594\dpptx1467\dppty551\dpptx1628\dppty505\dpptx1788\dppty456\dpptx1960\dppty405\dpptx2136\dppty350\dpptx2312\dppty295\dpptx2494\dppty238\dpptx2862\dppty120\dpptx3240\dppty0
+\dpx1320\dpy824\dpxsize3240\dpysize855\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1290\shptop1004\shpright4680\shpbottom3119\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz143\shplid1100{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn dxTextLeft}{\sv 91440}}{\sp{\sn dyTextTop}{\sv 45720}}{\sp{\sn dxTextRight}{\sv 91440}}{\sp{\sn dyTextBottom}{\sv 45720}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}
+{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}
+{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 3390}}{\sp{\sn geoBottom}{\sv 2115}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;7;(0,2115);(32,1721);(65,1328);(630,975);(1195,622);(2292,311);(3390,0)}}
+{\sp{\sn pSegmentInfo}{\sv 2;7;16384;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fillType}{\sv 0}}{\sp{\sn fillColor}{\sv 16777215}}{\sp{\sn fillOpacity}{\sv 65536}}{\sp{\sn fillBackColor}{\sv 16777215}}
+{\sp{\sn fillBackOpacity}{\sv 65536}}{\sp{\sn fillCrMod}{\sv 536870912}}{\sp{\sn fillBlipFlags}{\sv 0}}{\sp{\sn fillWidth}{\sv 0}}{\sp{\sn fillHeight}{\sv 0}}{\sp{\sn fillAngle}{\sv 0}}{\sp{\sn fillFocus}{\sv 0}}{\sp{\sn fillToLeft}{\sv 0}}
+{\sp{\sn fillToTop}{\sv 0}}{\sp{\sn fillToRight}{\sv 0}}{\sp{\sn fillToBottom}{\sv 0}}{\sp{\sn fillRectLeft}{\sv 0}}{\sp{\sn fillRectTop}{\sv 0}}{\sp{\sn fillRectRight}{\sv 0}}
+{\sp{\sn fillRectBottom}{\sv 0}}{\sp{\sn fillDztype}{\sv 0}}{\sp{\sn fillShadePreset}{\sv 0}}{\sp{\sn fillOriginX}{\sv 0}}{\sp{\sn fillOriginY}{\sv 0}}{\sp{\sn fillShapeOriginX}{\sv 0}}
+{\sp{\sn fillShapeOriginY}{\sv 0}}{\sp{\sn fillShadeType}{\sv 1073741827}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fHitTestFill}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fillUseRect}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}
+{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}
+{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}
+{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}
+{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn c3DSpecularAmt}{\sv 0}}{\sp{\sn c3DDiffuseAmt}{\sv 65536}}{\sp{\sn c3DShininess}{\sv 5}}{\sp{\sn c3DEdgeThickness}{\sv 12700}}{\sp{\sn c3DExtrudeForward}{\sv 0}}
+{\sp{\sn c3DExtrudeBackward}{\sv 457200}}{\sp{\sn c3DExtrudePlane}{\sv 0}}{\sp{\sn c3DExtrusionColor}{\sv 268435703}}{\sp{\sn c3DCrMod}{\sv 536870912}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}
+{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn c3DYRotationAngle}{\sv 0}}{\sp{\sn c3DXRotationAngle}{\sv 0}}{\sp{\sn c3DRotationAxisX}{\sv 100}}{\sp{\sn c3DRotationAxisY}{\sv 0}}{\sp{\sn c3DRotationAxisZ}{\sv 0}}
+{\sp{\sn c3DRotationAngle}{\sv 0}}{\sp{\sn c3DRotationCenterX}{\sv 0}}{\sp{\sn c3DRotationCenterY}{\sv 0}}{\sp{\sn c3DRotationCenterZ}{\sv 0}}{\sp{\sn c3DRenderMode}{\sv 0}}{\sp{\sn c3DTolerance}{\sv 30000}}
+{\sp{\sn c3DXViewpoint}{\sv 1250000}}{\sp{\sn c3DYViewpoint}{\sv -1250000}}{\sp{\sn c3DZViewpoint}{\sv 9000000}}{\sp{\sn c3DOriginX}{\sv 32768}}{\sp{\sn c3DOriginY}{\sv -32768}}{\sp{\sn c3DSkewAngle}{\sv -8847360}}
+{\sp{\sn c3DSkewAmount}{\sv 50}}{\sp{\sn c3DAmbientIntensity}{\sv 20000}}{\sp{\sn c3DKeyX}{\sv 50000}}{\sp{\sn c3DKeyY}{\sv 0}}{\sp{\sn c3DKeyZ}{\sv 10000}}{\sp{\sn c3DKeyIntensity}{\sv 38000}}{\sp{\sn c3DFillX}{\sv -50000}}
+{\sp{\sn c3DFillY}{\sv 0}}{\sp{\sn c3DFillZ}{\sv 10000}}{\sp{\sn c3DFillIntensity}{\sv 38000}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}
+{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8335\dppolygon\dppolycount27\dpptx0\dppty2115\dpptx11\dppty1966
+\dpptx33\dppty1821\dpptx65\dppty1672\dpptx87\dppty1601\dpptx114\dppty1530\dpptx152\dppty1459\dpptx190\dppty1387\dpptx239\dppty1316\dpptx298\dppty1245\dpptx363\dppty1178\dpptx439\dppty1110\dpptx532\dppty1042\dpptx629\dppty975\dpptx743\dppty910
+\dpptx862\dppty846\dpptx998\dppty782\dpptx1144\dppty717\dpptx1296\dppty656\dpptx1459\dppty592\dpptx1633\dppty531\dpptx1806\dppty474\dpptx1991\dppty413\dpptx2180\dppty352\dpptx2571\dppty233\dpptx2978\dppty118\dpptx3390\dppty0
+\dpx1290\dpy1004\dpxsize3390\dpysize2115\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft4269\shptop9466\shpright4509\shpbottom10241\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz142\shplid1101{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn dxTextLeft}{\sv 91440}}{\sp{\sn dyTextTop}{\sv 45720}}{\sp{\sn dxTextRight}{\sv 91440}}{\sp{\sn dyTextBottom}{\sv 45720}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}
+{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}
+{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 240}}{\sp{\sn geoBottom}{\sv 765}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;7;(240,0);(237,86);(235,173);(195,300);(155,427);(32,688);(0,765)}}
+{\sp{\sn pSegmentInfo}{\sv 2;7;16384;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fillType}{\sv 0}}{\sp{\sn fillColor}{\sv 16777215}}{\sp{\sn fillOpacity}{\sv 65536}}{\sp{\sn fillBackColor}{\sv 16777215}}
+{\sp{\sn fillBackOpacity}{\sv 65536}}{\sp{\sn fillCrMod}{\sv 536870912}}{\sp{\sn fillBlipFlags}{\sv 0}}{\sp{\sn fillWidth}{\sv 0}}{\sp{\sn fillHeight}{\sv 0}}{\sp{\sn fillAngle}{\sv 0}}{\sp{\sn fillFocus}{\sv 0}}{\sp{\sn fillToLeft}{\sv 0}}
+{\sp{\sn fillToTop}{\sv 0}}{\sp{\sn fillToRight}{\sv 0}}{\sp{\sn fillToBottom}{\sv 0}}{\sp{\sn fillRectLeft}{\sv 0}}{\sp{\sn fillRectTop}{\sv 0}}{\sp{\sn fillRectRight}{\sv 0}}
+{\sp{\sn fillRectBottom}{\sv 0}}{\sp{\sn fillDztype}{\sv 0}}{\sp{\sn fillShadePreset}{\sv 0}}{\sp{\sn fillOriginX}{\sv 0}}{\sp{\sn fillOriginY}{\sv 0}}{\sp{\sn fillShapeOriginX}{\sv 0}}
+{\sp{\sn fillShapeOriginY}{\sv 0}}{\sp{\sn fillShadeType}{\sv 1073741827}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fHitTestFill}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fillUseRect}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}
+{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}
+{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}
+{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}
+{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn c3DSpecularAmt}{\sv 0}}{\sp{\sn c3DDiffuseAmt}{\sv 65536}}{\sp{\sn c3DShininess}{\sv 5}}{\sp{\sn c3DEdgeThickness}{\sv 12700}}{\sp{\sn c3DExtrudeForward}{\sv 0}}
+{\sp{\sn c3DExtrudeBackward}{\sv 457200}}{\sp{\sn c3DExtrudePlane}{\sv 0}}{\sp{\sn c3DExtrusionColor}{\sv 268435703}}{\sp{\sn c3DCrMod}{\sv 536870912}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}
+{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn c3DYRotationAngle}{\sv 0}}{\sp{\sn c3DXRotationAngle}{\sv 0}}{\sp{\sn c3DRotationAxisX}{\sv 100}}{\sp{\sn c3DRotationAxisY}{\sv 0}}{\sp{\sn c3DRotationAxisZ}{\sv 0}}
+{\sp{\sn c3DRotationAngle}{\sv 0}}{\sp{\sn c3DRotationCenterX}{\sv 0}}{\sp{\sn c3DRotationCenterY}{\sv 0}}{\sp{\sn c3DRotationCenterZ}{\sv 0}}{\sp{\sn c3DRenderMode}{\sv 0}}{\sp{\sn c3DTolerance}{\sv 30000}}
+{\sp{\sn c3DXViewpoint}{\sv 1250000}}{\sp{\sn c3DYViewpoint}{\sv -1250000}}{\sp{\sn c3DZViewpoint}{\sv 9000000}}{\sp{\sn c3DOriginX}{\sv 32768}}{\sp{\sn c3DOriginY}{\sv -32768}}{\sp{\sn c3DSkewAngle}{\sv -8847360}}
+{\sp{\sn c3DSkewAmount}{\sv 50}}{\sp{\sn c3DAmbientIntensity}{\sv 20000}}{\sp{\sn c3DKeyX}{\sv 50000}}{\sp{\sn c3DKeyY}{\sv 0}}{\sp{\sn c3DKeyZ}{\sv 10000}}{\sp{\sn c3DKeyIntensity}{\sv 38000}}{\sp{\sn c3DFillX}{\sv -50000}}
+{\sp{\sn c3DFillY}{\sv 0}}{\sp{\sn c3DFillZ}{\sv 10000}}{\sp{\sn c3DFillIntensity}{\sv 38000}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}
+{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8334\dppolygon\dppolycount35\dpptx239\dppty0\dpptx238\dppty32\dpptx236\dppty66
+\dpptx234\dppty100\dpptx232\dppty118\dpptx230\dppty137\dpptx228\dppty155\dpptx225\dppty173\dpptx222\dppty193\dpptx218\dppty215\dpptx213\dppty236\dpptx207\dppty258\dpptx201\dppty281\dpptx194\dppty304\dpptx190\dppty316\dpptx186\dppty330\dpptx181\dppty343
+\dpptx176\dppty358\dpptx164\dppty388\dpptx152\dppty420\dpptx138\dppty454\dpptx124\dppty488\dpptx109\dppty524\dpptx94\dppty558\dpptx79\dppty592\dpptx65\dppty625\dpptx51\dppty655\dpptx38\dppty686\dpptx26\dppty712\dpptx21\dppty725\dpptx16\dppty737
+\dpptx11\dppty748\dpptx7\dppty758\dpptx3\dppty766\dpptx0\dppty774\dpx4269\dpy9466\dpxsize240\dpysize775\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft3969\shptop9481\shpright4284\shpbottom10210\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz141\shplid1102{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn dxTextLeft}{\sv 91440}}{\sp{\sn dyTextTop}{\sv 45720}}{\sp{\sn dxTextRight}{\sv 91440}}{\sp{\sn dyTextBottom}{\sv 45720}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}
+{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}
+{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 315}}{\sp{\sn geoBottom}{\sv 720}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;7;(0,720);(11,630);(23,540);(75,420);(127,300);(221,150);(315,0)}}
+{\sp{\sn pSegmentInfo}{\sv 2;7;16384;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fillType}{\sv 0}}{\sp{\sn fillColor}{\sv 16777215}}{\sp{\sn fillOpacity}{\sv 65536}}{\sp{\sn fillBackColor}{\sv 16777215}}
+{\sp{\sn fillBackOpacity}{\sv 65536}}{\sp{\sn fillCrMod}{\sv 536870912}}{\sp{\sn fillBlipFlags}{\sv 0}}{\sp{\sn fillWidth}{\sv 0}}{\sp{\sn fillHeight}{\sv 0}}{\sp{\sn fillAngle}{\sv 0}}{\sp{\sn fillFocus}{\sv 0}}{\sp{\sn fillToLeft}{\sv 0}}
+{\sp{\sn fillToTop}{\sv 0}}{\sp{\sn fillToRight}{\sv 0}}{\sp{\sn fillToBottom}{\sv 0}}{\sp{\sn fillRectLeft}{\sv 0}}{\sp{\sn fillRectTop}{\sv 0}}{\sp{\sn fillRectRight}{\sv 0}}
+{\sp{\sn fillRectBottom}{\sv 0}}{\sp{\sn fillDztype}{\sv 0}}{\sp{\sn fillShadePreset}{\sv 0}}{\sp{\sn fillOriginX}{\sv 0}}{\sp{\sn fillOriginY}{\sv 0}}{\sp{\sn fillShapeOriginX}{\sv 0}}
+{\sp{\sn fillShapeOriginY}{\sv 0}}{\sp{\sn fillShadeType}{\sv 1073741827}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fHitTestFill}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fillUseRect}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}
+{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}
+{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}
+{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}
+{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn c3DSpecularAmt}{\sv 0}}{\sp{\sn c3DDiffuseAmt}{\sv 65536}}{\sp{\sn c3DShininess}{\sv 5}}{\sp{\sn c3DEdgeThickness}{\sv 12700}}{\sp{\sn c3DExtrudeForward}{\sv 0}}
+{\sp{\sn c3DExtrudeBackward}{\sv 457200}}{\sp{\sn c3DExtrudePlane}{\sv 0}}{\sp{\sn c3DExtrusionColor}{\sv 268435703}}{\sp{\sn c3DCrMod}{\sv 536870912}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}
+{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn c3DYRotationAngle}{\sv 0}}{\sp{\sn c3DXRotationAngle}{\sv 0}}{\sp{\sn c3DRotationAxisX}{\sv 100}}{\sp{\sn c3DRotationAxisY}{\sv 0}}{\sp{\sn c3DRotationAxisZ}{\sv 0}}
+{\sp{\sn c3DRotationAngle}{\sv 0}}{\sp{\sn c3DRotationCenterX}{\sv 0}}{\sp{\sn c3DRotationCenterY}{\sv 0}}{\sp{\sn c3DRotationCenterZ}{\sv 0}}{\sp{\sn c3DRenderMode}{\sv 0}}{\sp{\sn c3DTolerance}{\sv 30000}}
+{\sp{\sn c3DXViewpoint}{\sv 1250000}}{\sp{\sn c3DYViewpoint}{\sv -1250000}}{\sp{\sn c3DZViewpoint}{\sv 9000000}}{\sp{\sn c3DOriginX}{\sv 32768}}{\sp{\sn c3DOriginY}{\sv -32768}}{\sp{\sn c3DSkewAngle}{\sv -8847360}}
+{\sp{\sn c3DSkewAmount}{\sv 50}}{\sp{\sn c3DAmbientIntensity}{\sv 20000}}{\sp{\sn c3DKeyX}{\sv 50000}}{\sp{\sn c3DKeyY}{\sv 0}}{\sp{\sn c3DKeyZ}{\sv 10000}}{\sp{\sn c3DKeyIntensity}{\sv 38000}}{\sp{\sn c3DFillX}{\sv -50000}}
+{\sp{\sn c3DFillY}{\sv 0}}{\sp{\sn c3DFillZ}{\sv 10000}}{\sp{\sn c3DFillIntensity}{\sv 38000}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}
+{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8333\dppolygon\dppolycount25\dpptx0\dppty728\dpptx4\dppty694\dpptx9\dppty659
+\dpptx15\dppty624\dpptx22\dppty588\dpptx26\dppty569\dpptx31\dppty550\dpptx36\dppty531\dpptx43\dppty511\dpptx49\dppty490\dpptx57\dppty469\dpptx66\dppty447\dpptx75\dppty424\dpptx85\dppty401\dpptx96\dppty378\dpptx108\dppty353\dpptx121\dppty329
+\dpptx134\dppty304\dpptx149\dppty276\dpptx163\dppty251\dpptx178\dppty224\dpptx211\dppty169\dpptx244\dppty113\dpptx279\dppty57\dpptx314\dppty0\dpx3969\dpy9481\dpxsize315\dpysize729
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shpgrp{\*\shpinst\shpleft5844\shptop10848\shpright6234\shpbottom11023\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz140\shplid1103{\sp{\sn groupLeft}{\sv 7230}}{\sp{\sn groupTop}{\sv 12735}}{\sp{\sn groupRight}{\sv 7620}}
+{\sp{\sn groupBottom}{\sv 12908}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shp{\*\shpinst\shplid1104{\sp{\sn relLeft}{\sv 7305}}{\sp{\sn relTop}{\sv 12735}}{\sp{\sn relRight}{\sv 7620}}
+{\sp{\sn relBottom}{\sv 12878}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1105{\sp{\sn relLeft}{\sv 7275}}{\sp{\sn relTop}{\sv 12750}}{\sp{\sn relRight}{\sv 7590}}{\sp{\sn relBottom}{\sv 12893}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1106{\sp{\sn relLeft}{\sv 7230}}{\sp{\sn relTop}{\sv 12765}}{\sp{\sn relRight}{\sv 7545}}{\sp{\sn relBottom}{\sv 12908}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8332\dppolygon\dppolycount4\dpptx0\dppty0\dpptx390\dppty0\dpptx390\dppty175\dpptx0\dppty175\dpx5844\dpy10848\dpxsize390\dpysize175
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5814\shptop10259\shpright8094\shpbottom11108\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz139\shplid1107{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2818048}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1107}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0\ul Legend:
+
+\par }{\f0 Subscript \ldblquote i\rdblquote : Inbound to RM
+\par }\pard \s27\fi-990\li990\widctlpar\adjustright {\f0 Subscript \ldblquote o\rdblquote : Outboud from RM
+\par : Multiple copies
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8331\dptxbx{\dptxbxtext\pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0\ul Legend:
+\par }{\f0 Subscript \ldblquote i\rdblquote : Inbound to RM
+\par }\pard \s27\fi-990\li990\widctlpar\adjustright {\f0 Subscript \ldblquote o\rdblquote : Outboud from RM
+\par : Multiple copies
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par
+\par }}\dpx5814\dpy10259\dpxsize2280\dpysize849\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5559\shptop-212\shpright5844\shpbottom41\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz137\shplid1108{\sp{\sn shapeType}{\sv 120}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2883584}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1108}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}
+{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain
+\qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 A
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8329\dptxbx{\dptxbxtext\pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 A
+\par }}\dpx5559\dpy-212\dpxsize285\dpysize253\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr153\dpfillbgcg153\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft999\shptop9479\shpright1284\shpbottom9734\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz136\shplid1109{\sp{\sn shapeType}{\sv 120}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 2949120}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1109}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}
+{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain
+\qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 A
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8328\dptxbx{\dptxbxtext\pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 A
+\par }}\dpx999\dpy9479\dpxsize285\dpysize255\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr153\dpfillbgcg153\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft6114\shptop7637\shpright6399\shpbottom7891\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz135\shplid1110{\sp{\sn shapeType}{\sv 120}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 3014656}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1110}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}
+{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain
+\qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 B
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8327\dptxbx{\dptxbxtext\pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 B
+\par }}\dpx6114\dpy7637\dpxsize285\dpysize254\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr153\dpfillbgcg153\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft324\shptop6113\shpright609\shpbottom6367\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz134\shplid1111{\sp{\sn shapeType}{\sv 120}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 3080192}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1111}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}
+{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain
+\qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 B
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8326\dptxbx{\dptxbxtext\pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 B
+\par }}\dpx324\dpy6113\dpxsize285\dpysize254\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr153\dpfillbgcg153\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft624\shptop6243\shpright939\shpbottom6243\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz133\shplid1112{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}
+{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8325\dpline\dpptx0\dppty0\dpptx315\dppty0\dpx624\dpy6243\dpxsize315\dpysize0
+\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft3489\shptop5064\shpright6189\shpbottom5720\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz132\shplid1113
+{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 2025}}
+{\sp{\sn geoBottom}{\sv 535}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;7;(0,25);(558,12);(1117,0);(1455,85);(1793,170);(1909,352);(2025,535)}}{\sp{\sn pSegmentInfo}{\sv 2;7;16384;44288;8193;44288;8193;44032;32768}}
+{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}
+{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}
+{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}
+{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}
+{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}
+{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8324\dppolygon\dppolycount29\dpptx0\dppty31\dpptx276\dppty26\dpptx553\dppty21\dpptx687\dppty20\dpptx821\dppty18\dpptx951\dppty20\dpptx1080\dppty22
+\dpptx1205\dppty26\dpptx1327\dppty31\dpptx1439\dppty38\dpptx1551\dppty47\dpptx1659\dppty58\dpptx1759\dppty70\dpptx1853\dppty86\dpptx1940\dppty104\dpptx2021\dppty125\dpptx2095\dppty148\dpptx2164\dppty174\dpptx2225\dppty202\dpptx2285\dppty233
+\dpptx2337\dppty265\dpptx2384\dppty299\dpptx2432\dppty334\dpptx2471\dppty372\dpptx2509\dppty410\dpptx2544\dppty449\dpptx2579\dppty489\dpptx2640\dppty571\dpptx2700\dppty655\dpx3489\dpy5064\dpxsize2700\dpysize656
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5274\shptop4574\shpright5559\shpbottom4827\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz131\shplid1114{\sp{\sn shapeType}{\sv 120}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 3145728}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1114}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fillColor}{\sv 16751001}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}
+{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain
+\qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 B
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8323\dptxbx{\dptxbxtext\pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 B
+\par }}\dpx5274\dpy4574\dpxsize285\dpysize253\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr153\dpfillbgcg153\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft6114\shptop8877\shpright6984\shpbottom9407\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz130\shplid1115{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 3211264}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1115}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0 HO_COMi
+\par HO_COMo
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8322\dptxbx{\dptxbxtext\pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0 HO_COMi
+\par HO_COMo
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par }}\dpx6114\dpy8877\dpxsize870\dpysize530\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5259\shptop7753\shpright7824\shpbottom8965\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz129\shplid1116{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 1}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineStartArrowhead}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8321\dppolygon\dppolycount33\dpptx0\dppty0\dpptx131\dppty2\dpptx263\dppty6\dpptx390\dppty14\dpptx517\dppty25\dpptx640\dppty39\dpptx763\dppty54
+\dpptx882\dppty74\dpptx997\dppty95\dpptx1112\dppty120\dpptx1223\dppty147\dpptx1330\dppty176\dpptx1432\dppty207\dpptx1535\dppty240\dpptx1633\dppty277\dpptx1724\dppty314\dpptx1814\dppty355\dpptx1900\dppty398\dpptx1978\dppty442\dpptx2056\dppty487
+\dpptx2126\dppty535\dpptx2196\dppty584\dpptx2257\dppty634\dpptx2311\dppty686\dpptx2364\dppty741\dpptx2409\dppty795\dpptx2450\dppty851\dpptx2483\dppty910\dpptx2512\dppty968\dpptx2536\dppty1028\dpptx2553\dppty1088\dpptx2561\dppty1150\dpptx2565\dppty1212
+\dpx5259\dpy7753\dpxsize2565\dpysize1212\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2584\shptop9764\shpright3279\shpbottom10817\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz128\shplid1117{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 1475}}
+{\sp{\sn geoBottom}{\sv 768}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;7;(1475,735);(982,751);(490,768);(245,645);(0,522);(2,261);(5,0)}}{\sp{\sn pSegmentInfo}{\sv 2;7;16384;44288;8193;44288;8193;44032;32768}}
+{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}
+{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}
+{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}
+{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}
+{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}
+{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}
+{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8320\dppolygon\dppolycount27\dpptx695\dppty1006\dpptx608\dppty1015\dpptx523\dppty1019\dpptx439\dppty1021\dpptx401\dppty1019\dpptx361\dppty1016
+\dpptx324\dppty1009\dpptx288\dppty1002\dpptx253\dppty991\dpptx222\dppty975\dpptx191\dppty958\dpptx164\dppty936\dpptx139\dppty912\dpptx115\dppty883\dpptx96\dppty849\dpptx78\dppty812\dpptx62\dppty771\dpptx49\dppty724\dpptx38\dppty676\dpptx29\dppty624
+\dpptx21\dppty569\dpptx16\dppty513\dpptx11\dppty454\dpptx7\dppty392\dpptx3\dppty265\dpptx2\dppty133\dpptx2\dppty0\dpx2584\dpy9764\dpxsize695\dpysize1053
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2979\shptop7171\shpright3669\shpbottom9239\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz127\shplid1118{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 645}}
+{\sp{\sn geoBottom}{\sv 1432}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;7;(15,0);(7,484);(0,968);(105,1200);(210,1432);(427,1413);(645,1395)}}{\sp{\sn pSegmentInfo}{\sv 2;7;16384;44288;8193;44288;8193;44032;32768}}
+{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}
+{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}
+{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}
+{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}
+{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}
+{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}
+{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8319\dppolygon\dppolycount27\dpptx16\dppty0\dpptx13\dppty261\dpptx12\dppty520\dpptx13\dppty768\dpptx15\dppty887\dpptx19\dppty1002\dpptx25\dppty1115
+\dpptx31\dppty1220\dpptx39\dppty1320\dpptx48\dppty1417\dpptx61\dppty1505\dpptx76\dppty1589\dpptx93\dppty1664\dpptx112\dppty1730\dpptx135\dppty1791\dpptx160\dppty1840\dpptx187\dppty1883\dpptx217\dppty1919\dpptx248\dppty1952\dpptx282\dppty1976
+\dpptx318\dppty1996\dpptx355\dppty2009\dpptx394\dppty2019\dpptx434\dppty2025\dpptx517\dppty2025\dpptx601\dppty2022\dpptx689\dppty2012\dpx2979\dpy7171\dpxsize690\dpysize2068
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2604\shptop6123\shpright2994\shpbottom7213\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz126\shplid1119{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 375}}
+{\sp{\sn geoBottom}{\sv 880}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;7;(0,10);(96,5);(193,0);(255,145);(317,290);(355,757);(375,880)}}{\sp{\sn pSegmentInfo}{\sv 2;7;16384;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}
+{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineStartArrowhead}{\sv 1}}
+{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}
+{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}
+{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}
+{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}
+{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8318\dppolygon\dppolycount35\dpptx0\dppty12\dpptx37\dppty10\dpptx74\dppty10\dpptx110\dppty16\dpptx129\dppty21\dpptx146\dppty26\dpptx162\dppty35
+\dpptx179\dppty47\dpptx194\dppty61\dpptx210\dppty77\dpptx225\dppty98\dpptx239\dppty120\dpptx252\dppty149\dpptx264\dppty180\dpptx270\dppty197\dpptx277\dppty218\dpptx282\dppty240\dpptx288\dppty264\dpptx298\dppty317\dpptx308\dppty377\dpptx317\dppty440
+\dpptx327\dppty505\dpptx335\dppty576\dpptx343\dppty645\dpptx350\dppty713\dpptx358\dppty782\dpptx364\dppty846\dpptx370\dppty907\dpptx375\dppty962\dpptx378\dppty988\dpptx380\dppty1013\dpptx383\dppty1036\dpptx385\dppty1055\dpptx387\dppty1073
+\dpptx389\dppty1089\dpx2604\dpy6123\dpxsize390\dpysize1090\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5979\shptop2509\shpright7464\shpbottom2939\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz125\shplid1120{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8317\dppolygon\dppolycount33\dpptx0\dppty0
+\dpptx76\dppty1\dpptx152\dppty2\dpptx226\dppty5\dpptx299\dppty9\dpptx371\dppty14\dpptx442\dppty19\dpptx511\dppty26\dpptx577\dppty34\dpptx644\dppty43\dpptx708\dppty52\dpptx770\dppty63\dpptx829\dppty74\dpptx889\dppty85\dpptx946\dppty98\dpptx998\dppty111
+\dpptx1050\dppty126\dpptx1100\dppty141\dpptx1145\dppty157\dpptx1190\dppty173\dpptx1231\dppty190\dpptx1271\dppty207\dpptx1307\dppty225\dpptx1338\dppty244\dpptx1369\dppty263\dpptx1395\dppty282\dpptx1418\dppty302\dpptx1437\dppty323\dpptx1454\dppty343
+\dpptx1468\dppty365\dpptx1478\dppty386\dpptx1483\dppty408\dpptx1485\dppty430\dpx5979\dpy2509\dpxsize1485\dpysize430\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}
+}}{\shp{\*\shpinst\shpleft6663\shptop2906\shpright8067\shpbottom3741\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz124\shplid1121{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 3276800}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1121}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 S4
+
+\par Traffic
+\par }\pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0 Chn Activated
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8316\dptxbx{\dptxbxtext\pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 S4
+\par Traffic
+\par }\pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0 Chn Activated
+\par }}\dpx6663\dpy2906\dpxsize1404\dpysize835\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft6762\shptop2881\shpright8161\shpbottom3723\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz123\shplid1122{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}
+{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8315\dpellipse
+\dpx6762\dpy2881\dpxsize1399\dpysize842\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft6853\shptop2864\shpright8229\shpbottom3723\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz122\shplid1123{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}
+{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8314\dpellipse
+\dpx6853\dpy2864\dpxsize1376\dpysize859\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft3084\shptop9780\shpright3954\shpbottom10201\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz119\shplid1124{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 3342336}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1124}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\qr\widctlpar\adjustright \f1\fs16\cgrid {\f0 HO_FAILi,
+
+\par HO_FAILo
+\par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8311\dptxbx{\dptxbxtext\pard\plain \s27\qr\widctlpar\adjustright \f1\fs16\cgrid {\f0 HO_FAILi,
+\par HO_FAILo
+\par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par }}\dpx3084\dpy9780\dpxsize870\dpysize421\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft4539\shptop9514\shpright5409\shpbottom9908\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz118\shplid1125{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 3407872}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1125}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0 HO_CMDi
+\par HO_CMDo
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8310\dptxbx{\dptxbxtext\pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0 HO_CMDi
+\par HO_CMDo
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par }}\dpx4539\dpy9514\dpxsize870\dpysize394\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shpgrp{\*\shpinst\shpleft3282\shptop10187\shpright4923\shpbottom11230\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz117\shplid1126{\sp{\sn groupLeft}{\sv 2928}}{\sp{\sn groupTop}{\sv 8601}}{\sp{\sn groupRight}{\sv 4734}}
+{\sp{\sn groupBottom}{\sv 9267}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shp{\*\shpinst\shplid1127{\sp{\sn relLeft}{\sv 3147}}{\sp{\sn relTop}{\sv 8601}}{\sp{\sn relRight}{\sv 4734}}
+{\sp{\sn relBottom}{\sv 9254}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 17}}}}{\shp{\*\shpinst\shplid1128{\sp{\sn relLeft}{\sv 3043}}{\sp{\sn relTop}{\sv 8622}}
+{\sp{\sn relRight}{\sv 4656}}{\sp{\sn relBottom}{\sv 9254}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}
+{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}
+{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 17}}}}{\shp{\*\shpinst\shplid1129{\sp{\sn relLeft}{\sv 2928}}{\sp{\sn relTop}{\sv 8662}}
+{\sp{\sn relRight}{\sv 4547}}{\sp{\sn relBottom}{\sv 9267}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn lTxid}{\sv 3473408}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}
+{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1129}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}
+{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 17}}{\shptxt \pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 S11
+\par Traffic Chn Suspending}{\lang1033
+\par }}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8309\dppolygon\dppolycount4\dpptx0\dppty0\dpptx1641\dppty0\dpptx1641\dppty1043\dpptx0\dppty1043\dpx3282\dpy10187\dpxsize1641\dpysize1043
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shpgrp{\*\shpinst\shpleft3642\shptop8573\shpright5238\shpbottom9481\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz112\shplid1130{\sp{\sn groupLeft}{\sv 5829}}{\sp{\sn groupTop}{\sv 12765}}{\sp{\sn groupRight}{\sv 6870}}
+{\sp{\sn groupBottom}{\sv 13086}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shp{\*\shpinst\shplid1131{\sp{\sn relLeft}{\sv 5955}}{\sp{\sn relTop}{\sv 12765}}{\sp{\sn relRight}{\sv 6870}}
+{\sp{\sn relBottom}{\sv 13080}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1132{\sp{\sn relLeft}{\sv 5895}}{\sp{\sn relTop}{\sv 12795}}
+{\sp{\sn relRight}{\sv 6825}}{\sp{\sn relBottom}{\sv 13080}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}
+{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}
+{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1133{\sp{\sn relLeft}{\sv 5829}}{\sp{\sn relTop}{\sv 12813}}
+{\sp{\sn relRight}{\sv 6762}}{\sp{\sn relBottom}{\sv 13086}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn lTxid}{\sv 3538944}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}
+{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1133}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}
+{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\shptxt \pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S10
+\par Traffic Mode Established
+\par }}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8304\dppolygon\dppolycount4\dpptx0\dppty0\dpptx1596\dppty0\dpptx1596\dppty908\dpptx0\dppty908\dpx3642\dpy8573\dpxsize1596\dpysize908
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft6294\shptop6696\shpright7794\shpbottom7357\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz111\shplid1134{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 3604480}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1134}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qj\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16\lang1033 MOD MODIFY
+\par }\pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0 NAKi || |TIME_OUTi, ERR_LOGo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8303\dptxbx{\dptxbxtext\pard\plain \qj\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 MOD MODIFY
+\par }\pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0 NAKi || |TIME_OUTi, ERR_LOGo
+\par }}\dpx6294\dpy6696\dpxsize1500\dpysize661\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6264\shptop6509\shpright6264\shpbottom7638\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz110\shplid1135{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8302\dpline\dpptx0\dppty0\dpptx0\dppty1129
+\dpx6264\dpy6509\dpxsize0\dpysize1129\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft3714\shptop5099\shpright4974\shpbottom5671\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz104\shplid1136
+{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn lTxid}{\sv 3670016}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1136}}
+{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt
+\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 RES ASSIGNi,
+\par MOD MODIFYo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8296\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 RES ASSIGNi,
+\par MOD MODIFYo
+\par }}\dpx3714\dpy5099\dpxsize1260\dpysize572\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shpgrp{\*\shpinst\shpleft5478\shptop5590\shpright7179\shpbottom6507\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz103\shplid1137{\sp{\sn groupLeft}{\sv 5829}}{\sp{\sn groupTop}{\sv 12765}}{\sp{\sn groupRight}{\sv 6870}}
+{\sp{\sn groupBottom}{\sv 13086}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shp{\*\shpinst\shplid1138{\sp{\sn relLeft}{\sv 5955}}{\sp{\sn relTop}{\sv 12765}}{\sp{\sn relRight}{\sv 6870}}
+{\sp{\sn relBottom}{\sv 13080}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1139{\sp{\sn relLeft}{\sv 5895}}{\sp{\sn relTop}{\sv 12795}}
+{\sp{\sn relRight}{\sv 6825}}{\sp{\sn relBottom}{\sv 13080}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}
+{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}
+{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1140{\sp{\sn relLeft}{\sv 5829}}{\sp{\sn relTop}{\sv 12813}}
+{\sp{\sn relRight}{\sv 6762}}{\sp{\sn relBottom}{\sv 13086}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn lTxid}{\sv 3735552}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}
+{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1140}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}
+{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\shptxt \pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S6
+\par Activating Traffic Mode
+\par }}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8295\dppolygon\dppolycount4\dpptx0\dppty0\dpptx1701\dppty0\dpptx1701\dppty917\dpptx0\dppty917\dpx5478\dpy5590\dpxsize1701\dpysize917
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1149\shptop8598\shpright1149\shpbottom9493\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz102\shplid1141{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8294\dpline\dpptx0\dppty0\dpptx0\dppty895
+\dpx1149\dpy8598\dpxsize0\dpysize895\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft1179\shptop8752\shpright2334\shpbottom9167\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz101\shplid1142
+{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn lTxid}{\sv 3801088}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1142}}
+{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt
+\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 RF CHN ACKi ||
+\par TIME_OUTi,
+\par
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8293\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 RF CHN ACKi ||
+\par TIME_OUTi,
+\par
+\par }}\dpx1179\dpy8752\dpxsize1155\dpysize415\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shpgrp{\*\shpinst\shpleft288\shptop7660\shpright2364\shpbottom8573\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz100\shplid1143{\sp{\sn groupLeft}{\sv 5829}}{\sp{\sn groupTop}{\sv 12765}}{\sp{\sn groupRight}{\sv 6870}}
+{\sp{\sn groupBottom}{\sv 13086}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shp{\*\shpinst\shplid1144{\sp{\sn relLeft}{\sv 5955}}{\sp{\sn relTop}{\sv 12765}}{\sp{\sn relRight}{\sv 6870}}
+{\sp{\sn relBottom}{\sv 13080}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1145{\sp{\sn relLeft}{\sv 5895}}{\sp{\sn relTop}{\sv 12795}}
+{\sp{\sn relRight}{\sv 6825}}{\sp{\sn relBottom}{\sv 13080}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}
+{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}
+{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1146{\sp{\sn relLeft}{\sv 5829}}{\sp{\sn relTop}{\sv 12813}}
+{\sp{\sn relRight}{\sv 6762}}{\sp{\sn relBottom}{\sv 13086}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn lTxid}{\sv 3866624}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}
+{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1146}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}
+{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\shptxt \pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S9
+\par Deactivating Sig/Traffic Chn
+\par }}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8292\dppolygon\dppolycount4\dpptx0\dppty0\dpptx2076\dppty0\dpptx2076\dppty913\dpptx0\dppty913\dpx288\dpy7660\dpxsize2076\dpysize913
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1779\shptop5091\shpright2199\shpbottom5777\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz99\shplid1147{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8291\dppolygon\dppolycount33\dpptx0\dppty0
+\dpptx22\dppty1\dpptx43\dppty3\dpptx64\dppty8\dpptx85\dppty14\dpptx105\dppty22\dpptx125\dppty31\dpptx144\dppty42\dpptx163\dppty54\dpptx182\dppty68\dpptx200\dppty83\dpptx218\dppty100\dpptx235\dppty117\dpptx251\dppty136\dpptx267\dppty157\dpptx282\dppty178
+\dpptx297\dppty201\dpptx311\dppty225\dpptx324\dppty250\dpptx337\dppty276\dpptx348\dppty303\dpptx360\dppty330\dpptx370\dppty359\dpptx378\dppty389\dpptx387\dppty419\dpptx394\dppty450\dpptx401\dppty482\dpptx407\dppty515\dpptx411\dppty548\dpptx415\dppty582
+\dpptx418\dppty616\dpptx419\dppty651\dpptx420\dppty686\dpx1779\dpy5091\dpxsize420\dpysize686\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shpgrp{\*\shpinst\shpleft933\shptop5659\shpright2649\shpbottom6606\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz98\shplid1148{\sp{\sn groupLeft}{\sv 5829}}{\sp{\sn groupTop}{\sv 12765}}{\sp{\sn groupRight}{\sv 6870}}
+{\sp{\sn groupBottom}{\sv 13086}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shp{\*\shpinst\shplid1149{\sp{\sn relLeft}{\sv 5955}}{\sp{\sn relTop}{\sv 12765}}{\sp{\sn relRight}{\sv 6870}}
+{\sp{\sn relBottom}{\sv 13080}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1150{\sp{\sn relLeft}{\sv 5895}}{\sp{\sn relTop}{\sv 12795}}
+{\sp{\sn relRight}{\sv 6825}}{\sp{\sn relBottom}{\sv 13080}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}
+{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}
+{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1151{\sp{\sn relLeft}{\sv 5829}}{\sp{\sn relTop}{\sv 12813}}
+{\sp{\sn relRight}{\sv 6762}}{\sp{\sn relBottom}{\sv 13086}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 3}}{\sp{\sn lTxid}{\sv 3932160}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}
+{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1151}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}
+{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\shptxt \pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S7
+\par Releasing Sig/Traffic Chn
+\par }}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8290\dppolygon\dppolycount4\dpptx0\dppty0\dpptx1716\dppty0\dpptx1716\dppty947\dpptx0\dppty947\dpx933\dpy5659\dpxsize1716\dpysize947
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2193\shptop4776\shpright3409\shpbottom5514\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz97\shplid1152{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 3997696}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1152}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S5
+\par Sig. Mode Established
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8289\dptxbx{\dptxbxtext\pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S5
+\par Sig. Mode Established
+\par }}\dpx2193\dpy4776\dpxsize1216\dpysize738\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2288\shptop4742\shpright3455\shpbottom5498\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz96\shplid1153{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}
+{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8288\dpellipse
+\dpx2288\dpy4742\dpxsize1167\dpysize756\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2373\shptop4721\shpright3504\shpbottom5498\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz95\shplid1154{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}
+{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8287\dpellipse
+\dpx2373\dpy4721\dpxsize1131\dpysize777\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft624\shptop4658\shpright1899\shpbottom5306\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz94\shplid1155{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4063232}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1155}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16\lang1033 RR_REL_REQi,
+\par CHN RELEASEo,
+\par SACCH DE_ACTo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8286\dptxbx{\dptxbxtext\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 RR_REL_REQi,
+\par CHN RELEASEo,
+\par SACCH DE_ACTo
+\par }}\dpx624\dpy4658\dpxsize1275\dpysize648\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft3264\shptop8035\shpright4389\shpbottom8441\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz93\shplid1156{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4128768}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1156}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\qr\widctlpar\adjustright \f1\fs16\cgrid {\f0
+CHN MOD MODIFY ACKi,
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8285\dptxbx{\dptxbxtext\pard\plain \s27\qr\widctlpar\adjustright \f1\fs16\cgrid {\f0 CHN MOD MODIFY ACKi,
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par }}\dpx3264\dpy8035\dpxsize1125\dpysize406\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5049\shptop-53\shpright5544\shpbottom353\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz91\shplid1157{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8283\dppolygon\dppolycount33\dpptx0\dppty0
+\dpptx25\dppty1\dpptx51\dppty2\dpptx75\dppty5\dpptx100\dppty8\dpptx124\dppty13\dpptx147\dppty18\dpptx170\dppty25\dpptx192\dppty32\dpptx215\dppty40\dpptx236\dppty49\dpptx257\dppty59\dpptx276\dppty70\dpptx296\dppty81\dpptx315\dppty93\dpptx333\dppty105
+\dpptx350\dppty119\dpptx367\dppty133\dpptx382\dppty148\dpptx397\dppty163\dpptx410\dppty179\dpptx424\dppty196\dpptx436\dppty212\dpptx446\dppty230\dpptx456\dppty248\dpptx465\dppty266\dpptx473\dppty285\dpptx479\dppty305\dpptx485\dppty324\dpptx489\dppty344
+\dpptx493\dppty364\dpptx494\dppty385\dpptx495\dppty406\dpx5049\dpy-53\dpxsize495\dpysize406\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft4906\shptop1104\shpright5049\shpbottom2137\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz90\shplid1158{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 1}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8282\dppolygon\dppolycount33\dpptx0\dppty0
+\dpptx7\dppty2\dpptx15\dppty5\dpptx22\dppty12\dpptx29\dppty21\dpptx36\dppty33\dpptx43\dppty46\dpptx49\dppty63\dpptx56\dppty81\dpptx62\dppty102\dpptx68\dppty126\dpptx74\dppty150\dpptx80\dppty177\dpptx86\dppty205\dpptx91\dppty236\dpptx96\dppty268
+\dpptx101\dppty302\dpptx106\dppty339\dpptx110\dppty377\dpptx115\dppty415\dpptx119\dppty456\dpptx122\dppty498\dpptx126\dppty540\dpptx129\dppty585\dpptx132\dppty631\dpptx134\dppty678\dpptx137\dppty726\dpptx138\dppty775\dpptx140\dppty825\dpptx141\dppty876
+\dpptx142\dppty927\dpptx143\dppty980\dpptx143\dppty1033\dpx4906\dpy1104\dpxsize143\dpysize1033\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2679\shptop3852\shpright3684\shpbottom4145\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz89\shplid1159{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4194304}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1159}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+DL_EST_INDi
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8281\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 DL_EST_INDi
+\par }}\dpx2679\dpy3852\dpxsize1005\dpysize293\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft1809\shptop3633\shpright2844\shpbottom4753\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz88\shplid1160{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8280\dppolygon\dppolycount33\dpptx0\dppty0
+\dpptx53\dppty2\dpptx106\dppty5\dpptx157\dppty13\dpptx209\dppty23\dpptx258\dppty36\dpptx308\dppty50\dpptx356\dppty68\dpptx402\dppty88\dpptx449\dppty111\dpptx493\dppty136\dpptx537\dppty163\dpptx578\dppty192\dpptx619\dppty222\dpptx659\dppty256
+\dpptx696\dppty290\dpptx732\dppty328\dpptx767\dppty367\dpptx798\dppty409\dpptx830\dppty450\dpptx858\dppty495\dpptx886\dppty539\dpptx911\dppty586\dpptx932\dppty634\dpptx954\dppty685\dpptx972\dppty735\dpptx989\dppty787\dpptx1002\dppty840\dpptx1013\dppty894
+\dpptx1023\dppty950\dpptx1030\dppty1005\dpptx1033\dppty1063\dpptx1035\dppty1120\dpx1809\dpy3633\dpxsize1035\dpysize1120
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1473\shptop2429\shpright2433\shpbottom2860\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz87\shplid1161{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4259840}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1161}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+TIME_OUTi ,
+\par ERR_LOGo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8279\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 TIME_OUTi ,
+\par ERR_LOGo
+\par }}\dpx1473\dpy2429\dpxsize960\dpysize431\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft558\shptop3137\shpright1679\shpbottom3925\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz86\shplid1162{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4325376}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1162}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S3
+\par Sig. Chn
+\par Activated
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8278\dptxbx{\dptxbxtext\pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S3
+\par Sig. Chn
+\par Activated
+\par }}\dpx558\dpy3137\dpxsize1121\dpysize788\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft637\shptop3113\shpright1755\shpbottom3907\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz85\shplid1163{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}
+{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8277\dpellipse
+\dpx637\dpy3113\dpxsize1118\dpysize794\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft709\shptop3084\shpright1824\shpbottom3892\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz84\shplid1164{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}
+{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8276\dpellipse
+\dpx709\dpy3084\dpxsize1115\dpysize808\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1899\shptop-226\shpright3024\shpbottom268\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz83\shplid1165{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 1320}}{\sp{\sn geoBottom}{\sv 345}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;13
+;(0,0);(105,51);(210,103);(300,135);(390,167);(393,180);(540,195);(687,210);(1055,200);(1185,225);(1315,250);(1298,328);(1320,345)}}{\sp{\sn pSegmentInfo}{\sv 2;11;16384;44288;8193;44288;8193;44288
+;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}
+{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}
+{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}
+{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}
+{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn c3DSpecularAmt}{\sv 0}}{\sp{\sn c3DDiffuseAmt}{\sv 65536}}{\sp{\sn c3DShininess}{\sv 5}}
+{\sp{\sn c3DEdgeThickness}{\sv 12700}}{\sp{\sn c3DExtrudeForward}{\sv 0}}{\sp{\sn c3DExtrudeBackward}{\sv 457200}}{\sp{\sn c3DExtrudePlane}{\sv 0}}{\sp{\sn c3DExtrusionColor}{\sv 268435703}}{\sp{\sn c3DCrMod}{\sv 536870912}}
+{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn c3DYRotationAngle}{\sv 0}}{\sp{\sn c3DXRotationAngle}{\sv 0}}{\sp{\sn c3DRotationAxisX}{\sv 100}}
+{\sp{\sn c3DRotationAxisY}{\sv 0}}{\sp{\sn c3DRotationAxisZ}{\sv 0}}{\sp{\sn c3DRotationAngle}{\sv 0}}{\sp{\sn c3DRotationCenterX}{\sv 0}}{\sp{\sn c3DRotationCenterY}{\sv 0}}{\sp{\sn c3DRotationCenterZ}{\sv 0}}
+{\sp{\sn c3DRenderMode}{\sv 0}}{\sp{\sn c3DTolerance}{\sv 30000}}{\sp{\sn c3DXViewpoint}{\sv 1250000}}{\sp{\sn c3DYViewpoint}{\sv -1250000}}{\sp{\sn c3DZViewpoint}{\sv 9000000}}{\sp{\sn c3DOriginX}{\sv 32768}}
+{\sp{\sn c3DOriginY}{\sv -32768}}{\sp{\sn c3DSkewAngle}{\sv -8847360}}{\sp{\sn c3DSkewAmount}{\sv 50}}{\sp{\sn c3DAmbientIntensity}{\sv 20000}}{\sp{\sn c3DKeyX}{\sv 50000}}{\sp{\sn c3DKeyY}{\sv 0}}{\sp{\sn c3DKeyZ}{\sv 10000}}
+{\sp{\sn c3DKeyIntensity}{\sv 38000}}{\sp{\sn c3DFillX}{\sv -50000}}{\sp{\sn c3DFillY}{\sv 0}}{\sp{\sn c3DFillZ}{\sv 10000}}{\sp{\sn c3DFillIntensity}{\sv 38000}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}
+{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8275\dppolygon\dppolycount46\dpptx0\dppty0\dpptx66\dppty54\dpptx101\dppty80
+\dpptx133\dppty107\dpptx164\dppty132\dpptx196\dppty153\dpptx227\dppty175\dpptx256\dppty193\dpptx280\dppty209\dpptx303\dppty223\dpptx320\dppty235\dpptx340\dppty245\dpptx360\dppty253\dpptx385\dppty262\dpptx401\dppty266\dpptx418\dppty271\dpptx437\dppty275
+\dpptx459\dppty278\dpptx484\dppty282\dpptx515\dppty285\dpptx547\dppty286\dpptx583\dppty289\dpptx621\dppty291\dpptx659\dppty292\dpptx740\dppty294\dpptx819\dppty298\dpptx858\dppty299\dpptx895\dppty302\dpptx929\dppty306\dpptx960\dppty309\dpptx986\dppty315
+\dpptx1010\dppty321\dpptx1030\dppty329\dpptx1046\dppty338\dpptx1060\dppty348\dpptx1071\dppty359\dpptx1082\dppty372\dpptx1089\dppty385\dpptx1102\dppty411\dpptx1109\dppty437\dpptx1112\dppty450\dpptx1114\dppty461\dpptx1116\dppty470\dpptx1120\dppty480
+\dpptx1122\dppty487\dpptx1125\dppty493\dpx1899\dpy-226\dpxsize1125\dpysize494\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1314\shptop671\shpright2454\shpbottom1078\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz82\shplid1166{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 1}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8274\dppolygon\dppolycount33\dpptx0\dppty0
+\dpptx58\dppty1\dpptx117\dppty2\dpptx173\dppty5\dpptx230\dppty8\dpptx285\dppty13\dpptx339\dppty18\dpptx392\dppty25\dpptx443\dppty32\dpptx494\dppty40\dpptx544\dppty49\dpptx591\dppty59\dpptx637\dppty70\dpptx682\dppty81\dpptx726\dppty93\dpptx766\dppty105
+\dpptx806\dppty119\dpptx844\dppty133\dpptx879\dppty148\dpptx914\dppty163\dpptx945\dppty180\dpptx976\dppty196\dpptx1003\dppty213\dpptx1027\dppty231\dpptx1051\dppty249\dpptx1071\dppty267\dpptx1089\dppty286\dpptx1104\dppty305\dpptx1116\dppty325
+\dpptx1127\dppty345\dpptx1135\dppty365\dpptx1138\dppty386\dpptx1140\dppty407\dpx1314\dpy671\dpxsize1140\dpysize407\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1209\shptop542\shpright2454\shpbottom982\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz81\shplid1167{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8273\dppolygon\dppolycount33\dpptx0\dppty0
+\dpptx64\dppty1\dpptx127\dppty2\dpptx189\dppty5\dpptx251\dppty9\dpptx311\dppty14\dpptx371\dppty20\dpptx428\dppty27\dpptx484\dppty34\dpptx540\dppty44\dpptx594\dppty54\dpptx645\dppty64\dpptx695\dppty75\dpptx745\dppty87\dpptx793\dppty101\dpptx837\dppty114
+\dpptx880\dppty129\dpptx922\dppty144\dpptx960\dppty161\dpptx998\dppty177\dpptx1032\dppty194\dpptx1066\dppty212\dpptx1096\dppty230\dpptx1121\dppty249\dpptx1147\dppty269\dpptx1169\dppty289\dpptx1189\dppty309\dpptx1205\dppty330\dpptx1219\dppty351
+\dpptx1231\dppty373\dpptx1239\dppty395\dpptx1243\dppty417\dpptx1245\dppty440\dpx1209\dpy542\dpxsize1245\dpysize440\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft483\shptop885\shpright1341\shpbottom1678\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz80\shplid1168{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4390912}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1168}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S12
+\par RM Down
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8272\dptxbx{\dptxbxtext\pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S12
+\par RM Down
+\par }}\dpx483\dpy885\dpxsize858\dpysize793\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5169\shptop1136\shpright5342\shpbottom2176\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz79\shplid1169{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8271\dppolygon\dppolycount33\dpptx0\dppty0
+\dpptx9\dppty2\dpptx18\dppty5\dpptx26\dppty12\dpptx35\dppty22\dpptx43\dppty33\dpptx51\dppty47\dpptx60\dppty63\dpptx67\dppty82\dpptx75\dppty103\dpptx82\dppty126\dpptx90\dppty151\dpptx97\dppty178\dpptx104\dppty206\dpptx110\dppty238\dpptx116\dppty270
+\dpptx122\dppty304\dpptx128\dppty341\dpptx133\dppty379\dpptx139\dppty418\dpptx143\dppty459\dpptx148\dppty501\dpptx152\dppty544\dpptx156\dppty589\dpptx159\dppty636\dpptx162\dppty682\dpptx165\dppty731\dpptx167\dppty780\dpptx169\dppty830\dpptx171\dppty882
+\dpptx172\dppty933\dpptx173\dppty987\dpptx173\dppty1040\dpx5169\dpy1136\dpxsize173\dpysize1040\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft4338\shptop2236\shpright5809\shpbottom3029\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz78\shplid1170{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4456448}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1170}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S2
+\par Activating Sig/Traffic Chn
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8270\dptxbx{\dptxbxtext\pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S2
+\par Activating Sig/Traffic Chn
+\par }}\dpx4338\dpy2236\dpxsize1471\dpysize793\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft4442\shptop2184\shpright5874\shpbottom3012\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz77\shplid1171{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}
+{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8269\dpellipse
+\dpx4442\dpy2184\dpxsize1432\dpysize828\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft4537\shptop2165\shpright5979\shpbottom2967\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz76\shplid1172{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}
+{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8268\dpellipse
+\dpx4537\dpy2165\dpxsize1442\dpysize802\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft3519\shptop584\shpright4569\shpbottom649\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz75\shplid1173{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8267\dpline\dpptx0\dppty0\dpptx1050\dppty65
+\dpx3519\dpy584\dpxsize1050\dpysize65\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft2448\shptop264\shpright3516\shpbottom1013\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz74\shplid1174
+{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn lTxid}{\sv 4521984}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1174}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}
+{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 S0
+
+\par Initializing RM
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8266\dptxbx{\dptxbxtext\pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 S0
+\par Initializing RM
+\par }}\dpx2448\dpy264\dpxsize1068\dpysize749\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft4548\shptop323\shpright5601\shpbottom1129\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz73\shplid1175{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4587520}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1175}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 S1
+
+\par RM Running
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8265\dptxbx{\dptxbxtext\pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 S1
+\par RM Running
+\par }}\dpx4548\dpy323\dpxsize1053\dpysize806\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2409\shptop-234\shpright2784\shpbottom60\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz72\shplid1176{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4653056}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1176}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+INITi
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8264\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 INITi
+\par }}\dpx2409\dpy-234\dpxsize375\dpysize294\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft3639\shptop345\shpright4374\shpbottom661\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz71\shplid1177{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4718592}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1177}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+INIT_OKo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8263\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 INIT_OKo
+\par }}\dpx3639\dpy345\dpxsize735\dpysize316\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6699\shptop525\shpright7824\shpbottom819\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz70\shplid1178{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4784128}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1178}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+PAGEi, PAGEo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8262\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 PAGEi, PAGEo
+\par }}\dpx6699\dpy525\dpxsize1125\dpysize294\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5319\shptop1273\shpright6879\shpbottom1782\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz69\shplid1179{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4849664}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1179}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+CHN_REQi||HO_REQi CHN_ACTo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8261\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 CHN_REQi||HO_REQi CHN_ACTo
+\par }}\dpx5319\dpy1273\dpxsize1560\dpysize509\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft1089\shptop110\shpright1914\shpbottom618\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz68\shplid1180{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4915200}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1180}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0 ERR_RPTo,
+
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 INIT_KOo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8260\dptxbx{\dptxbxtext\pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0 ERR_RPTo,
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 INIT_KOo
+\par }}\dpx1089\dpy110\dpxsize825\dpysize508\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft1884\shptop-427\shpright2027\shpbottom-69\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz67\shplid1181{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 4980736}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1181}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs24\lang1033
+{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 12}{\fldrslt\f3\fs24}}}{\fs24\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8259\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs24\lang1033 {\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 12}{\fldrslt\f3\fs24}}}{\fs24\lang1033
+\par }}\dpx1884\dpy-427\dpxsize143\dpysize358\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft2754\shptop2981\shpright4014\shpbottom3434\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz66\shplid1182{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5046272}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1182}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16\lang1033 CHN_ACT_ACKi,
+\par IMM_ASSIGNo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8258\dptxbx{\dptxbxtext\pard\plain \qc\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 CHN_ACT_ACKi,
+\par IMM_ASSIGNo
+\par }}\dpx2754\dpy2981\dpxsize1260\dpysize453\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft3579\shptop1352\shpright4884\shpbottom2118\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz65\shplid1183{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5111808}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1183}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16\lang1033 TIME_OUTi || CHN_ACT_NAKi,
+\par ERR_LOGo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8257\dptxbx{\dptxbxtext\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 TIME_OUTi || CHN_ACT_NAKi,
+\par ERR_LOGo
+\par }}\dpx3579\dpy1352\dpxsize1305\dpysize766\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft1644\shptop1052\shpright2049\shpbottom1346\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz64\shplid1184{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5177344}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1184}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+INITi
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8256\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 INITi
+\par }}\dpx1644\dpy1052\dpxsize405\dpysize294\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft6024\shptop2244\shpright7284\shpbottom2496\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz63\shplid1185{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5242880}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1185}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+CHN_ACT_ACKi
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8255\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 CHN_ACT_ACKi
+\par }}\dpx6024\dpy2244\dpxsize1260\dpysize252\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5064\shptop3444\shpright6504\shpbottom3862\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz62\shplid1186{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5308416}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1186}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16\lang1033 HO_ACCESSi,
+\par PHYSICAL_INFOo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8254\dptxbx{\dptxbxtext\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 HO_ACCESSi,
+\par PHYSICAL_INFOo
+\par }}\dpx5064\dpy3444\dpxsize1440\dpysize418\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5484\shptop4101\shpright7149\shpbottom4758\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz61\shplid1187{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5373952}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1187}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\qr\widctlpar\adjustright \f1\fs16\cgrid {\f0
+TIME_OUTi, ||
+\par HO_FAILi, HO_FAILo,
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 CHN RELEASEo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8253\dptxbx{\dptxbxtext\pard\plain \s27\qr\widctlpar\adjustright \f1\fs16\cgrid {\f0 TIME_OUTi, ||
+\par HO_FAILi, HO_FAILo,
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 CHN RELEASEo
+\par }}\dpx5484\dpy4101\dpxsize1665\dpysize657\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}}{
+\par }\pard \sb60\sa60\widctlpar\adjustright {
+\par }\pard \qj\sb60\sa60\widctlpar\adjustright {
+\par }{\lang1024 {\shp{\*\shpinst\shpleft2184\shptop165\shpright2754\shpbottom361\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz60\shplid1188{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5439488}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1188}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16\lang1033 RESETi
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8252\dptxbx{\dptxbxtext\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 RESETi
+\par }}\dpx2184\dpy165\dpxsize570\dpysize196\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}}{
+\par
+\par
+\par }\pard\plain \s42\qj\fi-1080\li1080\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par }{\lang1024 {\shp{\*\shpinst\shpleft3729\shptop5\shpright5319\shpbottom428\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz109\shplid1189{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5505024}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1189}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16\lang1033 MOD MODIFY ACKi,
+\par CHN MOD MODIFYo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8301\dptxbx{\dptxbxtext\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 MOD MODIFY ACKi,
+\par CHN MOD MODIFYo
+\par }}\dpx3729\dpy5\dpxsize1590\dpysize423\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}}{
+\par }{\lang1024 {\shp{\*\shpinst\shpleft2445\shptop269\shpright2685\shpbottom644\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz152\shplid1190{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 240}}{\sp{\sn geoBottom}{\sv 375}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;7
+;(0,0);(62,6);(125,12);(165,75);(205,138);(222,256);(240,375)}}{\sp{\sn pSegmentInfo}{\sv 2;7;16384;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}
+{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}
+{\sp{\sn lineWidth}{\sv 9525}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineStartArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}
+{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}
+{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}
+{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8344\dppolygon\dppolycount27\dpptx0\dppty0\dpptx23\dppty2\dpptx46\dppty5\dpptx69\dppty10\dpptx79\dppty13
+\dpptx90\dppty16\dpptx101\dppty20\dpptx111\dppty25\dpptx121\dppty31\dpptx131\dppty38\dpptx140\dppty45\dpptx148\dppty54\dpptx157\dppty64\dpptx164\dppty75\dpptx172\dppty88\dpptx178\dppty101\dpptx185\dppty116\dpptx190\dppty131\dpptx196\dppty148
+\dpptx201\dppty166\dpptx205\dppty184\dpptx210\dppty203\dpptx214\dppty223\dpptx218\dppty244\dpptx225\dppty286\dpptx232\dppty329\dpptx239\dppty374\dpx2445\dpy269\dpxsize240\dpysize375
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5109\shptop17\shpright5484\shpbottom683\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz108\shplid1191{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8300\dppolygon\dppolycount33\dpptx0\dppty0
+\dpptx19\dppty1\dpptx38\dppty3\dpptx57\dppty7\dpptx76\dppty14\dpptx94\dppty21\dpptx112\dppty30\dpptx129\dppty40\dpptx146\dppty52\dpptx163\dppty66\dpptx179\dppty81\dpptx194\dppty97\dpptx209\dppty114\dpptx224\dppty132\dpptx239\dppty152\dpptx252\dppty173
+\dpptx265\dppty195\dpptx278\dppty218\dpptx289\dppty243\dpptx301\dppty267\dpptx311\dppty294\dpptx321\dppty321\dpptx330\dppty348\dpptx338\dppty377\dpptx346\dppty407\dpptx352\dppty437\dpptx358\dppty468\dpptx363\dppty500\dpptx367\dppty532\dpptx371\dppty565
+\dpptx373\dppty598\dpptx374\dppty632\dpptx375\dppty666\dpx5109\dpy17\dpxsize375\dpysize666\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{
+\par }{\lang1024 {\shp{\*\shpinst\shpleft1419\shptop329\shpright2634\shpbottom1186\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz92\shplid1192{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5570560}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1192}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qj\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16\lang1033 DL_REL_INDi ||
+\par DL_REL_CONi ||
+\par TIME_OUTi,
+\par RF CHN RELo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8284\dptxbx{\dptxbxtext\pard\plain \qj\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 DL_REL_INDi ||
+\par DL_REL_CONi ||
+\par TIME_OUTi,
+\par RF CHN RELo
+\par }}\dpx1419\dpy329\dpxsize1215\dpysize857\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft1314\shptop128\shpright1457\shpbottom1313\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz120\shplid1193{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 75}}{\sp{\sn geoBottom}{\sv 900}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;7
+;(75,0);(58,60);(42,120);(30,270);(18,420);(5,795);(0,900)}}{\sp{\sn pSegmentInfo}{\sv 2;7;16384;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}
+{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineMiterLimit}{\sv 524288}}
+{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}
+{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}
+{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}
+{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn c3DSpecularAmt}{\sv 0}}{\sp{\sn c3DDiffuseAmt}{\sv 65536}}{\sp{\sn c3DShininess}{\sv 5}}{\sp{\sn c3DEdgeThickness}{\sv 12700}}{\sp{\sn c3DExtrudeForward}{\sv 0}}
+{\sp{\sn c3DExtrudeBackward}{\sv 457200}}{\sp{\sn c3DExtrudePlane}{\sv 0}}{\sp{\sn c3DExtrusionColor}{\sv 268435703}}{\sp{\sn c3DCrMod}{\sv 536870912}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}
+{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn c3DYRotationAngle}{\sv 0}}{\sp{\sn c3DXRotationAngle}{\sv 0}}{\sp{\sn c3DRotationAxisX}{\sv 100}}{\sp{\sn c3DRotationAxisY}{\sv 0}}{\sp{\sn c3DRotationAxisZ}{\sv 0}}
+{\sp{\sn c3DRotationAngle}{\sv 0}}{\sp{\sn c3DRotationCenterX}{\sv 0}}{\sp{\sn c3DRotationCenterY}{\sv 0}}{\sp{\sn c3DRotationCenterZ}{\sv 0}}{\sp{\sn c3DRenderMode}{\sv 0}}{\sp{\sn c3DTolerance}{\sv 30000}}
+{\sp{\sn c3DXViewpoint}{\sv 1250000}}{\sp{\sn c3DYViewpoint}{\sv -1250000}}{\sp{\sn c3DZViewpoint}{\sv 9000000}}{\sp{\sn c3DOriginX}{\sv 32768}}{\sp{\sn c3DOriginY}{\sv -32768}}{\sp{\sn c3DSkewAngle}{\sv -8847360}}
+{\sp{\sn c3DSkewAmount}{\sv 50}}{\sp{\sn c3DAmbientIntensity}{\sv 20000}}{\sp{\sn c3DKeyX}{\sv 50000}}{\sp{\sn c3DKeyY}{\sv 0}}{\sp{\sn c3DKeyZ}{\sv 10000}}{\sp{\sn c3DKeyIntensity}{\sv 38000}}{\sp{\sn c3DFillX}{\sv -50000}}
+{\sp{\sn c3DFillY}{\sv 0}}{\sp{\sn c3DFillZ}{\sv 10000}}{\sp{\sn c3DFillIntensity}{\sv 38000}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}
+{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8312\dppolygon\dppolycount28\dpptx141\dppty0\dpptx130\dppty30\dpptx118\dppty61
+\dpptx107\dppty95\dpptx95\dppty133\dpptx84\dppty176\dpptx80\dppty201\dpptx74\dppty228\dpptx71\dppty255\dpptx65\dppty286\dpptx61\dppty319\dpptx57\dppty354\dpptx51\dppty395\dpptx48\dppty442\dpptx44\dppty492\dpptx40\dppty548\dpptx34\dppty607\dpptx31\dppty668
+\dpptx23\dppty790\dpptx19\dppty853\dpptx15\dppty912\dpptx13\dppty969\dpptx10\dppty1024\dpptx8\dppty1073\dpptx4\dppty1117\dpptx2\dppty1153\dpptx0\dppty1169\dpptx0\dppty1184\dpx1314\dpy128\dpxsize143\dpysize1185
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2580\shptop269\shpright2685\shpbottom3344\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz151\shplid1194{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 1}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8343\dpline\dpptx105\dppty0\dpptx0\dppty3075
+\dpx2580\dpy269\dpxsize105\dpysize3075\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft4515\shptop310\shpright5954\shpbottom1125\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz106\shplid1195
+{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}
+{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8298\dpellipse\dpx4515\dpy310\dpxsize1439\dpysize815
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft4608\shptop269\shpright6024\shpbottom1125\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz105\shplid1196{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}
+{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8297\dpellipse
+\dpx4608\dpy269\dpxsize1416\dpysize856\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{
+\par }{\lang1024 {\shp{\*\shpinst\shpleft3024\shptop11\shpright4299\shpbottom778\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz115\shplid1197{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5636096}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1197}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0
+RR_REL_REQi || RSL_BREAKi;
+\par CHN RELEASEo,
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 SACCH DE_ACTo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8307\dptxbx{\dptxbxtext\pard\plain \s27\widctlpar\adjustright \f1\fs16\cgrid {\f0 RR_REL_REQi || RSL_BREAKi;
+\par CHN RELEASEo,
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 SACCH DE_ACTo
+\par }}\dpx3024\dpy11\dpxsize1275\dpysize767\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft4413\shptop1\shpright5857\shpbottom782\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz107\shplid1198{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5701632}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1198}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S8
+\par Traffic Mode Activated
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8299\dptxbx{\dptxbxtext\pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 S8
+\par Traffic Mode Activated
+\par }}\dpx4413\dpy1\dpxsize1444\dpysize781\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{
+\par
+\par }{\lang1024 {\shp{\*\shpinst\shpleft4399\shptop71\shpright5044\shpbottom1107\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz113\shplid1199{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 1100}}{\sp{\sn geoBottom}{\sv 675}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;13
+;(1100,0);(962,82);(825,165);(695,210);(565,255);(427,238);(320,270);(213,302);(100,338);(50,405);(0,472);(10,573);(20,675)}}{\sp{\sn pSegmentInfo}{\sv 2;11;16384;44288;8193;44288;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}
+{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}
+{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}
+{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}
+{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn c3DSpecularAmt}{\sv 0}}{\sp{\sn c3DDiffuseAmt}{\sv 65536}}{\sp{\sn c3DShininess}{\sv 5}}
+{\sp{\sn c3DEdgeThickness}{\sv 12700}}{\sp{\sn c3DExtrudeForward}{\sv 0}}{\sp{\sn c3DExtrudeBackward}{\sv 457200}}{\sp{\sn c3DExtrudePlane}{\sv 0}}{\sp{\sn c3DExtrusionColor}{\sv 268435703}}{\sp{\sn c3DCrMod}{\sv 536870912}}
+{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn c3DYRotationAngle}{\sv 0}}{\sp{\sn c3DXRotationAngle}{\sv 0}}{\sp{\sn c3DRotationAxisX}{\sv 100}}
+{\sp{\sn c3DRotationAxisY}{\sv 0}}{\sp{\sn c3DRotationAxisZ}{\sv 0}}{\sp{\sn c3DRotationAngle}{\sv 0}}{\sp{\sn c3DRotationCenterX}{\sv 0}}{\sp{\sn c3DRotationCenterY}{\sv 0}}{\sp{\sn c3DRotationCenterZ}{\sv 0}}
+{\sp{\sn c3DRenderMode}{\sv 0}}{\sp{\sn c3DTolerance}{\sv 30000}}{\sp{\sn c3DXViewpoint}{\sv 1250000}}{\sp{\sn c3DYViewpoint}{\sv -1250000}}{\sp{\sn c3DZViewpoint}{\sv 9000000}}{\sp{\sn c3DOriginX}{\sv 32768}}
+{\sp{\sn c3DOriginY}{\sv -32768}}{\sp{\sn c3DSkewAngle}{\sv -8847360}}{\sp{\sn c3DSkewAmount}{\sv 50}}{\sp{\sn c3DAmbientIntensity}{\sv 20000}}{\sp{\sn c3DKeyX}{\sv 50000}}{\sp{\sn c3DKeyY}{\sv 0}}{\sp{\sn c3DKeyZ}{\sv 10000}}
+{\sp{\sn c3DKeyIntensity}{\sv 38000}}{\sp{\sn c3DFillX}{\sv -50000}}{\sp{\sn c3DFillY}{\sv 0}}{\sp{\sn c3DFillZ}{\sv 10000}}{\sp{\sn c3DFillIntensity}{\sv 38000}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}
+{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8305\dppolygon\dppolycount33\dpptx644\dppty0\dpptx584\dppty95\dpptx554\dppty140
+\dpptx524\dppty183\dpptx494\dppty224\dpptx466\dppty261\dpptx436\dppty293\dpptx408\dppty322\dpptx393\dppty333\dpptx379\dppty344\dpptx364\dppty351\dpptx350\dppty358\dpptx321\dppty368\dpptx292\dppty376\dpptx264\dppty381\dpptx237\dppty390\dpptx212\dppty399
+\dpptx199\dppty407\dpptx188\dppty414\dpptx140\dppty453\dpptx118\dppty474\dpptx96\dppty497\dpptx75\dppty523\dpptx58\dppty553\dpptx41\dppty583\dpptx29\dppty620\dpptx19\dppty662\dpptx13\dppty706\dpptx9\dppty755\dpptx7\dppty807\dpptx7\dppty863\dpptx8\dppty918
+\dpptx11\dppty1034\dpx4399\dpy71\dpxsize645\dpysize1036\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5169\shptop343\shpright6099\shpbottom783\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz114\shplid1200{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5767168}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1200}}{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}
+{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt \pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {
+\fs16\lang1033 TIME OUTi,
+\par ERR_LOGo
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8306\dptxbx{\dptxbxtext\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 TIME OUTi,
+\par ERR_LOGo
+\par }}\dpx5169\dpy343\dpxsize930\dpysize440\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}
+{\shp{\*\shpinst\shpleft5109\shptop249\shpright6114\shpbottom249\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz116\shplid1201{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 1}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}
+{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8308\dpline\dpptx1005\dppty0\dpptx0\dppty0
+\dpx5109\dpy249\dpxsize1005\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft5114\shptop66\shpright5114\shpbottom276\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz138\shplid1202
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}
+{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8330\dpline\dpptx0\dppty0\dpptx0\dppty210\dpx5114\dpy66\dpxsize0\dpysize210\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{
+\par
+\par
+\par
+\par
+\par
+\par }\pard\plain \s40\qc\sb60\sa60\widctlpar\adjustright \b\fs20\lang2057\cgrid {\lang1024 {\shp{\*\shpinst\shpleft1209\shptop131\shpright2544\shpbottom721\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz121\shplid1203
+{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn lTxid}{\sv 5832704}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1203}}
+{\sp{\sn fillType}{\sv 7}}{\sp{\sn fillBackColor}{\sv 268436208}}{\sp{\sn fillFocus}{\sv 100}}{\sp{\sn fillShadeType}{\sv 1073741835}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn lidRegroup}{\sv 34}}{\shptxt
+\pard\plain \s27\qr\widctlpar\adjustright \f1\fs16\cgrid {\f0 HO_COMi
+\par DL_REL_REQo
+\par SACCH DE_ACTo
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8313\dptxbx{\dptxbxtext\pard\plain \s27\qr\widctlpar\adjustright \f1\fs16\cgrid {\f0 HO_COMi
+\par DL_REL_REQo
+\par SACCH DE_ACTo
+\par }\pard\plain \qr\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033
+\par }}\dpx1209\dpy131\dpxsize1335\dpysize590\dpfillfgcr240\dpfillfgcg2\dpfillfgcb0\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat8\dplinehollow}}}}{
+\par
+\par
+\par
+\par
+\par Figure }{\field{\*\fldinst { STYLEREF 1 \\s }}{\fldrslt {\lang1024 2}}}{\_2 Module RM State Transition Diagram
+\par }\pard\plain \qj\fi-900\li1260\sb60\sa60\widctlpar\pnrnot1\adjustright \fs20\lang2057\cgrid {\b\i\revised\revauth1\revdttm1714043723\crauth1\crdate1714043728 TBD Note: }{\i\revised\revauth1\revdttm1714043723\crauth1\crdate1714043728
+Since phase-2 MS are required to support three of the four handover cases, i.e. excluding the Pseudo-sync case, it means that PocketBTS in support of one of the three handover cases can work functionally }{
+\i\revised\revauth1\revdttm1714043727\crauth1\crdate1714043728 if a }{\i\revised\revauth1\revdttm1714043723\crauth1\crdate1714043728 handover is required. Reviewers please confirm whether PocketBTS needs to support }{
+\i\revised\revauth1\revdttm1714043728\crauth1\crdate1714043728 three or all of the four handover cases.}{\i\revised\revauth1\revdttm1714043928 Linked to Ian\rquote s comment 1, Appendix A.
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \qj\fi-360\li360\sb60\sa60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls107\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls107\adjustright {
+OACSU is not supported. This assumption is in compliance with [1]\emdash PocketBTS Software Architecture. In other words, during the RR Immediate Assignment Procedure stage, SDCCH4 will be assigned to LUP and TCH/F to both MOC and MTC.
+\par }\pard \qj\fi-990\li990\sb60\sa60\widctlpar\adjustright {\b\i\revised\revauth1\revdttm1714043923\crauth1\crdate1714043923 TBD Note:}{\i\revised\revauth1\revdttm1714043923 It is assumed that the follow-on feature will be totally handled by the MM module.}
+{\i\revised\revauth1\revdttm1714043924 It is actually not made visible in Figure 2-2. }{\i\revised\revauth1\revdttm1714043718\crauth1\crdate1714043923 If an MS sent a MM message enclosing a follow-on }{
+\i\revised\revauth1\revdttm1714043721\crauth1\crdate1714043923 request}{\i\revised\revauth1\revdttm1714043718\crauth1\crdate1714043923 , the MM module will not indicate a }{\i\revised\revauth1\revdttm1714043721\crauth1\crdate1714043923 corresponding }{
+\i\revised\revauth1\revdttm1714043718\crauth1\crdate1714043923 follow-on}{\i\revised\revauth1\revdttm1714043721\crauth1\crdate1714043923 indication}{\i\revised\revauth1\revdttm1714043718\crauth1\crdate1714043923 to the established MM connection a}{
+\i\revised\revauth1\revdttm1714043721\crauth1\crdate1714043923 nd hence should not send RR_REL_REQ to the RM module, refer to}{\i\revised\revauth1\revdttm1714043722\crauth1\crdate1714043923 the}{
+\i\revised\revauth1\revdttm1714043721\crauth1\crdate1714043923 S5 state.}{\i\revised\revauth1\revdttm1714043925 Link}{\i\revised\revauth1\revdttm1714043927 ed}{\i\revised\revauth1\revdttm1714043925 to Ian}{\i\revised\revauth1\revdttm1714043927 \rquote
+s comment 4, Appendix A.}{\i\revised\revauth1\revdttm1714043950
+\par }\pard \qj\fi-990\li990\sb60\sa60\widctlpar\pnrnot1\adjustright {\b\i\revised\revauth1\revdttm1714043950\crauth1\crdate1714043971 TBD Note:}{\i\revised\revauth1\revdttm1714043950
+ Regarding Figure 2-2, Bhava suggested that the STD be separated into two SMs, one containing S1, S2 and S12, the other embodying the rest. }{\i\revised\revauth1\revdttm1714043952 The former SM handles }{\i\revised\revauth1\revdttm1714043953
+non-air-through }{\i\revised\revauth1\revdttm1714043952 message}{\i\revised\revauth1\revdttm1714043953 s }{\i\revised\revauth1\revdttm1714043954 like TRX configuration, Slot Activate, etc, the other deals
+ with Um messages. It is also realised that two task-structure may be used in the RM module. One goes with one SM. }{\i\revised\revauth1\revdttm1714043957 Some performance improvement is considered such as the Um-message related SM may}{
+\i\revised\revauth1\revdttm1714043963 }{\i\revised\revauth1\revdttm1714043957 proceed with the assumption that the other SM will succeed in doing BTS-internal mode change.}{\i\revised\revauth1\revdttm1714043961 }{\i\revised\revauth1\revdttm1714043968
+
+\par }\pard \qj\li990\sb60\sa60\widctlpar\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043968 Action}{\i\revised\revauth1\revdttm1714043969 s}{\i\revised\revauth1\revdttm1714043968 : }{\i\revised\revauth1\revdttm1714043961
+The RM control flow will be driven in terms of }{\i\revised\revauth1\revdttm1714043962 the }{\i\revised\revauth1\revdttm1714043961 two}{\i\revised\revauth1\revdttm1714043962 -}{\i\revised\revauth1\revdttm1714043961
+SM framework as implied in Code 2-1 with attention put to reduce the interaction between the two SMs.}{\i\revised\revauth1\revdttm1714043963 The one-task running choice will be }{\i\revised\revauth1\revdttm1714043968 selected as sugges
+ted in [1]-PocketBTS Software Architecture for the PocketBTS Pre-Alpha Release but }{\i\revised\revauth1\revdttm1714043969 the RM design will be made adaptable to this possible two-task structure also considering Ian}{
+\i\revised\revauth1\revdttm1714043970 \rquote s comment 11, Appendix A.}{\i\revised\revauth1\revdttm1714043717\crauth1\crdate1714043923
+\par }\pard \qj\widctlpar\adjustright {
+\par {\*\bkmkstart _Toc432248054}{\listtext\pard\plain\s2 \b\i\f1\lang2057\cgrid \hich\af1\dbch\af0\loch\f1 2.3\tab}}\pard\plain \s2\sa60\keepn\widctlpar\ls1\ilvl1\outlinelevel1\adjustright \b\lang2057\cgrid {\i\f1 High-Level Decomposition
+{\*\bkmkend _Toc432248054}
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+This design adopts the state-centred logic organisation to decompose the RM module to a series of sub-modules. The following sub-modules are thus fallen off the STD shown in Figure 2-2 naturally.
+\par With reference to the STD depicted in Figure 2-2:
+\par }{\ul Sub-module: RM_IntializingRM
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\tx1080\adjustright \i\fs20\lang2057\cgrid {\i0 This sub-module corresponds to the S0 Initialising RM state.
+\par This sub-module retrieves the TRX/Time-Slot channel configuration data from the SNMP MIB Controller and then accordingly commands the DSP hardware via MPH I/F into th
+is channel configuration. Broadcast information on BCCH i.e. SYSTEM INFORMATION messages used is part of the configuration data retrieved from the SNMP MIB Controller.
+\par This sub-module usually comes to play at the very beginning each time RM module is started or re-restarted. But it may function half way once RM is notified of any change in the channel configuration.
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_RMRunning
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S1 RM Running state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 This sub-module groups all the processing logic of the messag
+es arriving at the S1 RM Running state. The messages consist of OA&M Reset (RESETi), MM Page Request (PAGEi), MM Handover Request (HO_REQi) and mobile Channel Request (CHN_REQi).
+\par The processing logic will result in sending of relevant messages to other modules such as LAPDm, MM, DSP Interface Driver as well as the OA&M module for report of some error situations encountered during of the RM operation.
+\par Any time the OA&M function may send a reset command (RESETi) to module RM. RESETi is captured first by this sub-module which then disables itself and enters the S13 RM Down state.
+\par For each PAGEi arriving at the S1 RM Running state, sub-module RM_RMRunning
+sends down a page request (PAGEo) via DL_UNIT_DATA_REQ and at the same time remember the association between the paged mobile exactly IMSI and the assigned MCSM. MCSM is sent over from MM as parameter of PAGEi.
+\par For any channel request (CHN_REQi) received from mobiles, RM_RMRunning assigns and activates either a SDCCH/4 channel (for LUP) or a TCH/F channel (for MOC and MTC).
+\par }\pard \s56\qj\fi-990\li2070\sb60\sa60\widctlpar\adjustright {\b TDB Note}{: I assume that GSM Specification not allow assignment of a TCH/F to a mobile for LUP purpose. Reviewers please correct me or confirm my understanding.}{
+\revised\revauth1\revdttm1714043972
+\par }\pard \s56\qj\fi-990\li2070\sb60\sa60\widctlpar\pnrnot1\adjustright {\b\revised\revauth1\revdttm1714043972 TBD Note}{\revised\revauth1\revdttm1714043972\crauth1\crdate1714043972 :}{\revised\revauth1\revdttm1714043972 With reference to [}{
+\revised\revauth1\revdttm1714043977 10]\emdash PocketBTS PreAlpha Call Processing Flows, }{\revised\revauth1\revdttm1714043972 Bhava is concerned that }{\revised\revauth1\revdttm1714043977
+Page Request issued from CM may not be good to carry MCSM. In fact, it is possible that}{\revised\revauth1\revdttm1714043978 a }{\revised\revauth1\revdttm1714043977 page reques}{\revised\revauth1\revdttm1714043978 t}{\revised\revauth1\revdttm1714043977
+ may not advance}{\revised\revauth1\revdttm1714043979 into a MTC finally if the called mobile is not reachable at this moment. Thus, so-early assignment of }{\revised\revauth1\revdttm1714043980 a }{\revised\revauth1\revdttm1714043979 MCSM }{
+\revised\revauth1\revdttm1714043980 may get rid of other reachable mobiles}{\revised\revauth1\revdttm1714043982 \rquote chance to receive their terminated calls.}{\revised\revauth1\revdttm1714043983 Thanks for the good point. If we are not to do this}{
+\revised\revauth1\revdttm1714043985 now}{\revised\revauth1\revdttm1714043983 , it should be covered in future releases.}{\revised\revauth1\revdttm1714043982 }{
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_ActivatingSigTrafficCh
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S2 Activating Sig/Traffic Chn state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 This sub-module processes the messages arriving at the S2 Activating Sig/Traffic Chn state and sends out relevant messages t
+o other relevant modules if needed. There are three possible messages coming to the S2 Activating Sig./Traffic Chn state. They are either positive or negative acknowledgements to the channel activation requests triggered by either channel requests from mo
+biles or handover requests from MM.
+\par The S2 Activating Sig/Traffic Chn state is air-link specific, each air-link corresponding to its own S2 state. If a negative acknowledgement received or no acknowledgement within a certain period, the establishment of the
+ concerned air-link is terminated and its state machine leaves S2 for the S1 RM Running state.
+\par If a positive acknowledgement is received , the state machine switches to either S3 Sig Chn Activated state or S4 Traffic Chn Activated state, which depends on why the air-link establishment is triggered, for handover or the others.
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_SigChnActivated
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S3 Sig Chn Activated state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 This sub-module monitors the arrival of DL_EST_INDi from module LAPDm and then changes t
+he SM state to the S6 Sig Mode Established state. The DL_EST_INDi is triggered by a corresponding SABM frame received at the LAPDm module and indicates the successful establishment of an acknowledged-mode L2 link. If there is no such a DL_EST_INDi coming
+within a certain time, the SM will return to S1 RM Running state.
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_TrafficChnActivated
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S4 Traffic Chn Activated state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 This sub-module processes all the incoming messages to the S4 state. It responds to the H
+andover Access (HO_ACCESSi) messages from mobile with Physical Information messages (PH_INFOi) and waits for either Handover Failure message (HO_FAILi) from MM or Handover Complete message (HO_COMi) from mobile. If neither HO_FAILi nor HO COMi received wi
+thin a certain time, the air-link establishment for the handover is terminated and the SM returns to the S1 RM Running state.
+\par }\pard \s56\qj\fi-1080\li2160\sb60\sa60\widctlpar\adjustright {\b TBD Note}{:}{\i0 }{Reviewers please comment if monitoring and handling the DL_EST_INDi originated from DL_RESUME_REQ at mobile make any sense. This message is not shown in Figure 2-2.
+
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_SigModeEstablished
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S5 Sig Mode Established state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 Entrance to the S5 state indicates the establishment of a reliable functional channel between the RM and its mob
+ile peer. The functional channel could be either main signalling channel (SAPI=0) i.e. SDCCH or FACCH or associated channel i.e. SACCH (SAPI=3). Sub-module RM_SigModeEstablished attends any arrival of messages coming to the S5 state and process them app
+ropriately.
+\par For a LUP call or a supplementary call, the SM will leave the S5 state after the call finishes and start to release the air-link. For a MOC or MTC call, the SM may advance further to establish a traffic mode after receiving a Resource Assign (R
+ES ASSIGNi) from module CM.
+\par }\pard \s56\qj\fi-990\li2070\sb60\sa60\widctlpar\pnrnot1\adjustright {\b TBD Note}{: Reviewers please check if the carry-over of the RES ASSIGNi from CM to RM needs the relay of module MM. This may be already out of the RM\rquote
+s scope. I just raise it up for your attention if needed.}{\revised\revauth1\revdttm1714043986 Bhava agrees that the MM module should not be in the picture of processing of a Resource Assign message.}{\deleted\revauthdel1\revdttmdel1714043986 }{
+\deleted\revauthdel1\revdttmdel1714043987
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_ActivatingTrafficMode
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S6 ActivatingTrafficMode state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0
+The SM enters this state after receiving a Resource Assign message (RES ASSIGNi) and sending a corresponding command to L1. Sub-module RM_ActivatingTrafficMode expects to receive either a positive or negative response to the command previously sent down t
+o L1. For either of the two responses or nothing received within a certain period, this sub-module will drive the SM transition to the S8 Traffic Mode Activated state or the S7 Releasing Sig/Traffic Chn as illustrated in Figure 2-2.
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_ReleasingSigTrafficChn
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S7 Releasing Sig/Traffic Chn state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 At the S7 state, the SM waits for a DL_REL_INDi or DL_REL_CONi from the LAPDm module. The DL_REL_INDi is originated from a corresponding DISC frame
+ sent up from mobile but the DL_REL_CONi is locally originated in the LADPm module. After receiving either of the DL_REL_INDi and DL_REL_CONi or neither of them within a certain period, RM_ReleasingSigTrafficChn issues a RF Channel Release command (RF CHN
+ RELo) to L1 to free the previously-commanded hardware state and switches the SM to the S9 Deactivate Sig/Traffic Chn state.
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_TrafficModeActivated
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S8 Traffic Mode Activated state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 The SM waits for the mobile\rquote
+s acknowledgement to the Channel Mode Modify command sent over to it previously. If a positive acknowledgement got, the SM enters the S10 Traffic Mode Established state and the concerned air-link has been successfully adjusted from the signalling only mod
+e
+ to the speech full rate version 1 mode. If no acknowledgement received in a certain time, the SM is to start the release of the physical/logical channel by entering to the S7 Releasing Sig/Traffic Chn state. RM_TrafficModeActivated embodies all the relev
+ant processing logic stated here.
+\par }\pard \s56\qj\fi-900\li1980\sb60\sa60\widctlpar\adjustright {\b TBD Note:}{\i0 }{Reviewers please check if the \ldblquote speech full rate version 1\rdblquote is the correct choice for the time being.
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_DeactivatingSigTrafficChn
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S9 Deactivating Sig/Traffic Chn state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0
+RM_DeactivatingSigTrafficChn waits for the confirmation on the RF Channel Release command sent down to L1 at the S7 Releasing Sig/Traffic Chn state. Then associated the air-link is freed and returned to the free air-link pool for use by subsequent air-
+link requests. If no acknowledgement is received, the air-link is still freed and returned but it may be marked as such for monitoring purpose.
+\par }\pard \s56\qj\fi-990\li2070\sb60\sa60\widctlpar\adjustright {\b TBD Note}{: Reviewers please advise if this time-out case should be report to the OA&M, or just count these time-out happening and report after the count reaches a threshold configured.
+
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_TrafficModeEstablished
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S10 Traffic Mode Established state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 RM_TrafficModeEstablished processes all the events signalled to the S10 su
+ch as release equest (RR_REL_REQi), handover command (HO_CMDi) as well as RSL break (RSL_BREAKi). The sub-module also changes the state of the SM accordingly.
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_TrafficChnSuspending
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S11 Traffic Chn Suspending state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 RM_TrafficChnSuspending is expecting to receive either a Hanover Failure message (HO_FAILi) or a Handover Complete message (HO_COMi), both from mobile.
+\par If a HO_FAILi received from Mobile, the SM will return to the S10 Traffic Mode Established state and at the same time report the HO_FAILi message from mobile to MM or CM.
+\par }\pard \s56\qj\fi-990\li2070\sb60\sa60\widctlpar\adjustright {\b TBD Note:}{ Reviewers please give your opinion on where the RM module should send HO_FAILi message, MM or CM, in the case of the PocketBTS system.
+\par }{\b TBD Note}{: Similar to the descriptio
+n of Sub-module: RM_TrafficChnActivated, does the DL_EST_INDi triggered by DL_RESUME_REQi at Mobile side make sense to the RM design. The handling of the DL_EST_INDi is not considered in the RM module for the time being.
+\par }\pard \s56\qj\li1080\sb60\sa60\widctlpar\adjustright {\i0 If a HO_COMi message received from
+Mobile, the suspending physical/logical channel will be be relesed. RM_TrafficChnSuspending does a local release of the L2 link by issuing a DL_REL_REQi to the LAPDm module and at the same deactivate the SACCH.
+\par }\pard \s56\qj\fi-990\li2070\sb60\sa60\widctlpar\adjustright {\b TBD Note: }{Reviewers please advise if the sta
+te could directly be switched to the S9 Deactivating Sig/Traffic Chn state without deactivating the SACCH functional channel and entering the S7 Releasing Sig/Traffic Chn state.
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_RMDown
+\par }\pard \qj\li1080\sb60\sa60\widctlpar\adjustright {This sub-module corresponds to the S12 RM RM Down state.
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0
+At the R12 state, the RM module is out of service in the aspect of call processing. But RM is still capable of communicating with the OA&M and acts as required by the latter. For example, the OA&M may request the RM to upload data for problem analysis or
+pull back the RM module into service mode by sending an initialising command (INITi) to module RM.
+\par RM_RMDown contains all the relevant processing logic required when the SM is staying at the S12 RM Down state.
+\par }\pard \s56\qj\sb60\sa60\widctlpar\adjustright {\i0 In addition to the above sub-modules, the following sub-modules are strategically introduced:
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_Main
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 This sub-module is planned to be the only entry to the RM module. All messages directed to RM will land at this sub-module. In particular, thi
+s sub-module filters the commands sent over from the OA&M and put them into immediate effect if needed. For a message related to a specific air-link, RM_Main will dispatch the message to the SM corresponding to this specific air-link for further processin
+g. Before dispatching the message out, RM_Main calls the message decoding functionality to decode the message first.
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_Send
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 This sub-module specialises in formatting message as required by the used RTOS i.e. VxWorks and then sends the message out by calling the RTOS\rquote
+ proper ITC mechanism. Therefore, RM_Send is to be the only exit from the RM module.
+\par }\pard \s56\qj\fi-540\li1620\sb60\sa60\widctlpar\adjustright {Note: Collectively, RM_Main and RM_Send form the single-entry-single-exit flow structure and at the same time are good for helping hide RTOS-specific aspect from other sub-modules
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\ul Sub-module: RM_Lib
+\par }\pard\plain \s56\qj\li1080\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0 This sub-module is expected to accommodate those functions common for two or more sub-modules introduced above.
+\par }\pard \s56\qj\fi-990\li2070\sb60\sa60\widctlpar\adjustright {\b TBD Note}{: Similarly, a global library module may be introduced to contain basic functions which are system-wide needed.
+\par {\*\bkmkstart _Toc432248055}{\listtext\pard\plain\s2 \b\i\f1\lang2057\cgrid \hich\af1\dbch\af0\loch\f1 2.4\tab}}\pard\plain \s2\sb240\sa60\keepn\widctlpar\ls1\ilvl1\outlinelevel1\adjustright \b\lang2057\cgrid {\i\f1 Core Data Structures
+{\*\bkmkend _Toc432248055}
+\par }\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {The Core Data Structures are intended to group the following types of core data respectively:
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\sa60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls113\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls113\adjustright {
+Configuration data of both TRX-level and Slot-level.
+\par }\pard \qj\li360\sb60\sa60\widctlpar\adjustright {The data will be download
+ed from the OA&M each time the PocketBTS is powered on and kept until it is powered off. Each time the RM module is initialised, either triggered by PocketBTS power on or commanded by the OA&M, relevant MPH commanding messages are formed based on these c
+onfiguration data and then passed down to L1 to initialise both TRXs and the Slots. The TRXs and Slots are one by one initialised.
+\par With reference to [1]\emdash PocketBTS Software Architecture, it is assumed that TS0 of TRX-0 is configured as Channel Combination Type V i.e. FCCH+SCH+BCCH+CCCH+SDCCH/4 (0\'853) + SACCH (0\'85
+3). The rest of 15 slots are all configured as Channel Combination Type I i.e. TCH/F + FACCH/F + SACCH/F.
+\par The design of Core Data Structures is to centralise/hide the configuration data in one data structure to reduce the impact of the change in TRX/Slot configuration on other parts of the RM module.
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls114\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls114\adjustright {
+BCCH System Information
+\par }\pard \qj\li360\sb60\sa60\widctlpar\adjustright {Store the SYSTEM INFORMATION TYPE messages currently in use. It is assumed that only SYSTEM INFORMATION TYPE 1-6 excluding their possible \ldblquote bis\rdblquote or \ldblquote ter\rdblquote
+ addition be needed for PocketBTS.
+\par }{\b\i TBD Note:}{\i Reviewers please advise if my understanding is correct.
+\par {\pntext\pard\plain\f3\fs20\revised\lang2057\revauth1\revdttm1714043700\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls119\pnrnot1\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls119\pnrnot1\adjustright {\revised\revauth1\revdttm1714043700 SMS-CB Data
+\par }\pard \qj\li360\sb60\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714043700 SMS-CB is to replace the }{2nd}{\revised\revauth1\revdttm1714043701 }{\revised\revauth1\revdttm1714043700 SDCCH/4 }{\revised\revauth1\revdttm1714043701
+on the beacon TS carrying BCCH bursts}{ or the 2}{\super nd}{ SDCCH/8 on a chosen SDCCH/8 signalling TS}{\revised\revauth1\revdttm1714043701 . A independent data structure for buffering SMS-CB data is needed.}{\revised\revauth1\revdttm1714043702
+ SMS-CB data will be passed down by calling DL_UNIT_DATA_REQ}{.
+\par }{\revised\revauth1\revdttm1714043702
+\par }{\b\i\revised\revauth1\revdttm1714043702\crauth1\crdate1714043928 TBD Note:}{\i\revised\revauth1\revdttm1714043702\crauth1\crdate1714043928 Reviewers please confirm that
+\par {\pntext\pard\plain\i\fs20\revised\lang2057\revauth1\revdttm1714043703\crauth1\crdate1714043928\cgrid \hich\af0\dbch\af0\loch\f0 1.\tab}}\pard \qj\fi-90\li1440\sb60\widctlpar\jclisttab\tx1440{\*\pn \pnlvlbody\ilvl0\ls120\pnrnot1
+\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls120\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043703\crauth1\crdate1714043928 SMS-CB is predestined to be on the 3}{\i\revised\super\revauth1\revdttm1714043703\crauth1\crdate1714043928 rd}{
+\i\revised\revauth1\revdttm1714043703\crauth1\crdate1714043928 SDCCH/4 only}{\i\crauth1\crdate1714043928
+\par }\pard \qj\li1800\sb60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {\i Ian confirms that SMS-CB data ride over air via 2}{\i\super nd}{\i SDCCH/4 or SDCCH/8. Thanks. Linked to Ian\rquote s Comment 12, Appendix C.}{
+\i\revised\revauth1\revdttm1714043703\crauth1\crdate1714043928
+\par {\pntext\pard\plain\i\fs20\revised\lang2057\revauth1\revdttm1714043703\crauth1\crdate1714043928\cgrid \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard \qj\fi-90\li1440\sb60\widctlpar\jclisttab\tx1440{\*\pn \pnlvlbody\ilvl0\ls120\pnrnot1
+\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls120\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043703\crauth1\crdate1714043928 SMS-CB data }{\i\revised\revauth1\revdttm1714043704\crauth1\crdate1714043928 has to be}{
+\i\revised\revauth1\revdttm1714043703\crauth1\crdate1714043928 passed down via LAPDm. If not, which way is better ?}{\i\revised\revauth1\revdttm1714043701\crauth1\crdate1714043928
+\par }\pard \li360\sb60\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714043700
+\par {\pntext\pard\plain\f3\fs20\revised\lang2057\revauth1\revdttm1714043705\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls111\pnrnot1\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls111\pnrnot1\adjustright {\revised\revauth1\revdttm1714043705 HO }{\revised\revauth1\revdttm1714043712 R}{\revised\revauth1\revdttm1714043705 equests
+\par }\pard \qj\li360\sb60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot1\pndec }\pnrnot1\adjustright {\revised\revauth1\revdttm1714043705 A }{\revised\revauth1\revdttm1714043911 message }{\revised\revauth1\revdttm1714043705 queue}{
+\revised\revauth1\revdttm1714043911 may be specifically created for buffering handover requests sent over from module MM if needed. An inefficient alternative is }{\revised\revauth1\revdttm1714043916
+mix handover requests with other messages coming to RM.}{\revised\revauth1\revdttm1714043929
+\par Linked to Ian\rquote s comment 6, Appendix A.}{\revised\revauth1\revdttm1714043916
+\par
+\par }\pard \qj\fi-900\li1260\sb60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot1\pndec }\pnrnot1\adjustright {\b\i\revised\revauth1\revdttm1714043916\crauth1\crdate1714043920 TBD}{\b\i\revised\revauth1\revdttm1714043920\crauth1\crdate1714043920 Note}{
+\b\i\revised\revauth1\revdttm1714043916\crauth1\crdate1714043920 :}{\i\revised\revauth1\revdttm1714043916\crauth1\crdate1714043919 Reviewers please evaluate if this makes sense for PocketBTS and later}{
+\i\revised\revauth1\revdttm1714043917\crauth1\crdate1714043919 more powerful BTS products planned}{\i\revised\revauth1\revdttm1714043918\crauth1\crdate1714043919 for the future. Any way the}{
+\i\revised\revauth1\revdttm1714043919\crauth1\crdate1714043919 current}{\i\revised\revauth1\revdttm1714043918\crauth1\crdate1714043919 RM }{\i\revised\revauth1\revdttm1714043919\crauth1\crdate1714043919 design will }{
+\i\revised\revauth1\revdttm1714043918\crauth1\crdate1714043919 take its possible impact on }{\i\revised\revauth1\revdttm1714043919\crauth1\crdate1714043919 RM architecture into consideration just for possible optimisation in the future.}{
+\i\revised\revauth1\revdttm1714043929
+\par }{\i\revised\revauth1\revdttm1714043911\crauth1\crdate1714043919
+\par {\pntext\pard\plain\f3\fs20\revised\lang2057\revauth1\revdttm1714043712\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls111\pnrnot1\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls111\pnrnot1\adjustright {\revised\revauth1\revdttm1714043712 Page Requests
+\par }\pard \qj\li360\sb60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {\revised\revauth1\revdttm1714043712 Page requests received from MM will be }{\revised\revauth1\revdttm1714043907 grouped }{\revised\revauth1\revdttm1714043908
+in module RM }{\revised\revauth1\revdttm1714043712 in terms of their page group separately. Once}{\revised\revauth1\revdttm1714043713 RM receives }{\revised\revauth1\revdttm1714043712 a }{\revised\revauth1\revdttm1714043908 MPH_PAGCH_READY_TO_SEND}{
+\revised\revauth1\revdttm1714043713 indication}{\revised\revauth1\revdttm1714043908 }{\revised\revauth1\revdttm1714043909 for a specific page group }{\revised\revauth1\revdttm1714043908 from the DSP}{\revised\revauth1\revdttm1714043713
+, RM will choose the right page message}{\revised\revauth1\revdttm1714043911 type}{\revised\revauth1\revdttm1714043713 to group as many }{\revised\revauth1\revdttm1714043714 page requests }{\revised\revauth1\revdttm1714043713 as poss}{
+\revised\revauth1\revdttm1714043714 ible of each page group and pass down to L1 in order to increase the paging capacity.}{\revised\revauth1\revdttm1714043930 Linked to Ian\rquote s}{\revised\revauth1\revdttm1714043931 and Jan\rquote s}{
+\revised\revauth1\revdttm1714043930 email, Appendix B.
+\par }\pard \qj\li360\sb60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot1\pndec }\pnrnot1\adjustright {\revised\revauth1\revdttm1714043930
+\par }{\revised\revauth1\revdttm1714043909 TBD: Reviewers please confirm that a parameter in MPH_PAGCH_READY_TO_SEND is needed to }{\revised\revauth1\revdttm1714043910 \ldblquote }{\revised\revauth1\revdttm1714043909 express}{
+\revised\revauth1\revdttm1714043910 \rdblquote all the page groups currently ready for }{\revised\revauth1\revdttm1714043911 \ldblquote digesting\rdblquote page messages.}{\revised\revauth1\revdttm1714043930 }{\revised\revauth1\revdttm1714043713
+
+\par }\pard \li360\sb60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot1\pndec }\pnrnot1\adjustright {\revised\revauth1\revdttm1714043707
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls111\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls111
+\ls111\pnrauth1\pnrdate1714043561\pnrstart0\pnrxst1\pnrxst0\pnrxst183\pnrxst240\pnrstop4\pnrstart1\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrstop9\pnrstart2\pnrnfc23\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0
+\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc1\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrstop18\pnrstart3\pnrpnbr1\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0
+\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrstop36\adjustright {SDCCH/4 dedicated channels
+\par }\pard \qj\li360\sa60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {An array of p
+roper structure type is used to organise all the SDCCH/4 channels, each containing two logical/functional channels i.e. DCCH and SACCH. The description of each SDCCH/4 channel contains its resident TRX and TS as well as its associated Channel Combination
+ Type. A flag is used in the description of the SDCCH/4 channel to indicate if the SDCCH/4 is currently engaged in a call.
+\par }\pard \qj\fi-360\li360\sb120\sa60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {\tab Each SDCCH/4 is tagged with a quality rating which is referred to when a new SDCCH/4 channel is requested. The RM module may choose
+a good-quality SDCCH/4 for this request in terms of the rating value.
+\par }\pard \qj\fi-1260\li1260\sb120\sa60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {\tab }{\b\i TBD Note:}{\i
+ Reviewers please advise if the rating consideration for a SDCCH/4 make any sense since this type of channel is not used to carry speech data so far.
+\par {\pntext\pard\plain\f3\fs20\revised\lang2057\revauth1\revdttm1714043561\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls111\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls111\adjustright {\revised\revauth1\revdttm1714043561 SDCCH/8 dedicated channels}{\revised\revauth1\revdttm1714043562
+\par }\pard \qj\li360\sb60\widctlpar\adjustright {\revised\revauth1\revdttm1714043562 In addition to those SDCCH/4 associated with the beacon TS carrying }{\revised\revauth1\revdttm1714043563 BCCH burst}{\revised\revauth1\revdttm1714043564 s}{
+\revised\revauth1\revdttm1714043563 , one of the left}{\revised\revauth1\revdttm1714043564 15}{\revised\revauth1\revdttm1714043563 TSes may }{\revised\revauth1\revdttm1714043564
+be converted forth and back between TCH/F and 8 SDCCH/8 channels if needed. An array of }{\revised\revauth1\revdttm1714043561 proper structure type is }{\revised\revauth1\revdttm1714043566 thus introduced }{\revised\revauth1\revdttm1714043561
+to organise al
+l the SDCCH/8 channels, each containing two logical/functional channels i.e. DCCH and SACCH. The description of each SDCCH/8 channel contains its resident TRX and TS as well as its associated Channel Combination Type. A flag is used in the description o
+f the SDCCH/8 channel to indicate if the SDCCH/8 is currently engaged in a call.
+\par }\pard \qj\li360\sb120\sa60\widctlpar\adjustright {\revised\revauth1\revdttm1714043561 Each SDCCH/8 is tagged with a quality rating which is referred to when a new SDCCH/8 channel is requested. The RM module may choose a good-quality SDCCH/}{
+\revised\revauth1\revdttm1714043567 8}{\revised\revauth1\revdttm1714043561 for this request in terms of the rating value.
+\par }\pard \qj\fi-900\li1260\sb120\widctlpar\adjustright {\b\i\revised\revauth1\revdttm1714043561 TBD Note:}{\b\i\revised\revauth1\revdttm1714043567
+\par {\pntext\pard\plain\i\fs20\revised\lang2057\revauth1\revdttm1714043561\cgrid \hich\af0\dbch\af0\loch\f0 1.\tab}}\pard \qj\fi-360\li763\widctlpar\jclisttab\tx763{\*\pn \pnlvlbody\ilvl0\ls118\pnrnot1\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}
+\ls118\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043561 Reviewers please advise if the rating consideration for a SDCCH/}{\i\revised\revauth1\revdttm1714043562 8}{\i\revised\revauth1\revdttm1714043561
+ make any sense since this type of channel is not used to carry speech data so far.}{\i\revised\revauth1\revdttm1714043595
+\par }\pard \qj\li403\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot1\pndec }\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043571
+\par {\pntext\pard\plain\i\fs20\revised\lang2057\revauth1\revdttm1714043576\cgrid \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard \qj\fi-360\li763\widctlpar\jclisttab\tx763{\*\pn \pnlvlbody\ilvl0\ls118\pnrnot1\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}
+\ls118\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043576 The SDCCH-type channels are }{\i\revised\revauth1\revdttm1714043577 planned }{\i\revised\revauth1\revdttm1714043576 only for non-speech calls, in PocketBTS case for LUP, CISS}{
+\i\revised\revauth1\revdttm1714043578 }{\i\revised\revauth1\revdttm1714043700 and SMS }{\i\revised\revauth1\revdttm1714043578 calls. }{\i\revised\revauth1\revdttm1714043579 In particular, if a corporate }{\i\revised\revauth1\revdttm1714043584 PocketBTS }
+{\i\revised\revauth1\revdttm1714043579 system considered,}{\i\revised\revauth1\revdttm1714043584 everyday close to starting of office time, lots of LUPs could be expected at parking lots or entrance to an office building
+, a PocketBTS cell nearby could be thus crowded. In this case, some people may proceed to make }{\i\revised\revauth1\revdttm1714043588 or receive }{\i\revised\revauth1\revdttm1714043584
+a call after their LUP. In one word, it would be nice to let everyone camped on a PocketBTS cell and hence capable of calling or being called.}{\i\revised\revauth1\revdttm1714043592
+\par }\pard \qj\li403\widctlpar\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043592
+\par }\pard \qj\li720\widctlpar\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043592 Another scenario requesting for high SDCCH capacity may be any kind of corporate gatherings }{\i\revised\revauth1\revdttm1714043595 at c}{
+\i\revised\revauth1\revdttm1714043594 onference rooms, }{\i\revised\revauth1\revdttm1714043592 cafeteria, etc.}{\i\revised\revauth1\revdttm1714043591
+\par }\pard \qj\li403\widctlpar\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043591
+\par }\pard \qj\li720\widctlpar\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043596 Except such kinds of extremities}{\i\revised\revauth1\revdttm1714043597 resulted from }{\i\revised\revauth1\revdttm1714043598 the }{
+\i\revised\revauth1\revdttm1714043591 office-opening}{\i\revised\revauth1\revdttm1714043592 time and the gatherings, }{\i\revised\revauth1\revdttm1714043623 we may not need so many SDCCH channels. But for }{\i\revised\revauth1\revdttm1714043624 the }{
+\i\revised\revauth1\revdttm1714043623 normal case}{\i\revised\revauth1\revdttm1714043624 , }{\i\revised\revauth1\revdttm1714043592 what is the relationship model or typical }{\i\revised\revauth1\revdttm1714043599 ratio }{
+\i\revised\revauth1\revdttm1714043592 values }{\i\revised\revauth1\revdttm1714043599 between }{\i\revised\revauth1\revdttm1714043590 the number of SDCCH channels and the number of simultaneous calls}{\i\revised\revauth1\revdttm1714043599
+ that these SDCCH channels can co}{\i\revised\revauth1\revdttm1714043600 mfortably}{\i\revised\revauth1\revdttm1714043599 serve.}{\i\revised\revauth1\revdttm1714043600 Reviewers please }{\i\revised\revauth1\revdttm1714043621 instruct me in this aspect.
+
+\par
+\par In balancing between the extreme and normal operation cases, an algorithm may be designed to }{\i\revised\revauth1\revdttm1714043635 decide the timing of }{\i\revised\revauth1\revdttm1714043621 conversion of the us}{\i\revised\revauth1\revdttm1714043637
+age}{\i\revised\revauth1\revdttm1714043621 of}{\i\revised\revauth1\revdttm1714043636 a}{\i\revised\revauth1\revdttm1714043621 TS between TCH/F }{\i\revised\revauth1\revdttm1714043635 (type 1) }{\i\revised\revauth1\revdttm1714043621 and SDCCH/8 }{
+\i\revised\revauth1\revdttm1714043635 (type 7)}{\i\revised\revauth1\revdttm1714043637 . The control of the conversion can be considered as configurable from the OA&M}{\i\revised\revauth1\revdttm1714043638
+ but it may not be proper for the OA&M to decide the conversion timing.}{\i\revised\revauth1\revdttm1714043639 Reviewers please give your valuable comment on this.
+\par
+\par }\pard \qj\li720\widctlpar\adjustright {\i\revised\revauth1\revdttm1714043639 Another point in support of SDCCH/8 configuration is}{\i\revised\revauth1\revdttm1714043640 that}{\i\revised\revauth1\revdttm1714043639 more traffic channels }{
+\i\revised\revauth1\revdttm1714043640 will be in service once TCH/H is allowed in the future}{\i\revised\revauth1\revdttm1714043641 .}{\i\deleted\revauthdel1\revdttmdel1714043640
+\par }\pard \qj\li720\widctlpar\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043931
+\par Linked to Ian\rquote s comment 2, Appendix A.}{\revised\revauth1\revdttm1714043931
+\par }\pard \sb60\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714043641
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls111\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls111
+\ls111\pnrauth1\pnrdate1714043561\pnrstart0\pnrxst1\pnrxst0\pnrxst183\pnrxst240\pnrstop4\pnrstart1\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrstop9\pnrstart2\pnrnfc23\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0
+\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc2\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrstop18\pnrstart3\pnrpnbr2\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0
+\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrstop36\adjustright {TCH/F dedicated channels
+\par }\pard \qj\li360\sa60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {Similar to the SDCCH dedicated channel case, an array of proper structure type is used to organise all the TCH/F channels, each con
+taining two logical/functional channels i.e. FCCH and SACCH. The description of each TCH/F channel contains its resident TRX and TS. A flag is used in the description of the TCH/F channel to indicate if the TCH/F is currently engaged ready for assignment
+.
+\par Each TCH/F channel is associated with a quality rating which is calculated out based on the Idle Messages received from L1. RM may refer to this rating field of all the TCH/Fs to decide a good-quality one for assignment.
+\par }\pard \qj\li360\sb120\sa60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {\i Note: For PocketBTS Pre-Alpha Release, RM will not refer to the rating field for TCH/F assignment.
+\par }\pard \sa60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {
+\par }\pard \qj\fi-1260\li1260\sa60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {\tab }{\b\i TBD Note:}{\i
+ Messages such as configuration data for TRX/Slot, SYSTEM INFORMATION TYPE may be encoded at the OA&M since they are rarely changed. Even a chang
+e is needed, the change should be also reflected in the OA&M MIB. Thus it is good for the OA&M to call the ED function to encode these messages. But for PocketBTS Pre-Alpha Release, module RM will take care of the message encoding jobs. Moreover, RM may n
+ot really retrieve any of these messages/message data from the OA&M if the OA&M is not such capable then. SYSTEM INFORMATION TYPE messages will be passed down to L1 via MPH Primitive.
+\par }\pard \li1260\sa60\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {\i Reviewers please advise if this consideration is feasible or preferred.}{\i\deleted\revauthdel1\revdttmdel1714043699
+\par {\pntext\pard\plain\f3\fs20\revised\lang2057\revauth1\revdttm1714043642\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb60\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls111\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}
+\ls111\adjustright {\revised\revauth1\revdttm1714043642 TCH/H dedicated channels
+\par }\pard \qj\li360\sb60\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714043642 From architectural point of view, management of dedicated channels (i.e. }{\revised\revauth1\revdttm1714043648
+bi-directional channels) are structured in sense of data management in terms of air-link types i.e. SDCCH/4, SDCCH/8, TCH/F and TCH/H.}{\revised\revauth1\revdttm1714043649 This separation resul
+ts in scalability in dealing with addition of new air-link types such as
+\par }{\revised\revauth1\revdttm1714043693 the above-mentioned SDCCH/8 and the TCH/H being discussed here.}{\revised\revauth1\revdttm1714043642
+\par }\pard \li360\sb60\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714043650
+\par }\pard \qj\li360\sb60\widctlpar\adjustright {\revised\revauth1\revdttm1714043694 Sim}{\revised\revauth1\revdttm1714043650 ilar to TCH/F, an array of proper structure type is used to}{\revised\revauth1\revdttm1714043642 organise all the TCH/}{
+\revised\revauth1\revdttm1714043651 H}{\revised\revauth1\revdttm1714043642 channels}{\revised\revauth1\revdttm1714043651 in pair}{\revised\revauth1\revdttm1714043642 , each containin
+g two functional channels i.e. FCCH and SACCH. The description of each TCH/}{\revised\revauth1\revdttm1714043694 H }{\revised\revauth1\revdttm1714043695 is}{\revised\revauth1\revdttm1714043694
+ paired, to facilitate its conversion to a TCH/F whenever needed, }{\revised\revauth1\revdttm1714043695 and includes}{\revised\revauth1\revdttm1714043642 its resident TRX and TS. A flag is used in the description of the TCH/}{
+\revised\revauth1\revdttm1714043695 H}{\revised\revauth1\revdttm1714043642 channel to indicate if the TCH/}{\revised\revauth1\revdttm1714043696 H}{\revised\revauth1\revdttm1714043642 is currently engaged ready for assignment.}{
+\revised\revauth1\revdttm1714043696 }{\revised\revauth1\revdttm1714043642 Each TCH/}{\revised\revauth1\revdttm1714043696 H}{\revised\revauth1\revdttm1714043642
+ channel is associated with a quality rating which is calculated out based on the Idle Messages received from L1. RM may refer to this rating field of all the TCH/}{\revised\revauth1\revdttm1714043696 H}{\revised\revauth1\revdttm1714043642 s to
+decide a good-quality one for assignment.
+\par }\pard \qj\li360\sb120\sa60\widctlpar\pnrnot1\adjustright {\i\revised\revauth1\revdttm1714043642 Note: For PocketBTS Pre-Alpha Release, RM will not refer to the rating field for TCH/}{\i\revised\revauth1\revdttm1714043696 H}{
+\i\revised\revauth1\revdttm1714043642 assignment..}{\revised\revauth1\revdttm1714043641
+\par {\pntext\pard\plain\f3\fs20\lang2057\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\sb120\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls116\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls116\adjustright {Air-link management
+
+\par }\pard \qj\li360\sb120\widctlpar\adjustright {For each bi-directional air-link, thus excluding BCCH, RACH, PCH and AGCH, no matter wheth
+er it is currently engaged or not, a data structure is defined to hold all the information related to it. Each bi-directional air-link is linked to its own unique SM. Thus the data structure associated with a bi-directional air-link is also treated the S
+M\rquote s context. When a bi-directional air link is assigned to a mobile, relevant data such as LAPDmOIDs for both its DCCH and its SACCH functional channels, the SM\rquote
+s current state, as well as the MCSM allocated are all recorded in this data structure. In one word, this data structure is to centralise all the data items associated with an air-link/its corresponding SM.
+\par }\pard \qj\sb120\widctlpar\pnrnot1\adjustright {In general, RM prefers to take any processing overhead such as searching for the unassigned best-quality TCH/F and updating these data structures
+. This preference is actually based on the fact that there is only 15 elements at maximum in each of these data structures and thus it may not be necessary to split these elements further into several data structures. Similarly, no sorting of these data s
+tructures will not be considered meaningful since it takes time and may not reduce search time attractively.
+\par }\pard\plain \s2\qj\sb240\sa60\keepn\widctlpar\outlinelevel1\pnrnot1\adjustright \b\lang2057\cgrid {\i\fs20\revised\revauth1\revdttm1714043715 {\*\bkmkstart _Toc432248056}Note: }{\b0\i\fs20\revised\revauth1\revdttm1714043715\crauth1\crdate1714043921 The}{
+\b0\i\fs20\revised\revauth1\revdttm1714043716\crauth1\crdate1714043921 data structures }{\b0\i\fs20\revised\revauth1\revdttm1714043921 introduced in the aspect of high-level design}{\b0\i\fs20\revised\revauth1\revdttm1714043716\crauth1\crdate1714043921
+ in this sub-section is from a forward-looking perspective. }{\b0\i\fs20\revised\revauth1\revdttm1714043922 They will not be implemented in the Pre-Alpha Release.
+\par {\listtext\pard\plain\s2 \b\i\f1\lang2057\cgrid \hich\af1\dbch\af0\loch\f1 2.5\tab}}\pard \s2\sb240\sa60\keepn\widctlpar\ls1\ilvl1\outlinelevel1\adjustright {\i\f1 Module Architecture{\*\bkmkend _Toc432248056}
+\par }\pard\plain \qj\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM is intended to be running as one task. The number of air-links established simultaneously is 19 at maximum. They proceed concurrently, each identified uniquely by it
+s associated SM context data structure described in Section 2.4. Only one FIFO message queue is assumed for the RM task to hold all the inbound messages addressed to the RM module. No rationale is seen to have several message queues if there is only RM ta
+sk in operation.
+\par TBD Note: Reviewers please evaluate according to your experience in both design perspective and VxWorks characteristics whether one RM task/one message queue design is enough to attend all the inbound message flux.
+\par Figure 2-3 depicts RM\rquote s module architecture. It describes the RM\rquote s physical partitioning of functionality, interaction with external modules/functions as well as the processing dependency inside the RM\rquote s sub-modules.
+\par It is assumed that sub-module RM_Lib be called wherever it is needed, thus no calling flows drawn between RM_Lib and any other RM sub-modules.
+\par Attention has been paid to reduce the coupling between module RM and module ED and the IRT functionality. This will be met as much as possible in the detailed design part of this document.
+\par \page
+\par }{\lang1024 {\shp{\*\shpinst\shpleft4005\shptop-135\shpright8695\shpbottom471\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz157\shplid1204{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5898240}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn hspNext}{\sv 1204}}{\sp{\sn lineDashing}{\sv 2}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright
+\fs20\lang2057\cgrid {L1, MD, MM, MCSM, OA&M}{\revised\revauth1\revdttm1714043988 , CM}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8349\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {L1, MD, MM, MCSM, OA&M}{\revised\revauth1\revdttm1714043988 , CM}{
+\par }}\dpx4005\dpy-135\dpxsize4690\dpysize606\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft775\shptop10096\shpright2245\shpbottom10339\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz261\shplid1205{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 5963776}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1205}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\i\fs16 Calling relationship
+\par }{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8453\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\i\fs16 Calling relationship
+\par }{
+\par }}\dpx775\dpy10096\dpxsize1470\dpysize243\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft240\shptop10243\shpright735\shpbottom10243\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz260\shplid1206{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 1}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8452\dpline\dpptx495\dppty0\dpptx0\dppty0
+\dpx240\dpy10243\dpxsize495\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft790\shptop9796\shpright2800\shpbottom10099\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz259\shplid1207
+{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn lTxid}{\sv 6029312}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1207}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\i\fs16 Major data interactions
+\par }{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8451\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\i\fs16 Major data interactions
+\par }{
+\par }}\dpx790\dpy9796\dpxsize2010\dpysize303\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft310\shptop6082\shpright1975\shpbottom6685\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz258\shplid1208{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6094848}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1208}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+RM_Lib
+\par
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8450\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM_Lib
+\par
+\par }}\dpx310\dpy6082\dpxsize1665\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1560\shptop7454\shpright1560\shpbottom7904\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz257\shplid1209{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}
+{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8449\dpline\dpptx0\dppty0\dpptx0\dppty450\dpx1560\dpy7454\dpxsize0\dpysize450
+\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft2220\shptop8099\shpright4800\shpbottom8099\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz256\shplid1210
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineStartArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8448\dpline\dpptx0\dppty0\dpptx2580\dppty0\dpx2220\dpy8099\dpxsize2580\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft915\shptop7890\shpright2210\shpbottom8301\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz255\shplid1211{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6160384}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1211}}
+{\sp{\sn lineDashing}{\sv 2}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 IRT Table
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8447\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 IRT Table
+\par }}\dpx915\dpy7890\dpxsize1295\dpysize411\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft3145\shptop9299\shpright4405\shpbottom9999\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz254\shplid1212{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 1260}}
+{\sp{\sn geoBottom}{\sv 700}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;13;(1260,0);(1233,71);(1207,143);(1120,180);(1033,217);(880,200);(740,220);(600,240);(403,220);(280,300);(157,380);(47,633);(0,700)}}{\sp{\sn pSegmentInfo}{\sv 2;11
+;16384;44288;8193;44288;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}
+{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}
+{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}
+{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}
+{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}
+{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8446\dppolygon\dppolycount43\dpptx1260\dppty0\dpptx1238\dppty53\dpptx1226\dppty78
+\dpptx1212\dppty102\dpptx1193\dppty125\dpptx1173\dppty146\dpptx1149\dppty164\dpptx1119\dppty179\dpptx1103\dppty186\dpptx1083\dppty190\dpptx1042\dppty198\dpptx998\dppty203\dpptx950\dppty206\dpptx899\dppty207\dpptx845\dppty209\dpptx792\dppty214
+\dpptx740\dppty220\dpptx685\dppty225\dpptx625\dppty230\dpptx564\dppty233\dpptx504\dppty237\dpptx444\dppty244\dpptx413\dppty250\dpptx385\dppty256\dpptx357\dppty264\dpptx329\dppty273\dpptx304\dppty286\dpptx280\dppty299\dpptx258\dppty316\dpptx234\dppty337
+\dpptx214\dppty361\dpptx192\dppty386\dpptx169\dppty414\dpptx149\dppty444\dpptx111\dppty504\dpptx93\dppty534\dpptx77\dppty564\dpptx60\dppty592\dpptx46\dppty619\dpptx32\dppty644\dpptx20\dppty665\dpptx10\dppty684\dpptx0\dppty699
+\dpx3145\dpy9299\dpxsize1260\dpysize700\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2640\shptop10005\shpright3575\shpbottom10416\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz253\shplid1213{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6225920}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1213}}
+{\sp{\sn lineDashing}{\sv 2}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \s42\qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 OA&M
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8445\dptxbx{\dptxbxtext\pard\plain \s42\qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 OA&M
+\par }}\dpx2640\dpy10005\dpxsize935\dpysize411\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft4385\shptop8384\shpright4905\shpbottom8784\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz252\shplid1214{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 520}}
+{\sp{\sn geoBottom}{\sv 400}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10;(520,0);(485,66);(450,133);(380,160);(310,187);(163,120);(100,160);(37,200);(17,360);(0,400)}}{\sp{\sn pSegmentInfo}{\sv 2;9;16384;44288
+;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}
+{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}
+{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}
+{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}
+{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}
+{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}
+{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8444\dppolygon\dppolycount45\dpptx519\dppty0\dpptx506\dppty25\dpptx493\dppty49\dpptx478\dppty72\dpptx463\dppty94\dpptx445\dppty115\dpptx436\dppty124
+\dpptx426\dppty132\dpptx415\dppty140\dpptx404\dppty147\dpptx392\dppty154\dpptx379\dppty159\dpptx365\dppty163\dpptx350\dppty166\dpptx333\dppty166\dpptx315\dppty165\dpptx296\dppty163\dpptx277\dppty161\dpptx237\dppty155\dpptx217\dppty152\dpptx198\dppty149
+\dpptx179\dppty147\dpptx161\dppty147\dpptx143\dppty147\dpptx127\dppty149\dpptx112\dppty153\dpptx100\dppty159\dpptx94\dppty163\dpptx88\dppty168\dpptx78\dppty180\dpptx68\dppty193\dpptx60\dppty208\dpptx52\dppty225\dpptx45\dppty243\dpptx38\dppty260
+\dpptx32\dppty279\dpptx27\dppty298\dpptx22\dppty316\dpptx17\dppty334\dpptx14\dppty350\dpptx10\dppty365\dpptx7\dppty379\dpptx3\dppty390\dpptx2\dppty395\dpptx0\dppty399\dpx4385\dpy8384\dpxsize520\dpysize400
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft4865\shptop8399\shpright5165\shpbottom8819\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz251\shplid1215{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}
+{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8443\dppolygon\dppolycount33\dpptx0\dppty0\dpptx15\dppty1\dpptx31\dppty2\dpptx46\dppty5\dpptx60\dppty9\dpptx75\dppty13\dpptx89\dppty19
+\dpptx103\dppty26\dpptx117\dppty33\dpptx130\dppty42\dpptx143\dppty51\dpptx156\dppty61\dpptx168\dppty72\dpptx180\dppty83\dpptx191\dppty96\dpptx202\dppty109\dpptx212\dppty123\dpptx222\dppty138\dpptx231\dppty153\dpptx240\dppty169\dpptx249\dppty185
+\dpptx257\dppty202\dpptx264\dppty220\dpptx270\dppty238\dpptx276\dppty257\dpptx282\dppty276\dpptx287\dppty295\dpptx290\dppty315\dpptx294\dppty335\dpptx297\dppty356\dpptx299\dppty377\dpptx300\dppty398\dpptx300\dppty420\dpx4865\dpy8399\dpxsize300\dpysize420
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shpgrp{\*\shpinst\shpleft4280\shptop8679\shpright4505\shpbottom9294\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz250\shplid1216{\sp{\sn groupLeft}{\sv 6255}}{\sp{\sn groupTop}{\sv 11400}}{\sp{\sn groupRight}{\sv 6480}}
+{\sp{\sn groupBottom}{\sv 12015}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}{\shp{\*\shpinst\shplid1217{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11520}}{\sp{\sn relRight}{\sv 6480}}
+{\sp{\sn relBottom}{\sv 12015}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1218{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11805}}
+{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11805}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1219{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11715}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11715}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1220{\sp{\sn relLeft}{\sv 6480}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1221{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6255}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1222{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11625}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11625}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1223{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11905}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11905}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8442\dppolygon\dppolycount4
+\dpptx0\dppty0\dpptx225\dppty0\dpptx225\dppty615\dpptx0\dppty615\dpx4280\dpy8679\dpxsize225\dpysize615\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft4285\shptop9299\shpright4845\shpbottom10039\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz246\shplid1224{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 560}}
+{\sp{\sn geoBottom}{\sv 740}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10;(560,0);(490,98);(420,197);(340,260);(260,323);(137,300);(80,380);(23,460);(13,683);(0,740)}}{\sp{\sn pSegmentInfo}{\sv 2;9;16384;44288
+;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}
+{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}
+{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}
+{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}
+{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}
+{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}
+{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8438\dppolygon\dppolycount35\dpptx559\dppty0\dpptx506\dppty73\dpptx480\dppty109\dpptx453\dppty143\dpptx426\dppty175\dpptx398\dppty206
+\dpptx369\dppty234\dpptx340\dppty259\dpptx324\dppty270\dpptx308\dppty279\dpptx291\dppty287\dpptx273\dppty294\dpptx237\dppty304\dpptx202\dppty313\dpptx166\dppty323\dpptx150\dppty329\dpptx134\dppty336\dpptx118\dppty345\dpptx104\dppty354\dpptx91\dppty366
+\dpptx80\dppty380\dpptx70\dppty397\dpptx61\dppty416\dpptx53\dppty438\dpptx46\dppty462\dpptx39\dppty487\dpptx33\dppty514\dpptx23\dppty568\dpptx16\dppty622\dpptx13\dppty646\dpptx10\dppty670\dpptx7\dppty691\dpptx4\dppty710\dpptx3\dppty726\dpptx0\dppty739
+\dpx4285\dpy9299\dpxsize560\dpysize740\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft6980\shptop10025\shpright7915\shpbottom10436\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz243\shplid1225{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6291456}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1225}}
+{\sp{\sn lineDashing}{\sv 2}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \s42\qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 MCSM
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8435\dptxbx{\dptxbxtext\pard\plain \s42\qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 MCSM
+\par }}\dpx6980\dpy10025\dpxsize935\dpysize411\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft6100\shptop10045\shpright6735\shpbottom10456\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz242\shplid1226{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6356992}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1226}}
+{\sp{\sn lineDashing}{\sv 2}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \s42\qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 MM
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8434\dptxbx{\dptxbxtext\pard\plain \s42\qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 MM
+\par }}\dpx6100\dpy10045\dpxsize635\dpysize411\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft4840\shptop10025\shpright5815\shpbottom10456\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz241\shplid1227{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6422528}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1227}}
+{\sp{\sn lineDashing}{\sv 2}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \s42\qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 LAPDm
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8433\dptxbx{\dptxbxtext\pard\plain \s42\qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 LAPDm
+\par }}\dpx4840\dpy10025\dpxsize975\dpysize431\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft3940\shptop10045\shpright4575\shpbottom10456\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz240\shplid1228{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6488064}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1228}}
+{\sp{\sn lineDashing}{\sv 2}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \s42\qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 L1
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8432\dptxbx{\dptxbxtext\pard\plain \s42\qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 L1
+\par }}\dpx3940\dpy10045\dpxsize635\dpysize411\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shpgrp{\*\shpinst\shpleft4740\shptop8679\shpright4965\shpbottom9294\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz236\shplid1229{\sp{\sn groupLeft}{\sv 6255}}{\sp{\sn groupTop}{\sv 11400}}{\sp{\sn groupRight}{\sv 6480}}
+{\sp{\sn groupBottom}{\sv 12015}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}{\shp{\*\shpinst\shplid1230{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11520}}{\sp{\sn relRight}{\sv 6480}}
+{\sp{\sn relBottom}{\sv 12015}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 39}}}}{\shp{\*\shpinst\shplid1231{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11805}}
+{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11805}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 39}}}}{\shp{\*\shpinst\shplid1232{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11715}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11715}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 39}}}}
+{\shp{\*\shpinst\shplid1233{\sp{\sn relLeft}{\sv 6480}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 39}}}}
+{\shp{\*\shpinst\shplid1234{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6255}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 39}}}}
+{\shp{\*\shpinst\shplid1235{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11625}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11625}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1236{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11905}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11905}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8428\dppolygon\dppolycount4
+\dpptx0\dppty0\dpptx225\dppty0\dpptx225\dppty615\dpptx0\dppty615\dpx4740\dpy8679\dpxsize225\dpysize615\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2470\shptop434\shpright2470\shpbottom674\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz235\shplid1237{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8427\dpline\dpptx0\dppty0\dpptx0\dppty240
+\dpx2470\dpy434\dpxsize0\dpysize240\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft2050\shptop454\shpright2050\shpbottom694\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz234\shplid1238
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}
+{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8426\dpline\dpptx0\dppty0\dpptx0\dppty240\dpx2050\dpy454\dpxsize0\dpysize240\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft9125\shptop1889\shpright9125\shpbottom8114\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz233\shplid1239{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 1}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8425\dpline\dpptx0\dppty0\dpptx0\dppty6225
+\dpx9125\dpy1889\dpxsize0\dpysize6225\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft8590\shptop5108\shpright8845\shpbottom5108\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz232\shplid1240
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8424\dpline\dpptx0\dppty0\dpptx255\dppty0\dpx8590\dpy5108\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft8590\shptop4268\shpright8845\shpbottom4268\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz231\shplid1241{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8423\dpline\dpptx0\dppty0\dpptx255\dppty0
+\dpx8590\dpy4268\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft105\shptop2819\shpright105\shpbottom4999\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz230\shplid1242
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}
+{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8422\dpline\dpptx0\dppty0\dpptx0\dppty2180\dpx105\dpy2819\dpxsize0\dpysize2180\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1570\shptop7454\shpright8825\shpbottom7454\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz229\shplid1243{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8421\dpline\dpptx0\dppty0\dpptx7255\dppty0
+\dpx1570\dpy7454\dpxsize7255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft8830\shptop3404\shpright8830\shpbottom7469\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz228\shplid1244
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8420\dpline\dpptx0\dppty0\dpptx0\dppty4065\dpx8830\dpy3404\dpxsize0\dpysize4065\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5485\shptop3389\shpright5485\shpbottom7469\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz227\shplid1245{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}
+{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8419\dpline\dpptx0\dppty0\dpptx0\dppty4080
+\dpx5485\dpy3389\dpxsize0\dpysize4080\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft8595\shptop6843\shpright8850\shpbottom6843\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz226\shplid1246
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8418\dpline\dpptx0\dppty0\dpptx255\dppty0\dpx8595\dpy6843\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft8575\shptop5943\shpright8830\shpbottom5943\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz225\shplid1247{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8417\dpline\dpptx0\dppty0\dpptx255\dppty0
+\dpx8575\dpy5943\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft5245\shptop6918\shpright5500\shpbottom6918\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz224\shplid1248
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8416\dpline\dpptx0\dppty0\dpptx255\dppty0\dpx5245\dpy6918\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft8590\shptop3408\shpright8845\shpbottom3408\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz223\shplid1249{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8415\dpline\dpptx0\dppty0\dpptx255\dppty0
+\dpx8590\dpy3408\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft5245\shptop5988\shpright5500\shpbottom5988\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz222\shplid1250
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8414\dpline\dpptx0\dppty0\dpptx255\dppty0\dpx5245\dpy5988\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5245\shptop5103\shpright5500\shpbottom5103\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz221\shplid1251{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8413\dpline\dpptx0\dppty0\dpptx255\dppty0
+\dpx5245\dpy5103\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft5245\shptop4263\shpright5500\shpbottom4263\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz220\shplid1252
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8412\dpline\dpptx0\dppty0\dpptx255\dppty0\dpx5245\dpy4263\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5245\shptop3378\shpright5500\shpbottom3378\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz219\shplid1253{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8411\dpline\dpptx0\dppty0\dpptx255\dppty0
+\dpx5245\dpy3378\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft2065\shptop5103\shpright2320\shpbottom5103\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz218\shplid1254
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8410\dpline\dpptx0\dppty0\dpptx255\dppty0\dpx2065\dpy5103\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2065\shptop4248\shpright2320\shpbottom4248\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz217\shplid1255{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8409\dpline\dpptx0\dppty0\dpptx255\dppty0
+\dpx2065\dpy4248\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft2065\shptop3408\shpright2320\shpbottom3408\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz216\shplid1256
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8408\dpline\dpptx0\dppty0\dpptx255\dppty0\dpx2065\dpy3408\dpxsize255\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2320\shptop3404\shpright2320\shpbottom7469\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz215\shplid1257{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}
+{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8407\dpline\dpptx0\dppty0\dpptx0\dppty4065
+\dpx2320\dpy3404\dpxsize0\dpysize4065\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft5680\shptop6903\shpright5965\shpbottom6903\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz214\shplid1258
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8406\dpline\dpptx0\dppty0\dpptx285\dppty0\dpx5680\dpy6903\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5680\shptop5988\shpright5965\shpbottom5988\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz213\shplid1259{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8405\dpline\dpptx0\dppty0\dpptx285\dppty0
+\dpx5680\dpy5988\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft5680\shptop5088\shpright5965\shpbottom5088\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz212\shplid1260
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8404\dpline\dpptx0\dppty0\dpptx285\dppty0\dpx5680\dpy5088\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5680\shptop4248\shpright5965\shpbottom4248\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz211\shplid1261{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8403\dpline\dpptx0\dppty0\dpptx285\dppty0
+\dpx5680\dpy4248\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft5665\shptop3393\shpright5950\shpbottom3393\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz210\shplid1262
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8402\dpline\dpptx0\dppty0\dpptx285\dppty0\dpx5665\dpy3393\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5665\shptop2831\shpright5665\shpbottom6913\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz209\shplid1263{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8401\dpline\dpptx0\dppty0\dpptx0\dppty4082
+\dpx5665\dpy2831\dpxsize0\dpysize4082\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft2425\shptop6903\shpright2710\shpbottom6903\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz208\shplid1264
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8400\dpline\dpptx0\dppty0\dpptx285\dppty0\dpx2425\dpy6903\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2425\shptop5988\shpright2710\shpbottom5988\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz207\shplid1265{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8399\dpline\dpptx0\dppty0\dpptx285\dppty0
+\dpx2425\dpy5988\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft2425\shptop5088\shpright2710\shpbottom5088\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz206\shplid1266
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8398\dpline\dpptx0\dppty0\dpptx285\dppty0\dpx2425\dpy5088\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2425\shptop4248\shpright2710\shpbottom4248\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz205\shplid1267{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8397\dpline\dpptx0\dppty0\dpptx285\dppty0
+\dpx2425\dpy4248\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft2410\shptop3393\shpright2695\shpbottom3393\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz204\shplid1268
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8396\dpline\dpptx0\dppty0\dpptx285\dppty0\dpx2410\dpy3393\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft115\shptop4998\shpright400\shpbottom4998\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz203\shplid1269{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8395\dpline\dpptx0\dppty0\dpptx285\dppty0
+\dpx115\dpy4998\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft115\shptop4218\shpright400\shpbottom4218\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz202\shplid1270
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8394\dpline\dpptx0\dppty0\dpptx285\dppty0\dpx115\dpy4218\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5950\shptop6562\shpright8575\shpbottom7165\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz201\shplid1271{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6553600}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1271}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+RM_TrafficChnSuspending
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8393\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM_TrafficChnSuspending
+\par }}\dpx5950\dpy6562\dpxsize2625\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5950\shptop5662\shpright8560\shpbottom6265\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz200\shplid1272{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6619136}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1272}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+RM_DeactivatingSigTrafficChn
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8392\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM_DeactivatingSigTrafficChn
+\par }}\dpx5950\dpy5662\dpxsize2610\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5950\shptop4807\shpright8575\shpbottom5410\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz199\shplid1273{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6684672}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1273}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\lang1033 RM_TrafficModeEstablished
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8391\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 RM_TrafficModeEstablished
+\par }}\dpx5950\dpy4807\dpxsize2625\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5950\shptop3982\shpright8575\shpbottom4585\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz198\shplid1274{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6750208}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1274}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+RM_ReleasingSigTrafficChn
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8390\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM_ReleasingSigTrafficChn
+\par }}\dpx5950\dpy3982\dpxsize2625\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5935\shptop3112\shpright8575\shpbottom3715\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz197\shplid1275{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6815744}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1275}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+RM_TrafficModeActivated
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8389\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM_TrafficModeActivated
+\par }}\dpx5935\dpy3112\dpxsize2640\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2710\shptop6562\shpright5245\shpbottom7165\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz196\shplid1276{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6881280}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1276}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+RM_ActivatingTrafficMode
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8388\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM_ActivatingTrafficMode
+\par }}\dpx2710\dpy6562\dpxsize2535\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2710\shptop5677\shpright5245\shpbottom6280\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz195\shplid1277{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 6946816}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1277}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+RM_SigModeEstablished
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8387\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM_SigModeEstablished
+\par }}\dpx2710\dpy5677\dpxsize2535\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2710\shptop4807\shpright5245\shpbottom5410\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz194\shplid1278{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7012352}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1278}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+RM_TrafficChnActivated
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8386\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM_TrafficChnActivated
+\par }}\dpx2710\dpy4807\dpxsize2535\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2695\shptop3967\shpright5230\shpbottom4570\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz193\shplid1279{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7077888}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1279}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+RM_SigChnActivated
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8385\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM_SigChnActivated
+\par }}\dpx2695\dpy3967\dpxsize2535\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2695\shptop3127\shpright5230\shpbottom3730\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz192\shplid1280{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7143424}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1280}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+ RM_ActivatingSigTrafficChn
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8384\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid { RM_ActivatingSigTrafficChn
+\par }}\dpx2695\dpy3127\dpxsize2535\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft385\shptop4747\shpright2050\shpbottom5350\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz191\shplid1281{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7208960}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1281}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+RM_RMDown
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8383\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM_RMDown
+\par }}\dpx385\dpy4747\dpxsize1665\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft385\shptop3907\shpright2050\shpbottom4510\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz190\shplid1282{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7274496}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1282}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+RM_RMRunning
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8382\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {RM_RMRunning
+\par }}\dpx385\dpy3907\dpxsize1665\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft6255\shptop1950\shpright7335\shpbottom2368\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz189\shplid1283{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7340032}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1283}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 Encode RM Messages
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8381\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 Encode RM Messages
+\par }}\dpx6255\dpy1950\dpxsize1080\dpysize418\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft4305\shptop1665\shpright5805\shpbottom2128\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz188\shplid1284{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7405568}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1284}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 ED for GSM Um
+\par ED for GSM Abis
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8380\dptxbx{\dptxbxtext\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\lang1033 ED for GSM Um
+\par ED for GSM Abis
+\par }}\dpx4305\dpy1665\dpxsize1500\dpysize463\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft4020\shptop1455\shpright6015\shpbottom2346\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz187\shplid1285{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7471104}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1285}}
+{\sp{\sn lineDashing}{\sv 2}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \s42\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8379\dptxbx{\dptxbxtext\pard\plain \s42\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {
+\par }}\dpx4020\dpy1455\dpxsize1995\dpysize891\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1545\shptop524\shpright1950\shpbottom1649\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz186\shplid1286{\sp{\sn shapeType}{\sv 19}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}
+{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8378\dppolygon\dppolycount33\dpptx0\dppty0\dpptx21\dppty2\dpptx41\dppty5\dpptx62\dppty13\dpptx82\dppty23\dpptx101\dppty36\dpptx121\dppty50
+\dpptx139\dppty68\dpptx157\dppty88\dpptx176\dppty112\dpptx193\dppty137\dpptx210\dppty164\dpptx226\dppty193\dpptx242\dppty223\dpptx258\dppty257\dpptx272\dppty292\dpptx286\dppty329\dpptx300\dppty369\dpptx312\dppty410\dpptx325\dppty452\dpptx336\dppty497
+\dpptx347\dppty542\dpptx356\dppty589\dpptx365\dppty637\dpptx373\dppty688\dpptx380\dppty738\dpptx387\dppty790\dpptx392\dppty844\dpptx397\dppty898\dpptx400\dppty954\dpptx403\dppty1010\dpptx404\dppty1067\dpptx405\dppty1125
+\dpx1545\dpy524\dpxsize405\dpysize1125\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1950\shptop434\shpright2145\shpbottom674\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz185\shplid1287{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8377\dprect\dpx1950\dpy434\dpxsize195\dpysize240
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2790\shptop149\shpright4020\shpbottom589\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz184\shplid1288{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 1230}}
+{\sp{\sn geoBottom}{\sv 440}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;13;(0,420);(182,430);(365,440);(465,405);(565,370);(535,270);(600,210);(665,150);(750,80);(855,45);(960,10);(1095,5);(1230,0)}}{\sp{\sn pSegmentInfo}{\sv 2;11
+;16384;44288;8193;44288;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}
+{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}
+{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineStartArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}
+{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}
+{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}
+{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}
+{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}
+{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8376\dppolygon\dppolycount43\dpptx0\dppty419\dpptx67\dppty422\dpptx136\dppty426
+\dpptx201\dppty428\dpptx262\dppty429\dpptx321\dppty427\dpptx348\dppty425\dpptx376\dppty422\dpptx400\dppty420\dpptx423\dppty415\dpptx445\dppty410\dpptx464\dppty404\dpptx482\dppty397\dpptx496\dppty388\dpptx510\dppty378\dpptx520\dppty367\dpptx527\dppty356
+\dpptx535\dppty343\dpptx545\dppty316\dpptx555\dppty289\dpptx567\dppty260\dpptx581\dppty234\dpptx588\dppty222\dpptx600\dppty210\dpptx626\dppty187\dpptx653\dppty164\dpptx681\dppty141\dpptx712\dppty118\dpptx746\dppty96\dpptx779\dppty77\dpptx797\dppty68
+\dpptx817\dppty60\dpptx834\dppty52\dpptx854\dppty45\dpptx874\dppty39\dpptx895\dppty33\dpptx939\dppty24\dpptx984\dppty17\dpptx1029\dppty11\dpptx1078\dppty7\dpptx1128\dppty4\dpptx1179\dppty2\dpptx1228\dppty0\dpx2790\dpy149\dpxsize1230\dpysize440
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2670\shptop434\shpright2670\shpbottom674\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz183\shplid1289{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8375\dpline\dpptx0\dppty0\dpptx0\dppty240
+\dpx2670\dpy434\dpxsize0\dpysize240\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft2565\shptop434\shpright2565\shpbottom674\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz182\shplid1290
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}
+{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8374\dpline\dpptx0\dppty0\dpptx0\dppty240\dpx2565\dpy434\dpxsize0\dpysize240\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2370\shptop449\shpright2370\shpbottom689\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz181\shplid1291{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8373\dpline\dpptx0\dppty0\dpptx0\dppty240
+\dpx2370\dpy449\dpxsize0\dpysize240\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft2250\shptop434\shpright2250\shpbottom674\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz180\shplid1292
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}
+{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8372\dpline\dpptx0\dppty0\dpptx0\dppty240\dpx2250\dpy434\dpxsize0\dpysize240\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2790\shptop674\shpright2880\shpbottom674\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz179\shplid1293{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}
+{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8371\dpline\dpptx0\dppty0\dpptx90\dppty0
+\dpx2790\dpy674\dpxsize90\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft2775\shptop434\shpright2880\shpbottom434\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz178\shplid1294
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}
+{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}
+{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8370\dpline\dpptx0\dppty0\dpptx105\dppty0\dpx2775\dpy434\dpxsize105\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2145\shptop434\shpright2775\shpbottom674\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz177\shplid1295{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}
+{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8369\dprect\dpx2145\dpy434\dpxsize630\dpysize240
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1815\shptop-38\shpright3030\shpbottom407\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz176\shplid1296{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7536640}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1296}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 RM Inboud }{Message Queue
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8368\dptxbx{\dptxbxtext\pard\plain \s27\qc\widctlpar\adjustright \f1\fs16\cgrid {\f0 RM Inboud }{Message Queue
+\par }}\dpx1815\dpy-38\dpxsize1215\dpysize445\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft805\shptop9466\shpright2815\shpbottom9769\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz175\shplid1297{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7602176}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1297}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\i\fs16 RM sub-modules/functions
+\par }{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8367\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\i\fs16 RM sub-modules/functions
+\par }{
+\par }}\dpx805\dpy9466\dpxsize2010\dpysize303\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft250\shptop9121\shpright1210\shpbottom9410\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz174\shplid1298{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7667712}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1298}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\i\fs16 Dashed block:}{
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8366\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\i\fs16 Dashed block:}{
+\par }}\dpx250\dpy9121\dpxsize960\dpysize289\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft240\shptop9943\shpright735\shpbottom9943\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz173\shplid1299{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 1}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8365
+\dpline\dpptx495\dppty0\dpptx0\dppty0\dpx240\dpy9943\dpxsize495\dpysize0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1230\shptop9121\shpright3180\shpbottom9373\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz172\shplid1300{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7733248}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1300}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \s56\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0\fs16 Non-RM modules/functions
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8364\dptxbx{\dptxbxtext\pard\plain \s56\sb60\sa60\widctlpar\adjustright \i\fs20\lang2057\cgrid {\i0\fs16 Non-RM modules/functions
+\par }}\dpx1230\dpy9121\dpxsize1950\dpysize252\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft255\shptop9441\shpright720\shpbottom9734\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz171\shplid1301{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8363\dprect\dpx255\dpy9441\dpxsize465\dpysize293
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft250\shptop8729\shpright1060\shpbottom9042\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz170\shplid1302{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7798784}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1302}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\ul Legend:
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8362\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\ul Legend:
+\par }}\dpx250\dpy8729\dpxsize810\dpysize313\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft2280\shptop1900\shpright4020\shpbottom1900\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz169\shplid1303{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8361\dpline\dpptx0\dppty0\dpptx1740\dppty0
+\dpx2280\dpy1900\dpxsize1740\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft6260\shptop8108\shpright9140\shpbottom8108\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz168\shplid1304
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 1}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8360\dpline\dpptx2880\dppty0\dpptx0\dppty0\dpx6260\dpy8108\dpxsize2880\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2410\shptop2831\shpright2410\shpbottom6913\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz167\shplid1305{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 1}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8359\dpline\dpptx0\dppty0\dpptx0\dppty4082
+\dpx2410\dpy2831\dpxsize0\dpysize4082\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft6035\shptop1901\shpright9120\shpbottom1901\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz166\shplid1306
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 1}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineStartArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}
+{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8358\dpline\dpptx3085\dppty0\dpptx0\dppty0\dpx6035\dpy1901\dpxsize3085\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5485\shptop7464\shpright5485\shpbottom7863\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz164\shplid1307{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8356\dpline\dpptx0\dppty0\dpptx0\dppty399
+\dpx5485\dpy7464\dpxsize0\dpysize399\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft4800\shptop7863\shpright6240\shpbottom8391\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz163\shplid1308
+{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn lTxid}{\sv 7864320}}{\sp{\sn hspNext}{\sv 1308}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid { RM_Send
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8355\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid { RM_Send
+\par }}\dpx4800\dpy7863\dpxsize1440\dpysize528\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft115\shptop3423\shpright400\shpbottom3423\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz162\shplid1309{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8354\dpline\dpptx0\dppty0\dpptx285\dppty0
+\dpx115\dpy3423\dpxsize285\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft130\shptop2817\shpright5680\shpbottom2817\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz161\shplid1310
+{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8353\dpline\dpptx0\dppty0\dpptx5550\dppty0\dpx130\dpy2817\dpxsize5550\dpysize0\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1560\shptop2174\shpright1560\shpbottom2822\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz160\shplid1311{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8352\dpline\dpptx0\dppty0\dpptx0\dppty648
+\dpx1560\dpy2174\dpxsize0\dpysize648\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}{\shp{\*\shpinst\shpleft400\shptop3127\shpright2065\shpbottom3730\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz159\shplid1312
+{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn lTxid}{\sv 7929856}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}
+{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1312}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid { RM_InitialisingRM
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8351\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid { RM_InitialisingRM
+\par }}\dpx400\dpy3127\dpxsize1665\dpysize603\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft2685\shptop1395\shpright3765\shpbottom1813\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz158\shplid1313{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 7995392}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1313}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 Decode RM Messages
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8350\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 Decode RM Messages
+\par }}\dpx2685\dpy1395\dpxsize1080\dpysize418\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft840\shptop1646\shpright2280\shpbottom2174\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz156\shplid1314{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 8060928}}{\sp{\sn hspNext}{\sv 1314}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid { RM_Main
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8348\dptxbx{\dptxbxtext\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid { RM_Main
+\par }}\dpx840\dpy1646\dpxsize1440\dpysize528\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft1610\shptop2215\shpright3230\shpbottom2678\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz155\shplid1315{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 8126464}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1315}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 Dispatch RM messages to proper sub-modules
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8347\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 Dispatch RM messages to proper sub-modules
+\par }}\dpx1610\dpy2215\dpxsize1620\dpysize463\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft2727\shptop7482\shpright4122\shpbottom8082\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz154\shplid1316{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 8192000}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1316}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 Retrieve destination IDs of RM outbound messages
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8346\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16\lang1033 Retrieve destination IDs of RM outbound messages
+\par }}\dpx2727\dpy7482\dpxsize1395\dpysize600\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}}{
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par }{\lang1024 {\shp{\*\shpinst\shpleft297\shptop177\shpright1572\shpbottom657\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz153\shplid1317{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 8257536}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1317}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 Update relevant IRT data entries
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8345\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 Update relevant IRT data entries
+\par }}\dpx297\dpy177\dpxsize1275\dpysize480\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}}{
+\par
+\par
+\par }{\lang1024 {\shp{\*\shpinst\shpleft6657\shptop327\shpright8052\shpbottom927\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz165\shplid1318{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 8323072}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1318}}
+{\sp{\sn lineColor}{\sv 16777215}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn lidRegroup}{\sv 1}}{\shptxt \pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 RM associated Outbound Message Queues
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8357\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\fs16 RM associated Outbound Message Queues
+\par }}\dpx6657\dpy327\dpxsize1395\dpysize600\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor255\dplinecog255\dplinecob255}}}
+{\shp{\*\shpinst\shpleft6142\shptop104\shpright6457\shpbottom464\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz263\shplid1319{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn geoRight}{\sv 495}}{\sp{\sn geoBottom}{\sv 390}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10;(23,0);(11,35);(0,70);(68,90);(136,110);(361,70);(428,120);(495,170);(484,280);(473,390)}}{\sp{\sn pSegmentInfo}{\sv 2;9
+;16384;44288;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8455
+\dppolygon\dppolycount47\dpptx15\dppty0\dpptx12\dppty12\dpptx10\dppty24\dpptx9\dppty36\dpptx9\dppty42\dpptx10\dppty47\dpptx11\dppty52\dpptx13\dppty57\dpptx16\dppty62\dpptx20\dppty66\dpptx24\dppty71\dpptx29\dppty76\dpptx36\dppty79\dpptx43\dppty83
+\dpptx48\dppty85\dpptx52\dppty86\dpptx58\dppty87\dpptx64\dppty88\dpptx76\dppty88\dpptx91\dppty89\dpptx107\dppty88\dpptx123\dppty88\dpptx140\dppty87\dpptx158\dppty87\dpptx175\dppty87\dpptx192\dppty87\dpptx209\dppty88\dpptx224\dppty90\dpptx239\dppty92
+\dpptx251\dppty97\dpptx257\dppty100\dpptx263\dppty103\dpptx268\dppty106\dpptx272\dppty111\dpptx279\dppty120\dpptx285\dppty130\dpptx291\dppty142\dpptx295\dppty155\dpptx299\dppty168\dpptx302\dppty183\dpptx304\dppty198\dpptx305\dppty214\dpptx305\dppty231
+\dpptx306\dppty248\dpptx305\dppty284\dpptx303\dppty321\dpptx300\dppty359\dpx6142\dpy104\dpxsize315\dpysize360\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5835\shptop104\shpright6060\shpbottom484\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz245\shplid1320{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 360}}
+{\sp{\sn geoBottom}{\sv 380}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10;(0,0);(23,40);(47,80);(100,100);(153,120);(280,73);(320,120);(360,167);(350,273);(340,380)}}{\sp{\sn pSegmentInfo}{\sv 2;9;16384;44288;8193
+;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}
+{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}
+{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}
+{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}
+{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}
+{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}
+{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8437\dppolygon\dppolycount39\dpptx0\dppty0\dpptx6\dppty15\dpptx11\dppty30\dpptx18\dppty44\dpptx24\dppty57\dpptx32\dppty70\dpptx41\dppty81
+\dpptx46\dppty86\dpptx51\dppty91\dpptx56\dppty95\dpptx63\dppty100\dpptx69\dppty103\dpptx77\dppty105\dpptx85\dppty105\dpptx94\dppty105\dpptx104\dppty104\dpptx114\dppty103\dpptx134\dppty100\dpptx144\dppty98\dpptx154\dppty98\dpptx164\dppty98
+\dpptx172\dppty100\dpptx181\dppty102\dpptx188\dppty106\dpptx194\dppty112\dpptx199\dppty120\dpptx204\dppty130\dpptx208\dppty140\dpptx210\dppty152\dpptx213\dppty165\dpptx214\dppty179\dpptx216\dppty195\dpptx217\dppty210\dpptx218\dppty227\dpptx218\dppty244
+\dpptx218\dppty263\dpptx216\dppty300\dpptx214\dppty339\dpptx212\dppty379\dpx5835\dpy104\dpxsize225\dpysize380\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5280\shptop104\shpright5355\shpbottom524\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz264\shplid1321{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn geoRight}{\sv 75}}{\sp{\sn geoBottom}{\sv 420}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;7;(75,0);(51,32);(27,65);(15,135);(3,205);(1,312);(0,420)}}{\sp{\sn pSegmentInfo}{\sv 2;7;16384;44288;8193
+;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8456\dppolygon\dppolycount27
+\dpptx74\dppty0\dpptx65\dppty12\dpptx56\dppty25\dpptx48\dppty38\dpptx44\dppty46\dpptx40\dppty53\dpptx36\dppty61\dpptx33\dppty70\dpptx29\dppty79\dpptx26\dppty89\dpptx23\dppty99\dpptx20\dppty110\dpptx17\dppty122\dpptx15\dppty134\dpptx13\dppty148
+\dpptx11\dppty163\dpptx9\dppty177\dpptx8\dppty194\dpptx6\dppty210\dpptx5\dppty226\dpptx4\dppty245\dpptx3\dppty263\dpptx3\dppty281\dpptx2\dppty300\dpptx1\dppty339\dpptx0\dppty379\dpptx0\dppty419\dpx5280\dpy104\dpxsize75\dpysize420
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5625\shptop119\shpright5645\shpbottom519\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz244\shplid1322{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 20}}
+{\sp{\sn geoBottom}{\sv 400}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;4;(0,0);(8,166);(17,333);(20,400)}}{\sp{\sn pSegmentInfo}{\sv 2;5;16384;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}
+{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}
+{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}
+{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}
+{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}
+{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}
+{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}
+{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8436\dppolygon\dppolycount16\dpptx0\dppty0\dpptx3\dppty62\dpptx6\dppty123\dpptx7\dppty152\dpptx9\dppty182\dpptx10\dppty209\dpptx11\dppty237
+\dpptx13\dppty262\dpptx14\dppty287\dpptx15\dppty310\dpptx16\dppty332\dpptx17\dppty351\dpptx18\dppty369\dpptx18\dppty385\dpptx19\dppty392\dpptx19\dppty399\dpx5625\dpy119\dpxsize20\dpysize400
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}}{
+\par }{\lang1024 {\shpgrp{\*\shpinst\shpleft6350\shptop4\shpright6575\shpbottom619\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz262\shplid1323{\sp{\sn groupLeft}{\sv 6255}}{\sp{\sn groupTop}{\sv 11400}}{\sp{\sn groupRight}{\sv 6480}}
+{\sp{\sn groupBottom}{\sv 12015}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 0}}{\shp{\*\shpinst\shplid1324{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11520}}{\sp{\sn relRight}{\sv 6480}}
+{\sp{\sn relBottom}{\sv 12015}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1325{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11805}}
+{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11805}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1326{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11715}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11715}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1327{\sp{\sn relLeft}{\sv 6480}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1328{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6255}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1329{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11625}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11625}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1330{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11905}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11905}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8454\dppolygon\dppolycount4
+\dpptx0\dppty0\dpptx225\dppty0\dpptx225\dppty615\dpptx0\dppty615\dpx6350\dpy4\dpxsize225\dpysize615\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shpgrp{\*\shpinst\shpleft5520\shptop39\shpright5745\shpbottom654\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz238\shplid1331{\sp{\sn groupLeft}{\sv 6255}}{\sp{\sn groupTop}{\sv 11400}}{\sp{\sn groupRight}{\sv 6480}}
+{\sp{\sn groupBottom}{\sv 12015}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}{\shp{\*\shpinst\shplid1332{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11520}}{\sp{\sn relRight}{\sv 6480}}
+{\sp{\sn relBottom}{\sv 12015}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1333{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11805}}
+{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11805}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1334{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11715}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11715}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1335{\sp{\sn relLeft}{\sv 6480}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1336{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6255}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1337{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11625}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11625}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1338{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11905}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11905}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8430\dppolygon\dppolycount4
+\dpptx0\dppty0\dpptx225\dppty0\dpptx225\dppty615\dpptx0\dppty615\dpx5520\dpy39\dpxsize225\dpysize615\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shpgrp{\*\shpinst\shpleft5945\shptop34\shpright6170\shpbottom649\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz239\shplid1339{\sp{\sn groupLeft}{\sv 6255}}{\sp{\sn groupTop}{\sv 11400}}{\sp{\sn groupRight}{\sv 6480}}
+{\sp{\sn groupBottom}{\sv 12015}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}{\shp{\*\shpinst\shplid1340{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11520}}{\sp{\sn relRight}{\sv 6480}}
+{\sp{\sn relBottom}{\sv 12015}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1341{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11805}}
+{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11805}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1342{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11715}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11715}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1343{\sp{\sn relLeft}{\sv 6480}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1344{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6255}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1345{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11625}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11625}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1346{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11905}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11905}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 8}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8431\dppolygon\dppolycount4
+\dpptx0\dppty0\dpptx225\dppty0\dpptx225\dppty615\dpptx0\dppty615\dpx5945\dpy34\dpxsize225\dpysize615\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
+{\shpgrp{\*\shpinst\shpleft5165\shptop39\shpright5390\shpbottom654\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz237\shplid1347{\sp{\sn groupLeft}{\sv 6255}}{\sp{\sn groupTop}{\sv 11400}}{\sp{\sn groupRight}{\sv 6480}}
+{\sp{\sn groupBottom}{\sv 12015}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn rotation}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}{\shp{\*\shpinst\shplid1348{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11520}}{\sp{\sn relRight}{\sv 6480}}
+{\sp{\sn relBottom}{\sv 12015}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1349{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11805}}
+{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11805}}{\sp{\sn fRelFlipH}{\sv 0}}{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}
+{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}{\shp{\*\shpinst\shplid1350{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11715}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11715}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1351{\sp{\sn relLeft}{\sv 6480}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1352{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11400}}{\sp{\sn relRight}{\sv 6255}}{\sp{\sn relBottom}{\sv 11550}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 1}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1353{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11625}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11625}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}
+{\shp{\*\shpinst\shplid1354{\sp{\sn relLeft}{\sv 6255}}{\sp{\sn relTop}{\sv 11905}}{\sp{\sn relRight}{\sv 6480}}{\sp{\sn relBottom}{\sv 11905}}{\sp{\sn fRelFlipH}{\sv 0}}
+{\sp{\sn fRelFlipV}{\sv 0}}{\sp{\sn shapeType}{\sv 20}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
+{\sp{\sn shapePath}{\sv 4}}{\sp{\sn fFillOK}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineDashing}{\sv 6}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}
+{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8429\dppolygon\dppolycount4
+\dpptx0\dppty0\dpptx225\dppty0\dpptx225\dppty615\dpptx0\dppty615\dpx5165\dpy39\dpxsize225\dpysize615\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{
+\par }{\lang1024 {\shp{\*\shpinst\shpleft6465\shptop254\shpright8445\shpbottom974\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz266\shplid1355{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn geoRight}{\sv 1980}}{\sp{\sn geoBottom}{\sv 720}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10;(0,0);(47,51);(95,102);(360,135);(625,168);(1320,98);(1590,195);(1860,292);(1915,630);(1980,720)}}{\sp{\sn pSegmentInfo}{\sv 2;9
+;16384;44288;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn fArrowheadsOK}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8458
+\dppolygon\dppolycount48\dpptx0\dppty0\dpptx19\dppty20\dpptx38\dppty38\dpptx67\dppty56\dpptx98\dppty74\dpptx120\dppty83\dpptx143\dppty91\dpptx168\dppty99\dpptx200\dppty107\dpptx234\dppty114\dpptx272\dppty121\dpptx314\dppty128\dpptx361\dppty135
+\dpptx415\dppty139\dpptx478\dppty143\dpptx548\dppty144\dpptx627\dppty145\dpptx706\dppty144\dpptx795\dppty143\dpptx973\dppty141\dpptx1061\dppty141\dpptx1150\dppty142\dpptx1239\dppty145\dpptx1321\dppty150\dpptx1397\dppty157\dpptx1470\dppty166
+\dpptx1533\dppty179\dpptx1590\dppty195\dpptx1616\dppty205\dpptx1638\dppty215\dpptx1660\dppty228\dpptx1682\dppty242\dpptx1720\dppty272\dpptx1755\dppty305\dpptx1787\dppty341\dpptx1815\dppty379\dpptx1841\dppty419\dpptx1863\dppty460\dpptx1882\dppty500
+\dpptx1898\dppty539\dpptx1913\dppty577\dpptx1929\dppty613\dpptx1942\dppty645\dpptx1955\dppty675\dpptx1961\dppty688\dpptx1967\dppty699\dpptx1974\dppty710\dpptx1980\dppty719\dpx6465\dpy254\dpxsize1980\dpysize720
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft6035\shptop294\shpright7425\shpbottom1019\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz249\shplid1356{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 1060}}
+{\sp{\sn geoBottom}{\sv 740}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10;(0,0);(91,98);(183,197);(320,240);(457,283);(697,177);(820,260);(943,343);(1001,541);(1060,740)}}{\sp{\sn pSegmentInfo}{\sv 2;9;16384;44288
+;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}
+{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}
+{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}
+{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}
+{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}
+{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}
+{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8441\dppolygon\dppolycount38\dpptx0\dppty0\dpptx45\dppty36\dpptx92\dppty72\dpptx138\dppty106\dpptx186\dppty138\dpptx240\dppty167\dpptx296\dppty194
+\dpptx355\dppty216\dpptx387\dppty226\dpptx421\dppty234\dpptx456\dppty241\dpptx494\dppty245\dpptx534\dppty245\dpptx576\dppty244\dpptx618\dppty241\dpptx662\dppty238\dpptx754\dppty229\dpptx799\dppty226\dpptx843\dppty224\dpptx888\dppty222\dpptx930\dppty222
+\dpptx969\dppty226\dpptx1007\dppty232\dpptx1043\dppty241\dpptx1074\dppty254\dpptx1103\dppty270\dpptx1130\dppty290\dpptx1157\dppty311\dpptx1182\dppty334\dpptx1204\dppty360\dpptx1223\dppty387\dpptx1243\dppty416\dpptx1263\dppty447\dpptx1281\dppty478
+\dpptx1297\dppty511\dpptx1330\dppty580\dpptx1359\dppty651\dpptx1387\dppty724\dpx6035\dpy294\dpxsize1390\dpysize725\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5615\shptop269\shpright6390\shpbottom1059\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz248\shplid1357{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 580}}
+{\sp{\sn geoBottom}{\sv 760}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10;(0,0);(60,105);(120,210);(200,280);(280,350);(417,340);(480,420);(543,500);(563,707);(580,760)}}{\sp{\sn pSegmentInfo}{\sv 2;9;16384
+;44288;8193;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}
+{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}
+{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}
+{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}{\sp{\sn shadowSecondOffsetX}{\sv 0}}
+{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}{\sp{\sn shadowPerspectiveX}{\sv 0}}
+{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}{\sp{\sn dxyCalloutGap}{\sv 76200}}
+{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}
+{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8440\dppolygon\dppolycount35\dpptx0\dppty0\dpptx60\dppty81\dpptx92\dppty121\dpptx124\dppty159\dpptx156\dppty194\dpptx191\dppty230\dpptx228\dppty262
+\dpptx267\dppty291\dpptx287\dppty304\dpptx310\dppty315\dpptx334\dppty323\dpptx358\dppty333\dpptx409\dppty346\dpptx462\dppty359\dpptx513\dppty373\dpptx538\dppty380\dpptx561\dppty388\dpptx584\dppty398\dpptx604\dppty409\dpptx624\dppty421\dpptx640\dppty437
+\dpptx655\dppty454\dpptx668\dppty473\dpptx681\dppty496\dpptx693\dppty519\dpptx704\dppty544\dpptx714\dppty570\dpptx731\dppty623\dpptx744\dppty675\dpptx750\dppty701\dpptx755\dppty723\dpptx760\dppty743\dpptx766\dppty761\dpptx770\dppty778\dpptx774\dppty789
+\dpx5615\dpy269\dpxsize775\dpysize790\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}
+{\shp{\*\shpinst\shpleft5235\shptop299\shpright5358\shpbottom1019\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz247\shplid1358{\sp{\sn shapeType}{\sv 0}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn rotation}{\sv 0}}{\sp{\sn WrapText}{\sv 0}}{\sp{\sn anchorText}{\sv 0}}{\sp{\sn txflTextFlow}{\sv 0}}{\sp{\sn cdirFont}{\sv 0}}{\sp{\sn fAutoTextMargin}{\sv 0}}
+{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn pictureDblCrMod}{\sv 268435700}}{\sp{\sn pictureFillCrMod}{\sv 536870912}}{\sp{\sn pictureLineCrMod}{\sv 536870912}}{\sp{\sn geoRight}{\sv 123}}
+{\sp{\sn geoBottom}{\sv 720}}{\sp{\sn shapePath}{\sv 4}}{\sp{\sn pVerticies}{\sv 8;10;(50,0);(25,55);(0,110);(10,200);(20,290);(97,453);(110,540);(123,627);(90,693);(90,720)}}{\sp{\sn pSegmentInfo}{\sv 2;9;16384;44288;8193
+;44288;8193;44288;8193;44032;32768}}{\sp{\sn fFillOK}{\sv 1}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn lineColor}{\sv 0}}{\sp{\sn lineOpacity}{\sv 65536}}{\sp{\sn lineCrMod}{\sv 536870912}}
+{\sp{\sn lineType}{\sv 0}}{\sp{\sn lineFillBlipFlags}{\sv 0}}{\sp{\sn lineFillWidth}{\sv 0}}{\sp{\sn lineFillHeight}{\sv 0}}{\sp{\sn lineFillDztype}{\sv 0}}{\sp{\sn lineWidth}{\sv 15875}}
+{\sp{\sn lineMiterLimit}{\sv 524288}}{\sp{\sn lineStyle}{\sv 0}}{\sp{\sn lineDashing}{\sv 0}}{\sp{\sn lineEndArrowhead}{\sv 1}}{\sp{\sn lineEndCapStyle}{\sv 2}}{\sp{\sn fArrowheadsOK}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}
+{\sp{\sn shadowType}{\sv 0}}{\sp{\sn shadowColor}{\sv 8421504}}{\sp{\sn shadowHighlight}{\sv 13355979}}{\sp{\sn shadowCrMod}{\sv 536870912}}{\sp{\sn shadowOpacity}{\sv 65536}}{\sp{\sn shadowOffsetX}{\sv 25400}}{\sp{\sn shadowOffsetY}{\sv 25400}}
+{\sp{\sn shadowSecondOffsetX}{\sv 0}}{\sp{\sn shadowSecondOffsetY}{\sv 0}}{\sp{\sn shadowScaleXToX}{\sv 65536}}{\sp{\sn shadowScaleYToX}{\sv 0}}{\sp{\sn shadowScaleXToY}{\sv 0}}{\sp{\sn shadowScaleYToY}{\sv 65536}}
+{\sp{\sn shadowPerspectiveX}{\sv 0}}{\sp{\sn shadowPerspectiveY}{\sv 0}}{\sp{\sn shadowWeight}{\sv 256}}{\sp{\sn shadowOriginX}{\sv 0}}{\sp{\sn shadowOriginY}{\sv 0}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn bWMode}{\sv 1}}
+{\sp{\sn dxyCalloutGap}{\sv 76200}}{\sp{\sn spcoa}{\sv 0}}{\sp{\sn spcod}{\sv 3}}{\sp{\sn dxyCalloutDropSpecified}{\sv 114300}}{\sp{\sn dxyCalloutLengthSpecified}{\sv 0}}
+{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn dxWrapDistLeft}{\sv 114300}}{\sp{\sn dyWrapDistTop}{\sv 0}}{\sp{\sn dxWrapDistRight}{\sv 114300}}
+{\sp{\sn dyWrapDistBottom}{\sv 0}}{\sp{\sn lidRegroup}{\sv 1}}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8439\dppolygon\dppolycount60\dpptx50\dppty0\dpptx40\dppty21\dpptx36\dppty31\dpptx31\dppty41\dpptx27\dppty53\dpptx24\dppty63\dpptx20\dppty75
+\dpptx17\dppty86\dpptx14\dppty99\dpptx12\dppty112\dpptx10\dppty124\dpptx8\dppty138\dpptx8\dppty152\dpptx8\dppty167\dpptx8\dppty183\dpptx9\dppty191\dpptx10\dppty199\dpptx11\dppty209\dpptx12\dppty217\dpptx14\dppty227\dpptx17\dppty236\dpptx19\dppty247
+\dpptx22\dppty257\dpptx25\dppty267\dpptx28\dppty278\dpptx31\dppty289\dpptx35\dppty301\dpptx42\dppty324\dpptx50\dppty347\dpptx58\dppty371\dpptx67\dppty394\dpptx75\dppty417\dpptx82\dppty440\dpptx90\dppty462\dpptx93\dppty473\dpptx96\dppty484\dpptx99\dppty493
+\dpptx102\dppty503\dpptx104\dppty513\dpptx106\dppty522\dpptx108\dppty531\dpptx109\dppty539\dpptx110\dppty547\dpptx111\dppty555\dpptx112\dppty563\dpptx112\dppty571\dpptx112\dppty578\dpptx112\dppty586\dpptx111\dppty600\dpptx110\dppty614\dpptx108\dppty628
+\dpptx106\dppty641\dpptx104\dppty652\dpptx99\dppty674\dpptx97\dppty683\dpptx94\dppty692\dpptx92\dppty700\dpptx91\dppty707\dpptx90\dppty713\dpptx89\dppty719\dpx5235\dpy299\dpxsize123\dpysize720
+\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat0\dplinew25\dplinecor0\dplinecog0\dplinecob0}}}}{
+\par
+\par }{\lang1024 {\shp{\*\shpinst\shpleft8135\shptop260\shpright8935\shpbottom671\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpwrk0\shpfblwtxt0\shpz265\shplid1359{\sp{\sn shapeType}{\sv 3}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
+{\sp{\sn lTxid}{\sv 8388608}}{\sp{\sn dxTextLeft}{\sv 0}}{\sp{\sn dyTextTop}{\sv 0}}{\sp{\sn dxTextRight}{\sv 0}}{\sp{\sn dyTextBottom}{\sv 0}}{\sp{\sn hspNext}{\sv 1359}}{\sp{\sn lineDashing}{\sv 2}}{\sp{\sn fLine}{\sv 1}}{\shptxt \pard\plain
+\qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\revised\lang1033\revauth1\revdttm1714043994 CM}{\lang1033
+\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8457\dptxbx{\dptxbxtext\pard\plain \qc\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\revised\lang1033\revauth1\revdttm1714043994 CM}{\lang1033
+\par }}\dpx8135\dpy260\dpxsize800\dpysize411\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{
+\par
+\par }\pard\plain \s40\qc\sb60\sa60\widctlpar\adjustright \b\fs20\lang2057\cgrid {
+\par }\pard \s40\qc\sb60\sa60\widctlpar\pnrnot1\adjustright {Figure }{\field{\*\fldinst { STYLEREF 1 \\s }}{\fldrslt {\lang1024 2}}}{\_3 Module RM Module Architecture}{\revised\revauth1\revdttm1714043995
+\par }\pard\plain \sb60\sa60\widctlpar\pnrnot1\adjustright \fs20\lang2057\cgrid {\revised\revauth1\revdttm1714043995 Note: Bhava suggests the addition of the CM as }{\revised\revauth1\revdttm1714044012 message source and destination in Figure 2-3 to be }{
+\revised\revauth1\revdttm1714044013 c}{\revised\revauth1\revdttm1714044012 ompat}{\revised\revauth1\revdttm1714044013 i}{\revised\revauth1\revdttm1714044012 ble with }{\revised\revauth1\revdttm1714044014 newly-added }{\revised\revauth1\revdttm1714044013
+TBD on page }{\revised\revauth1\revdttm1714044014 13}{\revised\revauth1\revdttm1714044015 .}{
+\par }\pard\plain \s2\sb240\sa60\keepn\widctlpar\outlinelevel1\adjustright \b\lang2057\cgrid {\b0\fs20 {\*\bkmkstart _Toc432248057}The control structure accompanying Figure 2-3 is described in C as follows:{\*\bkmkend _Toc432248057}
+\par }\pard\plain \sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {void RM_Main(void)
+\par \{
+\par }\pard \sa60\widctlpar\adjustright {\tab OS_ITCM sg_T \tab *}{\b pRmRxMsg; /* }{point to a message received directly from VxWork queue}{\b */
+\par \tab }{While (1)
+\par }{\b \tab \{
+\par }\pard \fi360\li360\sa60\widctlpar\adjustright {Read a message into}{\b pRmRxMsg }{from the RM\rquote s VxWorks queue;
+\par If (Decoding needed)
+\par \tab Decode the received pRmRxMsg;
+\par If (Decoding OK)
+\par \{
+\par }\pard \fi360\li720\sa60\widctlpar\adjustright {switch (RM_State)
+\par \{
+\par case NOT_INITIALISED:
+\par }\pard \fi360\li360\sa60\widctlpar\adjustright {\tab \tab RM_InitialisingRM( );
+\par \tab \tab break;
+\par }\pard \fi360\li720\sa60\widctlpar\adjustright {case RM_DOWN:
+\par }\pard \fi360\li360\sa60\widctlpar\adjustright {\tab \tab RM_RMDown( );
+\par \tab \tab break;
+\par }\pard \fi360\li720\sa60\widctlpar\adjustright {case RM_RUNNING:
+\par }\pard \fi360\li360\sa60\widctlpar\adjustright {\tab \tab If (Received message is PAGEi||RESETi||CHN_REQi||HO_REQi)
+\par \tab \tab \tab RM_RMRunning( );
+\par \tab \tab else
+\par \tab \tab \tab (RM_SmContxt[AirLinkID].SmState)();
+\par \tab \tab break;
+\par }\pard \sa60\widctlpar\adjustright {\tab \tab \tab default:
+\par \tab \tab \tab \tab __LOG_FUNC_(RM_TASK_ID, \ldblquote Received non-relevant message:%d\rdblquote , pRmRxMsg);
+\par \tab \tab \tab \tab break;
+\par \tab \tab \tab \} /* End of switch (RM_State) */\tab
+\par \tab \tab \} /* End of if (Decoding OK) */
+\par \tab \tab Release memory occupied by the received message;
+\par }\pard \fi360\sa60\widctlpar\adjustright {\} /* End of while(1) */
+\par }\pard \sa60\widctlpar\adjustright {\} /* End of RM_Main() */
+\par }\pard\plain \s42\sb60\sa60\widctlpar\adjustright \fs20\lang2057\cgrid {\revised\revauth1\revdttm1714044021 \page }{\b\fs28\revised\revauth1\revdttm1714044021\crauth1\crdate1714044023 Appendix A: Ian}{
+\b\fs28\revised\revauth1\revdttm1714044022\crauth1\crdate1714044023 \rquote s Comments and Discussion Minutes
+\par }\pard \s42\widctlpar\pnrnot1\adjustright {\i From: \tab Ian Sayers[SMTP:isayers@netcomuk.co.uk]
+\par Sent: \tab Wednesday, October 07, 1998 7:31 AM
+\par To: \tab Bhava Nelakanti; Xiaode Xu; Sheausong Yang
+\par }\pard \s42\widctlpar\adjustright {\i
+\par }\pard \s42\widctlpar\pnrnot1\adjustright {\i Cc: \tab Jan Long; JoAnne Miller
+\par Subject: \tab RE: CallFlow V0.1 and RRM design
+\par }{\revised\revauth1\revdttm1714044044
+\par Conference call discussion occurred on 10/7/98 afternoon between : Bhava, Jo Anne an Xiaode. Recorder: Xiaode}{
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {Just a few comments on the Call Flows and the process in general. You may have already considered these issues but just in case.
+\par
+\par }\pard \s42\qj\fi-180\li180\widctlpar\pnrnot1\adjustright {1. Although for Pre-Alpha we will not support synchronised handover it willbe a requirement in the Alpha/Beta time frame. In
+ which case we need to make sure we do nothing that will make it difficult to support Synchronised handover in the very near future. The RR layer should not be concerned with the GPS system, that needs to be taken care of by the OAM system - at least tha
+t is my recollection and current feeling.
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714044046
+\par Minutes: }{\revised\revauth1\revdttm1714044048 Two }{\revised\revauth1\revdttm1714044049 issues are highlighted for further investigation:
+\par - }{\revised\revauth1\revdttm1714044046 Tailor GSM handover signalling flows to fit into PocketBTS}{\revised\revauth1\revdttm1714044047 \rquote s need.
+\par }\pard \s42\qj\fi-180\li180\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714044049 - }{\revised\revauth1\revdttm1714044047 Decide }{\revised\revauth1\revdttm1714044048 which of the GSM-specified handover-related synchronisation need to be
+supported by PocketBTS.}{\revised\revauth1\revdttm1714044047
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714044050 But currently, the team will focus on design and implementation of [10]\emdash PreAlpha Release Call Flows.
+\par }{
+\par }\pard \s42\qj\fi-180\li180\widctlpar\pnrnot1\adjustright {2. As we are only going to support the SDCCH/4 (I think) option we need to consider implementation of Very Early Assignment (VEA)
+to a TCH/F, this can help with the signalling load and allow more calls to complete. It can also be a nightmare to get right. At 15 TCHs we should be OK, using SDCCH/4 at a normal traffic load, however in high traffic (i.e. Private networks) this may no
+t
+ be sufficient. We therefore need to consider two solutions: Allow dynamic reconfiguration to SDCCH/8 usage or VEA. I think with VEA we can smoothly rollover to this configuration as SDCCH/4s become loaded. However it does mean that we need to support a
+ SigTypeCHN on a physical Traffic Channel and not only the BCCH/SDCCH/4.
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {
+\par }\pard \s42\qj\li180\widctlpar\pnrnot1\adjustright {One other item that has burnt me in the past is the problem of excessive RACHs that cause premature overload of the SDCCH channels. I am not sure how to handle this cleanly as it usu
+ally involves fine tuning the BCCH parameters, good L1 decoding and the ability to respond to a RACH quickly preventing a mobile from "flooding" the BTS. This may be easier in our situation as there is no Abis or BSC to slow things down. Any thoughts?}{
+\revised\revauth1\revdttm1714044051
+\par
+\par }\pard \s42\qj\fi-810\li990\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714044051 Minutes: }{\revised\revauth1\revdttm1714044052 Relevant design points have been added to address this comment.}{\revised\revauth1\revdttm1714044053
+ Please refer to Section 2.4 for details.}{\revised\revauth1\revdttm1714044051 }{
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {
+\par }\pard \s42\qj\fi-180\li180\widctlpar\pnrnot1\adjustright {3. Any timers that are introduced into the state machines also need to be included in the MIB, if they are specific to the JetCell BTS. I s
+eem to recall that there are a few additional timers that need to be created as a "design option".
+\par }\pard \s42\qj\fi-810\li810\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714044054 Minutes: The additional timers have been realised but need further input from Ian. }{\revised\revauth1\revdttm1714044055 Hope Sheausong can advises, too. }{
+\revised\revauth1\revdttm1714044054 Randy will}{\revised\revauth1\revdttm1714044056 also}{\revised\revauth1\revdttm1714044054 be consulted for this comment }{
+\par }\pard \s42\qj\fi-180\li180\widctlpar\pnrnot1\adjustright {
+4. In state S5, especially for a LUP, there is a "follow on proceed" (section 10.5.3.7 of 04.08) field that allows the MM layer to retain the radio resources. I assume we can handle this and will not release the LUP "call" before checking this sta
+tus bit. This is a Phase 2 option that was not part of Phase 1. OK, not strictly RR :-)
+\par }\pard \s42\qj\fi-720\li720\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714044056 Minutes: Bhava agrees that this is totally MM\rquote s responsibility. One point has been added in Section 2.2 to explain }{
+\revised\revauth1\revdttm1714044058 this, too.}{\revised\revauth1\revdttm1714044056
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {
+\par }\pard \s42\qj\fi-180\li180\widctlpar\pnrnot1\adjustright {5. In S8 the Version 1 codec is fine, however we will need to support all the codecs in the Beta time frame, especially EFR.
+\par }\pard \s42\qj\fi-810\li810\widctlpar\adjustright {\revised\revauth1\revdttm1714044059 Minutes: We are not clear about }{\revised\revauth1\revdttm1714044060 this comment.}{\revised\revauth1\revdttm1714044061
+ Does it mean that S8 needs to be further split into several states to distinguish an air link}{\revised\revauth1\revdttm1714044062 \rquote s qualit}{\revised\revauth1\revdttm1714044063 ies?}{\revised\revauth1\revdttm1714044062 }{
+\revised\revauth1\revdttm1714044060 Need further more explanation from Ian.
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {
+\par 6. How do we handle queuing of messages in handover cases?}{\revised\revauth1\revdttm1714044063
+\par Minutes: Relevant design points in Section 2.3 have been added to cover this comment.}{
+\par
+\par }\pard \s42\qj\fi-180\li180\widctlpar\pnrnot1\adjustright {
+7. Handover will be very different in the Private PocketBTS domain since we do not have an MSC or Anchor MSC concept. In order to spread the load we cannot afford to anchor a call to a particular PocketBTS as this would quickly overwhelm the software. T
+herefore we need to think of some means of
+\par }\pard \s42\qj\li180\widctlpar\pnrnot1\adjustright {
+providing all the necessary Call State data to the target/new BTS when a handover is necessary. This helps deal with the signalling issues, however we also have some problems with the transport. In this case howe
+ver it will be upto the DSP to deal with the despatch and receipt of Voice/Data frames.}{\revised\revauth1\revdttm1714044064
+\par }\pard \s42\qj\fi-810\li990\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714044064 Minutes: Refer to minutes of comment 1, call/message flows working for }{\revised\revauth1\revdttm1714044067 Private }{\revised\revauth1\revdttm1714044064
+PocketBTS domain should be developed.}{
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {
+\par }\pard \s42\qj\fi-180\li180\widctlpar\pnrnot1\adjustright {8. Some of the Bis and Ter System Information messages we will need to support when going to GSM 900. The ones we will never support are - plan to support the rest:
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {
+\par }\pard \s42\qj\li180\widctlpar\pnrnot1\adjustright { Type 6 - I think it is only used for MS supporting Group Services.
+\par Type 10 - and derivatives, only used by MSs supporting Group Services.
+\par Type 11 - and derivatives, only used by MSs supporting Group Services.
+\par Type 12 - and derivatives, only used by MSs supporting Group Services.
+\par
+\par We do not plan to support any Group Call services, so anything to do with these services can be dropped. They tend to say only for VGCS or VGBS in the specs. However we will need to support Type 13, 14 and 15 which are used by GPRS.}{
+\revised\revauth1\revdttm1714044065
+\par }\pard \s42\qj\fi-810\li990\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714044065 Minutes: Investigation needed for future releases. }{\revised\revauth1\revdttm1714044066 }{\revised\revauth1\revdttm1714044069 Type 1-6 without \ldblquote bis
+\rdblquote and \ldblquote ter\rdblquote ones are still assumed for the PreAlpha Release if this consideration is feasible. Please give further comments if }{\revised\revauth1\revdttm1714044070 needed.}{
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {
+\par }\pard \s42\qj\fi-270\li270\widctlpar\pnrnot1\adjustright {9. Not strictly RR again, however we need to be able to send a "canned" MM information message, similar to that suggested for the System Information Messages. The MM Information
+ message is used to convey the name of the network to the Mobile station. This could be useful if an operator wishes to use a different MNC for the Private Network, this way we could associate a name with the network e.g. JetCell Network.
+\par }\pard \s42\qj\fi-810\li810\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714044070 Minutes: Since MS comes to picture here, we are not sure how this scenario work}{\revised\revauth1\revdttm1714044071 s}{\revised\revauth1\revdttm1714044070
+ in general. }{\revised\revauth1\revdttm1714044071 Probably we are using old suites of GSM Specs. The RM, MM, CM }{\revised\revauth1\revdttm1714044073 will consider this comment in order to make them capable in this sense i.e. pass canned messages.}{
+\revised\revauth1\revdttm1714044074 Need clarification from Ian, too.}{\revised\revauth1\revdttm1714044070
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {
+\par }\pard \s42\qj\fi-270\li270\widctlpar\pnrnot1\adjustright {
+10. When allocating Timeslots we also need to make sure that we can allocate multiple slots to an MS in order to support HSCSD/GPRS. So there should be no hard coded assumptions that an MS will only ever be allocated 1 TCH. The allocation
+ should be based on the Service Request and Classmark of the MS.
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {\revised\revauth1\revdttm1714044075 Minutes: Thanks for this good point. RM, MM and CM should be}{\revised\revauth1\revdttm1714044077 designed}{\revised\revauth1\revdttm1714044075 adaptable as such.
+\par }{
+\par }\pard \s42\qj\fi-270\li270\widctlpar\pnrnot1\adjustright {11. Finally... In order to help network operators with deploying/managing the network they like to
+ have as many pieces of measurement data as possible, this usually means beyond that defined in the 12.04 spec. This could include internal information like, for example, number of times the PIC has been reset on the RF card. This may be a little premat
+u
+re at this stage however we need to keep in mind that we will have to support not only the standard GSM measurements, but also some of our own. So if you see something that might be a useful metric for debugging a network then we need some way of capturi
+n
+g that information in our MIB for access by the Network manager. I think Nokia have the ability to generate about 500 different measurements, beyond the normal data. This also means we have to be able to sensibly group the measurements so they do not ov
+e
+rwhelm the operator, for example, things could be related to Hardware, Software, Radio, operations, call processing, handover etc etc. We must be able to support the majority of 12.04 messages before we release, some may not be relevant to us but operato
+rs will want to see most of them.}{\revised\revauth1\revdttm1714044078
+\par Minutes: Need seriously considered later.}{
+\par }\pard \s42\qj\widctlpar\pnrnot1\adjustright {
+\par That's it for now.
+\par
+\par Ian
+\par
+\par }{\revised\revauth1\revdttm1714044079 \page }{\b\fs28\revised\revauth1\revdttm1714044079\crauth1\crdate1714044079 Appendix B: }{\b\fs28\revised\revauth1\revdttm1714044079 Ian and Jan\rquote s Email Comment}{\b\fs28\crauth1\crdate1714044079
+\par }{From: \tab Jan Long
+\par Sent: \tab Tuesday, October 06, 1998 2:11 PM
+\par To: \tab Winfield Huang; Xiaode Xu; 'sheausongyang@cypress-network.com'; 'bnelakanti@home.com'
+\par Subject: \tab FW: Paging and queuing, and bursts and all that
+\par
+\par FYI.
+\par
+\par This is Ian's take on the question. I guess Bhava and Sheausong can help sort this out and then we can get back to Jim Mar.
+\par
+\par Sheausong \endash don't forget we are not completely Abis free, since we still plan to deploy Adaptis.
+\par
+\par Regards,
+\par
+\par Jan
+\par
+\par -----Original Message-----
+\par From:\tab Ian Sayers [SMTP:isayers@netcomuk.co.uk]
+\par Sent:\tab Tuesday, October 06, 1998 2:08 PM
+\par To:\tab Jan Long
+\par Subject:\tab RE: Paging and queuing, and bursts and all that
+\par
+\par This was all discussed in a Frontier meeting and with Sheausong I think, some time ago. The plan I recall was to queue the Pages until just before they are due to be sent and then group those
+that could be, before despatch. The debate was where the queuing would be done, at L3 or at L1. I cannot remember what the decision was at the time. But L3 is probably the best point as pages can be grouped at this point. The delay in going to L1 is n
+egligible since we have no ABis to get in the way. In this case the pages can go straight through once they arrive at the L1 stack and do not need to be queued twice.
+\par There is a big difference between the iwv units and what we are doing. In that the BSC an
+d BTS are integrated into one unit therefore we can more accurately time the page to the radio interface. Whereas the iwv BSC was remote from the BTS and could not queue the page messages very well. We have an advantage in that respect. Anyway as we on
+ly have 4 signalling links we may not be able to support a high calling rate.
+\par I think you need to get Sheausong and Bhava involved in this discussion.
+\par Ian
+\par -----Original Message-----
+\par From:\tab Jan Long [mailto:jlong@JetCell.com]
+\par Sent:\tab 06 October 1998 09:36 PM
+\par To:\tab 'isayers@netcomuk.co.uk'
+\par Subject:\tab Paging and queuing, and bursts and all that
+\par
+\par
+\par Ian,
+\par
+\par Jim Mar, Winfield, Xiaode, and Chetan were deep into a discussion last night that reminded me of a problem that iWV faced. Please shed some light on this if you can.
+\par 1.\tab Jim is doing the BSP from PowerPC to DSP package right now.
+\par 2.\tab He is trying to take into account all the messaging types, and how he needs to treat them.
+\par 3.\tab The issue of "Paging" came up.
+\par 4.\tab It is not clear if the right way to send the Page is:
+\par a.\tab Immediately as received
+\par b.\tab Assign Pages top priority (cannot be pre-empted)
+\par c.\tab Wait for other Pages to fill the queue
+\par d.\tab ????
+\par 5.\tab What about "Paging Groups". How does this work, and should this be handled differerently?
+\par
+\par I seem to remember something about iWV having trouble because the "paging" messages were not getting out in time and was backing up, or MS would not be happy or something like that?
+\par Please let me know what you think, and if you want, just copy winfield (whuang), or Xiaode (xxu) on this.
+\par - j
+\par \page }{\b\fs24\revised\revauth1\revdttm-2044050776\crauth1\crdate-2044050776 Appendix C Ian\rquote s Email Comments}{\b\fs24\revised\revauth1\revdttm-2044050776
+\par }{\b\fs24\crauth1\crdate-2044050776
+\par }\pard \s42\qj\widctlpar\adjustright {From: \tab Ian Sayers[SMTP:isayers@netcomuk.co.uk]
+\par Sent: \tab Thursday, October 08, 1998 8:51 AM
+\par To: \tab Bhava Nelakanti; Sheausong Yang; Xiaode Xu
+\par Cc: \tab JoAnne Miller; Jan Long
+\par Subject: \tab RE: Discussion on Ian's comments
+\par
+\par The review seems to have addressed all my issues. However I see that some further explanation is needed on my more "cryptic" comments, sorry about that they seemed OK at the time but on re-reading they perhaps need more clarification. I will only pick ou
+t the points indicated for further clarification.
+\par
+\par {\pntext\pard\plain\s42 \f14\fs20\lang2057\cgrid \loch\af14\dbch\af0\hich\f14 \'d8\tab}}\pard \s42\qj\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls121\pnrnot0\pnf14\pnindent360\pnhang{\pntxtb \'d8}}\ls121\adjustright {
+3. Any timers that are introduced into the state machines also need to be included in the MIB, if they are specific to the JetCell BTS. I seem to recall that there are a few additional timers that need to be created as a "design option".
+\par }\pard \s42\qj\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {
+\par Some of the timers needed by the RR, MM and CM processing are defined in the GSM specs and will already be part of the GSM MIB, we just have to use them. However there are some timers (or other OAM data) that are not de
+fined by the GSM specs and need to be provided to prevent failures from causing problems, other timers (or OAM data) are needed to implement options that are "left to the manufacturer". One of the manufacturer options is how we detect loss of the radio i
+n
+terface, usually known as the "SACCH leaky bucket". The majority of schemes for detecting loss of the radio are based on the loss of SACCH from a mobile that is in dedicated mode. I am not sure how we have decided to implement this feature? The other t
+i
+mers, for instance, are a Paging Repeat Timer and Number of times to repeat a Page. We also need to support things like the 9th TSC to deal with some mobile stations as defined in 09.94. This issue involves both the MIB, RR/MM/CM and perhaps H.323 layers
+.
+ If we can develop a standard way of adding new items to the MIB then this will make the whole process easier and avoid problems with MIB entries not be available to the layers that need to use the field as we release new software loads. I think I am ad
+vocating that we try and provide the correct methods at the early stage rather than later, when it may be too late :-)
+\par
+\par {\pntext\pard\plain\s42 \f14\fs20\lang2057\cgrid \loch\af14\dbch\af0\hich\f14 \'d8\tab}}\pard \s42\qj\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls121\pnrnot0\pnf14\pnindent360\pnhang{\pntxtb \'d8}}\ls121\adjustright {
+5. In S8 the Version 1 codec is fine, however we will need to support all the codecs in the > Beta time frame, especially EFR.
+\par }\pard \s42\qj\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {
+\par This c
+omment was really a flag to indicate that the Version 1 Codec was OK for now, however we will need to support the other codecs as well, hence the software needs to be adaptable to accommodate new codecs as we need them and new codecs developed by ETSI.
+
+\par
+\par {\pntext\pard\plain\s42 \f14\fs20\lang2057\cgrid \loch\af14\dbch\af0\hich\f14 \'d8\tab}}\pard \s42\qj\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls121\pnrnot0\pnf14\pnindent360\pnhang{\pntxtb \'d8}}\ls121\adjustright {
+9. Not strictly RR again, however we need to be able to send a "canned" MM information message, similar to that suggested for the System Information Messages. The MM Information message is used to convey the name of the network to the Mobile station. Thi
+s could be useful if an operator wishes to use a different MNC for the Private Network, this way we could associate a name with the network e.g. JetCell Network.
+\par }\pard \s42\qj\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\adjustright {
+\par The MM information message can be found in 04.08 V5.4.1, in sections 4.3.6 and 9.2.15a. The
+message can be sent at any time that an RR connections is established. The recommended time is just after the CM_Service_Accept or Authentication Request has been sent, otherwise it could be sent at any time. If it is sent to a Mobile that does not supp
+o
+rt the message we will get an MM-Status back with cause 97. Of course this can be ignored. The message structure is very simple and could be canned in the MIB for sending to the MS. It could also be used to help debug the system by using a mobile that c
+an identify the mobile is receiving, of course we could use Cell Broadcast.
+\par
+\par
+\par {\pntext\pard\plain\s42 \f14\fs20\lang2057\cgrid \loch\af14\dbch\af0\hich\f14 \'d8\tab}}\pard \s42\qj\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlblt\ilvl0\ls121\pnrnot0\pnf14\pnindent360\pnhang{\pntxtb \'d8}}\ls121\adjustright {12.
+\par }\pard \s42\qj\widctlpar\adjustright {Cell broadcast does steal some of the SDCCH time, however there are two options for the CBCH channel in that the BTS can now send a Basic CBCH and an Extended CBCH that oc
+cupies the remaining time. It used to be that the Basic Cell Broadcast only occupied 1/2 of the capacity, now there can be two CBCH messages. This second Extended message is an option. I think this is described in 05.02 (section 6.5.4), 03.41 and 04.12
+. The CBCH usually replaces SDCCH number 2 in both the SDCCH/4 and SDCCH/8 configurations.
+\par
+\par Hope these help expand on my comments, if not please let me know.
+\par
+\par Regards
+\par Ian
+\par
+\par From: \tab Ian Sayers[SMTP:isayers@netcomuk.co.uk]
+\par Sent: \tab Thursday, October 08, 1998 10:18 AM
+\par To: \tab Sheausong Yang; Bhava Nelakanti; Xiaode Xu
+\par Cc: \tab JoAnne Miller; Jan Long
+\par Subject: \tab Some additional observations
+\par
+\par Hi
+\par
+\par Some more things to think about :-)
+\par
+\par 1. When we implement Channel Mode Modify (04.08 s3.4.6) we should put in an extra timer in to protect the network should the CMM Ack not be returned.
+\par
+\par 2. In section 04.08 s9.1.2. the Classmark Enquiry should not be sent to a Phase 1 Mobile Station.
+\par
+\par 3. Will the MS Classmark be store at the RR level (useful for the future of the PocketBTS) or will it only be accessible at the other levels?
+\par
+\par Regards
+\par Ian
+\par }} \ No newline at end of file
diff --git a/data/mnet/GP10/Host/rm/Docs/Q931cause.doc b/data/mnet/GP10/Host/rm/Docs/Q931cause.doc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Docs/Q931cause.doc
diff --git a/data/mnet/GP10/Host/rm/Makefile b/data/mnet/GP10/Host/rm/Makefile
new file mode 100644
index 0000000..69aaecb
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Makefile
@@ -0,0 +1,16 @@
+##########################################################
+#
+# (c) Copyright Cisco 2000
+# All Rights Reserved
+#
+##########################################################
+
+SUBDIRS= src src_api src_init
+
+# TOP_OF_VOB must be defined before including l3defs.mk
+TOP_OF_VOB = ..\..
+
+include $(TOP_OF_VOB)\l3defs.mk
+
+copyall:
+ $(CP) bin\*.out $(TOP_OF_VOB)\bin\*.out \ No newline at end of file
diff --git a/data/mnet/GP10/Host/rm/Shell.log_981210 b/data/mnet/GP10/Host/rm/Shell.log_981210
new file mode 100644
index 0000000..b965921
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Shell.log_981210
@@ -0,0 +1,1080 @@
+
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ////// ////// ////// ////// ////// |
+ ////// ////// ////// ////// ////// | T O R N A D O
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// | Development System
+ //// //// //// //// //// |
+ //// //// //// //// //// |
+ //// //// //// //// //// | Host Based Shell
+ //// //// //// //// //// |
+ //// //// //// //// //// |
+ /// /// /// /// /// | Version 1.0.1
+ /// /// /// /// /// |
+ // // // // // |
+ // // // // // |
+ // // // // // |
+ // // // // // |
+
+ Copyright Wind River Systems, Inc., 1995-1997
+
+C++ Constructors/Destructors Strategy is AUTOMATIC
+
+->
+->
+-> cd "../../pre-alpha"
+value = 0 = 0x0
+-> pwd
+//Astro/Archive/Workdirs/Integration/pre-alpha
+value = 0 = 0x0
+-> i
+ NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
+---------- ------------ -------- --- ---------- -------- -------- ------- -----
+tLogTask _logTask 3fce8fc 0 PEND 167ddb 3fce868 0 0
+tExcTask _excTask 3fd1214 0 PEND 167ddb 3fd1184 0 0
+tShell _shell 3fa7704 1 PEND 11583c 3fa73e4 0 0
+tWdbTask 0x14e294 3fa88ac 3 READY 167a0d 3fa879c 0 0
+lapdm_phserlapdm_phserv 3f569c8 10 PEND 167ddb 3f56930 0 0
+lapdm_dlserlapdm_dlserv 3f8c2e8 10 PEND 167ddb 3f8c16c 0 0
+mmMain mmMain(void) 3e90bd0 10 PEND 167ddb 3e907f4 0 0
+tNetTask _netTask 3fc9664 50 READY 12a047 3fc95fc 0 0
+L1TaskUp taskDspUp(vo 3e7a950 100 PEND 11583c 3e7a8bc 0 0
+L1TaskDn taskDspDn(vo 3e727a8 100 PEND 167ddb 3e722e4 0 0
+rmTask rm_Main(void 3e93798 100 PEND 167ddb 3e93704 0 0
+value = 0 = 0x0
+-> <kill
+td lapdm_phserver
+value = 0 = 0x0
+td lapdm_dlserver
+value = 0 = 0x0
+td mmMain
+value = 0 = 0x0
+td rmTask
+value = 0 = 0x0
+td L1TaskUp
+value = 0 = 0x0
+td L1TaskDn
+value = 0 = 0x0
+
+unld "l1proxy_init.out"
+value = 0 = 0x0
+unld "lapdm_init.out"
+value = 0 = 0x0
+unld "mmm_init.out"
+value = 0 = 0x0
+unld "ccm_init.out"
+value = 0 = 0x0
+unld "rm_init.out"
+value = 0 = 0x0
+unld "lapdm_api.out"
+value = 0 = 0x0
+unld "rm_api.out"
+value = 0 = 0x0
+unld "l1proxy.out"
+value = 0 = 0x0
+unld "lapdm.out"
+value = 0 = 0x0
+unld "ril3.out"
+value = 0 = 0x0
+unld "jcc.out"
+value = 0 = 0x0
+unld "mmm.out"
+value = 0 = 0x0
+unld "ccm.out"
+value = 0 = 0x0
+unld "rm.out"
+value = 0 = 0x0
+
+i
+ NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
+---------- ------------ -------- --- ---------- -------- -------- ------- -----
+tLogTask _logTask 3fce8fc 0 PEND 167ddb 3fce868 0 0
+tExcTask _excTask 3fd1214 0 PEND 167ddb 3fd1184 0 0
+tShell _shell 3fa7704 1 PEND 11583c 3fa73e4 0 0
+tWdbTask 0x14e294 3fa88ac 3 READY 167a0d 3fa879c 0 0
+tNetTask _netTask 3fc9664 50 READY 12a047 3fc95fc 0 0
+value = 0 = 0x0
+
+-> i
+ NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
+---------- ------------ -------- --- ---------- -------- -------- ------- -----
+tLogTask _logTask 3fce8fc 0 PEND 167ddb 3fce868 0 0
+tExcTask _excTask 3fd1214 0 PEND 167ddb 3fd1184 0 0
+tShell _shell 3fa7704 1 PEND 11583c 3fa73e4 0 0
+tWdbTask 0x14e294 3fa88ac 3 READY 167a0d 3fa879c 0 0
+tNetTask _netTask 3fc9664 50 READY 12a047 3fc95fc 0 0
+value = 0 = 0x0
+-> <integ
+#
+# load all the module-init files (with global variables)
+#
+ld < K:/Workdirs/integration/l1proxy/I80486/l1proxy_init.out
+value = 15658280 = 0xeeed28
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm_init.out
+value = 15633672 = 0xee8d08
+ld < K:/Workdirs/integration/mm/I80486/mmm_init.out
+value = 15649024 = 0xeec900
+ld < K:/Workdirs/integration/cc/I80486/ccm_init.out
+value = 15649640 = 0xeecb68
+ld < K:/Workdirs/integration/rm/I80486/rm_init.out
+value = 15722680 = 0xefe8b8
+
+#
+# load all the module-api files (used by other modules)
+#
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm_api.out
+value = 15723296 = 0xefeb20
+ld < K:/Workdirs/integration/rm/I80486/rm_api.out
+value = 15723912 = 0xefed88
+
+#
+# load all the core module files next
+#
+ld < K:/Workdirs/integration/l1proxy/I80486/l1proxy.out
+value = 15749128 = 0xf05008
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm.out
+value = 3209032 = 0x30f748
+ld < K:/Workdirs/integration/ril3/I80486/ril3.out
+value = 3209648 = 0x30f9b0
+ld < K:/Workdirs/integration/jcc/I80486/jcc.out
+value = 15638536 = 0xeea008
+ld < K:/Workdirs/integration/mm/I80486/mmm.out
+value = 15904096 = 0xf2ad60
+ld < K:/Workdirs/integration/cc/I80486/ccm.out
+value = 15639152 = 0xeea270
+ld < K:/Workdirs/integration/rm/I80486/rm.out
+value = 15639768 = 0xeea4d8
+
+
+#
+# Initialization of all modules
+#
+CNI_LAPDM_Initialization
+value = 65598164 = 0x3e8f2d4
+#cni_testInit
+
+#create a lapdm instance channel type 0, trx 0, channel num 1, link 1
+#CNI_LAPDM_Create_Instance(0, 0 , 0x2000, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x2800, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x3000, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x3800, 0)
+
+
+#L3 register a lapdm instance oid 0, sapi 0, layer3_id 10, and a call back function
+#CNI_LAPDM_Instance_Registration(0, 0, 0x20, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(1, 0, 0x28, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(2, 0, 0x30, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(3, 0, 0x38, cni_l3CallBack)
+
+# Start MM Task and print its data
+mmInit
+value = 65493384 = 0x3e75988
+mmDataPrint
+MM Entry: -1, -1, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 1
+value = 27 = 0x1b
+
+
+# Start RRM Task
+rm_Task
+ENTER-rm_Go
+ENTER-rm_Main
+ENTER-rm_InitAll
+ENTER-sys_Init
+ENTER-sys_CreateMsgQs
+value = 66539400 = 0x3f74f88
+ENTER-sys_StartTasks
+ENTER-rm_WaitForL1Bootstrap: Entering...
+ENTER-rm_WaitForL1Rsp
+
+#
+initL1
+value = 65390344 = 0x3e5c708
+newInitDsp
+value = 589833 = 0x90009
+#hpi2dsp(&cx6,0,0x3800)
+newGo
+value = -4260864 = 0xffbefc00
+
+#
+i
+ NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
+---------- ------------ -------- --- ---------- -------- -------- ------- -----
+tLogTask _logTask 3fce8fc 0 PEND 167ddb 3fce868 0 0
+tExcTask _excTask 3fd1214 0 PEND 167ddb 3fd1184 0 0
+tShell _shell 3fa7704 1 PEND 11583c 3fa73e4 0 0
+tWdbTask 0x14e294 3fa88ac 3 READY 167a0d 3fa879c 0 0
+lapdm_phserlapdm_phserv 3f569c8 10 PEND 167ddb 3f56930 0 0
+lapdm_dlserlapdm_dlserv 3e7a950 10 PEND 167ddb 3e7a7d4 0 0
+mmMain mmMain(void) 3e75988 10 PEND 167ddb 3e755ac 0 0
+tNetTask _netTask 3fc9664 50 READY 12a047 3fc95fc 0 0
+L1TaskUp taskDspUp(vo 3e648b0 100 PEND 11583c 3e6481c 0 0
+L1TaskDn taskDspDn(vo 3e5c708 100 PEND 167ddb 3e5c244 0 0
+rmTask rm_Main(void 3f74f88 100 PEND 167ddb 3f74eb8 0 0
+value = 0 = 0x0
+
+-> From DSP
+03e64844: 10 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ENTER-rm_RetrvConfigFromOam
+ENTER-rm_PopulateSI2
+ENTER-rm_PopulateSI3
+ENTER-rm_PopulateSI4
+ENTER-rm_PopulateSI5
+ENTER-rm_PopulateSI6
+ENTER-rm_InitRm
+ENTER-rm_InitLAPDm
+CNI_LAPDM_Create_Instance: channelType 4, trx 0, channel 32768, link 32
+T_CNI_LAPDM_Channel::Assign , oid 0, gsmChannelType 4
+CNI_LAPDM_Instance_Registration: oid 0, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Create_Instance: channelType 7, trx 0, channel 34816, link 32
+T_CNI_LAPDM_Channel::Assign , oid 1, gsmChannelType 7
+CNI_LAPDM_Instance_Registration: oid 1, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Create_Instance: channelType 2, trx 0, channel 2560, link 0
+T_CNI_LAPDM_Channel::Assign , oid 2, gsmChannelType 2
+CNI_LAPDM_Create_Instance: channelType 1, trx 0, channel 2560, link 64
+T_CNI_LAPDM_Channel::Assign , oid 3, gsmChannelType 1
+CNI_LAPDM_Instance_Registration: oid 2, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 3, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 3, sapi, 3, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Create_Instance: channelType 2, trx 0, channel 3072, link 0
+T_CNI_LAPDM_Channel::Assign , oid 4, gsmChannelType 2
+CNI_LAPDM_Create_Instance: channelType 1, trx 0, channel 3072, link 64
+T_CNI_LAPDM_Channel::Assign , oid 5, gsmChannelType 1
+CNI_LAPDM_Instance_Registration: oid 4, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 5, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 5, sapi, 3, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Create_Instance: channelType 0, trx 0, channel 8192, link 0
+T_CNI_LAPDM_Channel::Assign , oid 6, gsmChannelType 0
+CNI_LAPDM_Create_Instance: channelType 1, trx 0, channel 8192, link 64
+T_CNI_LAPDM_Channel::Assign , oid 7, gsmChannelType 1
+CNI_LAPDM_Instance_Registration: oid 6, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 6, sapi, 3, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 7, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Create_Instance: channelType 0, trx 0, channel 10240, link 0
+T_CNI_LAPDM_Channel::Assign , oid 8, gsmChannelType 0
+CNI_LAPDM_Create_Instance: channelType 1, trx 0, channel 10240, link 64
+T_CNI_LAPDM_Channel::Assign , oid 9, gsmChannelType 1
+CNI_LAPDM_Instance_Registration: oid 8, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 8, sapi, 3, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 9, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Create_Instance: channelType 0, trx 0, channel 12288, link 0
+T_CNI_LAPDM_Channel::Assign , oid 10, gsmChannelType 0
+CNI_LAPDM_Create_Instance: channelType 1, trx 0, channel 12288, link 64
+T_CNI_LAPDM_Channel::Assign , oid 11, gsmChannelType 1
+CNI_LAPDM_Instance_Registration: oid 10, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 10, sapi, 3, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 11, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Create_Instance: channelType 0, trx 0, channel 14336, link 0
+T_CNI_LAPDM_Channel::Assign , oid 12, gsmChannelType 0
+CNI_LAPDM_Create_Instance: channelType 1, trx 0, channel 14336, link 64
+T_CNI_LAPDM_Channel::Assign , oid 13, gsmChannelType 1
+CNI_LAPDM_Instance_Registration: oid 12, sapi, 0, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 12, sapi, 3, layer3_id 0, p_callback_function 5901c4
+CNI_LAPDM_Instance_Registration: oid 13, sapi, 0, layer3_id 0, p_callback_function 5901c4
+ENTER-rm_InitIRT
+0th TCHF entryId data: iEntryId=2 ,entryId=1
+1th TCHF entryId data: iEntryId=4 ,entryId=3
+0th SDCCH4 entryId data: iEntryId=0,entryId=5
+1th SDCCH4 entryId data: iEntryId=1,entryId=7
+2th SDCCH4 entryId data: iEntryId=2,entryId=9
+3th SDCCH4 entryId data: iEntryId=3,entryId=11
+ENTER-rm_InitL1
+ENTER-rm_ConfigTrx
+ENTER-rm_SendTrxConfigToTrx: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+03e5c298: 07 00 00 00 10 15 00 00 02 2d 00 ee ee ee ee ee
+03e5c2a8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c2b8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+From DSP
+03e64844: 10 16 00 00 78 07 00 02 00 00 00 00 ff fe ff ff
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+03e5c298: 06 00 00 00 10 17 00 00 00 05 00 ee ee ee ee ee
+03e5c2a8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c2b8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 20 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 28 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 30 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 38 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 20 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 28 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 30 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 38 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 80 00 20
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 88 00 20
+
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x9000,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x9000, link 0x20
+07 00 00 00 02 01 00 00 90 00 20
+
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x9000,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x9000, link 0x20
+07 00 00 00 02 01 00 00 90 00 20
+
+From DSP
+03e64844: 10 18 00 00 00 00 00 00 00 00 00 00 ff fe ff ff
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+03e5c298: 06 00 00 00 10 17 00 00 02 01 00 ee ee ee ee ee
+03e5c2a8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c2b8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0a 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0a 00 40
+
+From DSP
+03e64844: 10 18 00 00 02 00 00 00 01 00 00 00 00 00 00 00
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+03e5c298: 06 00 00 00 10 17 00 00 04 01 00 ee ee ee ee ee
+03e5c2a8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c2b8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0c 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0c 00 40
+
+From DSP
+03e64844: 10 18 00 00 04 00 00 00 bc d5 00 80 ff fe ff ff
+SLOT ACTIVATION FINISHED
+ENTER-rm_SendSetUGainToTrx: Entering...
+ENTER-rm_SendSetDGainToTrx: Entering...
+ENTER-rm_SendTuneSynthToTrx: Entering...
+ENTER-rm_SendConfigFpgaDelayToTrx: Entering...
+CONFIG TRX/SLOTS FINISHED
+TRACE-rm_InitL1: bcchTrx=0, i=0
+End of rm_SendSynchInfoToBcchTrx()
+ENTER-rm_SendAllSystemInfosToBcchTrx
+ENTER-rm_SendSystemInfo2ToBcchTrx
+ENTER-rm_SendSystemInfo3ToBcchTrx
+ENTER-rm_SendSystemInfo4ToBcchTrx
+End of rm_SendAllSystemInfosToBcchTrx, bcchTrx=0
+ENTER-rm_SendSacchFillingToTrx
+ENTER-rm_SendSacchFillingToTrx
+End of rm_SendSacchFillingSI5 and SI6
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 05 00 00 00 10 10 00 00 00 01 00 ee ee ee ee ee
+03e5c2a8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c2b8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c2d8: 05 00 00 00 10 11 00 00 00 01 00 ee ee ee ee ee
+03e5c2e8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c2f8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c308: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c318: 07 00 00 00 10 12 00 00 00 00 00 ee ee ee ee ee
+03e5c328: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c338: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c348: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c358: 07 00 00 00 10 12 00 00 01 00 00 ee ee ee ee ee
+03e5c368: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c378: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c388: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c398: 07 00 00 00 10 12 00 00 02 00 00 ee ee ee ee ee
+03e5c3a8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c3b8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c3c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c3d8: 07 00 00 00 10 12 00 00 03 00 00 ee ee ee ee ee
+03e5c3e8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c3f8: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c408: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c418: 08 00 00 00 10 14 00 00 00 00 00 00 ee ee ee ee
+03e5c428: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c438: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+03e5c448: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c458: 22 00 00 00 0c 00 11 00 80 00 02 17 59 06 1a 8e
+03e5c468: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21
+03e5c478: 01 04 00 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c488: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c498: 22 00 00 00 0c 00 11 00 80 00 03 17 49 06 1b 00
+03e5c4a8: 01 00 f1 10 00 02 41 01 00 23 07 00 01 04 00 2b
+03e5c4b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c4c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c4d8: 22 00 00 00 0c 00 11 00 80 00 04 17 31 06 1c 00
+03e5c4e8: f1 10 00 02 07 00 01 04 00 2b 2b 2b 2b 2b 2b 2b
+03e5c4f8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c508: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c518: 1b 00 00 00 10 00 1a 00 05 12 06 1d 8e 00 00 00
+03e5c528: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 2b
+03e5c538: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c548: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c558: 1b 00 00 00 10 00 1a 00 06 12 06 1e 00 01 00 f1
+03e5c568: 10 00 02 23 21 2b 2b 2b 2b 2b 2b 2b 01 00 00 2b
+03e5c578: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c588: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 12 messages
+
+->
+->
+-> CNI_LAPDM_Ph_Callback received PH-RANDOM-ACCESS-IND, length 17
+0d 00 00 00 02 02 00 00 88 00 20 19 21 f5 00 00
+00
+
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 0
+ lapdm_oid = 1
+ primitive_type = 10
+ sapi = 0
+ channel_type = 7
+ error_cause = 0
+ unserved_data_after_release = 0
+ l3_data.msgLength = 8
+l3data hex dump
+19 21 f5 00 00 00 2b 2b
+
+RIL3_MD Dump RRM Message ------------END
+RM_MAIN:MD prim=0x010a,entryID=0,sapi=0, OId=1
+ENTER-rm_Despatch
+Entering rm_DlRaInd=0x010a
+ENTER-rm_DlRaInd
+TRACK-rm_DlRaInd: neci=0,cos=0,ref=25
+ENTER-rm_ChanReq
+ENTER-rm_AllocateSmCtxt
+TRACK-rm_AllocSmCtxt: Assigned SDCCH4 = 0
+ENTER-rm_SendChanActivation
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 19 00 00 00 08 00 21 00 20 00 00 00 03 01 00 01
+03e5c2a8: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2b
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+From DSP
+03e64844: 08 00 22 00 20 00 24 4e 21 f5 00 00 00 2b 2b 2b
+ENTER-rm_GetIrtEntryId
+TRACK-rm_GetIrtEntryId: Idx=0, entryId=5
+Rx L1 primitive= 0x0001,entryID=5
+ENTER-rm_Despatch
+ENTER-rm_S2ActivatingSigTrafficChan
+ENTER-rm_SendImmAssign
+RM_SENDIMMASSIGN: l3_data.length=23
+ENTER-rm_StartTimer: entry ID=5, timer ID=0
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 1e 00 00 00 02 00 01 00 90 00 20 2d 06 3f 03 20
+03e5c2a8: a2 95 19 21 f5 00 00 2b 2b 2b 2b 2b 2b 2b 2b 2b
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-DATA-IND, length 36
+20 00 00 00 02 00 02 00 20 00 00 21 f5 01 3f 49
+05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01 2b 2b
+
+T_CNI_LAPDM_Frame_Decoder::
+ frame format is 1 frame type is 4, frame control type is 1
+ 01 3f 49 05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00 24 01 2b 2b
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 5
+ lapdm_oid = 6
+ primitive_type = 1
+ sapi = 0
+ channel_type = 0
+ error_cause = 0
+ unserved_data_after_release = 0
+ l3_data.msgLength = 18
+l3data hex dump
+05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01
+
+CNI_LAPDM_Ph_Callback received PH-DATA-IND, length RIL3_MD Dump RRM Message ------------EN
+D
+RIL3MD ==> MM
+RIL3_MD Dump CCMM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65534800
+ entry_id = 5
+ lapdm_oid = 6
+ primitive_type = 1
+ sapi = 0
+ l3_data.msgLength = 18
+l3data hex dump
+05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01
+
+RIL3_MD Dump CCMM Message ------------END
+CNI_LAPDM_Ph_Data_Request send a frame, length=23
+03 73 49 05 08 70 32 f4 03 ff fe 20 08 29 43 03
+75 47 00 24 MM Log: Received Message from MD, Msg Type: 081
+ MM Log: Sent Message to LAPDm, Msg Type: 2b2
+2bMM Log: Sent Message to RR, Prim. Type, Msg Type: 11
+
+0
+36
+20 00 00 00 02 00 02 00 20 00 00 21 f5 01 3f 49
+05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01 2b 2b
+
+T_CNI_LAPDM_Frame_Decoder::
+ frame format is 1 frame type is 4, frame control type is 1
+ 01 3f 49 05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00 24 01 2b 2b
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 5
+ lapdm_oid = 6
+ primitive_type = 11
+ sapi = 0
+ channel_type = 0
+ error_cause = 14
+ unserved_data_after_release = 0
+ l3_data.msgLength = 0
+l3data hex dump
+
+RIL3_MD Dump RRM Message ------------END
+Set timer for 60000, timeout in 10000
+CNI_LAPDM_Ph_Data_Request send a frame, length=23
+03 00 1d 05 02 00 f1 10 00 02 2b 2b 2b 2b 2b 2b
+2b 2b 2b 2b 2b 2b 2b
+
+RM_MAIN:MD prim=0x0101,entryID=5,sapi=0, OId=6
+ENTER-rm_Despatch
+ENTER-rm_S3SigChanActivated
+ENTER-rm_StopTimer: entryID=5, timerID=0
+ENTER--rm_ProcClassMarkIE: entryID=5
+LUP===========: PD=5,MT=
+LUP:Type IE: present=1,forBit=0,type=0
+LUP:CipherKey IE: present=1,keySeq=7
+LUP:LAI IE---------------------------
+LUP:Classmark1 IE: present=1,revLevel=1,esInd=0,a51=0,rfPowerCap=66538760
+LUP:MobileID IE---------------------------
+STAY in RM_MAIN while(1) loop
+RM_MAIN:MM prim=0x030b,entryID=5
+ENTER-rm_Despatch
+ENTER-rm_S5SigModeEstablished
+ENTER-rm_SendChanRelease:entryId=5
+rm_SendChanRelease: mOId=6,entryId=5,sapi=0
+ENTER-rm_SendDeactivateSacch
+ENTER-rm_StartTimer: entry ID=5, timer ID=2
+STAY in RM_MAIN while(1) loop
+RM_MAIN:MD prim=0x010b,entryID=5,sapi=0, OId=6
+ENTER-rm_Despatch
+ENTER-rm_S7ReleasingSigTrafficChan
+ERROR-rm_S7SigChanActivated: LAPDm message:11
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 1e 00 00 00 02 00 01 00 20 00 00 03 73 49 05 08
+03e5c2a8: 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00 24 01
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c2d8: 1e 00 00 00 02 00 01 00 20 00 00 03 00 1d 05 02
+03e5c2e8: 00 f1 10 00 02 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+03e5c2f8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c308: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+03e5c318: 06 00 00 00 08 00 25 00 20 00 00 03 00 1d 05 02
+03e5c328: 00 f1 10 00 02 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
+03e5c338: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c348: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 3 messages
+CNI_LAPDM_Ph_Callback received PH-RANDOM-ACCESS-IND, length 17
+0d 00 00 00 02 02 00 00 88 00 20 0d 2c 41 00 00
+00
+
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 0
+ lapdm_oid = 1
+ primitive_type = 10
+ sapi = 0
+ channel_type = 7
+ error_cause = 0
+ unserved_data_after_release = 0
+ l3_data.msgLength = 8
+l3data hex dump
+0d 2c 41 00 00 00 08 70
+
+RIL3_MD Dump RRM Message ------------END
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x0,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x0, link 0x20
+07 00 00 00 02 03 00 00 00 00 20
+
+RM_MAIN:MD prim=0x010a,entryID=0,sapi=0, OId=1
+ENTER-rm_Despatch
+Entering rm_DlRaInd=0x010a
+ENTER-rm_DlRaInd
+TRACK-rm_DlRaInd: neci=0,cos=0,ref=13
+ENTER-rm_ChanReq
+ENTER-rm_AllocateSmCtxt
+TRACK-rm_AllocSmCtxt: Assigned SDCCH4 = 1
+ENTER-rm_SendChanActivation
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 19 00 00 00 08 00 21 00 28 00 00 00 03 01 00 01
+03e5c2a8: 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+From DSP
+03e64844: 08 00 22 00 28 00 2d 6e 2c 41 00 00 00 08 70 32
+ENTER-rm_GetIrtEntryId
+TRACK-rm_GetIrtEntryId: Idx=1, entryId=7
+Rx L1 primitive= 0x0001,entryID=7
+ENTER-rm_Despatch
+ENTER-rm_S2ActivatingSigTrafficChan
+ENTER-rm_SendImmAssign
+RM_SENDIMMASSIGN: l3_data.length=23
+ENTER-rm_StartTimer: entry ID=7, timer ID=0
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 1e 00 00 00 02 00 01 00 90 01 20 2d 06 3f 03 28
+03e5c2a8: a2 95 0d 2c 41 00 00 2b 2b 2b 2b 2b 2b 2b 2b 2b
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-DATA-IND, length 36
+20 00 00 00 02 00 02 00 28 00 00 2c 41 01 3f 49
+05 08 78 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01 2b 2b
+
+T_CNI_LAPDM_Frame_Decoder::
+ frame format is 1 frame type is 4, frame control type is 1
+ 01 3f 49 05 08 78 32 f4 03 ff fe 20 08 29 43 03 75 47 00 24 01 2b 2b
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 7
+ lapdm_oid = 8
+ primitive_type = 1
+ sapi = 0
+ channel_type = 0
+ error_cause = 0
+ unserved_data_after_release = 0
+ l3_data.msgLength = 18
+l3data hex dump
+05 08 78 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01
+
+RIL3_MD Dump RRM Message ------------END
+RIL3MD ==> MM
+RIL3_MD Dump CCMM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65534800
+ entry_id = 7
+ lapdm_oid = 8
+ primitive_type = 1
+ sapi = 0
+ l3_data.msgLength = 18
+l3data hex dump
+05 08 78 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01
+
+RIL3_MD Dump CCMM Message ------------END
+MM Log: Received Message from MD, Msg Type: 8
+MM Log: Sent Message to LAPDm, Msg Type: 2
+MM Log: Sent Message to RR, Prim. Type, Msg Type: 11 0
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x0,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x0, link 0x20
+07 00 00 00 02 03 00 00 00 00 20
+
+RM_MAIN:MD prim=0x0101,entryID=7,sapi=0, OId=8
+ENTER-rm_Despatch
+ENTER-rm_S3SigChanActivated
+ENTER-rm_StopTimer: entryID=7, timerID=0
+ENTER--rm_ProcClassMarkIE: entryID=7
+LUP===========: PD=5,MT=
+LUP:Type IE: present=1,forBit=1,type=0
+LUP:CipherKey IE: present=1,keySeq=7
+LUP:LAI IE---------------------------
+LUP:Classmark1 IE: present=1,revLevel=1,esInd=0,a51=0,rfPowerCap=66538760
+LUP:MobileID IE---------------------------
+STAY in RM_MAIN while(1) loop
+RM_MAIN:MM prim=0x030b,entryID=7
+ENTER-rm_Despatch
+ENTER-rm_S5SigModeEstablished
+ENTER-rm_SendChanRelease:entryId=7
+rm_SendChanRelease: mOId=8,entryId=7,sapi=0
+ENTER-rm_SendDeactivateSacch
+ENTER-rm_StartTimer: entry ID=7, timer ID=2
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 06 00 00 00 08 00 25 00 28 00 20 2d 06 3f 03 28
+03e5c2a8: a2 95 0d 2c 41 00 00 2b 2b 2b 2b 2b 2b 2b 2b 2b
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-RANDOM-ACCESS-IND, length 17
+0d 00 00 00 02 02 00 00 88 00 20 1c 42 4e 00 00
+00
+
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 0
+ lapdm_oid = 1
+ primitive_type = 10
+ sapi = 0
+ channel_type = 7
+ error_cause = 0
+ unserved_data_after_release = 0
+ l3_data.msgLength = 8
+l3data hex dump
+1c 42 4e 00 00 00 08 78
+
+RIL3_MD Dump RRM Message ------------END
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x0,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x0, link 0x20
+07 00 00 00 02 03 00 00 00 00 20
+
+RM_MAIN:MD prim=0x010a,entryID=0,sapi=0, OId=1
+ENTER-rm_Despatch
+Entering rm_DlRaInd=0x010a
+ENTER-rm_DlRaInd
+TRACK-rm_DlRaInd: neci=0,cos=0,ref=28
+ENTER-rm_ChanReq
+ENTER-rm_AllocateSmCtxt
+TRACK-rm_AllocSmCtxt: Assigned SDCCH4 = 2
+ENTER-rm_SendChanActivation
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 19 00 00 00 08 00 21 00 30 00 00 00 03 01 00 01
+03e5c2a8: 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+From DSP
+03e64844: 08 00 22 00 30 00 45 4c 42 4e 00 00 00 08 78 32
+ENTER-rm_GetIrtEntryId
+TRACK-rm_GetIrtEntryId: Idx=2, entryId=9
+Rx L1 primitive= 0x0001,entryID=9
+ENTER-rm_Despatch
+ENTER-rm_S2ActivatingSigTrafficChan
+ENTER-rm_SendImmAssign
+RM_SENDIMMASSIGN: l3_data.length=23
+ENTER-rm_StartTimer: entry ID=9, timer ID=0
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 1e 00 00 00 02 00 01 00 90 02 20 2d 06 3f 03 30
+03e5c2a8: a2 95 1c 42 4e 00 00 2b 2b 2b 2b 2b 2b 2b 2b 2b
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-DATA-IND, length 36
+20 00 00 00 02 00 02 00 30 00 00 42 4e 01 3f 49
+05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01 2b 2b
+
+T_CNI_LAPDM_Frame_Decoder::
+ frame format is 1 frame type is 4, frame control type is 1
+ 01 3f 49 05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00 24 01 2b 2b
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 9
+ lapdm_oid = 10
+ primitive_type = 1
+ sapi = 0
+ channel_type = 0
+ error_cause = 0
+ unserved_data_after_release = 0
+ l3_data.msgLength = 18
+l3data hex dump
+05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01
+
+RIL3_MD Dump RRM Message ------------END
+RIL3MD ==> MM
+RIL3_MD Dump CCMM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65534800
+ entry_id = 9
+ lapdm_oid = 10
+ primitive_type = 1
+ sapi = 0
+ l3_data.msgLength = 18
+l3data hex dump
+05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01
+
+RIL3_MD Dump CCMM Message ------------END
+MM Log: Received Message from MD, Msg Type: 8
+MM Log: Sent Message to LAPDm, Msg Type: 2
+MM Log: Sent Message to RR, Prim. Type, Msg Type: 11 0
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x0,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x0, link 0x20
+07 00 00 00 02 03 00 00 00 00 20
+
+RM_MAIN:MD prim=0x0101,entryID=9,sapi=0, OId=10
+ENTER-rm_Despatch
+ENTER-rm_S3SigChanActivated
+ENTER-rm_StopTimer: entryID=9, timerID=0
+ENTER--rm_ProcClassMarkIE: entryID=9
+LUP===========: PD=5,MT=
+LUP:Type IE: present=1,forBit=0,type=0
+LUP:CipherKey IE: present=1,keySeq=7
+LUP:LAI IE---------------------------
+LUP:Classmark1 IE: present=1,revLevel=1,esInd=0,a51=0,rfPowerCap=66538760
+LUP:MobileID IE---------------------------
+STAY in RM_MAIN while(1) loop
+RM_MAIN:MM prim=0x030b,entryID=9
+ENTER-rm_Despatch
+ENTER-rm_S5SigModeEstablished
+ENTER-rm_SendChanRelease:entryId=9
+rm_SendChanRelease: mOId=10,entryId=9,sapi=0
+ENTER-rm_SendDeactivateSacch
+ENTER-rm_StartTimer: entry ID=9, timer ID=2
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 06 00 00 00 08 00 25 00 30 00 20 2d 06 3f 03 30
+03e5c2a8: a2 95 1c 42 4e 00 00 2b 2b 2b 2b 2b 2b 2b 2b 2b
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-DATA-IND, length 36
+20 00 00 00 02 00 02 00 30 00 00 42 4e 01 3f 49
+05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01 2b 2b
+
+T_CNI_LAPDM_Frame_Decoder::
+ frame format is 1 frame type is 4, frame control type is 1
+ 01 3f 49 05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00 24 01 2b 2b
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 9
+ lapdm_oid = 10
+ primitive_type = 11
+ sapi = 0
+ channel_type = 0
+ error_cause = 14
+ unserved_data_after_release = 0
+ l3_data.msgLength = 0
+l3data hex dump
+
+RIL3_MD Dump RRM Message ------------END
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x0,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x0, link 0x20
+07 00 00 00 02 03 00 00 00 00 20
+
+RM_MAIN:MD prim=0x010b,entryID=9,sapi=0, OId=10
+ENTER-rm_Despatch
+ENTER-rm_S7ReleasingSigTrafficChan
+ERROR-rm_S7SigChanActivated: LAPDm message:11
+STAY in RM_MAIN while(1) loop
+CNI_LAPDM_Ph_Callback received PH-DATA-IND, length 36
+20 00 00 00 02 00 02 00 30 00 00 42 4e 01 3f 49
+05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01 2b 2b
+
+T_CNI_LAPDM_Frame_Decoder::
+ frame format is 1 frame type is 4, frame control type is 1
+ 01 3f 49 05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00 24 01 2b 2b
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 9
+ lapdm_oid = 10
+ primitive_type = 11
+ sapi = 0
+ channel_type = 0
+ error_cause = 14
+ unserved_data_after_release = 0
+ l3_data.msgLength = 0
+l3data hex dump
+
+RIL3_MD Dump RRM Message ------------END
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x0,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x0, link 0x20
+07 00 00 00 02 03 00 00 00 00 20
+
+RM_MAIN:MD prim=0x010b,entryID=9,sapi=0, OId=10
+ENTER-rm_Despatch
+ENTER-rm_S7ReleasingSigTrafficChan
+ERROR-rm_S7SigChanActivated: LAPDm message:11
+STAY in RM_MAIN while(1) loop
+CNI_LAPDM_Ph_Callback received PH-DATA-IND, length 36
+20 00 00 00 02 00 02 00 30 00 00 42 4e 01 3f 49
+05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01 2b 2b
+
+T_CNI_LAPDM_Frame_Decoder::
+ frame format is 1 frame type is 4, frame control type is 1
+ 01 3f 49 05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00 24 01 2b 2b
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 9
+ lapdm_oid = 10
+ primitive_type = 11
+ sapi = 0
+ channel_type = 0
+ error_cause = 14
+ unserved_data_after_release = 0
+ l3_data.msgLength = 0
+l3data hex dump
+
+RIL3_MD Dump RRM Message ------------END
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x0,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x0, link 0x20
+07 00 00 00 02 03 00 00 00 00 20
+
+RM_MAIN:MD prim=0x010b,entryID=9,sapi=0, OId=10
+ENTER-rm_Despatch
+ENTER-rm_S7ReleasingSigTrafficChan
+ERROR-rm_S7SigChanActivated: LAPDm message:11
+STAY in RM_MAIN while(1) loop
+CNI_LAPDM_Ph_Callback received PH-DATA-IND, length 36
+20 00 00 00 02 00 02 00 30 00 00 42 4e 01 3f 49
+05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00
+24 01 2b 2b
+
+T_CNI_LAPDM_Frame_Decoder::
+ frame format is 1 frame type is 4, frame control type is 1
+ 01 3f 49 05 08 70 32 f4 03 ff fe 20 08 29 43 03 75 47 00 24 01 2b 2b
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 9
+ lapdm_oid = 10
+ primitive_type = 11
+ sapi = 0
+ channel_type = 0
+ error_cause = 14
+ unserved_data_after_release = 0
+ l3_data.msgLength = 0
+l3data hex dump
+
+RIL3_MD Dump RRM Message ------------END
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x0,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x0, link 0x20
+07 00 00 00 02 03 00 00 00 00 20
+
+RM_MAIN:MD prim=0x010b,entryID=9,sapi=0, OId=10
+ENTER-rm_Despatch
+ENTER-rm_S7ReleasingSigTrafficChan
+ERROR-rm_S7SigChanActivated: LAPDm message:11
+STAY in RM_MAIN while(1) loop
+CNI_LAPDM_Ph_Callback received PH-RANDOM-ACCESS-IND, length 17
+0d 00 00 00 02 02 00 00 88 00 20 03 50 85 00 00
+00
+
+RIL3MD ==> RRM
+RIL3_MD Dump RRM Message ------------BEGIN
+ Module_ID = 1
+ l3_id = 65442488
+ entry_id = 0
+ lapdm_oid = 1
+ primitive_type = 10
+ sapi = 0
+ channel_type = 7
+ error_cause = 0
+ unserved_data_after_release = 0
+ l3_data.msgLength = 8
+l3data hex dump
+03 50 85 00 00 00 08 70
+
+RIL3_MD Dump RRM Message ------------END
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x0,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x0, link 0x20
+07 00 00 00 02 03 00 00 00 00 20
+
+RM_MAIN:MD prim=0x010a,entryID=0,sapi=0, OId=1
+ENTER-rm_Despatch
+Entering rm_DlRaInd=0x010a
+ENTER-rm_DlRaInd
+TRACK-rm_DlRaInd: neci=0,cos=0,ref=3
+ENTER-rm_ChanReq
+ENTER-rm_AllocateSmCtxt
+TRACK-rm_AllocSmCtxt: Assigned SDCCH4 = 3
+ENTER-rm_SendChanActivation
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 19 00 00 00 08 00 21 00 38 00 00 00 03 01 00 01
+03e5c2a8: 00 00 00 00 00 00 00 00 00 00 00 00 00 2b 2b 2b
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+From DSP
+03e64844: 08 00 22 00 38 00 52 74 50 85 00 00 00 08 70 32
+ENTER-rm_GetIrtEntryId
+TRACK-rm_GetIrtEntryId: Idx=3, entryId=11
+Rx L1 primitive= 0x0001,entryID=11
+ENTER-rm_Despatch
+ENTER-rm_S2ActivatingSigTrafficChan
+ENTER-rm_SendImmAssign
+RM_SENDIMMASSIGN: l3_data.length=23
+ENTER-rm_StartTimer: entry ID=11, timer ID=0
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 1e 00 00 00 02 00 01 00 90 00 20 2d 06 3f 03 38
+03e5c2a8: a2 95 03 50 85 00 00 2b 2b 2b 2b 2b 2b 2b 2b 2b
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+Rx RM primitive= 0x0003, entryID=11, timerId=0
+ENTER-rm_Despatch
+ENTER-rm_S3SigChanActivated
+rm_S3SigChanActivated: Timer Expiry for entryID=11
+ENTER-rm_SendRfChanRelease
+STAY in RM_MAIN while(1) loop
+send to dsp:
+03e5c298: 06 00 00 00 08 00 2e 00 38 00 20 2d 06 3f 03 38
+03e5c2a8: a2 95 03 50 85 00 00 2b 2b 2b 2b 2b 2b 2b 2b 2b
+03e5c2b8: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+03e5c2c8: ee ee ee ee ee ee ee ee ee ee ee ee ac 2e 16 00
+sending 1 messages
+
diff --git a/data/mnet/GP10/Host/rm/Src/Makefile b/data/mnet/GP10/Host/rm/Src/Makefile
new file mode 100644
index 0000000..93cb0f8
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/Makefile
@@ -0,0 +1,52 @@
+##########################################################
+#
+# (c) Copyright Cisco 2000
+# All Rights Reserved
+#
+##########################################################
+
+# TOP_OF_VOB must be defined before including l3defs.mk
+TOP_OF_VOB = ..\..\..
+
+# These Must be Properly Defined
+THIS_APP_DIR = rm
+THIS_DIRECTORY = Src
+MY_OUTPUT = $(OBJDIR)\rm.out
+
+# Name(s) of Common VOB directories to include
+COMMON_BLD_DIR =
+
+include $(TOP_OF_VOB)\l3defs.mk
+
+all: makeCommonObjs $(MY_OUTPUT)
+
+# Adds the .o file(s) list needed from the Common VOB
+makeCommonObjs:
+ifneq ($(COMMON_BLD_DIR),)
+ @for %f in ($(COMMON_BLD_DIR)) do \
+ make -C $(COMMON_VOB_APP_DIR)\%f \
+ all VOB=$(VOBNAME) APPDIR=Host\$(THIS_APP_DIR)\$(THIS_DIRECTORY)
+endif
+
+# If Common VOB directories to include get the .o files from bin
+$(MY_OUTPUT): $(MODULE_OBJS)
+ifneq ($(COMMON_BLD_DIR),)
+ $(LD) -r -o $@.tmp $() $(MODULE_OBJS) $(wildcard ./bin/*.o)
+else
+ $(LD) -r -o $@.tmp $() $(MODULE_OBJS)
+endif
+ $(NM) $@.tmp | munch > _ctdt.c
+ $(CC) -traditional $(CC_ARCH_SPEC) -c _ctdt.c
+ $(LD) -r -o $@ _ctdt.o $@.tmp
+ $(RM)$(subst /,$(DIRCHAR), _ctdt.c _ctdt.o $@.tmp)
+
+cleanall:
+ @for %f in ($(notdir $(MODULE_OBJS))) do \
+ $(RM) ..\bin\%f
+
+ $(RM) $(MY_OUTPUT)
+
+ifneq ($(COMMON_BLD_DIR),)
+ $(RM) bin\*.o
+ $(RM) bin\*.out
+endif \ No newline at end of file
diff --git a/data/mnet/GP10/Host/rm/Src/cmdlogact b/data/mnet/GP10/Host/rm/Src/cmdlogact
new file mode 100644
index 0000000..e83f68a
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/cmdlogact
@@ -0,0 +1,5 @@
+
+DIAG:LOG:NAME L3L
+
+DIAG:LOG:STAT:ACT
+
diff --git a/data/mnet/GP10/Host/rm/Src/intg_CellCfg.cpp b/data/mnet/GP10/Host/rm/Src/intg_CellCfg.cpp
new file mode 100644
index 0000000..8929fd8
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_CellCfg.cpp
@@ -0,0 +1,45 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_CELLCFG_CPP__
+#define __INTG_CELLCFG_CPP__
+
+#include "rm/rm_head.h"
+
+void intg_CellCfg(s16 arfcn, s16 narfcn, u8 bsic, u8 accessClass, u8 mnc1, u8 mnc2)
+{
+ ((CarrierFrequencyEntry*)
+ (grr_OamData.radioCarrierPackage[
+ grr_OamData.transceiverPackage[0].relatedRadioCarrier
+ ].carrierFrequencyList))[0].carrierFrequency = arfcn;
+// ((CarrierFrequencyEntry*)
+// (grr_OamData.radioCarrierPackage[
+// grr_OamData.transceiverPackage[1].relatedRadioCarrier
+// ].carrierFrequencyList))[0].carrierFrequency = arfcn;
+ ((CellAllocationEntry*)
+ (grr_OamData.btsBasicPackage.cellAllocationTable))[0].cellAllocation = arfcn;
+ ((AdjCell_HandoverEntry*)
+ (grr_OamData.adjacentCellPackage.adjCell_handoverTable))[
+ 0].adjCell_bCCHFrequency = narfcn; //1st neig-cell in ho-adj cell list
+ ((AdjCell_ReselectionEntry*)
+ (grr_OamData.adjacentCellPackage.adjCell_reselectionTable))[0
+ ].adjCell_reselectionBCCHFrequency = narfcn;
+ grr_OamData.btsBasicPackage.bts_ncc = (bsic>>3)&0x00000007;
+ grr_OamData.btsBasicPackage.bts_cid = bsic&0x00000007;
+ for (int i=0;i<16;i++)
+ ((NotAllowedAccessClassEntry*)
+ (grr_OamData.btsOptionsPackage.notAllowedAccessClassTable))[
+ i].notAllowedAccessClass = 1; //1:not allowed
+ ((NotAllowedAccessClassEntry*)
+ (grr_OamData.btsOptionsPackage.notAllowedAccessClassTable))[
+ accessClass].notAllowedAccessClass = 0; //0: allowed
+ ((unsigned char*)&(grr_OamData.btsBasicPackage.bts_mnc))[0]=mnc1;
+ ((unsigned char*)&(grr_OamData.btsBasicPackage.bts_mnc))[1]=mnc2;
+} /* intg_CellCfg() */
+
+#endif /*__INTG_CELLCFG_CPP__*/
diff --git a/data/mnet/GP10/Host/rm/Src/intg_ClearRmChans.cpp b/data/mnet/GP10/Host/rm/Src/intg_ClearRmChans.cpp
new file mode 100644
index 0000000..9868fb4
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_ClearRmChans.cpp
@@ -0,0 +1,68 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __INTG_CLEARRMCHANS_CPP__
+#define __INTG_CLEARRMCHANS_CPP__
+
+#include "rm/rm_head.h"
+
+void intg_ClearRmChans(void)
+{
+ u8 i;
+
+ for (i=0; i<15; i++)
+ {
+ rm_PhyChanTchf[i].state = RM_PHYCHAN_FREE;
+ rm_PhyChanTchf[i].pMSmCtxt->state = RM_S1RM_RUNNING;
+ rm_PhyChanTchf[i].pASmCtxt->state = RM_S1RM_RUNNING;
+ wdCancel(rm_PhyChanTchf[i].T3101.id);
+ wdCancel(rm_PhyChanTchf[i].T3109.id);
+ wdCancel(rm_PhyChanTchf[i].T3111.id);
+ wdCancel(rm_PhyChanTchf[i].T3L01.id);
+ }
+
+ for (i=0; i<4; i++)
+ {
+ rm_PhyChanSdcch4[i].state = RM_PHYCHAN_FREE;
+ rm_PhyChanSdcch4[i].pMSmCtxt->state = RM_S1RM_RUNNING;
+ rm_PhyChanSdcch4[i].pASmCtxt->state = RM_S1RM_RUNNING;
+ wdCancel(rm_PhyChanSdcch4[i].T3101.id);
+ wdCancel(rm_PhyChanSdcch4[i].T3109.id);
+ wdCancel(rm_PhyChanSdcch4[i].T3111.id);
+ wdCancel(rm_PhyChanSdcch4[i].T3L01.id);
+ }
+
+ /* Print TCHF channel description data */
+ printf("========TCHF ALLOCATION STATUS========\n");
+ for (i=0; i<15; i++)
+ {
+ printf("TCH/F-%d: state=%d,chan=%02x, mEntryId=%d,mSMstate=%d\n",
+ i,
+ rm_PhyChanTchf[i].state,
+ rm_PhyChanTchf[i].chanNumberMSB,
+ rm_PhyChanTchf[i].pMSmCtxt->entryId,
+ rm_PhyChanTchf[i].pMSmCtxt->state
+ );
+ }
+
+ /* Print SDCCH4 channel description data */
+ printf("\n========SDCCH ALLOCATION STATUS========\n");
+ for (i=0; i<4; i++)
+ {
+ printf("SDCCH4-%d: state=%d, chan=%02x, mEntryId=%d,mSMstate=%d\n",
+ i,
+ rm_PhyChanSdcch4[i].state,
+ rm_PhyChanSdcch4[i].chanNumberMSB,
+ rm_PhyChanSdcch4[i].pMSmCtxt->entryId,
+ rm_PhyChanSdcch4[i].pMSmCtxt->state
+ );
+ }
+}
+
+#endif /* __INTG_CLEARRMCHANS_CPP__ */
+
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SendAsyncHoReqToDsp.cpp b/data/mnet/GP10/Host/rm/Src/intg_SendAsyncHoReqToDsp.cpp
new file mode 100644
index 0000000..f320916
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SendAsyncHoReqToDsp.cpp
@@ -0,0 +1,37 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SENDASYNCHOREQUESTTODSP_CPP__
+#define __INTG_SENDASYNCHOREQUESTTODSP_CPP__
+
+//HOADDED
+#include "rm/rm_head.h"
+
+void intg_SendAsyncHoRequestToDsp( u8 trx, u8 chan);
+
+void intg_SendAsyncHoRequestToDsp( u8 trx, u8 chan)
+{
+ rm_ItcTxMsg_t msgToL1;
+ u16 length;
+ u8 i;
+
+ RDEBUG__(("ENTER-rm_SendHoRequestToDsp\n"));
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_DEDMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_AYSNCHO_REQ_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_AYSNCHO_REQ_LSB;
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = (0x08|chan); // chan is TCH/F assumed only
+ msgToL1.buffer[length++] = 0;
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+}
+
+#endif /*__INTG_SENDASYNCHOREQUESTTODSP_CPP__*/
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SendCbCmd.cpp b/data/mnet/GP10/Host/rm/Src/intg_SendCbCmd.cpp
new file mode 100644
index 0000000..5b9174c
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SendCbCmd.cpp
@@ -0,0 +1,77 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SENDCBCMD_CPP__
+#define __INTG_SENDCBCMD_CPP__
+
+#include "rm/rm_head.h"
+
+void intg_SendCbCmd(u8 cmdCode, u16 msgCode, u16 updateNo)
+{
+ rm_ItcRxVbMsg_t msg;
+ int length;
+ unsigned short hdr12,hdr34;
+ unsigned char hdr5,hdr6;
+
+ switch(cmdCode)
+ {
+ case 1: //Send test CB message to DSP
+ memset((s8 *)&msg, 0, 110); //sizeof(rm_ItcRxVbMsg_t));
+ hdr12=0;hdr34=0;hdr5=0;hdr6=0;
+ msg.module_id = MODULE_SMSCBC;
+ msg.message_type = INTER_SMSCBC_CB_START;
+ msg.size = 88; //one page
+ hdr12 = (00<<14)|(msgCode<<4)|(updateNo);
+ length = 0;
+ //Serial Number:cell wide immediate display
+ msg.data[length++] = (u8)(hdr12>>8);
+ msg.data[length++] = (u8)(hdr12);
+ //Message Identifier: 1 assumed
+ msg.data[length++] = 0;
+ msg.data[length++] = 1;
+ //Data coding scheme: default alphabet, English
+ msg.data[length++] = 0x01;
+ //Page parameter: 0x11, one page only
+ msg.data[length++] = 0x11;
+ //contents: Go JetCell!
+ msg.data[length++] = 0xc7;
+ msg.data[length++] = 0x37;
+ msg.data[length++] = 0x48;
+ msg.data[length++] = 0x59;
+ msg.data[length++] = 0xa6;
+ msg.data[length++] = 0x0f;
+ msg.data[length++] = 0xd9;
+ msg.data[length++] = 0xec;
+ msg.data[length++] = 0x10;
+ msg.data[length++] = 0x08;
+ msg.data[length++] = 0x04;
+ msg.data[length++] = 0x02;
+ msg.data[length++] = 0x81;
+ break;
+
+ case 0: //Stop sending cur CB message
+ msg.module_id = MODULE_SMSCBC;
+ msg.message_type = INTER_SMSCBC_CB_STOP;
+ msg.size = 0;
+ break;
+ }
+ if (cmdCode<2)
+ {
+ //Send a test CB message to RM
+ if (ERROR==msgQSend(rm_MsgQId, (s8 *)&msg, RM_MAX_TXQMSG_LENGTH,
+ NO_WAIT, MSG_PRI_NORMAL) )
+ printf("ERROR@intg_SendCbCmd: msgQSend errno:%d\n", errno);
+ } else
+ {
+ printf("usage@intg_SendCbCmd: cmdCode: 0-stop CB, 1-broad test CB\n");
+ }
+
+}
+
+#endif //__INTG_SENDCBCMD_CPP__
+
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SendChanActivation.cpp b/data/mnet/GP10/Host/rm/Src/intg_SendChanActivation.cpp
new file mode 100644
index 0000000..0380e1f
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SendChanActivation.cpp
@@ -0,0 +1,61 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SENDCHANACTIVATION_CPP__
+#define __INTG_SENDCHANACTIVATION_CPP__
+
+#include "rm/rm_head.h"
+
+void intg_SendChanActivation( u8 trx,u8 chan);
+
+void intg_SendChanActivation( u8 trx, u8 chan)
+{
+ rm_ItcTxMsg_t msgToL1;
+ u16 length;
+ u8 i;
+
+ RDEBUG__(("ENTER-rm_SendChanActivation\n"));
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_DEDMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_CHANACTIV_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_CHANACTIV_LSB;
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = (0x08|chan);
+ msgToL1.buffer[length++] = 0;
+ msgToL1.buffer[length++] = RM_L1ACTTYPE_IMMASS;
+
+ //PR1248 Begin
+ msgToL1.buffer[length] = 0; // DTX ul&dl OFF
+
+ //PR1381 BEGIN
+ if ( ((int)OAMrm_MS_UPLINK_DTX_STATE==1) ||
+ ((int)OAMrm_MS_UPLINK_DTX_STATE==0) )
+ msgToL1.buffer[length] |= 1; //DTX ul ON
+ //PR1381 END
+
+// PR1319
+// if (!trx && OAMrm_MS_DNLINK_DTX_STATE)
+ if (trx && OAMrm_MS_DNLINK_DTX_STATE)
+ msgToL1.buffer[length] |= 2; //DTX dl ON
+ length++;
+ //PR1248 End
+
+ msgToL1.buffer[length++] = RM_L1DATATTR_SPEECH;
+ msgToL1.buffer[length++] = RM_L1RATTYPE_TCHF;
+ msgToL1.buffer[length++] = 1; //RM_L1CODALGO_NORES;
+ msgToL1.buffer[length++] = RM_L1CIPHTYPE_NCIPH;
+ for (i=0;i<RM_L1CIPHKEY_LEN;i++)
+ msgToL1.buffer[length++] = 0;
+
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+}
+
+#endif /*__INTG_SENDCHANACTIVATION_CPP__*/
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SendChanDeActivation.cpp b/data/mnet/GP10/Host/rm/Src/intg_SendChanDeActivation.cpp
new file mode 100644
index 0000000..8d72ba8
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SendChanDeActivation.cpp
@@ -0,0 +1,32 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SENDCHANDEACTIVATION_CPP__
+#define __INTG_SENDCHANDEACTIVATION_CPP__
+
+#include "rm\rm_head.h"
+
+void intg_SendChanDeActivation( u8 trx, u8 chan)
+{
+ rm_ItcTxMsg_t msgToL1;
+ u16 length;
+
+ RDEBUG__(("ENTER-rm_SendChanDeActivation\n"));
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_DEDMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_RFCHANREL_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_RFCHANREL_LSB;
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = (0x08|chan);
+ msgToL1.buffer[length++] = 0;
+ msgToL1.msgLength = length;
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+}
+
+#endif /*__INTG_SENDCHANDEACTIVATION_CPP__*/
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SendDisc.cpp b/data/mnet/GP10/Host/rm/Src/intg_SendDisc.cpp
new file mode 100644
index 0000000..502ec95
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SendDisc.cpp
@@ -0,0 +1,44 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SENDDISCTOLAPDM_CPP__
+#define __INTG_SENDDISCTOLAPDM_CPP__
+
+#include "lapdm\lapdm_l1intf.h"
+
+void intg_SendDiscToLapdm(void)
+{
+ int intg_DiscLen = 14;
+ unsigned char intg_DiscData[14] =
+ {
+ 0x0A, // length = 10
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x02, //1-1. Protocol Descriminator
+ 0x00, //1-2. Message Type MSB byte
+ 0x02, //1-3. Message Type LSB byte
+ 0x00, //1-4. Trx
+ 0x20, //1-5. Channel Number MSB byte
+ 0x00, //1-6. Channel Number LSB byte
+ 0x00, //1-7. Link Identifier: main DCCH
+// 0x0B, //1-8. T1 and T3 hi part
+// 0x14, //1-9. T3 low par and T2
+// 0x02, //2-10. length of L2 information
+ 0x03, //2-11. L2 frame Addr.
+ 0X43, //2-12. L2 frame DISC
+ 0x01 //2-13. L2 frame length
+ };
+
+ CNI_LAPDM_Ph_Callback(
+ intg_DiscLen,
+ intg_DiscData
+ );
+}
+
+#endif /* #define __INTG_SENDDISCTOLAPDM_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SendPhConnIndToLapdm.cpp b/data/mnet/GP10/Host/rm/Src/intg_SendPhConnIndToLapdm.cpp
new file mode 100644
index 0000000..c128954
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SendPhConnIndToLapdm.cpp
@@ -0,0 +1,112 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SENDPHCONNINDTOLAPDM_CPP__
+#define __INTG_SENDPHCONNINDTOLAPDM_CPP__
+
+#include "rm/rm_head.h"
+#include "lapdm/lapdm_l1intf.h"
+
+#define NUM_SDCCH4S 4
+#define NUM_TCHFS 2
+#define TRX_IDX 7
+#define CHN_MSB 8
+#define CHN_LSB 9
+#define LNK_IDX 10
+
+void intg_SendPhConnIndToLapdm(void);
+
+void intg_SendPhConnIndToLapdm(void)
+{
+ int i;
+ int intg_PhConnIndLen = 11;
+ unsigned char intg_PhConnIndData[11] =
+ {
+ 0x10,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x02, //1. L2 PD
+ 0x01, //2. L2 MT: PH_CONN_IND MSB
+ 0x00, //3. L2 MT: PH_CONN_IND LSB
+ 0x00, //4. Trx
+ 0x00, //5. Channel Number MSB byte
+ 0x00, //6. Channel Number LSB byte
+ 0x00, //7. Link Identifier
+ };
+
+ /*
+ ** Send PH_CONN_IND for RACH
+ */
+ intg_PhConnIndData[TRX_IDX] = 0;
+ intg_PhConnIndData[CHN_MSB] = rm_PhyChanBCcch[RM_RACH_IDX].chanNumberMSB;
+ intg_PhConnIndData[CHN_LSB] = rm_PhyChanBCcch[RM_RACH_IDX].chanNumberLSB;
+ intg_PhConnIndData[LNK_IDX] = RM_L1LINK_VOID;
+
+ CNI_LAPDM_Ph_Callback(
+ intg_PhConnIndLen,
+ intg_PhConnIndData
+ );
+ /*
+ ** Send PH_CONN_IND for all the FACCH and SACCH channels
+ */
+ for (i=0;i<NUM_TCHFS;i++)
+ {
+ /* PH_CONN_IND for FACCH */
+ intg_PhConnIndData[TRX_IDX] = rm_PhyChanTchf[i].trxNumber;
+ intg_PhConnIndData[CHN_MSB] = rm_PhyChanTchf[i].chanNumberMSB;
+ intg_PhConnIndData[CHN_LSB] = rm_PhyChanTchf[i].chanNumberLSB;
+ intg_PhConnIndData[LNK_IDX] = RM_L1LINK_MAIN;
+
+ CNI_LAPDM_Ph_Callback(
+ intg_PhConnIndLen,
+ intg_PhConnIndData
+ );
+
+ /* PH_CONN_IND for SACCH */
+ intg_PhConnIndData[TRX_IDX] = rm_PhyChanTchf[i].trxNumber;
+ intg_PhConnIndData[CHN_MSB] = rm_PhyChanTchf[i].chanNumberMSB;
+ intg_PhConnIndData[CHN_LSB] = rm_PhyChanTchf[i].chanNumberLSB;
+ intg_PhConnIndData[LNK_IDX] = RM_L1LINK_ACCH;
+
+ CNI_LAPDM_Ph_Callback(
+ intg_PhConnIndLen,
+ intg_PhConnIndData
+ );
+ }
+
+ /*
+ ** Send PH_CONN_IND for all the SDCCH4 and SACCH channels
+ */
+ for (i=0;i<NUM_SDCCH4S;i++)
+ {
+ /* PH_CONN_IND for SDCCH4 */
+ intg_PhConnIndData[TRX_IDX] = rm_PhyChanSdcch4[i].trxNumber;
+ intg_PhConnIndData[CHN_MSB] = rm_PhyChanSdcch4[i].chanNumberMSB;
+ intg_PhConnIndData[CHN_LSB] = rm_PhyChanSdcch4[i].chanNumberLSB;
+ intg_PhConnIndData[LNK_IDX] = RM_L1LINK_MAIN;
+
+ CNI_LAPDM_Ph_Callback(
+ intg_PhConnIndLen,
+ intg_PhConnIndData
+ );
+
+ /* PH_CONN_IND for SACCH */
+ intg_PhConnIndData[TRX_IDX] = rm_PhyChanSdcch4[i].trxNumber;
+ intg_PhConnIndData[CHN_MSB] = rm_PhyChanSdcch4[i].chanNumberMSB;
+ intg_PhConnIndData[CHN_LSB] = rm_PhyChanSdcch4[i].chanNumberLSB;
+ intg_PhConnIndData[LNK_IDX] = RM_L1LINK_ACCH;
+
+ CNI_LAPDM_Ph_Callback(
+ intg_PhConnIndLen,
+ intg_PhConnIndData
+ );
+ }
+}
+
+#endif /* __INTG_SENDPHRAINDTOLAPDM_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SendPhRaIndToLapdm.cpp b/data/mnet/GP10/Host/rm/Src/intg_SendPhRaIndToLapdm.cpp
new file mode 100644
index 0000000..9c83eca
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SendPhRaIndToLapdm.cpp
@@ -0,0 +1,48 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SENDPHRAINDTOLAPDM_CPP__
+#define __INTG_SENDPHRAINDTOLAPDM_CPP__
+
+#include "lapdm\lapdm_l1intf.h"
+void intg_SendPhRaIndToLapdm(void);
+
+void intg_SendPhRaIndToLapdm(void)
+{
+ int intg_PhRaIndLen = 19;
+ unsigned char intg_PhRaIndData[19] =
+ {
+ 0x10,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x02, //1. Protocol Descriminator
+ 0x02, //2. Message Type MSB byte
+ 0x00, //3. Message Type LSB byte
+ 0x00, //4. Trx
+ 0x88, //5. Channel Number MSB byte
+ 0x00, //6. Channel Number LSB byte
+ 0x20, //7. Link Identifier: N.A case
+ //0x04, //8. CCCH block on which RA received
+ 0x0D, //9 Ref #: estCause=LUP, random no=13. NECI=0
+ 0x0B, //10. T1 and T3 hi part
+ 0x14, //11. T3 low par and T2
+ 0x00, //12. Access delay
+ 0x00, //13. SNIR byte 1 (MSB)
+ 0x00, //14. SNIR byte 2
+ 0x00, //15. SNIR byte 3
+ 0x00 //16. SNIR byte 4 (LSB)
+ };
+
+ CNI_LAPDM_Ph_Callback(
+ intg_PhRaIndLen,
+ intg_PhRaIndData
+ );
+}
+
+#endif /* __INTG_SENDPHRAINDTOLAPDM_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SendPhyInfo.cpp b/data/mnet/GP10/Host/rm/Src/intg_SendPhyInfo.cpp
new file mode 100644
index 0000000..8d0b7db
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SendPhyInfo.cpp
@@ -0,0 +1,34 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+
+#ifndef __INTG_SENDPHYINFO_CPP__
+#define __INTG_SENDPHYINFO_CPP__
+
+//HOADDED
+//!!! TCH/F assumed
+#include "rm/rm_head.h"
+
+void intg_SendPhyInfo(u16 chan)
+{
+ T_CNI_IRT_ID entryId;
+ rm_L3Data_t l3_data;
+
+ l3_data.buffer[0] = (u8)RM_PD;
+ l3_data.buffer[1] = (u8)CNI_RIL3RRM_MSGID_PHYSICAL_INFORMATION;
+ l3_data.buffer[2] = rm_pSmCtxt->pPhyChan->hoTa;
+ l3_data.msgLength = 3;
+
+ if (!rm_TrxSlotToEntryId(chan, &entryId))
+ EDEBUG__(("intg_SendPhyInfo: Failed to convert chan=%x to entryId\n",chan));
+
+ //Send out l3_data via DL_UNIT_DATA_REQ
+ CNI_LAPDM_Dl_Unit_Data_Request(rm_SmCtxt[entryId].mOId, 0, L2T_NORMAL_HEADER, &l3_data);
+
+}
+#endif /*__INTG_SENDPHYINFO_CPP__*/
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SendRrRelReqToRm.cpp b/data/mnet/GP10/Host/rm/Src/intg_SendRrRelReqToRm.cpp
new file mode 100644
index 0000000..9993777
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SendRrRelReqToRm.cpp
@@ -0,0 +1,50 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SENDRRRELREQ_CPP__
+#define __INTG_SENDTCHRELREQTORM_CPP__
+
+#include "rm\rm_head.h"
+//#include "stdio.h"
+//#include "vxWorks.h"
+//#include "msgQlib.h"
+//#include "jcc\sys_const.h"
+//#include "JCCJCCL3Msg.h"
+//#include "rm\rm_data.h"
+//#include "debug.h"
+
+extern MSG_Q_ID rm_MsgQId;
+
+void intg_SendTchRelReqToRm(void);
+
+void intg_SendTchRelReqToRm(void)
+{
+ u8 i;
+ STATUS result;
+ IntraL3Msg_t msg;
+
+ msg.module_id = MODULE_MM;
+ msg.primitive_type = INTRA_L3_RR_REL_REQ;
+
+ for (i=0;i<15;i++)
+ {
+ msg.entry_id = (i<<1)+1;
+ result = msgQSend(
+ rm_MsgQId,
+ (char *) &msg,
+ sizeof(IntraL3Msg_t),
+ NO_WAIT,
+ MSG_PRI_NORMAL
+ );
+ if ( result==ERROR )
+ EDEBUG__(("ERROR-intg_SentRrRelReqToRm: VxWorks sending error:%d\n",
+ errno));
+ }
+}
+
+#endif /* __INTG_SENDTCHRELREQTORM_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SendSabmLup.cpp b/data/mnet/GP10/Host/rm/Src/intg_SendSabmLup.cpp
new file mode 100644
index 0000000..dd6a4a9
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SendSabmLup.cpp
@@ -0,0 +1,63 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SENDSABMLUP_CPP__
+#define __INTG_SENDSABMLUPTOLAPDM_CPP__
+
+#include "lapdm\lapdm_l1intf.h"
+void intg_SendSabmLupToLapdm(void);
+
+void intg_SendSabmLupToLapdm(void)
+{
+ int intg_SabmLupLen = 34;
+ unsigned char intg_SabmLupData[34] =
+ {
+ 0x1C, // length = 28
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x02, //1-1. Protocol Descriminator
+ 0x00, //1-2. Message Type MSB byte
+ 0x02, //1-3. Message Type LSB byte
+ 0x00, //1-4. Trx
+ 0x20, //1-5. Channel Number MSB byte
+ 0x00, //1-6. Channel Number LSB byte
+ 0x00, //1-7. Link Identifier: main DCCH
+ 0x0B, //1-8. T1 and T3 hi part
+ 0x14, //1-9. T3 low par and T2
+// 0x15, //2-10. length of L3 information
+ 0x03, //2-11. command
+ 0x3f, //2-12. poll bit 1
+ 0x49, //2-13. length:=18, See 04.06/3.6
+ 0x05, //3-14. SI=0, Protocol Descriminator=5
+ 0x08, //3-15. SD=0, Message Type=8
+ 0x70, //3-16. No CKSN, normal LUP
+ 0x00, //3-17. LAI: MCC1,MCC2
+ 0xF1, //3-18. LAI: MCC3
+ 0x10, //3-19. LAI: NNC1, MNC2
+ 0x00, //3-20. LAI: LAI 1
+ 0x01, //3-21. LAI: LAI 2
+ 0x2C, //3-22. Classmark 1: Rev=01(Ph2), ES=0(No ES IND), A5/1=0, RF Pow=011 (Class3)
+ 0x08, //3-23. Mobile Identity IE length
+ 0x09, //3-24. Digit 1=1. Odd, IMSI
+ 0x10, //3-25. digit 2, digit 3
+ 0x10, //3-26. digit 4, digit 5
+ 0x00, //3-27. digit 6, digit 7
+ 0x00, //3-28. digit 8, digit 9
+ 0x00, //3-29. digit 10, digit 11
+ 0x00, //3-30. digit 12, digit 13
+ 0x10 //3-31. digit 14, digit 15
+ };
+
+ CNI_LAPDM_Ph_Callback(
+ intg_SabmLupLen,
+ intg_SabmLupData
+ );
+}
+
+#endif /* #define __INTG_SENDSABMLUPTOLAPDM_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SetDlSG.cpp b/data/mnet/GP10/Host/rm/Src/intg_SetDlSG.cpp
new file mode 100644
index 0000000..df9d653
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SetDlSG.cpp
@@ -0,0 +1,36 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SETDLSG_CPP__
+#define __INTG_SETDLSG_CPP__
+
+#include "rm\rm_head.h"
+
+void intg_SetDlSG(u8 trx, u16 gain)
+{
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+ u16 length; /* Length of the message to send to L1 */
+
+ /* Encode SET Uplink GAIN message for TRX */
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_SETDGAIN_MSB; //0x11
+ msgToL1.buffer[length++] = RM_L1MT_SETDGAIN_LSB; //0x00
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = (u8)((gain>>8)&0x00FF);
+ msgToL1.buffer[length++] = (u8)(gain&0x00FF);
+
+
+ msgToL1.msgLength = length;
+
+ /* Send TRX CONFIGure to L1 */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer); /* TBD: Provided by L1 */
+
+} /* intg_SetDlSG() */
+
+#endif /* __INTG_SETDLSG_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SetGsmCodec.cpp b/data/mnet/GP10/Host/rm/Src/intg_SetGsmCodec.cpp
new file mode 100644
index 0000000..e0a1b5a
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SetGsmCodec.cpp
@@ -0,0 +1,35 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SETGSMCODEC_CPP__
+#define __INTG_SETGSMCODEC_CPP__
+
+#include "rm\rm_head.h"
+
+void intg_SetGsmCodec(u8 codec)
+{
+oam_gsmCodec = codec; //0x01-FR, 0x21-EFR, 0x41-superEFR
+} /* intg_SetGsmCodec() */
+
+void intg_TuneC1C2(u8 reselOffset, u8 tempOffset, u8 penaltyTime)
+{
+ printf("1st param--CellReselectOffset: 0-126 dB, 2dB steps; 0=0dB, 1=2dB...\n");
+ printf("2nd param--TemporaryOffset: 0-60 dB,10dB steps; 0=0dB, 1=10dB,...,7=infinity\n");
+ printf("3rd param--PenaltyTime: 0-30 20sec steps???, 31 meaning differently\n");
+// oam_CellReselectOffset=reselOffset;
+// oam_TemporaryOffset=tempOffset;
+// oam_PenaltyTime=penaltyTime;
+ OAMrm_CELL_RESELECT_OFFSETa=reselOffset;
+ OAMrm_TEMP_OFFESTa=tempOffset;
+ OAMrm_PENALTY_TIMEa=penaltyTime;
+ rm_SendSystemInfo3ToBcchTrx(0,3,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo4ToBcchTrx(0,4,OAMrm_RA_CELL_BARRED_STATE);
+}
+
+
+#endif /*__INTG_SETGSMCODEC_CPP__*/
diff --git a/data/mnet/GP10/Host/rm/Src/intg_SetUlSG.cpp b/data/mnet/GP10/Host/rm/Src/intg_SetUlSG.cpp
new file mode 100644
index 0000000..308737a
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_SetUlSG.cpp
@@ -0,0 +1,37 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SETULSG_CPP__
+#define __INTG_SETULSG_CPP__
+
+#include "rm\rm_head.h"
+
+void intg_SetUlSG(u8 trx, u16 gain)
+{
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+ u16 length; /* Length of the message to send to L1 */
+
+ /* It's caller's responsiblity to make sure trx valid */
+
+ /* Encode SET Uplink GAIN message for TRX */
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_SETUGAIN_MSB; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_SETUGAIN_LSB; //0x00
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = (u8)((gain>>8)&0x00FF);
+ msgToL1.buffer[length++] = (u8)(gain&0x00FF);
+
+ msgToL1.msgLength = length;
+
+ /* Send TRX CONFIGure to L1 */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer); /* TBD: Provided by L1 */
+
+} /* intg_SetUlSG() */
+
+#endif /*__INTG_SETULSG_CPP__*/
diff --git a/data/mnet/GP10/Host/rm/Src/intg_ShowRmChans.cpp b/data/mnet/GP10/Host/rm/Src/intg_ShowRmChans.cpp
new file mode 100644
index 0000000..69040e6
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/intg_ShowRmChans.cpp
@@ -0,0 +1,55 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __INTG_SHOWRMCHANS_CPP__
+#define __INTG_SHOWRMCHANS_CPP__
+
+#include "rm\rm_head.h"
+
+void intg_ShowRmChans(void)
+{
+ u8 i;
+
+ /* Print Cell Bar status */
+ printf("======== CELL BARRED STATUS ==========\n");
+ printf("Overload CellBar Ctrl=%d, MIB Barred Setting=%d, Current Barred Control status=%d\n",
+ OAMrm_OVERLOAD_CELLBAR,
+ OAMrm_RA_CELL_BARRED_STATE, rm_VcIsBarred);
+
+
+ /* Print TCHF channel description data */
+ printf("========TCHF ALLOCATION STATUS========\n");
+ for (i=0; i<15; i++)
+ {
+ printf("TCH/F-%d: state=%d,chan=%02x, mEntryId=%d, mSMstate=%d, amState=%d\n",
+ i,
+ rm_PhyChanTchf[i].state,
+ rm_PhyChanTchf[i].chanNumberMSB,
+ rm_PhyChanTchf[i].pMSmCtxt->mEntryId,
+ rm_PhyChanTchf[i].pMSmCtxt->state,
+ rm_PhyChanTchf[i].amState
+ );
+ }
+
+ /* Print SDCCH4 channel description data */
+ printf("\n========SDCCH ALLOCATION STATUS========\n");
+ for (i=0; i<4; i++)
+ {
+ printf("SDCCH4-%d: state=%d, chan=%02x, mEntryId=%d, mSMstate=%d, amState=%d\n",
+ i,
+ rm_PhyChanSdcch4[i].state,
+ rm_PhyChanSdcch4[i].chanNumberMSB,
+ rm_PhyChanSdcch4[i].pMSmCtxt->mEntryId,
+ rm_PhyChanSdcch4[i].pMSmCtxt->state,
+ rm_PhyChanSdcch4[i].amState
+ );
+ }
+}
+
+#endif /* __INTG_SHOWRMCHANS_CPP__ */
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_AllocSmCtxt.cpp b/data/mnet/GP10/Host/rm/Src/rm_AllocSmCtxt.cpp
new file mode 100644
index 0000000..e6a2bf4
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_AllocSmCtxt.cpp
@@ -0,0 +1,172 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_ALLOCSMCTXT_CPP__
+#define __RM_ALLOCSMCTXT_CPP__
+
+#include "rm\rm_head.h"
+
+static u8 tch_pos=0;
+
+rm_SmCtxt_t *rm_AllocSmCtxt(u8 chanType)
+{
+ u8 i, iChan, quality;
+ rm_SmCtxt_t *pSmCtxt;
+ static u8 sdcch4_pos=0;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_AllocateSmCtxt\n"));
+
+ //Check if the system locked/shutting down
+ if (OAMrm_BTS_AMSTATE==locked ||
+ OAMrm_BTS_AMSTATE==shuttingDown ||
+ OAMrm_TRX_AMSTATE(0)==locked ||
+ OAMrm_TRX_AMSTATE(0)==shuttingDown ||
+ OAMrm_CHN_AMSTATE(0,0)==locked ||
+ OAMrm_CHN_AMSTATE(0,0)==shuttingDown )
+ {
+ IDEBUG__(("WARNING@rm_AllocSmCtxt:system blocked/shutting down(%d,%d,%d),chnType=%d\n",
+ OAMrm_BTS_AMSTATE, OAMrm_TRX_AMSTATE(0),OAMrm_CHN_AMSTATE(0,0),chanType));
+ return RM_SMCTXT_NULL;
+ }
+
+ //Proceed to allocate the best channel if there is!
+ quality = 0; iChan = 0xFF; pSmCtxt = RM_SMCTXT_NULL;
+
+ switch(chanType)
+ {
+ case RM_PHYCHAN_TCHF_S:
+ //Find the best-quality channel to allocate
+ for (i=0; i<OAMrm_MAX_TCHFS; i++)
+ {
+ //Check if the concerned radio TS is blocked/shutting down
+ if (rm_PhyChanTchf[tch_pos].amState == unlocked &&
+ rm_PhyChanTchf[tch_pos].opState == opStateEnabled &&
+ rm_PhyChanTchf[tch_pos].usable == RM_PHYCHAN_USABLE &&
+ rm_PhyChanTchf[tch_pos].state == RM_PHYCHAN_FREE )
+
+ {
+ if (rm_PhyChanTchf[tch_pos].quality > quality)
+ {
+ iChan = tch_pos;
+ quality = rm_PhyChanTchf[tch_pos].quality;
+ }
+ }
+ tch_pos++;
+ if (tch_pos>=OAMrm_MAX_TCHFS) tch_pos=0;
+ }
+
+ if ( iChan != 0xFF )
+ {
+ //Got expected TCH/F channel
+ rm_PhyChanTchf[iChan].state = RM_PHYCHAN_ASSIGNED;
+ pSmCtxt = rm_PhyChanTchf[iChan].pMSmCtxt;
+
+ //DSPADDED
+ tch_pos = iChan+1;
+ if (tch_pos>=OAMrm_MAX_TCHFS) tch_pos=0;
+
+ //PMADDED:attTCHSeizuresMeetingTCHBlockedState,attTCHSeizures
+ // meanNbrOfIdleTCHsPerInterferenceBand
+ rm_NoOfIdleTchf--;
+ rm_PhyChanTchf[iChan].chanBusy = RM_FALSE;
+ //PM_CellMeasurement.attTCHSeizures.increment();
+ PM_CellMeasurement.meanNbrOfIdleTCHsPerInterferenceBand.addRecord(rm_NoOfIdleTchf);
+ }
+ //else
+ //{
+ // rm_AllAvailableTchf.allocated = RM_TRUE;
+ // rm_AllAvailableTchf.startTime = tickGet();
+ // //PM_CellMeasurement.attTCHSeizuresMeetingTCHBlockedState.increment();
+ //}
+
+ break;
+
+ case RM_PHYCHAN_SDCCH4:
+ //Find the best-quality channel to allocate
+
+ for (i=0; i<OAMrm_MAX_SDCCH4S; i++)
+ {
+ if (rm_PhyChanSdcch4[sdcch4_pos].amState == unlocked &&
+ rm_PhyChanSdcch4[sdcch4_pos].opState == opStateEnabled &&
+ rm_PhyChanSdcch4[sdcch4_pos].usable == RM_PHYCHAN_USABLE &&
+ rm_PhyChanSdcch4[sdcch4_pos].state == RM_PHYCHAN_FREE )
+ {
+ if (rm_PhyChanSdcch4[sdcch4_pos].quality > quality)
+ {
+ iChan = sdcch4_pos;
+ quality = rm_PhyChanSdcch4[sdcch4_pos].quality;
+ }
+ }
+ sdcch4_pos++;
+ if (sdcch4_pos>=OAMrm_MAX_SDCCH4S) sdcch4_pos=0;
+ }
+
+ if ( iChan != 0xFF )
+ {
+ //Got expected SDCCH4 channel
+ rm_PhyChanSdcch4[iChan].state = RM_PHYCHAN_ASSIGNED;
+ pSmCtxt = rm_PhyChanSdcch4[iChan].pMSmCtxt;
+ //DSPADDED
+ sdcch4_pos = iChan+1;
+ if (sdcch4_pos>=OAMrm_MAX_SDCCH4S) sdcch4_pos=0;
+
+ //PMADDED:attSDCCHSeizuresMeetingSDCCHBlockedState
+ rm_PhyChanSdcch4[iChan].chanBusy = RM_FALSE;
+ }
+ //else
+ //{
+ // rm_AllAvailableSdcch4.allocated = RM_TRUE;
+ // rm_AllAvailableSdcch4.startTime = tickGet();
+ // PM_CellMeasurement.attSDCCHSeizuresMeetingSDCCHBlockedState.increment();
+ //}
+
+ break;
+
+ default:
+ EDEBUG__(("ERROR-rm_AllocSmCtxt: unsupported chan type:%d\n",
+ chanType));
+ break;
+
+ } //End of switch()
+
+ return (pSmCtxt);
+
+} //End of rm_AllocSmCtxt()
+
+void intg_SetNextAssignment(u8 trx, u8 slot)
+{
+ u8 i, chan;
+
+ chan = 0x08|slot;
+
+ for (i=0; i<OAMrm_MAX_TCHFS; i++)
+ {
+ if ( rm_PhyChanTchf[i].trxNumber == trx &&
+ rm_PhyChanTchf[i].chanNumberMSB == chan )
+ {
+ tch_pos = i;
+ if ( rm_PhyChanTchf[tch_pos].usable != RM_PHYCHAN_USABLE ||
+ rm_PhyChanTchf[tch_pos].state != RM_PHYCHAN_FREE ||
+ rm_PhyChanTchf[tch_pos].amState != unlocked ||
+ rm_PhyChanTchf[tch_pos].opState != opStateEnabled )
+
+ {
+ printf("TCHF chan (%d,%d) blocked or in use now usable=%d,state=%d\n",
+ trx, slot,rm_PhyChanTchf[tch_pos].usable,
+ rm_PhyChanTchf[tch_pos].state );
+ } else
+ {
+ printf("TCHF Chan (%d,%d) will be assigned to next TCHF chan req\n",
+ trx, slot);
+ }
+ }
+ }
+}
+
+#endif //__RM_ALLOCSMCTXT_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_ChanReq.cpp b/data/mnet/GP10/Host/rm/Src/rm_ChanReq.cpp
new file mode 100644
index 0000000..43d8ed5
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_ChanReq.cpp
@@ -0,0 +1,302 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+
+#ifndef __RM_CHANREQ_CPP__
+#define __RM_CHANREQ_CPP__
+
+#include "rm\rm_head.h"
+extern int ta_HoldFacch;
+
+void rm_ChanReq( rm_ChanReq_t *pChanReq )
+{
+ rm_SmCtxt_t *pSmCtxt;
+ rm_PhyChanActDesc_t actDesc;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_ChanReq\n"));
+
+ //PMADDED:attImmediateAssingProcs,attImmediateAssingProcsPerCauseTable
+ PM_CellMeasurement.attImmediateAssingProcs.increment();
+ PM_CellMeasurement.attImmediateAssingProcsPerCauseTable.increment(pChanReq->estCause);
+
+ //Check if the system locked/shutting down
+ if (OAMrm_BTS_AMSTATE==locked ||
+ OAMrm_BTS_AMSTATE==shuttingDown ||
+ OAMrm_TRX_AMSTATE(0)==locked ||
+ OAMrm_TRX_AMSTATE(0)==shuttingDown ||
+ OAMrm_CHN_AMSTATE(0,0)==locked ||
+ OAMrm_CHN_AMSTATE(0,0)==shuttingDown )
+ {
+ PDEBUG__(("INFO@rm_ChanReq: System blocked/shutting down(%d,%d,%d),cause=%d\n",
+ OAMrm_BTS_AMSTATE, OAMrm_TRX_AMSTATE(0),OAMrm_CHN_AMSTATE(0,0),
+ pChanReq->estCause));
+
+ //GP2
+ //if (!rm_VcIsBarred)
+ //{
+ // rm_VcIsBarred = RM_TRUE;
+ // rm_SendSystemInfo2ToBcchTrx(0,2,CNI_RIL3_CELL_BARRED_ACCESS);
+ // rm_SendSystemInfo3ToBcchTrx(0,3,CNI_RIL3_CELL_BARRED_ACCESS);
+ // rm_SendSystemInfo4ToBcchTrx(0,4,CNI_RIL3_CELL_BARRED_ACCESS);
+ //}
+
+ return;
+ }
+
+ pSmCtxt = RM_SMCTXT_NULL;
+ switch(pChanReq->estCause)
+ {
+ case RM_CHANREQ_COS_LUP: //0x00
+ //LUP call: allocate currently best SDCCH/4
+ pSmCtxt = rm_AllocSmCtxt(RM_PHYCHAN_SDCCH4);
+ //pSmCtxt = rm_AllocSmCtxt(RM_PHYCHAN_TCHF_S);
+
+ //PM Added:
+ if (RM_SMCTXT_NULL == rm_PreAllocSmCtxt(RM_PHYCHAN_SDCCH4) )
+ {
+ if (!rm_AllAvailableSdcch4.allocated)
+ {
+ rm_AllAvailableSdcch4.allocated = RM_TRUE;
+ PM_CellMeasurement.allAvailableSDCCHAllocatedTime.start();
+
+ //rm_AllAvailableSdcch4.startTime = tickGet();
+ }
+ }
+
+ if (pSmCtxt == RM_SMCTXT_NULL)
+ PM_CellMeasurement.attSDCCHSeizuresMeetingSDCCHBlockedState.increment();
+
+ break;
+
+ case RM_CHANREQ_COS_EMC: //0xA0
+ case RM_CHANREQ_COS_MTC: //0x80
+ case RM_CHANREQ_COS_MOC: //0xE0
+ //MOC&MTC call: Allocate the best TCH/F channel
+ pSmCtxt = rm_AllocSmCtxt(RM_PHYCHAN_TCHF_S);
+
+ if (RM_SMCTXT_NULL == rm_PreAllocSmCtxt(RM_PHYCHAN_TCHF_S) )
+ {
+ //PM Added:
+ if (!rm_AllAvailableTchf.allocated)
+ {
+ rm_AllAvailableTchf.allocated = RM_TRUE;
+ PM_CellMeasurement.allAvailableTCHAllocatedTime.start();
+
+ //rm_AllAvailableTchf.startTime = tickGet();
+ }
+ }
+
+ if (pSmCtxt == RM_SMCTXT_NULL)
+ {
+ PDEBUG__(("INFO@rm_ChanReq: No tchf available and temp. bar this cell\n"));
+
+ PM_CellMeasurement.attTCHSeizuresMeetingTCHBlockedState.increment();
+
+ //Modify SI2-4 and update DSP,MS as well as MIB for display in ViperWatch
+ //OAMrm_RA_CELL_BARRED_STATEa = (Boolean)CNI_RIL3_CELL_BARRED_ACCESS;
+ //if (STATUS_OK!=
+ // oam_setMibIntVar(MODULE_RM, MIB_cellBarred, OAMrm_RA_CELL_BARRED_STATEa) )
+ //{
+ // EDEBUG__(("ERROR@rm_ChanReq: OAM set cellBarred failed, state=%d\n",
+ // OAMrm_RA_CELL_BARRED_STATEa));
+ //}
+ if (OAMrm_OVERLOAD_CELLBAR)
+ {
+ //Cell is temporarily barred, not reflected in MIB thus
+ rm_VcIsBarred = RM_TRUE;
+ rm_SendSystemInfo2ToBcchTrx(0,2,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo3ToBcchTrx(0,3,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo4ToBcchTrx(0,4,CNI_RIL3_CELL_BARRED_ACCESS);
+ } else
+ {
+ if (rm_VcIsBarred)
+ {
+ rm_VcIsBarred = RM_FALSE;
+ rm_SendSystemInfo2ToBcchTrx(0,2,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo3ToBcchTrx(0,3,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo4ToBcchTrx(0,4,OAMrm_RA_CELL_BARRED_STATE);
+ }
+ }
+ }
+ break;
+
+ default:
+ //TBD: Process other est causes later
+ EDEBUG__(( "ERROR-rm_ChanReq: unsupported est cause:%d\n",pChanReq->estCause ));
+ return;
+
+ } //End of switch()
+
+ if (pSmCtxt == RM_SMCTXT_NULL)
+ {
+ PDEBUG__(("INFO@rm_ChanReq: all channels happen to be in use now\n"));
+ rm_SendImmAssignRej((int)pChanReq->estCause);
+ }else
+ {
+ //Activate the allocated channel for this channel request
+ actDesc.actType = RM_L1ACTTYPE_IMMASS; //Activation type
+
+ //PR1248 Begin
+ actDesc.dtxCtrl = 0; //DTX ul&dl both OFF
+
+ //PR1381 BEGIN
+ if ( ((int)OAMrm_MS_UPLINK_DTX_STATE==1) ||
+ ((int)OAMrm_MS_UPLINK_DTX_STATE==0) )
+ actDesc.dtxCtrl |= 1; //DTX: ul ON
+ //PR1381 END
+
+ //PR1319
+ //if ( !(pSmCtxt->pPhyChan->trxNumber) && OAMrm_MS_DNLINK_DTX_STATE )
+ if ( (pSmCtxt->pPhyChan->trxNumber) && OAMrm_MS_DNLINK_DTX_STATE )
+ actDesc.dtxCtrl |= 2; //DTX: dl ON
+ //PR1248 End
+
+ actDesc.datAttr = RM_L1DATATTR_SIGNALING; //Chan mode: byte 2
+ //actDesc.datAttr = RM_L1DATATTR_SPEECH; //Speech mode
+ switch(pChanReq->estCause)
+ {
+ case RM_CHANREQ_COS_LUP:
+ actDesc.ratType = RM_L1RATTYPE_SDCCH; //Channel mode:byte 3
+ //actDesc.ratType = RM_L1RATTYPE_TCHF; //Channel mode:byte 3
+ break;
+
+ case RM_CHANREQ_COS_MOC:
+ actDesc.ratType = RM_L1RATTYPE_TCHF; //Channel mode:byte 3
+ //actDesc.ratType = RM_L1RATTYPE_SDCCH; //Channel mode:byte 3
+ break;
+
+ case RM_CHANREQ_COS_EMC: //0xA0
+ case RM_CHANREQ_COS_MTC:
+ actDesc.ratType = RM_L1RATTYPE_TCHF; //Channel mode:byte 3
+ //actDesc.ratType = RM_L1RATTYPE_SDCCH; //Channel mode:byte 3
+ break;
+ }
+
+ actDesc.codAlgo = RM_L1CODALGO_NORES;
+ actDesc.ciphSet = RM_L1CIPHTYPE_NCIPH;
+ RM_MEMSET(&actDesc.ciphKey, RM_L1CIPHKEY_LEN);
+ actDesc.bsPower = RM_L1BSPOWER_PREALPHA;
+ actDesc.msPower = RM_L1MSPOWER_PREALPHA;
+ actDesc.taValue = rm_pItcRxMdMsg->l3_data.buffer[3];
+ actDesc.UIC = 0;
+
+ rm_SendChanActivation(pSmCtxt->pPhyChan,&actDesc);
+
+ //Save Channel Request info for use by Imm Assign
+ pSmCtxt->isForHo = RM_FALSE; //Tell hoReq from normal chanReq
+
+ pSmCtxt->callType = (u8)(pChanReq->estCause);
+ RM_MEMCPY( pSmCtxt->pPhyChan->savChanReq,
+ rm_pItcRxMdMsg->l3_data.buffer, RM_SAVCHANREQ_LEN );
+
+ //PMADDED:
+ pSmCtxt->pPhyChan->estCause = (u8)pChanReq->estCause;
+
+ //Adjust State Machine state accordingly
+ pSmCtxt->state = RM_S2ACTIVATING_SIGTRAFFIC_CHAN;
+ }
+
+} //End rm_ChanReq()
+
+
+void rm_SendImmAssignRej(int cause)
+{
+ int i;
+ u16 length; //Length of a msg sent to L1
+ rm_EdRet_t rrEdRet; //Return code from RR decode
+ rm_L3Data_t l3_data; //Encoded Paging Req Type 1
+ rm_ItcTxMsg_t msgToL1; //Send PH_DATA_REQ msg to L1
+ T_CNI_RIL3RRM_MSG_IMMEDIATE_ASSIGNMENT_REJECT
+ *pUmImmAssignRej; //Data for encoding PageReq1
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SendImmAssignRej\n"));
+
+ //Choose Imm Assign message structure
+ pUmImmAssignRej =
+ (T_CNI_RIL3RRM_MSG_IMMEDIATE_ASSIGNMENT_REJECT *)&(rm_UmMsg.immediateAssignmentReject);
+
+
+ //Populate the contents so that encoder knows what to encode but
+ //before we start populating the message content, zap it clean
+ //first.
+
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ //Header--PD,MT,SI
+ pUmImmAssignRej->header.protocol_descriminator = RM_PD;
+ pUmImmAssignRej->header.si_ti = RM_SI;
+ pUmImmAssignRej->header.message_type = CNI_RIL3RRM_MSGID_IMMEDIATE_ASSIGNMENT_REJECT;
+
+ //IE--Page Mode
+ pUmImmAssignRej->pageMode.ie_present = RM_TRUE;
+ pUmImmAssignRej->pageMode.pm = CNI_RIL3_PAGING_SAME_AS_BEFORE;
+
+ //IE--Channel Description
+ for (i=0;i<4;i++)
+ {
+ pUmImmAssignRej->reqReference[i].ie_present = RM_TRUE;
+ pUmImmAssignRej->reqReference[i].randomAccessInfo = rm_pItcRxMdMsg->l3_data.buffer[0];
+ pUmImmAssignRej->reqReference[i].T1 = (rm_pItcRxMdMsg->l3_data.buffer[1]>>3) & 0x1F;
+ pUmImmAssignRej->reqReference[i].T2 = (rm_pItcRxMdMsg->l3_data.buffer[2] ) & 0x1F;
+ pUmImmAssignRej->reqReference[i].T3 = (((rm_pItcRxMdMsg->l3_data.buffer[1]<<3) & 0x38)|
+ ((rm_pItcRxMdMsg->l3_data.buffer[2]>>5) & 0x07) );
+
+ pUmImmAssignRej->waitIndication[i].ie_present = RM_TRUE;
+ pUmImmAssignRej->waitIndication[i].T3122 = 4; //sec
+ }
+
+ //Call RR message encoding functionality
+ rrEdRet = CNI_RIL3RRM_Encode( &rm_UmMsg, &l3_data);
+
+ //check the encoding result before sending the message
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+
+ //Wrap the encoded Paging message in PH_DATA_REQ
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_LNKMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_PHDATAREQ_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_PHDATAREQ_LSB;
+ msgToL1.buffer[length++] = OAMrm_BCCH_TRX;
+ msgToL1.buffer[length++] = RM_L1AGCH_CHANNUMBER_MSB;
+ msgToL1.buffer[length++] = 28;
+ msgToL1.buffer[length++] = RM_L1LINK_VOID;
+
+ RM_MEMCPY(&msgToL1.buffer[length], l3_data.buffer, l3_data.msgLength);
+ msgToL1.msgLength = length + l3_data.msgLength;
+
+ //Send PH_DATA_REQ to L1
+ PostL3SendMsLog( &l3_data );
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+ PDEBUG__(("========rm_SendImmAssignRej: (cause=%x, randomInfo=%x, TA=%d, T1-3(%x,%x)\n",
+ cause,
+ rm_pItcRxMdMsg->l3_data.buffer[0],
+ rm_pItcRxMdMsg->l3_data.buffer[3],
+ rm_pItcRxMdMsg->l3_data.buffer[1],
+ rm_pItcRxMdMsg->l3_data.buffer[2]
+ ));
+
+ //PMADDED:succImmediateAssingProcs,succImmediateAssingProcsPerCauseTable
+ //PM_CellMeasurement.succImmediateAssingProcs.increment();
+ //PM_CellMeasurement.succImmediateAssingProcsPerCauseTable.increment(pPhyChan->estCause);
+
+ break;
+
+ default:
+ //Um message encoding failed
+ EDEBUG__(("ERROR-rm_SendImmAssignRej: Um encode error:%d\n", rrEdRet ));
+ break;
+
+ } //End of switch(rrEdRet)
+
+} //End of rm_SendImmAssignRej()
+
+#endif //__RM_CHANREQ_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_ConfigTrxSlots.cpp b/data/mnet/GP10/Host/rm/Src/rm_ConfigTrxSlots.cpp
new file mode 100644
index 0000000..32c11c5
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_ConfigTrxSlots.cpp
@@ -0,0 +1,83 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_CONFIGTRXSLOTS_CPP__
+#define __RM_CONFIGTRXSLOTS_CPP__
+
+#include "rm\rm_head.h"
+
+//void sys_init(void); /* TEST: rml1 intg */
+
+u8 rm_ConfigTrxSlots( u8 trx )
+{
+ u8 i; /* loop-control variable */
+ u8 isBcchTrx; /* tell if trx is carrying BCCH channel */
+
+ isBcchTrx = RM_FALSE;
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_ConfigTrx\n" ));
+
+ /*TEST: RM-L1 Integration */
+ //sys_Init();
+
+
+ /* Wait L1 bootstrap confirmation */
+ //rm_WaitForL1Bootstrap();
+
+ /* It's caller's responsibility to make sure trx is valid */
+
+ /* First: Send TRX CONFIGure and wait for response */
+
+ /*
+ ** TBD: Winfield May allow several retries of TRX Configure for
+ ** real operation later
+ */
+
+ rm_SendTrxConfigToTrx(trx);
+ rm_WaitForL1Rsp(trx,RM_L1MG_TRXMGMT, RM_L1MT_TRXCONFIGACK_MSB,
+ RM_L1MT_TRXCONFIGACK_LSB );
+printf("WATCH:rm_ConfigTrxSlot--got rsp to TrxConfig\n");
+
+ /* Second: Send SLOT ACTIVate and wait for response */
+ i=0;
+ while ( i < OAMrm_SLOTS_PER_TRX )
+ {
+ /* TBD: send nothing to a slot if unused */
+ if ( OAMrm_TRX_SLOT_COMB(trx,i) != OAMrm_SLOT_UNUSED )
+ {
+ /* Send SlotActvate and wait for rsp */
+ rm_SendSlotActivateToTrx(trx,i);
+ rm_WaitForSlotActivateRsp(trx,i);
+
+ /* Check if the slot is carrying BCCH */
+ if ( OAMrm_TRX_SLOT_COMB(trx,i) == OAMrm_SLOT_BEACON )
+ isBcchTrx = RM_TRUE;
+ }
+ i++;
+ }
+
+PDEBUG__(("SLOT ACTIVATION FINISHED\n"));
+ /*
+ ** Third: Send the following commands but order TBD with DSP guys:
+ ** (1) SET Uplink GAIN (2) SET Downlink GAIN (3) TUNE SYNTHesizer
+ ** (4) CONFIGure FPGA DELAY.No response is seeked for the four L1
+ ** commands.
+ */
+ //rm_SendSetUGainToTrx(trx);
+ //rm_SendSetDGainToTrx(trx);
+ //rm_SendTuneSynthToTrx(trx);
+ //rm_SendConfigFpgaDelayToTrx(trx);
+
+PDEBUG__(("CONFIG TRX/SLOTS FINISHED\n"));
+
+ return (isBcchTrx);
+
+} /* End of rm_ConfigTrxSlots() */
+
+#endif /* __RM_CONFIGTRXSLOTS_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_DlRaInd.cpp b/data/mnet/GP10/Host/rm/Src/rm_DlRaInd.cpp
new file mode 100644
index 0000000..fac1fa0
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_DlRaInd.cpp
@@ -0,0 +1,85 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+
+#ifndef __RM_DLRAIND_CPP__
+#define __RM_DLRAIND_CPP__
+
+#include "rm\rm_head.h"
+#include "rlc_mac\RlcMacIntf.h"
+
+void rm_DlRaInd( void )
+{
+ //rm_ChanReq_t chanReq;
+ T_CNI_RIL3RRM_MSG_CHANNEL_REQUEST chanReq;
+ rm_EdRet_t raEdRet;
+ JC_STATUS ret;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_DlRaInd\n" ));
+
+ //CT_CHN if ( rm_pItcRxMdMsg->channel_type != CT_RACH )
+ if ( rm_pItcRxMdMsg->entry_id != rm_RachEntryId )
+ {
+ //TBD: Received is not Channel Request msg
+ EDEBUG__(( "ERROR-rm_DlRaInd: expected RA on RACH not on:\n",
+ rm_pItcRxMdMsg->entry_id ));
+ //CT_CHN rm_pItcRxMdMsg->channel_type ));
+ return;
+ }
+
+ //Call RA decoder to decode channel request message
+ chanReq.neci = CNI_RIL3_NECI_NOT_SUPPORTED; //TBD:Sheausong
+ raEdRet = CNI_RIL3RRM_DecodeChannelRequest (
+ rm_pItcRxMdMsg->l3_data.buffer,
+ &chanReq );
+
+ PDEBUG__(("TRACK-rm_DlRaInd: neci=%d,cos=%d,ref=%d\n",
+ chanReq.neci,chanReq.estCause,chanReq.randomReference));
+
+ //T_CNI_RIL3_NECI neci;
+ //neci has to be passed in for correct decoding,
+ //T_CNI_RIL3_ESTABLISH_CAUSE estCause;
+ //char randomReference;
+
+ switch (raEdRet)
+ {
+ case RM_RAED_SUCCESS:
+ //G2
+ if (rm_IsGprsChanReq(chanReq.estCause))
+ {
+ if (JC_OK != (ret=RlcMacRmMdMsgInd(rm_pItcRxMdMsg)) )
+ {
+ IDEBUG__(("WARNING@rm_DlRaInd: API RlcMacRmMdMsgInd failed ret(%d)\n",ret));
+ }
+ } else
+ rm_ChanReq(&chanReq);
+ break;
+
+ default:
+ //RA-decoding failed
+ EDEBUG__(("ERROR@rm_DlRaInd:RA decode failed\n"));
+ break;
+
+ } //End of switch()
+
+} //End of rm_DlRaInd()
+
+//G2
+bool rm_IsGprsChanReq(T_CNI_RIL3_ESTABLISH_CAUSE cause)
+{
+ if ( (cause == CNI_RIL3_EST_CALL_ONE_PHASE_PACKET_ACCESS) ||
+ (cause == CNI_RIL3_EST_CALL_SINGLE_BLOCK_PACKET_ACCESS) )
+ return true;
+ else
+ return false;
+}
+
+#endif //__RM_DLRAIND_CPP__
+
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_EntryIdTestPrint.cpp b/data/mnet/GP10/Host/rm/Src/rm_EntryIdTestPrint.cpp
new file mode 100644
index 0000000..bd89676
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_EntryIdTestPrint.cpp
@@ -0,0 +1,46 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_ENTRYIDTESTPRINT_CPP__
+#define __RM_ENTRYIDTESTPRINT_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_EntryIdTestPrint(u8 tchfIdx, u8 sdcch4Idx)
+{
+ u8 i, iEntryId;
+
+ /* Print TCHF channel idx-entryId mapping */
+ for (i=0; i<tchfIdx; i++)
+ {
+ iEntryId = RM_TCHF_ENTRYIDX(rm_PhyChanTchf[i].trxNumber,
+ rm_PhyChanTchf[i].chanNumberMSB );
+
+ PDEBUG__(("%dth TCHF entryId data: iEntryId=%d ,entryId=%d\n",
+ i,
+ iEntryId,
+ rm_TchfEntryId[iEntryId]
+ ));
+ }
+
+ /* Print SDCCH4 channel idx-entryId mapping */
+ for (i=0; i<sdcch4Idx; i++)
+ {
+ iEntryId = RM_SDCCH4_ENTRYIDX(rm_PhyChanSdcch4[i].trxNumber,
+ rm_PhyChanSdcch4[i].chanNumberMSB );
+
+ PDEBUG__(("%dth SDCCH4 entryId data: iEntryId=%d,entryId=%d\n",
+ i,
+ iEntryId,
+ rm_Sdcch4EntryId[iEntryId]
+ ));
+ }
+
+} /* End of rm_EntryIdTestPrint() */
+
+#endif /* __RM_ENTRYIDTESTPRINT_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_GetImsiMod100.cpp b/data/mnet/GP10/Host/rm/Src/rm_GetImsiMod100.cpp
new file mode 100644
index 0000000..23e627b
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_GetImsiMod100.cpp
@@ -0,0 +1,27 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_GETIMSIMOD1000_CPP__
+#define __RM_GETIMSIMOD1000_CPP__
+
+#include "rm\rm_head.h"
+
+u16 rm_GetImsiMod1000(rm_IeImsi_t *pImsi)
+{
+
+ RDEBUG__(("ENTER-rm_GetImsiMod1000\n"));
+
+ return (
+ ( pImsi->digits[pImsi->numDigits-1] & 0x0f ) +
+ ( pImsi->digits[pImsi->numDigits-2] & 0x0f ) *10 +
+ ( pImsi->digits[pImsi->numDigits-3] & 0x0f ) *100
+ );
+
+} /* End of rm_GetImsiMod1000() */
+
+#endif /* __RM_GETIMSIMOD1000_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_GetIrtEntryId.cpp b/data/mnet/GP10/Host/rm/Src/rm_GetIrtEntryId.cpp
new file mode 100644
index 0000000..7465db8
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_GetIrtEntryId.cpp
@@ -0,0 +1,56 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_GETIRTENTRYID_CPP__
+#define __RM_GETIRTENTRYID_CPP__
+
+#include "rm\rm_head.h"
+
+rm_IrtEntryId_t rm_GetIrtEntryId( rm_ItcRxL1Msg_t * pL1Msg )
+{
+ u8 idx,trx,chan;
+ rm_IrtEntryId_t entry_id;
+
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_GetIrtEntryId\n"));
+
+ /*
+ ** Solve for entry id in terms of message origin
+ ** Please note CHANNE REQ, MM PAGE REQ have been
+ ** processed before calling this function.
+ */
+
+ trx = pL1Msg->l3_data.buffer[3];
+ chan = pL1Msg->l3_data.buffer[4];
+
+ entry_id = CNI_IRT_NULL_ID;
+
+ if ( pL1Msg->l3_data.buffer[0] != RM_L1MG_DEDMGMT )
+ EDEBUG__(("ERROR-rm_GetIrtEntryId: not DEDMGMT group\n"));
+
+ else if ( RM_ISTCHF(chan) )
+ {
+ idx = RM_TCHF_ENTRYIDX(trx, chan);
+ entry_id = rm_TchfEntryId[idx];
+ }
+ else if ( RM_ISSDCCH4(chan) )
+ {
+ idx = RM_SDCCH4_ENTRYIDX(trx,chan);
+ entry_id = rm_Sdcch4EntryId[idx];
+PDEBUG__(("TRACK-rm_GetIrtEntryId: Idx=%d, entryId=%d\n",idx,entry_id));
+
+ }
+ else
+ PDEBUG__(("UNKNOWN-rm_GetIrtEntryId: chan type:%d",chan));
+
+ return (entry_id);
+
+} /* End of rm_GetIrtEntryId() */
+
+#endif /* __RM_GETIRTENTRYID_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_HoReq.cpp b/data/mnet/GP10/Host/rm/Src/rm_HoReq.cpp
new file mode 100644
index 0000000..0f58d5e
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_HoReq.cpp
@@ -0,0 +1,225 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_HOREQ_CPP__
+#define __RM_HOREQ_CPP__
+
+//HOADDED
+//!!! TCH/F assumed
+#include "rm\rm_head.h"
+
+void rm_HoReq(void)
+{
+ rm_SmCtxt_t *pSmCtxt;
+ rm_PhyChanActDesc_t actDesc;
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_HoReq\n"));
+
+ //Check if the system locked/shutting down
+ if (OAMrm_BTS_AMSTATE==locked ||
+ OAMrm_BTS_AMSTATE==shuttingDown ||
+ OAMrm_TRX_AMSTATE(0)==locked ||
+ OAMrm_TRX_AMSTATE(0)==shuttingDown ||
+ OAMrm_CHN_AMSTATE(0,0)==locked ||
+ OAMrm_CHN_AMSTATE(0,0)==shuttingDown )
+ {
+ PDEBUG__(("INFO@rm_HoReq: System blocked/shutting down(%d,%d,%d) \n",
+ OAMrm_BTS_AMSTATE, OAMrm_TRX_AMSTATE(0),OAMrm_CHN_AMSTATE(0,0)));
+
+ if (!rm_VcIsBarred)
+ {
+ rm_VcIsBarred = RM_TRUE;
+ rm_SendSystemInfo2ToBcchTrx(0,2,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo3ToBcchTrx(0,3,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo4ToBcchTrx(0,4,CNI_RIL3_CELL_BARRED_ACCESS);
+ }
+
+ return;
+ }
+
+ //Request for a TCH/F and activate it
+ pSmCtxt = RM_SMCTXT_NULL;
+ switch(rm_pItcRxMmMsg->l3_data.handReq.channelType.bearerType)
+ {
+ case BEARER_SPEECH:
+ //Handover on-going speech. Allocate current-best TCH/F
+ pSmCtxt = rm_AllocSmCtxt(RM_PHYCHAN_TCHF_S);
+
+ if ( RM_SMCTXT_NULL==rm_PreAllocSmCtxt(RM_PHYCHAN_TCHF_S) )
+ {
+ //PM Added:
+ if (!rm_AllAvailableTchf.allocated)
+ {
+ rm_AllAvailableTchf.allocated = RM_TRUE;
+ PM_CellMeasurement.allAvailableTCHAllocatedTime.start();
+
+ //rm_AllAvailableTchf.startTime = tickGet();
+ }
+ }
+
+ //Wirte current used speech version into HO Target Channel structure to solve mismatched speech versions
+ //for Calll Hold after HO
+ if (pSmCtxt == RM_SMCTXT_NULL)
+ {
+ PDEBUG__(("INFO@rm_HoReq: No tchf available and temp. bar this cell\n"));
+ //Modify SI2-4 and update DSP,MS as well as MIB for display in ViperWatch
+ //OAMrm_RA_CELL_BARRED_STATEa = (Boolean) CNI_RIL3_CELL_BARRED_ACCESS;
+ //if (STATUS_OK!=
+ // oam_setMibIntVar(MODULE_RM, MIB_cellBarred, OAMrm_RA_CELL_BARRED_STATEa) )
+ //{
+ // EDEBUG__(("ERROR@rm_HoReq: OAM set cellBarred failed, state=%d\n",
+ // OAMrm_RA_CELL_BARRED_STATEa));
+ //}
+
+ PM_CellMeasurement.attTCHSeizuresMeetingTCHBlockedState.increment();
+
+ if (OAMrm_OVERLOAD_CELLBAR)
+ {
+ //Cell is temporarily barred, not reflected in OAM GUI
+ rm_VcIsBarred = RM_TRUE;
+ rm_SendSystemInfo2ToBcchTrx(0,2,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo3ToBcchTrx(0,3,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo4ToBcchTrx(0,4,CNI_RIL3_CELL_BARRED_ACCESS);
+ } else
+ {
+ if (rm_VcIsBarred)
+ {
+ rm_VcIsBarred = RM_FALSE;
+ rm_SendSystemInfo2ToBcchTrx(0,2,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo3ToBcchTrx(0,3,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo4ToBcchTrx(0,4,OAMrm_RA_CELL_BARRED_STATE);
+ }
+ }
+ }
+// else
+// {
+// pSmCtxt->spchVer = (u8)(rm_pItcRxCcMsg->l3_data.handReq.channelType.speechChann.version);
+// PDEBUG__(("INFO@rm_HoReq: assigned spch version(loc %d, cc %d, u8cc %d) entryId %d\n",
+// pSmCtxt->spchVer,
+// rm_pItcRxCcMsg->l3_data.handReq.channelType.speechChann.version,
+// (u8)(rm_pItcRxCcMsg->l3_data.handReq.channelType.speechChann.version),
+// pSmCtxt->mEntryId));
+// }
+ break;
+
+ case BEARER_DATA:
+ case BEARER_SIGNALING:
+ default:
+ //Unexpected channel type in received Handover Request
+ EDEBUG__(("ERROR-rm_HoReq: unsupported chanType:%d\n",
+ rm_pItcRxMmMsg->l3_data.channAssignCmd.channelType.bearerType));
+ return;
+ }
+
+ //Valid channel type i.e. TCH/F speech. Check if any free TCH/F found
+ if ( pSmCtxt == RM_SMCTXT_NULL )
+ {
+ rm_SendHoReqNAck(rm_pItcRxMmMsg->l3_data.handReq.mmId);
+ EDEBUG__(("ERROR-rm_HoReq: No Physical Channel available right now\n"));
+ } else
+ {
+ //Got a free physical channel for this handover request
+
+ rm_ItcTxMsg_t msgToL1;
+ u16 length;
+
+ pSmCtxt->codAlgo = rm_BeaerCapVerToChanMode(rm_pItcRxMmMsg->l3_data.handReq.channelType.speechChann.version);
+
+ pSmCtxt->spchVer = (u8)(rm_pItcRxMmMsg->l3_data.handReq.channelType.speechChann.version);
+
+ PDEBUG__(("INFO@rm_HoReq: assigned spch version(loc %d, cc %d, u8cc %d) entryId %d\n",
+ pSmCtxt->spchVer,
+ rm_pItcRxMmMsg->l3_data.handReq.channelType.speechChann.version,
+ (u8)(rm_pItcRxMmMsg->l3_data.handReq.channelType.speechChann.version),
+ pSmCtxt->mEntryId));
+
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_DEDMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_CHANACTIV_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_CHANACTIV_LSB;
+ msgToL1.buffer[length++] = pSmCtxt->pPhyChan->trxNumber;
+ msgToL1.buffer[length++] = pSmCtxt->pPhyChan->chanNumberMSB;
+ msgToL1.buffer[length++] = pSmCtxt->pPhyChan->chanNumberLSB;
+
+ msgToL1.buffer[length++] = RM_L1ACTTYPE_ASYNC_HO; //actType
+
+ //PR1248 Begin
+ msgToL1.buffer[length] = 0; // DTX ul&dl OFF
+
+ //PR1381 BEGIN
+ if ( ((int)OAMrm_MS_UPLINK_DTX_STATE==1) ||
+ ((int)OAMrm_MS_UPLINK_DTX_STATE==0) )
+ msgToL1.buffer[length] |= 1; //DTX ul ON
+ //PR1381 END
+
+ //PR1319
+ //if ( !(pSmCtxt->pPhyChan->trxNumber) && OAMrm_MS_DNLINK_DTX_STATE )
+ if ( (pSmCtxt->pPhyChan->trxNumber) && OAMrm_MS_DNLINK_DTX_STATE )
+ msgToL1.buffer[length] |= 2; //DTX dl ON
+ length++;
+ //PR1248 End
+
+ msgToL1.buffer[length++] = RM_L1DATATTR_SPEECH; //datAttr
+ msgToL1.buffer[length++] = RM_L1RATTYPE_TCHF; //ratType
+// msgToL1.buffer[length++] = RM_L1CODALGO_GSMV1; //codAlgo
+//EFRAdded
+ msgToL1.buffer[length++] = pSmCtxt->codAlgo;
+
+ //msgToL1.buffer[length++] = RM_L1CIPHTYPE_NCIPH; //ciphSet
+ //RM_MEMSET(&msgToL1.buffer[length], RM_L1CIPHKEY_LEN); //ciphKey
+ //length = length + RM_L1CIPHKEY_LEN - 1; //TEMP Adjustment
+
+ //Ciphering
+ IntraL3CipherModeCommand_t *p;
+ p =(IntraL3CipherModeCommand_t *) &(rm_pItcRxMmMsg->l3_data.handReq.cipherCmd);
+ PDEBUG__(("INFO@rm_HandReq: ciphData(%d, set%d,algo%d),ciphResp(%d,imeisv%d)\n",
+ p->cmd.cipherModeSetting.ie_present,
+ p->cmd.cipherModeSetting.ciphering,
+ p->cmd.cipherModeSetting.algorithm,
+ p->cmd.cipherResponse.ie_present,
+ p->cmd.cipherResponse.cipherResponse));
+
+ int len,i;
+ len = length;
+ if (p->cmd.cipherModeSetting.ciphering == CNI_RIl3_CIPHER_START_CIPHERING)
+ {
+ //Order algorithm to be used for the ciphering
+ msgToL1.buffer[len++] = ((u8)p->cmd.cipherModeSetting.algorithm) + 2;
+ //Pass down the ciphering key
+ for (i=0;i<8;i++)
+ msgToL1.buffer[len++] = p->Kc[i];
+ } else
+ {
+ msgToL1.buffer[len++] = 1; //No ciphering applied
+ }
+ length = length + RM_L1CIPHKEY_LEN;
+
+ msgToL1.buffer[length++] = rm_pItcRxMmMsg->l3_data.handReq.mmId; //hoRef
+ msgToL1.buffer[length++] = 0; //bsPower
+ msgToL1.buffer[length++] = OAMrm_MS_TX_PWR_MAX_CCH; //MS init TX pwr
+ msgToL1.buffer[length++] = 0; //TA
+ msgToL1.buffer[length++] = 0; //UIC
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+ //Save handover reference and adjust state machine state
+ pSmCtxt->isForHo = RM_TRUE;
+ pSmCtxt->pPhyChan->ny1 = 0; //Reset retry counter of sending Physical info msg
+ pSmCtxt->pPhyChan->hoRef = rm_pItcRxMmMsg->l3_data.handReq.mmId;
+ pSmCtxt->state = RM_S2ACTIVATING_SIGTRAFFIC_CHAN;
+
+ //PMADDED:attTCHSeizures
+ PM_CellMeasurement.attTCHSeizures.increment();
+
+ }
+
+} /* End rm_HoReq() */
+
+#endif /* __RM_HOREQ_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_InitAll.cpp b/data/mnet/GP10/Host/rm/Src/rm_InitAll.cpp
new file mode 100644
index 0000000..07a0afa
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_InitAll.cpp
@@ -0,0 +1,694 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_INITALL_CPP__
+#define __RM_INITALL_CPP__
+
+#include "rm\rm_head.h"
+
+STATUS l1pTrxSwap( u8 trxA, u8 trxB);
+
+extern "C" {
+ int drfIQSwapGet(void);
+}
+
+//Completely init RM
+void rm_InitAll(void)
+{
+ int i;
+
+ //Monitoring entrance to a func
+ RDEBUG__(("ENTER@rm_InitAll\n"));
+
+ //Reset RM internal sts
+ rm_DspCiphCap = 0;
+ rm_OpState = EC_NOERROR;
+ rm_AmState00 = unlocked;
+ rm_VcIsBarred = RM_FALSE;
+ rm_CellBarred = CNI_RIL3_CELL_NOT_BARRED;
+ rm_AllAvailableTchf.allocated = RM_FALSE;
+ rm_AllAvailableSdcch4.allocated = RM_FALSE;
+
+ //CBCH assumed on SDCCH4/2
+ rm_ChanCbchActive=RM_FALSE;
+ rm_pCbchChan=&rm_PhyChanSdcch4[2];
+
+ //GP2
+ //
+ OAMrm_CBCH_OPSTATE = false;
+
+ rm_LiveSglCfg = RM_TRUE;
+ rm_NoOfBusySdcch4=0; //Cur Busy SDCCH
+ rm_NoOfUsableTchf=0; //No tchf usable
+ rm_nbrOfAvailableSDCCHs=0; //No sdcch4 usable
+ rm_NoOfBusyTchf=0; //Cur Busy TCH/F
+ rm_NoOfIdleTchf=0; //Cur Idle TCH/F
+ rm_maxNbrOfBusyTCHs=0;
+ rm_maxNbrOfBusySDCCHs=0;
+
+ //sys_Init(); //Create rm msgQ
+
+ //GP2
+ //rm_RetrvConfigFromOam(); //Retrv OAM data
+ //if (OAMrm_BCCH_CARRIER_phTRX==1) //Swap two TRXes
+ // l1pTrxSwap(0,1);
+ //rm_SetRmOpState(EC_BOOTING_UP); //RM booting up!
+ rm_WaitForGrrReadyToGo();
+ //rm_OamRegTrapVars();
+
+ //Start initialize all the RM resources from now!
+ rm_InitRm(); //Init RM itself
+ rm_InitLAPDm(); //Create L2 OIDs
+ rm_InitIRT(); //Create entryID
+ csu_Init(); //Init CSU table
+
+ //GP2
+ //for (i=0;i<OAMrm_MAX_TRXS;i++)
+ //{
+ // rm_InitRcPkg(i); //Initialize RC0
+ // rm_InitTrxPkg(i); //Initialize trx
+ // rm_InitTrxWDog(i); //Init trx twdog
+ //}
+ grr_SendReadyToGoAck(MODULE_RM, grr_MsgQId);
+ rm_InitCb();
+}
+void rm_WaitForGrrReadyToGo(void)
+{
+ int result, waitGrr;
+
+ RDEBUG__(("ENTER@rm_WaitForGrrReadyToGo\n"));
+
+ waitGrr=true;
+
+ while(waitGrr)
+ {
+ //Read a msg from queue or pend on arrival of message
+ result = rm_msgQReceive(rm_MsgQId, (s8 *)&rm_ItcRxMsg,
+ sizeof(rm_ItcRxMsg_t), WAIT_FOREVER);
+ if (result==ERROR)
+ { //Error in reading VxWork msg queue. Ignore msg!
+ rm_SetRmOpState(EC_RM_OS_CALL_MSGQRECEIVE_FAILED);
+ EDEBUG__(("ERROR@rm_WaitForGrrReadyToGo:VxWorks Q read err:%d\n",errno));
+ assert(0);
+ }
+
+ rm_pItcRxGrrMsg = (rm_ItcRxGrrMsg_t*) &rm_ItcRxMsg;
+
+ if ( (rm_pItcRxGrrMsg->module_id==MODULE_GRR) &&
+ (rm_pItcRxGrrMsg->message_type==GRR_READY_TO_GO_REQ) )
+ waitGrr=false;
+ else
+ {
+ if (rm_DbgDump) BYDUMP__(( (u8*)&rm_ItcRxMsg, result));
+ }
+ }
+}
+
+//GP2
+#if 0
+
+//Start trx watchdog timer
+void rm_InitTrxWDog(u8 trx)
+{
+ WDOG_ID timerId;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_InitTrxWDog\n"));
+
+ //Initialize watch dog timer for trx
+ if ( (timerId=wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("ERROR-rm_InitTrxWDog: wdCreate error()\n"));
+ } else
+ {
+ rm_TrxMgmt[trx].TWDOG.id = timerId;
+ rm_TrxMgmt[trx].TWDOG.time = OAMrm_TWDOG;
+ rm_TrxMgmt[trx].TWDOG.state = RM_FALSE;
+ //rm_StartTimer(trx, RM_TWDOG);
+ }
+}
+
+
+//Initialize rc package
+void rm_InitRcPkg(u8 rc)
+{
+ //Monitoring entrance to a func
+ RDEBUG__(("ENTER-rm_InitRcPkg\n"));
+ rm_SetRcOpState(rc, opStateDisabled);
+}
+
+//Initialize trx package
+void rm_InitTrxPkg(u8 trx)
+{
+ //Monitoring entrance to a func
+ RDEBUG__(("ENTER-rm_InitTrxPkg\n"));
+
+ //Disable trx and its channels
+ rm_SetTrxOpState(trx, opStateDisabled);
+ rm_SetAllTrxChnOpState(trx, opStateDisabled);
+
+ //Initialize trx management data
+ RM_MEMSET(&rm_TrxMgmt[trx],sizeof(rm_TrxMgmt_t));
+ rm_TrxMgmt[trx].done = RM_FALSE;
+ rm_TrxMgmt[trx].slot = 0;
+ rm_TrxMgmt[trx].tdma1 = 0xff;
+ rm_TrxMgmt[trx].tdma2 = 0xff;
+ rm_TrxMgmt[trx].tdma3 = 0xff;
+ rm_TrxMgmt[trx].tdma4 = 0xff;
+ rm_TrxMgmt[trx].alive = RM_TRUE;
+ rm_TrxMgmt[trx].state = RM_TRXMGMT_S0_BOOTSTRAP_IND;
+
+ //RM does not go until it gets DSP Bootstrap signal
+}
+
+//Set operational state of one channel under trx
+void rm_SetOneTrxChnOpState(u8 trx,u8 slot,EnableDisable state)
+{
+ MibTag tag;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SetOneTrxChnOpState\n"));
+
+ OAMrm_CHN_OPSTATEa(trx,slot) = state;
+ if (trx==0) tag = MIBT_channelOperationalState_0;
+ else tag = MIBT_channelOperationalState_1;
+ if (STATUS_OK!=oam_setTblEntryField(MODULE_RM,tag,slot,state))
+ {
+ rm_SetRmOpState(EC_RM_OAM_CALL_SETTBLENTRYFIELD_FAILED);
+ EDEBUG__(("ERROR@rm_SetOneTrxChnOpState:OAM failed(%d,%d,%x,%d)\n",
+ trx,slot,tag,state));
+ }
+}
+
+//Set operational state of all channels under trx
+void rm_SetAllTrxChnOpState(u8 trx,EnableDisable state)
+{
+ int i;
+
+ //Monitoring entrance to a func
+ RDEBUG__(("ENTER-rm_SetAllTrxChnOpState\n"));
+
+ for (i=0;i<8;i++)
+ rm_SetOneTrxChnOpState(trx,i,state);
+}
+
+//Set trx operational state as required
+void rm_SetTrxOpState(u8 trx, EnableDisable state)
+{
+ MibTag tag;
+
+ OAMrm_TRX_OPSTATE(trx) = state;
+
+ if (trx==0)
+ tag=MIB_basebandOperationalState_0;
+ else
+ tag=MIB_basebandOperationalState_1;
+ if (STATUS_OK!=oam_setMibIntVar(MODULE_RM, tag, state))
+ {
+ rm_SetRmOpState(EC_RM_OAM_CALL_SETMIBINTVAR_FAILED);
+ EDEBUG__(("ERROR@rm_SetTrxOpState:OAM failed (%d,%x,%d)\n",
+ trx,tag,state));
+ }
+}
+
+//Set rc operational state as required
+void rm_SetRcOpState(u8 rc, EnableDisable state)
+{
+ MibTag tag;
+
+ OAMrm_RC_OPSTATE(rc) = state;
+
+ if (rc==0)
+ tag=MIB_carrier_operationalState_0;
+ else
+ tag=MIB_carrier_operationalState_1;
+ if (STATUS_OK!=oam_setMibIntVar(MODULE_RM, tag, state))
+ {
+ rm_SetRmOpState(EC_RM_OAM_CALL_SETMIBINTVAR_FAILED);
+ EDEBUG__(("ERROR@rm_SetRcOpState:OAM failed (%d,%x,%d)\n",
+ rc,tag,state));
+ }
+}
+
+//Process L1 trx mgmt message
+void rm_ProcTrxMgmtMsg(u8 trx)
+{
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_ProcTrxMgmtMsg\n"));
+
+ //Process in terms of trx state
+ switch ( rm_TrxMgmt[trx].state )
+ {
+ case RM_TRXMGMT_S0_BOOTSTRAP_IND:
+ //Await dsp bootstrap signal
+ if (!RM_L1MSGCMP(RM_L1MG_TRXMGMT,RM_L1MT_BOOTSTRAPCNF_MSB,RM_L1MT_BOOTSTRAPCNF_LSB))
+ { //Got unexpected message
+ IDEBUG__(("WARNING@rm_ProcTrxMgmtMsg:exp bootInd not(%d,%d,%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[0],
+ rm_pItcRxL1Msg->l3_data.buffer[1],
+ rm_pItcRxL1Msg->l3_data.buffer[2],
+ rm_pItcRxL1Msg->l3_data.buffer[3]));
+ return;
+ }
+
+ rm_DspCiphCap = rm_pItcRxL1Msg->l3_data.buffer[4];
+
+ rm_StartTimer(trx, RM_TWDOG);
+
+ //Auto-detection of RF board
+ //1. AisValue = drfTypeGet( ) -- Chetan: please tell us the return values (e.g., 0=GSM900, 1=DCS1800, 2=PCS1900?)
+ //This is done in OAM already.
+
+ //2. IQSwapValue = drfIQSwapGet( ) (the 4th character is capital i) -- This function returns a True/False value
+ //Decide if I-Q swap needed
+ OAMrm_I_Q_SWAP = drfIQSwapGet();
+
+ //3a. FreqHopDsp0Value = drfFreqHopGet(0) -- This function returns a True/False value
+ //3b. FreqHopDsp1Value = drfFreqHopGet(1) -- This function returns a True/False value
+ //Decide if hopping cable. If not, turn off the hopping feature. Assumed not capable now.
+ OAMrm_HOPPING_CTRLa = 0;
+
+ //Got expected message i.e. bootstrap, config trx
+ rm_SendTrxConfigToTrx(trx);
+ rm_TrxMgmt[trx].state=RM_TRXMGMT_S1_TRXCONFIG_ACK;
+ ConfigTxPwrValues(trx);
+ break;
+
+ case RM_TRXMGMT_S1_TRXCONFIG_ACK:
+ //Wait for trx configure ack forever. No nack defined !
+ if (!RM_L1MSGCMP(RM_L1MG_TRXMGMT,RM_L1MT_TRXCONFIGACK_MSB,
+ RM_L1MT_TRXCONFIGACK_LSB))
+ { //Got unexpected message
+ IDEBUG__(("WARNING@rm_ProcTrxMgmtMsg:exp trxAck not(%d,%d,%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[0],
+ rm_pItcRxL1Msg->l3_data.buffer[1],
+ rm_pItcRxL1Msg->l3_data.buffer[2],
+ rm_pItcRxL1Msg->l3_data.buffer[3]));
+ return;
+ }
+
+ //Init trx mgmt structure and start init its TSs!
+ rm_TrxMgmt[trx].state=RM_TRXMGMT_S2_SLOTACTIV_ACK;
+ rm_TrxMgmt[trx].slot=0; //start slot act from ts0
+ rm_ActTimeSlot(trx,0); //Activat 1st slot of trx
+ break;
+
+ case RM_TRXMGMT_S2_SLOTACTIV_ACK:
+ //Apply sanitory Check here
+ if (rm_pItcRxL1Msg->l3_data.buffer[4] != rm_TrxMgmt[trx].slot ||
+ rm_pItcRxL1Msg->l3_data.buffer[4] >= OAMrm_SLOTS_PER_TRX )
+ {
+ EDEBUG__(("ERROR@rm_ProcTrxMgmtMsg: encounter mess-up (%d,%d)\n",
+ rm_TrxMgmt[trx].slot,rm_pItcRxL1Msg->l3_data.buffer[4]));
+ return;
+ }
+
+ //Wait for slot activati ack
+ if (RM_L1MSGCMP(RM_L1MG_TRXMGMT,RM_L1MT_SLOTACTIVACK_MSB,
+ RM_L1MT_SLOTACTIVACK_LSB))
+ {
+ PDEBUG__(("INFO@rm_ProcTrxMgmtMsg:slotAct ack to(%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[3],
+ rm_pItcRxL1Msg->l3_data.buffer[4]));
+
+ //Got positive ack, (trx,slot) goes into enabled state
+ rm_SetOneTrxChnOpState(trx,rm_pItcRxL1Msg->l3_data.buffer[4],opStateEnabled);
+ rm_ProcSlotActRsp(trx,rm_pItcRxL1Msg->l3_data.buffer[4],RM_PHYCHAN_USABLE);
+
+ } else if (RM_L1MSGCMP(RM_L1MG_TRXMGMT,RM_L1MT_SLOTACTIVNACK_MSB,
+ RM_L1MT_SLOTACTIVNACK_LSB))
+ {
+ IDEBUG__(("INFO-rm_ProcTrxMgmtMsg:slotAct nack to(%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[3],
+ rm_pItcRxL1Msg->l3_data.buffer[4]));
+
+ //Got negative ack, (trx,slot) goes into disabled state
+ rm_SetOneTrxChnOpState(trx, rm_pItcRxL1Msg->l3_data.buffer[4],opStateDisabled);
+ rm_ProcSlotActRsp(trx,rm_pItcRxL1Msg->l3_data.buffer[4],RM_PHYCHAN_UNUSABLE);
+
+ } else
+ {
+ //Got unexpected message
+ IDEBUG__(("WARNING@rm_ProcTrxMgmtMsg:exp tsAck not(%d,%d,%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[0],
+ rm_pItcRxL1Msg->l3_data.buffer[1],
+ rm_pItcRxL1Msg->l3_data.buffer[2],
+ rm_pItcRxL1Msg->l3_data.buffer[3]));
+ return;
+ }
+
+ //Check if all time slots of this trxs are initialized or not!
+ if (rm_pItcRxL1Msg->l3_data.buffer[4] == OAMrm_SLOTS_PER_TRX-1)
+ {
+ rm_PassOpParamsToTrx(trx);
+ rm_TrxMgmt[trx].done =RM_TRUE;
+ rm_TrxMgmt[trx].state=RM_TRXMGMT_S3_TRXCONFIG_END;
+
+ //Now trx goes into enabled state if it is needed
+ if (!trx && (OAMrm_CHN_OPSTATE(trx,0)==opStateDisabled) )
+ rm_SetTrxOpState(trx,opStateDisabled);
+ else
+ rm_SetTrxOpState(trx,opStateEnabled);
+ } else
+ {
+ //Activate next time slot of this trx
+ rm_TrxMgmt[trx].slot++;
+ rm_ActTimeSlot(trx,rm_TrxMgmt[trx].slot);
+ }
+ break;
+
+ case RM_TRXMGMT_S3_TRXCONFIG_END:
+ //trx is in normal op. state
+ break;
+
+ default:
+ //Unrecognized trx state
+ IDEBUG__(("WARNING@rm_ProcTrxMgmtMsg: invalid trx SM state=%d\n",
+ rm_TrxMgmt[trx].state));
+ break;
+ }
+}
+
+//Process L1 ack & nack message to slot activ
+u8 rm_ProcSlotActRsp(u8 trx,u8 slot,u8 ackVal)
+{
+ int j;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_ProcSlotActRsp\n"));
+
+ //Got an expected ts Ack
+ switch(OAMrm_TRX_SLOT_COMB(trx,slot))
+ {
+ case OAMrm_SLOT_COMB_1:
+ if (ackVal==RM_PHYCHAN_USABLE)
+ {
+ //PMADDED:nbrOfAvailableTCHs
+ if (OAMrm_CHN_AMSTATE(trx,slot) != locked)
+ {
+ rm_NoOfUsableTchf++;
+
+ PM_CellMeasurement.nbrOfAvailableTCHs.setValue(rm_NoOfUsableTchf);
+ //PM_CellMeasurement.nbrOfAvailableTCHs.increment();
+ }
+ }
+
+ //Enable func channels
+ rm_EnDisableRmTchf(trx,slot,ackVal);
+
+ break;
+
+ case OAMrm_SLOT_COMB_5:
+ //Sanitory check
+ if ( trx || slot )
+ {
+ rm_SetRmOpState(EC_RM_CHAN_COMB_5_MISPLACED);
+ //comb 5 should only appear on trx=0 and slot=0 in the design of RM
+ EDEBUG__(("ERROR@rm_ProcSlotActRsp: chan comb 5 comes on (%d,%d)\n",
+ trx,slot));
+ return (RM_TRUE);
+ }
+
+ //Now PCH ready to go !
+
+ rm_PhyChanBCcch[RM_PCH_IDX].usable = ackVal;
+ if (ackVal==RM_PHYCHAN_USABLE)
+ {
+ rm_PhyChanBCcch[RM_PCH_IDX].trxNo = trx;
+ rm_PhyChanBCcch[RM_PCH_IDX].slotNo = slot;
+ rm_PhyChanBCcch[RM_PCH_IDX].state = RM_PHYCHAN_FREE;
+ }
+
+ //Make 4 sdcch4 channels usable
+ for (j=0;j<OAMrm_MAX_SDCCH4S;j++)
+ {
+ rm_PhyChanSdcch4[j].usable=ackVal;
+
+ if (ackVal==RM_PHYCHAN_USABLE && (OAMrm_CHN_AMSTATE(trx,slot) != locked) )
+ {
+ //PMADDED:nbrOfAvailableSDCCHs
+
+ if (++rm_nbrOfAvailableSDCCHs>4)
+ printf("RR INFO@rm_ProcSlotActRsp: nbrOfAvailableSDCCHs %d\n",
+ rm_nbrOfAvailableSDCCHs);
+ else
+ PM_CellMeasurement.nbrOfAvailableSDCCHs.setValue(rm_nbrOfAvailableSDCCHs);
+ //PM_CellMeasurement.nbrOfAvailableSDCCHs.increment();
+ }
+ }
+ break;
+
+ default:
+ //Unsupported channel combination
+ rm_SetRmOpState(EC_RM_CHAN_COMB_UNSUPPORTED);
+ IDEBUG__(("WARNING@rm_ProcSlotActRsp:unsupported channel comb '%d'\n",
+ OAMrm_TRX_SLOT_COMB(trx,slot) ));
+ break;
+ }
+}
+
+//Mark the tchf chan in rm as usable
+u8 rm_EnDisableRmTchf(u8 trx, u8 slot, u8 ackVal)
+{
+ int i;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_EnDisableRmTchf\n"));
+
+ for (i=0;i<OAMrm_MAX_TCHFS;i++)
+ {
+ if (rm_PhyChanTchf[i].trxNumber==trx &&
+ (rm_PhyChanTchf[i].chanNumberMSB&0x07)==slot)
+ {
+ //found corresponding rm tchf channel
+ rm_PhyChanTchf[i].usable = ackVal;
+ break;
+ }
+ }
+
+ if (i>=OAMrm_MAX_TCHFS)
+ {
+ //trx-slot pair not valid
+ EDEBUG__(("ERROR@rm_EnDisableRmTchf:no tchf linked to(%d,%d)\n",
+ trx,slot));
+ }
+
+ return RM_TRUE;
+}
+
+//Acitvate the given trx and slot
+void rm_ActTimeSlot(u8 trx,u8 slot)
+{
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_ActTimeSlot\n"));
+
+ //safeguard only
+ if (trx>=OAMrm_MAX_TRXS||slot>=8)
+ {
+ IDEBUG__(("WARNING@rm_ActTimeSlot: invalid trx=%d,slot=%d\n",
+ trx,slot));
+ return;
+ }
+
+ //Activate the given trx and slot
+ rm_SendSlotActivateToTrx(trx,slot);
+}
+
+//Pass trx all needed parameters
+void rm_PassOpParamsToTrx(u8 trx)
+{
+ u8 i, ncellNo;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_PassOpParamsToTrx '%d'\n",trx));
+
+ //Pass system information messages
+ rm_SendAllSystemInfosToBcchTrx(trx);
+ rm_SendSacchFillingSI5(trx, RM_L1SYSINFO_TYPE_5);
+ rm_SendSacchFillingSI6(trx, RM_L1SYSINFO_TYPE_6);
+ rm_OamSendPcToDsp(trx);
+ rm_OamSendHoSCellToDsp(trx);
+ ncellNo=rm_OamGetTotalAvailableHoNCells();
+
+ for (i=0;i<OAMrm_HO_ADJCELL_NO_MAX;i++)
+ rm_OamSendHoNCellToDsp(trx,i,ncellNo);
+
+ rm_OamSendPwrRedStepToDsp(trx);
+ rm_SendSynchInfoToBcchTrx(trx);
+ rm_SendBtsPackageToTrx(trx);
+}
+
+void rm_SendBtsPackageToTrx(u8 trx)
+{
+ s16 length; //Length of the message to send to L1
+ rm_ItcTxMsg_t msgToL1; //Store an encoded message sent to L1
+ s16 tmp;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_SendBtsPackageToTrx: Entering...\n" ));
+
+ //clear the memory first
+ memset(&msgToL1, 0, sizeof(rm_ItcTxMsg_t));
+ length = 0;
+
+ //Encode BtsPackage message
+ msgToL1.buffer[length++] = (unsigned char ) OAM_MANAGE_MSG; // message discriminator
+ msgToL1.buffer[length++] = (unsigned char ) (OAM_BTS_PACKAGE >>8); // high byte of msg type
+ msgToL1.buffer[length++] = (unsigned char ) OAM_BTS_PACKAGE; // low byte of msg type
+ msgToL1.buffer[length++] = trx; // trx number
+
+ //Parameters contained in this message
+ msgToL1.buffer[length++] = OAMrm_RADIO_LINK_TIMEOUT;
+
+ //PR1219
+ msgToL1.buffer[length++] = OAMrm_BS_PA_MFRMS;
+
+ //PR1381 BEGIN
+ if ( ((int)OAMrm_MS_UPLINK_DTX_STATE==1) ||
+ ((int)OAMrm_MS_UPLINK_DTX_STATE==0) )
+ msgToL1.buffer[length] |= 1; //DTX ul ON
+ //PR1381 END
+
+ if (trx && OAMrm_MS_DNLINK_DTX_STATE)
+ msgToL1.buffer[length] |= 2; //DTX dl ON
+ length++;
+
+ msgToL1.msgLength = length;
+
+ //Hex Dump the message if __TDUMP__ defined
+ //TDUMP__((TXMSG__, msgToL1.buffer, length));
+
+ //Send message to DSP
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+} //rm_SendBtsPackageToTrx()
+
+
+//Set all rm channels from a trx to given state
+void rm_SetAllRmTrxChnOpState(u8 trx, u8 state )
+{
+ int i,j;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SetAllRmTrxChnOpState '%d'\n",trx));
+
+ //Change usable state of any of all tchf channels of trx
+ for (i=0; i<8; i++)
+ for (j=0; j<OAMrm_MAX_TCHFS; j++)
+ { //Scan through all tchf channel table
+ if (rm_PhyChanTchf[j].trxNumber==trx &&
+ (rm_PhyChanTchf[j].chanNumberMSB&0x07)==i)
+ { //Found one rm channel belong to trx
+ if (rm_PhyChanTchf[i].usable!=state &&
+ state==RM_PHYCHAN_UNUSABLE)
+ {
+ rm_PhyChanTchf[i].usable==state;
+ rm_NoOfUsableTchf--;
+ }
+ break;
+ }
+ }
+
+ //Change usable state of any of all sdcch4 channels of trx
+ if (!trx)
+ {
+ for (i=0;i<4;i++)
+ rm_PhyChanSdcch4[i].usable==state;
+ }
+}
+
+#endif //#if 0
+//GP2
+
+//Process trx watchdog expiry
+void rm_ProcTrxWDogExp(u8 trx)
+{
+ int oneTrx,i;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_ProcTrxWDogExp\n"));
+
+ //Check if trx is still alive
+ if (rm_TrxMgmt[trx].alive)
+ {
+ //trx is still alive. Ping it!
+ rm_TrxMgmt[trx].alive = RM_FALSE;
+ rm_SendPingToTrx(trx);
+ rm_StartTimer(trx,RM_TWDOG);
+ return;
+ } else
+ {
+ //trx not responding, raise an alarm!
+ rm_SetRmOpState(rm_DspNotResponding[trx]);
+ EDEBUG__(("ERROR@rm_ProcTrxWDog: trx '%d' not responding\n",trx));
+ }
+
+ return;
+
+ //Autorecovery logic from trx failed to be laid here in the future
+}
+
+//Set RM's internal and OAM operation state
+void rm_SetRmOpState(Alarm_errorCode_t code)
+{ //0 opStateEnabled, otherwise report an alarm
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SetRmOpState\n"));
+
+ PDEBUG__(("INFO@rm_SetRmOpState: alarmCode=%d\n",code));
+
+ if (code != EC_NOERROR)
+ {
+ if (JC_OK!=alarm_raise(MODULE_RM, MIB_errorCode_RM, code))
+ {
+ //This is very critical, should abort RM task here <TBD>!!!
+ EDEBUG__(("ERROR@rm_SetRmOpState: \"alarm_raise(%d, %d)\" failed\n",
+ MODULE_RM,code));
+ }
+ } else {
+ if (JC_OK!=alarm_clear(MODULE_RM, MIB_errorCode_RM, EC_NOERROR))
+ {
+ //This is very critical, should abort RM task here <TBD>!!!
+ EDEBUG__(("ERROR@rm_SetRmOpState: \"alarm_clear(%d, %d)\" failed\n",
+ MODULE_RM,code));
+ }
+ }
+
+ //Track own alarm
+ rm_OpState = code;
+
+ if (code < EC_RM_INFO_BASE)
+ {
+ //Sync with btsOpState which goes disabled for a critical code
+ OAMrm_BTS_OPSTATE = opStateDisabled;
+ }
+}
+
+//Send ping message to trx
+void rm_SendPingToTrx(u8 trx)
+{
+ u16 length; //length of sent message
+ rm_ItcTxMsg_t msgToL1; //holder of sent message
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SendPingToTrx '%d'\n",trx));
+
+ //Form ping message
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_PING_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_PING_LSB;
+ msgToL1.buffer[length++] = trx;
+
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+}
+
+#endif //__RM_INITALL_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_InitIrt.cpp b/data/mnet/GP10/Host/rm/Src/rm_InitIrt.cpp
new file mode 100644
index 0000000..122f81d
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_InitIrt.cpp
@@ -0,0 +1,199 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_INITIRT_CPP__
+#define __RM_INITIRT_CPP__
+
+#include "rm\rm_head.h"
+
+
+void rm_InitIRT( void )
+{
+ u8 i; /* For loop-control or index to array element */
+ u8 iEntryId; /* Index to entryID arrays containing SM Ctxt */
+ rm_IrtEntryId_t mEntryId; /* IRT Entry id returned fr. IRT registration */
+ rm_IrtEntryId_t aEntryId; /* IRT Entry id returned fr. IRT registration */
+ rm_LapdmOId_t mOId,aOId; /* Return from LAPDm-instance create function */
+
+ /* TEST USE */
+ u8 noOfTchfs = 7;
+ u8 noOfSdcch4s = 4;
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_InitIRT\n"));
+
+ /* TBD: Shausong */
+ // CNI_RIL3_IRT_Init(); moved to startup script integ.
+ /*
+ ** Registering an IRT entry for RACH LAPDmOID. <TBD>: Same as rm_InitLAPDm,
+ ** no need to register entry for BCCH, PCH, and AGCH channels. In fact, no
+ ** LAPDmOIDs have been generated for them by rm_InitLAPDm().
+ */
+
+ mEntryId = CNI_RIL3_IRT_Register (
+ rm_PhyChanBCcch[RM_RACH_IDX].mOId, rm_id, mm_id, cc_id
+ );
+
+ /* Check if registration successful */
+ if ( mEntryId == CNI_IRT_NULL_ID )
+ EDEBUG__(( "ERROR-rm_InitIRT: RACH IRT registration failed\n" ));
+ else
+ rm_RachEntryId = mEntryId;
+
+ /*
+ ** Registering an IRT entry for each TCH/F LAPDmOID
+ */
+ for (i=0;i<OAMrm_MAX_TCHFS;i++)
+// for (i=0;i<noOfTchfs;i++)
+ {
+ /*
+ ** Create entry id for MAIN signaling channel LAPDmOID
+ */
+ mEntryId = CNI_RIL3_IRT_Register (
+ rm_PhyChanTchf[i].mOId, rm_id, mm_id, cc_id );
+
+ /* Check if registration successful */
+ if ( mEntryId == CNI_IRT_NULL_ID )
+ EDEBUG__(("ERROR-rm_InitIRT: TCH/F FACCH LAPDmOID IRT registration failed\n"));
+ else
+ {
+ /* TCH/F-FACCH LAPDmOID IRT registration success */
+ rm_SmCtxt[mEntryId].pPhyChan = &rm_PhyChanTchf[i];
+ rm_SmCtxt[mEntryId].state = RM_S1RM_RUNNING;
+ rm_SmCtxt[mEntryId].smType = RM_MAIN_SM;
+ rm_SmCtxt[mEntryId].chanType = RM_CTFACCH_F;
+ rm_SmCtxt[mEntryId].mOId = rm_PhyChanTchf[i].mOId;
+ rm_SmCtxt[mEntryId].aOId = rm_PhyChanTchf[i].aOId;
+
+ rm_PhyChanTchf[i].pMSmCtxt = &rm_SmCtxt[mEntryId];
+
+ iEntryId = RM_TCHF_ENTRYIDX( rm_PhyChanTchf[i].trxNumber,
+ rm_PhyChanTchf[i].chanNumberMSB );
+ rm_TchfEntryId[iEntryId] = mEntryId;
+
+ //printf("rm_InitIrt: TCHFm-%d: iEntryId=%d, mEntryId=%d, mOId=%d\n",
+ // i, iEntryId, mEntryId, rm_PhyChanTchf[i].mOId);
+ }
+
+ /*
+ ** Create entry id for ACCH signaling channel LAPDmOID
+ */
+ aEntryId = CNI_RIL3_IRT_Register (
+ rm_PhyChanTchf[i].aOId, rm_id, mm_id, cc_id );
+
+// printf("rm_InitIrt: TCH/F=%d,aOId=%d\n",i,rm_PhyChanTchf[i].aOId);
+
+ /* Check if registration successful */
+ if ( aEntryId == CNI_IRT_NULL_ID )
+ EDEBUG__(("ERROR-rm_InitIRT: TCH/F SACCH LAPDmOID IRT registration failed\n"));
+ else
+ {
+ /* TCH/F-SACCH LAPDmOID IRT registration success */
+ rm_SmCtxt[aEntryId].pPhyChan = &rm_PhyChanTchf[i];
+ rm_SmCtxt[aEntryId].state = RM_S1RM_RUNNING;
+ rm_SmCtxt[aEntryId].smType = RM_ACCH_SM;
+ rm_SmCtxt[aEntryId].chanType = RM_CTSACCH;
+ rm_SmCtxt[aEntryId].mOId = rm_PhyChanTchf[i].mOId;
+ rm_SmCtxt[aEntryId].aOId = rm_PhyChanTchf[i].aOId;
+
+ rm_PhyChanTchf[i].pASmCtxt = &rm_SmCtxt[aEntryId];
+ }
+
+ /* Main/Acch SM remember each other */
+ rm_SmCtxt[mEntryId].mEntryId = mEntryId;
+ rm_SmCtxt[mEntryId].aEntryId = aEntryId;
+
+ rm_SmCtxt[aEntryId].mEntryId = mEntryId;
+ rm_SmCtxt[aEntryId].aEntryId = aEntryId;
+
+ rm_PhyChanTchf[i].mEntryId = mEntryId;
+ rm_PhyChanTchf[i].aEntryId = aEntryId;
+
+ } /* End of for-i loop: TCHF */
+
+ /*
+ ** Registering an IRT entry for each SDCCH/4 LAPDmOID
+ */
+
+ for (i=0;i<OAMrm_MAX_SDCCH4S;i++)
+// for (i=0;i<noOfSdcch4s;i++)
+ {
+ /*
+ ** Create entry id for MAIN signaling channel LAPDmOID
+ */
+ mEntryId = CNI_RIL3_IRT_Register (
+ rm_PhyChanSdcch4[i].mOId, rm_id, mm_id, cc_id );
+
+// printf("rm_InitIrt: SDCCH=%d,mOId=%d\n",i,rm_PhyChanSdcch4[i].mOId);
+
+ /* Check if registration successful */
+ if ( mEntryId == CNI_IRT_NULL_ID )
+ EDEBUG__(("ERROR-rm_InitIRT: SDCCH4 SDCCH LAPDmOID IRT registration failed\n"));
+ else
+ {
+ /* SDCCH4-SDCCH LAPDmOID IRT registration success */
+ rm_SmCtxt[mEntryId].pPhyChan = &rm_PhyChanSdcch4[i];
+ rm_SmCtxt[mEntryId].state = RM_S1RM_RUNNING;
+ rm_SmCtxt[mEntryId].smType = RM_MAIN_SM;
+ rm_SmCtxt[mEntryId].chanType = RM_CTSDCCH;
+ rm_SmCtxt[mEntryId].mOId = rm_PhyChanSdcch4[i].mOId;
+ rm_SmCtxt[mEntryId].aOId = rm_PhyChanSdcch4[i].aOId;
+
+ rm_PhyChanSdcch4[i].pMSmCtxt = &rm_SmCtxt[mEntryId];
+ rm_PhyChanSdcch4[i].pMSmCtxt->state = RM_S1RM_RUNNING;
+
+ iEntryId = RM_SDCCH4_ENTRYIDX( rm_PhyChanSdcch4[i].trxNumber,
+ rm_PhyChanSdcch4[i].chanNumberMSB );
+ rm_Sdcch4EntryId[iEntryId] = mEntryId;
+ }
+
+ /*
+ ** Create entry id for ACCH signaling channel LAPDmOID
+ */
+ aEntryId = CNI_RIL3_IRT_Register (
+ rm_PhyChanSdcch4[i].aOId, rm_id, mm_id, cc_id
+ );
+// printf("rm_InitIrt: SDCCH=%d,aOId=%d\n",i,rm_PhyChanSdcch4[i].aOId);
+
+ /* Check if registration successful */
+ if ( aEntryId == CNI_IRT_NULL_ID )
+ EDEBUG__(("ERROR-rm_InitIRT: SDCCH4 SACCH LAPDmOID IRT registration failed\n"));
+ else
+ {
+ /* SDCCH4-SACCH LAPDmOID IRT registration success */
+ rm_SmCtxt[aEntryId].pPhyChan = &rm_PhyChanSdcch4[i];
+ rm_SmCtxt[aEntryId].state = RM_S1RM_RUNNING;
+ rm_SmCtxt[aEntryId].smType = RM_ACCH_SM;
+ rm_SmCtxt[aEntryId].chanType = RM_CTSACCH;
+ rm_SmCtxt[aEntryId].mOId = rm_PhyChanSdcch4[i].mOId;
+ rm_SmCtxt[aEntryId].aOId = rm_PhyChanSdcch4[i].aOId;
+
+ rm_PhyChanSdcch4[i].pASmCtxt = &rm_SmCtxt[aEntryId];
+ rm_PhyChanSdcch4[i].pASmCtxt->state = RM_S1RM_RUNNING;
+
+ }
+
+ /* Main/Acch SM remember each other */
+ rm_SmCtxt[mEntryId].mEntryId = mEntryId;
+ rm_SmCtxt[mEntryId].aEntryId = aEntryId;
+
+ rm_SmCtxt[aEntryId].mEntryId = mEntryId;
+ rm_SmCtxt[aEntryId].aEntryId = aEntryId;
+
+ rm_PhyChanSdcch4[i].mEntryId = mEntryId;
+ rm_PhyChanSdcch4[i].aEntryId = aEntryId;
+
+ } /* End of for-i loop: SDCCH4 */
+
+ /* TEST PRINT */
+ // rm_InitIrtTestPrint(2,4);
+ // rm_EntryIdTestPrint(2,4);
+
+} /* End of rm_InitIRT() */
+
+#endif /* __RM_INITIRT_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_InitIrtTestPrint.cpp b/data/mnet/GP10/Host/rm/Src/rm_InitIrtTestPrint.cpp
new file mode 100644
index 0000000..e267b59
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_InitIrtTestPrint.cpp
@@ -0,0 +1,188 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_INITIRTTESTPRINT_CPP__
+#define __RM_INITIRTTESTPRINT_CPP__
+
+
+#include "rm\rm_head.h"
+
+void rm_InitIrtTestPrint(u8 tchfIdx, u8 sdcch4Idx)
+{
+ u8 i;
+ rm_SmCtxt_t *pMSmCtxt, *pASmCtxt;
+ rm_PhyChanDesc_t *pPhyChan;
+
+ /* Print TCHF channel description data */
+ for (i=0; i<tchfIdx; i++)
+ {
+ DDEBUG__ (("%dth TCHF Chan Descrption: entryIDs and SmCtxtAddrs\n",i));
+
+ DDEBUG__ (("mEntryId=0x%08x, aEntryId=0x%08x, mSmCtxt=0x%08x,aSmCtxt=0x%08x,trx=%x,chan=%x\n",
+ rm_PhyChanTchf[i].mEntryId,
+ rm_PhyChanTchf[i].aEntryId,
+ rm_PhyChanTchf[i].pMSmCtxt,
+ rm_PhyChanTchf[i].pASmCtxt,
+ rm_PhyChanTchf[i].trxNumber,
+ rm_PhyChanTchf[i].chanNumberMSB
+
+ ));
+ DDEBUG__(("Output data from rm_SmCtxt[]::%dth\n", i));
+ pMSmCtxt = &rm_SmCtxt[rm_PhyChanTchf[i].mEntryId];
+ pASmCtxt = &rm_SmCtxt[rm_PhyChanTchf[i].aEntryId];
+ pPhyChan = pMSmCtxt->pPhyChan;
+ DDEBUG__(("mSmCtxt=0x%08x,aSmCtxt=0x%08x,pPhyChan=0x%08x,&phyChan[i]=0x%08x\n",
+ pMSmCtxt, pASmCtxt, pPhyChan, &rm_PhyChanTchf[i]));
+ DDEBUG__(("mSm.state=%d, mSm.smType=%d,mSm.mOId=0x%08x,mSm.aOId=0x%08x\n",
+ pMSmCtxt->state,
+ pMSmCtxt->smType,
+ pMSmCtxt->mOId,
+ pMSmCtxt->aOId
+ ));
+ DDEBUG__(("aSm.state=%d, aSm.smType=%d,aSm.mOId=0x%08x,aSm.aOId=0x%08x\n",
+ pASmCtxt->state,
+ pASmCtxt->smType,
+ pASmCtxt->mOId,
+ pASmCtxt->aOId
+ ));
+
+ DDEBUG__ (("%dth TCHF Chan Descrption with SmCtxt.pPhyChan\n",i));
+
+ DDEBUG__ (("usable=0x%02x, state=0x%02x, chanType=0x%02x, subChanNo=0x%02x\n",
+ pPhyChan->usable,
+ pPhyChan->state,
+ pPhyChan->chanType,
+ pPhyChan->subChanNumber
+ ));
+ DDEBUG__ (("trx=0x%02x,chanNumber=0x%04x,chanNumberMSB=0x%02x,chanNumberLSB=0x%02x\n",
+ pPhyChan->trxNumber,
+ pPhyChan->chanNumber,
+ pPhyChan->chanNumberMSB,
+ pPhyChan->chanNumberLSB
+ ));
+ DDEBUG__ (("TSC=0x%02x,rslCount=0x%02x,quality=%d\n",
+ pPhyChan->TSC,
+ pPhyChan->rslCount,
+ pPhyChan->quality
+ ));
+ DDEBUG__ (("T3101.id=0x%08x,T3101.time=%d, T3101.state=%d\n",
+ pPhyChan->T3101.id,
+ pPhyChan->T3101.time,
+ pPhyChan->T3101.state
+ ));
+ DDEBUG__ (("T3111.id=0x%08x,T3111.time=%d, T3111.state=%d\n",
+ pPhyChan->T3111.id,
+ pPhyChan->T3111.time,
+ pPhyChan->T3111.state
+ ));
+ DDEBUG__ (("T3109.id=0x%08x,T3109.time=%d, T3109.state=%d\n",
+ pPhyChan->T3109.id,
+ pPhyChan->T3109.time,
+ pPhyChan->T3109.state
+ ));
+ }
+
+ /* Print SDCCH4 channel description data */
+ for (i=0; i<sdcch4Idx; i++)
+ {
+ DDEBUG__ (("%dth SDCCH4 Chan Descrption: entryIDs and SmCtxtAddrs\n",i));
+
+ DDEBUG__ (("mEntryId=0x%08x, aEntryId=0x%08x, mSmCtxt=0x%08x,aSmCtxt=0x%08x,trx=%x,chan=%x\n",
+ rm_PhyChanSdcch4[i].mEntryId,
+ rm_PhyChanSdcch4[i].aEntryId,
+ rm_PhyChanSdcch4[i].pMSmCtxt,
+ rm_PhyChanSdcch4[i].pASmCtxt,
+ rm_PhyChanSdcch4[i].trxNumber,
+ rm_PhyChanSdcch4[i].chanNumberMSB
+
+ ));
+ DDEBUG__(("Output data from rm_SmCtxt[]::%dth\n", i));
+ pMSmCtxt = &rm_SmCtxt[rm_PhyChanSdcch4[i].mEntryId];
+ pASmCtxt = &rm_SmCtxt[rm_PhyChanSdcch4[i].aEntryId];
+ pPhyChan = pMSmCtxt->pPhyChan;
+ DDEBUG__(("mSmCtxt=0x%08x,aSmCtxt=0x%08x,pPhyChan=0x%08x,&phyChan[i]=0x%08x\n",
+ pMSmCtxt, pASmCtxt, pPhyChan, &rm_PhyChanSdcch4[i]));
+ DDEBUG__(("mSm.state=%d, mSm.smType=%d,mSm.mOId=0x%08x,mSm.aOId=0x%08x\n",
+ pMSmCtxt->state,
+ pMSmCtxt->smType,
+ pMSmCtxt->mOId,
+ pMSmCtxt->aOId
+ ));
+ DDEBUG__(("aSm.state=%d, aSm.smType=%d,aSm.mOId=0x%08x,aSm.aOId=0x%08x\n",
+ pASmCtxt->state,
+ pASmCtxt->smType,
+ pASmCtxt->mOId,
+ pASmCtxt->aOId
+ ));
+
+ DDEBUG__ (("%dth SDCCH4 Chan Descrption with SmCtxt.pPhyChan\n",i));
+
+ DDEBUG__ (("usable=0x%02x, state=0x%02x, chanType=0x%02x, subChanNo=0x%02x\n",
+ pPhyChan->usable,
+ pPhyChan->state,
+ pPhyChan->chanType,
+ pPhyChan->subChanNumber
+ ));
+ DDEBUG__ (("trx=0x%02x,chanNumber=0x%04x,chanNumberMSB=0x%02x,chanNumberLSB=0x%02x\n",
+ pPhyChan->trxNumber,
+ pPhyChan->chanNumber,
+ pPhyChan->chanNumberMSB,
+ pPhyChan->chanNumberLSB
+ ));
+ DDEBUG__ (("TSC=0x%02x,rslCount=0x%02x,quality=%d\n",
+ pPhyChan->TSC,
+ pPhyChan->rslCount,
+ pPhyChan->quality
+ ));
+ DDEBUG__ (("T3101.id=0x%08x,T3101.time=%d, T3101.state=%d\n",
+ pPhyChan->T3101.id,
+ pPhyChan->T3101.time,
+ pPhyChan->T3101.state
+ ));
+ DDEBUG__ (("T3111.id=0x%08x,T3111.time=%d, T3111.state=%d\n",
+ pPhyChan->T3111.id,
+ pPhyChan->T3111.time,
+ pPhyChan->T3111.state
+ ));
+ DDEBUG__ (("T3109.id=0x%08x,T3109.time=%d, T3109.state=%d\n",
+ pPhyChan->T3109.id,
+ pPhyChan->T3109.time,
+ pPhyChan->T3109.state
+ ));
+ }
+
+} /* End of rm_InitIrtTestPrint() */
+
+void rm_PrintTchEntryId(u8 noOfTchfs,u8 noOfSdcch4s)
+{
+ u8 i,trx,slot,idx;
+ T_CNI_IRT_ID entryId;
+ printf("TCHF MAPPING TABLE btw TRX/SLOT and entryID\n");
+ for (i=0;i<noOfTchfs;i++)
+ {
+ if (i<7)
+ {
+ trx=0; slot=i;
+ idx=RM_TCHF_ENTRYIDX(trx, slot);
+ entryId = rm_TchfEntryId[idx];
+ } else
+ {
+ trx=1; slot=i-7;
+ idx=RM_TCHF_ENTRYIDX(trx, slot);
+ entryId = rm_TchfEntryId[idx];
+ }
+ printf("%dth TCHF: index=%d, entryId=%d\n",i,idx,entryId);
+ }
+ printf("SDCCH4 MAPPING TABLE btw TRX/SLOT and entryID\n");
+
+ for (i=0;i<noOfSdcch4s;i++)
+ printf("%dth SDCCH4: index=%d, entryId=%d\n",i,i,rm_Sdcch4EntryId[i]);
+}
+
+
+#endif /* __RM_INITIRTTESTPRINT_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_InitLAPDm.cpp b/data/mnet/GP10/Host/rm/Src/rm_InitLAPDm.cpp
new file mode 100644
index 0000000..0376ca8
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_InitLAPDm.cpp
@@ -0,0 +1,223 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_INITLAPDM_CPP__
+#define __RM_INITLAPDM_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_InitLAPDm(void)
+{
+ u8 i; /* Used for loop-control and array index */
+ bool ret;
+ T_CNI_LAPDM_L3_ID l3_id=0; /* This variable created for CNI API only */
+ rm_LapdmOId_t mOId,aOId; /* Return from LAPDm-instance creat func */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_InitLAPDm\n" ));
+
+ /*
+ ** Creat a LAPDm instance for each fuctional channel and furnish the RM
+ ** internal data organization accordingly. <TBD> : PCH, AGCH, BCCH msgs
+ ** will by-pass LAPDm, thus no need to create relevant instances.
+ */
+
+ /* Create LAPDm instance for BCCH function channel */
+ mOId = CNI_LAPDM_Create_Instance(
+ CT_BCCH,
+ rm_PhyChanBCcch[RM_BCCH_IDX].trxNumber,
+ rm_PhyChanBCcch[RM_BCCH_IDX].chanNumber,
+ RM_L1LINK_VOID /*TBD*/
+ );
+ if (mOId == CNI_LAPDM_NULL_OID)
+ /* Failed to create BCCH LAPDm instance */
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to create BCCH LAPDm instance\n"));
+ else
+ {
+ rm_PhyChanBCcch[RM_BCCH_IDX].mOId = mOId;
+
+ /* Register this RACH instance for SAPI0 and SAPI3 */
+ ret = CNI_LAPDM_Instance_Registration (
+ mOId,
+ RM_SAPI0,
+ l3_id,
+ CNI_RIL3MD_L3CallBack
+ );
+ if (ret==RM_FALSE)
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to registrater BCCH instance\n"));
+ }
+
+ /* Create LAPDm instance for RACH function channel */
+ mOId = CNI_LAPDM_Create_Instance(
+ CT_RACH,
+ rm_PhyChanBCcch[RM_RACH_IDX].trxNumber,
+ rm_PhyChanBCcch[RM_RACH_IDX].chanNumber,
+ RM_L1LINK_VOID /*TBD*/
+ );
+ if (mOId == CNI_LAPDM_NULL_OID)
+ /* Failed to create RACH LAPDm instance */
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to create RACH LAPDm instance\n"));
+ else
+ {
+ rm_PhyChanBCcch[RM_RACH_IDX].mOId = mOId;
+
+ /* Register this RACH instance for SAPI0 and SAPI3 */
+ ret = CNI_LAPDM_Instance_Registration (
+ mOId,
+ RM_SAPI0,
+ l3_id,
+ CNI_RIL3MD_L3CallBack
+ );
+ if (ret==RM_FALSE)
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to registrater RACH instance\n"));
+ }
+
+
+ /* Create LAPDm instance for TCH/F FACCH & SACCH function channels */
+ for (i=0;i<OAMrm_MAX_TCHFS;i++)
+ {
+// if (rm_PhyChanTchf[i].usable == RM_PHYCHAN_USABLE)
+ {
+ mOId = CNI_LAPDM_Create_Instance(
+ CT_FACCH_F,
+ rm_PhyChanTchf[i].trxNumber,
+ rm_PhyChanTchf[i].chanNumber,
+ RM_L1LINK_MAIN
+ );
+
+ aOId = CNI_LAPDM_Create_Instance(
+ CT_SACCH,
+ rm_PhyChanTchf[i].trxNumber,
+ rm_PhyChanTchf[i].chanNumber,
+ RM_L1LINK_ACCH
+ );
+
+ if ( mOId==CNI_LAPDM_NULL_OID || aOId==CNI_LAPDM_NULL_OID )
+ /* Failed to create TCH/F FACCH or SACCH LAPDm instance */
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to create TCH/F LAPDm instance:%d\n",i));
+ else
+ {
+ /* Register FACCH instance for SAPI0 only */
+ ret = CNI_LAPDM_Instance_Registration (
+ mOId,
+ RM_SAPI0,
+ l3_id,
+ CNI_RIL3MD_L3CallBack
+ );
+
+ if (ret==RM_FALSE)
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to registrater %d-th FACCH instance\n",
+ i));
+
+ /* Register TCHF/SACCH instance for SAPI0 and SAPI3 */
+ ret = CNI_LAPDM_Instance_Registration (
+ aOId,
+ RM_SAPI0,
+ l3_id,
+ CNI_RIL3MD_L3CallBack
+ );
+
+ if (ret==RM_FALSE)
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to registrater %d-th TCHF/SACCH instance\n"));
+
+ /* Register TCHF/SACCH instance for SAPI0 and SAPI3 */
+ ret = CNI_LAPDM_Instance_Registration (
+ aOId,
+ RM_SAPI3,
+ l3_id,
+ CNI_RIL3MD_L3CallBack
+ );
+
+ if (ret==RM_FALSE)
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to registrater %d-th TCHF/SACCH instance\n"));
+
+ /* Inter-relate relevant data */
+ rm_PhyChanTchf[i].mOId = mOId;
+ rm_PhyChanTchf[i].aOId = aOId;
+
+//printf("rm_InitLAPDm: mOId[%d]=%d, mOId=%d\n",i, rm_PhyChanTchf[i].mOId,mOId);
+//printf("rm_InitLAPDm: aOId[%d]=%d, aOId=%d\n",i, rm_PhyChanTchf[i].aOId,aOId);
+
+ }
+
+ } /* End of outer if-statement */
+
+
+ } /* End of i-for-loop: TCH/F */
+
+ /* Create LAPDm instance for SDCCH/4 SDCCH & SACCH func channels */
+ for (i=0;i<OAMrm_MAX_SDCCH4S;i++)
+ {
+// if (rm_PhyChanSdcch4[i].usable == RM_PHYCHAN_USABLE)
+ {
+ mOId = CNI_LAPDM_Create_Instance(
+ CT_SDCCH,
+ rm_PhyChanSdcch4[i].trxNumber,
+ rm_PhyChanSdcch4[i].chanNumber,
+ RM_L1LINK_MAIN
+ );
+
+ aOId = CNI_LAPDM_Create_Instance(
+ CT_SACCH,
+ rm_PhyChanSdcch4[i].trxNumber,
+ rm_PhyChanSdcch4[i].chanNumber,
+ RM_L1LINK_ACCH
+ );
+
+ if ( mOId==CNI_LAPDM_NULL_OID || aOId==CNI_LAPDM_NULL_OID )
+ /* Failed to create TCH/F FACCH or SACCH LAPDm instance */
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to create SDCCH4 LAPDm instance:%d\n",i));
+ else
+ {
+ /* Register SDCCH4 instance for SAPI0 and SAPI3 */
+ ret = CNI_LAPDM_Instance_Registration (
+ mOId,
+ RM_SAPI0,
+ l3_id,
+ CNI_RIL3MD_L3CallBack
+ );
+
+ if (ret==RM_FALSE)
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to registrater %d-th SDCCH4 instance\n"));
+
+ ret = CNI_LAPDM_Instance_Registration (
+ mOId,
+ RM_SAPI3,
+ l3_id,
+ CNI_RIL3MD_L3CallBack
+ );
+
+ if (ret==RM_FALSE)
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to registrater %d-th SDCCH4 instance\n"));
+
+ /* Register SDCCH4/SACHH instance for SAPI0 only */
+ ret = CNI_LAPDM_Instance_Registration (
+ aOId,
+ RM_SAPI0,
+ l3_id,
+ CNI_RIL3MD_L3CallBack
+ );
+
+ if (ret==RM_FALSE)
+ EDEBUG__(("ERROR-rm_InitLAPDm: Failed to registrater %d-th SDCCH4/SACCH instance\n",
+ i));
+ /* Inter-relate relevant data */
+ rm_PhyChanSdcch4[i].mOId = mOId;
+ rm_PhyChanSdcch4[i].aOId = aOId;
+ }
+
+ } /* End of outer if-statement */
+
+ } /* End of for-i loop: SDCCH4 */
+
+ /* TEST ONLY */
+rm_InitLAPDmTestPrint(2,4);
+
+} /* End of rm_InitLAPDm() */
+
+#endif /* __RM_INITLAPDM_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_InitLAPDmTestPrint.cpp b/data/mnet/GP10/Host/rm/Src/rm_InitLAPDmTestPrint.cpp
new file mode 100644
index 0000000..a3c255d
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_InitLAPDmTestPrint.cpp
@@ -0,0 +1,54 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_INITLAPDMTESTPRINT_CPP__
+#define __RM_INITLAPDMTESTPRINT_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_InitLAPDmTestPrint(u8 tchfIdx, u8 sdcch4Idx)
+{
+ u8 i;
+
+ /* Print TCHF channel description data */
+ for (i=0; i<tchfIdx; i++)
+ {
+ DDEBUG__ (("%dth TCHF Chan Descrption\n",i));
+
+ DDEBUG__ (("mOId=0x%08x, aOId=0x%08x\n",
+ rm_PhyChanTchf[i].mOId,
+ rm_PhyChanTchf[i].aOId
+ ));
+ }
+
+ /* Print SDCCH4 channel description data */
+ for (i=0; i<sdcch4Idx; i++)
+ {
+ DDEBUG__ (("%dth SDCCH4 Chan Descrption\n",i));
+ DDEBUG__ (("mOId=0x%08x, aOId=0x%08x\n",
+ rm_PhyChanSdcch4[i].mOId,
+ rm_PhyChanSdcch4[i].aOId
+ ));
+
+ }
+
+ DDEBUG__ (("BCCH Chan Descrption\n"));
+ DDEBUG__ (("mOId=0x%08x, aOId=0x%08x\n",
+ rm_PhyChanBCcch[RM_BCCH_IDX].mOId,
+ rm_PhyChanBCcch[RM_BCCH_IDX].aOId
+ ));
+
+ DDEBUG__ (("RACH Chan Descrption\n"));
+ DDEBUG__ (("mOId=0x%08x, aOId=0x%08x\n",
+ rm_PhyChanBCcch[RM_RACH_IDX].mOId,
+ rm_PhyChanBCcch[RM_RACH_IDX].aOId
+ ));
+
+} /* End of rm_InitLAPDmTestPrint() */
+
+#endif /* __RM_INITLAPDMTESTPRINT_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_InitRmTestPrint.cpp b/data/mnet/GP10/Host/rm/Src/rm_InitRmTestPrint.cpp
new file mode 100644
index 0000000..d777397
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_InitRmTestPrint.cpp
@@ -0,0 +1,138 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_INITRMTESTPRINT_CPP__
+#define __RM_INITRMTESTPRINT_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_InitRmTestPrint(u8 tchfIdx,u8 sdcch4Idx)
+{
+ u8 i;
+
+ /* Print TCHF channel description data */
+ for (i=0; i<tchfIdx; i++)
+ {
+ DDEBUG__ (("%dth TCHF Chan Descrption\n",i));
+
+ DDEBUG__ (("usable=0x%02x, state=0x%02x, chanType=0x%02x, subChanNo=0x%02x\n",
+ rm_PhyChanTchf[i].usable,
+ rm_PhyChanTchf[i].state,
+ rm_PhyChanTchf[i].chanType,
+ rm_PhyChanTchf[i].subChanNumber
+ ));
+ DDEBUG__ (("trx=0x%02x,chanNumber=0x%04x,chanNumberMSB=0x%02x,chanNumberLSB=0x%02x\n",
+ rm_PhyChanTchf[i].trxNumber,
+ rm_PhyChanTchf[i].chanNumber,
+ rm_PhyChanTchf[i].chanNumberMSB,
+ rm_PhyChanTchf[i].chanNumberLSB
+ ));
+ DDEBUG__ (("TSC=0x%02x,rslCount=0x%02x,quality=%d\n",
+ rm_PhyChanTchf[i].TSC,
+ rm_PhyChanTchf[i].rslCount,
+ rm_PhyChanTchf[i].quality
+ ));
+ DDEBUG__ (("T3101.id=0x%08x,T3101.time=%d, T3101.state=%d\n",
+ rm_PhyChanTchf[i].T3101.id,
+ rm_PhyChanTchf[i].T3101.time,
+ rm_PhyChanTchf[i].T3101.state
+ ));
+ DDEBUG__ (("T3111.id=0x%08x,T3111.time=%d, T3111.state=%d\n",
+ rm_PhyChanTchf[i].T3111.id,
+ rm_PhyChanTchf[i].T3111.time,
+ rm_PhyChanTchf[i].T3111.state
+ ));
+ DDEBUG__ (("T3111.id=0x%08x,T3111.time=%d, T3109.state=%d\n",
+ rm_PhyChanTchf[i].T3109.id,
+ rm_PhyChanTchf[i].T3109.time,
+ rm_PhyChanTchf[i].T3109.state
+ ));
+ DDEBUG__ (("T3111.id=0x%08x,T3L01.time=%d, T3L01.state=%d\n",
+ rm_PhyChanTchf[i].T3L01.id,
+ rm_PhyChanTchf[i].T3L01.time,
+ rm_PhyChanTchf[i].T3L01.state
+ ));
+ }
+
+ /* Print SDCCH4 channel description data */
+ for (i=0; i<sdcch4Idx; i++)
+ {
+ DDEBUG__ (("%dth SDCCH4 Chan Descrption\n",i));
+ DDEBUG__ (("usable=0x%02x, state=0x%02x, chanType=0x%02x, subChanNo=0x%02x\n",
+ rm_PhyChanSdcch4[i].usable,
+ rm_PhyChanSdcch4[i].state,
+ rm_PhyChanSdcch4[i].chanType,
+ rm_PhyChanSdcch4[i].subChanNumber
+ ));
+ DDEBUG__ (("trx=0x%02x,chanNumber=0x%04x,chanNumberMSB=0x%02x,chanNumberLSB=0x%02x\n",
+ rm_PhyChanSdcch4[i].trxNumber,
+ rm_PhyChanSdcch4[i].chanNumber,
+ rm_PhyChanSdcch4[i].chanNumberMSB,
+ rm_PhyChanSdcch4[i].chanNumberLSB
+ ));
+ DDEBUG__ (("TSC=0x%02x,rslCount=0x%02x,quality=%d\n",
+ rm_PhyChanSdcch4[i].TSC,
+ rm_PhyChanSdcch4[i].rslCount,
+ rm_PhyChanSdcch4[i].quality
+ ));
+ DDEBUG__ (("T3101.id=0x%08x,T3101.time=%d, T3101.state=%d\n",
+ rm_PhyChanSdcch4[i].T3101.id,
+ rm_PhyChanSdcch4[i].T3101.time,
+ rm_PhyChanSdcch4[i].T3101.state
+ ));
+ DDEBUG__ (("T3111.id=0x%08x,T3111.time=%d, T3111.state=%d\n",
+ rm_PhyChanSdcch4[i].T3111.id,
+ rm_PhyChanSdcch4[i].T3111.time,
+ rm_PhyChanSdcch4[i].T3111.state
+ ));
+ DDEBUG__ (("T3111.id=0x%08x,T3111.time=%d, T3109.state=%d\n",
+ rm_PhyChanSdcch4[i].T3109.id,
+ rm_PhyChanSdcch4[i].T3109.time,
+ rm_PhyChanSdcch4[i].T3109.state
+ ));
+ DDEBUG__ (("T3111.id=0x%08x,T3L01.time=%d, T3L01.state=%d\n",
+ rm_PhyChanSdcch4[i].T3L01.id,
+ rm_PhyChanSdcch4[i].T3L01.time,
+ rm_PhyChanSdcch4[i].T3L01.state
+ ));
+ }
+
+ DDEBUG__ (("BCCH Chan Descrption\n",i));
+ DDEBUG__ (("trx=0x%02x,chanNumber=0x%04x,chanNumberMSB=0x%02x,chanNumberLSB=0x%02x\n",
+ rm_PhyChanBCcch[RM_BCCH_IDX].trxNumber,
+ rm_PhyChanBCcch[RM_BCCH_IDX].chanNumber,
+ rm_PhyChanBCcch[RM_BCCH_IDX].chanNumberMSB,
+ rm_PhyChanBCcch[RM_BCCH_IDX].chanNumberLSB
+ ));
+
+ DDEBUG__ (("RACH Chan Descrption\n",i));
+ DDEBUG__ (("trx=0x%02x,chanNumber=0x%04x,chanNumberMSB=0x%02x,chanNumberLSB=0x%02x\n",
+ rm_PhyChanBCcch[RM_RACH_IDX].trxNumber,
+ rm_PhyChanBCcch[RM_RACH_IDX].chanNumber,
+ rm_PhyChanBCcch[RM_RACH_IDX].chanNumberMSB,
+ rm_PhyChanBCcch[RM_RACH_IDX].chanNumberLSB
+ ));
+ DDEBUG__ (("RACH Chan Descrption\n",i));
+ DDEBUG__ (("trx=0x%02x,chanNumber=0x%04x,chanNumberMSB=0x%02x,chanNumberLSB=0x%02x\n",
+ rm_PhyChanBCcch[RM_PCH_IDX].trxNumber,
+ rm_PhyChanBCcch[RM_PCH_IDX].chanNumber,
+ rm_PhyChanBCcch[RM_PCH_IDX].chanNumberMSB,
+ rm_PhyChanBCcch[RM_PCH_IDX].chanNumberLSB
+ ));
+
+ DDEBUG__ (("AGCH Chan Descrption\n",i));
+ DDEBUG__ (("trx=0x%02x,chanNumber=0x%04x,chanNumberMSB=0x%02x,chanNumberLSB=0x%02x\n",
+ rm_PhyChanBCcch[RM_AGCH_IDX].trxNumber,
+ rm_PhyChanBCcch[RM_AGCH_IDX].chanNumber,
+ rm_PhyChanBCcch[RM_AGCH_IDX].chanNumberMSB,
+ rm_PhyChanBCcch[RM_AGCH_IDX].chanNumberLSB
+ ));
+}
+
+#endif /* __RM_INITRMTESTPRINT_CPP__ */
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_MdlErrRptCauseRel.cpp b/data/mnet/GP10/Host/rm/Src/rm_MdlErrRptCauseRel.cpp
new file mode 100644
index 0000000..8fe76a0
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_MdlErrRptCauseRel.cpp
@@ -0,0 +1,85 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_MDLERRRPTCAUSEREL_CPP__
+#define __RM_MDLERRRPTCAUSEREL_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_MdlErrRptCauseRel(void)
+{
+ rm_LapdmOId_t lapdmOId;
+
+ RDEBUG__(("ENTER-rm_MdlErrRptCauseRel: cause=%d\n", rm_pItcRxMdMsg->error_cause));
+
+ if (rm_pSmCtxt->smType==RM_MAIN_SM)
+ {
+ //SMS-SAPI3-Begin
+
+ //lapdmOId = rm_pSmCtxt->mOId;
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ //rm_SendRrRelInd(RM_MDLERR,rm_ItcRxEntryId);
+ //rm_SendDlRelReq(lapdmOId, RM_SAPI0, RM_LOCAL_RELEASE);
+
+ //Cut off trx/slot <--> hrtp connection
+ //if (rm_pSmCtxt->state == RM_S10TRAFFICMODE_ESTABLISHED)
+ //{
+ // u8 trx, slot;
+ // trx = rm_pSmCtxt->pPhyChan->trxNumber;
+ // slot = (rm_pSmCtxt->pPhyChan->chanNumberMSB) & 0x07;
+
+ // int ret1;
+ // ret1 = clrConnectionByTrxSlot(trx, slot);
+ // if (ret1<0)
+ // {
+ // EDEBUG__(("ERROR-rm_S10TrafficModeEstablished:
+ // Clear TN-hrtp conn failed:trx=%d/slot=%d\n",
+ // trx, slot));
+ // return;
+ // }
+ //}
+
+ //if (rm_pSmCtxt->sapi != RM_SAPI0)
+ // rm_SendDlRelReq(lapdmOId, rm_pSmCtxt->sapi,RM_LOCAL_RELEASE);
+
+ //rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI3, RM_LOCAL_RELEASE);
+ //rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+ //rm_SmCtxt_t *pASmCtxt;
+ //pASmCtxt = rm_pSmCtxt->pChan->pASmCtxt;
+ //pASmCtxt->state = RM_S1RM_RUNNING;
+
+ //SMS-SAPI3-End
+
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ rm_pSmCtxt->relCause = CNI_RIL3_CAUSE_DESTINATION_OUT_OF_ORDER;
+ //CNI_RIL3_CAUSE_TEMPORARY_FAILURE; //41
+ //Adjust SM state to S7
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ }
+ else
+ {
+ //SMS-SAPI3-Begin
+
+ IDEBUG__(("WARNING@rm_MdlErrRptCauseRel:MDL for aEntryId %d\n",
+ rm_ItcRxEntryId));
+
+ //lapdmOId = rm_pSmCtxt->aOId;
+
+ //rm_SendRrRelInd(RM_MDLERR, rm_ItcRxEntryId);
+ //rm_SendDlRelReq(lapdmOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+ //SMS-SAPI3-End
+
+ rm_pSmCtxt->state = RM_S1RM_RUNNING;
+ }
+}
+
+#endif //__RM_MDLERRRPTCAUSEREL_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_OamGetGsmData.cpp b/data/mnet/GP10/Host/rm/Src/rm_OamGetGsmData.cpp
new file mode 100644
index 0000000..9379c09
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_OamGetGsmData.cpp
@@ -0,0 +1,908 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_OAMGETRMGSMDATA_CPP__
+#define __RM_OAMGETRMGSMDATA_CPP__
+
+//GP2
+#if 0
+
+#include "rm/rm_head.h"
+#include "oam_api.h"
+#include "stdarg.h"
+
+void DBGPRN(char * format, ...)
+{
+#ifdef DEBUG
+ va_list marker;
+
+ va_start( marker, format ); /* Initialize variable arguments. */
+ vprintf(format, marker);
+ printf("\n");
+ va_end( marker ); /* Reset variable arguments. */
+#endif
+ return;
+
+}
+
+// Static Table of OAM Table
+
+// Tables in Basic Package
+extern CellAllocationEntry cellAllocationTable[CellAllocationTableLimit];
+extern PlmnPermittedEntry plmnPermittedTable[PlmnPermittedTableLimit];
+
+// Table in Option Package
+extern NotAllowedAccessClassEntry notAllowedAccessClassTable[NotAllowedAccessClassTableLimit];
+
+// Table in TRX packages
+extern ChannelEntry firstTrxPackageChannelTable[ChannelTableLimit];
+extern ChannelEntry secondTrxPackageChannelTable[ChannelTableLimit];
+
+extern CarrierFrequencyEntry firstRadioCarrierPackageFrequencyListTable[CarrierFrequencyTableLimit];
+extern CarrierFrequencyEntry secondRadioCarrierPackageFrequencyListTable[CarrierFrequencyTableLimit];
+
+// Tables in Adjacent Cell Package
+extern AdjCell_HandoverEntry adjCell_HandoverTable[HandoverTableLimit];
+
+//PR1223 Begin
+extern AdjCell_HandoverEntry adjCell_HandoverTable[HandoverTableLimit];
+//PR1223 End
+extern AdjCell_ReselectionEntry adjCell_ReselectionTable[ReselectionTableLimit];
+
+
+STATUS rm_OamGetBtsBasicPackage(void)
+{
+ STATUS ret;
+
+ RDEBUG__(("ENTER-rm_OamGetBtsBasicPackage\n"));
+
+ // step 1: get the bts basic package structure first
+ ret = getMibStruct(MIB_btsBasicPackage, (u8*)&rm_OamData.btsBasicPackage,
+ sizeof(BtsBasicPackage));
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetBtsBasicPackage: btsBasicPackage = %d\n", ret));
+ return ret;
+ }
+
+ // step 2: get the cell allocation table
+ ret = getMibTbl(MIBT_cellAllocationEntry, (void *) &cellAllocationTable,
+ sizeof(cellAllocationTable));
+
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetBtsBasicPackage: cellAllocationTable = %d\n",ret));
+ return ret;
+ }
+
+ // we need to do this since it would be rewritten in step 1.
+
+ rm_OamData.btsBasicPackage.cellAllocationTable= (Table *) &cellAllocationTable;
+
+ // step 3: get plmnPermitted Table
+ ret = getMibTbl(MIBT_plmnPermittedEntry, (void *) &plmnPermittedTable , sizeof(plmnPermittedTable));
+
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetBtsBasicPackage: plmnPermittedTable = %d\n",ret));
+ return ret;
+ }
+
+ // and finally do this
+ rm_OamData.btsBasicPackage.plmnPermittedTable= (Table *) &plmnPermittedTable;
+
+ // Convert mcc to byte string
+ getByteAryByInt(rm_OamData.btsBasicPackage.bts_mcc,
+ (char *) &rm_OamData.btsBasicPackage.bts_mcc,
+ 3);
+
+ // Convert mnc to byte string
+ getByteAryByInt(rm_OamData.btsBasicPackage.bts_mnc,
+ (char *) &rm_OamData.btsBasicPackage.bts_mnc,
+ 3);
+ // Convert txInteger from GUI to RM internal value
+ int temp;
+ temp = rm_OamData.btsBasicPackage.maxNumberRetransmissions;
+ if (temp==1)
+ rm_OamData.btsBasicPackage.maxNumberRetransmissions=0;
+ else if (temp==2)
+ rm_OamData.btsBasicPackage.maxNumberRetransmissions=1;
+ else if (temp==4)
+ rm_OamData.btsBasicPackage.maxNumberRetransmissions=2;
+ else if (temp==7)
+ rm_OamData.btsBasicPackage.maxNumberRetransmissions=3;
+ else
+ EDEBUG__(("ERROR@rm_OamGetBtsBasicPackage:invalid NoOfReTrans=%d\n",
+ rm_OamData.btsBasicPackage.maxNumberRetransmissions));
+
+ rm_OamData.btsBasicPackage.numberOfSlotsSpreadTrans -= 3; //Tx Integer:12
+
+ rm_OamData.btsBasicPackage.noOfMultiframesBetweenPaging -= 2; //3
+
+#ifdef DEBUG
+ EDEBUG__(("UT-rm_rm_OamGetBtsBasicPackage: BTS Basic Package retrieved successfully\n"));
+#endif
+
+ //PR1101:
+
+ int i;
+
+ switch(OAMrm_GSMDCS_INDICATOR)
+ {
+ case 0: //GSM900
+ if (OAMrm_MS_TX_PWR_MAX_CCHa <=39 && OAMrm_MS_TX_PWR_MAX_CCHa >=5)
+ {
+ i = OAMrm_MS_TX_PWR_MAX_CCHa/2;
+ OAMrm_MS_TX_PWR_MAX_CCHa = 21 - i;
+ } else
+ {
+ EDEBUG__(("ERROR@rm_rm_OamGetBtsBasicPackage: (radio system %d, mSTxPwrMaxCch %d)\n",
+ OAMrm_GSMDCS_INDICATOR,
+ OAMrm_MS_TX_PWR_MAX_CCHa));
+ OAMrm_MS_TX_PWR_MAX_CCHa = 7; //29dBm
+ }
+ break;
+
+ case 1: //DCS1800
+ if (OAMrm_MS_TX_PWR_MAX_CCHa <=30 && OAMrm_MS_TX_PWR_MAX_CCHa >=0)
+ {
+ i = OAMrm_MS_TX_PWR_MAX_CCHa/2;
+ //Not needed now
+ //if (OAMrm_MS_PWR_OFFSET>=0 && OAMrm_MS_PWR_OFFSETa<=6)
+ //{
+ // OAMrm_MS_PWR_OFFSETa = OAMrm_MS_PWR_OFFSETa/2;
+ //} else
+ // OAMrm_MS_PWR_OFFSETa = 0;
+ OAMrm_MS_TX_PWR_MAX_CCHa = 15 - i;
+ } else
+ {
+ EDEBUG__(("ERROR@rm_rm_OamGetBtsBasicPackage: (radio system %d, mSTxPwrMaxCch %d)\n",
+ OAMrm_GSMDCS_INDICATOR,
+ OAMrm_MS_TX_PWR_MAX_CCHa));
+ OAMrm_MS_TX_PWR_MAX_CCHa = 3; //24dBm
+ //Not needed now
+ //OAMrm_MS_PWR_OFFSETa = 0;
+ }
+ break;
+
+ case 2: //PCS1900
+ if (OAMrm_MS_TX_PWR_MAX_CCHa == 32)
+ {
+ OAMrm_MS_TX_PWR_MAX_CCHa = 31; //32dBm
+ } else if (OAMrm_MS_TX_PWR_MAX_CCHa == 33)
+ {
+ OAMrm_MS_TX_PWR_MAX_CCHa = 31; //33dBm
+ } else if (OAMrm_MS_TX_PWR_MAX_CCHa <=30 && OAMrm_MS_TX_PWR_MAX_CCHa >=0)
+ {
+ i = OAMrm_MS_TX_PWR_MAX_CCHa/2;
+ OAMrm_MS_TX_PWR_MAX_CCHa = 15 - i;
+ } else
+ {
+ EDEBUG__(("ERROR@rm_rm_OamGetBtsBasicPackage: (radio system %d, mSTxPwrMaxCch %d)\n",
+ OAMrm_GSMDCS_INDICATOR,
+ OAMrm_MS_TX_PWR_MAX_CCHa));
+ OAMrm_MS_TX_PWR_MAX_CCHa = 3; //24dBm
+ }
+ break;
+
+ default: //Assume a proper value but give debug information
+ EDEBUG__(("ERROR@rm_rm_OamGetBtsBasicPackage: (radio system %d, mSTxPwrMaxCch %d)\n",
+ OAMrm_GSMDCS_INDICATOR,
+ OAMrm_MS_TX_PWR_MAX_CCHa));
+ OAMrm_MS_TX_PWR_MAX_CCHa = 7;
+ //Not needed now
+ //OAMrm_MS_PWR_OFFSETa = 0;
+ break;
+ }
+
+ return STATUS_OK;
+}
+
+STATUS rm_OamGetBtsOptionPackage(void)
+{
+ STATUS ret;
+
+ ret = getMibStruct(MIB_btsOptionsPackage, (u8*)&rm_OamData.btsOptionsPackage,
+ sizeof(BtsOptionsPackage));
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetBtsOptionPackage: btsOptionsPackage = %d\n",ret));
+ return ret;
+ }
+
+ // step 2: get the cell allocation table
+ ret = getMibTbl(MIBT_notAllowedAccessClassEntry, (void *) &notAllowedAccessClassTable ,
+ sizeof(notAllowedAccessClassTable));
+
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetBtsOptionPackage: notAllowedAccessClassTable = %d\n",ret));
+ return ret;
+ }
+
+ // And finally do this
+ rm_OamData.btsOptionsPackage.notAllowedAccessClassTable= (Table *) &notAllowedAccessClassTable;
+
+#ifdef DEBUG
+ EDEBUG__(("UT-rm_rm_OamGetBtsBasicPackage: BTS Basic Options retrieved successfully\n"));
+#endif
+
+ return STATUS_OK;
+}
+
+
+
+STATUS rm_OamGetBtsFirstTrxPackage(void)
+{
+ STATUS ret;
+
+ ret = getMibStruct(MIB_firstTransceiverPackage, (u8*)&rm_OamData.transceiverPackage[0],
+ sizeof(FirstTransceiverPackage));
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetBtsFirstTrxPackage: firstTransceiverPackage = %d\n",ret));
+ return ret;
+ }
+
+ // step 2: get the cell allocation table
+ ret = getMibTbl(MIBT_channel_0_Entry, (void *) &firstTrxPackageChannelTable ,
+ sizeof(firstTrxPackageChannelTable));
+
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetBtsFirstTrxPackage: firstTrxPackageChannelTable = %d\n",ret));
+ return ret;
+ }
+
+ // And finally do this
+ rm_OamData.transceiverPackage[0].channelTable= (Table *) &firstTrxPackageChannelTable;
+
+#ifdef DEBUG
+ EDEBUG__(("UT-rm_OamGetBtsFirstTrxPackage: BTS 1st TRX package retrieved successfully\n"));
+#endif
+
+ return STATUS_OK;
+}
+
+
+STATUS rm_OamGetBtsSecondTrxPackage(void)
+{
+ STATUS ret;
+
+ // step 1: get the 2nd TRX Package first
+ ret = getMibStruct(MIB_secondTransceiverPackage, (u8*)&rm_OamData.transceiverPackage[1],
+ sizeof(SecondTransceiverPackage));
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetBtsSecondTrxPackage: secondTransceiverPackage = %d\n",ret));
+ return ret;
+ }
+
+ // step 2: get the cell allocation table
+ ret = getMibTbl(MIBT_channel_1_Entry, (void *) &secondTrxPackageChannelTable ,
+ sizeof(secondTrxPackageChannelTable));
+
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetBtsSecondTrxPackage: secondTrxPackageChannelTable = %d\n",ret));
+ return ret;
+ }
+
+ // And finally do this
+ rm_OamData.transceiverPackage[1].channelTable= (Table *) &secondTrxPackageChannelTable;
+
+#ifdef DEBUG
+ EDEBUG__(("UT-rm_OamGetBtsSecondTrxPackage: BTS 2nd TRX package retrieved successfully\n"));
+#endif
+
+ return STATUS_OK;
+}
+
+
+
+STATUS rm_OamGetBtsFirstRadioCarrierPackage(void)
+{
+ STATUS ret;
+
+ // step 1: get the 2nd Radio Carrier Package first
+ ret = getMibStruct(MIB_firstRadioCarrierPackage, (u8*) &rm_OamData.radioCarrierPackage[0],
+ sizeof(FirstRadioCarrierPackage));
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetRmGsmData: firstRadioCarrierPackage = %d\n",ret));
+ return ret;
+ }
+
+ // step 2: get the radio frequency list for the first carrier package
+ ret = getMibTbl(MIBT_carrierFrequency_0_Entry, (void *) &firstRadioCarrierPackageFrequencyListTable ,
+ sizeof(firstRadioCarrierPackageFrequencyListTable));
+
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetBtsFirstTrxPackage: firstRadioCarrierPackageFrequencyListTable = %d\n",ret));
+ return ret;
+ }
+
+ // And finally do this
+ rm_OamData.radioCarrierPackage[0].carrierFrequencyList= (Table *) &firstRadioCarrierPackageFrequencyListTable;
+
+#ifdef DEBUG
+ EDEBUG__(("UT-rm_OamGetBtsFirstTrxPackage: 1st radio carrier package retrieved successfully\n"));
+#endif
+
+ return STATUS_OK;
+}
+
+
+STATUS rm_OamGetBtsSecondRadioCarrierPackage(void)
+{
+ STATUS ret;
+
+ // step 1: get the 2nd Radio Carrier Package first
+ ret = getMibStruct(MIB_secondRadioCarrierPackage, (u8*) &rm_OamData.radioCarrierPackage[1],
+ sizeof(SecondRadioCarrierPackage));
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetRmGsmData: secondRadioCarrierPackage = %d\n",ret));
+ return ret;
+ }
+
+ // step 2: get the radio frequency list for the first carrier package
+ ret = getMibTbl(MIBT_carrierFrequency_1_Entry, (void *) &secondRadioCarrierPackageFrequencyListTable ,
+ sizeof(secondRadioCarrierPackageFrequencyListTable));
+
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetBtsFirstTrxPackage: secondRadioCarrierPackageFrequencyListTable = %d\n",ret));
+ return ret;
+ }
+
+ // And finally do this
+ rm_OamData.radioCarrierPackage[1].carrierFrequencyList= (Table *) &secondRadioCarrierPackageFrequencyListTable;
+
+#ifdef DEBUG
+ EDEBUG__(("UT-rm_OamGetBtsFirstTrxPackage: 2nd radio carrier package retrieved successfully\n"));
+#endif
+
+ return STATUS_OK;
+}
+
+
+STATUS rm_OamGetT31xxTimerStructure(void)
+{
+ STATUS ret;
+
+ ret = getMibStruct(MIB_t31xxPackage, (u8*)&rm_OamData.t31xx,
+ sizeof(T31xx));
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_OamGetT31xxTimerStructure: t31xx = %d\n",ret));
+ return ret;
+ }
+
+#ifdef DEBUG
+ EDEBUG__(("UT-rm_OamGetT31xxTimerStructure: T31xx timer structure retrieved successfully\n"));
+#endif
+
+ return STATUS_OK;
+}
+
+STATUS rm_adjacentCellPackage(void)
+{
+ STATUS ret;
+ int i,j;
+
+ // step 1: get adjacent cell Package first
+ ret = getMibStruct(MIB_adjacentCellPackage, (u8*)&rm_OamData.adjacentCellPackage,
+ sizeof(AdjacentCellPackage));
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_adjacentCellPackage: adjacentCellPackage = %d\n",ret));
+ return ret;
+ }
+
+ // step 2: get handover table list
+ ret = getMibTbl(MIBT_adjCell_handoverEntry, (void *) &adjCell_HandoverTable,
+ sizeof(adjCell_HandoverTable));
+
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_adjacentCellPackage: adjCell_HandoverTable = %d\n",ret));
+ return ret;
+ }
+
+ // And
+ rm_OamData.adjacentCellPackage.adjCell_handoverTable= (Table *) &adjCell_HandoverTable;
+ //Compress the HandoverTable to remove any empty cell rows
+ i=0;
+ while (i<OAMrm_HO_ADJCELL_NO_MAX)
+ {
+ if (OAMrm_HO_ADJCELL_ID(i)==OAMrm_HO_ADJCELL_ID_NULL)
+ {
+ for (j=i+1;j<OAMrm_HO_ADJCELL_NO_MAX;j++)
+ {
+ if (OAMrm_HO_ADJCELL_ID(j) != OAMrm_HO_ADJCELL_ID_NULL)
+ {
+ memcpy(&adjCell_HandoverTable[i],&adjCell_HandoverTable[j],
+ sizeof(AdjCell_HandoverEntry));
+ adjCell_HandoverTable[i].adjCell_handoverIndex=i;
+ memset(&adjCell_HandoverTable[j],0,sizeof(AdjCell_HandoverEntry));
+ adjCell_HandoverTable[j].adjCell_handoverIndex=j;
+ break;
+ }
+ }
+ }
+ i++;
+ }
+
+ // step 3: get handover table list
+ ret = getMibTbl(MIBT_adjCell_reselectionEntry, (void *) &adjCell_ReselectionTable,
+ sizeof(adjCell_ReselectionTable));
+
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_adjacentCellPackage: adjCell_ReselectionTable = %d\n",ret));
+ return ret;
+ }
+
+ // And finally do this
+ rm_OamData.adjacentCellPackage.adjCell_reselectionTable= (Table *) &adjCell_ReselectionTable;
+ i=0;
+ while (i<OAMrm_RESEL_ADJCELL_NO_MAX)
+ {
+ if (OAMrm_RESEL_ADJCELL_ID(i)==OAMrm_RESEL_ADJCELL_ID_NULL)
+ {
+ for (j=i+1;j<OAMrm_RESEL_ADJCELL_NO_MAX;j++)
+ {
+ if (OAMrm_RESEL_ADJCELL_ID(j) != OAMrm_RESEL_ADJCELL_ID_NULL)
+ {
+ memcpy(&adjCell_ReselectionTable[i],&adjCell_ReselectionTable[j],
+ sizeof(AdjCell_ReselectionEntry));
+ adjCell_ReselectionTable[i].adjCell_reselectionIndex = i;
+ memset(&adjCell_ReselectionTable[j],0,sizeof(AdjCell_ReselectionEntry));
+ adjCell_ReselectionTable[j].adjCell_reselectionIndex = j;
+ break;
+ }
+ }
+ }
+ i++;
+ }
+#ifdef DEBUG
+ EDEBUG__(("UT-rm_OamGetBtsFirstTrxPackage: adjacent cell package retrieved successfully\n"));
+#endif
+
+ return STATUS_OK;
+}
+
+STATUS rm_handoverControlPackage(void)
+{
+ STATUS ret;
+
+ ret = getMibStruct(MIB_handoverControlPackage, (u8*)&rm_OamData.handoverControlPackage,
+ sizeof(HandoverControlPackage));
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_handoverControlPackage: handoverControlPackage = %d\n",ret));
+ return ret;
+ }
+
+#ifdef DEBUG
+ EDEBUG__(("UT-rm_handoverControlPackage: handover control package retrieved successfully\n"));
+#endif
+
+ return STATUS_OK;
+}
+
+
+STATUS rm_powerControlPackage(void)
+{
+ STATUS ret;
+
+
+ ret = getMibStruct(MIB_powerControlPackage, (u8*)&rm_OamData.powerControlPackage,
+ sizeof(PowerControlPackage));
+ if (ret != STATUS_OK)
+ {
+ EDEBUG__(("ERROR-rm_powerControlPackage: powerControlPackage = %d\n",ret));
+ return ret;
+ }
+
+#ifdef DEBUG
+ EDEBUG__(("UT-rm_powerControlPackage: power control package retrieved successfully\n"));
+#endif
+
+ return STATUS_OK;
+}
+
+
+void DBG_Print_cellAllocationTable(Table *tbl)
+{
+ int i;
+ CellAllocationEntry *entry = (CellAllocationEntry *) tbl;
+ DBGPRN("%s\t%s", "Index", "Cell Allociation");
+
+ for (i = 0; i< CellAllocationTableLimit; i++)
+ {
+
+ DBGPRN("%d\t\t%d", i+1, (entry+i)->cellAllocation);
+ }
+}
+
+void DBG_Print_plmnPermittedTable(Table *tbl)
+{
+ int i;
+ PlmnPermittedEntry *entry = (PlmnPermittedEntry *) tbl;
+ DBGPRN("%s\t%s", "Index", "Plmn Permitted");
+
+ for (i = 0; i< PlmnPermittedTableLimit; i++)
+ {
+
+ DBGPRN("%d\t\t%d", i+1, (entry+i)->plmnPermitted);
+ }
+}
+
+void DBG_Print_notAllowedAccessClassTable(Table *tbl)
+{
+ int i;
+ NotAllowedAccessClassEntry *entry = (NotAllowedAccessClassEntry *) tbl;
+ DBGPRN("%s\t%s", "Index", "Not Allowed Access Class");
+
+ for (i = 0; i< NotAllowedAccessClassTableLimit ; i++)
+ {
+
+ DBGPRN("%d\t\t%d", i+1, (entry+i)->notAllowedAccessClass);
+ }
+}
+
+void DBG_Print_channelTable(Table *tbl)
+{
+ int i;
+ ChannelEntry *entry = (ChannelEntry *) tbl;
+ DBGPRN("%s,%s,%s,%s,%s,%s,%s", "Idx", "ID", "Comb", "fusage", "tch", "a.state", "o.state");
+
+ for (i = 0; i<ChannelTableLimit ; i++)
+ {
+
+ DBGPRN("%d,%d,%d,%d,%d,%d,%d", i+1, (entry+i)->channelID,
+ (entry+i)->channelCombination,
+ (entry+i)->channelFrequencyUsage,
+ (entry+i)->channelTsc,
+ (entry+i)->channelAdministrativeState,
+ (entry+i)->channelOperationalState);
+ }
+}
+
+void DBG_Print_carrierFrequencyTable(Table *tbl)
+{
+ int i;
+ CarrierFrequencyEntry *entry = (CarrierFrequencyEntry *) tbl;
+ DBGPRN("%s\t%s", "Index", "Carrier Frequency");
+
+ for (i = 0; i< CarrierFrequencyTableLimit; i++)
+ {
+
+ DBGPRN("%d\t\t%d", i+1, (entry+i)->carrierFrequency);
+ }
+}
+
+void DBG_Print_adjCell_handoverTable(Table *tbl)
+{
+ int i;
+ AdjCell_HandoverEntry *entry = (AdjCell_HandoverEntry *) tbl;
+ DBGPRN("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s", "Idx", "ID", "mcc", "mnc", "lac", "ci", "bcch",
+ "ncc", "cid", "sync", "hoPl", "hoM", "msTx", "rxLev");
+
+ for (i = 0; i< HandoverTableLimit; i++)
+ {
+
+ DBGPRN("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
+ i+1,
+ (entry+i)->adjCell_handoverCellID,
+ (entry+i)->adjCell_mcc,
+ (entry+i)->adjCell_mnc,
+ (entry+i)->adjCell_lac,
+ (entry+i)->adjCell_ci,
+ (entry+i)->adjCell_bCCHFrequency,
+ (entry+i)->adjCell_ncc,
+ (entry+i)->adjCell_cid,
+ (entry+i)->adjCell_synchronized,
+ (entry+i)->adjCell_hoPriorityLevel,
+ (entry+i)->adjCell_hoMargin,
+ (entry+i)->adjCell_msTxPwrMaxCell,
+ (entry+i)->adjCell_rxLevMinCell);
+ }
+}
+
+void DBG_Print_adjCell_reselectionTable(Table *tbl)
+{
+ int i;
+ AdjCell_ReselectionEntry *entry = (AdjCell_ReselectionEntry *) tbl;
+ DBGPRN("%s\t%s\t%s", "Index", "ID", "Reselection BCCH Frequency");
+
+ for (i = 0; i< ReselectionTableLimit; i++)
+ {
+
+ DBGPRN("%d\t\t%d\t\t%d", i+1, (entry+i)->adjCell_reselectionCellID,
+ (entry+i)->adjCell_reselectionBCCHFrequency);
+ }
+}
+
+
+void rm_print_btsBasicPackage(BtsBasicPackage *btsBasicPackage)
+{
+ DBGPRN("\nBts Bacic Package");
+
+ char *cp;
+
+ DBGPRN("bts_ncc= %d", btsBasicPackage->bts_ncc);
+ DBGPRN("bts_cid= %d", btsBasicPackage->bts_cid);
+ DBGPRN("btsID= %d", btsBasicPackage->btsID);
+
+ DBG_Print_cellAllocationTable(btsBasicPackage->cellAllocationTable);
+
+ DBGPRN("gsmdcsIndicator= %d", btsBasicPackage->gsmdcsIndicator);
+ cp = (char *) &btsBasicPackage->bts_mcc;
+ DBGPRN("bts_mcc= %d%d%d", cp[0], cp[1], cp[2]);
+ cp = (char *) &btsBasicPackage->bts_mnc;
+ DBGPRN("bts_mnc= %d%d", cp[0],cp[1],cp[2]);
+
+ DBGPRN("bts_lac= %d", btsBasicPackage->bts_lac);
+ DBGPRN("bts_ci= %d", btsBasicPackage->bts_ci);
+ DBGPRN("cellReselectHysteresis= %d", btsBasicPackage->cellReselectHysteresis);
+ DBGPRN("ny1= %d", btsBasicPackage->ny1);
+
+ DBG_Print_plmnPermittedTable (btsBasicPackage->plmnPermittedTable);
+
+ DBGPRN("radioLinkTimeout= %d", btsBasicPackage->radioLinkTimeout);
+ DBGPRN("relatedTranscoder= %d", btsBasicPackage->relatedTranscoder);
+ DBGPRN("rxLevAccessMin= %d", btsBasicPackage->rxLevAccessMin);
+ DBGPRN("bts_administrativeState= %d", btsBasicPackage->bts_administrativeState);
+ DBGPRN("bts_alarmStatus= %d", btsBasicPackage->bts_alarmStatus);
+ DBGPRN("bts_operationalState= %d", btsBasicPackage->bts_operationalState);
+ DBGPRN("maxNumberRetransmissions= %d", btsBasicPackage->maxNumberRetransmissions);
+ DBGPRN("mSTxPwrMaxCCH= %d", btsBasicPackage->mSTxPwrMaxCCH);
+ DBGPRN("numberOfSlotsSpreadTrans= %d", btsBasicPackage->numberOfSlotsSpreadTrans);
+ DBGPRN("noOfBlocksForAccessGrant= %d", btsBasicPackage->noOfBlocksForAccessGrant);
+ DBGPRN("noOfMultiframesBetweenPaging= %d",btsBasicPackage->noOfMultiframesBetweenPaging);
+
+}
+
+
+void rm_print_btsOptionsPackage(BtsOptionsPackage *btsOptionsPackage)
+{
+ DBGPRN("\nBts Optioons Package");
+
+ DBGPRN("allowIMSIAttachDetach= %d", btsOptionsPackage->allowIMSIAttachDetach);
+ DBGPRN("callReestablishmentAllowed= %d", btsOptionsPackage->callReestablishmentAllowed);
+ DBGPRN("cellBarred= %d", btsOptionsPackage->cellBarred);
+ DBGPRN("dtxDownlink= %d", btsOptionsPackage->dtxDownlink);
+ DBGPRN("dtxUplink= %d", btsOptionsPackage->dtxUplink);
+ DBGPRN("emergencyCallRestricted= %d", btsOptionsPackage->emergencyCallRestricted);
+
+ DBG_Print_notAllowedAccessClassTable(btsOptionsPackage->notAllowedAccessClassTable);
+
+ DBGPRN("timerPeriodicUpdateMS= %d", btsOptionsPackage->timerPeriodicUpdateMS);
+ DBGPRN("maxQueueLength= %d", btsOptionsPackage->maxQueueLength);
+ DBGPRN("msPriorityUsedInQueueing= %d", btsOptionsPackage->msPriorityUsedInQueueing);
+ DBGPRN("timeLimitCall= %d", btsOptionsPackage->timeLimitCall);
+ DBGPRN("timeLimitHandover= %d", btsOptionsPackage->timeLimitHandover);
+}
+
+void rm_print_transceiverPackage(TransceiverPackage *transceiverPackage)
+{
+
+ DBGPRN("basebandTransceiverID= %d", transceiverPackage->basebandTransceiverID);
+
+ DBGPRN("relatedRadioCarrier= %d", transceiverPackage->relatedRadioCarrier);
+ DBGPRN("basebandAdministrativeState= %d", transceiverPackage->basebandAdministrativeState);
+ DBGPRN("basebandAlarmStatus= %d", transceiverPackage->basebandAlarmStatus);
+ DBGPRN("basebandOperationalState= %d", transceiverPackage->basebandOperationalState);
+
+ DBG_Print_channelTable(transceiverPackage->channelTable);
+}
+
+void rm_print_firstTransceiverPackage(FirstTransceiverPackage *firstTransceiverPackage)
+{
+
+ DBGPRN("\nFirst Transceiver Package");
+ rm_print_transceiverPackage(firstTransceiverPackage);
+}
+
+void rm_print_secondTransceiverPackage(SecondTransceiverPackage *secondTransceiverPackage)
+{
+
+ DBGPRN("\nSecond Transceiver Package");
+ rm_print_transceiverPackage(secondTransceiverPackage);
+}
+
+void rm_print_radioCarrierPackage(RadioCarrierPackage *radioCarrierPackage)
+{
+
+ DBG_Print_carrierFrequencyTable(radioCarrierPackage->carrierFrequencyList);
+
+ DBGPRN("powerClass= %d", radioCarrierPackage->powerClass);
+ DBGPRN("radioCarrierID= %d", radioCarrierPackage->radioCarrierID);
+ DBGPRN("txPwrMaxReduction= %d", radioCarrierPackage->txPwrMaxReduction);
+ DBGPRN("carrier_administrativeState= %d", radioCarrierPackage->carrier_administrativeState);
+ DBGPRN("carrier_alarmStatus= %d", radioCarrierPackage->carrier_alarmStatus);
+ DBGPRN("carrier_operationalState= %d", radioCarrierPackage->carrier_operationalState);
+
+}
+
+void rm_print_firstRadioCarrierPackage(FirstRadioCarrierPackage *firstRadioCarrierPackage)
+{
+
+ DBGPRN("\nFirst Radio Carrier Package");
+ rm_print_radioCarrierPackage(firstRadioCarrierPackage);
+}
+
+void rm_print_secondRadioCarrierPackage(SecondRadioCarrierPackage *secondRadioCarrierPackage)
+{
+
+ DBGPRN("\nSecond Radio Carrier Package");
+ rm_print_radioCarrierPackage(secondRadioCarrierPackage);
+}
+
+
+void rm_print_t31xx(T31xx *t31xx)
+{
+
+ DBGPRN("\nT31xx Timers");
+
+ DBGPRN("t3101= %d", t31xx->t3101);
+ DBGPRN("t3103= %d", t31xx->t3103);
+ DBGPRN("t3105= %d", t31xx->t3105);
+ DBGPRN("t3107= %d", t31xx->t3107);
+ DBGPRN("t3109= %d", t31xx->t3109);
+ DBGPRN("t3111= %d", t31xx->t3111);
+ DBGPRN("t3113= %d", t31xx->t3113);
+
+}
+
+void rm_print_adjacentCellPackage(AdjacentCellPackage *adjacentCellPackage)
+{
+ DBGPRN("\nAdjacent Cell Package");
+
+ DBG_Print_adjCell_handoverTable(adjacentCellPackage->adjCell_handoverTable);
+ DBG_Print_adjCell_reselectionTable(adjacentCellPackage->adjCell_reselectionTable);
+}
+
+
+
+void rm_print_handoverControlPackage(HandoverControlPackage *handoverControlPackage)
+{
+ DBGPRN("\nHandover Control Package");
+
+ DBGPRN("handoverControlID= %d", handoverControlPackage->handoverControlID);
+ DBGPRN("enableOptHandoverProcessing= %d", handoverControlPackage->enableOptHandoverProcessing);
+
+ DBGPRN("%x:%x", handoverControlPackage->hoAveragingAdjCellParam, &mnetMib.hoAveragingAdjCellParam);
+
+ DBGPRN("hoAveragingAdjCellParamHreqave= %d", handoverControlPackage->hoAveragingAdjCellParam->hreqave);
+ DBGPRN("hoAveragingAdjCellParamHreqt= %d", handoverControlPackage->hoAveragingAdjCellParam->hreqt);
+ DBGPRN("hoAveragingAdjCellParamWeighting= %d", handoverControlPackage->hoAveragingAdjCellParam->weighting);
+
+ DBGPRN("hoAveragingDistParamHreqave= %d", handoverControlPackage->hoAveragingDistParam->hreqave);
+ DBGPRN("hoAveragingDistParamHreqt= %d", handoverControlPackage->hoAveragingDistParam->hreqt);
+
+ DBGPRN("hoAveragingLevParamHreqave= %d", handoverControlPackage->hoAveragingLevParam->hreqave);
+ DBGPRN("hoAveragingLevParamHreqt= %d", handoverControlPackage->hoAveragingLevParam->hreqt);
+ DBGPRN("hoAveragingLevParamWeighting= %d", handoverControlPackage->hoAveragingLevParam->weighting);
+
+ DBGPRN("hoAveragingQualParamHreqave= %d", handoverControlPackage->hoAveragingQualParam->hreqave);
+ DBGPRN("hoAveragingQualParamHreqt= %d", handoverControlPackage->hoAveragingQualParam->hreqt);
+ DBGPRN("hoAveragingQualParamWeighting= %d", handoverControlPackage->hoAveragingQualParam->weighting);
+
+ DBGPRN("hoMarginDef= %d", handoverControlPackage->hoMarginDef);
+
+ DBGPRN("hoThresholdDistParamTimeadv= %d", handoverControlPackage->hoThresholdDistParam->timeadv);
+ DBGPRN("hoThresholdDistParamP8= %d", handoverControlPackage->hoThresholdDistParam->p8);
+ DBGPRN("hoThresholdDistParamN8= %d", handoverControlPackage->hoThresholdDistParam->n8);
+
+ DBGPRN("hoThresholdInterfaceParamRxLevelUL= %d", handoverControlPackage->hoThresholdInterfaceParam->rxLevelUL);
+ DBGPRN("hoThresholdInterfaceParamRxLevelDL= %d", handoverControlPackage->hoThresholdInterfaceParam->rxLevelDL);
+ DBGPRN("hoThresholdInterfaceParamPx= %d", handoverControlPackage->hoThresholdInterfaceParam->px);
+ DBGPRN("hoThresholdInterfaceParamNx= %d", handoverControlPackage->hoThresholdInterfaceParam->nx);
+
+ DBGPRN("hoThresholdLevParamRxLevelUL= %d", handoverControlPackage->hoThresholdLevParam->rxLevelUL);
+ DBGPRN("hoThresholdLevParamRxLevelDL= %d", handoverControlPackage->hoThresholdLevParam->rxLevelDL);
+ DBGPRN("hoThresholdLevParamPx= %d", handoverControlPackage->hoThresholdLevParam->px);
+ DBGPRN("hoThresholdLevParamNx= %d", handoverControlPackage->hoThresholdLevParam->nx);
+
+ DBGPRN("hoThresholdQualParamRxQualUL= %d", handoverControlPackage->hoThresholdQualParam->rxQualUL);
+ DBGPRN("hoThresholdQualParamRxQualDL= %d", handoverControlPackage->hoThresholdQualParam->rxQualDL);
+ DBGPRN("hoThresholdQualParamPx= %d", handoverControlPackage->hoThresholdQualParam->px);
+ DBGPRN("hoThresholdQualParamNx= %d", handoverControlPackage->hoThresholdQualParam->nx);
+
+ DBGPRN("interferenceAveragingParamAveragingPeriod= %d", handoverControlPackage->interferenceAveragingParam->interferenceAveragingParamAveragingPeriod);
+ DBGPRN("interferenceAveragingParamThresholdBoundary0= %d", handoverControlPackage->interferenceAveragingParam->interferenceAveragingParamThresholdBoundary0);
+ DBGPRN("interferenceAveragingParamThresholdBoundary1= %d", handoverControlPackage->interferenceAveragingParam->interferenceAveragingParamThresholdBoundary1);
+ DBGPRN("interferenceAveragingParamThresholdBoundary2= %d", handoverControlPackage->interferenceAveragingParam->interferenceAveragingParamThresholdBoundary2);
+ DBGPRN("interferenceAveragingParamThresholdBoundary3= %d", handoverControlPackage->interferenceAveragingParam->interferenceAveragingParamThresholdBoundary3);
+ DBGPRN("interferenceAveragingParamThresholdBoundary4= %d", handoverControlPackage->interferenceAveragingParam->interferenceAveragingParamThresholdBoundary4);
+ DBGPRN("interferenceAveragingParamThresholdBoundary5= %d", handoverControlPackage->interferenceAveragingParam->interferenceAveragingParamThresholdBoundary5);
+
+ DBGPRN("msTxPwrMaxCellDef= %d", handoverControlPackage->mxTxPwrMaxCellDef);
+ DBGPRN("rxLevMinCellDef= %d", handoverControlPackage->rxLevMinCellDef);
+
+}
+
+void rm_print_powerControlPackage(PowerControlPackage *powerControlPackage)
+{
+ DBGPRN("\nPower Control Package");
+
+ DBGPRN("pcAveragingLevHreqave= %d", powerControlPackage->pcAveragingLev->hreqave);
+ DBGPRN("pcAveragingLevHreqt= %d", powerControlPackage->pcAveragingLev->hreqt);
+ DBGPRN("pcAveragingLevWeighting= %d", powerControlPackage->pcAveragingLev->weighting);
+
+ DBGPRN("pcAveragingQualHreqave= %d", powerControlPackage->pcAveragingQual->hreqave);
+ DBGPRN("pcAveragingQualHreqt= %d", powerControlPackage->pcAveragingQual->hreqt);
+ DBGPRN("pcAveragingQualWeighting= %d", powerControlPackage->pcAveragingQual->weighting);
+
+ DBGPRN("pcLowerThresholdLevParamRxLevelUL= %d", powerControlPackage->pcLowerThresholdLevParam->rxLevelUL);
+ DBGPRN("pcLowerThresholdLevParamRxLevelDL= %d", powerControlPackage->pcLowerThresholdLevParam->rxLevelDL);
+ DBGPRN("pcLowerThresholdLevParamPx= %d", powerControlPackage->pcLowerThresholdLevParam->px);
+ DBGPRN("pcLowerThresholdLevParamNx= %d", powerControlPackage->pcLowerThresholdLevParam->nx);
+
+ DBGPRN("pcLowerThresholdQualParamRxQualUL= %d", powerControlPackage->pcLowerThresholdQualParam->rxQualUL);
+ DBGPRN("pcLowerThresholdQualParamRxQualDL= %d", powerControlPackage->pcLowerThresholdQualParam->rxQualDL);
+ DBGPRN("pcLowerThresholdQualParamPx= %d", powerControlPackage->pcLowerThresholdQualParam->px);
+ DBGPRN("pcLowerThresholdQualParamNx= %d", powerControlPackage->pcLowerThresholdQualParam->nx);
+
+ DBGPRN("pcUpperThresholdLevParamRxLevelUL= %d", powerControlPackage->pcUpperThresholdLevParam->rxLevelUL);
+ DBGPRN("pcUpperThresholdLevParamRxLevelDL= %d", powerControlPackage->pcUpperThresholdLevParam->rxLevelDL);
+ DBGPRN("pcUpperThresholdLevParamPx= %d", powerControlPackage->pcUpperThresholdLevParam->px);
+ DBGPRN("pcUpperThresholdLevParamNx= %d", powerControlPackage->pcUpperThresholdLevParam->nx);
+
+ DBGPRN("pcUpperThresholdQualParamRxQualUL= %d", powerControlPackage->pcUpperThresholdQualParam->rxQualUL);
+ DBGPRN("pcUpperThresholdQualParamRxQualDL= %d", powerControlPackage->pcUpperThresholdQualParam->rxQualDL);
+ DBGPRN("pcUpperThresholdQualParamPx= %d", powerControlPackage->pcUpperThresholdQualParam->px);
+ DBGPRN("pcUpperThresholdQualParamNx= %d", powerControlPackage->pcUpperThresholdQualParam->nx);
+ DBGPRN("powerControlInterval= %d", powerControlPackage->powerControlInterval);
+ DBGPRN("powerIncrStepSize= %d", powerControlPackage->powerIncrStepSize);
+ DBGPRN("powerRedStepSize= %d", powerControlPackage->powerRedStepSize);
+}
+
+
+// print the retrieved value and this is used for debug only
+void rm_printOamGsmData(void)
+{
+ rm_print_btsBasicPackage(&rm_OamData.btsBasicPackage);
+ rm_print_btsOptionsPackage(&rm_OamData.btsOptionsPackage);
+ rm_print_firstTransceiverPackage(&rm_OamData.transceiverPackage[0]);
+ rm_print_secondTransceiverPackage(&rm_OamData.transceiverPackage[1]);
+ rm_print_firstRadioCarrierPackage(&rm_OamData.radioCarrierPackage[0]);
+ rm_print_secondRadioCarrierPackage(&rm_OamData.radioCarrierPackage[1]);
+ rm_print_t31xx(&rm_OamData.t31xx);
+ rm_print_adjacentCellPackage(&rm_OamData.adjacentCellPackage);
+ rm_print_handoverControlPackage(&rm_OamData.handoverControlPackage);
+ rm_print_powerControlPackage(&rm_OamData.powerControlPackage);
+
+}
+
+
+// retrieve all the GSM MIB data
+void rm_OamGetGsmData(void)
+{
+ rm_OamGetBtsBasicPackage();
+ rm_OamGetBtsOptionPackage();
+ rm_OamGetBtsFirstTrxPackage();
+ rm_OamGetBtsSecondTrxPackage();
+ rm_OamGetBtsFirstRadioCarrierPackage();
+ rm_OamGetBtsSecondRadioCarrierPackage();
+ rm_OamGetT31xxTimerStructure();
+ rm_adjacentCellPackage();
+ rm_handoverControlPackage();
+ rm_powerControlPackage();
+// rm_printOamGsmData();
+}
+
+//GP2
+#endif //#if 0
+
+#endif /* __RM_OAMGETRMGSMDATA_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_OamGetRmConfigData.cpp b/data/mnet/GP10/Host/rm/Src/rm_OamGetRmConfigData.cpp
new file mode 100644
index 0000000..9156de6
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_OamGetRmConfigData.cpp
@@ -0,0 +1,33 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_OAMGETRMCONFIGDATA_CPP__
+#define __RM_OAMGETRMCONFIGDATA_CPP__
+
+//GP2
+#if 0
+
+#include "rm\rm_head.h"
+
+void rm_OamGetRmConfigData(void)
+{
+ STATUS ret;
+
+ RDEBUG__(("ENTER-rm_OamGetRmConfigData\n"));
+ ret = getMibStruct(MIB_resourceConfigData, (u8*)&rm_OamData.rmConfigData,
+ sizeof(ResourceConfigData));
+ if (ret != STATUS_OK)
+ EDEBUG__(("ERROR-rm_OamGetRmConfigData: getMibVarAdr error=%d\n",ret));
+
+// rm_TestPrintOamRmConfigData();
+}
+
+//GP2
+#endif //#if 0
+
+#endif /* __RM_OAMGETRMCONFIGDATA_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_OamRegTrapVars.cpp b/data/mnet/GP10/Host/rm/Src/rm_OamRegTrapVars.cpp
new file mode 100644
index 0000000..bc2b4b1
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_OamRegTrapVars.cpp
@@ -0,0 +1,2028 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_OAMREGTRAPVARS_CPP__
+#define __RM_OAMREGTRAPVARS_CPP__
+
+#include "rm\rm_head.h"
+
+const Alarm_errorCode_t
+ rm_DspNotResponding[OAMrm_MAX_TRXS]
+ = { EC_RM_DSP_0_NOT_RESPONDING, EC_RM_DSP_1_NOT_RESPONDING};
+const Alarm_errorCode_t
+ rm_DspNotTickingAnyMore[OAMrm_MAX_TRXS]
+ = {EC_RM_DSP_0_NOT_TICKING, EC_RM_DSP_1_NOT_TICKING};
+const Alarm_errorCode_t
+ rm_TrxRadioOff[OAMrm_MAX_TRXS]
+ = { EC_RM_TRX_0_RADIO_OFF, EC_RM_TRX_1_RADIO_OFF};
+const Alarm_errorCode_t
+ rm_TrxAdminLockedAlarmCode[OAMrm_MAX_TRXS]
+ = {EC_RM_TRX_1_LOCKED,EC_RM_TRX_2_LOCKED};
+
+const Alarm_errorCode_t
+ rm_TrxAdminUnlockedAlarmCode[OAMrm_MAX_TRXS]
+ = {EC_RM_TRX_1_UNLOCKED,EC_RM_TRX_2_UNLOCKED};
+
+const Alarm_errorCode_t
+ rm_TrxAdminShuttingDownAlarmCode[OAMrm_MAX_TRXS]
+ = {EC_RM_TRX_1_SHUTTINGDOWN,EC_RM_TRX_2_SHUTTINGDOWN};
+
+const Alarm_errorCode_t
+ rm_TrxSlotAdminLockedAlarmCode[OAMrm_MAX_TRXS][OAMrm_SLOTS_PER_TRX]
+ = {
+ {EC_RM_TRX_1_SLOT_1_LOCKED, EC_RM_TRX_1_SLOT_2_LOCKED,
+ EC_RM_TRX_1_SLOT_3_LOCKED, EC_RM_TRX_1_SLOT_4_LOCKED,
+ EC_RM_TRX_1_SLOT_5_LOCKED, EC_RM_TRX_1_SLOT_6_LOCKED,
+ EC_RM_TRX_1_SLOT_7_LOCKED, EC_RM_TRX_1_SLOT_8_LOCKED},
+
+ {EC_RM_TRX_2_SLOT_1_LOCKED, EC_RM_TRX_2_SLOT_2_LOCKED,
+ EC_RM_TRX_2_SLOT_3_LOCKED, EC_RM_TRX_2_SLOT_4_LOCKED,
+ EC_RM_TRX_2_SLOT_5_LOCKED, EC_RM_TRX_2_SLOT_6_LOCKED,
+ EC_RM_TRX_2_SLOT_7_LOCKED, EC_RM_TRX_2_SLOT_8_LOCKED}
+ };
+
+const Alarm_errorCode_t
+ rm_TrxSlotAdminUnlockedAlarmCode[OAMrm_MAX_TRXS][OAMrm_SLOTS_PER_TRX]
+ = {
+ {EC_RM_TRX_1_SLOT_1_UNLOCKED, EC_RM_TRX_1_SLOT_2_UNLOCKED,
+ EC_RM_TRX_1_SLOT_3_UNLOCKED, EC_RM_TRX_1_SLOT_4_UNLOCKED,
+ EC_RM_TRX_1_SLOT_5_UNLOCKED, EC_RM_TRX_1_SLOT_6_UNLOCKED,
+ EC_RM_TRX_1_SLOT_7_UNLOCKED, EC_RM_TRX_1_SLOT_8_UNLOCKED},
+
+ {EC_RM_TRX_2_SLOT_1_UNLOCKED, EC_RM_TRX_2_SLOT_2_UNLOCKED,
+ EC_RM_TRX_2_SLOT_3_UNLOCKED, EC_RM_TRX_2_SLOT_4_UNLOCKED,
+ EC_RM_TRX_2_SLOT_5_UNLOCKED, EC_RM_TRX_2_SLOT_6_UNLOCKED,
+ EC_RM_TRX_2_SLOT_7_UNLOCKED, EC_RM_TRX_2_SLOT_8_UNLOCKED}
+ };
+
+const Alarm_errorCode_t
+ rm_TrxSlotAdminShuttingDownAlarmCode[OAMrm_MAX_TRXS][OAMrm_SLOTS_PER_TRX]
+ = {
+ {EC_RM_TRX_1_SLOT_1_SHUTTINGDOWN, EC_RM_TRX_1_SLOT_2_SHUTTINGDOWN,
+ EC_RM_TRX_1_SLOT_3_SHUTTINGDOWN, EC_RM_TRX_1_SLOT_4_SHUTTINGDOWN,
+ EC_RM_TRX_1_SLOT_5_SHUTTINGDOWN, EC_RM_TRX_1_SLOT_6_SHUTTINGDOWN,
+ EC_RM_TRX_1_SLOT_7_SHUTTINGDOWN, EC_RM_TRX_1_SLOT_8_SHUTTINGDOWN},
+
+ {EC_RM_TRX_2_SLOT_1_SHUTTINGDOWN, EC_RM_TRX_2_SLOT_2_SHUTTINGDOWN,
+ EC_RM_TRX_2_SLOT_3_SHUTTINGDOWN, EC_RM_TRX_2_SLOT_4_SHUTTINGDOWN,
+ EC_RM_TRX_2_SLOT_5_SHUTTINGDOWN, EC_RM_TRX_2_SLOT_6_SHUTTINGDOWN,
+ EC_RM_TRX_2_SLOT_7_SHUTTINGDOWN, EC_RM_TRX_2_SLOT_8_SHUTTINGDOWN}
+ };
+
+//GP2
+#if 0
+void rm_OamProcTrapRadioCarrierPackage(u8 rcno, MibTag tag)
+{
+ // Monitoring function entrance
+ RDEBUG__(("ENTER-rm_OamProcTrapRadioCarrierPackage\n"));
+
+ // Read out OAM data
+ if (rcno == 0)
+ {
+ rm_OamGetBtsFirstRadioCarrierPackage();
+
+ } else {
+ rm_OamGetBtsSecondRadioCarrierPackage();
+ }
+
+ switch (tag)
+ {
+ case MIBT_carrierFrequency_0:
+ case MIBT_carrierFrequency_1:
+ if (OAMrm_BTS_OPSTATE==opStateEnabled)
+ {
+ //Tune to new freqs
+ //PR1074
+ if (OAMrm_BTS_AMSTATE != locked && OAMrm_TRX_AMSTATE(0) != locked &&
+ OAMrm_CHN_AMSTATE(0,0) != locked)
+ {
+ rm_SendTuneSynthToTrx(0,1);
+ if (OAMrm_TRX_AMSTATE(1)!= locked)
+ rm_SendTuneSynthToTrx(1,1);
+ }
+ }
+ break;
+ case MIB_txPwrMaxReduction_0:
+ if (OAMrm_TRX_RC(0) == rcno)
+ {
+ rm_OamSendPwrRedStepToDsp(0);
+ } else {
+ rm_OamSendPwrRedStepToDsp(1);
+ }
+ break;
+ case MIB_txPwrMaxReduction_1:
+ if (OAMrm_TRX_RC(0) == rcno)
+ {
+ rm_OamSendPwrRedStepToDsp(0);
+ } else {
+ rm_OamSendPwrRedStepToDsp(1);
+ }
+ break;
+ default:
+ // do nothing for now.
+ IDEBUG__(("No message was sent to DSP"));
+ break;
+ }
+}
+void rm_OamRegTrapVars(void)
+{
+ // Monitoring function entrance
+ RDEBUG__(("ENTER-rm_OamRegTrapVars\n"));
+
+ // Reset any trap setting to get a clean start
+ if (STATUS_OK != oam_unsetTrapByModule(MODULE_RM))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @unsetTrapByModule\n"));
+
+ //GP2
+ return;
+
+ // Regsiter to trap BtsBasicPackage
+ if (STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_btsBasicPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/MIB_btsBasicPackage\n"));
+
+ // Register to trap BtsOptionsPackage
+ if (STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_btsOptionsPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/MIB_btsOptionsPackage\n"));
+
+ // Register to trap two TransceiverPackages
+ if (STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_firstTransceiverPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/MIB_firstTransceiverPackage\n"));
+ if (STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_secondTransceiverPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/MIB_secondTransceiverPackage\n"));
+
+ // Register to trap two RadioCarrierPackages
+ if (STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_firstRadioCarrierPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/MIB_firstRadioCarrierPackage\n"));
+ if (STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_secondRadioCarrierPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/MIB_secondRadioCarrierPackage\n"));
+
+ // Regsiter to trap T31xx timers
+ if (STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_t31xxPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/MIB_t31xxPackage\n"));
+
+ // Register to trap AdjacentCellPackage
+ if (STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_adjacentCellPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/MIB_adjacentCellPackage\n"));
+
+ // Register to trap HandoverControlPackage
+ if (STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_handoverControlPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/MIB_handoverControlPackage\n"));
+
+ if ( STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_hoAveragingAdjCellPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_hoAveragingDistPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_hoAveragingLevPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_hoAveragingQualPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_hoThresholdDistPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_hoThresholdInterfacePackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_hoThresholdLevPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_hoThresholdQualPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_interferenceAveragingPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/Nested sturcture of handoverControlPackage\n"));
+
+ // Register to trap PowerControlPackage
+ if (STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_powerControlPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/MIB_powerControlPackage\n"));
+
+ if ( STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_pcAveragingLevPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_pcAveragingQualPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_pcLowerThresholdLevPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_pcLowerThresholdQualPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_pcUpperThresholdLevPackage)
+ || STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_pcUpperThresholdQualPackage))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/Nested sturcture of Power Control Package\n"));
+
+
+
+ // Register to trap ResourceConfigData
+ if (STATUS_OK != oam_setTrap(MODULE_RM, rm_MsgQId, MIB_resourceConfigData))
+ EDEBUG__(("ERROR-rm_OamRegTrapVars: OAM API failed @oam_setTrap/MIB_resourceConfigData\n"));
+}
+
+void rm_OamGetTrapVars(void)
+{
+ // Monitoring function entrance
+ RDEBUG__(("ENTER-rm_OamGetTrapVars\n"));
+
+ //Process in terms of message type
+ switch ( rm_pItcRxOamMsg->msgType )
+ {
+ case MT_TRAP:
+ //Got a trap notification
+ switch (MIB_TBL(rm_pItcRxOamMsg->mibTag))
+ {
+ case MTBL_btsBasicPackage: //0
+ rm_OamProcTrapBtsBasicPackage();
+ break;
+ case MTBL_btsOptionsPackage: //1
+ rm_OamProcTrapBtsOptionsPackage();
+ break;
+ case MTBL_firstTransceiverPackage: //2
+ rm_OamProcTrapTransceiverPackage(0);
+ break;
+ case MTBL_secondTransceiverPackage: //3
+ rm_OamProcTrapTransceiverPackage(1);
+ break;
+ case MTBL_firstRadioCarrierPackage: //4
+ rm_OamProcTrapRadioCarrierPackage(0, rm_pItcRxOamMsg->mibTag);
+ break;
+ case MTBL_secondRadioCarrierPackage: //5
+ rm_OamProcTrapRadioCarrierPackage(1, rm_pItcRxOamMsg->mibTag);
+ break;
+ case MTBL_t31xx: //8
+ rm_OamProcTrapT31xx();
+ break;
+ case MTBL_adjacentCellPackage: //9
+ rm_OamProcAdjacentCellPackage();
+ break;
+ case MTBL_handoverControlPackage: //11
+ case MTBL_hoAveragingAdjCellParam: //12
+ case MTBL_hoAveragingDistParam: //13
+ case MTBL_hoAveragingLevParam: //14
+ case MTBL_hoAveragingQualParam: //15
+ case MTBL_hoThresholdDistParam: //16
+ case MTBL_hoThresholdInterfaceParam: //17
+ case MTBL_hoThresholdLevParam: //18
+ case MTBL_hoThresholdQualParam: //19
+ case MTBL_interferenceAveragingParam: //20
+ rm_OamProcHandoverControlPackage();
+ break;
+ case MTBL_powerControlPackage: //21
+ case MTBL_pcAveragingLev: //22
+ case MTBL_pcAveragingQual: //23
+ case MTBL_pcLowerThresholdLevParam: //24
+ case MTBL_pcLowerThresholdQualParam: //25
+ case MTBL_pcUpperThresholdLevParam: //26
+ case MTBL_pcUpperThresholdQualParam: //27
+ rm_OamProcPowerControlPackage();
+ break;
+ case MTBL_resourceConfigData: //32
+ rm_OamProcResourceConfigData();
+ break;
+ default: //??
+ //Received unrecognized message type
+ EDEBUG__(( "ERROR-rm_OamGetTrapVars: unexpected OAM table:%d\n",
+ MIB_TBL(rm_pItcRxOamMsg->mibTag) ));
+ break;
+ }
+ break;
+
+ default:
+ //Received unrecognized message type
+ EDEBUG__(( "ERROR-rm_OamGetTrapVars: unexpected OAM msg type:%d\n",
+ rm_pItcRxOamMsg->msgType ));
+ break;
+ }
+}
+
+void rm_OamProcTrapBtsBasicPackage(void)
+{
+ u8 i,j;
+ EnableDisable opState;
+
+ opState = OAMrm_BTS_OPSTATE;
+
+ //Monitoring function entrance
+ RDEBUG__(("ENTER-rm_OamProcTrapBtsBasicPackage\n"));
+
+ // Retrieve BtsBasicPackage
+ if ( STATUS_OK != rm_OamGetBtsBasicPackage() )
+ {
+ //Received unrecognized message tag
+ EDEBUG__(( "ERROR-rm_OamProcTrapBtsBasicPackage:failed@rm_OamGetBtsBasicPackage()\n"));
+ return;
+ }
+
+ //Check if BTS operational state is changed or not
+ if (rm_pItcRxOamMsg->mibTag==MIB_bts_operationalState)
+ {
+ rm_ProcBtsOpStateChange();
+ return;
+ }
+
+ //Check if got BTS administrative state changed notifica
+ if (rm_pItcRxOamMsg->mibTag==MIB_bts_administrativeState)
+ {
+ rm_ProcBtsAdminStateChange();
+ return;
+ }
+
+ //Blindly update trx-es
+ i = 0;
+ while (i<OAMrm_MAX_TRXS)
+ {
+ if (rm_TrxMgmt[i].state==RM_TRXMGMT_S3_TRXCONFIG_END)
+ { //trx i is operating right now and update it!
+ rm_SendSacchFillingSI5(i, RM_L1SYSINFO_TYPE_5);
+ rm_SendSacchFillingSI6(i, RM_L1SYSINFO_TYPE_6);
+ rm_SendTrxConfigToTrx(i);
+
+ //PR1039
+ rm_SendBtsPackageToTrx(i);
+ if (i==0) //Assume bcch trx, pass SI
+ {
+ if (OAMrm_OVERLOAD_CELLBAR && rm_VcIsBarred)
+ {
+ rm_SendSystemInfo3ToBcchTrx(0,3,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo4ToBcchTrx(0,4,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo2ToBcchTrx(0,2,CNI_RIL3_CELL_BARRED_ACCESS);
+ } else
+ {
+ rm_VcIsBarred = RM_FALSE;
+ rm_SendAllSystemInfosToBcchTrx(i);
+ }
+ }
+ }
+ i++;
+ }
+
+ return;
+
+#if 0
+ switch (rm_pItcRxOamMsg->mibTag)
+ {
+ case MIB_bts_ncc:
+ case MIB_bts_cid:
+ case MIB_btsID:
+ case MIB_cellAllocationTable:
+ case MIBT_cellAllocationEntry:
+ case MIBT_cellAllocationIndex:
+ case MIBT_cellAllocation:
+ case MIB_gsmdcsIndicator:
+ case MIB_bts_mcc:
+ case MIB_bts_mnc:
+ case MIB_bts_lac:
+ case MIB_bts_ci:
+ case MIB_cellReselectHysteresis:
+ case MIB_ny1:
+ case MIB_plmnPermittedTable:
+ case MIBT_plmnPermittedEntry:
+ case MIBT_plmnPermittedIndex:
+ case MIBT_plmnPermitted:
+ case MIB_radioLinkTimeout:
+ case MIB_relatedTranscoder:
+ case MIB_rxLevAccessMin:
+ case MIB_bts_administrativeState:
+ case MIB_bts_alarmStatus:
+ case MIB_bts_operationalState:
+ case MIB_maxNumberRetransmissions:
+ case MIB_mSTxPwrMaxCCH:
+ case MIB_numberOfSlotsSpreadTrans:
+ case MIB_noOfBlocksForAccessGrant:
+ case MIB_noOfMultiframesBetweenPaging:
+ default:
+ //Received unrecognized message tag
+ EDEBUG__(("ERROR-rm_OamProcTrapBtsBasicPackage: unexpected OAM mib tag:%x\n",
+ rm_pItcRxOamMsg->mibTag));
+ break;
+ }
+#endif
+
+}
+
+
+void rm_OamProcTrapBtsOptionsPackage(void)
+{
+ u8 i;
+
+ // Monitoring function entrance
+ RDEBUG__(("ENTER-rm_OamProcTrapBtsOptionsPackage\n"));
+
+ // Retrieve OamGetBtsOptionPackage
+ if ( STATUS_OK != rm_OamGetBtsOptionPackage() )
+ {
+ // Received unrecognized message tag
+ EDEBUG__(( "ERROR-rm_OamProcTrapBtsOptionsPackage: failed@rm_OamGetBtsOptionPackage()\n"));
+ return;
+ }
+
+ // Update each trx here
+ i = 0;
+ while (i<OAMrm_MAX_TRXS)
+ {
+ if (rm_TrxMgmt[i].state==RM_TRXMGMT_S3_TRXCONFIG_END)
+ { //trx i is operating right now and update it!
+ rm_SendSacchFillingSI5(i, RM_L1SYSINFO_TYPE_5);
+ rm_SendSacchFillingSI6(i, RM_L1SYSINFO_TYPE_6);
+ //rm_SendTrxConfigToTrx(i);
+
+ //PR1381
+ rm_SendBtsPackageToTrx(i);
+
+ if (i==0) //Assume bcch trx, pass SI
+ {
+ if (OAMrm_OVERLOAD_CELLBAR && rm_VcIsBarred)
+ {
+ rm_SendSystemInfo3ToBcchTrx(0,3,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo4ToBcchTrx(0,4,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo2ToBcchTrx(0,2,CNI_RIL3_CELL_BARRED_ACCESS);
+ } else
+ {
+ rm_VcIsBarred = RM_FALSE;
+ rm_SendAllSystemInfosToBcchTrx(i);
+ }
+ }
+ }
+ i++;
+ }
+
+ return;
+
+#if 0
+ switch (rm_pItcRxOamMsg->mibTag)
+ {
+ case MIB_allowIMSIAttachDetach:
+ case MIB_callReestablishmentAllowed:
+ case MIB_cellBarred:
+ case MIB_dtxDownlink:
+ case MIB_dtxUplink:
+ case MIB_emergencyCallRestricted:
+ case MIB_notAllowedAccessClassTable:
+ case MIBT_notAllowedAccessClassEntry:
+ case MIBT_notAllowedAccessClassIndex:
+ case MIBT_notAllowedAccessClass:
+ case MIB_timerPeriodicUpdateMS:
+ case MIB_maxQueueLength:
+ case MIB_msPriorityUsedInQueueing:
+ case MIB_timeLimitCall:
+ case MIB_timeLimitHandover:
+ default:
+ // Received unrecognized message tag
+ EDEBUG__(( "ERROR-rm_OamProcTrapBtsOptionsPackage: unexpected OAM mib tag:%x\n",
+ rm_pItcRxOamMsg->mibTag ));
+ break;
+ }
+
+#endif
+
+}
+
+void rm_OamProcTrapT31xx(void)
+{
+ u8 i;
+
+ // Monitoring function entrance
+ RDEBUG__(("ENTER-rm_OamProcTrapT31xx\n"));
+
+ if ( STATUS_OK != rm_OamGetT31xxTimerStructure() )
+ {
+ // Received unrecognized message tag
+ EDEBUG__(( "ERROR-rm_OamProcTrapT31xx: failed@rm_OamGetT31xxTimerStructure()\n"));
+ return;
+ }
+ /* PR1256 <convert from tick number to 10ms > begin*/
+ int tickNumPerSec = sysClkRateGet ();
+
+ rm_OamData.t31xx.t3101 = ( rm_OamData.t31xx.t3101 * 10 ) / tickNumPerSec ;
+
+ rm_OamData.t31xx.t3105 = ( rm_OamData.t31xx.t3105 * 10 ) / tickNumPerSec ;
+
+ rm_OamData.t31xx.t3109 = ( rm_OamData.t31xx.t3109 * 10 ) / tickNumPerSec ;
+
+ rm_OamData.t31xx.t3111 = ( rm_OamData.t31xx.t3111 * 10 ) / tickNumPerSec ;
+
+ rm_TestPrintOamRmStdGsmData();
+ /* PR1256 <convert from tick number to 10ms > end*/
+
+ // Update timer values accordingly
+ for (i=0;i<OAMrm_MAX_TCHFS;i++)
+ {
+ rm_PhyChanTchf[i].T3101.time = OAMrm_T3101;
+ rm_PhyChanTchf[i].T3105.time = OAMrm_T3105;
+ rm_PhyChanTchf[i].T3109.time = OAMrm_T3109;
+ rm_PhyChanTchf[i].T3111.time = OAMrm_T3111;
+ }
+ for (i=0;i<OAMrm_MAX_SDCCH4S;i++)
+ {
+ rm_PhyChanSdcch4[i].T3101.time = OAMrm_T3101;
+ rm_PhyChanSdcch4[i].T3105.time = OAMrm_T3105;
+ rm_PhyChanSdcch4[i].T3109.time = OAMrm_T3109;
+ rm_PhyChanSdcch4[i].T3111.time = OAMrm_T3111;
+ }
+
+}
+
+void rm_OamProcAdjacentCellPackage(void)
+{
+ u8 i,j,ncellNo;
+
+ // Monitoring function entrance
+ RDEBUG__(("ENTER-rm_OamProcAdjacentCellPackage\n"));
+
+ // Read out OAM data
+ if ( STATUS_OK != rm_adjacentCellPackage() )
+ {
+ // Received unrecognized message tag
+ EDEBUG__(( "ERROR-rm_OamProcAdjacentCellPackage: failed@rm_adjacentCellPackage()\n"));
+ return;
+ }
+
+ switch(MIB_ITM(rm_pItcRxOamMsg->mibTag))
+ {
+ case LEAF_adjCell_reselectionTable:
+ if (rm_TrxMgmt[0].state==RM_TRXMGMT_S3_TRXCONFIG_END)
+ {
+ //Assume trx 0 is bcch trx here
+ if (OAMrm_OVERLOAD_CELLBAR && rm_VcIsBarred)
+ {
+ rm_SendSystemInfo2ToBcchTrx(0,2,CNI_RIL3_CELL_BARRED_ACCESS);
+ } else
+ {
+ rm_VcIsBarred = RM_FALSE;
+ rm_SendSystemInfo2ToBcchTrx(0,RM_L1SYSINFO_TYPE_2,OAMrm_RA_CELL_BARRED_STATE);
+ }
+ }
+ break;
+ case LEAF_adjCell_handoverTable:
+ i = 0;
+ while ( i<OAMrm_MAX_TRXS )
+ {
+ // Pass updated information to both mobile and DSP
+ if (rm_TrxMgmt[i].state==RM_TRXMGMT_S3_TRXCONFIG_END)
+ {
+ rm_SendSacchFillingSI5(i, RM_L1SYSINFO_TYPE_5);
+ ncellNo=rm_OamGetTotalAvailableHoNCells();
+ for (j=0;j<OAMrm_HO_ADJCELL_NO_MAX;j++)
+ rm_OamSendHoNCellToDsp(i,j,ncellNo);
+ }
+ i++;
+ }
+ break;
+ default:
+ // Received unrecognized message tag
+ EDEBUG__(( "ERROR-rm_OamProcAdjacentCellPackage: unexpected OAM mib Table tag:%x\n",
+ MIB_ITM(rm_pItcRxOamMsg->mibTag) ));
+ break;
+
+ }
+}
+
+void rm_OamProcHandoverControlPackage(void)
+{
+ int i;
+
+ // Monitoring function entrance
+ RDEBUG__(("ENTER-rm_OamProcHandoverControlPackage\n"));
+
+ // Read out OAM data
+ if ( STATUS_OK != rm_handoverControlPackage() )
+ {
+ // Received unrecognized message tag
+ EDEBUG__(( "ERROR-rm_OamProcHandoverControlPackage: failed@rm_handoverControlPackage()\n"));
+ return;
+ }
+
+ // Update DSP with new HandoverControlPackage
+ i = 0;
+ while ( i<OAMrm_MAX_TRXS )
+ {
+ // Pass updated information to both mobile and DSP
+ if (rm_TrxMgmt[i].state==RM_TRXMGMT_S3_TRXCONFIG_END)
+ rm_OamSendHoSCellToDsp(i);
+ i++;
+ }
+}
+
+void rm_OamProcPowerControlPackage(void)
+{
+ int i;
+
+ // Monitoring function entrance
+ RDEBUG__(("ENTER-rm_OamProcPowerControlPackage\n"));
+
+ // Read out OAM data
+ if ( STATUS_OK != rm_powerControlPackage() )
+ {
+ // Received unrecognized message tag
+ EDEBUG__(( "ERROR-rm_OamProcPowerControlPackage: failed@rm_powerControlPackage()\n"));
+ return;
+ }
+
+ // Update DSP with new power control package
+ i = 0;
+ while ( i<OAMrm_MAX_TRXS )
+ {
+ // Pass updated information to both mobile and DSP
+ if (rm_TrxMgmt[i].state==RM_TRXMGMT_S3_TRXCONFIG_END)
+ rm_OamSendPcToDsp(i);
+ i++;
+ }
+}
+
+void rm_OamProcResourceConfigData(void)
+{
+ int i;
+ int opState;
+
+ // Monitoring function entrance
+ RDEBUG__(("ENTER-rm_OamProcResourceConfigData\n"));
+
+ opState = OAMrm_CBCH_OPSTATE;
+
+ // Read out OAM data
+ rm_OamGetRmConfigData();
+
+ switch (rm_pItcRxOamMsg->mibTag)
+ {
+ case MIB_rm_nim_0_1:
+ //OAMrm_CBCH_OPSTATE=rm_pItcRxOamMsg->val.varVal;
+ switch(OAMrm_CBCH_OPSTATE)
+ {
+ case 0: //Disable CBCH channel
+ if (!rm_ChanCbchActive)
+ PDEBUG__(("INFO@rm_OamProcResourceConfigData: rel CBCH but it's not ON\n"));
+ rm_ChanCbchActive = RM_FALSE;
+ rm_SendRfChanRelease(rm_pCbchChan);
+ if (OAMrm_OVERLOAD_CELLBAR && rm_VcIsBarred)
+ {
+ rm_SendSystemInfo4ToBcchTrx(0, RM_L1SYSINFO_TYPE_4,CNI_RIL3_CELL_BARRED_ACCESS);
+ } else
+ {
+ rm_VcIsBarred = RM_FALSE;
+ rm_SendSystemInfo4ToBcchTrx(0, RM_L1SYSINFO_TYPE_4,OAMrm_RA_CELL_BARRED_STATE);
+ }
+ break;
+ case 1: //Enable CBCH Channel
+ if (rm_ChanCbchActive)
+ PDEBUG__(("INFO@rm_OamProcResourceConfigData: turn on a already on cbch\n"));
+ if (rm_pCbchChan->usable == RM_PHYCHAN_UNUSABLE)
+ {
+ IDEBUG__(("WARNIG@rm_OamProcResourceConfigData: SDCCH(2) unusable: st=%d\n",
+ rm_pCbchChan->usable));
+ return;
+ }
+
+ //block any SDCCH attempt also activate CBCH
+ rm_ChanCbchActive = RM_FALSE;
+ rm_pCbchChan->usable = RM_PHYCHAN_USABLE;
+ if (rm_pCbchChan->state == RM_PHYCHAN_FREE)
+ {
+ rm_pCbchChan->usable = RM_PHYCHAN_CBCH_USABLE;
+ if ( rm_pCbchChan->pMSmCtxt->state != RM_S1RM_RUNNING ||
+ rm_pCbchChan->pASmCtxt->state != RM_S1RM_RUNNING)
+ {
+ IDEBUG__(("WARNING@rm_OamProcResourceConfigData:invalid chan state(%d,%d,%d)\n",
+ rm_pCbchChan,rm_pCbchChan->pMSmCtxt->state,
+ rm_pCbchChan->pASmCtxt->state));
+ rm_pCbchChan->pMSmCtxt->state = RM_S1RM_RUNNING;
+ rm_pCbchChan->pASmCtxt->state = RM_S1RM_RUNNING;
+ }
+ rm_ActivateCbchChan();
+ }
+ break;
+ default:
+ IDEBUG__(("WARNING@rm_OamProcResourceConfigData: invalid cbchOpState=%d\n",
+ OAMrm_CBCH_OPSTATE));
+ OAMrm_CBCH_OPSTATE = opState;
+ break;
+ }
+ break;
+
+ case MIB_rm_nim_0_3:
+ case MIB_rm_nim_0_4:
+ case MIB_rm_nim_0_5:
+ case MIB_rm_nim_0_6:
+ if (OAMrm_OVERLOAD_CELLBAR && rm_VcIsBarred)
+ {
+ rm_SendSystemInfo3ToBcchTrx(0,3,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo4ToBcchTrx(0,4,CNI_RIL3_CELL_BARRED_ACCESS);
+ } else
+ {
+ rm_VcIsBarred = RM_FALSE;
+ rm_SendSystemInfo3ToBcchTrx(0,3,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo4ToBcchTrx(0,4,OAMrm_RA_CELL_BARRED_STATE);
+ }
+ break;
+
+ //case MIB_rm_nim_0_7: auth/cipher feature control
+ case MIB_rm_nim_1_1:
+ rm_VcIsBarred = RM_FALSE;
+ rm_SendSystemInfo2ToBcchTrx(0,2,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo3ToBcchTrx(0,3,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo4ToBcchTrx(0,4,OAMrm_RA_CELL_BARRED_STATE);
+ break;
+
+ default:
+ IDEBUG__(("WARNING@rm_OamProcResourceConfigData: invalid MIB var change occuring=%d\n",
+ rm_pItcRxOamMsg->mibTag));
+ break;
+ }
+
+ return;
+
+#if 0
+ //Update the system accordingly
+ switch(rm_pItcRxOamMsg->mibTag)
+ {
+ case MIB_rm_SGainCtrlSetting_0_0:
+ case MIB_rm_SGainCtrlSetting_0_1:
+ case MIB_rm_SGainCtrlSetting_1_0:
+ case MIB_rm_SGainCtrlSetting_1_1:
+ i = 0;
+ while ( i<OAMrm_MAX_TRXS )
+ {
+ // Pass updated information to both mobile and DSP
+ if (rm_TrxMgmt[i].state==RM_TRXMGMT_S3_TRXCONFIG_END)
+ {
+ rm_SendSetDGainToTrx(i);
+ rm_SendSetUGainToTrx(i);
+ }
+ i++;
+ }
+ break;
+ default:
+ break;
+ }
+
+#endif
+
+}
+
+void rm_OamProcTrapTransceiverPackage(u8 trx)
+{
+ u8 i,inUse;
+
+ // Monitoring function entrance
+ RDEBUG__(("ENTER@rm_OamProcTrapTransceiverPackage\n"));
+ PDEBUG__(("INFO@rm_OamProcTrapTransceiverPackage: trap notif for trx=%d\n", trx));
+
+ // Read the whole Transceiver package if any of them changed
+ if (trx == 0)
+ {
+ if (STATUS_OK != rm_OamGetBtsFirstTrxPackage() )
+ EDEBUG__(("ERROR@rm_OamProcTrapTransceiverPackage: error in reading trx0 data\n"));
+ }
+ else
+ {
+ if (STATUS_OK != rm_OamGetBtsSecondTrxPackage() )
+ EDEBUG__(("ERROR@rm_OamProcTrapTransceiverPackage: error in reading trx1 data\n"));
+ }
+
+ switch(rm_pItcRxOamMsg->mibTag)
+ {
+ case MIB_basebandAdministrativeState_0:
+ //Got TRX0 adminState change notification
+ switch(rm_pItcRxOamMsg->val.varVal)
+ {
+ case locked:
+ //Treat this as BTS amState locked
+ rm_SetBtsAdminState(locked);
+ rm_ProcBtsAdminStateLocked();
+ break;
+
+ case unlocked:
+ //Only unlock trx0
+ rm_SetBtsAdminState(unlocked);
+ rm_ProcBtsAdminStateUnlocked();
+ //rm_ProcTrxAdminStateUnlocked(0);
+ break;
+
+ case shuttingDown:
+ //Treat this as BTS amState shuttingdown
+ rm_SetBtsAdminState(shuttingDown);
+ rm_ProcBtsAdminStateShuttingDown();
+ break;
+
+ default:
+ IDEBUG__(("WARNING@rm_OamProcTrapTransceiverPackage:trx0,invalid amStateValue:%d\n",
+ rm_pItcRxOamMsg->val.varVal));
+ break;
+ }
+ break;
+
+ case MIB_basebandAdministrativeState_1:
+ //Got TRX1 adminState change notification
+ switch(rm_pItcRxOamMsg->val.varVal)
+ {
+ case locked:
+ rm_ProcTrxAdminStateLocked(1);
+ break;
+ case unlocked:
+ rm_ProcTrxAdminStateUnlocked(1);
+ break;
+ case shuttingDown:
+ rm_ProcTrxAdminStateShuttingDown(1, &inUse);
+ break;
+ default:
+ IDEBUG__(("WARNING@rm_OamProcTrapTransceiverPackage:trx1,invalid amStateValue:%d\n",
+ rm_pItcRxOamMsg->val.varVal));
+ break;
+ }
+ break;
+ case MIBT_channelAdministrativeState_0:
+ //Got TRX0 TS adminState change notificat
+ switch(rm_pItcRxOamMsg->val.varTbl.value)
+ {
+ case locked:
+ if (!rm_pItcRxOamMsg->val.varTbl.idx)
+ {
+ PDEBUG__(("LOCK Physical Channel (0,0): chnIdx=%d\n",
+ rm_pItcRxOamMsg->val.varTbl.idx));
+ OAMrm_BTS_AMSTATE = locked;
+ rm_SetBtsAdminState(locked);
+ rm_ProcBtsAdminStateLocked();
+ } else
+ rm_ProcTrxSlotAdminStateLocked(0, rm_pItcRxOamMsg->val.varTbl.idx);
+ break;
+ case unlocked:
+ if (!rm_pItcRxOamMsg->val.varTbl.idx)
+ {
+ PDEBUG__(("UNLOCK Physical Channel (0,0)\n",
+ rm_pItcRxOamMsg->val.varTbl.idx));
+ OAMrm_BTS_AMSTATE = unlocked;
+ rm_SetBtsAdminState(unlocked);
+ rm_ProcBtsAdminStateUnlocked();
+ } else
+ rm_ProcTrxSlotAdminStateUnlocked(0, rm_pItcRxOamMsg->val.varTbl.idx);
+ break;
+ case shuttingDown:
+ if (!rm_pItcRxOamMsg->val.varTbl.idx)
+ {
+ PDEBUG__(("SHUTTING DOWN Physical Channel (0,0)\n",
+ rm_pItcRxOamMsg->val.varTbl.idx));
+ OAMrm_BTS_AMSTATE = shuttingDown;
+ rm_SetBtsAdminState(shuttingDown);
+ rm_ProcBtsAdminStateShuttingDown();
+ } else
+ rm_ProcTrxSlotAdminStateShuttingDown(0, rm_pItcRxOamMsg->val.varTbl.idx,&inUse);
+ break;
+ default:
+ IDEBUG__(("WARNING@rm_OamProcTrapTransceiverPackage:(0,%d),invalid amStateValue:%d\n",
+ rm_pItcRxOamMsg->val.varTbl.idx,rm_pItcRxOamMsg->val.varTbl.value));
+ break;
+
+ }
+ break;
+
+ case MIBT_channelAdministrativeState_1:
+ //Got TRX0 TS adminState change notification
+ switch(rm_pItcRxOamMsg->val.varTbl.value)
+ {
+ case locked:
+ rm_ProcTrxSlotAdminStateLocked(1, rm_pItcRxOamMsg->val.varTbl.idx);
+ break;
+ case unlocked:
+ rm_ProcTrxSlotAdminStateUnlocked(1, rm_pItcRxOamMsg->val.varTbl.idx);
+ break;
+ case shuttingDown:
+ rm_ProcTrxSlotAdminStateShuttingDown(1, rm_pItcRxOamMsg->val.varTbl.idx,&inUse);
+ break;
+ default:
+ IDEBUG__(("WARNING@rm_OamProcTrapTransceiverPackage:(1,%d),invalid amStateValue:%d\n",
+ rm_pItcRxOamMsg->val.varTbl.idx,rm_pItcRxOamMsg->val.varTbl.value));
+ break;
+
+ }
+ break;
+
+ default:
+ //Handle other trapped notification here
+ break;
+ }
+}
+
+void rm_ProcBtsOpStateChange(void)
+{
+ int i;
+
+ PDEBUG__(("INFO@rm_ProcBtsOpStateChange:opState=%d\n",
+ rm_pItcRxOamMsg->val.varVal));
+
+ switch(rm_pItcRxOamMsg->val.varVal)
+ {
+ case opStateEnabled:
+ //Turn on RF transmission if needed
+ if ( OAMrm_BTS_AMSTATE == locked ||
+ OAMrm_TRX_AMSTATE(0) == locked ||
+ OAMrm_CHN_AMSTATE(0,0) == locked )
+ break;
+
+ for (i=0;i<OAMrm_MAX_TRXS;i++)
+ {
+ //PR1074
+ if ( ((OAMrm_TRX_ONOFF_MAP)&(1<<i)) &&
+ (OAMrm_TRX_AMSTATE(i) != locked) )
+ rm_SendTuneSynthToTrx(i,1);
+ }
+ break;
+
+ case opStateDisabled:
+ //Turn off RF transmission
+ for (i=0;i<OAMrm_MAX_TRXS;i++)
+ {
+ if ( (OAMrm_TRX_ONOFF_MAP)&(1<<i) )
+ rm_SendTuneSynthToTrx(i,0);
+ }
+ break;
+ default:
+ EDEBUG__(("ERROR@rm_ProcBtsOpStateChange:invalid opStateValue:%d\n",
+ rm_pItcRxOamMsg->val.varVal));
+ //Block RM itself in this case <TBD>
+ OAMrm_BTS_OPSTATE = opStateDisabled;
+ break;
+ }
+}
+
+void rm_ProcBtsAdminStateChange(void)
+{
+ PDEBUG__(("INFO@rm_ProcBtsAdminStateChange\n"));
+
+ //In terms of amState change notif
+ switch(rm_pItcRxOamMsg->val.varVal)
+ {
+ case locked:
+ rm_ProcBtsAdminStateLocked();
+ break;
+
+ case unlocked:
+ rm_ProcBtsAdminStateUnlocked();
+ break;
+
+ case shuttingDown:
+ rm_ProcBtsAdminStateShuttingDown();
+ break;
+
+ default:
+ IDEBUG__(("WARNING@rm_ProcBtsAdminStateChange:invalid amState:%d\n",
+ rm_pItcRxOamMsg->val.varVal));
+ break;
+ }
+}
+
+void rm_ProcBtsAdminStateLocked(void)
+{
+ u8 i;
+
+ PDEBUG__(("INFO@rm_ProcBtsAdminStateLocked()\n"));
+
+ //Report informational alarm
+ rm_SetRmOpState(EC_RM_BTS_LOCKED);
+
+ //Lock all TRXes in existence
+ for (i=0; i<OAMrm_MAX_TRXS; i++ )
+ {
+ //Check if ith TRX is existent
+ if ( (OAMrm_TRX_ONOFF_MAP)&(1<<i) )
+ {
+ rm_SetTrxAdminState(i,locked);
+ rm_ProcTrxAdminStateLocked(i);
+ }
+ }
+}
+
+void rm_ProcTrxAdminStateLocked(u8 trx)
+{
+ u8 i;
+
+ PDEBUG__(("INFO@rm_ProcTrxAdminStateLocked: trx=%d\n", trx));
+
+ //Check if the requested trx existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) )
+ {
+ IDEBUG__(("WARNING@rm_ProcTrxAdminStateLocked: invalid trx=%d\n",trx));
+ return;
+ }
+
+ //Report informational alarm
+ rm_SetRmOpState(rm_TrxAdminLockedAlarmCode[trx]);
+
+ //Turn off RF transmission
+ rm_SendTuneSynthToTrx(trx,0);
+
+ //Deactivate all channels on trx
+ for (i=0;i<OAMrm_SLOTS_PER_TRX;i++)
+ {
+ rm_SetTrxSlotAdminState(trx,i,locked);
+ rm_ProcTrxSlotAdminStateLocked(trx,i);
+ }
+}
+
+void rm_ProcTrxSlotAdminStateLocked(u8 trx, u8 slot)
+{
+ PDEBUG__(("INFO@rm_ProcTrxSlotAdminStateLocked:(%d,%d)\n",trx, slot));
+
+ //Check if (trx,slot) existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) ||
+ slot>=OAMrm_SLOTS_PER_TRX )
+ {
+ IDEBUG__(("WARNING@rm_ProcTrxSlotAdminStateLocked: invalid (%d,%d)\n",
+ trx,slot));
+ return;
+ }
+
+ //Report informational alarm
+ rm_SetRmOpState(rm_TrxSlotAdminLockedAlarmCode[trx][slot]);
+
+ //Lock func channels on (trx,slot)
+ rm_LockedAllTrxSlotChans(trx,slot);
+
+ //Check if no TCHF or SDCCH4 channels available
+
+ if (RM_SMCTXT_NULL == rm_PreAllocSmCtxt(RM_PHYCHAN_SDCCH4) )
+ {
+ if (!rm_AllAvailableSdcch4.allocated)
+ {
+ rm_AllAvailableSdcch4.allocated = RM_TRUE;
+ PM_CellMeasurement.allAvailableSDCCHAllocatedTime.start();
+
+ //rm_AllAvailableSdcch4.startTime = tickGet();
+ }
+ }
+
+ if (RM_SMCTXT_NULL == rm_PreAllocSmCtxt(RM_PHYCHAN_TCHF_S) )
+ {
+ if (!rm_AllAvailableTchf.allocated)
+ {
+ rm_AllAvailableTchf.allocated = RM_TRUE;
+ PM_CellMeasurement.allAvailableTCHAllocatedTime.start();
+
+ //rm_AllAvailableTchf.startTime = tickGet();
+ }
+ }
+
+ //Turn off RF transmission if need
+ if (!trx && !slot)
+ {
+ rm_SendTuneSynthToTrx(trx,0);
+ //if (rm_AmState00 != shuttingDown)
+ // rm_CellBarred = OAMrm_RA_CELL_BARRED_STATE;
+ //rm_AmState00 = locked;
+ }
+}
+
+void rm_ProcBtsAdminStateUnlocked(void)
+{
+ u8 i;
+
+ PDEBUG__(("INFO@rm_ProcBtsAdminStateUnlocked\n"));
+
+ //Report informational alarm
+ rm_SetRmOpState(EC_RM_BTS_UNLOCKED);
+
+ //Lock all TRXes in existence
+ for (i=0; i<OAMrm_MAX_TRXS; i++ )
+ {
+ //Check if ith TRX is existent
+ if ( (OAMrm_TRX_ONOFF_MAP)&(1<<i) )
+ {
+ rm_ProcTrxAdminStateUnlocked(i);
+ rm_SetTrxAdminState(i,unlocked);
+ }
+ }
+
+}
+
+void rm_ProcTrxAdminStateUnlocked(u8 trx)
+{
+ u8 i;
+
+ PDEBUG__(("INFO@rm_ProcTrxAdminStateUnlocked:trx=%d\n",trx));
+
+ //Check if the requested trx existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS))
+ {
+ IDEBUG__(("WARNING@rm_ProcTrxAdminStateUnlocked: invalid trx=%d\n",trx));
+ return;
+ }
+
+ //Report informational alarm
+ rm_SetRmOpState(rm_TrxAdminUnlockedAlarmCode[trx]);
+
+ //Unlock all channels on trx
+ for (i=0;i<OAMrm_SLOTS_PER_TRX;i++)
+ {
+ rm_ProcTrxSlotAdminStateUnlocked(trx,i);
+ rm_SetTrxSlotAdminState(trx,i,unlocked);
+ }
+
+ //Turn on RF transmission
+ rm_SendTuneSynthToTrx(trx,1);
+}
+
+
+void rm_ProcTrxSlotAdminStateUnlocked(u8 trx, u8 slot)
+{
+
+ PDEBUG__(("INFO@rm_ProcTrxSlotAdminStateUnlocked:(%d,%d)\n",trx,slot));
+
+ //Check if (trx,slot) existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) ||
+ slot>=OAMrm_SLOTS_PER_TRX )
+ {
+ IDEBUG__(("WARNING@rm_ProcTrxSlotAdminStateUnlocked: invalid (%d,%d)\n",
+ trx,slot));
+ return;
+ }
+
+ //Report informational alarm
+ rm_SetRmOpState(rm_TrxSlotAdminUnlockedAlarmCode[trx][slot]);
+
+ //Unlock all channels under trx/slot
+ rm_UnlockedAllTrxSlotChans(trx, slot);
+
+ //Turn on RF transmission if needed
+ if (trx || slot)
+ {
+ //rm_AmState00 = unlocked;
+ //OAMrm_RA_CELL_BARRED_STATEa = (Boolean) rm_CellBarred;
+ //rm_SendSystemInfo2ToBcchTrx(0,2,OAMrm_RA_CELL_BARRED_STATE);
+ //rm_SendSystemInfo3ToBcchTrx(0,3,OAMrm_RA_CELL_BARRED_STATE);
+ //rm_SendSystemInfo4ToBcchTrx(0,4,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendTuneSynthToTrx(trx,1);
+ }
+}
+
+
+void rm_UnlockedAllTrxSlotChans(u8 trx, u8 slot)
+{
+ int i;
+
+ PDEBUG__(("INFO@rm_UnlockedAllTrxSlotChans:(%d,%d)\n",trx,slot));
+
+ //Check if (trx,slot) existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) ||
+ slot>=OAMrm_SLOTS_PER_TRX )
+ {
+ IDEBUG__(("WARNING@rm_UnlockedAllTrxSlotChans: invalid (%d,%d)\n",
+ trx,slot));
+ return;
+ }
+
+ int onBar,newFreeChan;
+ onBar = 0; newFreeChan = 0;
+
+ if (trx || slot)
+ {
+ //scan through tchf table to excerise the adminState change
+ for (i=0;i<OAMrm_MAX_TCHFS;i++)
+ {
+ if (trx==rm_PhyChanTchf[i].trxNo &&
+ slot==rm_PhyChanTchf[i].slotNo)
+ {
+ if ( rm_PhyChanTchf[i].usable == RM_PHYCHAN_USABLE &&
+ rm_PhyChanTchf[i].amState != unlocked )
+ {
+ rm_NoOfUsableTchf++;
+ PM_CellMeasurement.nbrOfAvailableTCHs.setValue(rm_NoOfUsableTchf);
+ //PM_CellMeasurement.nbrOfAvailableTCHs.increment();
+ }
+
+ rm_PhyChanTchf[i].amState = unlocked;
+
+ if (rm_PhyChanTchf[i].state == RM_PHYCHAN_FREE)
+ {
+ rm_PhyChanTchf[i].state = RM_PHYCHAN_FREE;
+ rm_PhyChanTchf[i].pMSmCtxt->state = RM_S1RM_RUNNING;
+ rm_PhyChanTchf[i].pASmCtxt->state = RM_S1RM_RUNNING;
+ //onBar = 1;
+ if (rm_PhyChanTchf[i].usable == RM_PHYCHAN_USABLE)
+ {
+ onBar = 1;
+ newFreeChan = 1;
+ }
+ }
+
+ }
+ }
+
+ if (onBar)
+ {
+ rm_SendSystemInfo2ToBcchTrx(0,2,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo3ToBcchTrx(0,3,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo4ToBcchTrx(0,4,OAMrm_RA_CELL_BARRED_STATE);
+ rm_VcIsBarred = RM_FALSE;
+ }
+
+ if (newFreeChan && rm_AllAvailableTchf.allocated)
+ {
+ rm_AllAvailableTchf.allocated = RM_FALSE;
+ PM_CellMeasurement.allAvailableTCHAllocatedTime.stop();
+
+ //time = tickGet() - rm_AllAvailableTchf.startTime;
+ //PM_CellMeasurement.allAvailableTCHAllocatedTime.increment(time);
+ }
+
+ } else
+ {
+ //trx==0&&slot==0; the TS is carrying BCCH and CCCH channels
+
+ //Update PCH channel's amState
+ rm_PhyChanBCcch[RM_PCH_IDX].amState = unlocked;
+
+ //Update SDCCH4 channels' amState
+ for (i=0;i<OAMrm_MAX_SDCCH4S;i++)
+ {
+ if ( rm_PhyChanSdcch4[i].usable == RM_PHYCHAN_USABLE &&
+ rm_PhyChanSdcch4[i].amState != unlocked )
+ {
+ if (++rm_nbrOfAvailableSDCCHs>4)
+ printf("RM INFO@rm_UnlockedAllTrxSlotChans: nbrOfAvailableSDCCHs %d\n",
+ rm_nbrOfAvailableSDCCHs);
+ else
+ PM_CellMeasurement.nbrOfAvailableSDCCHs.setValue(rm_nbrOfAvailableSDCCHs);
+
+ //PM_CellMeasurement.nbrOfAvailableSDCCHs.increment();
+ }
+
+ rm_PhyChanSdcch4[i].amState = unlocked;
+
+ if (rm_PhyChanSdcch4[i].state == RM_PHYCHAN_FREE)
+ {
+ rm_PhyChanSdcch4[i].state = RM_PHYCHAN_FREE;
+ rm_PhyChanSdcch4[i].pMSmCtxt->state = RM_S1RM_RUNNING;
+ rm_PhyChanSdcch4[i].pASmCtxt->state = RM_S1RM_RUNNING;
+ if (rm_PhyChanSdcch4[i].usable == RM_PHYCHAN_USABLE)
+ newFreeChan = 1;
+ }
+ }
+
+ if (newFreeChan && rm_AllAvailableSdcch4.allocated)
+ {
+ rm_AllAvailableSdcch4.allocated = RM_FALSE;
+ PM_CellMeasurement.allAvailableSDCCHAllocatedTime.stop();
+
+ //time = tickGet() - rm_AllAvailableSdcch4.startTime;
+ //PM_CellMeasurement.allAvailableSDCCHAllocatedTime.increment(time);
+ }
+
+ }
+}
+
+void rm_ProcBtsAdminStateShuttingDown(void)
+{
+ u8 i, childInUse,t_childInUse;
+
+ PDEBUG__(("INFO@rm_ProcBtsAdminStateShuttingDown()\n"));
+
+ //report BTS is being shutted down now
+ rm_SetRmOpState(EC_RM_BTS_SHUTTINGDOWN);
+
+ //Lock all TRXes in existence
+ childInUse = 0;
+ for (i=0; i<OAMrm_MAX_TRXS; i++ )
+ {
+ //Check if ith TRX is existent
+ if ( (OAMrm_TRX_ONOFF_MAP)&(1<<i) )
+ {
+ t_childInUse = 0;
+ rm_SetTrxAdminState(i,shuttingDown);
+ rm_ProcTrxAdminStateShuttingDown(i,&t_childInUse);
+ if (t_childInUse) childInUse = 1;
+ }
+ }
+
+ //Check if all existing trxes are in locked state or not
+ if (!childInUse)
+ {
+ //BTS goes to locked state
+ rm_SetBtsAdminState(locked);
+
+ //BTS goes to locked state
+ rm_SetRmOpState(EC_RM_BTS_LOCKED);
+ }
+}
+
+void rm_ProcTrxAdminStateShuttingDown(u8 trx, u8 *inUse)
+{
+ u8 i, j, childInUse, t_childInUse;
+
+
+ PDEBUG__(("INFO@rm_ProcTrxAdminStateShuttingDown: trx=%d\n", trx));
+
+ *inUse = 0;
+
+ //Check if the requested trx existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) )
+ {
+ IDEBUG__(("WARNING@rm_ProcTrxAdminStateShuttingDown: invalid trx=%d\n",
+ trx));
+ return;
+ }
+
+ //Report informational alarm
+ rm_SetRmOpState(rm_TrxAdminShuttingDownAlarmCode[trx]);
+
+ //Mark all active channels as shuttingDown
+ childInUse = 0;
+
+ for (i=0;i<OAMrm_SLOTS_PER_TRX;i++)
+ {
+ t_childInUse = 0;
+ rm_SetTrxSlotAdminState(trx,i,shuttingDown);
+ rm_ProcTrxSlotAdminStateShuttingDown(trx,i,&t_childInUse);
+ if (t_childInUse) childInUse = 1;
+ }
+
+ //If there is any active channel on this trx
+ if (childInUse)
+ {
+ *inUse = 1;
+ //if (!trx)
+ //{
+ // if (OAMrm_CHN_AMSTATE(0,0) != shuttingDown)
+ // {
+ // //Change it to shuttingDown state for consistence
+ // rm_SetTrxSlotAdminState(0,0,shuttingDown);
+ // }
+ //}
+ }else
+ {
+ //Trx goes to locked state
+ rm_SetTrxAdminState(trx, locked);
+
+ //Report informational alarm
+ rm_SetRmOpState(rm_TrxAdminLockedAlarmCode[trx]);
+
+ //Turn off RF transmission
+ rm_SendTuneSynthToTrx(trx,0);
+ }
+}
+
+
+void rm_ProcTrxSlotAdminStateShuttingDown(u8 trx, u8 slot, u8 *inUse)
+{
+ u8 childInUse;
+
+ PDEBUG__(("INFO@rm_ProcTrxSlotAdminStateShuttingDown()\n"));
+
+ *inUse = 0;
+
+ //Check if (trx,slot) existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) ||
+ slot>=OAMrm_SLOTS_PER_TRX )
+ {
+ IDEBUG__(("WARNING@rm_ProcTrxSlotAdminStateShuttingDown:invalid (%d,%d)\n",
+ trx,slot));
+ return;
+ }
+
+ //Report informational alarm
+ rm_SetRmOpState(rm_TrxSlotAdminShuttingDownAlarmCode[trx][slot]);
+
+ //Mark all trx-slot channels in use as shuttingDown
+ childInUse = 0;
+ rm_ShuttingDownAllTrxSlotChans(trx, slot, &childInUse);
+
+ //Check if no TCHF or SDCCH4 channels available
+
+ if (RM_SMCTXT_NULL == rm_PreAllocSmCtxt(RM_PHYCHAN_SDCCH4) )
+ {
+ if (!rm_AllAvailableSdcch4.allocated)
+ {
+ rm_AllAvailableSdcch4.allocated = RM_TRUE;
+ PM_CellMeasurement.allAvailableSDCCHAllocatedTime.start();
+
+ //rm_AllAvailableSdcch4.startTime = tickGet();
+ }
+ }
+
+ if (RM_SMCTXT_NULL == rm_PreAllocSmCtxt(RM_PHYCHAN_TCHF_S) )
+ {
+ if (!rm_AllAvailableTchf.allocated)
+ {
+ rm_AllAvailableTchf.allocated = RM_TRUE;
+ PM_CellMeasurement.allAvailableTCHAllocatedTime.start();
+
+ //rm_AllAvailableTchf.startTime = tickGet();
+ }
+ }
+
+ if (childInUse) *inUse = 1;
+ else
+ {
+ //(trx,slot) goes to locked state
+ rm_SetTrxSlotAdminState(trx, slot,locked);
+
+ //Report informational alarm
+ rm_SetRmOpState(rm_TrxSlotAdminLockedAlarmCode[trx][slot]);
+
+ //Turn off RF transmission if needed
+ //if (!trx && !slot)
+ // rm_SendTuneSynthToTrx(trx,0);
+ }
+
+ if (!trx && !slot)
+ {
+ //Bar this cell to drive out all roaming mobiles in this cell
+ //<TBD>MIB cellBarred indicator will not reflect this barring
+ //if (*inUse)
+ // rm_AmState00 = shuttingDown;
+ //else
+ // rm_AmState00 = locked;
+ //rm_CellBarred = OAMrm_RA_CELL_BARRED_STATE; //Remember MIB val
+ //OAMrm_RA_CELL_BARRED_STATEa = (Boolean)CNI_RIL3_CELL_BARRED_ACCESS;
+ rm_SendSystemInfo2ToBcchTrx(0,2,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo3ToBcchTrx(0,3,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_SendSystemInfo4ToBcchTrx(0,4,CNI_RIL3_CELL_BARRED_ACCESS);
+ rm_VcIsBarred = RM_TRUE;
+ }
+}
+
+
+void rm_SetBtsAdminState(AdministrativeState state)
+{
+ PDEBUG__(("INFO@rm_SetBtsAdminState:state=%d\n",state));
+ OAMrm_BTS_AMSTATE = state;
+ if (STATUS_OK!=
+ oam_setMibIntVar(MODULE_RM,MIB_bts_administrativeState, state) )
+ {
+ EDEBUG__(("ERROR@rm_SetBtsAdminState: OAM setMibIntVar failed, state=%d\n",
+ state));
+ }
+}
+
+void rm_SetTrxAdminState(u8 trx, AdministrativeState state)
+{
+ MibTag tag;
+
+ PDEBUG__(("INFO@rm_SetTrxAdminState:trx=%d, state=%d\n", trx, state));
+
+ //Check if the requested trx existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) )
+ {
+ IDEBUG__(("WARNING@rm_SetTrxAdminState: invalid trx=%d\n", trx));
+ return;
+ }
+
+ OAMrm_TRX_AMSTATE(trx) = state;
+ if (trx==0) tag = MIB_basebandAdministrativeState_0;
+ else tag = MIB_basebandAdministrativeState_1;
+
+ if (STATUS_OK!=oam_setMibIntVar(MODULE_RM, tag, state) )
+ {
+ EDEBUG__(("ERROR@rm_SetTrxAdminState:OAM setMibIntVar failed(%x,%d)\n",
+ trx, state));
+ }
+}
+
+void rm_SetTrxSlotAdminState(u8 trx, u8 slot, AdministrativeState state)
+{
+ MibTag tag;
+
+ PDEBUG__(("INFO@rm_SetTrxSlotAdminState:(%d,%d,%d)\n",trx, slot,state));
+
+ //Check if (trx,slot) existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) ||
+ slot>=OAMrm_SLOTS_PER_TRX )
+ {
+ IDEBUG__(("WARNING@rm_SetTrxSlotAdminState: invalid (%d,%d,%d)\n",
+ trx,slot,state));
+ return;
+ }
+
+ if (trx==0) tag=MIBT_channelAdministrativeState_0;
+ else tag=MIBT_channelAdministrativeState_1;
+
+ OAMrm_CHN_AMSTATEa(trx,slot) = state;
+ if (STATUS_OK!=oam_setTblEntryField(MODULE_RM,tag,slot,state))
+ {
+ EDEBUG__(("ERROR@rm_SetTrxSlotAdminState: OAM setTblEntryField failed (%d,%d,%d)\n",
+ trx, slot, state));
+ }
+}
+
+void rm_TestPrintAmStateData(void)
+{
+ int i;
+
+ printf("OAMrm_RA_CELL_BARRED_STATE:%d,%d\n",
+ OAMrm_RA_CELL_BARRED_STATE,
+ (((T_CNI_RIL3_CELL_BARRED_ACCESS)(rm_OamData.btsOptionsPackage.cellBarred)))
+ );
+
+ printf("OAMrm_RA_CELL_BARRED_STATEa:%d,%d\n",
+ OAMrm_RA_CELL_BARRED_STATE,
+ rm_OamData.btsOptionsPackage.cellBarred
+ );
+
+ printf("OAMrm_BTS_AMSTATE(%d,%d),OAMrm_TRX0_AMSTATE(%d,%d),OAMrm_CHN00_AMSTATE(%d,%d)\n",
+ OAMrm_BTS_AMSTATE,rm_OamData.btsBasicPackage.bts_administrativeState,
+ OAMrm_TRX_AMSTATE(0),rm_OamData.transceiverPackage[0].basebandAdministrativeState,
+ OAMrm_CHN_AMSTATE(0,0), ((AdministrativeState)(((ChannelEntry*)
+ (rm_OamData.transceiverPackage[0].channelTable))[0].channelAdministrativeState))
+ );
+
+ for (i=0;i<OAMrm_MAX_TCHFS;i++)
+ {
+ printf("%dth TCH(%d,%d): phyState %d, amState %d, MSmState %d, ASmState %d\n",
+ i,
+ rm_PhyChanTchf[i].trxNo,
+ rm_PhyChanTchf[i].slotNo,
+ rm_PhyChanTchf[i].state,
+ rm_PhyChanTchf[i].amState,
+ rm_PhyChanTchf[i].pMSmCtxt->state,
+ rm_PhyChanTchf[i].pASmCtxt->state
+ );
+ }
+
+ printf("PCH(%d,%d): phyState %d, amState %d\n",
+ rm_PhyChanBCcch[RM_PCH_IDX].trxNo,
+ rm_PhyChanBCcch[RM_PCH_IDX].slotNo,
+ rm_PhyChanBCcch[RM_PCH_IDX].state,
+ rm_PhyChanBCcch[RM_PCH_IDX].amState
+ );
+
+ for (i=0;i<OAMrm_MAX_SDCCH4S;i++)
+ {
+ printf("%dth SDCCH4(%d,%d): phyState %d, amState %d, MSmState %d, ASmState %d\n",
+ i,
+ rm_PhyChanSdcch4[i].trxNo,
+ rm_PhyChanSdcch4[i].slotNo,
+ rm_PhyChanSdcch4[i].state,
+ rm_PhyChanSdcch4[i].amState,
+ rm_PhyChanSdcch4[i].pMSmCtxt->state,
+ rm_PhyChanSdcch4[i].pASmCtxt->state
+ );
+ }
+}
+
+void rm_SetTrxSlotOpState(u8 trx, u8 slot, EnableDisable state)
+{
+ MibTag tag;
+
+ PDEBUG__(("INFO@rm_SetTrxSlotOpState:(%d,%d,%d)\n",trx, slot,state));
+
+ //Check if (trx,slot) existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) ||
+ slot>=OAMrm_SLOTS_PER_TRX )
+ {
+ IDEBUG__(("WARNING@rm_SetTrxSlotOpState: invalid (%d,%d,%d)\n",
+ trx,slot,state));
+ return;
+ }
+
+ if (trx==0) tag=MIBT_channelOperationalState_0;
+ else tag=MIBT_channelOperationalState_1;
+
+ OAMrm_CHN_OPSTATEa(trx,slot) = state;
+
+ if (STATUS_OK!=oam_setTblEntryField(MODULE_RM,tag,slot,state))
+ {
+ EDEBUG__(("ERROR@rm_SetTrxSlotOpState: OAM setTblEntryField failed (%d,%d,%d)\n",
+ trx, slot, state));
+ }
+}
+
+
+//GP2
+#endif //#if 0
+
+void rm_ProcGrrMsgs(void)
+{
+ PDEBUG__(("ENTER@rm_ProcGrrMsgs()....\n"));
+
+ if (!rm_ValidateGrrMsgs()) return;
+
+ switch(rm_pItcRxGrrMsg->message_type)
+ {
+ case GRR_CB_FEATURE_CONTROL:
+ rm_ProcCbSettingChange();
+ break;
+
+ case GRR_TRX_SLOT_CHANCOMB:
+ rm_ProcTrxSlotCombChange();
+ break;
+
+ case GRR_TRX_SLOT_LOCK_REQ:
+ rm_ProcTrxSlotLockReq();
+ break;
+
+ case GRR_TRX_SLOT_SHUTDOWN_REQ:
+ rm_ProcTrxSlotShutdownReq();
+ break;
+ }
+}
+
+void rm_ProcCbSettingChange(void)
+{
+ PDEBUG__(("ENTER@rm_ProcCbSettingChange: setting(%d)\n", rm_pItcRxGrrMsg->feat_ctrl));
+
+ //CB feature setting changed
+ OAMrm_CBCH_OPSTATE = rm_pItcRxGrrMsg->feat_ctrl;
+ switch(OAMrm_CBCH_OPSTATE)
+ {
+ case 0: //Disable CBCH channel
+ if (!rm_ChanCbchActive)
+ PDEBUG__(("INFO@rm_OamProcResourceConfigData: rel CBCH but it's not ON\n"));
+
+ rm_ChanCbchActive = false;
+ rm_SendRfChanRelease(rm_pCbchChan);
+ break;
+
+ case 1: //Enable CBCH Channel
+ if (rm_ChanCbchActive)
+ PDEBUG__(("INFO@rm_OamProcResourceConfigData: turn on a already on cbch\n"));
+
+ rm_ChanCbchActive = false;
+ if ( (rm_pCbchChan->usable == RM_PHYCHAN_UNUSABLE) ||
+ (OAMrm_CHN_OPSTATE(rm_pCbchChan->trxNo, rm_pCbchChan->slotNo)==opStateDisabled) )
+ {
+ IDEBUG__(("WARNIG@rm_OamProcResourceConfigData: CBCH usable(%d) trx(%d) slot(%d) amState(%d)\n",
+ rm_pCbchChan->usable, rm_pCbchChan->trxNo, rm_pCbchChan->slotNo,
+ OAMrm_CHN_AMSTATE(rm_pCbchChan->trxNo, rm_pCbchChan->slotNo) ));
+ } else
+ {
+ //block any SDCCH attempt also activate CBCH
+ rm_pCbchChan->usable = RM_PHYCHAN_USABLE;
+ if (rm_pCbchChan->state == RM_PHYCHAN_FREE)
+ {
+ rm_pCbchChan->usable = RM_PHYCHAN_CBCH_USABLE;
+ if ( (rm_pCbchChan->pMSmCtxt->state != RM_S1RM_RUNNING) ||
+ (rm_pCbchChan->pASmCtxt->state != RM_S1RM_RUNNING) )
+ {
+ IDEBUG__(("WARNING@rm_OamProcResourceConfigData:invalid chan state(%d,%d,%d)\n",
+ rm_pCbchChan,rm_pCbchChan->pMSmCtxt->state,
+ rm_pCbchChan->pASmCtxt->state));
+ rm_pCbchChan->pMSmCtxt->state = RM_S1RM_RUNNING;
+ rm_pCbchChan->pASmCtxt->state = RM_S1RM_RUNNING;
+ }
+ rm_ActivateCbchChan();
+ }
+ }
+ break;
+ default:
+ IDEBUG__(("WARNING@rm_OamProcResourceConfigData: invalid cbchOpState=%d\n",
+ rm_pItcRxGrrMsg->feat_ctrl));
+ return;
+ }
+}
+
+bool rm_ValidateGrrMsgs(void)
+{
+ unsigned char trx, slot, ret;
+
+ ret=true;
+
+ switch(rm_pItcRxGrrMsg->message_type)
+ {
+ case GRR_CB_FEATURE_CONTROL:
+ case GRR_TRX_SLOT_LOCK_REQ:
+ case GRR_TRX_SLOT_SHUTDOWN_REQ:
+ break;
+
+ case GRR_TRX_SLOT_CHANCOMB:
+ if ((!rm_pItcRxGrrMsg->trx)&&(!rm_pItcRxGrrMsg->slot))
+ {
+ IDEBUG__(("WARNING@rm_ValidateGrrMsgs: changed to chanComb(%d) for trx0 slot0\n",
+ rm_pItcRxGrrMsg->chan_comb));
+ printf("WARNING@rm_ValidateGrrMsgs: changed to chanComb(%d) for trx0 slot0\n",
+ rm_pItcRxGrrMsg->chan_comb);
+ ret=false;
+ }
+ break;
+
+ default:
+ ret=false;
+ break;
+ }
+
+ return ret;
+}
+
+void rm_ProcTrxSlotCombChange(void)
+{
+ unsigned char trx, slot, comb, i;
+
+ trx = rm_pItcRxGrrMsg->trx; slot = rm_pItcRxGrrMsg->slot;
+ comb = rm_pItcRxGrrMsg->chan_comb;
+
+ PDEBUG__(("ENTER@rm_ProcTrxSlotCombChange: trx(%d) slot(%d) comb(%d)\n", trx,slot,comb));
+
+ if ( (trx>=OAMrm_MAX_TRXS) || (slot>=8) ) return;
+
+ for (i=0;i<OAMrm_MAX_TCHFS;i++)
+ {
+ if ( (trx==rm_PhyChanTchf[i].trxNo) &&
+ (slot==rm_PhyChanTchf[i].slotNo) )
+ {
+
+ switch(comb)
+ {
+ case OAMrm_SLOT_COMB_1:
+ if ( (rm_PhyChanTchf[i].usable==RM_PHYCHAN_UNUSABLE) &&
+ (OAMrm_CHN_AMSTATE(trx,slot)!=locked) &&
+ (OAMrm_CHN_OPSTATE(trx,slot)!=opStateDisabled) )
+ {
+ ++rm_NoOfUsableTchf;
+ PM_CellMeasurement.nbrOfAvailableTCHs.setValue(rm_NoOfUsableTchf);
+ }
+ rm_PhyChanTchf[i].usable = RM_PHYCHAN_USABLE;
+
+ break;
+
+ //GPRS
+ case OAMrm_SLOT_COMB_13:
+ if ( (rm_PhyChanTchf[i].usable==RM_PHYCHAN_USABLE) &&
+ (OAMrm_CHN_AMSTATE(trx,slot)!=locked) &&
+ (OAMrm_CHN_OPSTATE(trx,slot)!=opStateDisabled) )
+ {
+ if (--rm_NoOfUsableTchf >= 0)
+ PM_CellMeasurement.nbrOfAvailableTCHs.setValue(rm_NoOfUsableTchf);
+ else
+ rm_NoOfUsableTchf = 0;
+ }
+ rm_PhyChanTchf[i].usable = RM_PHYCHAN_UNUSABLE;
+
+ break;
+
+ default:
+ IDEBUG__(("WARNING@rm_ProcTrxSlotCombChange: unexpected comb(%d) for trx(%d) slot(%d)\n",
+ comb, trx, slot));
+ break;
+ }
+ break;
+ }
+ }
+
+ if (i>=OAMrm_MAX_TCHFS)
+ {
+ IDEBUG__(("WARNING@rm_ProcTrxSlotCombChange: trx(%d) slot(%d) not in tchf chan table\n",
+ trx, slot));
+ }
+
+}
+
+void rm_ProcTrxSlotLockReq(void)
+{
+ u8 trx, slot, i;
+
+ PDEBUG__(("ENTER@rm_ProcTrxSlotLockReq()...\n"));
+
+ PDEBUG__(("INFO@rm_ProcTrxSlotAdminStateLocked:(%d,%d)\n",trx, slot));
+
+ trx = rm_pItcRxGrrMsg->trx; slot = rm_pItcRxGrrMsg->slot;
+
+ //Check if (trx,slot) existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) ||
+ (slot>=OAMrm_SLOTS_PER_TRX) )
+ {
+ IDEBUG__(("WARNING@rm_ProcTrxSlotAdminStateLocked: invalid (%d,%d)\n",
+ trx,slot));
+ return;
+ }
+
+ //Lock channs
+ if (trx||slot)
+ {
+ //Search for the time slot
+ for (i=0;i<OAMrm_MAX_TCHFS;i++)
+ {
+ if ( (trx==rm_PhyChanTchf[i].trxNo) &&
+ (slot==rm_PhyChanTchf[i].slotNo) )
+ {
+ if ( (rm_PhyChanTchf[i].usable==RM_PHYCHAN_USABLE) &&
+ (rm_PhyChanTchf[i].amState!=locked) )
+ {
+ if (--rm_NoOfUsableTchf<0) rm_NoOfUsableTchf = 0;
+ PM_CellMeasurement.nbrOfAvailableTCHs.setValue(rm_NoOfUsableTchf);
+ }
+
+ rm_PhyChanTchf[i].amState = locked;
+ rm_LockedOneChan(&rm_PhyChanTchf[i]);
+ }
+ }
+ } else
+ {
+ //trx=slot=0, beacon time slot
+
+ //Update PCH channel's amState
+ rm_PhyChanBCcch[RM_PCH_IDX].amState = locked;
+
+ //Update SDCCH4 channels' amState
+ for (i=0;i<OAMrm_MAX_SDCCH4S;i++)
+ {
+ if ( (rm_PhyChanSdcch4[i].usable==RM_PHYCHAN_USABLE) &&
+ (rm_PhyChanSdcch4[i].amState!=locked) )
+ {
+ if (--rm_nbrOfAvailableSDCCHs < 0) rm_nbrOfAvailableSDCCHs = 0;
+ PM_CellMeasurement.nbrOfAvailableSDCCHs.setValue(rm_nbrOfAvailableSDCCHs);
+ }
+ rm_PhyChanSdcch4[i].amState = locked;
+ rm_LockedOneChan(&rm_PhyChanSdcch4[i]);
+ }
+ }
+}
+
+void rm_ProcTrxSlotShutdownReq(void)
+{
+ u8 childInUse,trx,slot;
+
+ PDEBUG__(("INFO@rm_ProcTrxSlotAdminStateShuttingDown()\n"));
+
+ trx = rm_pItcRxGrrMsg->trx;
+ slot = rm_pItcRxGrrMsg->slot;
+
+ //Check if (trx,slot) existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) ||
+ slot>=OAMrm_SLOTS_PER_TRX )
+ {
+ IDEBUG__(("WARNING@rm_ProcTrxSlotAdminStateShuttingDown:invalid (%d,%d)\n",
+ trx,slot));
+ return;
+ }
+
+ //Mark all trx-slot channels in use as shuttingDown
+ childInUse = 0;
+ rm_ShuttingDownAllTrxSlotChans(trx, slot, &childInUse);
+
+ if (!childInUse)
+ grr_SendTrxSlotShutdownAck(MODULE_RM, grr_MsgQId, trx, slot);
+}
+
+void rm_LockedAllTrxSlotChans(u8 trx, u8 slot)
+{
+ u8 i;
+
+ //Check if (trx,slot) existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) ||
+ slot>=OAMrm_SLOTS_PER_TRX )
+ {
+ IDEBUG__(("WARNING@rm_LockedAllTrxSlotChans: invalid (%d,%d)\n",
+ trx,slot));
+ return;
+ }
+
+
+ if (trx || slot)
+ {
+ //scan through tchf table to excerise the adminState change
+ for (i=0;i<OAMrm_MAX_TCHFS;i++)
+ {
+ if (trx==rm_PhyChanTchf[i].trxNo &&
+ slot==rm_PhyChanTchf[i].slotNo)
+ {
+ if ( rm_PhyChanTchf[i].usable == RM_PHYCHAN_USABLE &&
+ rm_PhyChanTchf[i].amState != locked )
+ {
+ if (--rm_NoOfUsableTchf >= 0)
+ PM_CellMeasurement.nbrOfAvailableTCHs.setValue(rm_NoOfUsableTchf);
+ else
+ rm_NoOfUsableTchf = 0;
+ }
+
+ rm_PhyChanTchf[i].amState = locked;
+ rm_LockedOneChan(&rm_PhyChanTchf[i]);
+ }
+ }
+
+ } else
+ {
+ //trx==0&&slot==0; the TS is carrying BCCH and CCCH channels
+
+ //Update PCH channel's amState
+ rm_PhyChanBCcch[RM_PCH_IDX].amState = locked;
+
+ //Update SDCCH4 channels' amState
+ for (i=0;i<OAMrm_MAX_SDCCH4S;i++)
+ {
+ if ( rm_PhyChanSdcch4[i].usable == RM_PHYCHAN_USABLE &&
+ rm_PhyChanSdcch4[i].amState != locked )
+ {
+ if (--rm_nbrOfAvailableSDCCHs >= 0)
+ PM_CellMeasurement.nbrOfAvailableSDCCHs.setValue(rm_nbrOfAvailableSDCCHs);
+ else
+ rm_nbrOfAvailableSDCCHs = 0;
+ }
+
+ rm_PhyChanSdcch4[i].amState = locked;
+ rm_LockedOneChan(&rm_PhyChanSdcch4[i]);
+ }
+ }
+}
+
+void rm_LockedOneChan(rm_PhyChanDesc_t *pChan)
+{
+ rm_SmCtxt_t *pMSmCtxt, *pASmCtxt;
+
+ pMSmCtxt = pChan->pMSmCtxt;
+ pASmCtxt = pChan->pASmCtxt;
+
+ //Deactivate this channel if needed
+ if (pMSmCtxt->state != RM_S1RM_RUNNING)
+ {
+ rm_SendDlRelReq(pMSmCtxt->mOId,RM_SAPI0,RM_LOCAL_RELEASE);
+ pMSmCtxt->relCause = CNI_RIL3_CAUSE_RESOURCES_UNAVAILABLE_UNSPECIFIED;
+ rm_SendRrRelInd(RM_LOCKED,pMSmCtxt->mEntryId);
+
+ //SMS-SAPI3-Begin
+
+ //if (pMSmCtxt->sapi != RM_SAPI0)
+ // rm_SendDlRelReq(pMSmCtxt->mOId, pMSmCtxt->sapi,
+ // RM_LOCAL_RELEASE);
+
+ rm_SendDlRelReq(pMSmCtxt->mOId, RM_SAPI3, RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(pMSmCtxt->aOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+ //SMS-SAPI3-End
+ }
+
+ if (pASmCtxt->state != RM_S1RM_RUNNING)
+ {
+ //SMS-SAPI3-Begin
+ rm_SendDlRelReq(pASmCtxt->aOId,RM_SAPI3,RM_LOCAL_RELEASE);
+
+ //if (pASmCtxt->sapi != RM_SAPI0)
+ // rm_SendDlRelReq(pASmCtxt->aOId, pASmCtxt->sapi,
+ // RM_LOCAL_RELEASE);
+ //rm_SendRrRelInd(RM_LOCKED, pASmCtxt->aEntryId);
+ //SMS-SAPI3-End
+ }
+
+ pMSmCtxt->state = RM_S1RM_RUNNING;
+ pASmCtxt->state = RM_S1RM_RUNNING;
+ pChan->state = RM_PHYCHAN_FREE;
+ rm_SendRfChanRelease(pChan);
+}
+
+void rm_ShuttingDownAllTrxSlotChans(u8 trx, u8 slot, u8 *inUse)
+{
+ u8 i;
+
+ PDEBUG__(("INFO@rm_ShuttingDownAllTrxSlotChans:(%d,%d,%d)\n",
+ trx,slot,*inUse));
+
+ *inUse = 0;
+
+ //Check if (trx,slot) existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) ||
+ slot>=OAMrm_SLOTS_PER_TRX )
+ {
+ IDEBUG__(("WARNING@rm_ShuttingDownAllTrxSlotChans: invalid (%d,%d)\n",
+ trx,slot));
+ return;
+ }
+
+ //Scan through in terms of channel combination right now only 2
+ if (trx || slot)
+ {
+ //scan through tchf table to excerise the adminState change
+ for (i=0;i<OAMrm_MAX_TCHFS;i++)
+ {
+ if (trx==rm_PhyChanTchf[i].trxNo &&
+ slot==rm_PhyChanTchf[i].slotNo)
+ {
+ if (rm_PhyChanTchf[i].state != RM_PHYCHAN_FREE)
+ {
+ //This time slot is now in use for a call
+ rm_PhyChanTchf[i].amState = shuttingDown;
+ (*inUse)++;
+ } else
+ {
+ if ( (rm_PhyChanTchf[i].usable==RM_PHYCHAN_USABLE) &&
+ (OAMrm_CHN_AMSTATE(trx,slot)!=locked) &&
+ (OAMrm_CHN_OPSTATE(trx,slot)!=opStateDisabled) )
+
+ {
+ if (--rm_NoOfUsableTchf < 0) rm_NoOfUsableTchf = 0;
+ PM_CellMeasurement.nbrOfAvailableTCHs.setValue(rm_NoOfUsableTchf);
+ }
+
+ rm_PhyChanTchf[i].pMSmCtxt->state = RM_S1RM_RUNNING;
+ rm_PhyChanTchf[i].pASmCtxt->state = RM_S1RM_RUNNING;
+ rm_PhyChanTchf[i].amState = locked;
+ }
+ }
+ }
+
+ //Sanitory check
+ if ( (*inUse) > 1)
+ {
+ IDEBUG__(("WARNING@ rm_ShuttingDownAllTrxSlotChans:(%d,%d,used %d)\n",
+ trx, slot, *inUse));
+ }
+ } else
+ {
+ //trx=slot=0, beacon time slot
+
+ //Update PCH channel's amState
+ rm_PhyChanBCcch[RM_PCH_IDX].amState = locked; //block paging
+
+ //Update SDCCH4 channels' amState
+ for (i=0;i<OAMrm_MAX_SDCCH4S;i++)
+ {
+ if (rm_PhyChanSdcch4[i].state != RM_PHYCHAN_FREE)
+ {
+ //This time slot is currently use for call
+ rm_PhyChanSdcch4[i].amState = shuttingDown;
+ (*inUse)++;
+ } else
+ {
+ rm_PhyChanSdcch4[i].pMSmCtxt->state = RM_S1RM_RUNNING;
+ rm_PhyChanSdcch4[i].pASmCtxt->state = RM_S1RM_RUNNING;
+ rm_PhyChanSdcch4[i].amState = locked;
+
+ if (--rm_nbrOfAvailableSDCCHs<0) rm_nbrOfAvailableSDCCHs=0;
+ PM_CellMeasurement.nbrOfAvailableSDCCHs.setValue(rm_nbrOfAvailableSDCCHs);
+ }
+ }
+ }
+}
+
+
+#endif //__RM_OAMREGTRAPVARS_CPP__
+
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_OamSendHoNCellToDsp.cpp b/data/mnet/GP10/Host/rm/Src/rm_OamSendHoNCellToDsp.cpp
new file mode 100644
index 0000000..3cc4474
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_OamSendHoNCellToDsp.cpp
@@ -0,0 +1,119 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_OAMSENDHONCELLTODSP_CPP__
+#define __RM_OAMSENDHONCELLTODSP_CPP__
+
+//GP2
+#if 0
+
+#include <stdio.h>
+#include "rm\rm_head.h"
+
+u8 rm_OamGetTotalAvailableHoNCells(void)
+{
+ u8 i,count;
+ count=0;
+ //PR1223 Begin: add suffix "t" only
+ for (i=0;i<OAMrm_HO_ADJCELL_NO_MAX;i++)
+ if (OAMrm_HO_ADJCELL_ID_t(i)!=OAMrm_HO_ADJCELL_ID_NULL)
+ count++;
+ return count;
+}
+void rm_OamSendHoNCellToDsp(u8 trxNo, u8 nCellIdx, u8 totalNCells)
+{
+ s16 length; /* Length of the message to send to L1 */
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+ s16 tmp;
+
+ if (OAMrm_HO_ADJCELL_ID_t(nCellIdx)==OAMrm_HO_ADJCELL_ID_NULL) return;
+
+ AdjCell_HandoverEntry *entry
+ = (AdjCell_HandoverEntry *) rm_OamData.adjacentCellPackage_t.adjCell_handoverTable;
+
+ // point to the correct index;
+ entry += nCellIdx;
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_OamSendHoNCellToDsp: Entering...\n" ));
+
+
+ /* clear the memory first */
+ memset(&msgToL1, 0, sizeof(rm_ItcTxMsg_t));
+ length = 0;
+
+ /* Encode TRX CONFIGure message */
+ msgToL1.buffer[length++] = (unsigned char ) OAM_MANAGE_MSG; // message discriminator
+ msgToL1.buffer[length++] = (unsigned char ) (OAM_HO_NCELL_CONFIG >>8); // high byte
+ msgToL1.buffer[length++] = (unsigned char ) OAM_HO_NCELL_CONFIG; // message type Low byte 0x5000,
+ msgToL1.buffer[length++] = trxNo;
+ msgToL1.buffer[length++] = nCellIdx;
+ msgToL1.buffer[length++] = totalNCells;
+
+ /* ARFCN */
+ tmp = entry->adjCell_bCCHFrequency;
+
+ msgToL1.buffer[length++] = (unsigned char) (tmp >>8);
+ msgToL1.buffer[length++] = (unsigned char) tmp;
+
+
+
+ /* Base station identity code is generated by three bit of ncc and 3 bit
+ * bit of bcc
+ */
+
+ msgToL1.buffer[length++] = (unsigned char) ((unsigned char) entry->adjCell_ncc << 3 |
+ (unsigned char) entry->adjCell_cid);
+
+ /* Handover margin */
+
+ msgToL1.buffer[length++] = (unsigned char) entry->adjCell_hoMargin;
+
+ /* Maximum Mobile Transmit Power for Neighbour Cell */
+ tmp = entry->adjCell_msTxPwrMaxCell;
+ // msgToL1.buffer[length++] = (unsigned char) (tmp >>8);
+ msgToL1.buffer[length++] = (unsigned char) tmp;
+
+
+
+ /* Minimum Mobile receive Power for Neighbour Cell */
+ tmp = entry->adjCell_rxLevMinCell;
+ // msgToL1.buffer[length++] = (unsigned char) (tmp >>8);
+ msgToL1.buffer[length++] = (unsigned char) tmp;
+
+
+ msgToL1.msgLength = length;
+
+ /* Hex Dump the message if __TDUMP__ defined */
+ TDUMP__((TXMSG__, msgToL1.buffer, length));
+
+ /* Finally send message to DSP */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+} /* rm_OamSendHoNCellToDsp() */
+
+
+/* send Hand over Neighbouring Cell Configuration parameter for all the
+ * available cells of all TRX
+ */
+
+void rm_OamSendHoAllNCellToDsp()
+{
+ int i, j;
+ u8 ncellNo;
+ ncellNo=rm_OamGetTotalAvailableHoNCells();
+ for (i = 0; i < TOTAL_AVAILABLE_TRX; i++)
+ for (j=0; j <TOTAL_AVAILABLE_CELL; j++)
+ rm_OamSendHoNCellToDsp(i,j,ncellNo);
+}
+
+//GP2
+#endif //#if 0
+
+#endif /* __RM_OAMSENDHONCELLTODSP_CPP__*/
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_OamSendHoSCellToDsp.cpp b/data/mnet/GP10/Host/rm/Src/rm_OamSendHoSCellToDsp.cpp
new file mode 100644
index 0000000..0495651
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_OamSendHoSCellToDsp.cpp
@@ -0,0 +1,137 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_OAMSENDHOSCELLTODSP_CPP__
+#define __RM_OAMSENDHOSCELLTODSP_CPP__
+
+//GP2
+#if 0
+
+#include <stdio.h>
+#include "rm\rm_head.h"
+
+void rm_OamSendHoSCellToDsp(s8 trxNo)
+{
+ s16 length; /* Length of the message to send to L1 */
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+ s16 tmp;
+ HandoverControlPackage_t *hoPktPtr = &rm_OamData.handoverControlPackage;
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_OamSendHoSCellToDsp.cpp: Entering...\n" ));
+
+
+ /* clear the memory first */
+ memset(&msgToL1, 0, sizeof(rm_ItcTxMsg_t));
+ length = 0;
+
+ /* Encode TRX CONFIGure message */
+ msgToL1.buffer[length++] = (unsigned char ) OAM_MANAGE_MSG; // message discriminator
+ msgToL1.buffer[length++] = (unsigned char ) (OAM_HO_SCELL_CONFIG >>8); // high byte
+ msgToL1.buffer[length++] = (unsigned char ) OAM_HO_SCELL_CONFIG; // message type Low byte
+ msgToL1.buffer[length++] = trxNo;
+
+
+ /* RXLEV threshold on the uplink for handover process to commence. Typical
+ * range -103 to -73 dBm.
+ */
+
+ tmp = hoPktPtr->hoThresholdLevParam->rxLevelUL;
+ // msgToL1.buffer[length++] = (unsigned char) (tmp >>8);
+ msgToL1.buffer[length++] = (unsigned char) tmp;
+
+
+
+ /* RXLEV threshold on the downlink for handover process to commence.
+ * Typical range -103 to -73 dBm.
+ */
+
+ tmp = hoPktPtr->hoThresholdLevParam->rxLevelDL;
+ // msgToL1.buffer[length++] = (unsigned char) (tmp >>8); //0x5D
+ msgToL1.buffer[length++] = (unsigned char) tmp;
+
+ /* The number of averages (out of total averages) that have to be upper/lower than
+ * the threshold, before making a handover decision (P5).
+ */
+
+ msgToL1.buffer[length++] = hoPktPtr->hoThresholdLevParam->px;
+
+
+ /* The number of averages that have to be taken into account, when making a
+ * handover decision (N5).
+ */
+
+ msgToL1.buffer[length++] = hoPktPtr->hoThresholdLevParam->nx;
+
+ /****************** Quality Parameters **************************/
+
+ /* RXLEV threshold on the uplink for handover process to commence. Typical
+ * range -103 to -73 dBm.
+ */
+
+ tmp = hoPktPtr->hoThresholdQualParam->rxQualUL;
+ // msgToL1.buffer[length++] = (unsigned char) (tmp >>8);
+ msgToL1.buffer[length++] = (unsigned char) tmp;
+
+
+
+ /* RXLEV threshold on the downlink for handover process to commence.
+ * Typical range -103 to -73 dBm.
+ */
+
+ tmp = hoPktPtr->hoThresholdQualParam->rxQualDL;
+ // msgToL1.buffer[length++] = (unsigned char) (tmp >>8); //0x5D
+ msgToL1.buffer[length++] = (unsigned char) tmp;
+
+ /* The number of averages (out of total averages) that have to be upper/lower than
+ * the threshold, before making a handover decision (P5).
+ */
+
+ msgToL1.buffer[length++] = (unsigned char) hoPktPtr->hoThresholdQualParam->px;
+
+
+ /* The number of averages that have to be taken into account, when making a
+ * handover decision (N5).
+ */
+
+ msgToL1.buffer[length++] = (unsigned char) hoPktPtr->hoThresholdQualParam->nx;
+
+
+ /* Handover Margin Default
+ */
+
+ msgToL1.buffer[length++] = (unsigned char) hoPktPtr->hoMarginDef;
+
+ /* The following three parameters are added on Aug 6, 1999 -- Bhawani */
+
+ /* Maximum Mobil Transmit Power (Default)
+ */
+
+ msgToL1.buffer[length++] = (unsigned char) hoPktPtr->mxTxPwrMaxCellDef;
+
+
+ /* Minimum Mobile Receive Power (Default)
+ */
+
+ msgToL1.buffer[length++] = (unsigned char) hoPktPtr->rxLevMinCellDef;
+
+ msgToL1.msgLength = length;
+
+ /* Hex Dump the message if __TDUMP__ defined */
+// TDUMP__((TXMSG__, msgToL1.buffer, length));
+
+ /* Finally send message to DSP */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+} /* rm_OamSendHoSCellToDsp() */
+
+//GP2
+#endif //#if 0
+
+#endif /* __RM_OAMSENDHOSCELLTODSP_CPP__*/
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_OamSendPcToDsp.cpp b/data/mnet/GP10/Host/rm/Src/rm_OamSendPcToDsp.cpp
new file mode 100644
index 0000000..f997de8
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_OamSendPcToDsp.cpp
@@ -0,0 +1,80 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_OAMSENDPCTODSP_CPP__
+#define __RM_OAMSENDPCTODSP_CPP__
+
+//GP2
+#if 0
+
+#include <stdio.h>
+#include "rm\rm_head.h"
+
+void rm_OamSendPcToDsp(s8 trxNo)
+{
+ s16 length; /* Length of the message to send to L1 */
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+ s16 tmp;
+ PowerControlPackage_t *pcPktPtr = &rm_OamData.powerControlPackage;
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_OamSendPcToDsp: Entering...\n" ));
+
+
+ /* clear the memory first */
+ memset(&msgToL1, 0, sizeof(rm_ItcTxMsg_t));
+ length = 0;
+
+ /* Encode TRX CONFIGure message */
+ msgToL1.buffer[length++] = (unsigned char ) OAM_MANAGE_MSG; // message discriminator
+ msgToL1.buffer[length++] = (unsigned char ) (OAM_DPC_CONFIG >>8); // high byte
+ msgToL1.buffer[length++] = (unsigned char ) OAM_DPC_CONFIG; // message type Low byte 0x5000,
+ msgToL1.buffer[length++] = trxNo; //0x00
+
+
+ /*
+ ** the size for the signal sample buffer used for averaging power
+ ** level[1-32]. one sample at every 480 ms (1 frame)
+ */
+
+ /* Averaging Buffer Size For Signal Strength (Hreqave) */
+ msgToL1.buffer[length++] = pcPktPtr->pcAveragingLev->hreqave;
+
+ /*
+ ** the size for the signal sample buffer used for averaging
+ ** quality samples [1-32]. one sample at every 480 ms (1 frame)
+ */
+
+ /* Averaging Buffer Size For Signal Quality (Hreqave) */
+ msgToL1.buffer[length++] = pcPktPtr->pcAveragingQual->hreqave;
+
+
+ /*
+ ** Threshold for activating uplink dynamic power control
+ ** Note: the following variable is reused
+ */
+ /*
+ * Need to Verify Which Value to USE, Using current One pass compiling
+ */
+ msgToL1.buffer[length++] = pcPktPtr->pcLowerThresholdLevParam->rxLevelUL;
+
+ msgToL1.msgLength = length;
+
+ /* Hex Dump the message if __TDUMP__ defined */
+ TDUMP__((TXMSG__, msgToL1.buffer, length));
+
+ /* Finally send message to DSP */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+} /* rm_OamSendPcToDsp() */
+
+//GP2
+#endif //#if 0
+
+#endif /* __RM_OAMSENDPCTODSP_CPP__*/
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_OamSendPwrRedStepToDsp.cpp b/data/mnet/GP10/Host/rm/Src/rm_OamSendPwrRedStepToDsp.cpp
new file mode 100644
index 0000000..c0cd062
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_OamSendPwrRedStepToDsp.cpp
@@ -0,0 +1,70 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_OAMSENDPWRREDSTEPTODSP_CPP__
+#define __RM_OAMSENDPWRREDSTEPTODSP_CPP__
+
+//GP2
+#if 0
+
+#include <stdio.h>
+#include "rm\rm_head.h"
+
+#define OAM_TXPWR_MAX_RDCT_CONFIG 0x5006
+#define OAM_TXPWR_MAX_RDCT_CONFIG_ACK 0x5007
+
+void rm_OamSendPwrRedStepToDsp(u8 trxNo)
+{
+ s16 length; /* Length of the message to send to L1 */
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+ static char fname[] = "rm_OamSendPwrRedStepToDsp";
+
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-%s Entering...\n", fname ));
+
+
+ /* clear the memory first */
+ memset(&msgToL1, 0, sizeof(rm_ItcTxMsg_t));
+ length = 0;
+
+ /* Encode TRX CONFIGure message */
+ msgToL1.buffer[length++] = (unsigned char ) OAM_MANAGE_MSG; // message discriminator
+ msgToL1.buffer[length++] = (unsigned char ) (OAM_TXPWR_MAX_RDCT_CONFIG >>8); // high byte
+ msgToL1.buffer[length++] = (unsigned char ) OAM_TXPWR_MAX_RDCT_CONFIG; // message type Low byte
+ msgToL1.buffer[length++] = trxNo;
+
+
+
+ /* Transmit Power Maximum Reduction setps
+ */
+ if (trxNo == 0 || trxNo == 1)
+ {
+ msgToL1.buffer[length++] = (unsigned char) rm_OamData.radioCarrierPackage[OAMrm_TRX_RC(trxNo)].txPwrMaxReduction;
+ } else {
+ EDEBUG__(("%s:Invalid TRX number passed (%d)\n", fname, trxNo));
+ return;
+ }
+
+
+
+ msgToL1.msgLength = length;
+
+ /* Hex Dump the message if __TDUMP__ defined */
+ // TDUMP__((TXMSG__, msgToL1.buffer, length));
+
+ /* Finally send message to DSP */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+} /* rm_OamSendHoSCellToDsp() */
+
+//GP2
+#endif //#if 0
+
+#endif /* __RM_OAMSENDPWRREDSTEPTODSP_CPP__*/
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_PopulateSI2.cpp b/data/mnet/GP10/Host/rm/Src/rm_PopulateSI2.cpp
new file mode 100644
index 0000000..28a48ac
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_PopulateSI2.cpp
@@ -0,0 +1,60 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_POPULATESI2_CPP__
+#define __RM_POPULATESI2_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_PopulateSI2(T_CNI_RIL3_CELL_BARRED_ACCESS barState)
+{
+ u8 i,idx;
+
+ RDEBUG__(("ENTER-rm_PopulateSI2\n"));
+
+ //ZAP rm_UmSI2 to have a good clean-up
+ memset(&rm_UmSI2, 0, sizeof(rm_UmSI2_t));
+
+ //HEADER: PD,MT,SI
+ rm_UmSI2.header.protocol_descriminator = RM_PD;
+ rm_UmSI2.header.si_ti = RM_SI;
+ rm_UmSI2.header.message_type = RM_SI2;
+
+ //IE: Bcch Frequency List
+ rm_UmSI2.bcchFreqList.ie_present = RM_TRUE;
+ rm_UmSI2.bcchFreqList.extInd = RM_EXTIND_0;
+ rm_UmSI2.bcchFreqList.baInd = RM_BA_WHOLE;
+ //rm_UmSI2.bcchFreqList.format = RM_FRMT_VARBITMAP;
+ idx=0;
+ for (i=0;i<OAMrm_RESEL_ADJCELL_NO_MAX;i++)
+ {
+ if (OAMrm_RESEL_ADJCELL_ID(i) != OAMrm_RESEL_ADJCELL_ID_NULL)
+ rm_UmSI2.bcchFreqList.arfcn[idx++] = OAMrm_RESEL_ADJCELL_BCCH_ARFCN(i);
+ }
+ rm_UmSI2.bcchFreqList.numRFfreq = idx;
+ rm_UmSI2.bcchFreqList.format = CNI_RIL3_SelectFrequencyListFormat(
+ rm_UmSI2.bcchFreqList.arfcn,idx);
+
+ //IE: Ncc Permitted
+ rm_UmSI2.nccPermitted.ie_present = RM_TRUE;
+ for (i=0;i<OAMrm_NCC_PERMITTED_MAX;i++)
+ rm_UmSI2.nccPermitted.nccPermitted[i] = OAMrm_NCC_PERMITTED(i);
+
+ //IE: Rach Control
+ rm_UmSI2.rachControl.ie_present = RM_TRUE;
+ rm_UmSI2.rachControl.maxRetrans = OAMrm_RA_RETRY_MAX; //3: 7 times
+ rm_UmSI2.rachControl.txInt = OAMrm_RA_TX_INTEGER; //0: wait 3 slots
+ rm_UmSI2.rachControl.cellBarredAccess = barState; //OAMrm_RA_CELL_BARRED_STATE;
+ rm_UmSI2.rachControl.reestablish = OAMrm_RA_REST_ALLOWED_STATE; //1: not allowed
+ rm_UmSI2.rachControl.emergencyCall = OAMrm_RA_EC_ALLOWED_STATE; //1: not allowed
+ for (i=0;i<16;i++)
+ rm_UmSI2.rachControl.accessClass[i]=OAMrm_RA_AC_ALLOWED_STATE(i); //1:not allowed
+
+} //rm_PopulateSI2()
+
+#endif /__RM_POPULATESI2_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_PopulateSI3.cpp b/data/mnet/GP10/Host/rm/Src/rm_PopulateSI3.cpp
new file mode 100644
index 0000000..29069d6
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_PopulateSI3.cpp
@@ -0,0 +1,92 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+
+#ifndef __RM_POPULATESI3_CPP__
+#define __RM_POPULATESI3_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_PopulateSI3(T_CNI_RIL3_CELL_BARRED_ACCESS barState)
+{
+ u8 i;
+
+ RDEBUG__(("ENTER-rm_PopulateSI3\n"));
+
+ //ZAP rm_UmSI3 to have a good clean-up
+ memset(&rm_UmSI3, 0, sizeof(rm_UmSI3_t));
+
+ //HEADER: PD,MT,SI
+ rm_UmSI3.header.protocol_descriminator = RM_PD;
+ rm_UmSI3.header.si_ti = RM_SI;
+ rm_UmSI3.header.message_type = RM_SI3;
+
+ //IE: Cell ID
+ rm_UmSI3.cellId.ie_present = RM_TRUE;
+ rm_UmSI3.cellId.value = OAMrm_CELLID; //0x0001
+
+ //IE: Location Area Identification
+ rm_UmSI3.locationId.ie_present = RM_TRUE;
+ rm_UmSI3.locationId.mcc[0] = OAMrm_MCC(0); //0
+ rm_UmSI3.locationId.mcc[1] = OAMrm_MCC(1); //0
+ rm_UmSI3.locationId.mcc[2] = OAMrm_MCC(2); //1
+ rm_UmSI3.locationId.mnc[0] = OAMrm_MNC(0); //0
+ rm_UmSI3.locationId.mnc[1] = OAMrm_MNC(1); //1
+ rm_UmSI3.locationId.mnc[2] = OAMrm_MNC(2); //1
+ rm_UmSI3.locationId.lac = OAMrm_LAC; //1
+
+ //IE: Control Channel Description
+ rm_UmSI3.controlChannelDescription.ie_present = RM_TRUE;
+ rm_UmSI3.controlChannelDescription.att = OAMrm_ATT_STATE;
+ rm_UmSI3.controlChannelDescription.bsAgBlksRes = OAMrm_BS_AG_BLK_RES;
+ rm_UmSI3.controlChannelDescription.bsPaMfrms = OAMrm_BS_PA_MFRMS;
+ rm_UmSI3.controlChannelDescription.ccchConf = OAMrm_CCCH_CONF;
+ rm_UmSI3.controlChannelDescription.T3212 = OAMrm_T3212;
+
+ //IE: Cell Options on BCCH
+ rm_UmSI3.cellOptions.ie_present = RM_TRUE;
+ rm_UmSI3.cellOptions.channelType = CNI_RIL3_CELL_OPTIONS_BCCH; //1
+ rm_UmSI3.cellOptions.pwrc = CNI_RIL3_PWRC_NOT_SET; //0:no hopping
+ rm_UmSI3.cellOptions.radioLinkTimeout = OAMrm_RADIO_LINK_TIMEOUT; //3
+ rm_UmSI3.cellOptions.bcchDtx = OAMrm_MS_UPLINK_DTX_STATEa; //2
+
+ //IE: Cell Reselection Parameters
+ rm_UmSI3.cellSelectionParam.ie_present = RM_TRUE;
+ rm_UmSI3.cellSelectionParam.cellReselectHysteresis = OAMrm_CELL_RESEL_HYSTERESIS; //2
+ rm_UmSI3.cellSelectionParam.msTxpwrMaxCCH = OAMrm_MS_TX_PWR_MAX_CCH; //0
+ rm_UmSI3.cellSelectionParam.rxlevAccessMin = OAMrm_MS_RELEV_ACCESS_MIN; //6
+ rm_UmSI3.cellSelectionParam.neci = CNI_RIL3_NECI_NOT_SUPPORTED; //0
+ rm_UmSI3.cellSelectionParam.acs = CNI_RIL3_ACS_USE_SI4_RESET_OCTETS; //0
+
+ //IE: Rach Control
+ rm_UmSI3.rachControl.ie_present = RM_TRUE;
+ rm_UmSI3.rachControl.maxRetrans = OAMrm_RA_RETRY_MAX; //3: 7 times
+ rm_UmSI3.rachControl.txInt = OAMrm_RA_TX_INTEGER; //0: wait 3 slots
+ rm_UmSI3.rachControl.cellBarredAccess = barState; //OAMrm_RA_CELL_BARRED_STATE;
+ rm_UmSI3.rachControl.reestablish = OAMrm_RA_REST_ALLOWED_STATE; //1: not allowed
+ rm_UmSI3.rachControl.emergencyCall = OAMrm_RA_EC_ALLOWED_STATE; //1: not allowed
+ for (i=0;i<16;i++)
+ rm_UmSI3.rachControl.accessClass[i]=OAMrm_RA_AC_ALLOWED_STATE(i);//1:not allowed
+
+ //IE: SI3 Rest Octets
+ rm_UmSI3.si3RestOctets.ie_present = RM_TRUE;
+ rm_UmSI3.si3RestOctets.pi = CNI_RIL3_SELECTION_PARAMETER_PRESENT; //1
+ rm_UmSI3.si3RestOctets.cbq = OAMrm_CELL_BAR_QUALIFY; //Cell Bar Qualify
+ rm_UmSI3.si3RestOctets.cellReselectOffset = OAMrm_CELL_RESELECT_OFFSET;
+ rm_UmSI3.si3RestOctets.temporaryOffset = OAMrm_TEMP_OFFEST;
+ rm_UmSI3.si3RestOctets.penaltyTime = OAMrm_PENALTY_TIME; //20s
+ rm_UmSI3.si3RestOctets.poi = CNI_RIL3_POWER_OFFSET_NOT_PRESENTE;
+ rm_UmSI3.si3RestOctets.powerOffset = 0; //Not applicable
+ rm_UmSI3.si3RestOctets.si2ter = CNI_RIL3_SI_2TER_NOT_PRESENT;
+ rm_UmSI3.si3RestOctets.ecsi = CNI_RIL3_EARLY_CLASSMARK_SENDING_FORBIDDEN;
+ rm_UmSI3.si3RestOctets.wi = CNI_RIL3_WHERE_NOT_PRESENT;
+ rm_UmSI3.si3RestOctets.where = 0; //Not applicable
+
+} /* rm_PopulateSI3() */
+
+#endif /* __RM_POPULATESI3_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_PopulateSI4.cpp b/data/mnet/GP10/Host/rm/Src/rm_PopulateSI4.cpp
new file mode 100644
index 0000000..567b505
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_PopulateSI4.cpp
@@ -0,0 +1,89 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+
+#ifndef __RM_POPULATESI4_CPP__
+#define __RM_POPULATESI4_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_PopulateSI4(T_CNI_RIL3_CELL_BARRED_ACCESS barState)
+{
+ u8 i;
+
+ RDEBUG__(("ENTER-rm_PopulateSI4\n"));
+
+ //ZAP rm_UmSI4 to have a good clean-up
+ memset(&rm_UmSI4, 0, sizeof(rm_UmSI4_t));
+
+ //HEADER: PD,MT,SI
+ rm_UmSI4.header.protocol_descriminator = RM_PD;
+ rm_UmSI4.header.si_ti = RM_SI;
+ rm_UmSI4.header.message_type = RM_SI4;
+
+ //IE: Location Area Identification
+ rm_UmSI4.locationId.ie_present = RM_TRUE;
+ rm_UmSI4.locationId.mcc[0] = OAMrm_MCC(0); //0
+ rm_UmSI4.locationId.mcc[1] = OAMrm_MCC(1); //0
+ rm_UmSI4.locationId.mcc[2] = OAMrm_MCC(2); //1
+ rm_UmSI4.locationId.mnc[0] = OAMrm_MNC(0); //0
+ rm_UmSI4.locationId.mnc[1] = OAMrm_MNC(1); //1
+ rm_UmSI4.locationId.mnc[2] = OAMrm_MNC(2); //1
+
+ //printf("==========3-digit MNC[%x%x%x]\n",
+ // rm_UmSI4.locationId.mnc[0],
+ // rm_UmSI4.locationId.mnc[1],
+ // rm_UmSI4.locationId.mnc[2]
+ // );
+
+ rm_UmSI4.locationId.lac = OAMrm_LAC; //1
+
+ //IE: Cell Reselection Parameters
+ rm_UmSI4.cellSelectionParam.ie_present = RM_TRUE;
+ rm_UmSI4.cellSelectionParam.cellReselectHysteresis = OAMrm_CELL_RESEL_HYSTERESIS; //2
+ rm_UmSI4.cellSelectionParam.msTxpwrMaxCCH = OAMrm_MS_TX_PWR_MAX_CCH; //0
+ rm_UmSI4.cellSelectionParam.rxlevAccessMin = OAMrm_MS_RELEV_ACCESS_MIN; //6
+ rm_UmSI4.cellSelectionParam.neci = CNI_RIL3_NECI_NOT_SUPPORTED; //0
+ rm_UmSI4.cellSelectionParam.acs = CNI_RIL3_ACS_USE_SI4_RESET_OCTETS; //0
+
+ //IE: Rach Control
+ rm_UmSI4.rachControl.ie_present = RM_TRUE;
+ rm_UmSI4.rachControl.maxRetrans = OAMrm_RA_RETRY_MAX; //3: 7 times
+ rm_UmSI4.rachControl.txInt = OAMrm_RA_TX_INTEGER; //0: wait 3 slots
+ rm_UmSI4.rachControl.cellBarredAccess = barState; //OAMrm_RA_CELL_BARRED_STATE;
+ rm_UmSI4.rachControl.reestablish = OAMrm_RA_REST_ALLOWED_STATE; //1: not allowed
+ rm_UmSI4.rachControl.emergencyCall = OAMrm_RA_EC_ALLOWED_STATE; //1: not allowed
+ for (i=0;i<16;i++)
+ rm_UmSI4.rachControl.accessClass[i]=OAMrm_RA_AC_ALLOWED_STATE(i);//1:not allowed
+
+ //IE(optional): CBCH channel description
+ if (OAMrm_CBCH_OPSTATE)
+ {
+ rm_UmSI4.cbchChannelDescription.ie_present = RM_TRUE;
+ rm_UmSI4.cbchChannelDescription.hopping = RM_FALSE;
+ rm_UmSI4.cbchChannelDescription.channelType = rm_pCbchChan->chanType;
+ rm_UmSI4.cbchChannelDescription.subChannelNumber = rm_pCbchChan->subChanNumber;
+ rm_UmSI4.cbchChannelDescription.TN = (rm_pCbchChan->chanNumberMSB)&RM_U8_0X07;
+ rm_UmSI4.cbchChannelDescription.TSC = OAMrm_BTS_TSC; //pPhyChan->TSC;
+ rm_UmSI4.cbchChannelDescription.arfcn = OAMrm_ARFCN(rm_pCbchChan->trxNumber);
+ }
+
+ //IE: SI4 Rest Octets
+ rm_UmSI4.si4RestOctets.ie_present = RM_TRUE;
+ rm_UmSI4.si4RestOctets.pi = CNI_RIL3_SELECTION_PARAMETER_PRESENT; //1
+ rm_UmSI4.si4RestOctets.cbq = OAMrm_CELL_BAR_QUALIFY; //default 0
+ rm_UmSI4.si4RestOctets.cellReselectOffset = OAMrm_CELL_RESELECT_OFFSET;
+ rm_UmSI4.si4RestOctets.temporaryOffset = OAMrm_TEMP_OFFEST;
+ rm_UmSI4.si4RestOctets.penaltyTime = OAMrm_PENALTY_TIME; //20s
+ rm_UmSI4.si4RestOctets.poi = CNI_RIL3_POWER_OFFSET_NOT_PRESENTE;
+ rm_UmSI4.si4RestOctets.powerOffset = 0; //Not applicable
+
+
+} /* rm_PopulateSI4() */
+
+#endif /* __RM_POPULATESI4_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_PopulateSI5.cpp b/data/mnet/GP10/Host/rm/Src/rm_PopulateSI5.cpp
new file mode 100644
index 0000000..c90603c
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_PopulateSI5.cpp
@@ -0,0 +1,46 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_POPULATESI5_CPP__
+#define __RM_POPULATESI5_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_PopulateSI5(void)
+{
+ u8 idx,i;
+
+ RDEBUG__(("ENTER-rm_PopulateSI5\n"));
+
+ //ZAP rm_UmSI5 to have a good clean-up
+ memset(&rm_UmSI5, 0, sizeof(rm_UmSI5_t));
+
+ //HEADER: PD,MT,SI */
+ rm_UmSI5.header.protocol_descriminator = RM_PD;
+ rm_UmSI5.header.si_ti = RM_SI;
+ rm_UmSI5.header.message_type = RM_SI5;
+
+ //IE: Bcch Frequency List
+ rm_UmSI5.bcchFreqList.ie_present = RM_TRUE;
+ rm_UmSI5.bcchFreqList.extInd = RM_EXTIND_0;
+ rm_UmSI5.bcchFreqList.baInd = RM_BA_WHOLE;
+ //rm_UmSI5.bcchFreqList.format = RM_FRMT_VARBITMAP;
+
+ idx=0;
+ for (i=0;i<OAMrm_HO_ADJCELL_NO_MAX;i++)
+ {
+ if (OAMrm_HO_ADJCELL_ID(i) != OAMrm_HO_ADJCELL_ID_NULL)
+ rm_UmSI5.bcchFreqList.arfcn[idx++] = OAMrm_HO_ADJCELL_BCCH_ARFCN(i);
+ }
+ rm_UmSI5.bcchFreqList.numRFfreq = idx;
+ rm_UmSI5.bcchFreqList.format = CNI_RIL3_SelectFrequencyListFormat(
+ rm_UmSI5.bcchFreqList.arfcn,idx);
+
+} /* rm_PopulateSI5() */
+
+#endif /* __RM_POPULATESI5_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_PopulateSI6.cpp b/data/mnet/GP10/Host/rm/Src/rm_PopulateSI6.cpp
new file mode 100644
index 0000000..3ec8e43
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_PopulateSI6.cpp
@@ -0,0 +1,58 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_POPULATESI6_CPP__
+#define __RM_POPULATESI6_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_PopulateSI6(void)
+{
+ u8 i;
+
+ RDEBUG__(("ENTER-rm_PopulateSI6\n"));
+
+ //ZAP rm_UmSI6 to have a good clean-up
+ memset(&rm_UmSI6, 0, sizeof(rm_UmSI6_t));
+
+ //HEADER: PD,MT,SI
+ rm_UmSI6.header.protocol_descriminator = RM_PD;
+ rm_UmSI6.header.si_ti = RM_SI;
+ rm_UmSI6.header.message_type = RM_SI6;
+
+ //IE: Cell ID
+ rm_UmSI6.cellId.ie_present = RM_TRUE;
+ rm_UmSI6.cellId.value = OAMrm_CELLID; //0x0001
+
+ //IE: Location Area Identification
+ rm_UmSI6.locationId.ie_present = RM_TRUE;
+ rm_UmSI6.locationId.mcc[0] = OAMrm_MCC(0); //0
+ rm_UmSI6.locationId.mcc[1] = OAMrm_MCC(1); //0
+ rm_UmSI6.locationId.mcc[2] = OAMrm_MCC(2); //1
+ rm_UmSI6.locationId.mnc[0] = OAMrm_MNC(0); //0
+ rm_UmSI6.locationId.mnc[1] = OAMrm_MNC(1); //1
+ rm_UmSI6.locationId.mnc[2] = OAMrm_MNC(2); //1
+ rm_UmSI6.locationId.lac = OAMrm_LAC; //1
+
+ //IE: Cell Options on BCCH
+ rm_UmSI6.cellOptions.ie_present = RM_TRUE;
+ rm_UmSI6.cellOptions.channelType = CNI_RIL3_CELL_OPTIONS_SACCH; //1
+ rm_UmSI6.cellOptions.pwrc = CNI_RIL3_PWRC_NOT_SET; //0:no hopping
+ rm_UmSI6.cellOptions.radioLinkTimeout = OAMrm_RADIO_LINK_TIMEOUT; //3
+// rm_UmSI6.cellOptions.sacchDtx = CNI_RIL3_DTX_SHALL_NOT_TCHF_TCHH; //2
+ rm_UmSI6.cellOptions.sacchDtx = OAMrm_MS_UPLINK_DTX_STATE;
+
+
+ //IE: Ncc Permitted
+ rm_UmSI6.nccPermitted.ie_present = RM_TRUE;
+ for (i=0;i<OAMrm_NCC_PERMITTED_MAX;i++)
+ rm_UmSI6.nccPermitted.nccPermitted[i] = OAMrm_NCC_PERMITTED(i);
+
+} /* rm_PopulateSI6() */
+
+#endif /* __RM_POPULATESI6_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_ProcClassMarkIE.cpp b/data/mnet/GP10/Host/rm/Src/rm_ProcClassMarkIE.cpp
new file mode 100644
index 0000000..93be8a5
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_ProcClassMarkIE.cpp
@@ -0,0 +1,72 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_PROCCLASSMARKIE_CPP__
+#define __RM_PROCCLASSMARKIE_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_ProcClassMarkIE(void)
+{
+ rm_EdRet_t umEdRet;
+ T_CNI_RIL3MM_MSG mmMsg;
+ T_CNI_RIL3RRM_MSG rmMsg;
+
+ RDEBUG__(("ENTER--rm_ProcClassMarkIE: entryID=%d\n",
+ rm_ItcRxEntryId));
+
+ //Decode messages in terms of msgType of l3_data
+
+ switch (rm_pItcRxMdMsg->l3_data.buffer[0] & 0x0F)
+ {
+ case RM_PD:
+ //Decode Paging Response message
+ //umEdRet = CNI_RIL3RRM_Decode(
+ // &(rm_pItcRxMdMsg->l3_data),
+ // &rmMsg
+ // );
+ //switch (umEdRet)
+ //{
+ //case RM_UMED_SUCCESS:
+ // break;
+
+ //default:
+ //Um-decoding failed
+ //EDEBUG__(("ERROR-rm_ProcClassMarkIE: Um decode err:%d\n", umEdRet));
+ // break;
+ //}
+
+ break;
+
+ case MM_PD:
+ //umEdRet = CNI_RIL3MM_Decode(
+ // &(rm_pItcRxMdMsg->l3_data),
+ // &mmMsg
+ // );
+ //switch (umEdRet)
+ //{
+ //case RM_UMED_SUCCESS:
+ //rm_UmMmMsgTestPrint(&mmMsg);
+ // break;
+
+ //default:
+ //Um-decoding failed
+ //EDEBUG__(("ERROR-rm_ProcClassMarkIE: Um decode err:%d\n",
+ // umEdRet));
+ // break;
+ //}
+
+ break;
+
+ default:
+ EDEBUG__(("ERROR-rm_ProcClassMarkIE: errno=%d\n", errno));
+ break;
+ }
+} //rm_ProcClassMarkIE()
+
+#endif //__RM_PROCCLASSMARKIE_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_ProcMeasRes.cpp b/data/mnet/GP10/Host/rm/Src/rm_ProcMeasRes.cpp
new file mode 100644
index 0000000..4d3549f
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_ProcMeasRes.cpp
@@ -0,0 +1,40 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_PROCMEASRES_CPP__
+#define __RM_PROCMEASRES_CPP__
+
+#include "rm\rm_head.h"
+
+u8 rm_ProcMeasRes( void )
+{
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_ProcMeasRes\n"));
+
+ if (rm_pItcRxL1Msg->l3_data.buffer[RM_SACCHBAD_POS]==RM_TRUE)
+ {
+ if (++rm_pSmCtxt->pPhyChan->rslCount > RM_RSLCOUNT_BOUND)
+ {
+ rm_pSmCtxt->pPhyChan->rslCount = 0;
+ return RM_RSLIND;
+ }
+ }
+ else
+ {
+ rm_pSmCtxt->pPhyChan->rslCount = 0;
+ /*
+ ** TBD: process measurement data to decide if HO needed.
+ ** If HO needed, send a HO indication message to MM
+ */
+ }
+
+ return RM_LINKED;
+
+} /* Enf of rm_ProcMeasRes() */
+
+#endif /* __RM_PROCMEASRES_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_RetrvConfigFromOam.cpp b/data/mnet/GP10/Host/rm/Src/rm_RetrvConfigFromOam.cpp
new file mode 100644
index 0000000..be1d383
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_RetrvConfigFromOam.cpp
@@ -0,0 +1,105 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_RETRVCONFIGFROMOAM_CPP__
+#define __RM_RETRVCONFIGFROMOAM_CPP__
+
+//GP2
+#if 0
+
+#include "rm\rm_head.h"
+
+
+// Static Table of OAM Table
+
+// Tables in Basic Package
+CellAllocationEntry cellAllocationTable[CellAllocationTableLimit];
+PlmnPermittedEntry plmnPermittedTable[PlmnPermittedTableLimit];
+
+// Table in Option Package
+NotAllowedAccessClassEntry notAllowedAccessClassTable[NotAllowedAccessClassTableLimit];
+
+// Table in TRX packages
+ChannelEntry firstTrxPackageChannelTable[ChannelTableLimit];
+ChannelEntry secondTrxPackageChannelTable[ChannelTableLimit];
+
+CarrierFrequencyEntry firstRadioCarrierPackageFrequencyListTable[CarrierFrequencyTableLimit];
+CarrierFrequencyEntry secondRadioCarrierPackageFrequencyListTable[CarrierFrequencyTableLimit];
+
+// Tables in Adjacent Cell Package
+AdjCell_HandoverEntry adjCell_HandoverTable[HandoverTableLimit];
+//PR1223 Begin
+AdjCell_HandoverEntry adjCell_HandoverTable_t[HandoverTableLimit];
+//PR1223 End
+AdjCell_ReselectionEntry adjCell_ReselectionTable[ReselectionTableLimit];
+
+
+void rm_RetrvConfigFromOam(void)
+{
+ RDEBUG__(("ENTER-rm_RetrvConfigFromOam\n"));
+
+
+ RM_MEMSET(&rm_OamData, sizeof(rm_OamData));
+
+ // Initialize Table area
+ RM_MEMSET(&cellAllocationTable, sizeof(cellAllocationTable));
+ RM_MEMSET(&plmnPermittedTable, sizeof(plmnPermittedTable));
+ RM_MEMSET(&notAllowedAccessClassTable, sizeof(notAllowedAccessClassTable));
+ RM_MEMSET(&firstTrxPackageChannelTable, sizeof(firstTrxPackageChannelTable));
+ RM_MEMSET(&secondTrxPackageChannelTable, sizeof(secondTrxPackageChannelTable));
+
+ RM_MEMSET(&firstRadioCarrierPackageFrequencyListTable, sizeof(firstRadioCarrierPackageFrequencyListTable));
+ RM_MEMSET(&secondRadioCarrierPackageFrequencyListTable, sizeof(secondRadioCarrierPackageFrequencyListTable));
+ RM_MEMSET(&adjCell_HandoverTable, sizeof(adjCell_HandoverTable));
+ RM_MEMSET(&adjCell_ReselectionTable, sizeof(adjCell_ReselectionTable));
+
+
+ //PR1223 Begin
+ RM_MEMSET(&adjCell_HandoverTable_t,sizeof(adjCell_HandoverTable));
+ rm_OamData.adjacentCellPackage_t.adjCell_handoverTable = (Table *) &adjCell_HandoverTable_t;
+ //PR1223 End
+
+ /* This is not needed since it will be done later stage
+
+ // Do appropriate memory mapping
+ rm_OamData.btsBasicPackage.cellAllocationTable->data = (char *) cellAllocationTable;
+ rm_OamData.btsBasicPackage.plmnPermittedTable->data = (char *) plmnPermittedTable;
+ rm_OamData.btsOptionsPackage.notAllowedAccessClassTable->data = (char *) notAllowedAccessClassTable;
+
+ rm_OamData.transceiverPackage[0].channelTable->data = (char *) firstTrxPackageChannelTable;
+ rm_OamData.transceiverPackage[1].channelTable->data = (char *) secondTrxPackageChannelTable;
+
+ rm_OamData.radioCarrierPackage[0].carrierFrequencyList->data = (char *) firstRadioCarrierPackageFrequencyListTable;
+ rm_OamData.radioCarrierPackage[1].carrierFrequencyList->data = (char *) secondRadioCarrierPackageFrequencyListTable;
+
+ rm_OamData.adjacentCellPackage.adjCell_handoverTable->data = (char *) adjCell_HandoverTable;
+ rm_OamData.adjacentCellPackage.adjCell_reselectionTable->data = (char *) adjCell_ReselectionTable;
+
+ */
+
+ //Standard MIB data
+ rm_OamGetGsmData();
+
+ //RM-specific data
+ rm_OamGetRmConfigData();
+
+ //Generate tuneSynthSetting values
+ oam_TrxTuneSynthSetting[0][0] = OAMrm_TRX0_SYNTH_A | (OAMrm_ARFCN(0)&0x3FF);
+ oam_TrxTuneSynthSetting[1][0] = OAMrm_TRX1_SYNTH_A | (OAMrm_ARFCN(1)&0x3FF);
+ oam_TrxTuneSynthSetting[1][1] = OAMrm_TRX1_SYNTH_B | (OAMrm_ARFCN(1)&0x3FF);
+
+ //Register OAM vars
+ rm_OamRegTrapVars();
+
+
+} /* End of rm_RetrvConfigFromOam() */
+
+//GP2
+#endif //#if 0
+
+#endif /* __RM_RETRVCONFIGFROMOAM_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_RrEstReq.cpp b/data/mnet/GP10/Host/rm/Src/rm_RrEstReq.cpp
new file mode 100644
index 0000000..420b309
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_RrEstReq.cpp
@@ -0,0 +1,52 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_RRESTREQ_CPP__
+#define __RM_RRESTREQ_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_RrEstReq(void)
+{
+ //Monitoring entrance to a func
+ RDEBUG__(("ENTER@rm_RrEstReq\n"));
+
+ switch(rm_pItcRxMmMsg->message_type)
+ {
+ case MM_PAGE_REQ:
+ //Block any terminating call initiation if needed
+ if (rm_PhyChanBCcch[RM_PCH_IDX].amState!=unlocked)
+ {
+ PDEBUG__(("INFO@rm_RrEstReq:PCH-resident TS blocked or shutting down now\n"));
+ return;
+ }
+ //Only PagingReqType1 now!
+ rm_SendPagingRequestType1();
+ break;
+
+ case INTRA_L3_RR_HANDOVER_REQ:
+ //Block any terminating call initiation if needed
+ if (rm_PhyChanBCcch[RM_PCH_IDX].amState!=unlocked)
+ {
+ PDEBUG__(("INFO@rm_RrEstReq:PCH-resident TS blocked or shutting down now\n"));
+ //Send back Ho NAck to this Handover Req immediately!
+ rm_SendHoReqNAck(rm_pItcRxMmMsg->l3_data.handReq.mmId);
+ return;
+ }
+ rm_HoReq();
+ break;
+
+ default:
+ UDEBUG__(("UNKNOWN@rm_RrEstReq: message type:%d\n", rm_pItcRxMmMsg->message_type));
+ break;
+
+ } //End of switch()
+
+} //End rm_RrEstReq()
+
+#endif //__RM_RRESTREQ_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_RslReleasel.cpp b/data/mnet/GP10/Host/rm/Src/rm_RslReleasel.cpp
new file mode 100644
index 0000000..f190ea5
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_RslReleasel.cpp
@@ -0,0 +1,393 @@
+
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_RSLRELEASE_CPP__
+#define __RM_RSLRELEASE_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_RslRelease(void)
+{
+ rm_LapdmOId_t lapdmOId;
+
+ RDEBUG__(("ENTER-rm_RslRelease\n"));
+
+ if (rm_pSmCtxt->smType==RM_MAIN_SM)
+ {
+ //SMS-SAPI3-Begin
+
+ //lapdmOId = rm_pSmCtxt->mOId;
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ //rm_SendRrRelInd(RM_MDLERR,rm_ItcRxEntryId);
+ //rm_SendDlRelReq(lapdmOId, RM_SAPI0,RM_LOCAL_RELEASE);
+
+ //if (rm_pSmCtxt->sapi != RM_SAPI0)
+ // rm_SendDlRelReq(lapdmOId, rm_pSmCtxt->sapi,RM_LOCAL_RELEASE);
+
+ //rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI3, RM_LOCAL_RELEASE);
+ //rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+ //rm_SmCtxt_t *pASmCtxt;
+ //pASmCtxt = rm_pSmCtxt->pChan->pASmCtxt;
+ //pASmCtxt->state = RM_S1RM_RUNNING;
+
+ //SMS-SAPI3-End
+
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ rm_pSmCtxt->relCause = CNI_RIL3_CAUSE_DESTINATION_OUT_OF_ORDER;
+ //CNI_RIL3_CAUSE_TEMPORARY_FAILURE; //41
+
+ //Adjust SM state to S7
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ }
+ else
+ {
+ //SMS-SAPI3-Begin
+
+ //This case should not happen
+ IDEBUG__(("WARNING@rm_RslRelease: RSL for aEntryId %d\n",
+ rm_ItcRxEntryId));
+
+ //lapdmOId = rm_pSmCtxt->aOId;
+
+ //rm_SendRrRelInd(RM_MDLERR,rm_ItcRxEntryId);
+ //rm_SendDlRelReq(lapdmOId, RM_SAPI0,RM_LOCAL_RELEASE);
+ //SMS-SAPI3_End
+
+ rm_pSmCtxt->state = RM_S1RM_RUNNING;
+ }
+
+}
+
+
+//PR1104
+T_CNI_RIL3_RESULT rm_MsgAnalyze(void)
+{
+ T_CNI_RIL3_RESULT rrEdRet;
+
+ PDEBUG__(("ENTER@rm_MsgAnalyze()\n"));
+
+ rrEdRet = CNI_RIL3RRM_Decode(&(rm_pItcRxMdMsg->l3_data),&rm_UmMsg);
+
+ switch(rrEdRet)
+ {
+ case CNI_RIL3_NON_RRM_MESSAGE:
+ //ignore this message. Maybe an MD-mux problem
+ IDEBUG__(("WARNING@rm_MsgAnalyze: got a non-RM msg(%d,%d) on entryId(%d) at st(%d)\n",
+ rm_UmMsg.header.protocol_descriminator,
+ rm_UmMsg.header.message_type,
+ rm_ItcRxEntryId,
+ rm_pSmCtxt->state));
+ break;
+
+ case CNI_RIL3_UNKNOWN_MESSAGE_TYPE:
+ //Send a RR STATUS message to MS
+ rm_SendRrStatus(CNI_RIL3_RR_MESSAGE_TYPE_NON_EXISTENT);
+ break;
+
+ case CNI_RIL3_MANDATORY_IE_MISSING:
+ case CNI_RIL3_NON_SEMANTICAL_MANDATORY_IE_ERROR:
+ //Releasing the call if not in releasing yet
+ rm_ProcRrRelease(CNI_RIL3_CAUSE_DESTINATION_OUT_OF_ORDER);
+ break;
+
+ case CNI_RIL3_NON_IMPERATIVE_MESSAGE_PART_ERROR:
+ case CNI_RIL3_RESULT_SUCCESS:
+ if ( rm_UmMsg.header.message_type == CNI_RIL3RRM_MSGID_RR_STATUS)
+ {
+ IDEBUG__(("WARNING@rm_MsgAnalyze: got RR STATUS cause(pres %d, val %d) on entryId(%d) at st(%d)\n",
+ rm_UmMsg.rrStatus.rrCause.ie_present,
+ rm_UmMsg.rrStatus.rrCause.causeValue,
+ rm_ItcRxEntryId,
+ rm_pSmCtxt->state));
+ return (CNI_RIL3_NON_IMPERATIVE_MESSAGE_PART_ERROR); //reuse to skip processing in calling part
+ }
+
+ return (CNI_RIL3_RESULT_SUCCESS);
+ break;
+
+ default:
+ break;
+
+ }
+
+ return (rrEdRet);
+
+}
+
+void rm_SendRrStatus(T_CNI_RIL3_RR_CAUSE_VALUE cause)
+{
+ rm_EdRet_t rrEdRet;
+ rm_L3Data_t l3_data;
+ T_CNI_RIL3RRM_MSG_RR_STATUS *pUmRrStatus;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_SendRrStatus\n"));
+
+
+ //Select Rr Status message from the union
+ pUmRrStatus = (T_CNI_RIL3RRM_MSG_RR_STATUS *) &(rm_UmMsg.rrStatus);
+
+ // Populate message elements to encode
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ //Header--PD,MT,SI
+ pUmRrStatus->header.protocol_descriminator = RM_PD;
+ pUmRrStatus->header.si_ti = RM_SI;
+ pUmRrStatus->header.message_type = CNI_RIL3RRM_MSGID_RR_STATUS;
+
+ //IE--Channel Description
+ pUmRrStatus->rrCause.ie_present = RM_TRUE;
+ pUmRrStatus->rrCause.causeValue = cause;
+
+ //Call RR message encoding functionality
+ rrEdRet = CNI_RIL3RRM_Encode( &rm_UmMsg, &l3_data);
+
+ //Check the encoding result before sending the message
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+ //Wrap the encoded Paging message in DL_DATA_REQ
+ PostL3SendMsLog(rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,&l3_data );
+ rm_SendDlDataReq(rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,&l3_data );
+
+ break;
+
+ default:
+ //Um message encoding failed
+ EDEBUG__(("ERROR@rm_SendRrStatus: Um encode error:%d\n", rrEdRet ));
+ break;
+
+ } //End of switch(rrEdRet)
+
+} //rm_SendRrStatus()
+
+void rm_ProcRrRelease(T_CNI_RIL3_CAUSE_VALUE cause)
+{
+ int time;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_StartRrRelease()\n"));
+
+ //Release the RF channel as well as associated SMs
+ PDEBUG__(("INFO@rm_ProcRrRelease: (module %d, entryId %d, mSt %d, prim %d, msg %d)\n",
+ rm_ItcRxOrigin,
+ rm_ItcRxEntryId,
+ rm_pSmCtxt->state,
+ rm_ItcRxPrimType,
+ rm_ItcRxMsgType));
+
+ switch(rm_pSmCtxt->state)
+ {
+ case RM_S2ACTIVATING_SIGTRAFFIC_CHAN:
+ IDEBUG__(("INFO@rm_ProcRrRelease: (module %d, entryId %d, mSt %d, prim %d, msg %d)\n",
+ rm_ItcRxOrigin,
+ rm_ItcRxEntryId,
+ rm_pSmCtxt->state,
+ rm_ItcRxPrimType,
+ rm_ItcRxMsgType));
+
+ //Got a negative Ack to Channel Activation
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_SendRfChanRelease(rm_pSmCtxt->pPhyChan);
+
+ //Check if Channel Activation is caused by Ho or Chan request
+ if (rm_pSmCtxt->isForHo==RM_TRUE)
+ {
+ //If it's Handover Request caused, send HoReqAck back to MM
+ rm_SendHoReqNAck(rm_pSmCtxt->pPhyChan->hoRef);
+ }
+
+ //SMS-SAPI3-Begin
+ //For benefit of LAPDm's internal cleanup
+ rm_SendDlRelReq(rm_pSmCtxt->mOId,RM_SAPI0,RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->mOId,RM_SAPI3,RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->aOId,RM_SAPI3,RM_LOCAL_RELEASE);
+
+ //SMS-SAPI3-End
+ //Reset relevant RM channel resources
+ rm_pSmCtxt->state = RM_S1RM_RUNNING;
+ rm_SmCtxt[rm_pSmCtxt->aEntryId].state = RM_S1RM_RUNNING;
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_FREE;
+
+ break;
+
+ case RM_S7RELEASING_SIGTRAFFICCHAN:
+ //Move to S9 and clean S7 watch timers
+ rm_StopTimer(rm_ItcRxEntryId, RM_T3109);
+ rm_StopTimer(rm_ItcRxEntryId, RM_T3L02);
+
+ rm_SendRrRelInd(RM_MDLERR, rm_pSmCtxt->mEntryId);
+
+ case RM_S3SIGCHAN_ACTIVATED:
+ //Release the RF channel as well as associated SMs
+ IDEBUG__(("INFO@rm_ProcRrRelease: (module %d, entryId %d, mSt %d, prim %d, msg %d)\n",
+ rm_ItcRxOrigin,
+ rm_ItcRxEntryId,
+ rm_pSmCtxt->state,
+ rm_ItcRxPrimType,
+ rm_ItcRxMsgType));
+
+ rm_StopTimer( rm_ItcRxEntryId, RM_T3101 );
+ rm_StartTimer( rm_ItcRxEntryId, RM_T3111 );
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_SendRfChanRelease(rm_pSmCtxt->pPhyChan);
+
+ rm_pSmCtxt->relCause = cause;
+
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->pPhyChan->T3101.state = RM_FALSE;
+ rm_pSmCtxt->state = RM_S9DEACTIVATING_SIGTRAFFICCHAN;
+ rm_SmCtxt[rm_pSmCtxt->aEntryId].state = RM_S1RM_RUNNING;
+ break;
+
+ case RM_S4TRAFFICCHAN_ACTIVATED:
+ IDEBUG__(("INFO@rm_ProcRrRelease: (module %d, entryId %d, mSt %d, prim %d, msg %d)\n",
+ rm_ItcRxOrigin,
+ rm_ItcRxEntryId,
+ rm_pSmCtxt->state,
+ rm_ItcRxPrimType,
+ rm_ItcRxMsgType));
+
+ if (rm_pSmCtxt->waitHoComplt == RM_TRUE)
+ //ext-HO <xxu:06-25-01>
+ rm_SendHoFailure(0x01,-1); //Radio Interface Failure
+
+ rm_StopTimer( rm_ItcRxEntryId, RM_T3105 );
+ rm_StartTimer( rm_ItcRxEntryId, RM_T3111 );
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_SendRfChanRelease(rm_pSmCtxt->pPhyChan);
+
+ rm_pSmCtxt->relCause = cause;
+
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->pPhyChan->T3105.state = RM_FALSE;
+ rm_pSmCtxt->state = RM_S9DEACTIVATING_SIGTRAFFICCHAN;
+ rm_SmCtxt[rm_pSmCtxt->aEntryId].state = RM_S1RM_RUNNING;
+ break;
+
+ case RM_S5SIGMODE_ESTABLISHED:
+ //Release RF resource
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_SendChanRelease(rm_ItcRxEntryId);
+
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ rm_pSmCtxt->relCause = cause;
+
+ //Adjust SM state to S7
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+
+ //PM Added:
+ rm_pSmCtxt->pPhyChan->chanBusy = RM_FALSE;
+
+ if (rm_pSmCtxt->pPhyChan->chanType==RM_PHYCHAN_SDCCH4)
+ {
+ if (--rm_NoOfBusySdcch4 >= 0)
+ PM_CellMeasurement.meanNbrOfBusySDCCHs.addRecord(rm_NoOfBusySdcch4);
+ else
+ rm_NoOfBusySdcch4 = 0;
+
+ if (--rm_maxNbrOfBusySDCCHs >= 0)
+ PM_CellMeasurement.maxNbrOfBusySDCCHs.setValue(rm_maxNbrOfBusySDCCHs); // decrement();
+ //PM_CellMeasurement.maxNbrOfBusySDCCHs.addRecord(rm_maxNbrOfBusySDCCHs); // decrement();
+ else
+ rm_maxNbrOfBusySDCCHs = 0;
+ }
+
+ break;
+
+ case RM_S6ACTIVATING_TRAFFICMODE:
+ case RM_S8TRAFFICMODE_ACTIVATED:
+ IDEBUG__(("INFO@rm_ProcRrRelease: (module %d, entryId %d, mSt %d, prim %d, msg %d)\n",
+ rm_ItcRxOrigin,
+ rm_ItcRxEntryId,
+ rm_pSmCtxt->state,
+ rm_ItcRxPrimType,
+ rm_ItcRxMsgType));
+
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_SendChanRelease(rm_ItcRxEntryId);
+
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ rm_pSmCtxt->relCause = cause;
+
+ //Adjust SM state to S7
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+ break;
+
+ case RM_S10TRAFFICMODE_ESTABLISHED:
+ case RM_S11TRAFFICCHAN_SUSPENDING:
+
+ rm_SendChanRelease(rm_ItcRxEntryId);
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ rm_pSmCtxt->relCause = cause;
+
+ //Adjust SM state to S7
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+
+ //PM: maxNbrOfBusyTCHs, meanNbrOfBusyTCHs
+
+ if (--rm_NoOfBusyTchf >= 0)
+ PM_CellMeasurement.meanNbrOfBusyTCHs.addRecord(rm_NoOfBusyTchf);
+ else
+ rm_NoOfBusyTchf = 0;
+
+ time = tickGet() - rm_pSmCtxt->pPhyChan->startTime;
+ PM_CellMeasurement.meanTCHBusyTime.addRecord(time);
+
+ rm_pSmCtxt->pPhyChan->startTime=tickGet();
+
+ if (--rm_maxNbrOfBusyTCHs >= 0)
+ PM_CellMeasurement.maxNbrOfBusyTCHs.setValue(rm_maxNbrOfBusyTCHs); //decrement();
+ else
+ rm_maxNbrOfBusyTCHs = 0;
+
+ rm_pSmCtxt->pPhyChan->chanBusy = RM_FALSE;
+
+ break;
+
+ case RM_S9DEACTIVATING_SIGTRAFFICCHAN:
+ IDEBUG__(("INFO@rm_ProcRrRelease: (module %d, entryId %d, mSt %d, prim %d, msg %d)\n",
+ rm_ItcRxOrigin,
+ rm_ItcRxEntryId,
+ rm_pSmCtxt->state,
+ rm_ItcRxPrimType,
+ rm_ItcRxMsgType));
+
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_SendRfChanRelease(rm_pSmCtxt->pPhyChan);
+ break;
+
+ default:
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_SendRfChanRelease(rm_pSmCtxt->pPhyChan);
+
+ IDEBUG__(("INFO@rm_ProcRrRelease: (module %d, entryId %d, mSt %d, prim %d, msg %d)\n",
+ rm_ItcRxOrigin,
+ rm_ItcRxEntryId,
+ rm_pSmCtxt->state,
+ rm_ItcRxPrimType,
+ rm_ItcRxMsgType));
+ break;
+
+ }
+
+} //rm_ProcRrRelease()
+
+#endif //__RM_RSLRELEASE_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S0Null.cpp b/data/mnet/GP10/Host/rm/Src/rm_S0Null.cpp
new file mode 100644
index 0000000..8a98a4e
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S0Null.cpp
@@ -0,0 +1,22 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_S0NULL_CPP__
+#define __RM_S0NULL_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_S0Null( void )
+{
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_S0Null\n"));
+
+ TDEBUG__(("TRACE-rm_S0Null carries no logic\n"));
+}
+
+#endif /* __RM_S0NULL_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S10TrafficModeEstablished.cpp b/data/mnet/GP10/Host/rm/Src/rm_S10TrafficModeEstablished.cpp
new file mode 100644
index 0000000..50f872a
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S10TrafficModeEstablished.cpp
@@ -0,0 +1,216 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_S10TRAFFICMODEESTABLISHED_CPP__
+#define __RM_S10TRAFFICMODEESTABLISHED_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_S10TrafficModeEstablished(void)
+{
+ u8 ret;
+ int time;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_S10TrafficModeEstablished\n"));
+
+ //In this design, RM does not watch any MEAS RPTS. Thus not deciding RSL here
+
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_L1:
+ //HOADDED
+ if ( rm_pItcRxL1Msg->l3_data.buffer[0]==RM_L1MG_DEDMGMT &&
+ rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_ASYNCHO_REQUIRED_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_ASYNCHO_REQUIRED_LSB )
+ {
+ //Received Async Handover Required Indication from DSP & pass to CC
+ rm_SendAsyncHoRequired();
+ } else
+ {
+ rm_ProcL1ModeAckNAck();
+ }
+ break;
+
+ case MODULE_MD:
+ //MDLRrrRpt processing centralized somewhere else
+ //Handle DL_DATA_IND w CHN MODE MODIFY ACK inside
+
+ if ( rm_pItcRxMdMsg->primitive_type == DL_REL_IND )
+ {
+
+ if (rm_pSmCtxt->smType==RM_MAIN_SM)
+ {
+ rm_ProcRrRelease(CNI_RIL3_CAUSE_NORMAL_UNSPECIFIED);
+ return;
+ //SMS-SAPI3-Begin
+ //lapdmOId = rm_pSmCtxt->mOId;
+ // rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ //rm_SendRrRelInd(RM_MDLERR,rm_ItcRxEntryId);
+
+ //CT_CHN rm_SendDlRelReq(lapdmOId, RM_SAPI0,
+ // rm_pSmCtxt->chanType,RM_LOCAL_RELEASE);
+ //rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI0, RM_LOCAL_RELEASE);
+
+ //if (rm_pSmCtxt->sapi != RM_SAPI0)
+ // //CT_CHN rm_SendDlRelReq(lapdmOId, rm_pSmCtxt->sapi,
+ // // rm_pSmCtxt->chanType,RM_LOCAL_RELEASE);
+ // rm_SendDlRelReq(lapdmOId, rm_pSmCtxt->sapi,RM_LOCAL_RELEASE);
+
+ //The following is for safety-guard purpose, thus may be redundancy
+ //rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI3, RM_LOCAL_RELEASE);
+ //rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+ //rm_SmCtxt_t *pASmCtxt;
+ //pASmCtxt = rm_pSmCtxt->pPhyChan->pASmCtxt;
+ //pASmCtxt->state = RM_S1RM_RUNNING;
+
+ //SMS-SAPI3-End
+
+ //rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ //rm_pSmCtxt->relCause = CNI_RIL3_CAUSE_NORMAL_UNSPECIFIED;
+ // //CNI_RIL3_CAUSE_DESTINATION_OUT_OF_ORDER;
+ // //CNI_RIL3_CAUSE_TEMPORARY_FAILURE;
+
+ // Adjust SM state to S7
+ //rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+ //rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+
+ //SMS-SAPI3-Begin
+ }
+ //} else
+ //{
+ //lapdmOId = rm_pSmCtxt->aOId;
+
+ //SMS-SAPI3-Begin
+
+ //rm_SendRrRelInd(RM_MDLERR,rm_ItcRxEntryId);
+ //CT_CHN rm_SendDlRelReq(lapdmOId, RM_SAPI0,
+ // rm_pSmCtxt->chanType,RM_LOCAL_RELEASE);
+ //rm_SendDlRelReq(lapdmOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+ //SMS-SAPI3-End
+
+ //rm_pSmCtxt->state = RM_S1RM_RUNNING;
+ //}
+
+ //SMS-SAPI3-End
+
+ } else if (rm_pItcRxMdMsg->primitive_type == DL_DATA_IND)
+ {
+ rm_ProcMsModeModifyAckNack();
+
+ } else
+ {
+ EDEBUG__(("ERROR@rm_S10TrafficModeEstablished: unexp L2/prim:%d\n",
+ rm_pItcRxMdMsg->primitive_type));
+ }
+ break;
+
+ case MODULE_MM:
+ //Handle RR_REL_REQ on both main & acch signaling
+ if ( rm_pItcRxMmMsg->primitive_type == RR_REL_REQ )
+ {
+ //SMS-SAPI3-Begin
+ //Check if entryId is linked to main or acch SM */
+ if (rm_SmCtxt[rm_ItcRxEntryId].smType != RM_MAIN_SM)
+ {
+ //RR_REL_REQ linked to acch SM. Main SM not affected
+ IDEBUG__(("WARNING@rm_S10TrafficModeEstablished: MM msgType %d for aEntryId %d\n",
+ rm_pItcRxMmMsg->message_type,
+ rm_ItcRxEntryId));
+
+ // rm_SendRrRelInd(RM_MDLERR, rm_pSmCtxt->aEntryId);
+ // //CT_CHN rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI0,RM_CTSACCH,RM_NORMAL);
+ // rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI0,RM_NORMAL);
+
+ // if (rm_pSmCtxt->sapi != RM_SAPI0)
+ // //CT_CHN rm_SendDlRelReq(rm_pSmCtxt->aOId, rm_pSmCtxt->sapi,
+ // // RM_CTSACCH,RM_LOCAL_RELEASE);
+ // rm_SendDlRelReq(rm_pSmCtxt->aOId, rm_pSmCtxt->sapi,RM_LOCAL_RELEASE);
+ } else
+ {
+ //EntryId linked to main SM. Release everything
+ //May need to handle a little bit more here later
+ //rm_SendRrRelInd(RM_MDLERR, rm_pSmCtxt->aEntryId);
+
+ rm_SendChanRelease(rm_ItcRxEntryId);
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ rm_pSmCtxt->relCause = CNI_RIL3_CAUSE_NORMAL_CALL_CLEARING;
+
+ //Adjust SM state to S7
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+
+ //PM: maxNbrOfBusyTCHs, meanNbrOfBusyTCHs
+
+ if (--rm_NoOfBusyTchf >= 0)
+ PM_CellMeasurement.meanNbrOfBusyTCHs.addRecord(rm_NoOfBusyTchf);
+ else
+ rm_NoOfBusyTchf = 0;
+
+ time = tickGet() - rm_pSmCtxt->pPhyChan->startTime;
+ PM_CellMeasurement.meanTCHBusyTime.addRecord(time);
+
+ rm_pSmCtxt->pPhyChan->startTime=tickGet();
+
+ if (--rm_maxNbrOfBusyTCHs >= 0)
+ PM_CellMeasurement.maxNbrOfBusyTCHs.setValue(rm_maxNbrOfBusyTCHs); //decrement();
+ //PM_CellMeasurement.maxNbrOfBusyTCHs.addRecord(rm_maxNbrOfBusyTCHs); //decrement();
+ else
+ rm_maxNbrOfBusyTCHs = 0;
+
+ rm_pSmCtxt->pPhyChan->chanBusy = RM_FALSE;
+ }
+
+ } else
+ //Unexpected message from MM
+ IDEBUG__(("WARNING@rm_S10TrafficModeEstablished:MM msgType:%d\n",
+ rm_pItcRxMmMsg->message_type));
+ break;
+
+ case MODULE_CC:
+ //Process a message received from CC
+ switch (rm_pItcRxCcMsg->message_type)
+ {
+ case INTRA_L3_RR_CHANN_ASSIGN_CMD:
+ rm_ProcChanAssignCmd();
+ break;
+ case INTRA_L3_RR_HANDOVER_COMMAND:
+ //Send HO Command to MS and advance SM state
+ rm_SendHandoverCommand();
+ rm_pSmCtxt->state = RM_S11TRAFFICCHAN_SUSPENDING;
+ break;
+ //case INTRA_L3_CM_CONN_CMD:
+ default:
+ IDEBUG__(("WARNING@rm_S10TrafficModeEstablished: invalid CC msgType=%d\n",
+ rm_pItcRxCcMsg->message_type));
+ break;
+ }
+ break;
+
+ case MODULE_RM:
+ //Handle T3L01 exp here!
+ rm_ProcT3L01Expiry();
+ break;
+
+ default:
+ //Unexpected message orgination
+ IDEBUG__(("WARNING@rm_S10TrafficModeEstablished:wrong msg origination:%d\n",
+ rm_ItcRxOrigin));
+ break;
+
+ } //End of switch()
+
+} //End of rm_S10TrafficModeEstablished()
+
+#endif //__RM_S10TRAFFICMODEESTABLISHED_CPP__
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S11TrafficChanSuspendig.cpp b/data/mnet/GP10/Host/rm/Src/rm_S11TrafficChanSuspendig.cpp
new file mode 100644
index 0000000..6095f64
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S11TrafficChanSuspendig.cpp
@@ -0,0 +1,212 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_S11TRAFFICCHANSUSPENDING_CPP__
+#define __RM_S11TRAFFICCHANSUSPENDING_CPP__
+
+//HOADDED
+#include "rm\rm_head.h"
+
+void rm_S11TrafficChanSuspending(void)
+{
+ rm_EdRet_t rrEdRet; //Return code from RR decode
+
+ RDEBUG__(("ENTER-rm_S11TrafficChanSuspending\n"));
+
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_MM:
+ //SMS-SAPI3-Begin
+
+ //Got a message from MM:
+ //If it is RR_REL_REQ. In terms of entryId, it could be linked to either
+ //main signaling or associated signaling.
+
+ if (rm_SmCtxt[rm_ItcRxEntryId].smType != RM_MAIN_SM)
+ {
+ //RR_REL_REQ linked to acch SM. Main SM not affected
+ IDEBUG__(("WARNING@rm_S11TrafficChanSuspending: MM msgType %d for aEntryId %d\n",
+ rm_pItcRxMmMsg->message_type,
+ rm_ItcRxEntryId));
+ return;
+ }
+
+ if ( rm_pItcRxMmMsg->primitive_type == RR_REL_REQ )
+ {
+ // Release caused by HO SUCCESS
+ if (rm_pItcRxMmMsg->message_type == INTRA_L3_RR_HANDOVER_COMPLETE)
+ {
+ //HOADDED
+ //HO SUCCESS. Do local release of old connection and change both SM's
+ //and phyChan's state
+ PDEBUG__(("rm@S11TrafficChanSuspending: HO SUCCESS\n"));
+ rm_ProcRrRelease(CNI_RIL3_CAUSE_NORMAL_CALL_CLEARING);
+ //if (rm_SmCtxt[rm_ItcRxEntryId].smType != RM_MAIN_SM)
+ // EDEBUG__(("ERROR@rm_S11TrafficChanSuspending:HO going on SACCH\n"));
+ //rm_RslRelease();
+ return;
+ }
+
+ // Release not caused by HO SUCCESS. Check if entryId is linked to
+ // main or acch SM
+ if (rm_SmCtxt[rm_ItcRxEntryId].smType != RM_MAIN_SM)
+ {
+ //RR_REL_REQ linked to acch SM. Main SM not affected
+ IDEBUG__(("WARNING@rm_S11TrafficChanSuspending:RrRelReq on acch SM '%d'\n",
+ rm_ItcRxEntryId));
+
+// if (rm_pSmCtxt->sapi != RM_SAPI0)
+//CT_CHN rm_SendDlRelReq(rm_pSmCtxt->aOId, rm_pSmCtxt->sapi,
+// RM_CTSACCH,RM_LOCAL_RELEASE);
+// rm_SendDlRelReq(rm_pSmCtxt->aOId, rm_pSmCtxt->sapi,RM_LOCAL_RELEASE);
+//
+//CT_CHN rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI0,RM_CTSACCH,RM_NORMAL);
+// rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI3, RM_LOCAL_RELEASE);
+// rm_SendRrRelInd(RM_MDLERR, rm_pSmCtxt->aEntryId);
+ }
+ else
+ {
+ //EntryId linked to main SM. Release everything
+ //SMSADDED
+ //rm_SendRrRelInd(RM_MDLERR, rm_pSmCtxt->aEntryId);
+ rm_SendChanRelease(rm_ItcRxEntryId);
+
+ //Deactivate sacch to start RF channel release
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ rm_pSmCtxt->relCause = CNI_RIL3_CAUSE_DESTINATION_OUT_OF_ORDER;
+ //CNI_RIL3_CAUSE_NORMAL_UNSPECIFIED;
+
+ //Adjust SM state to S7
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+ /*PR1247 begin*/
+ //PM: maxNbrOfBusyTCHs, meanNbrOfBusyTCHs
+
+ if (--rm_NoOfBusyTchf >= 0)
+ PM_CellMeasurement.meanNbrOfBusyTCHs.addRecord(rm_NoOfBusyTchf);
+ else
+ rm_NoOfBusyTchf = 0;
+
+ int time = tickGet() - rm_pSmCtxt->pPhyChan->startTime;
+ PM_CellMeasurement.meanTCHBusyTime.addRecord(time);
+
+ rm_pSmCtxt->pPhyChan->startTime=tickGet();
+
+ if (--rm_maxNbrOfBusyTCHs >= 0)
+ PM_CellMeasurement.maxNbrOfBusyTCHs.setValue(rm_maxNbrOfBusyTCHs); //decrement();
+ //PM_CellMeasurement.maxNbrOfBusyTCHs.addRecord(rm_maxNbrOfBusyTCHs); //decrement();
+ else
+ rm_maxNbrOfBusyTCHs = 0;
+
+ rm_pSmCtxt->pPhyChan->chanBusy = RM_FALSE;
+ /*PR1247 end*/
+ }
+ } else if (rm_pItcRxMmMsg->message_type == INTRA_L3_RR_HANDOVER_FAILURE)
+ {
+ //HO FAILURE. Stay with current connection
+ //Currently neither MM nor CC will pass this FAILURE to RM module.
+ EDEBUG__(("ERROR-rm_S11TrafficChanSuspending: got HO FAILURE from MM\n"));
+ rm_pSmCtxt->state = RM_S10TRAFFICMODE_ESTABLISHED;
+
+ } else
+ //Unexpected message from MM
+ UDEBUG__(("UNKNOWN-rm_S11TrafficChanSuspending:MM msgType:%d\n",
+ rm_pItcRxMmMsg->message_type));
+ break;
+
+ case MODULE_MD:
+ //Check if received HO FAILURE from MS. And pass this possible HO FAILURE to
+ //CC directly.
+ if ( rm_pItcRxMdMsg->primitive_type == DL_REL_IND )
+ {
+ if (rm_pSmCtxt->smType==RM_MAIN_SM)
+ {
+ rm_ProcRrRelease(CNI_RIL3_CAUSE_NORMAL_UNSPECIFIED);
+ return;
+
+ //SMS-SAPI3-Begin
+ //rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ //rm_SendDlRelReq(lapdmOId, RM_SAPI0, RM_LOCAL_RELEASE);
+
+ //The following is for safety-guard purpose, thus may be redundancy
+ //rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI3, RM_LOCAL_RELEASE);
+ //rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+ //rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ //rm_pSmCtxt->relCause = CNI_RIL3_CAUSE_DESTINATION_OUT_OF_ORDER;
+ //CNI_RIL3_CAUSE_TEMPORARY_FAILURE;
+
+ // Adjust SM state to S7
+ //rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+ //rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+
+ }
+
+ } else if (rm_pItcRxMdMsg->primitive_type == DL_DATA_IND)
+ {
+ //Decode the received l3_data to see if it's expected HO FAILURE message
+ //PR1104
+ //rrEdRet = CNI_RIL3RRM_Decode( &(rm_pItcRxMdMsg->l3_data),&rm_UmMsg );
+ rrEdRet = rm_MsgAnalyze();
+
+ if ( rrEdRet != RM_RRED_SUCCESS )
+ {
+ EDEBUG__(("ERROR-rm_S11TrafficChanSuspending:Failed decode L2/l3 msg\n"));
+ return;
+ }
+
+ //Decoding successful. Further check if it's expected HO FAILURE message
+ if ( rm_UmMsg.header.protocol_descriminator != RM_PD ||
+ rm_UmMsg.header.message_type != CNI_RIL3RRM_MSGID_HANDOVER_FAILURE )
+ {
+ EDEBUG__(("ERROR-rm_S11TrafficChanSuspending:unexpected msg:PD=%d;MT=%x",
+ rm_UmMsg.header.protocol_descriminator,
+ rm_UmMsg.header.message_type ));
+ rm_SendRrStatus(CNI_RIL3_RR_MESSAGE_TYPE_NOT_COMPATIBLE);
+ return;
+ }
+
+ //PR: gathering handover failure causes rather than normal event
+ if ( (!rm_UmMsg.handoverFailure.rrCause.ie_present) ||
+ (rm_UmMsg.handoverFailure.rrCause.causeValue != CNI_RIL3_RR_NORMAL_EVENT) )
+ {
+ IDEBUG__(("WARNING@rm_S11TrafficChanSuspending: ho failed on (ie_present %d, cause %d)\n",
+ rm_UmMsg.handoverFailure.rrCause.ie_present,
+ rm_UmMsg.handoverFailure.rrCause.causeValue));
+ }
+
+ //Got HO FAILURE message from mobile
+ //No timer monitoring if RM needs go back to S10 while it is staying @S11
+ //thus no action seen here to stop any running timer.
+ //Send HO FAILURE message to CC and continue with the current RF Channel.
+ rm_SendHoFailure(0x0A,-1); //Radio Interface failure, revert to old channel
+ rm_pSmCtxt->state = RM_S10TRAFFICMODE_ESTABLISHED;
+
+ } else
+ {
+ EDEBUG__(("ERROR-rm_S11TrafficChanSuspending: unexpected L2/primitive:%d\n",
+ rm_pItcRxMdMsg->primitive_type));
+
+ }
+
+ break;
+
+ default:
+ //Processing of RSL(L1) and MDL_ERR_RPT(L2) have been extracted out of
+ //here and centralized in one place. Thus, they should not appear here.
+ UDEBUG__(("rm_S11TrafficChanSuspending: unexpected msg origination:%d\n",
+ rm_ItcRxOrigin));
+ break;
+
+ } //End of switch()
+}
+
+#endif //_RM_S11TRAFFICCHANSUSPENDING_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S1RmRunning.cpp b/data/mnet/GP10/Host/rm/Src/rm_S1RmRunning.cpp
new file mode 100644
index 0000000..440c930
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S1RmRunning.cpp
@@ -0,0 +1,233 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+
+#ifndef __RM_S1RMRUNNING_CPP__
+#define __RM_S1RMRUNNING_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_S1RmRunning( void )
+{
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_S1RmRunning\n"));
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_L1:
+ // Got a message from L1, process it if it is for CBCH
+ if (rm_pItcRxL1Msg->l3_data.buffer[0]==RM_L1MG_DEDMGMT)
+ {
+ // Check if having got Ack to the Channel Activation sent earlier
+ if (rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_CHANACTIVACK_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_CHANACTIVACK_LSB )
+ {
+ //Got a positive ack to the Channel Activation
+
+ //SMS-SAPI3-Begin
+ //Call LAPDm local release to clean up the channel for safety only
+ //rm_SendDlRelReq(rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,RM_LOCAL_RELEASE);
+
+ rm_SendDlRelReq(rm_pSmCtxt->mOId,RM_SAPI0,RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->mOId,RM_SAPI3,RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->aOId,RM_SAPI3,RM_LOCAL_RELEASE);
+
+ //SMS-SAPI3-End
+
+ //Further check if this Ack is expected
+ if (rm_pItcRxL1Msg->l3_data.buffer[3]!=rm_pCbchChan->trxNumber ||
+ rm_pItcRxL1Msg->l3_data.buffer[4]!=rm_pCbchChan->chanNumberMSB ||
+ rm_pItcRxL1Msg->l3_data.buffer[5]!=rm_pCbchChan->chanNumberLSB )
+ {
+ //IDEBUG__(("WARNING@rm_S1RmRunning: ack to unexpect chan (%d,%d,%d)\n",
+ // rm_pItcRxL1Msg->l3_data.buffer[3],
+ // rm_pItcRxL1Msg->l3_data.buffer[4],
+ // rm_pItcRxL1Msg->l3_data.buffer[5]));
+
+ return;
+ }
+
+ //It is an expected ack msg
+ if (rm_pCbchChan->usable==RM_PHYCHAN_CBCH_USABLE)
+ {
+ rm_BroadcastNilCbMsg();
+ rm_ChanCbchActive = RM_TRUE;
+ //GP2
+ //rm_SendSystemInfo4ToBcchTrx(0, RM_L1SYSINFO_TYPE_4,OAMrm_RA_CELL_BARRED_STATE);
+ }
+ }
+ // Check if having got NAck to the Channel Activation msg sent earlier
+ else if ( rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_CHANACTIVNACK_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_CHANACTIVNACK_LSB )
+ {
+ //Got a negative Ack to Channel Activation sent out eariler
+
+ //SMS-SAPI3-Begin
+
+ //Call LAPDm local release to clean up the channel for safety only
+ //rm_SendDlRelReq(rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,RM_LOCAL_RELEASE);
+
+ rm_SendDlRelReq(rm_pSmCtxt->mOId,RM_SAPI0,RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->mOId,RM_SAPI3,RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->aOId,RM_SAPI3,RM_LOCAL_RELEASE);
+
+ //SMS-SAPI3-End
+
+ //Further check if this NAck is expected
+ if (rm_pItcRxL1Msg->l3_data.buffer[3]!=rm_pCbchChan->trxNumber ||
+ rm_pItcRxL1Msg->l3_data.buffer[4]!=rm_pCbchChan->chanNumberMSB ||
+ rm_pItcRxL1Msg->l3_data.buffer[5]!=rm_pCbchChan->chanNumberLSB )
+ {
+ IDEBUG__(("WARNING@rm_S1RmRunning: nack to unexpect chan (%d,%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[3],
+ rm_pItcRxL1Msg->l3_data.buffer[4],
+ rm_pItcRxL1Msg->l3_data.buffer[5]));
+ return;
+ }
+
+ //It is an expected nack msg
+ IDEBUG__(("WARNING@rm_S1RmRunning: got expected nack (%d,%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[3],
+ rm_pItcRxL1Msg->l3_data.buffer[4],
+ rm_pItcRxL1Msg->l3_data.buffer[5]));
+ }
+ // Check if got RF channel release acknowledgment
+ else if(rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_RFCHANRELACK_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_RFCHANRELACK_LSB )
+ {
+ // Further check if the RF channel release coming for CBCH channel
+ if (rm_pItcRxL1Msg->l3_data.buffer[3]!=rm_pCbchChan->trxNumber ||
+ rm_pItcRxL1Msg->l3_data.buffer[4]!=rm_pCbchChan->chanNumberMSB ||
+ rm_pItcRxL1Msg->l3_data.buffer[5]!=rm_pCbchChan->chanNumberLSB )
+ {
+ //IDEBUG__(("WARNING@rm_S1RmRunning: rf ack to unexpect chan(%d,%d,%d)\n",
+ // rm_pItcRxL1Msg->l3_data.buffer[3],
+ // rm_pItcRxL1Msg->l3_data.buffer[4],
+ // rm_pItcRxL1Msg->l3_data.buffer[5]));
+ return;
+ }
+
+ // Got expected RF chan release ack, return CBCH to SDCCH for normal use
+ if (rm_pCbchChan->usable != RM_PHYCHAN_UNUSABLE)
+ rm_pCbchChan->usable = RM_PHYCHAN_USABLE;
+ }
+ // Check if got CBCH ready to send message
+ else if(rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_CBCHRTS_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_CBCHRTS_LSB )
+ {
+ // Further check if the RTS message is coming for CBCH channel
+ if (rm_pItcRxL1Msg->l3_data.buffer[3]!=rm_pCbchChan->trxNumber ||
+ rm_pItcRxL1Msg->l3_data.buffer[4]!=rm_pCbchChan->chanNumberMSB ||
+ rm_pItcRxL1Msg->l3_data.buffer[5]!=rm_pCbchChan->chanNumberLSB )
+
+ //rm_pItcRxL1Msg->l3_data.buffer[4]!=RM_L1CBCH_CHANNUMBER_MSB ||
+ //rm_pItcRxL1Msg->l3_data.buffer[5]!=RM_L1CBCH_CHANNUMBER_MSB )
+ {
+ IDEBUG__(("WARNING@rm_S1RmRunning: rts not for cbch(%d,%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[3],
+ rm_pItcRxL1Msg->l3_data.buffer[4],
+ rm_pItcRxL1Msg->l3_data.buffer[5]));
+ return;
+ }
+ //PR 1323 Shedule message broadcast
+ if ( !OAMrm_CBCH_OPSTATE )
+ {
+ IDEBUG__(("CBC is not turn on\n"));
+ return;
+ }
+
+ //Really got an RTS for CBCH channel, pass down another page if there is
+ //if (rm_SmscbcMsg.morPage && rm_SmscbcMsg.totPage>1)
+ //{
+ // rm_BroadcastNewCbMsg(rm_SmscbcMsg.curPage);
+ // if ((++rm_SmscbcMsg.curPage)>rm_SmscbcMsg.totPage)
+ // rm_SmscbcMsg.curPage = 1;
+ //} else
+ // PDEBUG__(("INFO@rm_S1RmRunning: useless cbch RTS. more=%d,tPage=%d\n",
+ // rm_SmscbcMsg.morPage, rm_SmscbcMsg.totPage));
+ //}
+
+ u8 BroadCast_over = 0;
+ u8 oldCurPage = rm_CbMsgTable.curMsg;
+ do{
+ u8 totPage = rm_CbMsgTable.table[rm_CbMsgTable.curMsg].totPage;
+
+ if( rm_CbMsgTable.table[rm_CbMsgTable.curMsg].state == 1 ) //active
+ {
+ if( rm_CbMsgTable.table[rm_CbMsgTable.curMsg].curPageInCurMsg < totPage )//more page
+ {
+ rm_BroadcastNewCbMsg( rm_CbMsgTable.curMsg );
+ rm_CbMsgTable.table[rm_CbMsgTable.curMsg].curPageInCurMsg++;
+ BroadCast_over = 1;
+ }
+ //one page or last page
+ else if( totPage != 0 &&
+ rm_CbMsgTable.table[rm_CbMsgTable.curMsg].curPageInCurMsg == totPage)
+ {
+ rm_BroadcastNewCbMsg( rm_CbMsgTable.curMsg );
+ BroadCast_over = 1;
+ rm_CbMsgTable.table[rm_CbMsgTable.curMsg].curPageInCurMsg = 1;
+ ++rm_CbMsgTable.curMsg;
+ if(rm_CbMsgTable.curMsg == SmsCbc_TableRow_MAX)
+ rm_CbMsgTable.curMsg = 0;
+ }
+
+ else if(totPage == 0 )//null message
+ {
+ rm_CbMsgTable.table[rm_CbMsgTable.curMsg].state = -1;
+ ++rm_CbMsgTable.curMsg;
+ if(rm_CbMsgTable.curMsg == SmsCbc_TableRow_MAX)
+ rm_CbMsgTable.curMsg = 0;
+ }
+ }
+ else//inactive
+ {
+ ++rm_CbMsgTable.curMsg;
+ if(rm_CbMsgTable.curMsg == SmsCbc_TableRow_MAX)
+ rm_CbMsgTable.curMsg = 0;
+ }
+
+ if (rm_CbMsgTable.curMsg==oldCurPage && BroadCast_over ==0)
+ {
+ rm_BroadcastNilCbMsg();
+ BroadCast_over = 1;
+ }
+ }while(BroadCast_over == 0);
+ }
+ //PR 1323 End
+
+ // Got a message of unexpected message type landed at this SM state
+ else
+ IDEBUG__(("WARNING@rm_S2ActivatingSigTrafficChan: unexpect L1 MT(%d,%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[0],
+ rm_pItcRxL1Msg->l3_data.buffer[1],
+ rm_pItcRxL1Msg->l3_data.buffer[2]));
+ }
+
+ // Got a message of unexpected message group landed at this SM state
+ else
+ IDEBUG__(("WARNING@rm_S1RmRunning: unexpect L1 MG(%d,%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[0],
+ rm_pItcRxL1Msg->l3_data.buffer[1],
+ rm_pItcRxL1Msg->l3_data.buffer[2]));
+ break;
+
+ default:
+ //SMS-SAPI3-Begin
+
+ //Unexpected message orgination
+ //IDEBUG__(("WARNING@rm_S1RmRunning: wrong msg origination:%d\n",
+ // rm_ItcRxOrigin));
+
+ //SMS-SAPI3-End
+
+ break;
+
+ } //End of switch()
+}
+
+#endif //__RM_S1RMRUNNING_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S2ActivatingSigTrafficChan.cpp b/data/mnet/GP10/Host/rm/Src/rm_S2ActivatingSigTrafficChan.cpp
new file mode 100644
index 0000000..08bf103
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S2ActivatingSigTrafficChan.cpp
@@ -0,0 +1,147 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_S2ACTIVATINGSIGTRAFFICCHAN_CPP__
+#define __RM_S2ACTIVATINGSIGTRAFFICCHAN_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_S2ActivatingSigTrafficChan( void )
+{
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_S2ActivatingSigTrafficChan\n"));
+
+ if (rm_pSmCtxt->smType != RM_MAIN_SM)
+ {
+ //Channel Activation always associated with main SM
+ EDEBUG__(("ERROR-rm_S2ActivatingSigTrafficChan: not main SM\n"));
+ return;
+ }
+
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_L1:
+ //Get a MPH_INFO_INF message. Analyze and process it
+ if ( rm_pItcRxL1Msg->l3_data.buffer[0]==RM_L1MG_DEDMGMT )
+ {
+ //Check if having got Channel Act. Ack or Nack
+ if ( rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_CHANACTIVACK_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_CHANACTIVACK_LSB )
+ {
+ //Got a positive ack to Channel Activation
+
+ if (rm_pItcRxL1Msg->l3_data.buffer[8] != 0)
+ {
+ IDEBUG__(("WARNING@rm_S2Act..: received warning(%d) to chan act on entryId(%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[8], rm_ItcRxEntryId));
+ }
+
+ //SMS-SAPI3-Begin
+ //Call LAPDm local release to clean up the channel in case
+ //rm_SendDlRelReq(rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,RM_LOCAL_RELEASE);
+
+ rm_SendDlRelReq(rm_pSmCtxt->mOId,RM_SAPI0,RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->mOId,RM_SAPI3,RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->aOId,RM_SAPI3,RM_LOCAL_RELEASE);
+
+ //SMS-SAPI3-End
+
+ //Further check if Channel Activation is caused by Channel Request
+ //from Mobile or Handover Request from MM
+ if (rm_pSmCtxt->isForHo==RM_FALSE)
+ {
+ //Related to Channel Request from Mobile
+ rm_SendImmAssign(rm_pSmCtxt->pPhyChan);
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3101);
+ rm_pSmCtxt->state = RM_S3SIGCHAN_ACTIVATED;
+ } else
+ {
+ //HOADDED
+ //Related to Handover Request from MM
+ //Send back Handover Request Ack to MM
+ if (rm_SendHoReqAck())
+ {
+ rm_pSmCtxt->waitHoComplt = RM_FALSE;
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3101);
+ rm_pSmCtxt->state = RM_S4TRAFFICCHAN_ACTIVATED;
+ }
+ else
+ {
+ //Failed in sending back Handover Request Ack and release
+ //radio resource
+ EDEBUG__(("ERROR@rm_S2ActivatingSigTrafficChan: failed in rm_SendHoReqAck\n"));
+
+ rm_SendHoReqNAck(rm_pSmCtxt->pPhyChan->hoRef);
+
+ //rm_RslRelease(); //This contains unecessary info, may mod.
+ rm_pSmCtxt->state = RM_S1RM_RUNNING;
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_FREE;
+ rm_SendRfChanRelease(rm_pSmCtxt->pPhyChan);
+ }
+ }
+ }
+ else if ( rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_CHANACTIVNACK_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_CHANACTIVNACK_LSB )
+ {
+ //Got a negative Ack to Channel Activation
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_SendRfChanRelease(rm_pSmCtxt->pPhyChan);
+
+ IDEBUG__(("WARNING@rm_S2ActivatingSigTrafficChan: nack to act chan(%d,%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[3],
+ rm_pItcRxL1Msg->l3_data.buffer[4],
+ rm_pItcRxL1Msg->l3_data.buffer[5]));
+
+ //Further check if Channel Activation is caused by Channel Request
+ //from Mobile or Handover Request from MM
+ if (rm_pSmCtxt->isForHo==RM_TRUE)
+ {
+ //If it's Handover Request caused, send HoReqAck back to MM
+ rm_SendHoReqNAck(rm_pSmCtxt->pPhyChan->hoRef);
+ }
+
+ //SMS-SAPI3-Begin
+
+ //For benefit of LAPDm's internal cleanup
+ rm_SendDlRelReq(rm_pSmCtxt->mOId,RM_SAPI0,RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->mOId,RM_SAPI3,RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->aOId,RM_SAPI3,RM_LOCAL_RELEASE);
+
+ //SMS-SAPI3-End
+
+ //Reset relevant RM channel resources
+ rm_pSmCtxt->state = RM_S1RM_RUNNING;
+ rm_SmCtxt[rm_pSmCtxt->aEntryId].state = RM_S1RM_RUNNING;
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_FREE;
+
+ //Report this negative ack to Channel Activation
+ EDEBUG__(("ERROR-rm_S2ActivatingSigTrafficChan:NACK received\n"));
+ //EDUMP__(( MAREA__, rm_pItcRxL1Msg->l3_data.buffer,
+ // rm_pItcRxL1Msg->l3_data.msgLength ));
+ }
+ else
+ EDEBUG__(("ERROR-rm_S2ActivatingSigTrafficChan:L1 MsgType:%d,%d\n",
+ rm_pItcRxL1Msg->l3_data.buffer[1],
+ rm_pItcRxL1Msg->l3_data.buffer[2] ));
+ }
+ else
+ EDEBUG__(("ERROR@rm_S2ActivatingSigTrafficChan:L1 MsgGroup:%d\n",
+ rm_pItcRxL1Msg->l3_data.buffer[0]));
+ break;
+
+ default:
+ //TBD: Unexpected message orgination
+ UDEBUG__(("ERROR@rm_S2ActivatingSigTrafficChan:wrong msg origination:%d\n",
+ rm_ItcRxOrigin));
+ break;
+
+ } //End of switch()
+
+} //End of rm_S2ActivatingSigTrafficChan()
+
+#endif //__RM_S2ACTIVATINGSIGTRAFFICCHAN_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S3SigChanActivated.cpp b/data/mnet/GP10/Host/rm/Src/rm_S3SigChanActivated.cpp
new file mode 100644
index 0000000..31d9e6b
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S3SigChanActivated.cpp
@@ -0,0 +1,142 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+
+#ifndef __RM_S3SIGCHANACTIVATED_CPP__
+#define __RM_S3SIGCHANACTIVATED_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_S3SigChanActivated(void)
+{
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_S3SigChanActivated\n"));
+
+ if (rm_pSmCtxt->smType != RM_MAIN_SM)
+ {
+ //Channel Activation always associated with main SM
+ EDEBUG__(("ERROR-rm_S3SigChanActivated: not main SM\n"));
+ return;
+ }
+
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_MD:
+ //Check if received DL_REL_CNF sent before ImmAssignmmt
+ if (rm_pItcRxMdMsg->primitive_type == L23PT_DL_REL_CONF)
+ return;
+ if (rm_pItcRxMdMsg->primitive_type == DL_EST_IND)
+ {
+ //Received DL_EST_IND:Stop T3101 and go new ST
+ rm_StopTimer( rm_ItcRxEntryId, RM_T3101 );
+ rm_pSmCtxt->sapi = rm_pItcRxMdMsg->sapi;
+ rm_pSmCtxt->state = RM_S5SIGMODE_ESTABLISHED;
+
+ //rm_ProcClassMarkIE();
+
+ switch(rm_pSmCtxt->callType)
+ {
+ case RM_CHANREQ_COS_LUP: //RM_CALLTYPE_LUP:
+
+ //PMADDED:meanNbrOfBusySDCCHs,maxNbrOfBusySDCCHs
+
+ rm_pSmCtxt->pPhyChan->chanBusy=RM_TRUE;
+
+ rm_NoOfBusySdcch4++;
+ rm_maxNbrOfBusySDCCHs++;
+ PM_CellMeasurement.meanNbrOfBusySDCCHs.addRecord(rm_NoOfBusySdcch4);
+ PM_CellMeasurement.maxNbrOfBusySDCCHs.setValue(rm_maxNbrOfBusySDCCHs); //increment();
+ //PM_CellMeasurement.maxNbrOfBusySDCCHs.addRecord(rm_maxNbrOfBusySDCCHs); //increment();
+
+ break;
+ case RM_CHANREQ_COS_EMC: //RM_CALLTYPE_EMC:
+ case RM_CHANREQ_COS_MOC: //RM_CALLTYPE_MOC:
+ case RM_CHANREQ_COS_MTC: //RM_CALLTYPE_MTC:
+
+ if (rm_pSmCtxt->callType==RM_CHANREQ_COS_MTC)
+ rm_SendPagingRsp();
+
+ //PMADDED:meanNbrOfBusyTCHs,maxNbrOfBusyTCHs,meanTCHBusyTime,
+ // succTCHSeizures
+
+ rm_pSmCtxt->pPhyChan->chanBusy=RM_TRUE;
+
+ //rm_NoOfBusyTchf++;
+ //PM_CellMeasurement.meanNbrOfBusyTCHs.addRecord(rm_NoOfBusyTchf);
+ //PM_CellMeasurement.maxNbrOfBusyTCHs.increment();
+ //PM_CellMeasurement.succTCHSeizures.increment();
+ //rm_pSmCtxt->pPhyChan->startTime=tickGet();
+ break;
+
+ default:
+ UDEBUG__(("UNKNOWN-rm_S3SigChanActivated:wrong call type:%d\n",
+ rm_pSmCtxt->callType));
+ break;
+ }
+ }
+ else
+ EDEBUG__(("ERROR-rm_S3SigChanActivated: wrong LAPDm message:%d\n",
+ rm_pItcRxMdMsg->primitive_type));
+
+ break;
+
+ case MODULE_RM:
+ PDEBUG__(("rm_S3SigChanActivated: Timer Expiry for entryID=%d\n", rm_ItcRxEntryId));
+
+ if ( rm_pItcRxRmMsg->primitive_type != RM_TIMER_IND ||
+ rm_pSmCtxt->pPhyChan->T3101.state == RM_FALSE ||
+ rm_pItcRxRmMsg->timerId != RM_T3101 )
+ {
+ EDEBUG__(("ERROR-rm_S3ReleasingSigTrafficChan: prim:%d,timer:%d, sta:%d\n",
+ rm_pItcRxRmMsg->primitive_type,
+ rm_pItcRxRmMsg->timerId,
+ rm_pSmCtxt->pPhyChan->T3101.state ));
+ return;
+ }
+
+
+ // No rsp to Imm Assignment. Release resources
+ switch(rm_pSmCtxt->callType)
+ {
+ //FFS:
+ //RM goes ahead to release RF channel. But before a release
+ //command reaching L1 and put into effect, a DL_EST_IND may
+ //come to RR if T3101 time is not properly set.
+ case RM_CALLTYPE_LUP:
+ case RM_CALLTYPE_MOC:
+ case RM_CALLTYPE_MTC:
+ //Release the RF channel as well as associated SMs
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_SendRfChanRelease(rm_pSmCtxt->pPhyChan);
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->pPhyChan->T3101.state = RM_FALSE;
+ rm_pSmCtxt->state = RM_S9DEACTIVATING_SIGTRAFFICCHAN;
+ rm_SmCtxt[rm_pSmCtxt->aEntryId].state = RM_S1RM_RUNNING;
+ break;
+
+ default:
+ UDEBUG__(("UNKNOWN-rm_S3SigChanActivated:wrong call type:%d\n",
+ rm_pSmCtxt->callType));
+ break;
+
+ } //End of switch()
+
+ break;
+
+ default:
+ //Unexpected message origin at this SM state
+ EDEBUG__(("ERROR-rm_S3SigChanActivated: unexpected message origin:%d\n",
+ rm_ItcRxOrigin));
+ break;
+
+ } //End of switch()
+
+} //End of rm_S3SigChanActivated()
+
+#endif //__RM_S3SIGCHANACTIVATED_CPP__
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S4TrafficChanActivated.cpp b/data/mnet/GP10/Host/rm/Src/rm_S4TrafficChanActivated.cpp
new file mode 100644
index 0000000..c165542
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S4TrafficChanActivated.cpp
@@ -0,0 +1,203 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+
+#ifndef __RM_S4TRAFFICCHANACTIVATED_CPP__
+#define __RM_S4TRAFFICCHANACTIVATED_CPP__
+
+//HOADDED
+#include "rm\rm_head.h"
+
+void rm_S4TrafficChanActivated(void)
+{
+ rm_EdRet_t rrEdRet; //Return code from RR decode
+ rm_L3Data_t l3_data; //Store encoded to Physical Information message
+
+ // Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_S4TrafficChanActivated\n"));
+
+ if (rm_pSmCtxt->smType != RM_MAIN_SM ||
+ rm_pSmCtxt->isForHo == RM_FALSE )
+ {
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated: SMtype=%d,isForHo=%d\n",
+ rm_pSmCtxt->smType, rm_pSmCtxt->isForHo));
+ return;
+ }
+
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_MD:
+ //Check if got valid Handover Access from Mobile
+ if ( rm_ItcRxPrim == DLm_OTHRA_IND )
+ {
+ //Check if this RA is as expected by RM
+ if (rm_pItcRxMdMsg->sapi != RM_SAPI0 ||
+ rm_pItcRxMdMsg->l3_data.buffer[0] != rm_pSmCtxt->pPhyChan->hoRef)
+ {
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated: RmRef=%d,MdRef=%d\n",
+ rm_pSmCtxt->pPhyChan->hoRef,
+ rm_pItcRxMdMsg->l3_data.buffer[0]));
+ return;
+ }
+
+ rm_StopTimer(rm_ItcRxEntryId, RM_T3101);
+
+ //Got an expected RA from Mobile on allocated channel. Save relevant
+ //data for future use
+ rm_pSmCtxt->sapi = rm_pItcRxMdMsg->sapi;
+ rm_pSmCtxt->pPhyChan->hoTa = (u8)rm_pItcRxMdMsg->l3_data.buffer[3];
+
+
+ //Got Handover Access from Mobile, send out Physical Information
+ //Encode Physical Information message
+ l3_data.buffer[0] = (u8)RM_PD;
+ l3_data.buffer[1] = (u8)CNI_RIL3RRM_MSGID_PHYSICAL_INFORMATION;
+ l3_data.buffer[2] = rm_pSmCtxt->pPhyChan->hoTa;
+ l3_data.msgLength = 3;
+
+ //Send out l3_data via DL_UNIT_DATA_REQ
+ //Send four Physical Information together for TEST purpose
+ //CNI_LAPDM_Dl_Unit_Data_Request( rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,
+ // L2T_NORMAL_HEADER, &l3_data);
+ //CNI_LAPDM_Dl_Unit_Data_Request( rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,
+ // L2T_NORMAL_HEADER, &l3_data);
+ //CNI_LAPDM_Dl_Unit_Data_Request( rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,
+ // L2T_NORMAL_HEADER, &l3_data);
+ CNI_LAPDM_Dl_Unit_Data_Request( rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,
+ L2T_NORMAL_HEADER, &l3_data);
+ //Reset ny1 and start timer to monitor arrival of right decoded msg
+ //on the handed-over channel
+ rm_pSmCtxt->pPhyChan->ny1 = 0;
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3105);
+ } else
+ {
+ //Check if received Handover Complete message from Mobile
+ switch(rm_pItcRxMdMsg->primitive_type)
+ {
+ case DL_EST_IND:
+ rm_pSmCtxt->pPhyChan->ny1 = OAMrm_NY1;
+ rm_StopTimer(rm_ItcRxEntryId, RM_T3105);
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3105);
+ return;
+ case L23PT_DL_DATA_IND:
+ //Decode received message carried up in DL_EST_IND
+ //PR1104
+ //rrEdRet = CNI_RIL3RRM_Decode( &(rm_pItcRxMdMsg->l3_data),&rm_UmMsg );
+ rrEdRet = rm_MsgAnalyze();
+
+ if ( rrEdRet != RM_RRED_SUCCESS )
+ {
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated: l3_data decoded KO\n"));
+ return;
+ }
+
+ //Successfully decode L3 data carried in DL_EST_IND
+ if ( rm_UmMsg.header.protocol_descriminator!=RM_PD ||
+ rm_UmMsg.header.message_type!=CNI_RIL3RRM_MSGID_HANDOVER_COMPLETE )
+ {
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated:unexped msg PD:%d;MT:%d\n",
+ rm_UmMsg.header.protocol_descriminator,
+ rm_UmMsg.header.message_type ));
+ //PR1104
+ rm_SendRrStatus(CNI_RIL3_RR_MESSAGE_TYPE_NOT_COMPATIBLE);
+ return;
+ }
+
+ //Got Handover Complete message from Mobile, i.e. Mobile has successfully
+ //moved to new frequency/cell
+ RDEBUG__(("HANDOVER SUCCESS!!!-rm_S4TrafficChanActivated\n"));
+ rm_StopTimer(rm_ItcRxEntryId, RM_T3105);
+ rm_SendHoComplete();
+ rm_pSmCtxt->state = RM_S10TRAFFICMODE_ESTABLISHED;
+
+ //PM: succTCHSeizures, maxNbrOfBusyTCHs, meanNbrOfBusyTCHs
+
+ PM_CellMeasurement.succTCHSeizures.increment();
+ rm_maxNbrOfBusyTCHs++;
+ PM_CellMeasurement.maxNbrOfBusyTCHs.setValue(rm_maxNbrOfBusyTCHs);
+
+ //PM_CellMeasurement.maxNbrOfBusyTCHs.addRecord(rm_maxNbrOfBusyTCHs);
+ rm_NoOfBusyTchf++;
+ PM_CellMeasurement.meanNbrOfBusyTCHs.addRecord(rm_NoOfBusyTchf);
+
+ rm_pSmCtxt->pPhyChan->startTime=tickGet();
+
+ rm_pSmCtxt->pPhyChan->chanBusy = RM_TRUE;
+
+ break;
+
+ default:
+ PDEBUG__(("TRACE@rm_S4TrafficChanActivated:unexpected L2/primitive:%d\n",
+ rm_pItcRxMdMsg->primitive_type));
+ return;
+ }
+ }
+ break;
+
+ case MODULE_RM:
+ PDEBUG__(("rm_S4TrafficChanActivated: Timer Expiry for entryID=%d\n",
+ rm_ItcRxEntryId));
+
+ if ( rm_pItcRxRmMsg->primitive_type != RM_TIMER_IND ||
+ rm_pSmCtxt->pPhyChan->T3105.state == RM_FALSE ||
+ rm_pItcRxRmMsg->timerId != RM_T3105 ||
+ rm_pItcRxRmMsg->timerId != RM_T3101 )
+ {
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated: prim:%d,timer:%d, sta:%d\n",
+ rm_pItcRxRmMsg->primitive_type,
+ rm_pItcRxRmMsg->timerId,
+ rm_pSmCtxt->pPhyChan->T3105.state ));
+ return;
+ }
+
+
+ // Check if need to send more Physical Information or fail the HO effort
+ if ( (rm_pSmCtxt->pPhyChan->ny1 < OAMrm_NY1) &&
+ (rm_pItcRxRmMsg->timerId != RM_T3101 ) )
+ {
+ //T3105 expired but not got Handover Complete message, resend Physical
+ //Information message
+ l3_data.buffer[0] = (u8)RM_PD;
+ l3_data.buffer[1] = (u8)CNI_RIL3RRM_MSGID_PHYSICAL_INFORMATION;
+ l3_data.buffer[2] = rm_pSmCtxt->pPhyChan->hoTa;
+ l3_data.msgLength = 3;
+
+ //Send out l3_data via DL_UNIT_DATA_REQ
+ CNI_LAPDM_Dl_Unit_Data_Request( rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,
+ L2T_NORMAL_HEADER, &l3_data);
+ //Increment ny1 and restart timer T3105
+ rm_pSmCtxt->pPhyChan->ny1++;
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3105);
+ } else
+ {
+ //Already finished retry of all ny1 times in sending Physical Info.
+ //Send Handover Failure message to CC and release RM resources
+ rm_pSmCtxt->waitHoComplt = RM_FALSE;
+
+ //ext-HO <xxu:06-25-01>
+ rm_SendHoFailure(0x01,-1); //Radio Interface Failure
+
+ //rm_RslRelease();
+ rm_StopTimer(rm_ItcRxEntryId, RM_T3105);
+ rm_ProcRrRelease(CNI_RIL3_CAUSE_DESTINATION_OUT_OF_ORDER);
+ }
+
+ break;
+
+ default:
+ //Unexpected message origin at this SM state
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated:unexpected message origin:%d\n",
+ rm_ItcRxOrigin));
+ break;
+
+ } //End of switch()
+
+}
+
+#endif //__RM_S4TRAFFICCHANACTIVATED_CPP__
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S4TrafficChanActivated.cpp.old b/data/mnet/GP10/Host/rm/Src/rm_S4TrafficChanActivated.cpp.old
new file mode 100644
index 0000000..2e9e313
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S4TrafficChanActivated.cpp.old
@@ -0,0 +1,158 @@
+#ifndef __RM_S4TRAFFICCHANACTIVATED_CPP__
+#define __RM_S4TRAFFICCHANACTIVATED_CPP__
+
+
+//HOADDED
+#include "rm\rm_head.h"
+
+void rm_S4TrafficChanActivated(void)
+{
+ rm_EdRet_t rrEdRet; //Return code from RR decode
+ rm_L3Data_t l3_data; //Store encoded to Physical Information message
+
+ // Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_S4TrafficChanActivated\n"));
+
+ if (rm_pSmCtxt->smType != RM_MAIN_SM ||
+ rm_pSmCtxt->isForHo == RM_FALSE )
+ {
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated: SMtype=%d,isForHo=%d\n",
+ rm_pSmCtxt->smType, rm_pSmCtxt->isForHo));
+ return;
+ }
+
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_MD:
+ //Check if got valid Handover Access from Mobile
+ if ( rm_ItcRxPrim == DLm_OTHRA_IND )
+ {
+ //Check if this RA is as expected by RM
+ if (rm_pItcRxMdMsg->sapi != RM_SAPI0 ||
+ rm_pItcRxMdMsg->l3_data.buffer[0] != rm_pSmCtxt->pPhyChan->hoRef)
+ {
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated: RmRef=%d,MdRef=%d\n",
+ rm_pSmCtxt->pPhyChan->hoRef,
+ rm_pItcRxMdMsg->l3_data.buffer[0]));
+ return;
+ }
+
+ //Got an expected RA from Mobile on allocated channel. Save relevant
+ //data for future use
+ rm_pSmCtxt->sapi = rm_pItcRxMdMsg->sapi;
+ rm_pSmCtxt->pPhyChan->hoTa = (u8)rm_pItcRxMdMsg->l3_data.buffer[3];
+
+
+ //Got Handover Access from Mobile, send out Physical Information
+ //Encode Physical Information message
+ l3_data.buffer[0] = (u8)RM_PD;
+ l3_data.buffer[1] = (u8)CNI_RIL3RRM_MSGID_PHYSICAL_INFORMATION;
+ l3_data.buffer[2] = rm_pSmCtxt->pPhyChan->hoTa;
+ l3_data.msgLength = 3;
+
+ //Send out l3_data via DL_UNIT_DATA_REQ
+//Send four Physical Information together for TEST purpose
+ CNI_LAPDM_Dl_Unit_Data_Request( rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,
+ L2T_NORMAL_HEADER, &l3_data);
+ CNI_LAPDM_Dl_Unit_Data_Request( rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,
+ L2T_NORMAL_HEADER, &l3_data);
+ CNI_LAPDM_Dl_Unit_Data_Request( rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,
+ L2T_NORMAL_HEADER, &l3_data);
+ CNI_LAPDM_Dl_Unit_Data_Request( rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,
+ L2T_NORMAL_HEADER, &l3_data);
+ //Reset ny1 and start timer to monitor arrival of right decoded msg
+ //on the handed-over channel
+ rm_pSmCtxt->pPhyChan->ny1 = 0;
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3105);
+ } else
+ {
+ //Check if received Handover Complete message from Mobile
+ if (rm_pItcRxMdMsg->primitive_type != DL_EST_IND)
+ {
+ //Should only receive DL_EST_IND here
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated:unexpected L2/primitive:%d\n",
+ rm_pItcRxMdMsg->primitive_type));
+ return;
+ } else
+ {
+ //Decode received message carried up in DL_EST_IND
+ rrEdRet = CNI_RIL3RRM_Decode( &(rm_pItcRxMdMsg->l3_data),&rm_UmMsg );
+ if ( rrEdRet != RM_RRED_SUCCESS )
+ {
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated: l3_data decoded KO\n"));
+ return;
+ }
+
+ //Successfully decode L3 data carried in DL_EST_IND
+ if ( rm_UmMsg.header.protocol_descriminator!=RM_PD ||
+ rm_UmMsg.header.message_type!=CNI_RIL3RRM_MSGID_HANDOVER_COMPLETE )
+ {
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated:unexped msg PD:%d;MT:%d\n",
+ rm_UmMsg.header.protocol_descriminator,
+ rm_UmMsg.header.message_type ));
+ return;
+ }
+
+ //Got Handover Complete message from Mobile, i.e. Mobile has successfully
+ //moved to new frequency/cell
+ RDEBUG__(("HANDOVER SUCCESS!!!-rm_S4TrafficChanActivated\n"));
+ rm_StopTimer(rm_ItcRxEntryId, RM_T3105);
+ rm_SendHoComplete();
+ rm_pSmCtxt->state = RM_S10TRAFFICMODE_ESTABLISHED;
+ }
+ }
+ break;
+
+ case MODULE_RM:
+ PDEBUG__(("rm_S4TrafficChanActivated: Timer Expiry for entryID=%d\n",
+ rm_ItcRxEntryId));
+
+ if ( rm_pItcRxRmMsg->primitive_type != RM_TIMER_IND ||
+ rm_pSmCtxt->pPhyChan->T3105.state == RM_FALSE ||
+ rm_pItcRxRmMsg->timerId != RM_T3105 )
+ {
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated: prim:%d,timer:%d, sta:%d\n",
+ rm_pItcRxRmMsg->primitive_type,
+ rm_pItcRxRmMsg->timerId,
+ rm_pSmCtxt->pPhyChan->T3101.state ));
+ return;
+ }
+
+ // Check if need to send more Physical Information or fail the HO effort
+ if (rm_pSmCtxt->pPhyChan->ny1 < OAMrm_NY1)
+ {
+ //T3105 expired but not got Handover Complete message, resend Physical
+ //Information message
+ l3_data.buffer[0] = (u8)RM_PD;
+ l3_data.buffer[1] = (u8)CNI_RIL3RRM_MSGID_PHYSICAL_INFORMATION;
+ l3_data.buffer[2] = rm_pSmCtxt->pPhyChan->hoTa;
+ l3_data.msgLength = 3;
+
+ //Send out l3_data via DL_UNIT_DATA_REQ
+ CNI_LAPDM_Dl_Unit_Data_Request( rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,
+ L2T_NORMAL_HEADER, &l3_data);
+ //Increment ny1 and restart timer T3105
+ rm_pSmCtxt->pPhyChan->ny1++;
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3105);
+ } else
+ {
+ //Already finished retry of all ny1 times in sending Physical Info.
+ //Send Handover Failure message to CC and release RM resources
+ rm_SendHoFailure();
+ rm_RslRelease();
+ }
+
+ break;
+
+ default:
+ /* Unexpected message origin at this SM state */
+ EDEBUG__(("ERROR-rm_S4TrafficChanActivated:unexpected message origin:%d\n",
+ rm_ItcRxOrigin));
+ break;
+
+ } /* End of switch() */
+
+}
+
+#endif /*__RM_S4TRAFFICCHANACTIVATED_CPP__*/
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S5SigModeEstablished.cpp b/data/mnet/GP10/Host/rm/Src/rm_S5SigModeEstablished.cpp
new file mode 100644
index 0000000..e14b157
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S5SigModeEstablished.cpp
@@ -0,0 +1,527 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_S5SIGMODEESTABLISHED_CPP__
+#define __RM_S5SIGMODEESTABLISHED_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_S5SigModeEstablished( void )
+{
+ u8 ret;
+ rm_LapdmOId_t lapdmOId;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_S5SigModeEstablished\n"));
+
+ // TBD:
+ // Now at dedicated mode, RM monitors all the Measurement Result msgs
+ // from L1. L1 sends up this message even a bad receive encounered on
+ // the SACCH. This message is used to judge if RSL occurs.
+
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_L1:
+ // Check if gotot a Measurement Result msg on SACCH from L1
+ if ( rm_pItcRxL1Msg->l3_data.buffer[0]==RM_L1MG_DEDMGMT &&
+ rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_MEASRES_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_MEASRES_LSB )
+ {
+ //SMS-SAPI3-Begin
+
+ // Got it. Process Measurement Result message. Also report
+ // Radio Signaling Link (RSL) broken if judged as such
+ //ret = rm_ProcMeasRes();
+ //switch (ret)
+ //{
+ //case RM_RSLIND:
+ // // Radio Signaling Link loss detected
+ // rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ // if (rm_pSmCtxt->smType==RM_MAIN_SM)
+ // lapdmOId = rm_pSmCtxt->mOId;
+ // else
+ // lapdmOId = rm_pSmCtxt->aOId;
+ //
+ // //CT_CHN rm_SendDlRelReq(lapdmOId, RM_SAPI0,
+ // // rm_pSmCtxt->chanType,RM_LOCAL_RELEASE);
+ // rm_SendDlRelReq(lapdmOId, RM_SAPI0, RM_LOCAL_RELEASE);
+ //
+ // if (rm_pSmCtxt->sapi != RM_SAPI0)
+ // //CT_CHN rm_SendDlRelReq(lapdmOId, rm_pSmCtxt->sapi,
+ // // rm_pSmCtxt->chanType,RM_LOCAL_RELEASE);
+ // rm_SendDlRelReq(lapdmOId, rm_pSmCtxt->sapi,RM_LOCAL_RELEASE);
+ //
+ // rm_SendRrRelInd(RM_RSLIND, rm_ItcRxEntryId);
+ // rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+ //
+ // // Adjust SM state to S7
+ // rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+ // rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ //
+ // break;
+ //
+ //default:
+ // // TBD: Unsupported results including HO needed. But
+ // // HO may not make sense for this case since no talk.
+ //
+ // UDEBUG__(("UNKNOWN-rm_S5SigModeEstablished:unsupported result:%d\n",
+ // ret));
+ // break;
+ //}
+
+ //Unexpected L1 message
+ UDEBUG__(("WARNING@rm_S5SigModeEstablished:unexpected L1 msg(%d,%d,%d)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[0],
+ rm_pItcRxL1Msg->l3_data.buffer[1],
+ rm_pItcRxL1Msg->l3_data.buffer[2]));
+
+ //SMS-SAPI3-End
+
+ } else
+ // Got an unexpected message from L1
+ EDEBUG__(( "ERROR-rm_S5SigModeEstablished:L1 msg: PD:%x;MT:%x,%x\n",
+ rm_pItcRxL1Msg->l3_data.buffer[0],
+ rm_pItcRxL1Msg->l3_data.buffer[1],
+ rm_pItcRxL1Msg->l3_data.buffer[2] ));
+ break;
+
+ case MODULE_MD:
+ //SMS-SAPI3-Begin
+
+ //Receive MDL error report
+ //if ( rm_pItcRxMdMsg->primitive_type == MDL_ERR_RPT ||
+ // rm_pItcRxMdMsg->primitive_type == DL_REL_IND )
+ //{
+
+ if ( rm_pItcRxMdMsg->primitive_type == DL_REL_IND )
+ {
+ //SMS-SAPI3-End
+
+ if (rm_pSmCtxt->smType==RM_MAIN_SM)
+ {
+ //SMS-SAPI3-Begin
+
+ //lapdmOId = rm_pSmCtxt->mOId;
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ //rm_SendRrRelInd(RM_MDLERR,rm_ItcRxEntryId);
+ rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI3, RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+
+ //CT_CHN rm_SendDlRelReq(lapdmOId, RM_SAPI0,
+ // rm_pSmCtxt->chanType,RM_LOCAL_RELEASE);
+ //rm_SendDlRelReq(lapdmOId, RM_SAPI0, RM_LOCAL_RELEASE);
+
+ //if (rm_pSmCtxt->sapi != RM_SAPI0)
+ // //CT_CHN rm_SendDlRelReq(lapdmOId, rm_pSmCtxt->sapi,
+ // // rm_pSmCtxt->chanType,RM_LOCAL_RELEASE);
+ // rm_SendDlRelReq(lapdmOId, rm_pSmCtxt->sapi,RM_LOCAL_RELEASE);
+
+ //The following is for safety-guard purpose, thus may be redundancy
+ //rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI3, RM_LOCAL_RELEASE);
+ //rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+ //rm_SmCtxt_t *pASmCtxt;
+ //pASmCtxt = rm_pSmCtxt->pPhyChan->pASmCtxt;
+ //pASmCtxt->state = RM_S1RM_RUNNING;
+
+ //SMS-SAPI3-End
+
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ rm_pSmCtxt->relCause = CNI_RIL3_CAUSE_NORMAL_UNSPECIFIED;
+ //CNI_RIL3_CAUSE_DESTINATION_OUT_OF_ORDER;
+ //CNI_RIL3_CAUSE_TEMPORARY_FAILURE;
+
+ // Adjust SM state to S7
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+
+ //SMS-SAPI3-Begin
+ }
+ //} else
+ //{
+ //lapdmOId = rm_pSmCtxt->aOId;
+
+ //SMS-SAPI3-Begin
+
+ //rm_SendRrRelInd(RM_MDLERR,rm_ItcRxEntryId);
+ //CT_CHN rm_SendDlRelReq(lapdmOId, RM_SAPI0,
+ // rm_pSmCtxt->chanType,RM_LOCAL_RELEASE);
+ //rm_SendDlRelReq(lapdmOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+ //SMS-SAPI3-End
+
+ //rm_pSmCtxt->state = RM_S1RM_RUNNING;
+ //}
+ //SMS-SAPI3-End
+
+ } else if ( rm_pItcRxMdMsg->primitive_type == DL_DATA_IND)
+ {
+ rm_ProcMsCiphModeCmplt();
+ } else
+ //Unexpected L2 Message received
+ IDEBUG__(("WARNING@rm_S5SigModeEstablished: unexpect L2 msg (%d, %d %d, %d, %d)\n",
+ rm_pItcRxMdMsg->primitive_type,
+ rm_pItcRxMdMsg->lapdm_oid,
+ rm_pItcRxMdMsg->sapi,
+ rm_pItcRxMdMsg->rel_mode,
+ rm_pItcRxMdMsg->est_mode,
+ rm_pItcRxMdMsg->error_cause));
+ break;
+
+ case MODULE_CC:
+ // Got a message from CC. Only accept a Channel Assign Command
+ if (rm_pItcRxCcMsg->message_type==INTRA_L3_RR_CHANN_ASSIGN_CMD)
+ {
+ rm_pSmCtxt->spchVer = 0xFF; //Invalid speech version
+ rm_ProcChanAssignCmd();
+
+ //PMADDED:attTCHSeizures
+ PM_CellMeasurement.attTCHSeizures.increment();
+ }
+ break;
+
+ case MODULE_MM:
+ if ( rm_pItcRxMmMsg->primitive_type == RR_REL_REQ )
+ {
+ //Release RF resource in terms of MM command
+ rm_SendChanRelease(rm_ItcRxEntryId);
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ rm_pSmCtxt->relCause = CNI_RIL3_CAUSE_NORMAL_CALL_CLEARING; //16
+
+ //Adjust SM state to S7
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+
+ //PM Added:
+ rm_pSmCtxt->pPhyChan->chanBusy = RM_FALSE;
+
+ if ( rm_pSmCtxt->pPhyChan->chanType==RM_PHYCHAN_SDCCH4)
+ {
+ if (--rm_NoOfBusySdcch4 >= 0)
+ PM_CellMeasurement.meanNbrOfBusySDCCHs.addRecord(rm_NoOfBusySdcch4);
+ else
+ rm_NoOfBusySdcch4 = 0;
+
+ if (--rm_maxNbrOfBusySDCCHs >= 0)
+ PM_CellMeasurement.maxNbrOfBusySDCCHs.setValue(rm_maxNbrOfBusySDCCHs); // decrement();
+ //PM_CellMeasurement.maxNbrOfBusySDCCHs.addRecord(rm_maxNbrOfBusySDCCHs); // decrement();
+ else
+ rm_maxNbrOfBusySDCCHs = 0;
+ }
+ }
+ else if (rm_pItcRxMmMsg->message_type == INTRA_L3_RR_CIPHER_COMMAND)
+ {
+ //Initiate Ciphering from MM layer: command both DSP and MS !
+ rm_SendCiphModeCmd(rm_pSmCtxt);
+ rm_SendEncryptCmdToTrx(rm_pSmCtxt);
+ }
+ else
+ //Unexpected message from MM
+ EDEBUG__(("ERROR@rm_S5SigModeEstablished:MM msgType:%d\n",
+ rm_pItcRxMmMsg->message_type));
+ break;
+
+ default:
+ //Unexpected message orgination
+ EDEBUG__(("ERROR-rm_S5SigModeEstablished:wrong msg origination:%d\n",
+ rm_ItcRxOrigin));
+ break;
+
+ } // End of switch()
+}
+
+u8 rm_BeaerCapVerToChanMode(T_CNI_RIL3_SPEECH_VERSION ver)
+{
+ u8 mode;
+
+ if (ver==0) mode = 1;
+ else if (ver==2) mode = 0x21;
+ else if (ver==1) mode = 0x41;
+ else
+ {
+ EDEBUG__(("ERROR@rm_BeaerCapVerToChanMode: bearerCap '%d'\n", ver));
+ return 1;
+ }
+
+ PDEBUG__(("INFO@rm_BeaerCapVerToChanMode: BearerCap '%d'<-->Mode '%x'\n", ver, mode));
+ return mode;
+}
+
+void rm_ProcChanAssignCmd(void)
+{
+ rm_PhyChanActDesc_t actDesc;
+
+ PDEBUG__(("INFO@rm_ProcChanAssignCmd: entryId=%d,callLeg=%d\n",
+ rm_ItcRxEntryId, rm_pItcRxCcMsg->primitive_type));
+
+ //if ( rm_pSmCtxt->spchVer ==
+ // (u8)(rm_pItcRxCcMsg->l3_data.channAssignCmd.channelType.speechChann.version))
+ //{
+ // //Commanded speech version is the same as before, ack it!
+ // rm_pSmCtxt->callIdx = (u8)rm_pItcRxCcMsg->primitive_type;
+ // rm_SendChanAssignComplete();
+ // return;
+ //}
+
+ if ( rm_pSmCtxt->smType != RM_MAIN_SM )
+ {
+ EDEBUG__(("ERROR@rm_ProcChanAssignCmd: ChannAssign KO\n"));
+ return;
+ }
+
+ //Check what channel type is assigned from CC
+ switch( rm_pItcRxCcMsg->l3_data.channAssignCmd.channelType.bearerType)
+ {
+ case BEARER_SPEECH:
+ //Update both DSP and MS with the commanded speech algo version
+ //ChnAssign
+ rm_pSmCtxt->callIdx = (unsigned char)rm_pItcRxCcMsg->primitive_type;
+ rm_pSmCtxt->spchVer = (u8)(rm_pItcRxCcMsg->l3_data.channAssignCmd.channelType.speechChann.version);
+
+ //EFRAdded
+ rm_pSmCtxt->codAlgo = rm_BeaerCapVerToChanMode(rm_pItcRxCcMsg->l3_data.channAssignCmd.channelType.speechChann.version);
+
+ //PR1248 Begin
+ actDesc.dtxCtrl = 0; //DTX ul&dl both OFF
+
+ //PR1381 BEGIN
+ if ( ((int)OAMrm_MS_UPLINK_DTX_STATE==1) ||
+ ((int)OAMrm_MS_UPLINK_DTX_STATE==0) )
+ actDesc.dtxCtrl |= 1; //DTX: ul ON
+ //PR1381 END
+
+ //PR1319
+ //if ( !(rm_pSmCtxt->pPhyChan->trxNumber) && OAMrm_MS_DNLINK_DTX_STATE )
+ if ( (rm_pSmCtxt->pPhyChan->trxNumber) && OAMrm_MS_DNLINK_DTX_STATE )
+ actDesc.dtxCtrl |= 2; //DTX: dl ON
+ //PR1248 End
+
+ actDesc.datAttr = RM_L1DATATTR_SPEECH; //Channel mode:byte 2
+ actDesc.ratType = RM_L1RATTYPE_TCHF; //Channel mode:byte 3
+ //actDesc.codAlgo = RM_L1CODALGO_GSMV1; //Channel mode:byte 4
+ //actDesc.codAlgo = OAMrm_GSMCODEC; //Channel mode:byte 4
+
+ //EFRAdded
+ actDesc.codAlgo = rm_pSmCtxt->codAlgo;
+ rm_SendModeModify(rm_pSmCtxt->pPhyChan,&actDesc);
+
+ //Change SM state to S6 Activating Traffic mode
+ rm_pSmCtxt->state = RM_S6ACTIVATING_TRAFFICMODE;
+ break;
+
+ case BEARER_DATA:
+ case BEARER_SIGNALING:
+ default:
+ //Unexpected channel type in the ChannAssignCmd
+ EDEBUG__(("ERROR@rm_ProcChanAssignCmd: unsupported bearerType:%d\n",
+ rm_pItcRxMmMsg->l3_data.channAssignCmd.channelType.bearerType));
+ break;
+ }
+}
+
+void rm_SendCiphModeCmd(rm_SmCtxt_t *pSmCtxt )
+{
+ rm_EdRet_t rrEdRet; //Return code from RR decode
+ rm_L3Data_t l3_data; //Encoded Paging Req Type 1
+ T_CNI_RIL3RRM_MSG_CIPHER_MODE_COMMAND *pUmCiphModeCmd, *p;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_SendCiphModeCmd\n"));
+
+l3_data.msgLength = 0;
+l3_data.buffer[0]=0;
+l3_data.buffer[1]=0;
+l3_data.buffer[2]=0;
+
+ //Ciphering can happen on any channel and SAPIs
+
+ //Choose Cipher Mode Command
+ pUmCiphModeCmd = (T_CNI_RIL3RRM_MSG_CIPHER_MODE_COMMAND *) &(rm_UmMsg.cipherModeCommand);
+ p = (T_CNI_RIL3RRM_MSG_CIPHER_MODE_COMMAND *)&(rm_pItcRxMmMsg->l3_data.cipherCmd.cmd);
+
+ //Populate the contents so that encoder knows what to encode but
+ //before we start populating the message content, zap it clean
+ //first.
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ //Header--PD,MT,SI
+ pUmCiphModeCmd->header.protocol_descriminator = RM_PD;
+ pUmCiphModeCmd->header.si_ti = RM_SI;
+ pUmCiphModeCmd->header.message_type = CNI_RIL3RRM_MSGID_CIPHERING_MODE_COMMAND;
+
+ //IE--CipherModeSetting
+ pUmCiphModeCmd->cipherModeSetting.ie_present = p->cipherModeSetting.ie_present;
+ pUmCiphModeCmd->cipherModeSetting.ciphering = p->cipherModeSetting.ciphering;
+ pUmCiphModeCmd->cipherModeSetting.algorithm = p->cipherModeSetting.algorithm;
+
+ //IE--cipherResponse
+ pUmCiphModeCmd->cipherResponse.ie_present = p->cipherResponse.ie_present;
+ pUmCiphModeCmd->cipherResponse.cipherResponse = p->cipherResponse.cipherResponse;
+
+ PDEBUG__(("INFO@rm_SendCiphModeCmd:ciphDataUm(%d, set%d,algo%d),ciphRespUm(%d,imeisv%d)\n",
+ pUmCiphModeCmd->cipherModeSetting.ie_present,
+ pUmCiphModeCmd->cipherModeSetting.ciphering,
+ pUmCiphModeCmd->cipherModeSetting.algorithm,
+ pUmCiphModeCmd->cipherResponse.ie_present,
+ pUmCiphModeCmd->cipherResponse.cipherResponse));
+
+ PDEBUG__(("INFO@rm_SendCiphModeCmd:ciphData(%d, set%d,algo%d),ciphResp(%d,imeisv%d)\n",
+ p->cipherModeSetting.ie_present,
+ p->cipherModeSetting.ciphering,
+ p->cipherModeSetting.algorithm,
+ p->cipherResponse.ie_present,
+ p->cipherResponse.cipherResponse));
+
+ //Call RR message encoding functionality
+ rrEdRet = CNI_RIL3RRM_Encode(&rm_UmMsg, &l3_data);
+
+ PDEBUG__(("INFO@rm_SendCiphModeCmd:l3_data.buffer(%d,%x,%x,%x)\n",
+ l3_data.msgLength,
+ l3_data.buffer[0],
+ l3_data.buffer[1],
+ l3_data.buffer[2]));
+
+ //check the encoding result before sending the message
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+ //Wrap the encoded Paging message in DL_DATA_REQ
+ rm_SendDlDataReq(pSmCtxt->mOId, pSmCtxt->sapi, &l3_data);
+ PostL3SendMsLog(pSmCtxt->mOId, pSmCtxt->sapi, &l3_data);
+ break;
+
+ default:
+ //Um message encoding failed
+ EDEBUG__(("ERROR@rm_SendCiphModeCmd: Um encode error:%d\n", rrEdRet ));
+ break;
+ }
+}
+
+void rm_SendEncryptCmdToTrx(rm_SmCtxt_t *pSmCtxt )
+{
+ int i;
+ rm_ItcTxMsg_t msgToL1;
+ u16 length;
+ IntraL3CipherModeCommand_t *p;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_SendEncryptCmdToTrx\n"));
+
+ p =(IntraL3CipherModeCommand_t *) &(rm_pItcRxMmMsg->l3_data.cipherCmd);
+ PDEBUG__(("INFO@rm_SendEncryptCmdToTrx:ciphData(%d, set%d,algo%d),ciphResp(%d,imeisv%d)\n",
+ p->cmd.cipherModeSetting.ie_present,
+ p->cmd.cipherModeSetting.ciphering,
+ p->cmd.cipherModeSetting.algorithm,
+ p->cmd.cipherResponse.ie_present,
+ p->cmd.cipherResponse.cipherResponse));
+
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_DEDMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_ENCRYPTION_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_ENCRYPTION_LSB;
+ msgToL1.buffer[length++] = pSmCtxt->pPhyChan->trxNumber;
+ msgToL1.buffer[length++] = pSmCtxt->pPhyChan->chanNumberMSB;
+ msgToL1.buffer[length++] = pSmCtxt->pPhyChan->chanNumberLSB;
+
+ //Indicate link identifier to which ciphering is applied
+ if (pSmCtxt->sapi==RM_SAPI0)
+ msgToL1.buffer[length++] = 0x00; //main signaling
+ else if (pSmCtxt->sapi==RM_SAPI3)
+ msgToL1.buffer[length++] = 0x40; //asso signaling
+ else
+ {
+ msgToL1.buffer[length++] = 0x00; //main signaling
+ EDEBUG__(("ERROR@rm_SendEncryptCmdToTrx: invalid sapi '%d'\n",
+ pSmCtxt->sapi));
+ }
+
+ //Ciphering
+ if (p->cmd.cipherModeSetting.ciphering == CNI_RIl3_CIPHER_START_CIPHERING)
+ {
+ //Order algorithm to be used for the ciphering
+ msgToL1.buffer[length++] = ((u8)p->cmd.cipherModeSetting.algorithm) + 2;
+ //Pass down the ciphering key
+ for (i=0;i<8;i++)
+ msgToL1.buffer[length++] = p->Kc[i];
+ } else
+ {
+ msgToL1.buffer[length++] = 1; //No ciphering applied
+ IDEBUG__(("INFO@rm_SendEncryptCmdToTrx:OFF ciphering on (%d,%d,%d,%d)\n",
+ pSmCtxt->pPhyChan->trxNumber,
+ pSmCtxt->pPhyChan->chanNumberMSB,
+ pSmCtxt->pPhyChan->chanNumberLSB,
+ p->cmd.cipherModeSetting.ciphering));
+ }
+ //db_BDump(0,msgToL1.buffer,23);
+ msgToL1.msgLength = length;
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+}
+
+void rm_ProcMsCiphModeCmplt(void)
+{
+ int i;
+ rm_ItcTxL3Msg_t msgToMm;//Send inter MM-Rm siganling
+ T_CNI_RIL3RRM_MSG_CIPHER_MODE_COMPLETE * pUmCiphCmplt;
+ rm_EdRet_t rrEdRet;
+
+
+ //Monitoring entry to a function
+ RDEBUG__(("ENTER@rm_ProcMsCiphModeCmplt\n"));
+
+ //Decode this L3 message received to see if it is CHN MODE MODIFY ACK
+ //PR1104 RR STATUS MESSAGE
+ //rrEdRet = CNI_RIL3RRM_Decode( &(rm_pItcRxMdMsg->l3_data), &rm_UmMsg );
+ rrEdRet = rm_MsgAnalyze();
+
+ if ( rrEdRet != RM_RRED_SUCCESS )
+ {
+ EDEBUG__(("ERROR@rm_ProcMsCiphModeCmplt: L2/l3_data decoded KO\n"));
+ return;
+ }
+
+ //Decoding successful. Further check if got expected message
+ if ( rm_UmMsg.header.protocol_descriminator != RM_PD ||
+ rm_UmMsg.header.message_type != CNI_RIL3RRM_MSGID_CIPHERING_MODE_COMPLETE )
+ {
+ IDEBUG__(("INFO@rm_ProcMsCiphModeCmplt:unexpected msg PD:%d;MT:%d",
+ rm_UmMsg.header.protocol_descriminator,
+ rm_UmMsg.header.message_type ));
+ rm_SendRrStatus(CNI_RIL3_RR_MESSAGE_TYPE_NOT_COMPATIBLE);
+ return;
+ }
+
+ // Got expected msg i.e. Ciphering Mode Complete,
+ pUmCiphCmplt = (T_CNI_RIL3RRM_MSG_CIPHER_MODE_COMPLETE *) &(rm_UmMsg.cipherModeComplete);
+ msgToMm.module_id = MODULE_RM;
+ msgToMm.entry_id = rm_ItcRxEntryId;
+ msgToMm.primitive_type = INTRA_L3_DATA;
+ msgToMm.message_type = INTRA_L3_RR_CIPHER_COMPLETE;
+ msgToMm.l3_data.cipherCmplt.cmp.imeisv.ie_present = pUmCiphCmplt->imeisv.ie_present;
+ if (pUmCiphCmplt->imeisv.ie_present)
+ {
+ msgToMm.l3_data.cipherCmplt.cmp.imeisv.mobileIdType = pUmCiphCmplt->imeisv.mobileIdType;
+ msgToMm.l3_data.cipherCmplt.cmp.imeisv.numDigits = pUmCiphCmplt->imeisv.numDigits;
+ for (i=0;i<16;i++)
+ msgToMm.l3_data.cipherCmplt.cmp.imeisv.digits[i]=pUmCiphCmplt->imeisv.digits[i];
+ IDEBUG__(("INFO@rm_ProcMsCiphModeCmplt:mobileIdType:%d, numDigits: %d, digits %d%d\n",
+ pUmCiphCmplt->imeisv.mobileIdType,
+ pUmCiphCmplt->imeisv.numDigits,
+ pUmCiphCmplt->imeisv.digits[0],
+ pUmCiphCmplt->imeisv.digits[1]));
+ }
+
+ //Send the complete MM Paging Response message out
+ api_SendMsgFromRmToMm( sizeof(rm_ItcTxL3Msg_t), (u8*) &msgToMm);
+}
+
+#endif //__RM_S5SIGMODEESTABLISHED_CPP__
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S6ActivatingTrafficMode.cpp b/data/mnet/GP10/Host/rm/Src/rm_S6ActivatingTrafficMode.cpp
new file mode 100644
index 0000000..22d3567
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S6ActivatingTrafficMode.cpp
@@ -0,0 +1,95 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_S6ACTIVATINGTRAFFICMODE_CPP__
+#define __RM_S6ACTIVATINGTRAFFICMODE_CPP__
+
+
+#include "rm\rm_head.h"
+
+void rm_S6ActivatingTrafficMode(void)
+{
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_S6ActivatingTrafficMode\n"));
+
+ if (rm_pSmCtxt->smType != RM_MAIN_SM)
+ {
+ //Mode Modify always associated with main SM
+ EDEBUG__(("ERROR@rm_S6ActivatingTrafficMode: not main SM\n"));
+ return;
+ }
+
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_L1:
+ //Handle Mode Modify Ack or NAck
+ rm_ProcL1ModeAckNAck();
+ break;
+ default:
+ //Unexpected message orgination
+ IDEBUG__(("WARNING@rm_S9ActivatingTrafficMode:wrong msg origination:%d\n",
+ rm_ItcRxOrigin));
+ break;
+
+ } //End of switch()
+
+} //End of rm_S6ActivatingTrafficMode()
+
+
+void rm_ProcL1ModeAckNAck(void)
+{
+ PDEBUG__(("INFO@rm_ProcL1ModeAckNAck:smType=%d, smState=%d\n",
+ rm_pSmCtxt->smType, rm_pSmCtxt->state));
+
+ if ( rm_pItcRxL1Msg->l3_data.buffer[0]==RM_L1MG_DEDMGMT )
+ {
+ //Check if having got Mode Modify Ack or NAck message from L1
+ if ( rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_MODEMODIFYACK_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_MODEMODIFYACK_LSB )
+ {
+ //Get a positive ack from DSP
+ rm_SendChanModeModify(rm_pSmCtxt);
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3L01 );
+ rm_pSmCtxt->state = RM_S8TRAFFICMODE_ACTIVATED;
+ }
+ else if ( rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_MODEMODIFYNACK_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_MODEMODIFYNACK_LSB )
+ {
+ //Get a negative ack from DSP
+ EDEBUG__(("ERROR@rm_ProcL1ModeAckNAck:NACK received\n"));
+ EDUMP__((MAREA__, rm_pItcRxL1Msg->l3_data.buffer,
+ rm_pItcRxL1Msg->l3_data.msgLength ));
+ //Release the call since this DSP ts is not functioning right now
+ rm_SendChanRelease(rm_ItcRxEntryId);
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ //Adjust SM state to S7
+ rm_pSmCtxt->relCause = CNI_RIL3_CAUSE_REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE;
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+ } else
+ {
+ IDEBUG__(("WARNING@rm_ProcL1ModeAckNAck: sm(%d,%d), l1 msgType:%d,%d\n",
+ rm_pSmCtxt->smType,
+ rm_pSmCtxt->state,
+ rm_pItcRxL1Msg->l3_data.buffer[1],
+ rm_pItcRxL1Msg->l3_data.buffer[2] ));
+ }
+ } else
+ {
+ //Got an unexpected message from L1
+ IDEBUG__(("WARNING@rm_ProcL1ModeAckNAck: sm(%d,%d), l1 msgGroup:%d\n",
+ rm_pSmCtxt->smType,
+ rm_pSmCtxt->state,
+ rm_pItcRxL1Msg->l3_data.buffer[0]));
+ }
+}
+
+#endif /* __RM_S6ACTIVATINGTRAFFICMODE_CPP__ */
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S7ReleasingSigTrafficChan.cpp b/data/mnet/GP10/Host/rm/Src/rm_S7ReleasingSigTrafficChan.cpp
new file mode 100644
index 0000000..33a4fb6
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S7ReleasingSigTrafficChan.cpp
@@ -0,0 +1,134 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_S7RELEASINGSIGTRAFFICCHAN_CPP__
+#define __RM_S7RELEASINGSIGTRAFFICCHAN_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_S7ReleasingSigTrafficChan(void)
+{
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_S7ReleasingSigTrafficChan\n"));
+
+ if ( rm_pSmCtxt->smType != RM_MAIN_SM ||
+ rm_pItcRxMdMsg->sapi == RM_SAPI3 )
+ {
+ //At state S7: Only main signaling i.e. main SM will be attended
+ IDEBUG__(( "WARNING@rm_S7ReleasingSigTrafficChan: smType %d, sapi %d\n",
+ rm_pSmCtxt->smType, rm_pItcRxMdMsg->sapi ));
+ return;
+ }
+
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_MD:
+ //Expecting DL_REL_IND in normal signaling procedure but abnormal
+ //situations are handled too.
+ if (rm_pItcRxMdMsg->primitive_type == DL_REL_IND)
+ {
+ //May carry up l3 data but make nonsense
+ rm_StopTimer( rm_ItcRxEntryId, RM_T3109 );
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3L02);
+
+ //SMS-SAPI3-Begin
+
+ //rm_pSmCtxt->relCause = CNI_RIL3_CAUSE_TEMPORARY_FAILURE;
+ rm_SendRrRelInd(RM_MDLERR, rm_pSmCtxt->mEntryId);
+
+ rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI0, RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI3, RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+ rm_SmCtxt_t *pASmCtxt;
+ pASmCtxt = rm_pSmCtxt->pPhyChan->pASmCtxt;
+ pASmCtxt->state = RM_S1RM_RUNNING;
+
+ //SMS-SAPI3-End
+ }
+ //
+ //else
+ // IDEBUG__(("WARNING@rm_S7ReleasingSigTrafficChan: LAPDm message:%d\n",
+ // rm_pItcRxMdMsg->primitive_type));
+
+ break;
+
+ case MODULE_RM:
+ // Standard T3109 and internal T3L02 will be watched
+ if ( rm_pItcRxRmMsg->primitive_type != RM_TIMER_IND )
+ {
+ IDEBUG__(("WARNING@rm_S7ReleasingSigTrafficChan: prim:%d,timerId=%d\n",
+ rm_pItcRxRmMsg->primitive_type,rm_pItcRxRmMsg->timerId ));
+ return;
+ }
+ //PDEBUG__(("rm_S7ReleasingSigTrafficChan: Timer Handling, timerId=%d\n",
+ // rm_pItcRxRmMsg->timerId));
+ switch (rm_pItcRxRmMsg->timerId)
+ {
+ case RM_T3L02:
+ rm_StartTimer( rm_ItcRxEntryId, RM_T3111 );
+ rm_SendRfChanRelease(rm_pSmCtxt->pPhyChan);
+
+ //SMS-SAPI3-Begin
+ //rm_SendRrRelCnf();
+ //SMS-SAPI3-End
+
+ rm_pSmCtxt->state = RM_S9DEACTIVATING_SIGTRAFFICCHAN;
+ break;
+
+ case RM_T3109:
+
+ //SMS-SAPI3-Begin
+
+ rm_SendRrRelInd(RM_MDLERR, rm_pSmCtxt->mEntryId);
+
+ rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI0, RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI3, RM_LOCAL_RELEASE);
+ rm_SendDlRelReq(rm_pSmCtxt->aOId, RM_SAPI3, RM_LOCAL_RELEASE);
+
+ rm_SmCtxt_t *pASmCtxt;
+ pASmCtxt = rm_pSmCtxt->pPhyChan->pASmCtxt;
+ pASmCtxt->state = RM_S1RM_RUNNING;
+
+ //Release RF channel and SM goes to a new state S9
+ //rm_SendDlRelReq(rm_pSmCtxt->mOId,RM_SAPI0,RM_LOCAL_RELEASE);
+
+ //if (rm_pSmCtxt->sapi != RM_SAPI0)
+ // rm_SendDlRelReq(rm_pSmCtxt->mOId, rm_pSmCtxt->sapi,RM_LOCAL_RELEASE);
+
+ //SMS-SAPI3-End
+
+ rm_SendRfChanRelease(rm_pSmCtxt->pPhyChan);
+ rm_StartTimer( rm_ItcRxEntryId, RM_T3111 );
+
+ //SMS-SAPI3-Begin
+ //rm_SendRrRelCnf();
+ //SMS-SAPI3-End
+
+ rm_pSmCtxt->state = RM_S9DEACTIVATING_SIGTRAFFICCHAN;
+ break;
+
+ default:
+ IDEBUG__(("WARNING@rm_S7ReleasingSigTrafficChan: wrong timer expiry:%d\n",
+ rm_pItcRxRmMsg->timerId));
+ break;
+ }
+ break;
+
+ default:
+ //Unexpected message origin at this SM state
+ IDEBUG__(("WARNING@rm_S7ReleasingSigTrafficChan: unexpected message origin:%d\n",
+ rm_ItcRxOrigin));
+ break;
+
+ } //End of switch()
+
+} //End of rm_S7ReleasingSigTrafficChan()
+
+#endif //__RM_S7RELEASINGSIGTRAFFICCHAN_CPP__
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S8TrafficModeActivated.cpp b/data/mnet/GP10/Host/rm/Src/rm_S8TrafficModeActivated.cpp
new file mode 100644
index 0000000..290f5b1
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S8TrafficModeActivated.cpp
@@ -0,0 +1,271 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_S8TRAFFICMODEACTIVATED_CPP__
+#define __RM_S8TRAFFICMODEACTIVATED_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_S8TrafficModeActivated(void)
+{
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_S8TrafficModeActivated\n"));
+
+ if (rm_pSmCtxt->smType != RM_MAIN_SM)
+ {
+ //Mode Modify only occurs on main DCCH assumed
+ EDEBUG__(("ERROR@rm_S8TrafficModeActivated: not main SM\n"));
+ return;
+ }
+
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_MD:
+ //Handle DL_DATA_IND w CHN MODE MODIFY ACK inside
+ if (rm_pItcRxMdMsg->primitive_type != DL_DATA_IND)
+ EDEBUG__(("ERROR@rm_S8TrafficModeActivated: unexp. L2/prim:%d\n",
+ rm_pItcRxMdMsg->primitive_type));
+ else
+ {
+ rm_ProcMsModeModifyAckNack();
+ }
+ break;
+
+ case MODULE_RM:
+ //Handle T3L01 exp here!
+ rm_pSmCtxt->relCause =
+ CNI_RIL3_CAUSE_REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE;
+ rm_ProcT3L01Expiry();
+ break;
+
+ case MODULE_MM:
+ if ( rm_pItcRxMmMsg->primitive_type == RR_REL_REQ )
+ {
+ //Release RF resource in terms of MM command
+ rm_SendChanRelease(rm_ItcRxEntryId);
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ //Adjust SM state to S7
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+ } else
+ //Unexpected message from MM
+ IDEBUG__(("WARNING@rm_S8TrafficModeActivated:MM msgType:%d\n",
+ rm_pItcRxMmMsg->message_type));
+ break;
+ default:
+ //Unexpected message origin at this SM state
+ IDEBUG__(("WARNING@rm_S8TrafficModeActivated:unexpected message origin:%d\n",
+ rm_ItcRxOrigin));
+ break;
+
+ } //End switch()
+
+} //End of rm_S8TrafficModeActivated()
+
+
+void rm_ProcMsModeModifyAckNack(void)
+{
+ int time;
+
+ rm_EdRet_t rrEdRet;
+
+ PDEBUG__(("INFO@rm_ProcMsModeModifyAckNack:callInfo(%d,%d)\n",
+ rm_ItcRxEntryId, rm_pSmCtxt->callIdx));
+
+ //Decode this L3 message received to see if it is CHN MODE MODIFY ACK
+ //PR1104 RR STATUS MESSAGE
+ //rrEdRet = CNI_RIL3RRM_Decode( &(rm_pItcRxMdMsg->l3_data),&rm_UmMsg );
+ rrEdRet = rm_MsgAnalyze();
+
+ if ( rrEdRet != RM_RRED_SUCCESS )
+ {
+ EDEBUG__(("ERROR@rm_S8TrafficModeActivated: L2/l3_data decoded KO\n"));
+ return;
+ }
+
+ //PDEBUG__(("INFO@rm_ProcMsModeModifyAckNack: ret %d ........................\n", rrEdRet ));
+
+ //PDEBUG__(("....Header: md %x, msgType %x\n",
+ // rm_UmMsg.header.protocol_descriminator,
+ // rm_UmMsg.header.message_type));
+
+ //PDEBUG__(("....ChanDescription: (ie_pre %d, hop %d, chnTyp %d, tn %d, sub %d, tsc %x, freq %d\n",
+ // rm_UmMsg.channelModeModifyAck.channelDescription.ie_present,
+ // rm_UmMsg.channelModeModifyAck.channelDescription.hopping,
+ // rm_UmMsg.channelModeModifyAck.channelDescription.channelType,
+ // rm_UmMsg.channelModeModifyAck.channelDescription.subChannelNumber,
+ // rm_UmMsg.channelModeModifyAck.channelDescription.TN,
+ // rm_UmMsg.channelModeModifyAck.channelDescription.TSC,
+ // rm_UmMsg.channelModeModifyAck.channelDescription.arfcn));
+
+ //PDEBUG__(("....ChanMode: (pre %d, value %d\n",
+ // rm_UmMsg.channelModeModifyAck.channelMode.ie_present,
+ // rm_UmMsg.channelModeModifyAck.channelMode.value));
+
+ //Decoding successful. Further check if
+ if ( rm_UmMsg.header.protocol_descriminator != RM_PD ||
+ rm_UmMsg.header.message_type != RM_CHANNEL_MODE_MODIFY_ACK )
+ {
+ EDEBUG__(("ERROR-rm_S8TrafficModeActivated:unexpected msg PD:%d;MT:%d",
+ rm_UmMsg.header.protocol_descriminator,
+ rm_UmMsg.header.message_type ));
+ rm_SendRrStatus(CNI_RIL3_RR_MESSAGE_TYPE_NOT_COMPATIBLE);
+ return;
+ }
+
+ //Got expected msg i.e. Channel Mode Modify Acknowlegement, move to S10
+
+ rm_StopTimer(rm_ItcRxEntryId, RM_T3L01);
+
+ if (rm_pSmCtxt->codAlgo == rm_UmMsg.channelModeModifyAck.channelMode.value)
+ {
+ rm_SendChanAssignComplete();
+ if (rm_pSmCtxt->state != RM_S10TRAFFICMODE_ESTABLISHED)
+ {
+ //PM: succTCHSeizures, maxNbrOfBusyTCHs, meanNbrOfBusyTCHs
+
+ PM_CellMeasurement.succTCHSeizures.increment();
+ rm_maxNbrOfBusyTCHs++;
+ PM_CellMeasurement.maxNbrOfBusyTCHs.setValue(rm_maxNbrOfBusyTCHs); //increment();
+ //PM_CellMeasurement.maxNbrOfBusyTCHs.addRecord(rm_maxNbrOfBusyTCHs); //increment();
+
+ rm_NoOfBusyTchf++;
+ PM_CellMeasurement.meanNbrOfBusyTCHs.addRecord(rm_NoOfBusyTchf);
+
+ rm_pSmCtxt->pPhyChan->startTime=tickGet();
+
+ rm_pSmCtxt->state = RM_S10TRAFFICMODE_ESTABLISHED;
+ }
+ }
+ else
+ {
+ PDEBUG__(("INFO@rm_S8TrafficModeActivated: unsupport mode(cur %d, req %d), entryId '%d'\n",
+ rm_UmMsg.channelModeModifyAck.channelMode.value,
+ rm_pSmCtxt->codAlgo,
+ rm_ItcRxEntryId));
+
+ //SMS-SAPI3-Begin
+
+ //Get a negative ack from MS, release the call !
+
+ rm_SendChanRelease(rm_ItcRxEntryId);
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ rm_pSmCtxt->relCause =
+ CNI_RIL3_CAUSE_REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE;
+
+ //Adjust SM state to S7
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+
+ if (rm_pSmCtxt->state == RM_S10TRAFFICMODE_ESTABLISHED)
+ {
+ //PM: maxNbrOfBusyTCHs, meanNbrOfBusyTCHs
+
+ if (--rm_NoOfBusyTchf >= 0)
+ PM_CellMeasurement.meanNbrOfBusyTCHs.addRecord(rm_NoOfBusyTchf);
+ else
+ rm_NoOfBusyTchf = 0;
+
+ time = tickGet() - rm_pSmCtxt->pPhyChan->startTime;
+ PM_CellMeasurement.meanTCHBusyTime.addRecord(time);
+
+ rm_pSmCtxt->pPhyChan->startTime=tickGet();
+
+ if (--rm_maxNbrOfBusyTCHs >= 0)
+ PM_CellMeasurement.maxNbrOfBusyTCHs.setValue(rm_maxNbrOfBusyTCHs); //decrement();
+ //PM_CellMeasurement.maxNbrOfBusyTCHs.addRecord(rm_maxNbrOfBusyTCHs); //decrement();
+ else
+ rm_maxNbrOfBusyTCHs = 0;
+
+ rm_pSmCtxt->pPhyChan->chanBusy = RM_FALSE;
+ }
+ //rm_RslRelease();
+
+ //SMS-SAPI3-End
+
+ }
+}
+
+
+void rm_ProcT3L01Expiry(void)
+{
+ int time;
+
+ PDEBUG__(("INFO@rm_ProcT3L01Expiry: smInfo(%d,%d),callIdx(%d,%d)\n",
+ rm_pSmCtxt->smType, rm_pSmCtxt->state, rm_ItcRxEntryId,
+ rm_pSmCtxt->callIdx));
+
+ if ( rm_pItcRxRmMsg->primitive_type == RM_TIMER_IND ||
+ rm_pItcRxRmMsg->timerId != RM_T3L01 ||
+ rm_pSmCtxt->pPhyChan->T3L01.state == RM_FALSE )
+ {
+ EDEBUG__(("ERROR@rm_S8ReleasingSigTrafficChan: prim:%d,timer:%d, sta:%d\n",
+ rm_pItcRxRmMsg->primitive_type,
+ rm_pItcRxRmMsg->timerId,
+ rm_pSmCtxt->pPhyChan->T3L01.state ));
+ return;
+ }
+
+ //SMS-SAPI3-Begin
+
+ // No rsp to Channel Mode Modify from Mobile
+ rm_SendChanRelease(rm_ItcRxEntryId);
+ rm_SendDeactivateSacch(rm_pSmCtxt->pPhyChan);
+ //CT_CHN rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI0,
+ // rm_pSmCtxt->chanType,RM_LOCAL_RELEASE);
+ //rm_SendDlRelReq(rm_pSmCtxt->mOId, RM_SAPI0, RM_LOCAL_RELEASE);
+
+ //if (rm_pSmCtxt->sapi != RM_SAPI0)
+ //CT_CHN rm_SendDlRelReq(rm_pSmCtxt->mOId, rm_pSmCtxt->sapi,
+ // rm_pSmCtxt->chanType,RM_LOCAL_RELEASE);
+ // rm_SendDlRelReq(rm_pSmCtxt->mOId, rm_pSmCtxt->sapi, RM_LOCAL_RELEASE);
+
+ // Send RR_REL_IND to MM
+ //rm_SendRrRelInd( RM_RSLIND, rm_ItcRxEntryId );
+
+ //SMS-SAPI3-End
+
+ rm_StartTimer(rm_ItcRxEntryId, RM_T3109);
+
+ rm_pSmCtxt->relCause = CNI_RIL3_CAUSE_DESTINATION_OUT_OF_ORDER; //no rsp from MS
+
+ //Adjust SM state to S7
+ rm_pSmCtxt->state = RM_S7RELEASING_SIGTRAFFICCHAN;
+ rm_pSmCtxt->pPhyChan->state = RM_PHYCHAN_RELEASING;
+
+ if (rm_pSmCtxt->state == RM_S10TRAFFICMODE_ESTABLISHED)
+ {
+ //PM: maxNbrOfBusyTCHs, meanNbrOfBusyTCHs
+
+ if (--rm_NoOfBusyTchf >= 0)
+ PM_CellMeasurement.meanNbrOfBusyTCHs.addRecord(rm_NoOfBusyTchf);
+ else
+ rm_NoOfBusyTchf = 0;
+
+ time = tickGet() - rm_pSmCtxt->pPhyChan->startTime;
+ PM_CellMeasurement.meanTCHBusyTime.addRecord(time);
+
+ rm_pSmCtxt->pPhyChan->startTime=tickGet();
+
+ if (--rm_maxNbrOfBusyTCHs >= 0)
+ PM_CellMeasurement.maxNbrOfBusyTCHs.setValue(rm_maxNbrOfBusyTCHs); //decrement();
+ //PM_CellMeasurement.maxNbrOfBusyTCHs.addRecord(rm_maxNbrOfBusyTCHs); //decrement();
+ else
+ rm_maxNbrOfBusyTCHs = 0;
+
+ rm_pSmCtxt->pPhyChan->chanBusy = RM_FALSE;
+ }
+}
+
+#endif // __RM_S8TRAFFICMODEACTIVATED_CPP__
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_S9DeactivatingSigTrafficChan.cpp b/data/mnet/GP10/Host/rm/Src/rm_S9DeactivatingSigTrafficChan.cpp
new file mode 100644
index 0000000..984eb17
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_S9DeactivatingSigTrafficChan.cpp
@@ -0,0 +1,420 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_S9DEACTIVATINGSIGTRAFFICCHAN_CPP__
+#define __RM_S9DEACTIVATINGSIGTRAFFICCHAN_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_S9DeactivatingSigTrafficChan(void)
+{
+ int time;
+ rm_PhyChanDesc_t *pPhyChan;
+
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_S9DeactivatingSigTrafficChan\n"));
+
+ if (rm_pSmCtxt->smType != RM_MAIN_SM)
+ {
+ //Channel Activation always associated with main SM
+ IDEBUG__(("WARNING@rm_S9DeactivatingSigTrafficChan:not main SM\n"));
+ return;
+ }
+
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_L1:
+ //Get a MPH_INFO_INF message. Analyze and process it
+ if ( rm_pItcRxL1Msg->l3_data.buffer[0]!=RM_L1MG_DEDMGMT ||
+ rm_pItcRxL1Msg->l3_data.buffer[1]!=RM_L1MT_RFCHANRELACK_MSB ||
+ rm_pItcRxL1Msg->l3_data.buffer[2]!=RM_L1MT_RFCHANRELACK_LSB )
+ {
+ //Got unexpected message from L1
+ IDEBUG__(("WARNING@rm_S9DeactivatingSigTrafficChan:L1 msg PD:%x;MT:%x,%x\n",
+ rm_pItcRxL1Msg->l3_data.buffer[0],rm_pItcRxL1Msg->l3_data.buffer[1],
+ rm_pItcRxL1Msg->l3_data.buffer[2] ));
+ return;
+ }
+
+ break;
+
+ case MODULE_RM:
+ //Currently T3111 expiry messages comes here
+ //PDEBUG__(("rm_S9DeactivatingSigTrafficChan: Timer Handling, timerId=%d\n",
+ //rm_pItcRxRmMsg->timerId));
+
+ if ( rm_pItcRxRmMsg->primitive_type != RM_TIMER_IND ||
+ rm_pSmCtxt->pPhyChan->T3111.state == RM_FALSE ||
+ rm_pItcRxRmMsg->timerId != RM_T3111 )
+ {
+ IDEBUG__(("WARNING@rm_S9DeactivatingSigTrafficChan: prim:%d,timer sta=%d\n",
+ rm_pItcRxRmMsg->primitive_type,rm_pSmCtxt->pPhyChan->T3111.state ));
+ return;
+ }
+ break;
+
+ default:
+ //TBD: Unexpected message orgination
+ //IDEBUG__(("WARNING@rm_S9DeactivatingSigTrafficChan:wrong msg origination:%d\n",
+ // rm_ItcRxOrigin));
+
+ return;
+ break;
+
+ } //End of switch()
+
+ //Free radio resources and cancel timers
+ pPhyChan = rm_pSmCtxt->pPhyChan;
+ pPhyChan->state = RM_PHYCHAN_FREE;
+ pPhyChan->rslCount = 0;
+ pPhyChan->chanBusy = RM_FALSE;
+ pPhyChan->T3101.state = RM_FALSE;
+ pPhyChan->T3111.state = RM_FALSE;
+ pPhyChan->T3109.state = RM_FALSE;
+ rm_StopTimer( rm_ItcRxEntryId, RM_T3109 );
+ rm_StopTimer( rm_ItcRxEntryId, RM_T3111 );
+ rm_StopTimer( rm_ItcRxEntryId, RM_T3101 );
+ pPhyChan->pMSmCtxt->state = RM_S1RM_RUNNING;
+ pPhyChan->pASmCtxt->state = RM_S1RM_RUNNING;
+
+ //Activate CBCH if its activation is pending on release of SDCCH/4 (2)
+ if ( (pPhyChan==rm_pCbchChan)&&(pPhyChan->usable==RM_PHYCHAN_USABLE)&&
+ (OAMrm_CBCH_OPSTATE) )
+ {
+ rm_pCbchChan->usable = RM_PHYCHAN_CBCH_USABLE; //block SDCCH any attempt now
+ if (rm_ChanCbchActive)
+ IDEBUG__(("WARNIG@rm_OamProcResourceConfigData: cbch is already on \n"));
+
+ rm_ChanCbchActive = RM_FALSE;
+ rm_ActivateCbchChan();
+ }
+
+ if (pPhyChan->chanType==RM_PHYCHAN_TCHF_S) rm_PostTchfRelHandler(pPhyChan);
+ else if (pPhyChan->chanType==RM_PHYCHAN_SDCCH4) rm_PostSdcch4RelHandler(pPhyChan);
+ else EDEBUG__(("ERROR@rm_S9DeactivatingSigTrafficChan:chanType=%d\n",pPhyChan->chanType));
+
+} // End of rm_S9DeactivatingSigTrafficChan()
+
+//GP2
+#if 0
+void rm_LockParentTrxSlotIfNeeded(int trx, int slot)
+{
+ int i;
+
+ PDEBUG__(("INFO@rm_LockParentTrxSlotIfNeeded: (%d,%d)\n", trx, slot));
+
+ //Check if (trx, slot) existent
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS) ||
+ slot>=OAMrm_SLOTS_PER_TRX )
+ {
+ IDEBUG__(("WARNING@rm_LockParentTrxSlotIfNeeded: invalid (%d,%d)\n",
+ trx,slot));
+ return;
+ }
+
+ //Check if the TS is shutting-down pending now
+ if (OAMrm_CHN_AMSTATE(trx,slot)==shuttingDown)
+ {
+ //Lock this (trx,slot) if all its resident channels are locked
+ if (trx||slot)
+ {
+ //(trx,slot) carries only one functional channel ie tch-f
+ //Fire an information alarm on MIB for ViperWatch watching
+ PDEBUG__(("INFO@rm_LockParentTrxSlotIfNeeded:(%d,%d) shuttingDown->locked\n",
+ trx, slot));
+
+ rm_SetTrxSlotAdminStateIfNeeded(trx,slot,locked);
+ rm_LockParentTrxIfNeeded(trx);
+
+ } else
+ {
+ //(trx,slot) carrying BCCH and CCCH, equal to lock the BTS
+
+ for (i=0;i<OAMrm_MAX_SDCCH4S;i++)
+ {
+ if (rm_PhyChanSdcch4[i].amState==shuttingDown)
+ break;
+ else
+ rm_PhyChanSdcch4[i].amState==locked;
+ }
+ if (i>=OAMrm_MAX_SDCCH4S)
+ {
+ rm_SetTrxSlotAdminStateIfNeeded(trx,slot,locked);
+
+ PDEBUG__(("INFO@rm_LockParentTrxSlotIfNeeded:(%d,%d) shuttingDown->locked\n",
+ trx, slot));
+
+ rm_LockParentTrxIfNeeded(trx);
+
+ //if (OAMrm_TRX_AMSTATE(trx)==shuttingDown)
+ // {
+ // //(trx,slot) carries only one functional channel ie tch-f
+ // //Fire an information alarm on MIB for ViperWatch watching
+ // PDEBUG__(("INFO@rm_LockParentTrxSlotIfNeeded:(%d,%d) shuttingDown->locked\n",
+ // trx, slot));
+ // rm_LockParentTrxIfNeeded(trx);
+ //}
+ //else
+ //{
+ // if (OAMrm_BTS_AMSTATE == shuttingDown)
+ // {
+ // //All (trx=0,slot=0) resident channels are already locked,
+ // //This is equivalent to locking the whole BTS, thus do it!
+ // PDEBUG__(("INFO@rm_LockParentTrxSlotIfNeeded:(%d,%d) ie whole VC shuttingDown->locked\n",
+ // trx, slot));
+ // rm_SetBtsAdminStateIfNeeded(locked);
+ // rm_ProcBtsAdminStateLocked();
+ // }
+ //}
+ }
+ }
+ }
+}
+
+void rm_LockParentTrxIfNeeded(int trx)
+{
+ PDEBUG__(("INFO@rm_LockParentTrxIfNeeded: trx=%d\n",trx));
+
+ //Check if trx is existent or not
+ if ( !( (OAMrm_TRX_ONOFF_MAP)&(1<<trx) ) || (trx>=OAMrm_MAX_TRXS))
+ {
+ IDEBUG__(("WARNING@rm_LockParentTrxIfNeeded: invalid trx=%d\n",
+ trx));
+ return;
+ }
+
+ if (OAMrm_TRX_AMSTATE(trx)==shuttingDown)
+ {
+ //Lock this trx if all the channels are already locked now
+ int i;
+
+ for (i=0;i<OAMrm_SLOTS_PER_TRX;i++)
+ {
+ if (OAMrm_CHN_AMSTATE(trx, i)==shuttingDown)
+ break;
+ else
+ {
+ rm_SetTrxSlotAdminStateIfNeeded(trx,i,locked);
+ }
+ }
+
+ if (i>=OAMrm_SLOTS_PER_TRX)
+ {
+ rm_SetTrxAdminStateIfNeeded(trx,locked);
+
+ //All trx-resident time slots already locked now,lock trx
+ //Fire an information alarm on MIB for ViperWatch watching
+ PDEBUG__(("INFO@rm_LockParentTrxIfNeeded: trx '%d' shuttingDown->locked\n",
+ trx));
+ rm_LockParentBtsIfNeeded();
+ }
+ }
+}
+
+void rm_LockParentBtsIfNeeded(void)
+{
+ PDEBUG__(("INFO@rm_LockParentBtsIfNeeded\n"));
+
+ //Check if BTS is shutting down pending first
+ if (OAMrm_BTS_AMSTATE==shuttingDown)
+ {
+ //Lock BTS if all its trxes are already locked
+ int i;
+ for (i=0; i<OAMrm_MAX_TRXS; i++ )
+ {
+ //Check if ith TRX is existent
+ if ( (OAMrm_TRX_ONOFF_MAP)&(1<<i) )
+ {
+ if (OAMrm_TRX_AMSTATE(i)==shuttingDown)
+ break;
+ else
+ {
+ rm_SetTrxAdminStateIfNeeded(i,locked);
+ }
+ }
+ }
+ if (i>=OAMrm_MAX_TRXS)
+ {
+ //all trxes have been locked, thus locking BTS
+ rm_SetBtsAdminStateIfNeeded(locked);
+ rm_SendTuneSynthToTrx(0,0);
+ rm_SendTuneSynthToTrx(1,0);
+ }
+ }
+}
+
+void rm_SetTrxSlotAdminStateIfNeeded(int trx, int slot, AdministrativeState state)
+{
+ PDEBUG__(("INFO@rm_SetTrxSlotAdminStateIfNeeded: (%d,%d,%d)\n", trx,slot,state));
+
+ if (OAMrm_CHN_AMSTATE(trx,slot) != state)
+ {
+ switch(state)
+ {
+ case locked:
+ rm_SetRmOpState(rm_TrxSlotAdminLockedAlarmCode[trx][slot]);
+ break;
+ case unlocked:
+ rm_SetRmOpState(rm_TrxSlotAdminUnlockedAlarmCode[trx][slot]);
+ break;
+ case shuttingDown:
+ rm_SetRmOpState(rm_TrxSlotAdminShuttingDownAlarmCode[trx][slot]);
+ break;
+ default:
+ IDEBUG__(("WARNING@rm_SetTrxSlotAdminStateIfNeeded: (%d,%d,%d)\n", trx,slot,state));
+ break;
+ }
+ }
+ OAMrm_CHN_AMSTATEa(trx, slot) = state;
+ rm_SetTrxSlotAdminState(trx, slot, state);
+}
+
+void rm_SetBtsAdminStateIfNeeded(AdministrativeState state)
+{
+ PDEBUG__(("INFO@rm_SetBtsAdminStateIfNeeded: state=%d\n",state));
+
+ if ( OAMrm_BTS_AMSTATE != state )
+ {
+ if (state == locked)
+ rm_SetRmOpState(EC_RM_BTS_LOCKED);
+ else if (state == unlocked)
+ rm_SetRmOpState(EC_RM_BTS_UNLOCKED);
+ else if (state == shuttingDown)
+ rm_SetRmOpState(EC_RM_BTS_SHUTTINGDOWN);
+ else
+ IDEBUG__(("WARNING@rm_SetBtsAdminStateIfNeeded: invalid state=%d\n",state));
+ }
+ OAMrm_BTS_AMSTATE = state;
+ rm_SetBtsAdminState(state);
+}
+
+void rm_SetTrxAdminStateIfNeeded(int trx, AdministrativeState state)
+{
+ int i;
+
+ PDEBUG__(("INFO@rm_SetTrxAdminStateIfNeeded: trx=%d, state=%d\n",trx,state));
+ if (OAMrm_TRX_AMSTATE(trx) != state)
+ {
+ switch(state)
+ {
+ case locked:
+ rm_SetRmOpState(rm_TrxAdminLockedAlarmCode[trx]);
+ break;
+ case unlocked:
+ rm_SetRmOpState(rm_TrxAdminUnlockedAlarmCode[trx]);
+ break;
+ case shuttingDown:
+ rm_SetRmOpState(rm_TrxAdminShuttingDownAlarmCode[trx]);
+ break;
+ default:
+ IDEBUG__(("WARNING@rm_SetTrxAdminStateIfNeeded: trx=%d, invalid state=%d\n",
+ trx, state));
+ break;
+ }
+ }
+ OAMrm_TRX_AMSTATE(i)=locked;
+ rm_SetTrxAdminState(i,locked);
+}
+#endif //#if 0
+
+
+//GP2
+void rm_PostTchfRelHandler(rm_PhyChanDesc_t *pPhyChan)
+{
+ unsigned char trx, slot;
+
+ trx = pPhyChan->trxNo; slot = pPhyChan->slotNo;
+
+ switch(pPhyChan->amState)
+ {
+ case shuttingDown:
+ pPhyChan->amState = locked;
+ if (trx||slot)
+ {
+ if (--rm_NoOfUsableTchf < 0) rm_NoOfUsableTchf = 0;
+ PM_CellMeasurement.nbrOfAvailableTCHs.setValue(rm_NoOfUsableTchf);
+
+ grr_SendTrxSlotShutdownAck(MODULE_RM, grr_MsgQId, trx, slot);
+ }
+
+ break;
+
+ case unlocked:
+ rm_NoOfIdleTchf++;
+ PM_CellMeasurement.meanNbrOfIdleTCHsPerInterferenceBand.addRecord(rm_NoOfIdleTchf);
+ if (rm_AllAvailableTchf.allocated)
+ {
+ rm_AllAvailableTchf.allocated = RM_FALSE;
+ PM_CellMeasurement.allAvailableTCHAllocatedTime.stop();
+ }
+
+ //Unbar the cell if needed
+ grr_OverloadedCellBarOff();
+
+ break;
+
+ case locked:
+ break;
+
+ default:
+ IDEBUG__(("WARNING@rm_PostTchfRelHandler: invalid amState(%d) for trx(%d)slot(%d)\n",
+ pPhyChan->amState, trx, slot));
+ break;
+ }
+}
+
+//GP2
+void rm_PostSdcch4RelHandler(rm_PhyChanDesc_t *pPhyChan)
+{
+ unsigned char trx, slot, i;
+
+ trx = pPhyChan->trxNo; slot = pPhyChan->slotNo;
+
+ switch(pPhyChan->amState)
+ {
+ case shuttingDown:
+ if (--rm_nbrOfAvailableSDCCHs < 0) rm_nbrOfAvailableSDCCHs = 0;
+ PM_CellMeasurement.nbrOfAvailableSDCCHs.setValue(rm_nbrOfAvailableSDCCHs);
+
+ //Check if the TS is shutting-down pending now
+ if (OAMrm_CHN_AMSTATE(trx,slot) == shuttingDown)
+ {
+ //
+ for (i=0;i<OAMrm_MAX_SDCCH4S;i++)
+ {
+ if (rm_PhyChanSdcch4[i].amState==shuttingDown) break;
+ else rm_PhyChanSdcch4[i].amState==locked;
+ }
+
+ if (i>=OAMrm_MAX_SDCCH4S)
+ grr_SendTrxSlotShutdownAck(MODULE_RM, grr_MsgQId, trx, slot);
+ }
+
+ break;
+
+ case unlocked:
+ if (rm_AllAvailableSdcch4.allocated)
+ {
+ rm_AllAvailableSdcch4.allocated = RM_FALSE;
+ PM_CellMeasurement.allAvailableSDCCHAllocatedTime.stop();
+ }
+
+ break;
+
+ case locked:
+ break;
+
+ default:
+ IDEBUG__(("WARNING@rm_PostSdcch4RelHandler: invalid amState(%d) for trx(%d)slot(%d)chan(%d)\n",
+ pPhyChan->amState, trx, slot, pPhyChan->subChanNumber));
+ break;
+ }
+}
+
+#endif //__RM_S9DEACTIVATINGSIGTRAFFICCHAN_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendAllSystemInfosToBcchTrx.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendAllSystemInfosToBcchTrx.cpp
new file mode 100644
index 0000000..b91ce39
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendAllSystemInfosToBcchTrx.cpp
@@ -0,0 +1,26 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_SENDALLSYSTEMINFOSTOBCCHTRX_CPP__
+#define __RM_SENDALLSYSTEMINFOSTOBCCHTRX_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendAllSystemInfosToBcchTrx( u8 trx)
+{
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendAllSystemInfosToBcchTrx\n"));
+
+ // TEST: System information 1 is not needed now
+ rm_SendSystemInfo2ToBcchTrx(trx,RM_L1SYSINFO_TYPE_2,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo3ToBcchTrx(trx,RM_L1SYSINFO_TYPE_3,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo4ToBcchTrx(trx,RM_L1SYSINFO_TYPE_4,OAMrm_RA_CELL_BARRED_STATE);
+
+} /* End of rm_SendAllSystemIinfosToBcchTrx() */
+
+#endif /* __RM_SENDALLSYSTEMINFOSTOBCCHTRX_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendAsyncHoRequired.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendAsyncHoRequired.cpp
new file mode 100644
index 0000000..849689d
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendAsyncHoRequired.cpp
@@ -0,0 +1,84 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_SENDASYNCHOREQUIRED_CPP__
+#define __RM_SENDASYNCHOREQUIRED_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendAsyncHoRequired(void)
+{
+ rm_ItcTxL3Msg_t msgToCc; /* Send inter CC-RM siganling */
+ T_CNI_L3_ID ccId;
+ IntraL3HandoverRequired_t* pCcHoRequired;
+
+ /* Monitoring entrance to a function */
+ DBG_FUNC("rm_SendAsyncHoRequired", RM_LAYER);
+ DBG_ENTER();
+
+ /* TBD: may contain SAPI later if requested */
+ msgToCc.module_id = MODULE_RM;
+ msgToCc.entry_id = rm_ItcRxEntryId;
+ msgToCc.primitive_type = INTRA_L3_DATA;
+ msgToCc.message_type = INTRA_L3_RR_HANDOVER_REQUIRED;
+
+ //Send Handover Required message to CC if CC QId found
+ ccId = CNI_RIL3_IRT_Get_CC_Id(rm_ItcRxEntryId);
+ if ( ccId.msgq_id == CNI_NULL_L3_ID.msgq_id &&
+ ccId.sub_id == CNI_NULL_L3_ID.sub_id )
+ EDEBUG__(("ERROR-rm_SendAsyncHoRequired: null CC QId\n"));
+ else
+ {
+ //Found CC QId, send Handed-over candidates to CC
+ pCcHoRequired = (IntraL3HandoverRequired_t*)&(msgToCc.l3_data.handReqd);
+ pCcHoRequired->hoCause = rm_pItcRxL1Msg->l3_data.buffer[7];
+ pCcHoRequired->numCandidates = rm_pItcRxL1Msg->l3_data.buffer[8];
+
+ DBG_TRACE("TRACE-rm_SendAsyncHoRequired: hoCause %x numCand %d\n",
+ pCcHoRequired->hoCause, pCcHoRequired->numCandidates);
+//HOADDED
+//TEST DATA here
+//<taiyu:05-18-01> Changed to Global Cell ID
+ int j;
+ int mccInteger;
+ int mncInteger;
+ for (int i=0;i<pCcHoRequired->numCandidates;i++)
+ {
+ j = rm_pItcRxL1Msg->l3_data.buffer[9+(i<<1)];
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.ci_disc = 0; // Whole cell global Id;
+
+ mccInteger = OAMrm_NCELL_MCC(j);
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mcc[0] = (mccInteger / 100) % 10;
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mcc[1] = (mccInteger / 10) % 10;
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mcc[2] = mccInteger % 10;
+
+ mncInteger = OAMrm_NCELL_MNC(j);
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mnc[0] = (mncInteger / 10) % 10;
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mnc[1] = mncInteger % 10;
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mnc[2] = 0xf;
+
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.lac = OAMrm_NCELL_LAC(j);
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.ci = OAMrm_NCELL_CI(j);
+
+ pCcHoRequired->candGlobalCellId[i].candIsExternal = OAMrm_NCELL_ISEXTERNAL(j);
+ pCcHoRequired->candGlobalCellId[i].candIsTried = 0;
+
+ DBG_TRACE("TRACE-rm_SendAsyncHoRequired: Cand MCC %x%x%x MNC %x%x%x Lac %d Ci %d IsExtern %d IsTried %d\n",
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mcc[0], pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mcc[1], pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mcc[2],
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mnc[0], pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mnc[1], pCcHoRequired->candGlobalCellId[i].candGlobalCellId.mnc[2],
+ pCcHoRequired->candGlobalCellId[i].candGlobalCellId.lac, pCcHoRequired->candGlobalCellId[i].candGlobalCellId.ci, pCcHoRequired->candGlobalCellId[i].candIsExternal,
+ pCcHoRequired->candGlobalCellId[i].candIsTried);
+ }
+
+ api_SendMsgFromRmToCc(ccId.msgq_id, sizeof(rm_ItcTxL3Msg_t), (u8*)&msgToCc );
+ }
+
+} /* End of rm_SendAsyncHoRequired() */
+
+#endif /* __RM_SENDASYNCHOREQUIRED_CPP__ */
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendChanActivation.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendChanActivation.cpp
new file mode 100644
index 0000000..2391c20
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendChanActivation.cpp
@@ -0,0 +1,58 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_SENDCHANACTIVATION_CPP__
+#define __RM_SENDCHANACTIVATION_CPP__
+
+
+#include "rm\rm_head.h"
+
+void rm_SendChanActivation( rm_PhyChanDesc_t *pPhyChan,
+ rm_PhyChanActDesc_t *pActDesc )
+{
+ rm_ItcTxMsg_t msgToL1;
+ u16 length;
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendChanActivation\n"));
+
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_DEDMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_CHANACTIV_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_CHANACTIV_LSB;
+ msgToL1.buffer[length++] = pPhyChan->trxNumber;
+ msgToL1.buffer[length++] = pPhyChan->chanNumberMSB;
+ msgToL1.buffer[length++] = pPhyChan->chanNumberLSB;
+ msgToL1.buffer[length++] = pActDesc->actType;
+ msgToL1.buffer[length++] = pActDesc->dtxCtrl;
+ msgToL1.buffer[length++] = pActDesc->datAttr;
+ msgToL1.buffer[length++] = pActDesc->ratType;
+ msgToL1.buffer[length++] = pActDesc->codAlgo;
+ msgToL1.buffer[length++] = pActDesc->ciphSet;
+ RM_MEMCPY(&msgToL1.buffer[length], pActDesc->ciphKey, RM_L1CIPHKEY_LEN);
+ length = length + RM_L1CIPHKEY_LEN;
+ msgToL1.buffer[length++] = pActDesc->bsPower;
+
+
+// NewlyAdded
+// msgToL1.buffer[length++] = pActDesc->msPower;
+ msgToL1.buffer[length++] = rm_pItcRxMdMsg->l3_data.buffer[4]; //MS pwr on Rach
+
+ msgToL1.buffer[length++] = pActDesc->taValue;
+
+//NewlyAdded
+ msgToL1.buffer[length++] = OAMrm_MS_TX_PWR_MAX_CCH; //MS init TX pwr
+
+ msgToL1.buffer[length++] = pActDesc->UIC; /* TBD: may use memcpy later */
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+} /* End of rm_SendChanActivation() */
+
+#endif /* __RM_SENDCHANACTIVATION_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendChanAssignComplete.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendChanAssignComplete.cpp
new file mode 100644
index 0000000..8c4ca1f
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendChanAssignComplete.cpp
@@ -0,0 +1,40 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_SENDCHANASSIGNCOMPLETE_CPP__
+#define __RM_SENDCHANASSIGNCOMPLETE_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendChanAssignComplete(void)
+{
+ rm_ItcTxL3Msg_t msgToCc; /* Send inter MM-Rm siganling */
+ T_CNI_L3_ID ccId;
+
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendChanAssignComplete\n"));
+
+ /* TBD: may contain SAPI later if requested */
+ msgToCc.module_id = MODULE_RM;
+ msgToCc.entry_id = rm_ItcRxEntryId;
+ msgToCc.primitive_type = (IntraL3PrimitiveType_t)rm_pSmCtxt->callIdx; //INTRA_L3_DATA;
+ msgToCc.message_type = INTRA_L3_RR_CHANN_ASSIGN_COM;
+
+ /* Send the complete MM Paging Response message out */
+ ccId = CNI_RIL3_IRT_Get_CC_Id(rm_ItcRxEntryId);
+ if ( ccId.msgq_id == CNI_NULL_L3_ID.msgq_id &&
+ ccId.sub_id == CNI_NULL_L3_ID.sub_id )
+ EDEBUG__(("ERROR-rm_SendChanAssignComplete: null CC QId\n"));
+ else
+ api_SendMsgFromRmToCc(ccId.msgq_id, sizeof(rm_ItcTxL3Msg_t), (u8*)&msgToCc );
+
+} /* End of rm_SendChanAssignComplete() */
+
+#endif /* __RM_SENDCHANASSIGNCOMPLETE_CPP__ */
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendChanModeModify.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendChanModeModify.cpp
new file mode 100644
index 0000000..5d227a2
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendChanModeModify.cpp
@@ -0,0 +1,96 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_SENDCHANMODEMODIFY_CPP__
+#define __RM_SENDCHANMODEMODIFY_CPP__
+
+#include "rm\rm_head.h"
+
+
+void rm_SendChanModeModify(rm_SmCtxt_t *pSmCtxt )
+{
+ rm_EdRet_t rrEdRet; /* Return code from RR decode */
+ rm_L3Data_t l3_data; /* Encoded Paging Req Type 1 */
+ rm_UmChanModeModify_t *pUmChanModeModify; /* Data for encoding PageReq1 */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendChanModeModify\n"));
+
+ /* Check if make sense to send this message to MS */
+ if ( pSmCtxt->smType != RM_MAIN_SM ||
+ pSmCtxt->sapi != RM_SAPI0 ||
+ pSmCtxt->chanType != RM_CTFACCH_F )
+ {
+ EDEBUG__(( "ERROR-rm_SendChanModeModify:smType:%d, sapi:%d, chan:%d\n",
+ pSmCtxt->smType, pSmCtxt->sapi,pSmCtxt->chanType ));
+ return;
+ }
+
+ /* Choose Imm Assign message structure */
+ pUmChanModeModify = (rm_UmChanModeModify_t *) &(rm_UmMsg.channelModeModify);
+
+ /*
+ ** Populate the contents so that encoder knows what to encode but
+ ** before we start populating the message content, zap it clean
+ ** first.
+ */
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ /* Header--PD,MT,SI */
+ pUmChanModeModify->header.protocol_descriminator = RM_PD;
+ pUmChanModeModify->header.si_ti = RM_SI;
+ pUmChanModeModify->header.message_type = RM_CHANNEL_MODE_MODIFY;
+
+ /* IE--Channel Description */
+ pUmChanModeModify->channelDescription.ie_present = RM_TRUE;
+ pUmChanModeModify->channelDescription.hopping = RM_FALSE;
+ pUmChanModeModify->channelDescription.channelType = pSmCtxt->pPhyChan->chanType;
+ pUmChanModeModify->channelDescription.subChannelNumber =
+ pSmCtxt->pPhyChan->subChanNumber;
+ pUmChanModeModify->channelDescription.TN = (pSmCtxt->pPhyChan->chanNumberMSB)&RM_U8_0X07;
+ pUmChanModeModify->channelDescription.TSC = OAMrm_BTS_TSC; //rm_pSmCtxt->pPhyChan->TSC;
+ pUmChanModeModify->channelDescription.arfcn = OAMrm_ARFCN(pSmCtxt->pPhyChan->trxNumber);
+
+
+ /* IE--Channel Mode */
+ pUmChanModeModify->channelMode.ie_present = RM_TRUE;
+// pUmChanModeModify->channelMode.value = RM_CHANMODESP_VER1;
+// pUmChanModeModify->channelMode.value = (T_CNI_RIL3_CHANNEL_MODE_VALUE)OAMrm_GSMCODEC;
+
+ //EFRAdded
+ pUmChanModeModify->channelMode.value = (T_CNI_RIL3_CHANNEL_MODE_VALUE)pSmCtxt->codAlgo;
+
+ /* TBD : Add other IE here if needed */
+
+ /*
+ ** Call RR message encoding functionality
+ */
+ rrEdRet = CNI_RIL3RRM_Encode( &rm_UmMsg, &l3_data);
+
+ /* check the encoding result before sending the message */
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+ /* Wrap the encoded Paging message in DL_DATA_REQ */
+//C_CHN rm_SendDlDataReq ( pSmCtxt->mOId,pSmCtxt->sapi,RM_CTFACCH_F,&l3_data );
+ PostL3SendMsLog( pSmCtxt->mOId,pSmCtxt->sapi,&l3_data );
+ rm_SendDlDataReq ( pSmCtxt->mOId,pSmCtxt->sapi,&l3_data );
+
+ break;
+
+ default:
+ /* Um message encoding failed */
+ EDEBUG__(("ERROR-rm_SendChanModeModify: Um encode error:%d\n", rrEdRet ));
+ break;
+
+ } /* End of switch(rrEdRet) */
+
+} /* End of rm_SendChanModeModify() */
+
+#endif /* __RM_SENDCHANMODEMODIFY_CPP__ */
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendChanRelease.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendChanRelease.cpp
new file mode 100644
index 0000000..244c3b6
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendChanRelease.cpp
@@ -0,0 +1,83 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDCHANRELEASE_CPP__
+#define __RM_SENDCHANRELEASE_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendChanRelease(rm_IrtEntryId_t entryId)
+{
+ rm_EdRet_t rrEdRet; /* Return code from RR decode */
+ rm_L3Data_t l3_data; /* Encoded Paging Req Type 1 */
+ rm_UmChanRel_t *pUmChanRel; /* Data for encoding ChanRel */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendChanRelease:entryId=%d\n",entryId));
+
+ if (rm_SmCtxt[entryId].smType != RM_MAIN_SM)
+ {
+ EDEBUG__(("ERROR-rm_SendChanRelease: entryId not for main SM\n"));
+ return;
+ }
+
+ /* Choose Chan Release message structure */
+ pUmChanRel = (rm_UmChanRel_t *) &(rm_UmMsg.channelRelease);
+
+ /*
+ ** Populate the contents so that encoder knows what to encode but
+ ** before we start populating the message content, zap it clean
+ ** first.
+ */
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ /* Header--PD,MT,SI */
+ pUmChanRel->header.protocol_descriminator = RM_PD;
+ pUmChanRel->header.si_ti = RM_SI;
+ pUmChanRel->header.message_type = CNI_RIL3RRM_MSGID_CHANNEL_RELEASE;
+//RM_CHANNEL_RELEASE;
+
+ /* IE--RR Cause */
+ pUmChanRel->rrCause.ie_present = RM_TRUE;
+ pUmChanRel->rrCause.causeValue = RM_NORMAL_EVENT;
+
+ /* TBD : Add other IEs later like BA, Group Key */
+
+ /*
+ ** Call RR message encoding functionality
+ */
+ rrEdRet = CNI_RIL3RRM_Encode( &rm_UmMsg, &l3_data);
+
+ /* check the encoding result before sending the message */
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+ /* Send out the message through DL_DATA_REQ */
+PDEBUG__(("rm_SendChanRelease: mOId=%d,entryId=%d,sapi=%d\n",
+ rm_SmCtxt[entryId].mOId, entryId, rm_SmCtxt[entryId].sapi));
+TDUMP__((MAREA__,(u8*)&(l3_data), 20));
+
+//CT_CHN rm_SendDlDataReq ( rm_SmCtxt[entryId].mOId, rm_SmCtxt[entryId].sapi,
+// rm_SmCtxt[entryId].chanType,&l3_data );
+ PostL3SendMsLog( rm_SmCtxt[entryId].mOId, rm_SmCtxt[entryId].sapi,&l3_data );
+ rm_SendDlDataReq ( rm_SmCtxt[entryId].mOId, rm_SmCtxt[entryId].sapi,&l3_data );
+
+ break;
+
+ default:
+ /* Um message encoding failed */
+ EDEBUG__(("ERROR-rm_SendChanRelease: Um encode error:%d\n", rrEdRet ));
+ break;
+
+ } /* End of switch(rrEdRet) */
+
+} /* End of rm_SendChanRelease() */
+
+#endif /* __RM_SENDCHANRELEASE_CPP__ */
+
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendConfigFpgaToTrx.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendConfigFpgaToTrx.cpp
new file mode 100644
index 0000000..990fb69
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendConfigFpgaToTrx.cpp
@@ -0,0 +1,47 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDCONFIGFPGADELAYTOTRX_CPP__
+#define __RM_SENDCONFIGFPGADELAYTOTRX_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendConfigFpgaDelayToTrx(u8 trx)
+{
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+ u16 length; /* Length of the message to send to L1 */
+
+ /* It's caller's responsiblity to make sure trx valid */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendConfigFpgaDelayToTrx: Entering...\n" ));
+
+ /* Encode CONFIGure FPGA DELAY message to TRX */
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_CONFIGFPGADELAY_MSB; //0x14
+ msgToL1.buffer[length++] = RM_L1MT_CONFIGFPGADELAY_LSB; //0x00
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = OAMrm_TRX_ULFPGADELAY_MSB(trx);
+ msgToL1.buffer[length++] = OAMrm_TRX_ULFPGADELAY_LSB(trx);
+ msgToL1.buffer[length++] = OAMrm_TRX_DLFPGADELAY_MSB(trx);
+ msgToL1.buffer[length++] = OAMrm_TRX_DLFPGADELAY_LSB(trx);
+
+//PDEBUG__(("%d-th FPGA:%d,%d,%d,%d\n",
+// OAMrm_TRX_ULFPGADELAY_MSB(trx),
+// OAMrm_TRX_ULFPGADELAY_LSB(trx),
+// OAMrm_TRX_DLFPGADELAY_MSB(trx),
+// OAMrm_TRX_DLFPGADELAY_LSB(trx) ));
+
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer); /* TBD: Provided by L1 */
+
+} /* rm_SendConfigFpgaDelayToTrx() */
+
+#endif /* __RM_SENDCONFIGFPGADELAYTOTRX_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendDeactivateSacch.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendDeactivateSacch.cpp
new file mode 100644
index 0000000..d822bd6
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendDeactivateSacch.cpp
@@ -0,0 +1,36 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDDEACTIVATESACCH_CPP__
+#define __RM_SENDDEACTIVATESACCH_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendDeactivateSacch(rm_PhyChanDesc_t *pPhyChan)
+{
+ rm_ItcTxMsg_t msgToL1;
+ u16 length;
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendDeactivateSacch\n"));
+
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_DEDMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_DEACTIVSACCH_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_DEACTIVSACCH_LSB;
+ msgToL1.buffer[length++] = pPhyChan->trxNumber;
+ msgToL1.buffer[length++] = pPhyChan->chanNumberMSB;
+ msgToL1.buffer[length++] = pPhyChan->chanNumberLSB;
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+}
+
+#endif /* __RM_SENDDEACTIVATESACCH_CPP__ */
+
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendHandoverCommand.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendHandoverCommand.cpp
new file mode 100644
index 0000000..dea0c8e
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendHandoverCommand.cpp
@@ -0,0 +1,37 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDHANDOVERCOMMAND_CPP__
+#define __RM_SENDHANDOVERCOMMAND_CPP__
+
+//HOADDED
+#include "rm\rm_head.h"
+
+void rm_SendHandoverCommand(void)
+{
+ RDEBUG__(("ENTER-rm_SendHandoverCommand\n"));
+
+ /* Check if make sense to send this message to MS */
+ if ( rm_pSmCtxt->smType != RM_MAIN_SM ||
+ rm_pSmCtxt->sapi != RM_SAPI0 ||
+ rm_pSmCtxt->chanType != RM_CTFACCH_F )
+ {
+ EDEBUG__(( "ERROR-rm_SendHandoverCommand:smType:%d, sapi:%d, chan:%d\n",
+ rm_pSmCtxt->smType, rm_pSmCtxt->sapi,rm_pSmCtxt->chanType ));
+ return;
+ }
+
+ //Send Handover Command through DL_DATA_REQ
+TDUMP__((MAREA__,(unsigned char *)&(rm_pItcRxCcMsg->l3_data.handCmd.handCmd),40));
+
+ PostL3SendMsLog( rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,&(rm_pItcRxCcMsg->l3_data.handCmd.handCmd) );
+ rm_SendDlDataReq(rm_pSmCtxt->mOId,rm_pSmCtxt->sapi,&(rm_pItcRxCcMsg->l3_data.handCmd.handCmd));
+}
+
+#endif /*__RM_SENDHANDOVERCOMMAND_CPP__*/
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendHoComplete.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendHoComplete.cpp
new file mode 100644
index 0000000..7605915
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendHoComplete.cpp
@@ -0,0 +1,43 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDHOCOMPLETE_CPP__
+#define __RM_SENDHOCOMPLETE_CPP__
+
+//HOADDED
+
+#include "rm\rm_head.h"
+
+void rm_SendHoComplete(void)
+{
+ rm_ItcTxL3Msg_t msgToCc; //Send message to CC
+ T_CNI_L3_ID ccId;
+
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SendHoComplete\n"));
+
+ //Prepare Handover Complete message to CC
+ //TBD:may contain SAPI later if requested
+ msgToCc.module_id = MODULE_RM;
+ msgToCc.entry_id = rm_ItcRxEntryId;
+ msgToCc.primitive_type = INTRA_L3_DATA;
+ msgToCc.message_type = INTRA_L3_RR_HANDOVER_COMPLETE;
+
+ //Send Handover Complete message to CC
+ ccId = CNI_RIL3_IRT_Get_CC_Id(rm_ItcRxEntryId);
+ if ( ccId.msgq_id == CNI_NULL_L3_ID.msgq_id &&
+ ccId.sub_id == CNI_NULL_L3_ID.sub_id )
+ EDEBUG__(("ERROR-rm_SendHoComplete: null CC QId\n"));
+ else
+ api_SendMsgFromRmToCc(ccId.msgq_id, sizeof(rm_ItcTxL3Msg_t), (u8*)&msgToCc );
+
+} /* End of rm_SendHoComplete() */
+
+#endif /* __RM_SENDHOCOMPLETE_CPP__ */
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendHoFailure.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendHoFailure.cpp
new file mode 100644
index 0000000..0e39fe4
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendHoFailure.cpp
@@ -0,0 +1,42 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDHOFAILURE_CPP__
+#define __RM_SENDHOFAILURE_CPP__
+
+//HOADDED
+#include "rm\rm_head.h"
+
+//ext-HO <xxu:06-25-01>added cause parameter
+void rm_SendHoFailure(int cause, int rrCause)
+{
+ rm_ItcTxL3Msg_t msgToCc; //Hold msg to CC
+ T_CNI_L3_ID ccId; //Refer to CCQID
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SendHoFailure\n"));
+
+ //TBD: may contain SAPI later if requested
+ msgToCc.module_id = MODULE_RM;
+ msgToCc.entry_id = rm_ItcRxEntryId;
+ msgToCc.primitive_type = INTRA_L3_DATA;
+ msgToCc.message_type = INTRA_L3_RR_HANDOVER_FAILURE;
+ msgToCc.l3_data.handFail.cause = cause;
+ msgToCc.l3_data.handFail.rrCause = rrCause;
+
+ //Refer to relevant CC task Queue ID by entryID
+ ccId = CNI_RIL3_IRT_Get_CC_Id(rm_ItcRxEntryId);
+ if ( ccId.msgq_id == CNI_NULL_L3_ID.msgq_id &&
+ ccId.sub_id == CNI_NULL_L3_ID.sub_id )
+ EDEBUG__(("ERROR-rm_SendHoFailure: null CC Task QId\n"));
+ else
+ api_SendMsgFromRmToCc(ccId.msgq_id, sizeof(rm_ItcTxL3Msg_t), (u8*)&msgToCc );
+
+} /* End of rm_SendHoFailure() */
+
+#endif /* __RM_SENDHOFAILURE_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendHoReqAck.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendHoReqAck.cpp
new file mode 100644
index 0000000..049e895
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendHoReqAck.cpp
@@ -0,0 +1,111 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDHOREQACK_CPP__
+#define __RM_SENDHOREQACK_CPP__
+
+//HOADDED
+
+#include "rm\rm_head.h"
+
+u8 rm_SendHoReqAck(void)
+{
+ rm_EdRet_t rrEdRet;
+ rm_ItcTxL3Msg_t msgToMm; //Message to send to MM
+ rm_PhyChanDesc_t *pPhyChan; //Description of physical channel
+ IntraL3HandoverRequestAck_t *pMmHoCmd; //Message carried in msgToMm
+ T_CNI_RIL3RRM_MSG_HANDOVER_COMMAND *pUmHoCmd; //air Handover Command
+ rm_L3Data_t l3_data; //Store encoded Handover Command message
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SendHoReqAck\n"));
+
+ //Initialize pointers and memeory used properly first
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+ pMmHoCmd = (IntraL3HandoverRequestAck_t *)&(msgToMm.l3_data.handReqAck);
+ pUmHoCmd = (T_CNI_RIL3RRM_MSG_HANDOVER_COMMAND *)&(rm_UmMsg.handoverCommand);
+ pPhyChan = rm_pSmCtxt->pPhyChan; //Pointing to corresponding physical chan.
+
+ //Encode MM Handover Req Ack message header
+ msgToMm.module_id = MODULE_RM;
+ msgToMm.entry_id = rm_ItcRxEntryId;
+ msgToMm.primitive_type = RR_EST_CNF;
+ msgToMm.message_type = INTRA_L3_RR_HANDOVER_REQ_ACK;
+
+ //Encode MM Handover Req Ack message body: hoRef
+ pMmHoCmd->mmId = rm_pSmCtxt->pPhyChan->hoRef;
+
+ //Encode MM Handover Req Ack message body: Handover Command
+ //Install IEs: header part
+ pUmHoCmd->header.protocol_descriminator = RM_PD;
+ pUmHoCmd->header.si_ti = RM_SI;
+ pUmHoCmd->header.message_type = CNI_RIL3RRM_MSGID_HANDOVER_COMMAND;
+
+ //Install IE: Cell Description
+ pUmHoCmd->cellDescription.ie_present = RM_TRUE;
+ pUmHoCmd->cellDescription.arfcn = OAMrm_BCCH_ARFCN;
+ pUmHoCmd->cellDescription.ncc = OAMrm_NCC;
+ pUmHoCmd->cellDescription.bcc = OAMrm_BCC;
+
+ //Install IE: First Channel Description, after time
+ pUmHoCmd->firstChannelDescription.ie_present = RM_TRUE;
+ pUmHoCmd->firstChannelDescription.hopping = RM_FALSE;
+ pUmHoCmd->firstChannelDescription.channelType = pPhyChan->chanType;
+ pUmHoCmd->firstChannelDescription.subChannelNumber = pPhyChan->subChanNumber;
+ pUmHoCmd->firstChannelDescription.TN = (pPhyChan->chanNumberMSB)&RM_U8_0X07;
+ pUmHoCmd->firstChannelDescription.TSC = OAMrm_BTS_TSC; //pPhyChan->TSC;
+ pUmHoCmd->firstChannelDescription.arfcn = OAMrm_ARFCN(pPhyChan->trxNumber);
+
+ //Install IE: Handover Reference
+ pUmHoCmd->handoverReference.ie_present = RM_TRUE;
+ pUmHoCmd->handoverReference.handoverReference = pPhyChan->hoRef;
+
+ //Install IE: Power Command and Access Type
+ //HOADDED
+ //acs and power level may not be fixed in the future
+ pUmHoCmd->powerCommandAndAccess.ie_present = RM_TRUE;
+ pUmHoCmd->powerCommandAndAccess.acs = CNI_RIL3_SENDING_HANDOVER_ACCESS_MANDATORY;
+ pUmHoCmd->powerCommandAndAccess.powerLevel = OAMrm_MS_TX_PWR_MAX_CCH;
+
+ //Optional IE: Synchronization Indication
+ pUmHoCmd->syncIndication.ie_present = RM_TRUE;
+ pUmHoCmd->syncIndication.nci = CNI_RIL3_OUT_OF_RANGE_TIMING_ADVANCE_IGNORED;
+ pUmHoCmd->syncIndication.rot = CNI_RIL3_MOBILE_TIME_DIFFERENCE_SHALL_NOT_INCLUDED;
+ pUmHoCmd->syncIndication.si = CNI_RIL3_SI_NON_SYNCHRONIZED;
+
+ //All optional and conditional IEs ignored at this time. Note that the rm_UmMsg
+ //already reset to 0 at the beginning, thus no such IEs should be encoded even
+ //no RM_FALSE assigned to their ie_present field.
+
+ //Call RR message encoding functionality
+ rrEdRet = CNI_RIL3RRM_Encode(&rm_UmMsg, &l3_data);
+
+ //check if encoding of the message successful or not
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+ //Send out the message to MM
+ RM_MEMCPY((u8*)&(msgToMm.l3_data.handReqAck.handCmd),(u8*)&l3_data,
+ sizeof(rm_L3Data_t));
+ //TDUMP__((MAREA__,(unsigned char *)&(msgToMm.l3_data.handCmd.handCmd),40));
+ api_SendMsgFromRmToMm(sizeof(rm_ItcTxL3Msg_t), (u8*)&msgToMm);
+ break;
+
+ default:
+ //Encoding failed
+ EDEBUG__(("ERROR-rm_SendHoReqAck: RIL3-RR encode error:%d\n",
+ rrEdRet ));
+ return RM_FALSE;
+
+ } //End of switch(rrEdRet)
+
+ return RM_TRUE;
+
+} //End of rm_SendHoReqAck()
+
+#endif //__RM_SENDHOREQACK_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendHoReqNAck.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendHoReqNAck.cpp
new file mode 100644
index 0000000..8c3ce78
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendHoReqNAck.cpp
@@ -0,0 +1,35 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDHOREQNACK_CPP__
+#define __RM_SENDHOREQNACK_CPP__
+
+//HOADDED
+#include "rm\rm_head.h"
+
+void rm_SendHoReqNAck(u8 ref)
+{
+ rm_ItcTxL3Msg_t msgToMm; //Send RM->MM message
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SendHoReqNAck\n"));
+
+ //Prepare HoReqNAck MM message to send
+ msgToMm.module_id = MODULE_RM;
+ msgToMm.entry_id = CNI_IRT_NULL_ID;
+ msgToMm.primitive_type = INTRA_L3_RR_EST_REJ;
+ msgToMm.message_type = INTRA_L3_RR_HANDOVER_REQ_NACK;
+ msgToMm.l3_data.handReqNack.cause = JC_FAILURE_RADIO_RESOURCE_UNAVAILABLE;
+ msgToMm.l3_data.handReqNack.mmId = ref; //rm_pSmCtxt->pPhyChan->hoRef;
+
+ //Send out the HoReqNAck messag to MM
+ api_SendMsgFromRmToMm(sizeof(rm_ItcTxL3Msg_t), (u8*)&msgToMm);
+
+} /* End of rm_SendHoReqNAck() */
+
+#endif /* __RM_SENDHOREQNACK_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendImmAssign.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendImmAssign.cpp
new file mode 100644
index 0000000..1a54e76
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendImmAssign.cpp
@@ -0,0 +1,143 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_SENDIMMASSIGN_CPP__
+#define __RM_SENDIMMASSIGN_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendImmAssign(rm_PhyChanDesc_t *pPhyChan )
+{
+ static u8 agch_block=0; //Paging group got from IMSI
+ u16 length; //Length of a msg sent to L1
+ rm_EdRet_t rrEdRet; //Return code from RR decode
+ rm_L3Data_t l3_data; //Encoded Paging Req Type 1
+ rm_ItcTxMsg_t msgToL1; //Send PH_DATA_REQ msg to L1
+ rm_UmImmAssign_t *pUmImmAssign; //Data for encoding PageReq1
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SendImmAssign\n"));
+
+ //Choose Imm Assign message structure
+ pUmImmAssign = (rm_UmImmAssign_t *) &(rm_UmMsg.immediateAssignment);
+
+
+ //Populate the contents so that encoder knows what to encode but
+ //before we start populating the message content, zap it clean
+ //first.
+
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ //Header--PD,MT,SI
+ pUmImmAssign->header.protocol_descriminator = RM_PD;
+ pUmImmAssign->header.si_ti = RM_SI;
+ pUmImmAssign->header.message_type = RM_IMMEDIATE_ASSIGNMENT;
+
+ //IE--Page Mode
+ pUmImmAssign->pageMode.ie_present = RM_TRUE;
+
+ //PR1261 Begin
+ pUmImmAssign->pageMode.pm = CNI_RIL3_PAGING_SAME_AS_BEFORE;
+ //pUmImmAssign->pageMode.pm = CNI_RIL3_PAGING_REORGANIZATION;
+ //PR1261 End
+
+ //IE--Channel Description
+ pUmImmAssign->channelDescription.ie_present = RM_TRUE;
+ pUmImmAssign->channelDescription.hopping = RM_FALSE;
+ pUmImmAssign->channelDescription.channelType = pPhyChan->chanType;
+ pUmImmAssign->channelDescription.subChannelNumber = pPhyChan->subChanNumber;
+ pUmImmAssign->channelDescription.TN = (pPhyChan->chanNumberMSB)&RM_U8_0X07;
+ pUmImmAssign->channelDescription.TSC = OAMrm_BTS_TSC; //pPhyChan->TSC;
+ pUmImmAssign->channelDescription.arfcn = OAMrm_ARFCN(pPhyChan->trxNumber);
+
+ //IE--Request Reference
+ pUmImmAssign->reqReference.ie_present = RM_TRUE;
+ pUmImmAssign->reqReference.randomAccessInfo = pPhyChan->savChanReq[0];
+ pUmImmAssign->reqReference.T1 = (pPhyChan->savChanReq[1]>>3) & 0x1F;
+ pUmImmAssign->reqReference.T2 = (pPhyChan->savChanReq[2] ) & 0x1F;
+ pUmImmAssign->reqReference.T3 = (((pPhyChan->savChanReq[1]<<3) & 0x38) |
+ ((pPhyChan->savChanReq[2]>>5) & 0x07) );
+ //IE--TA
+ pUmImmAssign->timingAdvance.ie_present = RM_TRUE;
+ pUmImmAssign->timingAdvance.value = pPhyChan->savChanReq[3];
+
+ //IE--Mobile Allocation
+ pUmImmAssign->mobileAllocation.ie_present = RM_TRUE;
+ pUmImmAssign->mobileAllocation.numRFfreq = 0;
+
+ //IE--Starting Time
+ pUmImmAssign->startingTime.ie_present = RM_FALSE; //StartingTime_TBD;
+
+ //IE--IA Rest Octets
+ pUmImmAssign->iaRestOctets.ie_present = RM_TRUE;
+ pUmImmAssign->iaRestOctets.p = RM_P_NOT_PRESENT;
+
+
+ //Call RR message encoding functionality
+
+ rrEdRet = CNI_RIL3RRM_Encode( &rm_UmMsg, &l3_data);
+
+ //check the encoding result before sending the message
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+
+ //Wrap the encoded Paging message in PH_DATA_REQ
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_LNKMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_PHDATAREQ_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_PHDATAREQ_LSB;
+ msgToL1.buffer[length++] = OAMrm_BCCH_TRX;
+ msgToL1.buffer[length++] = RM_L1AGCH_CHANNUMBER_MSB;
+
+ //PR1261 Begin
+ //msgToL1.buffer[length++] = 0x3F & agch_block++;
+ msgToL1.buffer[length++] = 28;
+ //PR1261 End
+
+ msgToL1.buffer[length++] = RM_L1LINK_VOID;
+
+ RM_MEMCPY(&msgToL1.buffer[length], l3_data.buffer, l3_data.msgLength);
+
+ msgToL1.msgLength = length + l3_data.msgLength;
+
+ //Send PH_DATA_REQ to L1
+ PostL3SendMsLog( &l3_data );
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+ PDEBUG__(("========rm_SendImmAssign: TA=%d\n", pPhyChan->savChanReq[3]));
+
+ //PR1261 Begin
+ //Adjust agch_block index
+ //switch (OAMrm_BSCCCHSDCCH_COMB)
+ //{
+ //case RM_TRUE:
+ // if ( agch_block>8 ) agch_block = 0;
+ // break;
+
+ //case RM_FALSE:
+ // if ( agch_block>8 ) agch_block = 0;
+ // break;
+ //}
+ //PR1261 End
+
+ //PMADDED:succImmediateAssingProcs,succImmediateAssingProcsPerCauseTable
+ PM_CellMeasurement.succImmediateAssingProcs.increment();
+ PM_CellMeasurement.succImmediateAssingProcsPerCauseTable.increment(pPhyChan->estCause);
+
+ break;
+
+ default:
+ //Um message encoding failed
+ EDEBUG__(("ERROR-rm_SendImmAssign: Um encode error:%d\n", rrEdRet ));
+ break;
+
+ } //End of switch(rrEdRet)
+
+} //End of rm_SendImmAssign()
+
+#endif //__RM_SENDIMMASSIGN_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendModeModify.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendModeModify.cpp
new file mode 100644
index 0000000..d75aaa8
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendModeModify.cpp
@@ -0,0 +1,41 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_SENDMODEMODIFY_CPP__
+#define __RM_SENDMODEMODIFY_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendModeModify( rm_PhyChanDesc_t *pPhyChan,
+ rm_PhyChanActDesc_t *pActDesc )
+{
+ rm_ItcTxMsg_t msgToL1;
+ u16 length;
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendModeModify\n"));
+
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_DEDMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_MODEMODIFY_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_MODEMODIFY_LSB;
+ msgToL1.buffer[length++] = pPhyChan->trxNumber;
+ msgToL1.buffer[length++] = pPhyChan->chanNumberMSB;
+ msgToL1.buffer[length++] = pPhyChan->chanNumberLSB;
+ msgToL1.buffer[length++] = 0; //This is a dummy byte for avoiding change in DSP s/w
+ msgToL1.buffer[length++] = pActDesc->dtxCtrl;
+ msgToL1.buffer[length++] = pActDesc->datAttr;
+ msgToL1.buffer[length++] = pActDesc->ratType;
+ msgToL1.buffer[length++] = pActDesc->codAlgo;
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+}
+
+#endif /* End of rm_SendModeModify() */
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendPagingRequestType1.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendPagingRequestType1.cpp
new file mode 100644
index 0000000..e9f39b4
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendPagingRequestType1.cpp
@@ -0,0 +1,135 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_SENDPAGINGREQUESTTYPE1_CPP__
+#define __RM_SENDPAGINGREQUESTTYPE1_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendPagingRequestType1(void)
+{
+ u8 pagingGroup; /* Paging group got from IMSI */
+ u16 length; /* Length of a msg sent to L1 */
+ rm_EdRet_t rrEdRet; /* Return code from RR decode */
+ rm_L3Data_t l3_data; /* Encoded Paging Req Type 1 */
+ rm_ItcTxMsg_t msgToL1; /* Send PH_DATA_REQ msg to L1 */
+ rm_MmPaging_t *pMmPaging; /* Paging message got from MM */
+ rm_UmPageType1_t *pUmPaging; /* Data for encoding PageReq1 */
+ u16 len_save;
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendPagingRequestType1\n"));
+
+ /* TBD:MM paging format */
+ pMmPaging = (rm_MmPaging_t *) &(rm_pItcRxMmMsg->l3_data.pageReq);
+ pUmPaging = (rm_UmPageType1_t *) &(rm_UmMsg.pagingRequestType1);
+
+ /*
+ ** Populate the contents so that encoder knows what to encode but
+ ** before we start populating the message content, zap it clean
+ ** first.
+ */
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ /* Header--PD,MT,SI */
+ pUmPaging->header.protocol_descriminator = RM_PD;
+ pUmPaging->header.si_ti = RM_SI;
+ pUmPaging->header.message_type = RM_PAGING_REQUEST_TYPE_1;
+
+ /* IE--Page Mode */
+ pUmPaging->pageMode.ie_present = RM_TRUE;
+ pUmPaging->pageMode.pm = RM_NORMAL_PAGING;
+
+ /* IE--Page Channel Needed */
+ pUmPaging->channelNeeded.ie_present = RM_TRUE;
+ pUmPaging->channelNeeded.numChannels = 1;
+ pUmPaging->channelNeeded.channelNeeded[0] = CNI_RIL3_CHANNEL_NEEDED_ANY_CHANNEL;
+ //RM_CHANNEEDED_TCHF;
+
+ /* IE--Mobile Identity */
+ pUmPaging->mobileId1.ie_present = RM_TRUE;
+ pUmPaging->mobileId1.mobileIdType = pMmPaging->imsi.mobileIdType;
+ pUmPaging->mobileId1.numDigits = pMmPaging->imsi.numDigits;
+ RM_MEMCPY( pUmPaging->mobileId1.digits, pMmPaging->imsi.digits,
+ pMmPaging->imsi.numDigits );
+
+ //G2
+ pUmPaging->mobileId2.ie_present = RM_FALSE;
+
+ // Bhava Nelakanti - Mandatory IE missing Fix
+ /* IE--P1 Rest Octets */
+ pUmPaging->p1RestOctets.ie_present = RM_TRUE;
+ pUmPaging->p1RestOctets.nchi = CNI_RIL3_REDUCED_NCH_MONITERING_NOT_USED;
+
+ //G2
+ //NLN(PCH) field
+ pUmPaging->p1RestOctets.flag_nln = RM_FALSE;
+ pUmPaging->p1RestOctets.nln = 0;
+ pUmPaging->p1RestOctets.nln_status = 0;
+
+ //Priority_1 field
+ pUmPaging->p1RestOctets.flag_p1 = RM_FALSE;
+ pUmPaging->p1RestOctets.priority_1 = 0;
+
+ //Priority_2 field
+ pUmPaging->p1RestOctets.flag_p2 = RM_FALSE;
+ pUmPaging->p1RestOctets.priority_2 = 0;
+
+ //group call not supported, encoding will be marked as false
+
+ //packet_page_indication (1 or 2) should be set to true is it's packet paging procedure.
+ //It should be set to false, if it is paging procedure for RR connection establishment.
+ pUmPaging->p1RestOctets.packet_page_indication_1 = (rm_ItcRxOrigin==MODULE_BSSGP)?RM_TRUE:RM_FALSE;
+ pUmPaging->p1RestOctets.packet_page_indication_2 = RM_FALSE;
+
+ /*
+ ** Call RR message encoding functionality
+ */
+ rrEdRet = CNI_RIL3RRM_Encode( &rm_UmMsg, &l3_data);
+
+ /* check the encoding result before sending the message */
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+
+ /* Wrap the encoded Paging message in PH_DATA_REQ */
+ pagingGroup = rm_SolvePagingGroup(&(pMmPaging->imsi));
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_LNKMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_PHDATAREQ_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_PHDATAREQ_LSB;
+ msgToL1.buffer[length++] = OAMrm_BCCH_TRX;
+ msgToL1.buffer[length++] = RM_L1PCH_CHANNUMBER_MSB;
+//len_save = length;
+ msgToL1.buffer[length++] = pagingGroup;
+ msgToL1.buffer[length++] = RM_L1LINK_VOID;
+ RM_MEMCPY(&msgToL1.buffer[length], l3_data.buffer, l3_data.msgLength);
+ msgToL1.msgLength = length + l3_data.msgLength;
+
+ /* Send PH_DATA_REQ to L1 */
+//msgToL1.buffer[len_save] = 0;
+// api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+//msgToL1.buffer[len_save] = 1;
+// api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+//msgToL1.buffer[len_save] = 2;
+ PostL3SendMsLog ( &l3_data );
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+ break;
+
+ default:
+ /* Encoding failed */
+ EDEBUG__(("ERROR-rm_SendPagingRequestType1: RIL3-RR encode error:%d\n",
+ rrEdRet ));
+ break;
+
+ } /* End of switch(rrEdRet) */
+
+} /* End of rm_SendPagingRequestType1() */
+
+#endif /* __RM_SENDPAGINGREQUESTTYPE1_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendPagingRsp.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendPagingRsp.cpp
new file mode 100644
index 0000000..51797ec
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendPagingRsp.cpp
@@ -0,0 +1,86 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_SENDPAGINGRSP_CPP__
+#define __RM_SENDPAGINGRSP_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendPagingRsp(void)
+{
+ rm_EdRet_t rrEdRet; //Return code from RR decode
+ rm_ItcTxL3Msg_t msgToMm; //Send inter MM-Rm siganling
+ rm_MmPagingRsp_t *pMmPagingRsp; //Paging message got from MM
+ rm_UmPagingRsp_t *pUmPagingRsp; //Data for encoding PageReq1
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SendPagingRsp\n"));
+
+ //Decode the DL_EST_IND-carried data i.e.Um Paging Rsp message
+ //PR1104
+ //rrEdRet = CNI_RIL3RRM_Decode(&(rm_pItcRxMdMsg->l3_data),&rm_UmMsg);
+ rrEdRet = rm_MsgAnalyze();
+
+ if ( rrEdRet != RM_RRED_SUCCESS )
+ {
+ EDEBUG__(("ERROR@rm_SendPagingRsp:LAPDm l3_data decoded failed\n"));
+ return;
+ }
+
+ //Decoding successful. Further check if it's expected message
+ if ( rm_UmMsg.header.protocol_descriminator != RM_PD ||
+ rm_UmMsg.header.message_type != RM_PAGING_RESPONSE )
+ {
+ IDEBUG__(("WARNING@rm_SendPagingRsp: RR msg PD:%d;MT:%d",
+ rm_UmMsg.header.protocol_descriminator,
+ rm_UmMsg.header.message_type ));
+ //PR1104
+ rm_SendRrStatus(CNI_RIL3_RR_MESSAGE_TYPE_NOT_COMPATIBLE);
+ return;
+ }
+
+ pUmPagingRsp = (rm_UmPagingRsp_t *) &(rm_UmMsg.pagingResponse);
+
+ //Encode MM Paging Response message
+ msgToMm.module_id = MODULE_RM;
+ msgToMm.entry_id = rm_ItcRxEntryId;
+ msgToMm.primitive_type = RR_EST_CNF;
+ msgToMm.message_type = MM_PAGE_RSP;
+
+ pMmPagingRsp = (rm_MmPagingRsp_t *) &(msgToMm.l3_data.pageRsp);
+
+ //CC needs the whole paging rsp from LAPDm
+ RM_MEMCPY( pMmPagingRsp, pUmPagingRsp, sizeof(rm_UmPagingRsp_t) );
+
+ //Furnish the Paging Rsp message with required IEs data
+ pMmPagingRsp->mobileId.ie_present = pUmPagingRsp->mobileId.ie_present;
+ pMmPagingRsp->mobileId.mobileIdType = pUmPagingRsp->mobileId.mobileIdType;
+ pMmPagingRsp->mobileId.numDigits = pUmPagingRsp->mobileId.numDigits;
+
+ switch(pUmPagingRsp->mobileId.mobileIdType)
+ {
+ case RM_IMSI:
+ RM_MEMCPY( pMmPagingRsp->mobileId.digits,pUmPagingRsp->mobileId.digits,
+ pUmPagingRsp->mobileId.numDigits );
+ break;
+
+ default:
+ //Right now only handle IMSI, later may handle TMSI
+ IDEBUG__(( "WARNING@rm_SendPagingRsp: unexpected mobile Id:%d\n",
+ pUmPagingRsp->mobileId.mobileIdType ));
+ return;
+ break;
+
+ } //End of switch()
+
+ //Send the complete MM Paging Response message out
+ api_SendMsgFromRmToMm( sizeof(rm_ItcTxL3Msg_t), (u8*) &msgToMm);
+
+} //End of rm_SendPagingRsp()
+
+#endif //__RM_SENDPAGINGRSP_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendRfChanRelease.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendRfChanRelease.cpp
new file mode 100644
index 0000000..7200aeb
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendRfChanRelease.cpp
@@ -0,0 +1,35 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDRFCHANRELEASE_CPP__
+#define __RM_SENDRFCHANRELEASE_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendRfChanRelease(rm_PhyChanDesc_t *pPhyChan)
+{
+ rm_ItcTxMsg_t msgToL1;
+ u16 length;
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendRfChanRelease\n"));
+
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_DEDMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_RFCHANREL_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_RFCHANREL_LSB;
+ msgToL1.buffer[length++] = pPhyChan->trxNumber;
+ msgToL1.buffer[length++] = pPhyChan->chanNumberMSB;
+ msgToL1.buffer[length++] = pPhyChan->chanNumberLSB;
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+} /* End of rm_SendRfChanRelease() */
+
+#endif /* __RM_SENDRFCHANRELEASE_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendRrRelCnf.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendRrRelCnf.cpp
new file mode 100644
index 0000000..e892498
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendRrRelCnf.cpp
@@ -0,0 +1,31 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDRRRELCNF_CPP__
+#define __RM_SENDRRRELCNF_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendRrRelCnf( void )
+{
+ rm_ItcTxL3Msg_t msgToMm; //Send inter MM-Rm siganling
+
+ //Monitoring entrance to a function
+ //RDEBUG__(("ENTER-rm_SendRrRelCnf\n"));
+ PDEBUG__(("ENTER@rm_SendRrRelCnf:entryId=%d\n",rm_ItcRxEntryId));
+
+ //Encode RR_REL_IND and send to MM. TBD: Include cause or not
+ msgToMm.module_id = MODULE_RM;
+ msgToMm.entry_id = rm_ItcRxEntryId;
+ msgToMm.primitive_type = RR_REL_CNF;
+
+ //Send the complete MM Paging Response message out
+ api_SendMsgFromRmToMm( sizeof(rm_ItcTxL3Msg_t), (u8*) &msgToMm);
+}
+
+#endif //__RM_SENDRRRELCNF_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendRrRelInd.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendRrRelInd.cpp
new file mode 100644
index 0000000..08271b8
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendRrRelInd.cpp
@@ -0,0 +1,32 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDRRRELIND_CPP__
+#define __RM_SENDRRRELIND_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendRrRelInd(u8 cause, rm_IrtEntryId_t entryId)
+{
+ rm_ItcTxL3Msg_t msgToMm;
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER@rm_SendRrRelInd\n"));
+
+ //Encode RR_REL_IND and send to MM. TBD: Include cause or not
+ msgToMm.module_id = MODULE_RM;
+ msgToMm.entry_id = entryId;
+ msgToMm.primitive_type = RR_REL_IND;
+
+ msgToMm.cause = rm_pSmCtxt->relCause;
+
+ //Send the complete MM Paging Response message out
+ api_SendMsgFromRmToMm( sizeof(rm_ItcTxL3Msg_t), (u8*) &msgToMm);
+}
+
+#endif //__RM_SENDRRRELCNF_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendSacchFillingSI5.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendSacchFillingSI5.cpp
new file mode 100644
index 0000000..a9fa663
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendSacchFillingSI5.cpp
@@ -0,0 +1,119 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_SENDSACCHFILLINGSI5_CPP__
+#define __RM_SENDSACCHFILLINGSI5_CPP__
+
+#include "rm\rm_head.h"
+
+extern AdjCell_HandoverEntry adjCell_HandoverTable[HandoverTableLimit];
+extern AdjCell_HandoverEntry adjCell_HandoverTable_t[HandoverTableLimit];
+
+void rm_SendSacchFillingSI5(u8 trx, u8 SI)
+{
+ int i,j;
+ u16 length; // Length of a msg sent to L1
+ rm_EdRet_t rrEdRet; // Return code from RR decode
+ rm_L3Data_t l3_data; // Encoded SI Type 5
+ rm_ItcTxMsg_t msgToL1; // Send BCCH INFORMATION msg to L1
+
+ //Monitoring entrance to a function
+ RDEBUG__(("ENTER-rm_SendSacchFillingToTrx\n"));
+
+ //Zap rm_UmMsg 0-clean first
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ //Populate SI2 for use by RRM encoder
+ rm_PopulateSI5();
+ RM_MEMCPY( &rm_UmMsg, &rm_UmSI5, sizeof(rm_UmSI5_t));
+
+ //Call RR message encoding functionality
+
+
+ rrEdRet = CNI_RIL3RRM_Encode( &rm_UmMsg, &l3_data);
+
+
+ //PR1223 Begin
+
+ //RIL3 will reoder the frequencies during encoding. Get the resulted f.list
+ RM_MEMCPY(&rm_UmSI5, &rm_UmMsg, sizeof(rm_UmSI5_t));
+
+ //Construct internal adjacent ho cell tables in terms of the resulted order
+ for (i=0;i<rm_UmSI5.bcchFreqList.numRFfreq;i++)
+ {
+ memset(&adjCell_HandoverTable_t[i],0,
+ sizeof(AdjCell_HandoverEntry));
+
+ for (j=0;j<rm_UmSI5.bcchFreqList.numRFfreq;j++)
+ {
+
+ if (rm_UmSI5.bcchFreqList.arfcn[i]==OAMrm_HO_ADJCELL_BCCH_ARFCN(j))
+ break;
+ }
+
+ //printf("RM@===f(i#=%d, o#=%d, total=%d), freq=%d\n", i,j,
+ // rm_UmSI5.bcchFreqList.numRFfreq,
+ // rm_UmSI5.bcchFreqList.arfcn[i]);
+
+ if (j<rm_UmSI5.bcchFreqList.numRFfreq)
+ {
+ //Put this adjacent-cell configuration in its right place
+ memcpy(&adjCell_HandoverTable_t[i],
+ &adjCell_HandoverTable[j],
+ sizeof(AdjCell_HandoverEntry));
+
+ //printf("RM@===f(#=%d, total=%d), freq=%d, id=%d\n", i,
+ // rm_UmSI5.bcchFreqList.numRFfreq,
+ // OAMrm_HO_ADJCELL_BCCH_ARFCN_t(i),
+ // OAMrm_HO_ADJCELL_ID_t(i));
+
+ } else
+ {
+ EDEBUG__(("ERROR@rm_PopulateSI5:alien freq after RIL3 encoding\n"));
+ }
+
+ }
+
+ //PR1223 End
+
+ //check the encoding result before sending the message
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+
+ //Wrap the encoded SI in SACCH FILLING sent to L1
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_SACCHFILL_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_SACCHFILL_LSB;
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = SI;
+ msgToL1.buffer[length++] = l3_data.msgLength;
+ RM_MEMCPY(&msgToL1.buffer[length], l3_data.buffer, l3_data.msgLength);
+ length = length + l3_data.msgLength;
+ msgToL1.buffer[length++] = 1; //Start time==immediate
+ msgToL1.buffer[length++] = 0;
+ msgToL1.buffer[length++] = 0;
+ msgToL1.msgLength = length;
+
+ //Send SACCH FILLING TO L1
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+ break;
+
+ default:
+ //Encoding failed
+ EDEBUG__(("ERROR-rm_SendSacchFillingSI5: RIL3-RR encode error:%d\n",
+ rrEdRet ));
+ break;
+
+ } //End of switch(rrEdRet)
+
+} //End of rm_SendSacchFillingSI5()
+
+#endif //__RM_SENDSACCHFILLINGSI5_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendSacchFillingSI6.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendSacchFillingSI6.cpp
new file mode 100644
index 0000000..06d6f11
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendSacchFillingSI6.cpp
@@ -0,0 +1,73 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+*/
+#ifndef __RM_SENDSACCHFILLINGSI6_CPP__
+#define __RM_SENDSACCHFILLINGSI6_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendSacchFillingSI6(u8 trx, u8 SI)
+{
+ u16 length; /* Length of a msg sent to L1 */
+ rm_EdRet_t rrEdRet; /* Return code from RR decode */
+ rm_L3Data_t l3_data; /* Encoded SI Type 5 */
+ rm_ItcTxMsg_t msgToL1; /* Send BCCH INFORMATION msg to L1 */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendSacchFillingToTrx\n"));
+
+ /* Zap rm_UmMsg 0-clean first */
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ /* Populate SI2 for use by RRM encoder */
+ rm_PopulateSI6();
+ RM_MEMCPY( &rm_UmMsg, &rm_UmSI6, sizeof(rm_UmSI6_t));
+
+ /* Call RR message encoding functionality */
+ rrEdRet = CNI_RIL3RRM_Encode( &rm_UmMsg, &l3_data);
+
+ /* check the encoding result before sending the message */
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+
+//printf("rm_SendSacchFillingSI6: SYSINFO6 length=%d\n", l3_data.msgLength);
+//for (int i=0;i<l3_data.msgLength;i++)
+//printf("%02x ", l3_data.buffer[i]);
+//printf("\n");
+ /* Wrap the encoded SI in SACCH FILLING sent to L1 */
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_SACCHFILL_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_SACCHFILL_LSB;
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = SI;
+ msgToL1.buffer[length++] = l3_data.msgLength;
+ RM_MEMCPY(&msgToL1.buffer[length], l3_data.buffer, l3_data.msgLength);
+ length = length + l3_data.msgLength;
+ msgToL1.buffer[length++] = 1; //Start time==immediate
+ msgToL1.buffer[length++] = 0;
+ msgToL1.buffer[length++] = 0;
+ msgToL1.msgLength = length;
+
+ /* Send SACCH FILLING TO L1 */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+ break;
+
+ default:
+ /* Encoding failed */
+ EDEBUG__(("ERROR-rm_SendSacchFillingSI6: RIL3-RR encode error:%d\n",
+ rrEdRet ));
+ break;
+
+ } /* End of switch(rrEdRet) */
+
+} /* End of rm_SendSacchFillingSI6() */
+
+#endif /* __RM_SENDSACCHFILLINGSI6_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendSetDGainToTrx.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendSetDGainToTrx.cpp
new file mode 100644
index 0000000..50a50f1
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendSetDGainToTrx.cpp
@@ -0,0 +1,40 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDSETDGAINTOTRX_CPP__
+#define __RM_SENDSETDGAINTOTRX_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendSetDGainToTrx(u8 trx)
+{
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+ u16 length; /* Length of the message to send to L1 */
+
+ /* It's caller's responsiblity to make sure trx valid */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendSetDGainToTrx: Entering...\n" ));
+
+ /* Encode SET Uplink GAIN message for TRX */
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_SETDGAIN_MSB; //0x11
+ msgToL1.buffer[length++] = RM_L1MT_SETDGAIN_LSB; //0x00
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = (u8)((OAMrm_DOWNLINK_SGAINCTRL_SETTING(trx))>>8); //0x00
+ msgToL1.buffer[length++] = (u8)(OAMrm_DOWNLINK_SGAINCTRL_SETTING(trx)); //0x00
+
+ msgToL1.msgLength = length;
+
+ /* Send TRX CONFIGure to L1 */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer); /* TBD: Provided by L1 */
+
+} /* rm_SendSetDGainToTrx() */
+
+#endif /* __RM_SENDSETDGAINTOTRX_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendSetUGainToTrx.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendSetUGainToTrx.cpp
new file mode 100644
index 0000000..c61996f
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendSetUGainToTrx.cpp
@@ -0,0 +1,39 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDSETUGAINTOTRX_CPP__
+#define __RM_SENDSETUGAINTOTRX_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendSetUGainToTrx(u8 trx)
+{
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+ u16 length; /* Length of the message to send to L1 */
+
+ /* It's caller's responsiblity to make sure trx valid */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendSetUGainToTrx: Entering...\n" ));
+
+ /* Encode SET Uplink GAIN message for TRX */
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_SETUGAIN_MSB; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_SETUGAIN_LSB; //0x00
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = (u8)((OAMrm_UPLINK_SGAINCTRL_SETTING(trx))>>8); //0x00
+ msgToL1.buffer[length++] = (u8)(OAMrm_UPLINK_SGAINCTRL_SETTING(trx)); //0x00
+ msgToL1.msgLength = length;
+
+ /* Send TRX CONFIGure to L1 */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer); /* TBD: Provided by L1 */
+
+} /* rm_SendSetUGainToTrx() */
+
+#endif /* __RM_SENDSETUGAINTOTRX_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendSlotActivateToTrx.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendSlotActivateToTrx.cpp
new file mode 100644
index 0000000..618751e
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendSlotActivateToTrx.cpp
@@ -0,0 +1,76 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDSLOTACTIVATETOTRX_CPP__
+#define __RM_SENDSLOTACTIVATETOTRX_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendSlotActivateToTrx(u8 trx, u8 slot)
+{
+ u16 length; /* Length of the L1 Slot Activate msg */
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendSlotActivateToTrx: Entering...\n" ));
+
+ /* ATTN:
+ ** ====
+ ** slot's bit 8-5 i.e. 5 MSB bits must be masked by caller of this
+ ** function. Caller is also responsibile for validity of SLOT COMB
+ ** value associated with this slot. This function just passes COMB
+ ** it gets to L1
+ */
+
+ /* Encode Slot Activate message */
+
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_SLOTACTIV_MSB; //0x17
+ msgToL1.buffer[length++] = RM_L1MT_SLOTACTIV_LSB; //0x00
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = slot;
+ msgToL1.buffer[length++] = OAMrm_TRX_SLOT_COMB(trx,slot);
+
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer); /* TBD: Provided by L1 */
+
+} /* End of rm_SendSlotActivateToSlot() */
+
+void intg_SendSlotActivateToTrx(u8 trx, u8 slot, u8 comb)
+{
+ u16 length; /* Length of the L1 Slot Activate msg */
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-intg_SendSlotActivateToTrx: Entering...\n" ));
+
+ /* ATTN:
+ ** ====
+ ** slot's bit 8-5 i.e. 5 MSB bits must be masked by caller of this
+ ** function. Caller is also responsibile for validity of SLOT COMB
+ ** value associated with this slot. This function just passes COMB
+ ** it gets to L1
+ */
+
+ /* Encode Slot Activate message */
+
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_SLOTACTIV_MSB; //0x17
+ msgToL1.buffer[length++] = RM_L1MT_SLOTACTIV_LSB; //0x00
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = slot;
+ msgToL1.buffer[length++] = comb; //OAMrm_TRX_SLOT_COMB(trx,slot);
+
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer); /* TBD: Provided by L1 */
+}
+#endif /* __RM_SENDSLOTACTIVATETOTRX_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendSynchInfoToBcchTrx.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendSynchInfoToBcchTrx.cpp
new file mode 100644
index 0000000..ef28ce1
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendSynchInfoToBcchTrx.cpp
@@ -0,0 +1,42 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDSYNCHINFOTOBCCHTRX_CPP__
+#define __RM_SENDSYNCHINFOTOBCCHTRX_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendSynchInfoToBcchTrx( u8 trx)
+{
+ u16 length; /* Length of the L1 Slot Activate msg */
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendSynchInfoToBcchTrx\n"));
+
+ /* Encode SYNCH INFO message */
+
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_SYNCH_MSB; //0x00
+ msgToL1.buffer[length++] = RM_L1MT_SYNCH_LSB; //0x1D
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = 0; //TBD: OAMrm_SYNCHINFO(0), MSBbyte
+ msgToL1.buffer[length++] = 0; //TBD: OAMrm_SYNCHINFO(1)
+ msgToL1.buffer[length++] = 0; //TBD: OAMrm_SYNCHINFO(2)
+ msgToL1.buffer[length++] = 0; //TBD: OAMrm_SYNCHINFO(3), LSBbyte
+
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+} /* End of rm_SendSynchInfoToBcchTrx() */
+
+#endif /* __RM_SENDSYNCHINFOTOBCCHTRX_CPP__ */
+
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo2ToBcchTrx.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo2ToBcchTrx.cpp
new file mode 100644
index 0000000..1ddd8f9
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo2ToBcchTrx.cpp
@@ -0,0 +1,71 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDSYSTEMINFO2TOBCCHTRX_CPP__
+#define __RM_SENDSYSTEMINFO2TOBCCHTRX_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendSystemInfo2ToBcchTrx(u8 trx, u8 SI, T_CNI_RIL3_CELL_BARRED_ACCESS barState)
+{
+ u16 length; /* Length of a msg sent to L1 */
+ rm_EdRet_t rrEdRet; /* Return code from RR decode */
+ rm_L3Data_t l3_data; /* Encoded SI Type 2 */
+ rm_ItcTxMsg_t msgToL1; /* Send BCCH INFORMATION msg to L1 */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendSystemInfo2ToBcchTrx\n"));
+
+ /* Zap rm_UmMsg 0-clean first */
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ /* Populate SI2 for use by RRM encoder */
+ rm_PopulateSI2(barState);
+ RM_MEMCPY( &rm_UmMsg, &rm_UmSI2, sizeof(rm_UmSI2_t));
+
+ /* Call RR message encoding functionality */
+ rrEdRet = CNI_RIL3RRM_Encode( &rm_UmMsg, &l3_data);
+
+ /* check the encoding result before sending the message */
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+
+ /* Wrap the encoded SI in PH_DATA_REQ */
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_COMCHAN;
+ msgToL1.buffer[length++] = RM_L1MT_BCCHINFO_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_BCCHINFO_LSB;
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = RM_L1BCCH_CHANNUMBER_MSB;
+ msgToL1.buffer[length++] = RM_L1BCCH_CHANNUMBER_LSB;
+ msgToL1.buffer[length++] = SI;
+ msgToL1.buffer[length++] = l3_data.msgLength;
+ RM_MEMCPY(&msgToL1.buffer[length], l3_data.buffer, l3_data.msgLength);
+ length = length + l3_data.msgLength;
+ msgToL1.buffer[length++] = 1; //Start time==immediate
+ msgToL1.buffer[length++] = 0;
+ msgToL1.buffer[length++] = 0;
+ msgToL1.msgLength = length;
+
+ /* Send BCCH INFORMATION TO L1 */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+ break;
+
+ default:
+ /* Encoding failed */
+ EDEBUG__(("ERROR-rm_SendSystemInfo2ToBcchTrx: RIL3-RR encode error:%d\n",
+ rrEdRet ));
+ break;
+
+ } /* End of switch(rrEdRet) */
+
+} /* End of rm_SendSystemInfo2ToBcchTrx() */
+
+#endif /* __RM_SENDSYSTEMINFO2TOBCCHTRX_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo3ToBcchTrx.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo3ToBcchTrx.cpp
new file mode 100644
index 0000000..95c8c3c
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo3ToBcchTrx.cpp
@@ -0,0 +1,71 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDSYSTEMINFO3TOBCCHTRX_CPP__
+#define __RM_SENDSYSTEMINFO3TOBCCHTRX_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendSystemInfo3ToBcchTrx(u8 trx, u8 SI, T_CNI_RIL3_CELL_BARRED_ACCESS barState)
+{
+ u16 length; /* Length of a msg sent to L1 */
+ rm_EdRet_t rrEdRet; /* Return code from RR decode */
+ rm_L3Data_t l3_data; /* Encoded SI Type 3 */
+ rm_ItcTxMsg_t msgToL1; /* Send BCCH INFORMATION msg to L1 */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendSystemInfo3ToBcchTrx\n"));
+
+ /* Zap rm_UmMsg 0-clean first */
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ /* Populate SI3 for use by RRM encoder */
+ rm_PopulateSI3(barState);
+ RM_MEMCPY( &rm_UmMsg, &rm_UmSI3, sizeof(rm_UmSI3_t));
+
+ /* Call RR message encoding functionality */
+ rrEdRet = CNI_RIL3RRM_Encode( &rm_UmMsg, &l3_data);
+
+ /* check the encoding result before sending the message */
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+
+ /* Wrap the encoded SI in PH_DATA_REQ */
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_COMCHAN;
+ msgToL1.buffer[length++] = RM_L1MT_BCCHINFO_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_BCCHINFO_LSB;
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = RM_L1BCCH_CHANNUMBER_MSB;
+ msgToL1.buffer[length++] = RM_L1BCCH_CHANNUMBER_LSB;
+ msgToL1.buffer[length++] = SI;
+ msgToL1.buffer[length++] = l3_data.msgLength;
+ RM_MEMCPY(&msgToL1.buffer[length], l3_data.buffer, l3_data.msgLength);
+ length = length + l3_data.msgLength;
+ msgToL1.buffer[length++] = 1; //Start time==immediate
+ msgToL1.buffer[length++] = 0;
+ msgToL1.buffer[length++] = 0;
+ msgToL1.msgLength = length;
+
+ /* Send BCCH INFORMATION TO L1 */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+ break;
+
+ default:
+ /* Encoding failed */
+ EDEBUG__(("ERROR-rm_SendSystemInfo3ToBcchTrx: RIL3-RR encode error:%d\n",
+ rrEdRet ));
+ break;
+
+ } /* End of switch(rrEdRet) */
+
+} /* End of rm_SendSystemInfo3ToBcchTrx() */
+
+#endif /* __RM_SENDSYSTEMINFO3TOBCCHTRX_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo4ToBcchTrx.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo4ToBcchTrx.cpp
new file mode 100644
index 0000000..63ed38d
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendSystemInfo4ToBcchTrx.cpp
@@ -0,0 +1,71 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDSYSTEMINFO4TOBCCHTRX_CPP__
+#define __RM_SENDSYSTEMINFO4TOBCCHTRX_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendSystemInfo4ToBcchTrx(u8 trx, u8 SI, T_CNI_RIL3_CELL_BARRED_ACCESS barState)
+{
+ u16 length; /* Length of a msg sent to L1 */
+ rm_EdRet_t rrEdRet; /* Return code from RR decode */
+ rm_L3Data_t l3_data; /* Encoded SI Type 4 */
+ rm_ItcTxMsg_t msgToL1; /* Send BCCH INFORMATION msg to L1 */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendSystemInfo4ToBcchTrx\n"));
+
+ /* Zap rm_UmMsg 0-clean first */
+ RM_MEMSET( &rm_UmMsg, sizeof(rm_UmMsg_t) );
+
+ /* Populate SI4 for use by RRM encoder */
+ rm_PopulateSI4(barState);
+ RM_MEMCPY( &rm_UmMsg, &rm_UmSI4, sizeof(rm_UmSI4_t));
+
+ /* Call RR message encoding functionality */
+ rrEdRet = CNI_RIL3RRM_Encode( &rm_UmMsg, &l3_data);
+
+ /* check the encoding result before sending the message */
+ switch (rrEdRet)
+ {
+ case RM_RRED_SUCCESS:
+
+ /* Wrap the encoded SI in PH_DATA_REQ */
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_COMCHAN;
+ msgToL1.buffer[length++] = RM_L1MT_BCCHINFO_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_BCCHINFO_LSB;
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = RM_L1BCCH_CHANNUMBER_MSB;
+ msgToL1.buffer[length++] = RM_L1BCCH_CHANNUMBER_LSB;
+ msgToL1.buffer[length++] = SI;
+ msgToL1.buffer[length++] = l3_data.msgLength;
+ RM_MEMCPY(&msgToL1.buffer[length], l3_data.buffer, l3_data.msgLength);
+ length = length + l3_data.msgLength;
+ msgToL1.buffer[length++] = 1; //Start time==immediate
+ msgToL1.buffer[length++] = 0;
+ msgToL1.buffer[length++] = 0;
+ msgToL1.msgLength = length;
+
+ /* Send BCCH INFORMATION TO L1 */
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+
+ break;
+
+ default:
+ /* Encoding failed */
+ EDEBUG__(("ERROR-rm_SendSystemInfo4ToBcchTrx: RIL3-RR encode error:%d\n",
+ rrEdRet ));
+ break;
+
+ } /* End of switch(rrEdRet) */
+
+} /* End of rm_SendSystemInfo4ToBcchTrx() */
+
+#endif /* __RM_SENDSYSTEMINFO4TOBCCHTRX_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendTrxConfigToTrx.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendTrxConfigToTrx.cpp
new file mode 100644
index 0000000..4d8f9f2
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendTrxConfigToTrx.cpp
@@ -0,0 +1,44 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDTRXCONFIGTOTRX_CPP__
+#define __RM_SENDTRXCONFIGTOTRX_CPP__
+
+#include "rm\rm_head.h"
+
+
+void rm_SendTrxConfigToTrx(u8 trx)
+{
+ u16 length; /* Length of the message to send to L1 */
+ rm_ItcTxMsg_t msgToL1; /* Store an encoded message sent to L1 */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_SendTrxConfigToTrx: Entering...\n" ));
+
+ /* Encode TRX CONFIGure message */
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_TRXCONFIG_MSB; //0x15
+ msgToL1.buffer[length++] = RM_L1MT_TRXCONFIG_LSB; //0x00
+ msgToL1.buffer[length++] = trx; //OAMrm_PREALPHA_TRX;
+ msgToL1.buffer[length++] = OAMrm_AIRINTERFACE; //0x02
+ msgToL1.buffer[length++] = OAMrm_BTS_BSIC; //0x5D
+ msgToL1.buffer[length++] = OAMrm_NETWORKIFCONFIG; //0x00
+
+ //Skip those not in-use fields
+ length += 14;
+ msgToL1.buffer[length++] = (u8) OAMrm_I_Q_SWAP; //0:non-swap, 1:swap
+
+ msgToL1.msgLength = length + 14;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer); /* TBD: Provided by L1 */
+
+} /* rm_SendTrxConfigToTrx() */
+
+#endif /* __RM_SENDTRXCONFIGTOTRX_CPP__ */
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SendTuneSynthToTrx.cpp b/data/mnet/GP10/Host/rm/Src/rm_SendTuneSynthToTrx.cpp
new file mode 100644
index 0000000..e0ac503
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SendTuneSynthToTrx.cpp
@@ -0,0 +1,141 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SENDTUNESYNTHTOTRX_CPP__
+#define __RM_SENDTUNESYNTHTOTRX_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_SendTuneSynthToTrx(u8 trx,u8 pwr)
+{
+ static u8 m_pwr[2]={0,0};
+
+ //Check if tune make sense
+ //if (m_pwr[trx] == pwr)
+ //{
+ // PDEBUG__(("INFO@rm_SendTuneSynthToTrx: nothing changed, thus fruitless tune(%d,%d)\n",
+ // trx,pwr));
+ // return;
+ //}
+
+ //Go ahead to tuen and rememebr the current pwr state
+ m_pwr[trx] = pwr;
+
+ //G2TEST
+
+ //Monitoring entrance to a function
+ //RDEBUG__(("ENTER-rm_SendTuneSynthToTrx: Entering...\n" ));
+
+ //Tune physical TRX syntheseizer according to configuration data
+ //PDEBUG__(("INFO@rm_SendTuneSynthToTrx: tune trx synth: (%d,%d)\n",trx,pwr));
+
+ // if (rm_TrxMgmt[trx].state==RM_TRXMGMT_SNULL ||
+ // rm_TrxMgmt[trx].state==RM_TRXMGMT_S0_BOOTSTRAP_IND)
+ // return;
+
+ rm_SendArfcnToTrx(trx, OAMrm_BCCH_CARRIER_phTRX);
+
+ switch(trx)
+ {
+ case 0:
+ if (OAMrm_BCCH_CARRIER_phTRX)
+ { //phTRX 1 as bcch carrier trx ie trx-es swapped scenario
+ rm_TuneSynth(0, 0, OAMrm_HOPPING_CTRL, pwr, OAMrm_ARFCN(0));
+ //phTRX, syth, Hopping, pwrSetting, trxPackage
+ } else
+ { //phTRX 0 as bcch carrier trx ie trx-es non-swapped scenario
+ rm_TuneSynth(1, 0, OAMrm_HOPPING_CTRL, pwr, OAMrm_ARFCN(0));
+ //phTRX, syth, Hopping, pwrSetting, trxPackage
+ rm_TuneSynth(1, 1, OAMrm_HOPPING_CTRL, pwr, OAMrm_ARFCN(0));
+ //phTRX, syth, Hopping, pwrSetting, trxPackage
+ }
+ break;
+ case 1:
+ if (OAMrm_BCCH_CARRIER_phTRX)
+ { //phTRX 1 as bcch carrier trx ie trx-es swapped scenario
+ rm_TuneSynth(1, 0, OAMrm_HOPPING_CTRL, pwr, OAMrm_ARFCN(1));
+ //phTRX, syth, Hopping, pwrSetting, trxPackage
+ rm_TuneSynth(1, 1, OAMrm_HOPPING_CTRL, pwr, OAMrm_ARFCN(1));
+ //phTRX, syth, Hopping, pwrSetting, trxPackage
+ } else
+ { //phTRX 0 as bcch carrier trx ie trx-es non-swapped scenario
+ rm_TuneSynth(0, 0, OAMrm_HOPPING_CTRL, pwr, OAMrm_ARFCN(1));
+ //phTRX, syth, Hopping, pwrSetting, trxPackage
+ }
+ break;
+
+ default:
+ EDEBUG__(("WARNING@rm_SendTuneSynthToTrx: invalid trx=%d\n",trx));
+ break;
+ }
+}
+
+
+void rm_TuneSynth(u8 phTrx, u8 synth, u8 hopping, u8 state, u16 arfcn)
+{
+ rm_ItcTxMsg_t msgToL1;
+ u16 length,setting;
+
+ //G2TEST
+ //PDEBUG__(("INFO@rm_TuneSynth: swapInd=%d, hopping=%d, tuneSetting:(%d,%d,%d,%d)\n",
+ // OAMrm_BCCH_CARRIER_phTRX, hopping, phTrx, synth, state, arfcn));
+ printf("INFO@rm_TuneSynth: swapInd=%d, hopping=%d, tuneSetting:(%d,%d,%d,%d)\n",
+ OAMrm_BCCH_CARRIER_phTRX, hopping, phTrx, synth, state, arfcn);
+
+ //Fill TUNE SYNTH message's header portion
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_TUNESYNTH_MSB; //0x12
+ msgToL1.buffer[length++] = RM_L1MT_TUNESYNTH_LSB; //0x00
+ msgToL1.buffer[length++] = 0; //Always sent ot BCCH DSP
+
+ setting = 0;
+ setting = ( OAMrm_phTRX_SELECT(phTrx) | OAMrm_phTRX_SYNTH_SELECT(synth) |
+ OAMrm_phTRX_HOPPING(hopping) | OAMrm_phTRX_PWR_SELECT(state) |
+ (0x3FF&arfcn) );
+
+ msgToL1.buffer[length++] = (unsigned char)(setting>>8);
+ msgToL1.buffer[length++] = (unsigned char)(setting);
+ msgToL1.msgLength = length;
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+}
+
+void rm_SendArfcnToTrx(u8 trx, int swap)
+{
+ rm_ItcTxMsg_t msgToL1;
+ u16 length,arfcn;
+
+ switch(trx)
+ {
+ case 0:
+ arfcn = OAMrm_ARFCN(0);
+ break;
+ case 1:
+ arfcn = OAMrm_ARFCN(1);
+ break;
+
+ default:
+ return;
+ }
+
+ PDEBUG__(("INFO@rm_SendArfcnToTrx: trx=%d, swap=%d, arfcn=%d\n",
+ trx, swap, arfcn));
+
+ //Fill TUNE SYNTH message's header portion
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_TRXMGMT; //0x10
+ msgToL1.buffer[length++] = RM_L1MT_ARFCN_MSB; //0x29
+ msgToL1.buffer[length++] = RM_L1MT_ARFCN_LSB; //0x00
+ msgToL1.buffer[length++] = trx;
+ msgToL1.buffer[length++] = (u8)(arfcn>>8);
+ msgToL1.buffer[length++] = (u8)(arfcn);
+ msgToL1.msgLength = length;
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+}
+
+#endif //__RM_SENDTUNESYNTHTOTRX_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SolvePagingGroup.cpp b/data/mnet/GP10/Host/rm/Src/rm_SolvePagingGroup.cpp
new file mode 100644
index 0000000..a7dfd42
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SolvePagingGroup.cpp
@@ -0,0 +1,32 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SOLVEPAGINGGROUP_CPP__
+#define __RM_SOLVEPAGINGGROUP_CPP__
+
+#include "rm\rm_head.h"
+
+u8 rm_SolvePagingGroup(rm_IeMobileId_t *pMobileId)
+{
+ u8 N,pageGroup, NDivBsPaMfrms;
+ u16 imsiMod1000;
+
+ imsiMod1000 = rm_GetImsiMod1000(pMobileId);
+
+ N = (u8) (3-OAMrm_BS_AG_BLK_RES)*(OAMrm_BS_PA_MFRMS+2);
+ NDivBsPaMfrms = (u8) N/(OAMrm_BS_PA_MFRMS+2);
+ pageGroup = (u8) (imsiMod1000%(u8)(OAMrm_BS_CC_CHANS*N)) % N;
+
+ return (pageGroup);
+
+// *pPaging51MF = (u8) (pageGroup / NDivBsPaMfrms);
+// *pPagingBIdx = (u8) (pageGroup % NDivBsPaMfrms);
+
+} /* rm_SolvePagingGroup() */
+
+#endif /* __RM_SOLVEPAGINGGROUP_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_StartTimer.cpp b/data/mnet/GP10/Host/rm/Src/rm_StartTimer.cpp
new file mode 100644
index 0000000..414ea3e
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_StartTimer.cpp
@@ -0,0 +1,107 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_STARTTIMER_CPP__
+#define __RM_STARTTIMER_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_StartTimer( rm_IrtEntryId_t entryId, u8 timer )
+{
+ STATUS ret;
+ WDOG_ID id;
+ int delay;
+ int param;
+ u8 *pState, ignore;
+ rm_PhyChanDesc_t *pPhyChan;
+
+ //Monitoring entrance to a function
+ //RDEBUG__(("ENTER-rm_StartTimer: entry ID=%d, timer ID=%d\n",
+ // entryId, timer));
+
+ if ( rm_SmCtxt[entryId].smType!=RM_MAIN_SM && timer!=RM_TWDOG )
+ {
+ IDEBUG__(("ERROR@rm_StartTimer:smType=%d, timer=%d\n",
+ rm_SmCtxt[entryId].smType,timer));
+ return;
+ }
+
+ pPhyChan = rm_SmCtxt[entryId].pPhyChan;
+
+ ignore = RM_FALSE;
+
+ switch (timer)
+ {
+ case RM_T3101:
+ id = pPhyChan->T3101.id;
+ delay = pPhyChan->T3101.time;
+ pState = &(pPhyChan->T3101.state);
+ param = (entryId<<8)|RM_T3101;
+ break;
+
+ case RM_T3111:
+ id = pPhyChan->T3111.id;
+ delay = pPhyChan->T3111.time;
+ pState = &(pPhyChan->T3111.state);
+ param = (entryId<<8)|RM_T3111;
+ break;
+
+ case RM_T3109:
+ id = pPhyChan->T3109.id;
+ delay = pPhyChan->T3109.time;
+ pState = &(pPhyChan->T3109.state);
+ param = (entryId<<8)|RM_T3109;
+ break;
+
+ case RM_T3L01:
+ id = pPhyChan->T3L01.id;
+ delay = pPhyChan->T3L01.time;
+ pState = &(pPhyChan->T3L01.state);
+ param = (entryId<<8)|RM_T3L01;
+ break;
+
+ case RM_T3L02:
+ id = pPhyChan->T3L02.id;
+ delay = pPhyChan->T3L02.time;
+ pState = &(pPhyChan->T3L02.state);
+ param = (entryId<<8)|RM_T3L02;
+ break;
+
+ case RM_T3105:
+ id = pPhyChan->T3105.id;
+ delay = pPhyChan->T3105.time;
+ pState = &(pPhyChan->T3105.state);
+ param = (entryId<<8)|RM_T3105;
+ break;
+
+ case RM_TWDOG:
+ id = rm_TrxMgmt[entryId].TWDOG.id;
+ delay = rm_TrxMgmt[entryId].TWDOG.time;
+ pState = &(rm_TrxMgmt[entryId].TWDOG.state);
+ param = (entryId<<8)|RM_TWDOG;
+ break;
+
+ default:
+ IDEBUG__(("ERROR@rm_StartTimer: unsupported timer:%d\n",timer ));
+ ignore = RM_TRUE;
+ break;
+ }
+
+ if ( !ignore )
+ {
+ ret = wdStart ( id, delay, (FUNCPTR)rm_TimerExpired, param );
+ if ( ret==ERROR )
+ EDEBUG__(("ERROR@rm_StartTimer: wdStart errno:%d\n", errno));
+ else
+ *pState = RM_TRUE;
+ }
+
+} //End of rm_StartTimer()
+
+#endif //__RM_STARTTIMER_CPP__
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_StopTimer.cpp b/data/mnet/GP10/Host/rm/Src/rm_StopTimer.cpp
new file mode 100644
index 0000000..197aedd
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_StopTimer.cpp
@@ -0,0 +1,91 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_STOPTIMER_CPP__
+#define __RM_STOPTIMER_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_StopTimer( rm_IrtEntryId_t entryId, u8 timer )
+{
+ STATUS ret;
+ WDOG_ID id;
+ u8 *pState, ignore;
+ rm_PhyChanDesc_t *pPhyChan;
+
+ //Monitoring entrance to a function
+ //RDEBUG__(("ENTER-rm_StopTimer: entryID=%d, timerID=%d\n",
+ // entryId, timer));
+
+ if ( rm_SmCtxt[entryId].smType != RM_MAIN_SM )
+ {
+ IDEBUG__(("ERROR@rm_StopTimer:smType is not main SM\n"));
+ return;
+ }
+
+ pPhyChan = rm_SmCtxt[entryId].pPhyChan;
+
+ ignore = RM_FALSE;
+
+ switch (timer)
+ {
+ case RM_T3101:
+ id = pPhyChan->T3101.id;
+ pState = &(pPhyChan->T3101.state);
+ break;
+
+ case RM_T3111:
+ id = pPhyChan->T3111.id;
+ pState = &(pPhyChan->T3111.state);
+ break;
+
+ case RM_T3109:
+ id = pPhyChan->T3109.id;
+ pState = &(pPhyChan->T3109.state);
+ break;
+
+ case RM_T3L01:
+ id = pPhyChan->T3L01.id;
+ pState = &(pPhyChan->T3L01.state);
+ break;
+
+ case RM_T3L02:
+ id = pPhyChan->T3L02.id;
+ pState = &(pPhyChan->T3L02.state);
+ break;
+
+ case RM_T3105:
+ id = pPhyChan->T3105.id;
+ pState = &(pPhyChan->T3105.state);
+ break;
+
+ case RM_TWDOG:
+ id = rm_TrxMgmt[entryId].TWDOG.id;
+ pState = &(rm_TrxMgmt[entryId].TWDOG.state);
+ break;
+
+ default:
+ IDEBUG__(("ERROR@rm_StopTimer: unsupported timer:%d\n",timer ));
+ ignore = RM_TRUE;
+ break;
+ }
+
+ if ( !ignore )
+ {
+ ret = wdCancel ( id );
+ if ( ret==ERROR )
+ EDEBUG__(("ERROR@rm_StopTimer: wdCancel errno:%d\n", errno));
+ else
+ *pState = RM_FALSE;
+ }
+
+} //End of rm_StopTimer()
+
+#endif //__RM_STOPTIMER_CPP__
+
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_SysCmd.cpp b/data/mnet/GP10/Host/rm/Src/rm_SysCmd.cpp
new file mode 100644
index 0000000..4707728
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_SysCmd.cpp
@@ -0,0 +1,50 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SYSCMD_CPP__
+#define __RM_SYSCMD_CPP__
+
+#include "rm\rm_head.h"
+#include "Os\JCModule.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "cdcUtils/drfInterface.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+
+int SysCommand_RM (T_SYS_CMD action)
+{
+ switch(action)
+ {
+ case SYS_SHUTDOWN:
+ printf("[RM] shutdown notification received\n");
+ break;
+ case SYS_START:
+ printf("[RM] Received task start notification\n");
+ sys_Init();
+ rm_Task();
+ break;
+ case SYS_REBOOT:
+ printf("[RM] Reboot: Turning off RF power\n");
+ /* Turn off RF power */
+ drfFpgaTxPwrDisable(0); /* take away power control from dsp */
+ drfFpgaTxPwrDisable(1); /* take away power control from dsp */
+ drfTxPwrSet(0,0); /* turn off power */
+ drfTxPwrSet(1,0); /* turn off power */
+ break;
+ }
+ return 0;
+}
+
+#endif /* __RM_SYSCMD_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_Task.cpp b/data/mnet/GP10/Host/rm/Src/rm_Task.cpp
new file mode 100644
index 0000000..cf01fa1
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_Task.cpp
@@ -0,0 +1,38 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_TASK_CPP__
+#define __RM_TASK_CPP__
+
+#include "rm\rm_head.h"
+#include "Os\JCTask.h"
+#include "GP10OsTune.h"
+
+extern JCTask rmTaskObj;
+
+void rm_Task( void )
+{
+ RDEBUG__(("ENTER-rmTask starting...\n"));
+
+ // Create rmTask
+ if( ERROR == rmTaskObj.JCTaskSpawn(
+ RM_TASK_PRIORITY, // Priority
+ RM_TASK_OPTION, // Option word
+ RM_TASK_STACK_SIZE, // Stack size
+ (FUNCPTR)rm_Main, // Task entry
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ MODULE_RM, JC_CRITICAL_TASK // Parameters
+ ) )
+ {
+ // Error occuring in creating rmTask, report the error and return.
+ EDEBUG__(("ERROR-rm_Task: VxWorks TaskSpawn failed, err:%d\n", errno));
+ }
+
+}
+
+#endif /* __RM_TASK_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_TestPrintOamRmConfigData.cpp b/data/mnet/GP10/Host/rm/Src/rm_TestPrintOamRmConfigData.cpp
new file mode 100644
index 0000000..e6a2d5a
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_TestPrintOamRmConfigData.cpp
@@ -0,0 +1,149 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+//#ifndef __RM_TESTPRINTOAMRMCONFIGDATA_CPP__
+//#define __RM_TESTPRINTOAMRMCONFIGDATA_CPP__
+
+#include "rm\rm_head.h"
+
+
+void rm_TestPrintOamRmConfigData(void)
+{
+int i,j;
+
+printf("OAMrm_T3L01: %x, %x\n",
+ OAMrm_T3L01,
+ ((int)(grr_OamData.grrConfigData.rm_t3L01)));
+ //0xFF
+printf("OAMrm_BS_CC_CHANS: %x, %x\n",
+ OAMrm_BS_CC_CHANS,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_bsCcChans)));
+ //0x01
+printf("OAMrm_BSCCCHSDCCH_COMB: %x, %x\n",
+ OAMrm_BSCCCHSDCCH_COMB,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_bsCcchSdcchComb)));
+ //0x01
+printf("OAMrm_SYSINFO_ONOFF_MAP: %x, %x\n",
+ OAMrm_SYSINFO_ONOFF_MAP,
+ ((unsigned short)(grr_OamData.grrConfigData.rm_sysInfoOnOffMap)));
+ //0x3E
+printf("OAMrm_AIRINTERFACE: %x, %x\n",
+ OAMrm_AIRINTERFACE,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_airInterface)));
+ //0x02
+printf("OAMrm_BTS_TSC: %x, %x\n",
+ OAMrm_BTS_TSC,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_viperCellTsc)));
+ //0x05
+printf("OAMrm_SLOTS_PER_TRX: %x, %x\n",
+ OAMrm_SLOTS_PER_TRX,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_maxSlotPerTrx)));
+ //0x08
+printf("OAMrm_MAX_TRXS: %x, %x\n",
+ OAMrm_MAX_TRXS,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_maxTrxs)));
+ //0x02
+printf("OAMrm_MAX_TCHFS: %x, %x\n",
+ OAMrm_MAX_TCHFS,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_maxTchfs)));
+ //0x0f
+printf("OAMrm_MAX_SDCCH4S: %x, %x\n",
+ OAMrm_MAX_SDCCH4S,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_maxSdcch4s)));
+ //0x04
+printf("OAMrm_TRX_ONOFF_MAP: %x, %x\n",
+ OAMrm_TRX_ONOFF_MAP,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_trxOnOffMap)));
+ //0x01
+printf("OAMrm_NETWORKIFCONFIG: %x, %x\n",
+ OAMrm_NETWORKIFCONFIG,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_networkIfConfig)));
+ //0x00
+printf("OAMrm_BCCH_TRX: %x, %x\n",
+ OAMrm_BCCH_TRX,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_bcchTrx)));
+ //0x00
+printf("OAMrm_PREALPHA_TRX: %x, %x\n",
+ OAMrm_PREALPHA_TRX,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_preAlphaTrx)));
+ //0x00
+printf("OAMrm_CCCH_SDCCH_COMB: %x, %x\n",
+ OAMrm_CCCH_SDCCH_COMB,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_ccchBcchComb)));
+ //0x01
+printf("OAMrm_CCCH_CONF: %x, %x\n",
+ OAMrm_CCCH_CONF,
+ ((unsigned char)(grr_OamData.grrConfigData.rm_ccchConf)));
+ //0x01
+ //FS:T_CNI_RIL3_CCCH_CONF:CNI_RIL3_CCCH_CONF_ONE_CCCH_COMBINED_SDCCHS=1
+for (i=0;i<2;i++)
+for (j=0;j<8;j++)
+{
+printf("OAMrm_NIM(%d,%d): %x, %x\n", i,j,
+ OAMrm_NIM(i,j),
+ ((unsigned char)(grr_OamData.grrConfigData.rm_nim[i][j])));
+ //rm_nim[2][8]: all elements<-0xFF
+}
+
+for (i=0;i<2;i++)
+for (j=0;j<4;j++)
+{
+//printf("OAMrm_TRX_SYNTH_SELECT(%d,%d): %x, %x\n",i,j,
+// OAMrm_TRX_SYNTH_SELECT(i,j),
+// ((unsigned char)(j)));
+// //N.A. Y: ULSYNTH_A/B(0/1), DLSYNTH_A/B(2/3)
+printf("OAMrm_TRX_SYNTH_SETTINGMSB(%d,%d): %x, %x\n",i,j,
+ OAMrm_TRX_SYNTH_SETTINGMSB(i,j),
+ ((unsigned char)(grr_OamData.grrConfigData.rm_trxSynthSetting[i][j]>>8)));
+ //rm_trxSynthSetting[2][4] all elements<-0x00
+printf("OAMrm_TRX_SYNTH_SETTINGLSB(%d,%d): %x, %x\n",i,j,
+ OAMrm_TRX_SYNTH_SETTINGLSB(i,j),
+ ((unsigned char)(grr_OamData.grrConfigData.rm_trxSynthSetting[i][j])));
+ //defined above
+}
+
+for (i=0;i<2;i++)
+{
+printf("OAMrm_TRX_ULFPGADELAY_MSB(%d): %x, %x\n",i,
+ OAMrm_TRX_ULFPGADELAY_MSB(i),
+ ((unsigned char)(grr_OamData.grrConfigData.rm_trxFpgaDelay[i][0]>>8)));
+ //rm_trxFpgaDelay[2][2] all elements<-0x00
+printf("OAMrm_TRX_ULFPGADELAY_LSB(%d): %x, %x\n",i,
+ OAMrm_TRX_ULFPGADELAY_LSB(i),
+ ((unsigned char)(grr_OamData.grrConfigData.rm_trxFpgaDelay[i][0])));
+ //defined above
+//printf("OAMrm_TRX_DLFPGADELAY_MSB(%d): %x, %x\n",i,
+// OAMrm_TRX_DLFPGADELAY_MSB(i),
+// ((unsigned char)(grr_OamData.grrConfigData.rm_trxFpgaDelay[i][1]>>8)));
+ //defined above
+//printf(OAMrm_TRX_DLFPGADELAY_MSB(%d): %x, %x\n",i,
+// OAMrm_TRX_DLFPGADELAY_MSB(i),
+// ((unsigned char)(grr_OamData.grrConfigData.rm_trxFpgaDelay[i][1])));
+// //defined above
+}
+
+for (i=0;i<2;i++)
+{
+printf("OAMrm_UPLINK_SGAINCTRL_SETTING(%d): %x, %x\n",i,
+ OAMrm_UPLINK_SGAINCTRL_SETTING(i),
+ ((unsigned short)(grr_OamData.grrConfigData.rm_SGainCtrlSetting[i][0])));
+ //rm_SGainCtrlSetting[2][2]:[X][0]<-0x380
+printf("OAMrm_DOWNLINK_SGAINCTRL_SETTING(%d): %x, %x\n",i,
+ OAMrm_DOWNLINK_SGAINCTRL_SETTING(i),
+ ((unsigned char)(grr_OamData.grrConfigData.rm_SGainCtrlSetting[i][1])));
+ //rm_SGainCtrlSetting[2][2]:[X][1]<-0xC0
+}
+
+printf("OAMrm_SYNCH_CHANINFO: %x, %x\n",
+ OAMrm_SYNCH_CHANINFO,
+ ((int)(grr_OamData.grrConfigData.rm_synchChanInfo)));
+ //0x00
+}
+
+//#endif /* __RM_TESTPRINTOAMRMCONFIGDATA_CPP__ */
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_TestPrintOamRmStdGsmData.cpp b/data/mnet/GP10/Host/rm/Src/rm_TestPrintOamRmStdGsmData.cpp
new file mode 100644
index 0000000..5d3a2c9
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_TestPrintOamRmStdGsmData.cpp
@@ -0,0 +1,370 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_TESTPRINTOAMRMSTDGSMDATA_CPP__
+#define __RM_TESTPRINTOAMRMSTDGSMDATA_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_TestPrintOamRmStdGsmData(void)
+{
+int i,j;
+
+/* PR1256 <convert from tick number to 10ms > begin*/
+
+printf("grr_OamData.t31xx.t3101 = %d---%d\n",OAMrm_T3101,grr_OamData.t31xx.t3101);
+printf("grr_OamData.t31xx.t3105 = %d---%d\n",OAMrm_T3105,grr_OamData.t31xx.t3105);
+printf("grr_OamData.t31xx.t3109 = %d---%d\n",OAMrm_T3109,grr_OamData.t31xx.t3109);
+printf("grr_OamData.t31xx.t3111 = %d---%d\n",OAMrm_T3111,grr_OamData.t31xx.t3111);
+
+/* PR1256 <convert from tick number to 10ms > end*/
+
+for (i=0;i<2;i++)
+printf("OAMrm_NARFCN(%d):%d,%d\n",
+ i,
+ OAMrm_NARFCN(i),
+ ((signed short)(((AdjCell_HandoverEntry*)
+ (grr_OamData.adjacentCellPackage.adjCell_handoverTable))[i].adjCell_bCCHFrequency))
+ );
+ //561: neighboring cell frequency for monitoring for handover purpose
+
+printf("OAMrm_NY1:%d,%d\n",
+ OAMrm_NY1,
+ ((unsigned char)(grr_OamData.btsBasicPackage.ny1))
+ );
+ //3
+printf("OAMrm_BCCH_ARFCN:%d,%d\n",
+ OAMrm_BCCH_ARFCN,
+ (((CellAllocationEntry*)
+ (grr_OamData.btsBasicPackage.cellAllocationTable))[0].cellAllocation)
+ );
+ //661:1st element of cellAllocation table is BCCH ARFCN, oam_BcchArfcn
+
+printf("OAMrm_NCC:%d,%d\n",
+ OAMrm_NCC,
+ ((unsigned char)(grr_OamData.btsBasicPackage.bts_ncc))
+ );
+ //5:oam_Ncc, bts_ncc may be combined with
+printf("OAMrm_BCC:%d,%d\n",
+ OAMrm_BCC,
+ ((unsigned char)(grr_OamData.btsBasicPackage.bts_cid))
+ );
+ //5:oam_Bcc
+printf("OAMrm_MS_TX_PWR_MAX_CCH:%d,%d\n",
+ OAMrm_MS_TX_PWR_MAX_CCH,
+ ((unsigned char)(grr_OamData.btsBasicPackage.mSTxPwrMaxCCH))
+ );
+ //0:30dBm, previous value is 11 i.e. 8dBm, oam_MsTxPwrMax
+printf("OAMrm_MS_RELEV_ACCESS_MIN:%d,%d\n",
+ OAMrm_MS_RELEV_ACCESS_MIN,
+ ((unsigned char)(grr_OamData.btsBasicPackage.rxLevAccessMin))
+ );
+ //6: 104dBm
+printf("OAMrm_BTS_BSIC:%d,%d\n",
+ OAMrm_BTS_BSIC,
+ ((unsigned char)(grr_OamData.btsBasicPackage.bts_ncc<<3)|
+ (unsigned char)(grr_OamData.btsBasicPackage.bts_cid))
+ );
+ //0x2d: oam_BTSBsic
+printf("OAMrm_BS_AG_BLK_RES:%d,%d\n",
+ OAMrm_BS_AG_BLK_RES,
+ ((unsigned char)(grr_OamData.btsBasicPackage.noOfBlocksForAccessGrant))
+ );
+ //0:oam_bsAgBlkRes
+printf("OAMrm_BS_PA_MFRMS:%d,%d\n",
+ OAMrm_BS_PA_MFRMS,
+ ((unsigned char)(grr_OamData.btsBasicPackage.noOfMultiframesBetweenPaging))
+ );
+ //1:oam_bsPaMfrms
+printf("OAMrm_T3212:%d,%d\n",
+ OAMrm_T3212,
+ ((unsigned char)(grr_OamData.btsOptionsPackage.timerPeriodicUpdateMS))
+ );
+ //0:no periodic LUP needed, oam_T3212
+for (i=0;i<3;i++)
+printf("OAMrm_MCC(%d): %d,%d\n",
+ i,
+ OAMrm_MCC(i),
+ ((unsigned char*)&(grr_OamData.btsBasicPackage.bts_mcc))[i]
+ );
+ //001: bts_mcc is an integer which will be converted to char string, oam_Mcc
+for (i=0;i<2;i++)
+printf("OAMrm_MNC(%d):%d,%d,",
+ i,
+ OAMrm_MNC(i),
+ ((unsigned char*)&(grr_OamData.btsBasicPackage.bts_mnc))[i]
+ );
+if(((unsigned char *)&(grr_OamData.btsBasicPackage.bts_mnc))[2] == 0x0F)
+ printf("F\n");
+else
+ printf("%d\n",
+ ((unsigned char*)&(grr_OamData.btsBasicPackage.bts_mnc))[2]
+ );
+ //01: bts_mnc is an integer which will be converted to char string, oam_Mnc
+printf("OAMrm_LAC:%x,%x\n",
+ OAMrm_LAC,
+ ((short)(grr_OamData.btsBasicPackage.bts_lac))
+ );
+ //1:oam_Lac[X]
+printf("OAMrm_T3105:%x,%x\n",
+ OAMrm_T3105,
+ ((int)(grr_OamData.t31xx.t3105))
+ );
+ //2:16.6 by 2 ms
+printf("OAMrm_T3101:%x,%x\n",
+ OAMrm_T3101,
+ ((int)(grr_OamData.t31xx.t3101))
+ );
+ //0x2FF:oam_T3101
+printf("OAMrm_T3109:%x,%x\n",
+ OAMrm_T3109,
+ ((int)(grr_OamData.t31xx.t3109))
+ );
+ //0x1FF:oam_T3109
+printf("OAMrm_T3111:%x,%x\n",
+ OAMrm_T3111,
+ ((int)(grr_OamData.t31xx.t3111))
+ );
+ //0x2FF:oam_T3111
+for(j=0;j<8;j++)
+printf("OAMrm_TRX_SLOT_COMB(0,%d):%d,%d\n",
+ j,
+ OAMrm_TRX_SLOT_COMB(0,j),
+ ((unsigned char)(((ChannelEntry*)
+ (grr_OamData.transceiverPackage[0].channelTable))[j].channelCombination))
+ );
+ //5 for (X,Y)=(0,0), 1 for other (X,Y) pairs
+for(j=0;j<8;j++)
+printf("OAMrm_TRX_SLOT_COMB(1,%d):%d,%d\n",
+ j,
+ OAMrm_TRX_SLOT_COMB(1,j),
+ ((unsigned char)(((ChannelEntry*)
+ (grr_OamData.transceiverPackage[1].channelTable))[j].channelCombination))
+ );
+
+for (i=0;i<2;i++)
+printf("OAMrm_ARFCN(%d):%d,%d,%d\n",
+ i,
+ OAMrm_ARFCN(i),
+ grr_OamData.transceiverPackage[i].relatedRadioCarrier,
+ ((unsigned short)(((CarrierFrequencyEntry*)(grr_OamData.radioCarrierPackage[
+ grr_OamData.transceiverPackage[i].relatedRadioCarrier
+ ].carrierFrequencyList))[0].carrierFrequency))
+ );
+ //661 for X=0; 561 for X=1, X:0-1
+for (i=0;i<3;i++)
+printf("OAMrm_HO_ADJCELL_BCCH_ARFCNv(%d):%d,%d\n",
+ i,
+ OAMrm_HO_ADJCELL_BCCH_ARFCN(i),
+ ((short)(((AdjCell_HandoverEntry*)
+ (grr_OamData.adjacentCellPackage.adjCell_handoverTable))[i].adjCell_bCCHFrequency))
+ );
+ //561 for X=0,761 for X=1, 0 for other X values
+for (i=0;i<3;i++)
+printf("OAMrm_HO_ADJCELL_BCCH_ARFCNi(%d):%d,%d\n",
+ i,
+ OAMrm_HO_ADJCELL_BCCH_ARFCN_t(i),
+ ((short)(((AdjCell_HandoverEntry*)
+ (grr_OamData.adjacentCellPackage_t.adjCell_handoverTable))[i].adjCell_bCCHFrequency))
+ );
+
+for (i=0;i<4;i++)
+printf("OAMrm_HO_ADJCELL_IDv(%d):%d,%d\n",
+ i,
+ OAMrm_HO_ADJCELL_ID(i),
+ ((unsigned int)(((AdjCell_HandoverEntry*)
+ (grr_OamData.adjacentCellPackage.adjCell_handoverTable))[i].adjCell_handoverCellID))
+ );
+
+//PR1223 Begin
+for (i=0;i<4;i++)
+printf("OAMrm_HO_ADJCELL_IDi(%d):%d,%d\n",
+ i,
+ OAMrm_HO_ADJCELL_ID_t(i),
+ ((unsigned int)(((AdjCell_HandoverEntry*)
+ (grr_OamData.adjacentCellPackage_t.adjCell_handoverTable))[i].adjCell_handoverCellID))
+ );
+//PR1223 End
+
+
+for (i=0;i<3;i++)
+printf("OAMrm_RESEL_ADJCELL_BCCH_ARFCN(%d):%d,%d\n",
+ i,
+ OAMrm_RESEL_ADJCELL_BCCH_ARFCN(i),
+ ((unsigned int)(((AdjCell_ReselectionEntry*)
+ (grr_OamData.adjacentCellPackage.adjCell_reselectionTable))[i].adjCell_reselectionBCCHFrequency))
+ );
+ //561 for X=0,761 for X=1, 0 for other X values
+for (i=0;i<3;i++)
+printf("OAMrm_RESEL_ADJCELL_ID(%d):%d,%d\n",
+ i,
+ OAMrm_RESEL_ADJCELL_ID(i),
+ ((unsigned int)(((AdjCell_ReselectionEntry*)
+ (grr_OamData.adjacentCellPackage.adjCell_reselectionTable))[i].adjCell_reselectionCellID))
+ );
+ //2 for X=0, 3 for X=1, 0xFFFFFFFF for other X values
+printf("OAMrm_RA_RETRY_MAX:%d,%d\n",
+ OAMrm_RA_RETRY_MAX,
+ ((unsigned char)(grr_OamData.btsBasicPackage.maxNumberRetransmissions))
+ );
+ //3:retry 7 times
+printf("OAMrm_RA_TX_INTEGER:%d,%d\n",
+ OAMrm_RA_TX_INTEGER,
+ ((unsigned char)(grr_OamData.btsBasicPackage.numberOfSlotsSpreadTrans))
+ );
+ //7:spread 10 time slots
+printf("OAMrm_RA_CELL_BARRED_STATE:%d,%d\n",
+ OAMrm_RA_CELL_BARRED_STATE,
+ ((T_CNI_RIL3_CELL_BARRED_ACCESS)(grr_OamData.btsOptionsPackage.cellBarred))
+ );
+ //0:not barred
+printf("OAMrm_ATT_STATE:%d,%d\n",
+ OAMrm_ATT_STATE,
+ ((T_CNI_RIL3_ATT)(grr_OamData.btsOptionsPackage.allowIMSIAttachDetach))
+ );
+ //1:ie CNI_RIL3_ATT_IMSI_ATACH_DETACH_ALLOWED,oam_att
+printf("OAMrm_RA_REST_ALLOWED_STATE:%d,%d\n",
+ OAMrm_RA_REST_ALLOWED_STATE,
+ ((T_CNI_RIL3_REESTABLISHMENT_ALLOWED)
+ (grr_OamData.btsOptionsPackage.callReestablishmentAllowed))
+ );
+ //1:not allowed
+printf("OAMrm_RA_EC_ALLOWED_STATE:%d,%d\n",
+ OAMrm_RA_EC_ALLOWED_STATE,
+ ((T_CNI_RIL3_EMERGENCY_CALL_ALLOWED)
+ (grr_OamData.btsOptionsPackage.emergencyCallRestricted))
+ );
+ //1:only allowed to special class mobiles
+for (i=0;i<16;i++)
+printf("OAMrm_RA_AC_ALLOWED_STATE(%d):%d,%d\n",
+ i,
+ OAMrm_RA_AC_ALLOWED_STATE(i),
+ ((unsigned char)(((NotAllowedAccessClassEntry*)
+ (grr_OamData.btsOptionsPackage.notAllowedAccessClassTable))[i].notAllowedAccessClass))
+ );
+ //1:barred
+for (i=0;i<8;i++)
+printf("OAMrm_NCC_PERMITTED(%d):%d,%d\n",
+ i,
+ OAMrm_NCC_PERMITTED(i),
+ (((PlmnPermittedEntry*)(grr_OamData.btsBasicPackage.plmnPermittedTable))[i].
+ plmnPermitted)
+ );
+ //1 for X=5, 0 for other X values, X:0-7
+printf("OAMrm_CELLID:%x,%x\n",
+ OAMrm_CELLID,
+ ((unsigned int)(grr_OamData.btsBasicPackage.btsID))
+ );
+ //0x0001: hi-byte network ID, lo-byte cell ID
+
+printf("OAMrm_RADIO_LINK_TIMEOUT:%d,%d\n",
+ OAMrm_RADIO_LINK_TIMEOUT,
+ ((unsigned char)(grr_OamData.btsBasicPackage.radioLinkTimeout))
+ );
+ //3: ie 16
+printf("OAMrm_MS_UPLINK_DTX_STATE:%d,%d\n",
+ OAMrm_MS_UPLINK_DTX_STATE,
+ ((T_CNI_RIL3_DTX_BCCH)(grr_OamData.btsOptionsPackage.dtxUplink))
+ );
+
+printf("OAMrm_MS_DNLINK_DTX_STATE:%d,%d\n",
+ OAMrm_MS_DNLINK_DTX_STATE,
+ ((int)(grr_OamData.btsOptionsPackage.dtxDownlink))
+ );
+
+ //2:uplink DTX not allowed for MS
+printf("OAMrm_CELL_RESEL_HYSTERESIS:%d,%d\n",
+ OAMrm_CELL_RESEL_HYSTERESIS,
+ ((unsigned char)(grr_OamData.btsBasicPackage.cellReselectHysteresis))
+ );
+ //2:4 dBm
+
+printf("OAMrm_NCELL_NETWORKID(0):%d, %d\n",
+ OAMrm_NCELL_NETWORKID(0),
+ ((short)((((AdjCell_HandoverEntry*)
+ (grr_OamData.adjacentCellPackage_t.adjCell_handoverTable))[0].adjCell_handoverCellID))>>16)
+ );
+ //2 for X=0, 3 for X=1, 0xFFFFFFFF for other X values, X:0-31
+printf("OAMrm_NCELL_CELLID(1):%d,%d\n",
+ OAMrm_NCELL_CELLID(1),
+ ((short)(((AdjCell_HandoverEntry*)
+ (grr_OamData.adjacentCellPackage_t.adjCell_handoverTable))[1].adjCell_handoverCellID))
+ );
+ //2 for X=0, 3 for X=1, 0xFFFFFFFF for other X values, X:0-31
+printf("OAMrm_NCELL_CELLID(2):%d,%d\n",
+ OAMrm_NCELL_CELLID(2),
+ ((short)(((AdjCell_HandoverEntry*)
+ (grr_OamData.adjacentCellPackage_t.adjCell_handoverTable))[2].adjCell_handoverCellID))
+ );
+ //2 for X=0, 3 for X=1, 0xFFFFFFFF for other X values, X:0-31
+
+
+//Bts Admin and Op States
+printf ("BTS AM & OP STATE: am(%d, %d) op(%d, %d)\n",
+ OAMrm_BTS_AMSTATE,
+ grr_OamData.btsBasicPackage.bts_administrativeState,
+ OAMrm_BTS_OPSTATE,
+ grr_OamData.btsBasicPackage.bts_operationalState);
+
+//First TRX Admin and Op States
+printf ("First TRX AM & OP STATE: am(%d, %d) op(%d, %d)\n",
+ OAMrm_TRX_AMSTATE(0),
+ grr_OamData.transceiverPackage[0].basebandAdministrativeState,
+ OAMrm_TRX_OPSTATE(0),
+ grr_OamData.transceiverPackage[0].basebandOperationalState);
+
+for (i=0;i<8;i++)
+{
+printf ("First TRX TS(%d) AM & OP STATE: am(%d, %d) op(%d, %d)\n",
+ i,
+ OAMrm_CHN_AMSTATE(0,i),
+ ((ChannelEntry*)
+ (grr_OamData.transceiverPackage[0].channelTable))[i].channelAdministrativeState,
+ OAMrm_CHN_OPSTATE(0,i),
+ ((EnableDisable)(((ChannelEntry*)
+ (grr_OamData.transceiverPackage[0].channelTable))[i].channelOperationalState)) );
+}
+
+//Second TRX Admin and Op States
+printf ("Second TRX AM & OP STATE: am(%d, %d) op(%d, %d)\n",
+ OAMrm_TRX_AMSTATE(1),
+ grr_OamData.transceiverPackage[1].basebandAdministrativeState,
+ OAMrm_TRX_OPSTATE(1),
+ grr_OamData.transceiverPackage[1].basebandOperationalState);
+
+for (i=0;i<8;i++)
+{
+printf ("Second TRX TS(%d) AM & OP STATE: am(%d, %d) op(%d, %d)\n",
+ i,
+ OAMrm_CHN_AMSTATE(1,i),
+ ((ChannelEntry*)
+ (grr_OamData.transceiverPackage[1].channelTable))[i].channelAdministrativeState,
+ OAMrm_CHN_OPSTATE(1,i),
+ ((EnableDisable)(((ChannelEntry*)
+ (grr_OamData.transceiverPackage[1].channelTable))[i].channelOperationalState)) );
+}
+
+printf("Overload Cell Ctrl=%d, MIB Barred Setting=%d, Current Barred Control status=%d\n",
+ OAMrm_OVERLOAD_CELLBAR,
+ OAMrm_RA_CELL_BARRED_STATE, rm_VcIsBarred);
+
+}
+
+void intg_SetOverloadCellbarOption(int option)
+{
+ printf("Current Overload Cellbar Option Setting: %d\n", OAMrm_OVERLOAD_CELLBAR);
+ OAMrm_OVERLOAD_CELLBAR = option;
+ printf("New Overload Cellbar Option Setting: %d\n", OAMrm_OVERLOAD_CELLBAR);
+
+ rm_VcIsBarred = RM_FALSE;
+ rm_SendSystemInfo2ToBcchTrx(0,2,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo3ToBcchTrx(0,3,OAMrm_RA_CELL_BARRED_STATE);
+ rm_SendSystemInfo4ToBcchTrx(0,4,OAMrm_RA_CELL_BARRED_STATE);
+}
+
+#endif /*__RM_TESTPRINTOAMRMSTDGSMDATA_CPP__*/
diff --git a/data/mnet/GP10/Host/rm/Src/rm_TimerExpired.cpp b/data/mnet/GP10/Host/rm/Src/rm_TimerExpired.cpp
new file mode 100644
index 0000000..4595f1e
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_TimerExpired.cpp
@@ -0,0 +1,41 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_TIMEREXPIRED_CPP__
+#define __RM_TIMEREXPIRED_CPP__
+
+#include "rm\rm_head.h"
+
+int rm_TimerExpired( int param)
+{
+ STATUS ret;
+
+ /*
+ ** "param" is of four bytes which stores the entryId of a SM. When
+ ** a timer expires, the "param" is used to distinguish from ons SM
+ ** another.
+ */
+
+ rm_ItcRxRmMsg_t timerMsg;
+
+ timerMsg.module_id = MODULE_RM;
+ timerMsg.primitive_type = RM_TIMER_IND;
+ timerMsg.entry_id = (u8)( (param>>8) & 0x000000FF );
+ timerMsg.timerId = (u8)( param & 0x000000FF );
+
+ /* Send a Timer Expiry Indication to RM inbound message queue */
+ ret = msgQSend( rm_MsgQId, (s8 *) &timerMsg, RM_MAX_TXQMSG_LENGTH,
+ NO_WAIT, MSG_PRI_NORMAL );
+
+ if (ret == ERROR)
+ EDEBUG__(("ERROR-rm_TimerExpired: msgQSend errno:%d\n", errno));
+
+ return 0;
+}
+
+#endif /* __RM_TIMEREXPIRED_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_UmMmMsgTestPrint.cpp b/data/mnet/GP10/Host/rm/Src/rm_UmMmMsgTestPrint.cpp
new file mode 100644
index 0000000..5edb2de
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_UmMmMsgTestPrint.cpp
@@ -0,0 +1,64 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_UMMMMSGTESTPRINT_CPP__
+#define __RM_UMMMMSGTESTPRINT_CPP__
+
+#include "rm\rm_head.h"
+
+#include "ril3\ie_location_area_id.h"
+#include "ril3\ie_classmark_1.h"
+#include "ril3\ie_mobile_id.h"
+#include "ril3\ril3_mm_msg.h"
+
+void rm_UmMmMsgTestPrint( T_CNI_RIL3MM_MSG *pMsg )
+{
+ T_CNI_RIL3MM_MSG_LOCATION_UPDATE_REQUEST *pLUP;
+
+ switch (pMsg->header.message_type)
+ {
+ case CNI_RIL3MM_MSGID_LOCATION_UPDATING_REQUEST:
+ pLUP = (T_CNI_RIL3MM_MSG_LOCATION_UPDATE_REQUEST*)
+ &(pMsg->locationUpdateRequest);
+
+ /* Output the received LUP message */
+ PDEBUG__(("LUP===========: PD=%d,MT=%\n",
+ pLUP->header.protocol_descriminator,
+ pLUP->header.message_type
+ ));
+ PDEBUG__(("LUP:Type IE: present=%d,forBit=%d,type=%d\n",
+ pLUP->locationUpdateType.ie_present,
+ pLUP->locationUpdateType.forBit,
+ pLUP->locationUpdateType.locationUpdateType
+ ));
+ PDEBUG__(("LUP:CipherKey IE: present=%d,keySeq=%d\n",
+ pLUP->cipherKey.ie_present,
+ pLUP->cipherKey.keySeq
+ ));
+ PDEBUG__(("LUP:LAI IE---------------------------\n"));
+ TDUMP__((MAREA__,(u8*) &(pLUP->locationId),(u16)
+ sizeof(T_CNI_RIL3_IE_LOCATION_AREA_ID) ));
+ PDEBUG__(("LUP:Classmark1 IE: present=%d,revLevel=%d,esInd=%d,a51=%d,rfPowerCap=%d\n",
+ pLUP->classmark1.ie_present,
+ pLUP->classmark1.revLevel,
+ pLUP->classmark1.a51,
+ pLUP->classmark1.rfPowerCap
+ ));
+ PDEBUG__(("LUP:MobileID IE---------------------------\n"));
+ TDUMP__((MAREA__,(u8*) &(pLUP->mobileId),(u16)
+ sizeof(T_CNI_RIL3_IE_MOBILE_ID) ));
+ break;
+
+ default:
+ PDEBUG__(("rm_UmMmMsgTestPrint: unsupport msgtype=%d\n",
+ pMsg->header.message_type));
+ break;
+ }
+}
+
+#endif /* __RM_UMMMMSGTESTPRINT_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_WaitForL1Bootstrap.cpp b/data/mnet/GP10/Host/rm/Src/rm_WaitForL1Bootstrap.cpp
new file mode 100644
index 0000000..76623ee
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_WaitForL1Bootstrap.cpp
@@ -0,0 +1,38 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_WAITFORL1BOOTSTRAP_CPP__
+#define __RM_WAITFORL1BOOTSTRAP_CPP__
+
+#include "rm\rm_head.h"
+
+
+void rm_WaitForL1Bootstrap(void)
+{
+ /* Monitoring entrance to a function */
+ RDEBUG__(( "ENTER-rm_WaitForL1Bootstrap: Entering...\n" ));
+
+ /* Wait until all configured TRXs bootstraped */
+ rm_BootstrapCnf = 0;
+
+ while ( rm_BootstrapCnf != OAMrm_TRX_ONOFF_MAP )
+ {
+ /* Read until get the expected message from L1 */
+ rm_WaitForL1Rsp( RM_L1TRX_NULL, RM_L1MG_TRXMGMT,
+ RM_L1MT_BOOTSTRAPCNF_MSB, RM_L1MT_BOOTSTRAPCNF_LSB );
+
+ /* Received a TRX bootstrap confirmation */
+ rm_BootstrapCnf |= RM_BOOTSTRAPCNF(rm_pItcRxL1Msg->l3_data.buffer[3]);
+
+ RDEBUG__(("TRACE:rm_WaitForL1Bootstrap: got bootstrap cnf from trx:%d\n",
+ rm_pItcRxL1Msg->l3_data.buffer[3]));
+ } /* End of while() */
+
+} /* End of rm_WaitForL1Bootstrap() */
+
+#endif /* __RM_WAITFORL1BOOTSTRAP_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_WaitForL1Rsp.cpp b/data/mnet/GP10/Host/rm/Src/rm_WaitForL1Rsp.cpp
new file mode 100644
index 0000000..a725ef1
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_WaitForL1Rsp.cpp
@@ -0,0 +1,76 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_WAITFORL1RSP_CPP__
+#define __RM_WAITFORL1RSP_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_WaitForL1Rsp(u8 trx, u8 msgGroup, u8 msgTypeMSB, u8 msgTypeLSB)
+{
+ s16 ret; /* Return code from calling a underlying fun */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_WaitForL1Rsp\n"));
+
+ /* Expected response to the message */
+ TDEBUG__(("TRACE-rm_WaitForL1Rsp:Expected msg:TRX=%x,MG=%x,MT_Hi=%x,MT_Lo=%x\n",
+ trx, msgGroup, msgTypeMSB, msgTypeLSB));
+
+ /* TBD: Wait forever unless got the expected rsp */
+
+ while (1)
+ {
+ ret = rm_msgQReceive(rm_MsgQId,(s8 *)&rm_ItcRxMsg,
+ RM_MAX_RXQMSG_LEN, WAIT_FOREVER );
+ if ( ret==ERROR )
+ {
+ /* Error in reading VxWorks message queue */
+ EDEBUG__(("ERROR-rm_WaitForL1Rsp: VxWorks Queue read error:%d\n",
+ errno ));
+ }
+ else if ( rm_ItcRxMsg.module_id == MODULE_L1 )
+ {
+ rm_pItcRxL1Msg = (rm_ItcRxL1Msg_t *) &rm_ItcRxMsg;
+
+ /* Got a message from L1. Check if it's expected response */
+ if ( rm_pItcRxL1Msg->l3_data.msgLength >= RM_L1MIN_MSG_LEN &&
+ rm_pItcRxL1Msg->l3_data.buffer[0] == msgGroup )
+ {
+ if ( (rm_pItcRxL1Msg->l3_data.buffer[1]==msgTypeMSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==msgTypeLSB ) ||
+ (msgTypeMSB==RM_L1MT_NULL_MSB &&
+ msgTypeLSB==RM_L1MT_NULL_LSB ) )
+ {
+ if ( trx==RM_L1TRX_NULL ||
+ rm_pItcRxL1Msg->l3_data.buffer[3]==trx )
+
+ /* Got the expected response! */
+ return;
+ }
+ }
+ else
+ {
+ /*=TBD=*/
+ /* Received unexpected stuff from L1. Try next read */
+ UDEBUG__(("UNKNOWN-rm_WaitForL1Rsp: got unexpected L1-msg while awaiting rsp\n" ));
+ UDUMP__((MAREA__,(u8*)&rm_ItcRxMsg, sizeof(rm_ItcRxMsg_t) ));
+ }
+ }
+ else
+ {
+ /* Received messages from non-L1 origin. Try next read */
+ UDEBUG__(("UNKNOWN-rm_WaitForL1Rsp: got a non-L1 msg while waiting for a rsp\n" ));
+ UDUMP__((MAREA__, (u8*)&rm_ItcRxMsg, sizeof(rm_ItcRxMsg_t) ));
+ }
+
+ } /* End of while() */
+
+} /* End of rm_WaitForL1Rsp() */
+
+#endif /* __RM_WAITFORL1RSP_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_WaitForSlotActivateRsp.cpp b/data/mnet/GP10/Host/rm/Src/rm_WaitForSlotActivateRsp.cpp
new file mode 100644
index 0000000..dd82680
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_WaitForSlotActivateRsp.cpp
@@ -0,0 +1,71 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_WAITFORSLOTACTIVATERSP_CPP__
+#define __RM_WAITFORSLOTACTIVATERSP_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_WaitForSlotActivateRsp(u8 trx, u8 slot)
+{
+ u8 gotRsp; /* If the rsp is for the expected slot */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_WaitForSlotActivateRsp: Entering...\n" ));
+
+ gotRsp = RM_FALSE;
+
+ while ( !gotRsp )
+ {
+ /* Read until get a TRX-Management group msg from trx */
+ rm_WaitForL1Rsp(trx, RM_L1MG_TRXMGMT,RM_L1MT_NULL_MSB,RM_L1MT_NULL_LSB);
+
+ /*
+ ** Make sure if the rsp is for SlotActivate sent earlier
+ ** Received response is stored in rm_RxMsgBuf. Caller is
+ ** to make sure bit 8-5 (5 MSB bits) of slot is 0
+ */
+
+ if ( (rm_pItcRxL1Msg->l3_data.buffer[4]&RM_U8_0X07) == slot)
+ {
+
+ /* Now further check if rsp is for SlotActivate sent earlier */
+ if ( rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_SLOTACTIVACK_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_SLOTACTIVACK_LSB )
+ {
+ /* Yes, it's rsp wanted and also positive one */
+ gotRsp = RM_TRUE;
+ TDEBUG__(("TRACE-rm_WaitForSlotActivateRsp: got an ACK for %d\n",slot));
+ }
+ else if ( rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_SLOTACTIVNACK_MSB &&
+ rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_SLOTACTIVNACK_LSB )
+ {
+ /* Got a negative ack, dump message out, then hanging up */
+ EDEBUG__(("ERROR-rm_WaitForSlotActivateRsp: got a NAK for TRX:%d,SLOT:%d\n",
+ trx,slot));
+ EDUMP__((MAREA__,(u8 *)&rm_ItcRxMsg,sizeof(rm_ItcRxMsg_t) ));
+ /*
+ ** TBD: Hangup here. This may only work for PreAlpha release
+ */
+ while(1);
+ } else
+ /* Got an unexpected message */
+ UDEBUG__(("UNKNOWN-rm_WaitForSlotActivateRsp:got non-related message!\n"));
+
+ }
+ else
+ {
+ UDEBUG__(("UNKNOWN-rm_WaitForSlotActivateRsp:got got a message from wrong slot:%d\n",
+ slot ));
+ } /* End of if-statement */
+
+ } /* End of while (!gotRsp) */
+
+} /* End of rm_WaitForSlotActivateRsp() */
+
+#endif /* __RM_WAITFORSLOTACTIVATERSP_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_despatch.cpp b/data/mnet/GP10/Host/rm/Src/rm_despatch.cpp
new file mode 100644
index 0000000..6c8b800
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_despatch.cpp
@@ -0,0 +1,124 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_DESPATCH_CPP__
+#define __RM_DESPATCH_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_Despatch( void )
+{
+ //Monitor entrance to this func
+ RDEBUG__(("ENTER-rm_Despatch\n"));
+
+ //Check if watchdog timer expired
+ //if (rm_ItcRxOrigin==MODULE_OAM && rm_pItcRxRmMsg->timerId==RM_TWDOG)
+ //{ //Watchdog expired, entryId=trx
+ // rm_ProcTrxWDogExp(rm_ItcRxEntryId);
+ // return;
+ //}
+
+ //BTS not in service now
+ //if ( !OAMrm_BTS_OPSTATE )
+ // {
+ // IDEBUG__(("INFO@rm_Despatch:Bts is not in service right now\n"));
+ // return;
+ //}
+
+ //Go by msg primitive
+ switch ( rm_ItcRxPrim )
+ {
+ case RRm_EST_REQ:case RRg_EST_REQ:
+ if (!OAMrm_TRX_OPSTATE(0)) //Assume trx0 always the bcchTrx here
+ { //bcch trx not in service now, this should already filter out
+ IDEBUG__(("WARNING@rm_Despatch: TRX 1 not operating now!\n"));
+ return;
+ }
+ rm_RrEstReq();
+ break;
+
+ case DLm_RA_IND:
+ if (!OAMrm_TRX_OPSTATE(0)) //Assume trx0 always the bcchTrx here
+ {
+ //bcch trx not in service now, this should already filter out
+ IDEBUG__(("WARNING@rm_Despatch: TRX 1 not operating now!\n"));
+ return;
+ }
+ rm_DlRaInd();
+ break;
+
+ default:
+ //Despatch message to a proper SM action
+ if ( rm_ItcRxEntryId != CNI_IRT_NULL_ID )
+ {
+ rm_pSmCtxt=&rm_SmCtxt[rm_ItcRxEntryId];
+
+ //Check if trx is operating
+ if (!OAMrm_TRX_OPSTATE(rm_pSmCtxt->pPhyChan->trxNumber))
+ {
+ //trx not in service now
+ IDEBUG__(("WARNING@rm_Despatch: trx%d not in service\n",
+ rm_pSmCtxt->pPhyChan->trxNumber));
+ return;
+ }
+
+ if ( (rm_pSmCtxt == RM_SMCTXT_NULL) ||
+ (rm_pSmCtxt->smType != RM_MAIN_SM) )
+ {
+ //RM doesnt handle any message assoc with SACCH any more
+ IDEBUG__(("WARNING@rm_Despatch: recv msg not for mSM (smType %d, pSmCtxt %p)\n",
+ rm_pSmCtxt->smType, rm_pSmCtxt));
+ return;
+ }
+
+ //Act accordingly in terms of SM state
+ if ( (MODULE_MD==rm_ItcRxOrigin) &&
+ (rm_pItcRxMdMsg->primitive_type==MDL_ERR_RPT))
+ {
+ //rm_MdlErrRptCauseRel();
+ rm_ProcRrRelease(CNI_RIL3_CAUSE_DESTINATION_OUT_OF_ORDER);
+ }
+ else if ( (MODULE_L1==rm_ItcRxOrigin) &&
+ (rm_pItcRxL1Msg->l3_data.buffer[0]==RM_L1MG_DEDMGMT) &&
+ (rm_pItcRxL1Msg->l3_data.buffer[1]==RM_L1MT_RSL_MSB) &&
+ (rm_pItcRxL1Msg->l3_data.buffer[2]==RM_L1MT_RSL_LSB) )
+ {
+ //rm_RslRelease();
+ rm_ProcRrRelease(CNI_RIL3_CAUSE_DESTINATION_OUT_OF_ORDER);
+
+ //PMADDED:nbrOfLostRadioLinksTCH,nbrOfLostRadioLinksSDCCH
+ if (rm_pSmCtxt->pPhyChan->chanBusy)
+ {
+ if (rm_pSmCtxt->pPhyChan->chanType==RM_PHYCHAN_TCHF_S)
+ PM_CellMeasurement.nbrOfLostRadioLinksTCH.increment();
+ else if (rm_pSmCtxt->pPhyChan->chanType==RM_PHYCHAN_SDCCH4)
+ PM_CellMeasurement.nbrOfLostRadioLinksSDCCH.increment();
+ else
+ EDEBUG__(("ERROR@rm_despatch:chanType=%d\n",
+ rm_pSmCtxt->pPhyChan->chanType));
+ }
+ } else if ( (MODULE_MM==rm_ItcRxOrigin) &&
+ (rm_pItcRxMmMsg->primitive_type== RR_REL_REQ) )
+ {
+ rm_ProcRrRelease(CNI_RIL3_CAUSE_NORMAL_CALL_CLEARING);
+ }
+ else
+ (*rm_SmAction[rm_pSmCtxt->state])();
+ }
+ else
+ IDEBUG__(("ERROR@rm_Despatch: null entry Id encountered (module %d, prim %d)\n",
+ (u8)(rm_ItcRxPrim>>8), (u8)(rm_ItcRxPrim)));
+
+ break;
+
+ } //switch()
+
+} //rm_Despatch()
+
+#endif //__RM_DESPATCH_CPP__
+
diff --git a/data/mnet/GP10/Host/rm/Src/rm_glob.cpp b/data/mnet/GP10/Host/rm/Src/rm_glob.cpp
new file mode 100644
index 0000000..98698eb
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_glob.cpp
@@ -0,0 +1,98 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_GLOB_CPP__
+#define __RM_GLOB_CPP__
+
+#include "rm\rm_head.h"
+
+char __DEBUGVAR__;
+char __RDEBUG__ =1;
+char __EDEBUG__ =1;
+char __DDEBUG__ =1;
+char __UDEBUG__ =0;
+char __PDEBUG__ =1;
+char __TDEBUG__ =0;
+char __BDUMP__ =0;
+char __EDUMP__ =0;
+char __TDUMP__ =0;
+char __UDUMP__ =0;
+
+rm_UmSI2_t rm_UmSI2;
+rm_UmSI3_t rm_UmSI3;
+rm_UmSI4_t rm_UmSI4;
+rm_UmSI5_t rm_UmSI5;
+rm_UmSI6_t rm_UmSI6;
+
+
+rm_UmMsg_t rm_UmMsg;
+rm_SmCtxt_t *rm_pSmCtxt;
+
+T_CNI_IRT_ID rm_RachEntryId;
+//T_CNI_L3_ID rm_id, cc_id;
+
+rm_SmAction_t * rm_SmAction []=
+{
+ rm_S0Null, /* S0: TBD */
+ rm_S1RmRunning, /* S1: TBD */
+ rm_S2ActivatingSigTrafficChan, /* S2 */
+ rm_S3SigChanActivated, /* S3 */
+ rm_S4TrafficChanActivated, /* S4 */
+ rm_S5SigModeEstablished, /* S5 */
+ rm_S6ActivatingTrafficMode, /* S6 */
+ rm_S7ReleasingSigTrafficChan, /* S7 */
+ rm_S8TrafficModeActivated, /* S8 */
+ rm_S9DeactivatingSigTrafficChan, /* S9 */
+ rm_S10TrafficModeEstablished, /* S10 */
+ rm_S11TrafficChanSuspending /* S11 */
+};
+
+u8 rm_ItcRxOrigin;
+rm_IrtEntryId_t rm_ItcRxEntryId;
+u8 rm_BootstrapCnf;
+u16 rm_ItcRxPrim;
+
+int rm_ItcRxPrimType;
+int rm_ItcRxMsgType;
+
+u8 rm_AgchGroup[]={0,1,2,3,4,5,6,7,8};
+rm_ItcRxMsg_t rm_ItcRxMsg;
+rm_SmscbcMsg_t rm_SmscbcMsg;
+
+//MSG_Q_ID rm_MsgQId; /* TBD: used in sys_init.cpp*/
+rm_ItcRxMdMsg_t *rm_pItcRxMdMsg;
+rm_ItcRxL1Msg_t *rm_pItcRxL1Msg;
+rm_ItcRxMmMsg_t *rm_pItcRxMmMsg;
+rm_ItcRxBgMsg_t *rm_pItcRxBgMsg;
+rm_ItcRxCcMsg_t *rm_pItcRxCcMsg;
+rm_ItcRxRmMsg_t *rm_pItcRxRmMsg;
+rm_ItcRxOamMsg_t *rm_pItcRxOamMsg;
+rm_ItcRxVbMsg_t *rm_pItcRxVbMsg;
+rm_PhyChanBCcch_t rm_PhyChanBCcch;
+
+//rm_PhyChanTchf_t rm_PhyChanTchf; //Move to rm_init
+//rm_PhyChanSdcch4_t rm_PhyChanSdcch4; //Move to rm_init
+
+//The following has been moved to src_init
+//rm_SmCtxts_t rm_SmCtxt;
+//rm_IrtEntryId_t rm_TchfEntryId[15]; //TBD:RM_L1MAX_TCHFS];
+//rm_IrtEntryId_t rm_Sdcch4EntryId[4]; //TBDRM_L1MAX_SDCCH4S];
+
+
+//PR 1323 SMSCBC Added
+rm_PhyChanDesc_t *rm_pCbchChan;
+u8 rm_ChanCbchActive;
+msg_TableHdr_t rm_CbMsgTable;
+
+//GP2
+//
+int rm_CbchOpState;
+int rm_DbgDump=1;
+rm_ItcRxGrrMsg_t *rm_pItcRxGrrMsg;
+
+#endif /* __RM_GLOB_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_initL1.cpp b/data/mnet/GP10/Host/rm/Src/rm_initL1.cpp
new file mode 100644
index 0000000..6b5a7cf
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_initL1.cpp
@@ -0,0 +1,121 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_INITL1_CPP__
+#define __RM_INITL1_CPP__
+
+//GP2
+#if 0
+
+#include "rm\rm_head.h"
+
+void rm_InitL1(void)
+{
+ u8 isBcchTrx; /* The TRX carrying BCCH chan. */
+ u8 i; /* Loop-control and trx number */
+
+ /* Monitoring entrance to a function */
+ RDEBUG__(("ENTER-rm_InitL1\n" ));
+
+ /*=TBD=*/
+ /*
+ ** The whole L1 configuration is done in four steps:
+ ** =================================================
+ ** Step 1:Configures each individual TRX as per the command sequence
+ ** Step 2:Passes SYNCHRONIZATION INFORMATION message to the BCCH TRX
+ ** Step 3:Passes all required SYSTEM INFORMATION messages toTRX/BCCH
+ ** Step 4:Passes SACCH FILLING message to each individual TRX in use
+
+ **
+ ** Configuration of an individual TRX is achieved by sending L1 the
+ ** following DSP-command sequence:
+ ** ===============================
+ ** (1)TRX CONFIGURE (2)SLOT ACTIVATE (3)SET UPLINK GAIN
+ ** (4)SET DOWNLINK GAIN (5)TUNE SYNTHESIZER (6)CONFIGURE FPGA DELAY
+ **
+ */
+
+ /* Step 1: One by one configure all usable TRXs */
+ i = 0; oam_BcchTrx = RM_L1TRX_NULL;
+ while ( i < OAMrm_MAX_TRXS )
+ {
+ /* if i-th TRX present, configure it */
+ if ( (OAMrm_TRX_ONOFF_MAP)&(1<<i) )
+ {
+
+ isBcchTrx = rm_ConfigTrxSlots(i);
+
+ /* ret=TRUE means i is BcchTrx */
+ if (isBcchTrx) oam_BcchTrx = i;
+
+PDEBUG__(("TRACE-rm_InitL1: i=%d, noTrx=%d, trxMap=%d, curTrx=%d, bcchTrx=%d, i=%d\n",
+ i,OAMrm_MAX_TRXS, OAMrm_TRX_ONOFF_MAP, ( (OAMrm_TRX_ONOFF_MAP)&(1<<i) ), oam_BcchTrx,i));
+
+ }
+ i++;
+ } /* End of while() */
+
+// Comment for TEST
+// PDEBUG__(("End of rm_ConfigTrxSlots, bcchTrx=%d\n", bcchTrx));
+
+// /* Step 2: Pass SYNCHRONIZATION INFORMATION to the BCCH TRX */
+// rm_SendSynchInfoToBcchTrx(bcchTrx);
+// rm_WaitForL1Rsp(bcchTrx, RM_L1MG_TRXMGMT, RM_L1MT_SYNCHACK_MSB,
+// RM_L1MT_SYNCHACK_LSB);
+
+//PDEBUG__(("End of rm_SendSynchInfoToBcchTrx()\n"));
+
+ /* Step 3: Pass all SYSTEM INFOs to the BCCH TRX */
+ if ( oam_BcchTrx != RM_L1TRX_NULL )
+ rm_SendAllSystemInfosToBcchTrx(oam_BcchTrx);
+ else
+ EDEBUG__(("ERROR-rm_InitL1: No TRX appointed carrying BCCH\n"));
+
+PDEBUG__(("End of rm_SendAllSystemInfosToBcchTrx, oam_BcchTrx=%d\n",oam_BcchTrx));
+
+ /* Step 4: Pass SACCH filling message to all TRX */
+ i = 0;
+ while ( i < OAMrm_MAX_TRXS )
+ {
+ /* Pass SACCH FILLing to present TRX */
+ if ( (OAMrm_TRX_ONOFF_MAP)&(1<<i) )
+ {
+ rm_SendSacchFillingSI5(i, RM_L1SYSINFO_TYPE_5);
+ rm_SendSacchFillingSI6(i, RM_L1SYSINFO_TYPE_6);
+ }
+ i++;
+
+ } /* End of while() */
+
+PDEBUG__(("End of rm_SendSacchFillingSI5 and SI6\n"));
+
+/* Step 2: Pass SYNCHRONIZATION INFORMATION to the BCCH TRX */
+//rm_SendSynchInfoToBcchTrx(bcchTrx); //TBD: Send one for each TRX later
+//rm_WaitForL1Rsp(bcchTrx, RM_L1MG_TRXMGMT, RM_L1MT_SYNCHACK_MSB,
+// RM_L1MT_SYNCHACK_LSB);
+
+ i = 0;
+ while ( i < OAMrm_MAX_TRXS )
+ {
+ /* Let DSP go by sending Sync Info */
+ if ( (OAMrm_TRX_ONOFF_MAP)&(1<<i) )
+ {
+ rm_SendSynchInfoToBcchTrx(i);
+ }
+ i++;
+
+ } /* End of while() */
+
+ PDEBUG__(("End of rm_SendSynchInfoToBcchTrx()\n"));
+
+} /* End of rm_InitL1() */
+
+//GP2
+#endif //#if 0
+
+#endif /* __RM_INITL1_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_initRm.cpp b/data/mnet/GP10/Host/rm/Src/rm_initRm.cpp
new file mode 100644
index 0000000..131d1c2
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_initRm.cpp
@@ -0,0 +1,339 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_INITRM_CPP__
+#define __RM_INITRM_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_InitRm(void)
+{
+ u8 i,j,k; //Used as loop-control or for array index
+ u8 tchfIdx; //Index to TCH/F-type channel pool element
+ u8 sdcch4Idx; //Index to SDCCH/4 type chan. pool element
+ WDOG_ID timerId; //Used to store timerID ret. from wdCreate
+
+ i=j=k=0; tchfIdx=0; sdcch4Idx=0;
+
+ //Monitoring entrance to a func
+ RDEBUG__(("ENTER@rm_InitRm\n"));
+
+ //Clear control and dedicated channel pools clean first
+ RM_MEMSET( (u8 *)rm_PhyChanTchf, sizeof(rm_PhyChanTchf_t) );
+ RM_MEMSET( (u8 *)rm_PhyChanSdcch4, sizeof(rm_PhyChanSdcch4_t) );
+ RM_MEMSET( (u8 *)rm_PhyChanBCcch, sizeof(rm_PhyChanBCcch_t) );
+
+ //Initialize RM mgmt structs in terms of OAM configuration data
+ for (i=0; i<OAMrm_MAX_TRXS; i++ )
+ {
+ //Check if ith TRX is existent
+ if ( (OAMrm_TRX_ONOFF_MAP)&(1<<i) )
+ {
+ for (j = 0; j<OAMrm_SLOTS_PER_TRX; j++)
+ {
+ switch( OAMrm_TRX_SLOT_COMB(i,j) )
+ {
+ //case OAMrm_SLOT_COMB_1:
+ default:
+ //Establish TCH/F physcial channel pool
+ //G2
+ rm_PhyChanTchf[tchfIdx].usable = RM_PHYCHAN_USABLE;
+ rm_PhyChanTchf[tchfIdx].state = RM_PHYCHAN_FREE;
+ rm_PhyChanTchf[tchfIdx].chanType = RM_PHYCHAN_TCHF_S;
+ rm_PhyChanTchf[tchfIdx].subChanNumber = 0;
+ rm_PhyChanTchf[tchfIdx].trxNumber = (0x01&i);
+ rm_PhyChanTchf[tchfIdx].chanNumber = (0x08|j)<<8;
+ rm_PhyChanTchf[tchfIdx].chanNumberMSB = (0x08|j);
+ rm_PhyChanTchf[tchfIdx].chanNumberLSB = 0;
+ rm_PhyChanTchf[tchfIdx].TSC = OAMrm_BTS_TSC;
+ rm_PhyChanTchf[tchfIdx].rslCount = 0;
+
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for tchf T3101\n"));
+ }
+ rm_PhyChanTchf[tchfIdx].T3101.id = timerId;
+ rm_PhyChanTchf[tchfIdx].T3101.time = OAMrm_T3101;
+ rm_PhyChanTchf[tchfIdx].T3101.state = RM_FALSE;
+
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for tchf T3111\n"));
+ }
+ rm_PhyChanTchf[tchfIdx].T3111.id = timerId;
+ rm_PhyChanTchf[tchfIdx].T3111.time = OAMrm_T3111;
+ rm_PhyChanTchf[tchfIdx].T3111.state = RM_FALSE;
+
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for tchf T3109\n"));
+ }
+ rm_PhyChanTchf[tchfIdx].T3109.id = timerId;
+ rm_PhyChanTchf[tchfIdx].T3109.time = OAMrm_T3109;
+ rm_PhyChanTchf[tchfIdx].T3109.state = RM_FALSE;
+
+ //HOADDED
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for tchf T3105\n"));
+ }
+ rm_PhyChanTchf[tchfIdx].T3105.id = timerId;
+ rm_PhyChanTchf[tchfIdx].T3105.time = OAMrm_T3105;
+ rm_PhyChanTchf[tchfIdx].T3105.state = RM_FALSE;
+
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for tchf T3L01\n"));
+ }
+ rm_PhyChanTchf[tchfIdx].T3L01.id = timerId;
+ rm_PhyChanTchf[tchfIdx].T3L01.time = OAMrm_T3L01;
+ rm_PhyChanTchf[tchfIdx].T3L01.state = RM_FALSE;
+
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for tchf T3L02\n"));
+ }
+ rm_PhyChanTchf[tchfIdx].T3L02.id = timerId;
+ rm_PhyChanTchf[tchfIdx].T3L02.time = OAMrm_T3L02;
+ rm_PhyChanTchf[tchfIdx].T3L02.state = RM_FALSE;
+
+ if (tchfIdx>=OAMrm_MAX_TCHFS)
+ {
+ //Make sure no more than wanted comb1 configuration
+ rm_SetRmOpState(EC_RM_TOO_MANY_CHAN_COMB_1_DETECTED);
+ EDEBUG__(("ERROR@rm_InitRm(): tchfIdx=%d, maxAllowed=%d\n",
+ tchfIdx, OAMrm_MAX_TCHFS));
+ }
+
+ //Init PhyChanTchf's opState and amState from mib data
+
+
+ if ( OAMrm_TRX_SLOT_COMB(i,j) == OAMrm_SLOT_COMB_1 )
+ rm_PhyChanTchf[tchfIdx].amState = OAMrm_CHN_AMSTATE(i,j);
+ else
+ {
+ printf("{\nRM<-MIB: non-TCH combination used for (trx=%d, slot=%d, comb=%d)\n}\n",
+ i, j, OAMrm_TRX_SLOT_COMB(i,j));
+ rm_PhyChanTchf[tchfIdx].amState = locked;
+ }
+
+ rm_PhyChanTchf[tchfIdx].opState = OAMrm_CHN_OPSTATE(i,j);
+ rm_PhyChanTchf[tchfIdx].chanIdx = tchfIdx;
+ rm_PhyChanTchf[tchfIdx].trxNo = i;
+ rm_PhyChanTchf[tchfIdx].slotNo = j;
+
+ // DDEBUG__(("%dth TCHF T3101.id=0x%08x, T3111.id=0x%08x, T3109.id=0x%08x, T3L01.id=0x%08x\n",
+ // tchfIdx,
+ // rm_PhyChanTchf[tchfIdx].T3101.id,
+ // rm_PhyChanTchf[tchfIdx].T3111.id,
+ // rm_PhyChanTchf[tchfIdx].T3109.id,
+ // rm_PhyChanTchf[tchfIdx].T3L01.id
+ // ));
+
+ //GP2
+ if ( (rm_PhyChanTchf[tchfIdx].opState==opStateEnabled)&&
+ (rm_PhyChanTchf[tchfIdx].amState!=locked) )
+ {
+ //PM counter:nbrOfAvailableTCHs
+ rm_NoOfUsableTchf++;
+ PM_CellMeasurement.nbrOfAvailableTCHs.setValue(rm_NoOfUsableTchf);
+ }
+
+ rm_PhyChanTchf[tchfIdx++].quality = RM_PHYCHAN_QUALITY_PREALPHA;
+
+ break;
+
+ case OAMrm_SLOT_COMB_5:
+ //Come across conflict in slot combination
+ if ( sdcch4Idx > 0 )
+ EDEBUG__(("ERROR@rm_InitRm: BCCH Configuration conflict\n"));
+
+ //Establish BCCH & CCCH physical channel pools
+
+ //BCCH Channel
+ rm_PhyChanBCcch[RM_BCCH_IDX].trxNumber = (0x01&i);
+ rm_PhyChanBCcch[RM_BCCH_IDX].chanNumber = (0x80|j)<<8;
+ rm_PhyChanBCcch[RM_BCCH_IDX].chanNumberMSB = (0x80|j);
+ rm_PhyChanBCcch[RM_BCCH_IDX].chanNumberLSB = 0;
+
+ //RACH Channel
+ rm_PhyChanBCcch[RM_RACH_IDX].trxNumber = (0x01&i);
+ rm_PhyChanBCcch[RM_RACH_IDX].chanNumber = (0x88|j)<<8;
+ rm_PhyChanBCcch[RM_RACH_IDX].chanNumberMSB = (0x88|j);
+ rm_PhyChanBCcch[RM_RACH_IDX].chanNumberLSB = 0;
+
+ //PAGE Channel
+ rm_PhyChanBCcch[RM_PCH_IDX].trxNumber = (0x01&i);
+ rm_PhyChanBCcch[RM_PCH_IDX].chanNumber = (0x90|j)<<8;
+ rm_PhyChanBCcch[RM_PCH_IDX].chanNumberMSB = (0x90|j);
+ rm_PhyChanBCcch[RM_PCH_IDX].chanNumberLSB = 0;
+ rm_PhyChanBCcch[RM_PCH_IDX].amState = OAMrm_CHN_AMSTATE(i,j);
+ rm_PhyChanBCcch[RM_PCH_IDX].usable = RM_PHYCHAN_USABLE;
+ rm_PhyChanBCcch[RM_PCH_IDX].state = RM_PHYCHAN_FREE;
+
+
+ //AGCH Channel
+ rm_PhyChanBCcch[RM_AGCH_IDX].trxNumber = (0x01&i);
+ rm_PhyChanBCcch[RM_AGCH_IDX].chanNumber = (0x90|j)<<8;
+ rm_PhyChanBCcch[RM_AGCH_IDX].chanNumberMSB = (0x90|j);
+ rm_PhyChanBCcch[RM_AGCH_IDX].chanNumberLSB = 0;
+
+ //Establish SDCCH/4 physcial channel pool
+ for (k=0; k<OAMrm_MAX_SDCCH4S; k++)
+ {
+ //GP2
+ rm_PhyChanSdcch4[sdcch4Idx].usable = RM_PHYCHAN_USABLE;
+
+ rm_PhyChanSdcch4[sdcch4Idx].state = RM_PHYCHAN_FREE;
+ rm_PhyChanSdcch4[sdcch4Idx].chanType = RM_PHYCHAN_SDCCH4;
+
+ rm_PhyChanSdcch4[sdcch4Idx].subChanNumber = k;
+ rm_PhyChanSdcch4[sdcch4Idx].trxNumber = (0x01&i);
+ rm_PhyChanSdcch4[sdcch4Idx].chanNumber = ((0x20|(k<<3))|j)<<8;
+ rm_PhyChanSdcch4[sdcch4Idx].chanNumberMSB = (0x20|(k<<3))|j;
+ rm_PhyChanSdcch4[sdcch4Idx].chanNumberLSB = 0;
+ rm_PhyChanSdcch4[sdcch4Idx].TSC = OAMrm_BTS_TSC;
+ rm_PhyChanSdcch4[tchfIdx].rslCount = 0;
+
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for sdcch4 T3101\n"));
+ }
+ rm_PhyChanSdcch4[sdcch4Idx].T3101.id = timerId;
+ rm_PhyChanSdcch4[sdcch4Idx].T3101.time = OAMrm_T3101;
+ rm_PhyChanSdcch4[sdcch4Idx].T3101.state = RM_FALSE;
+
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for sdcch4 T3111\n"));
+ }
+ rm_PhyChanSdcch4[sdcch4Idx].T3111.id = timerId;
+ rm_PhyChanSdcch4[sdcch4Idx].T3111.time = OAMrm_T3111;
+ rm_PhyChanSdcch4[sdcch4Idx].T3111.state = RM_FALSE;
+
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for sdcch4 T3109\n"));
+ }
+ rm_PhyChanSdcch4[sdcch4Idx].T3109.id = timerId;
+ rm_PhyChanSdcch4[sdcch4Idx].T3109.time = OAMrm_T3109;
+ rm_PhyChanSdcch4[sdcch4Idx].T3109.state = RM_FALSE;
+
+ //HOADDED
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for sdcch4 T3105\n"));
+ }
+ rm_PhyChanSdcch4[sdcch4Idx].T3105.id = timerId;
+ rm_PhyChanSdcch4[sdcch4Idx].T3105.time = OAMrm_T3105;
+ rm_PhyChanSdcch4[sdcch4Idx].T3105.state = RM_FALSE;
+
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for sdcch4 T3L01\n"));
+ }
+ rm_PhyChanSdcch4[sdcch4Idx].T3L01.id = timerId;
+ rm_PhyChanSdcch4[sdcch4Idx].T3L01.time = OAMrm_T3L01;
+ rm_PhyChanSdcch4[sdcch4Idx].T3L01.state = RM_FALSE;
+
+ if ( (timerId = wdCreate()) == NULL )
+ {
+ rm_SetRmOpState(EC_RM_OS_CALL_WDCREATE_FAILED);
+ EDEBUG__(("rm_InitRm: error from calling wdCreate() for sdcch4 T3L02\n"));
+ }
+ rm_PhyChanSdcch4[sdcch4Idx].T3L02.id = timerId;
+ rm_PhyChanSdcch4[sdcch4Idx].T3L02.time = OAMrm_T3L02;
+ rm_PhyChanSdcch4[sdcch4Idx].T3L02.state = RM_FALSE;
+
+ //Make sure MIB config is proper
+ if (sdcch4Idx>=OAMrm_MAX_SDCCH4S)
+ {
+ //Something wrong in MIB configuration data
+ rm_SetRmOpState(EC_RM_TWO_CHAN_COMB_5_EXIST);
+ EDEBUG__(("ERROR@rm_InitRm(): sdcch4Idx=%d,maxAllowed=%d\n",
+ sdcch4Idx,OAMrm_MAX_SDCCH4S));
+ }
+
+ //Init PhyChanTchf's opState and amState from mib conf data
+ rm_PhyChanSdcch4[sdcch4Idx].amState = OAMrm_CHN_AMSTATE(i,j);
+ rm_PhyChanSdcch4[sdcch4Idx].opState = OAMrm_CHN_OPSTATE(i,j);
+ rm_PhyChanSdcch4[sdcch4Idx].chanIdx = sdcch4Idx;
+ rm_PhyChanSdcch4[sdcch4Idx].trxNo = i;
+ rm_PhyChanSdcch4[sdcch4Idx].slotNo = j;
+
+ // DDEBUG__(("%dth SDCCH4 T3101.id=0x%08x, T3111.id=0x%08x, T3109.id=0x%08x, T3L01.id=0x%08x\n",
+ // sdcch4Idx,
+ // rm_PhyChanSdcch4[sdcch4Idx].T3101.id,
+ // rm_PhyChanSdcch4[sdcch4Idx].T3111.id,
+ // rm_PhyChanSdcch4[sdcch4Idx].T3109.id,
+ // rm_PhyChanSdcch4[sdcch4Idx].T3L01.id
+ // ));
+
+ //GP2
+ if ( (rm_PhyChanSdcch4[sdcch4Idx].amState!=locked)&&
+ (rm_PhyChanSdcch4[sdcch4Idx].opState==opStateEnabled) )
+ {
+ //PM counter:nbrOfAvailableSDCCHs
+ if (++rm_nbrOfAvailableSDCCHs>4)
+ {
+ rm_nbrOfAvailableSDCCHs = 4;
+ printf("INFO@rm_InitRm: nbrOfAvailableSDCCHs %d\n",rm_nbrOfAvailableSDCCHs);
+ }
+ PM_CellMeasurement.nbrOfAvailableSDCCHs.setValue(rm_nbrOfAvailableSDCCHs);
+
+ }
+
+ rm_PhyChanSdcch4[sdcch4Idx++].quality = RM_PHYCHAN_QUALITY_PREALPHA;
+ }
+
+ break;
+
+ //default:
+ //Unsupported slot combination configuration
+ //GP2
+ //rm_SetRmOpState(EC_RM_CHAN_COMB_UNSUPPORTED);
+ // UDEBUG__(("UNKNOWN@rm_InitRm: unsupported slot comb:%d", OAMrm_TRX_SLOT_COMB(i,j) ));
+ // break;
+
+ } //End of switch()
+
+ } //End of for-j loop
+
+ } //End of if-statement
+
+ } //End of for-i loop
+
+ //Test setting for PreAlpha Release integration
+ //rm_PhyChanTchf[0].usable = RM_PHYCHAN_UNUSABLE;
+ //rm_PhyChanTchf[1].usable = RM_PHYCHAN_UNUSABLE;
+
+ //Output for integration test
+ //rm_InitRmTestPrint(tchfIdx,sdcch4Idx);
+
+ //PR 1323, Init rm CB msg table, SMSCBC
+ for (i=0;i<SmsCbc_TableRow_MAX;i++)
+ {
+ rm_CbMsgTable.table[i].state = 0;
+ rm_CbMsgTable.table[i].curPageInCurMsg = 1;
+ }
+ rm_CbMsgTable.curMsg = 0;
+
+} //End of rm_InitRm()
+
+#endif //__RM_INITRM_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_main.cpp b/data/mnet/GP10/Host/rm/Src/rm_main.cpp
new file mode 100644
index 0000000..22bc3cf
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_main.cpp
@@ -0,0 +1,601 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_MAIN_CPP__
+#define __RM_MAIN_CPP__
+
+#include "rm\rm_head.h"
+#include "Os\JCTask.h"
+
+void rm_VcToVbUpNotification(void);
+
+JCTask rmTaskObj("rmTask");
+
+void rm_Main( void )
+{
+ int i;
+ int result; //Result from calling a func
+ u8 trx;
+
+ //Monitoring entry to RM moule
+ //RDEBUG__(("ENTER-rm_Main()\n"));
+ RMDBG_ENTER(("ENTER@rm_Main()",RM_LAYER));
+
+ //GP2
+ // Let root task know that RM has entered its process loop.
+ //ViperTaskEnterLoop();
+ rmTaskObj.JCTaskEnterLoop();
+
+ //InitRMsef
+ rm_InitAll();
+ printf("RM finished initialization\n");
+
+ //MainLoop
+ while(RM_TRUE)
+ {
+ //Confirm RM is now staying in its main-loop
+ PDEBUG__(("RM_MAIN: staying in WHILE-LOOP\n"));
+
+ //Read a msg from queue or pend on arrival of message
+ result = rm_msgQReceive(rm_MsgQId, (s8 *)&rm_ItcRxMsg,
+ sizeof(rm_ItcRxMsg_t), WAIT_FOREVER);
+ if (result==ERROR)
+ { //Error in reading VxWork msg queue. Ignore msg!
+ rm_SetRmOpState(EC_RM_OS_CALL_MSGQRECEIVE_FAILED);
+ EDEBUG__(("ERROR@rm_Main:VxWorks Q read err:%d\n",errno));
+ goto L1;
+ }
+
+ //Good receive! Dump it if needed,result=length
+ //BDUMP__((RXMSG__, (u8 *)&rm_ItcRxMsg, result));
+
+ //Handle the message in terms of origin, apply sanitory check!
+ rm_ItcRxOrigin = rm_ItcRxMsg.module_id;
+ if (rm_ItcRxOrigin>=MNET_MAX_MODULE_IDS) //PR1512
+ {
+ IDEBUG__(("WARNING@rm_Main(): invalid moduleID=%d\n", rm_ItcRxOrigin));
+ goto L1;
+ }
+
+ switch(rm_ItcRxOrigin)
+ {
+ //GP2
+ case MODULE_GRR:
+ //Received GRR message, cast it to GRR msg struct and process it
+ rm_pItcRxGrrMsg = (rm_ItcRxGrrMsg_t *)&rm_ItcRxMsg;
+
+ //If needed output the fact RM got an OAM message for trace
+ PDEBUG__(("RM<==GRR@rm_Main: msgTyp(%d) trx(%d) slot(%d) ctrl(%d)\n",
+ rm_pItcRxGrrMsg->message_type,
+ rm_pItcRxGrrMsg->trx,
+ rm_pItcRxGrrMsg->slot,
+ rm_pItcRxGrrMsg->feat_ctrl));
+
+ rm_ProcGrrMsgs();
+
+ goto L1;
+
+ case MODULE_OAM:
+ //GP2
+ goto L1;
+
+ //Received OAM message, cast it to OAMmsg struct and process it
+ rm_pItcRxOamMsg = (rm_ItcRxOamMsg_t *)&rm_ItcRxMsg;
+ rm_OamGetTrapVars();
+
+ //If needed output the fact RM got an OAM message for trace
+ PDEBUG__(("RM<==OAM@rm_Main: msgTyp=%d,Tag=0x%x,valTyp=%d, val=%d\n",
+ rm_pItcRxOamMsg->msgType,
+ rm_pItcRxOamMsg->mibTag,
+ rm_pItcRxOamMsg->valType,
+ rm_pItcRxOamMsg->val.varVal));
+ goto L1;
+
+ case MODULE_L1:
+ //Received L1 message,cast it to L1msg struct and process
+ rm_pItcRxL1Msg=(rm_ItcRxL1Msg_t *)&rm_ItcRxMsg.itcRxMdMsg;
+
+ //If needed output the fact RM got a L1 message for trace
+ PDEBUG__(("RM<==L1@rm_Main:MSG=(%x,%x,%x),SRC(%x,%x,%x)\n",
+ rm_pItcRxL1Msg->l3_data.buffer[0],
+ rm_pItcRxL1Msg->l3_data.buffer[1],
+ rm_pItcRxL1Msg->l3_data.buffer[2],
+ rm_pItcRxL1Msg->l3_data.buffer[3],
+ rm_pItcRxL1Msg->l3_data.buffer[4],
+ rm_pItcRxL1Msg->l3_data.buffer[6]));
+
+ trx = rm_pItcRxL1Msg->l3_data.buffer[3];
+ //Apply sanitory check!
+ if (trx>=OAMrm_MAX_TRXS)
+ {
+ IDEBUG__(("WARNING@rm_Main(): invalid trx=%d\n", trx));
+ goto L1;
+ }
+
+ rm_TrxMgmt[trx].alive = RM_TRUE; //dsp still alive
+
+ //Process the message from the alive trx
+ switch(rm_pItcRxL1Msg->l3_data.buffer[0])
+ {
+ case RM_L1MG_DEDMGMT:
+ //Received message is for dedicated link mgmt
+ rm_ItcRxPrim = (rm_pItcRxL1Msg->module_id<<8) |
+ (rm_pItcRxL1Msg->primitive_type);
+ rm_ItcRxEntryId = rm_GetIrtEntryId(rm_pItcRxL1Msg);
+ if (rm_ItcRxEntryId==CNI_IRT_NULL_ID)
+ {
+ //the received message not linked to a valid entry ID
+ //Check if it's RTS for PAGCH
+ if (rm_pItcRxL1Msg->l3_data.buffer[4]!=0x90)
+ {
+ rm_SetRmOpState(EC_RM_RECV_CORRUPTED_DSP_MSG);
+ IDEBUG__(("WARNING@rm_Main: Null entry ID for L1 msg\n"));
+ }
+ goto L1;
+ }
+ rm_ItcRxPrimType = rm_pItcRxL1Msg->l3_data.buffer[0]; //MD
+ rm_ItcRxMsgType = (u32)( (rm_pItcRxL1Msg->l3_data.buffer[1]<<8) |
+ rm_pItcRxL1Msg->l3_data.buffer[2] );
+ break;
+
+ case RM_L1MG_TRXMGMT:
+ //GP2
+ goto L1;
+
+ //Received message is for trx management
+
+ //Got PONG message for keep-alive watching
+ if (RM_L1MSGCMP(RM_L1MG_TRXMGMT,RM_L1MT_PINGACK_MSB,
+ RM_L1MT_PINGACK_LSB))
+ {
+ //Make sure DSP is still ticking now
+ rm_MakeSureDspIsTicking();
+ goto L1;
+ }
+
+ //Message for other TRX managment purpose
+ if (rm_LiveSglCfg)
+ {
+ //period of VC reboot
+ rm_ProcTrxMgmtMsg(trx);
+
+ //Check if configuration finished or not
+ for (i=0;i<OAMrm_MAX_TRXS;i++)
+ {
+ if ( ((OAMrm_TRX_ONOFF_MAP)&(1<<i)) && (!rm_TrxMgmt[i].done) )
+ break;
+ }
+
+ if (i>=OAMrm_MAX_TRXS)
+ {
+ //Done with initialization of DSPs, decide on/off RF
+ rm_TurnOnRadioIfNeeded();
+
+ //Block OnTheFly config
+ rm_LiveSglCfg = RM_FALSE;
+
+ //Activate CBCHchannel
+ rm_ChanCbchActive=RM_FALSE;
+ if ( OAMrm_CBCH_OPSTATE )
+ {
+ if (rm_pCbchChan->usable != RM_PHYCHAN_USABLE )
+ {
+ //SDCCH4 ie CBCH is not usable
+ rm_SetRmOpState(EC_RM_CBCH_UNUSABLE);
+ IDEBUG__(("WARNING@rm_Main:no tchf available\n"));
+ } else
+ {
+ rm_pCbchChan->usable = RM_PHYCHAN_CBCH_USABLE;
+ rm_ActivateCbchChan();
+ }
+ }
+ rm_SetRmOpState(EC_NOERROR);
+ PDEBUG__(("INFO@rm_Main:RM INIT DONE!!!\n"));
+ //add VCup notification to VB,SMSCBC, 6/29
+ rm_VcToVbUpNotification();
+ }
+ }
+ //else
+ //Add logic here for on-the-fly configuration in the future
+ goto L1;
+
+ default:
+ //Received unexpected L1 message
+ PDEBUG__(("INFO@rm_Main: unexpected L11 msg md=%x\n",
+ rm_pItcRxL1Msg->l3_data.buffer[0]));
+ goto L1;
+ } // inner switch()
+ break;
+
+ case MODULE_RM:
+ //Received RM message,cast it to RMmsg struct and process
+ rm_pItcRxRmMsg=(rm_ItcRxRmMsg_t *)&rm_ItcRxMsg.itcRxRmMsg;
+ rm_ItcRxPrim =(rm_pItcRxRmMsg->module_id<<8 ) |
+ (rm_pItcRxRmMsg->primitive_type ) ;
+
+ rm_ItcRxEntryId = rm_pItcRxRmMsg->entry_id;
+
+ //Process watch-dog timer expiry here
+ if (rm_pItcRxRmMsg->timerId==RM_TWDOG)
+ { //Watchdog expired, entryId=trx
+ PDEBUG__(("TRACE@rm_Main: DSP watch dog expired\n"));
+ rm_ProcTrxWDogExp(rm_ItcRxEntryId);
+ goto L1;
+ }
+
+ //If needed output the fact RM got a RM message for trace
+ PDEBUG__(("RM<==RM@rm_Main:prim=%d,entryID=%d,timerId=%d\n",
+ rm_pItcRxRmMsg->primitive_type,
+ rm_ItcRxEntryId,
+ rm_pItcRxRmMsg->timerId));
+
+ rm_ItcRxPrimType = rm_pItcRxRmMsg->primitive_type; //primitive type
+ rm_ItcRxMsgType = (u32)rm_pItcRxRmMsg->timerId; //timer expired
+
+ break;
+
+ default:
+ //Block call signaling if bts disabled
+ if (OAMrm_BTS_OPSTATE==opStateDisabled)
+ { //RM is out of service due to external or internal constraint
+ PDEBUG__(("INFO@rm_Main: BTS out of service now, rmEcCode=%d\n",
+ rm_OpState));
+ goto L1;
+ }
+
+ //RM is now operational and go ahead to process received message
+ switch(rm_ItcRxOrigin)
+ {
+ case MODULE_MD:
+ //Received MD message,cast it to MDmsg struct and process
+ rm_pItcRxMdMsg=(rm_ItcRxMdMsg_t *)&(rm_ItcRxMsg.itcRxMdMsg);
+ rm_ItcRxPrim =(rm_pItcRxMdMsg->module_id<<8 ) |
+ (rm_pItcRxMdMsg->primitive_type ) ;
+ rm_ItcRxEntryId=rm_pItcRxMdMsg->entry_id;
+ rm_SmCtxt[rm_ItcRxEntryId].sapi=rm_pItcRxMdMsg->sapi;
+
+ //If needed output the fact RM got a L1 message for trace
+ PDEBUG__(("RM<==MD@rm_Main:prim=%d, entryID=%d\n",
+ rm_pItcRxMdMsg->primitive_type,rm_ItcRxEntryId));
+
+ //Distinguish RA between RACH and TCH
+ if (rm_ItcRxEntryId!=rm_RachEntryId &&
+ rm_pItcRxMdMsg->primitive_type==L23PT_DL_RANDOM_ACCESS_IND)
+ rm_ItcRxPrim = DLm_OTHRA_IND;
+
+ // Not displaying L23PT_DL_EST_IND primatives here because they
+ // are displayed later by MM and CC. Had to make an exception for
+ // paging response because neither MM or CC display it.
+ if (rm_pItcRxMdMsg->primitive_type == L23PT_DL_DATA_IND)
+ PostL3RecvMsLog(rm_pItcRxMdMsg->lapdm_oid, rm_pItcRxMdMsg->sapi,
+ &rm_pItcRxMdMsg->l3_data);
+ else if ((rm_pItcRxMdMsg->primitive_type == L23PT_DL_EST_IND) &&
+ (rm_pItcRxMdMsg->l3_data.buffer[1] ==
+ CNI_RIL3RRM_MSGID_PAGING_RESPONSE))
+ PostL3RecvMsLog(rm_pItcRxMdMsg->lapdm_oid, rm_pItcRxMdMsg->sapi,
+ &rm_pItcRxMdMsg->l3_data);
+ else if (rm_pItcRxMdMsg->primitive_type == L23PT_DL_RANDOM_ACCESS_IND)
+ PostL3RandomAccess(&rm_pItcRxMdMsg->l3_data);
+
+ rm_ItcRxPrimType = rm_pItcRxMdMsg->primitive_type; //primitive type
+ rm_ItcRxMsgType = 0; //not applicable
+
+ break;
+
+ case MODULE_MM:
+ //Received MM message,cast it to MMmsg struct and process
+ rm_pItcRxMmMsg=(rm_ItcRxMmMsg_t *)&rm_ItcRxMsg.itcRxMmMsg;
+ rm_ItcRxPrim =(rm_pItcRxMmMsg->module_id<<8 ) |
+ (rm_pItcRxMmMsg->primitive_type ) ;
+ rm_ItcRxEntryId = rm_pItcRxMmMsg->entry_id;
+ //If needed output the fact RM got a L1 message
+ PDEBUG__(("RM<==MM@rm_Main:prim=%d,msgType=%d,entryID=%d\n",
+ rm_pItcRxMmMsg->primitive_type,
+ rm_pItcRxMmMsg->message_type,
+ rm_ItcRxEntryId));
+
+ rm_ItcRxPrimType = rm_pItcRxMmMsg->primitive_type; //primitive type
+ rm_ItcRxMsgType = rm_pItcRxMmMsg->message_type; //message type
+
+ break;
+
+ case MODULE_BSSGP:
+ //Received BSSGP message, cast it to BSSGP msg struct and process
+ rm_pItcRxBgMsg=(rm_ItcRxBgMsg_t *)&rm_ItcRxMsg.itcRxBgMsg;
+ rm_ItcRxPrim =(rm_pItcRxBgMsg->module_id<<8 ) |
+ (rm_pItcRxBgMsg->primitive_type ) ;
+ rm_ItcRxEntryId = rm_pItcRxBgMsg->entry_id;
+
+ //If needed output the fact RM got a L1 message
+ PDEBUG__(("RM<==BSSGP@rm_Main:prim=%d,msgType=%d,entryID=%d\n",
+ rm_pItcRxBgMsg->primitive_type,
+ rm_pItcRxBgMsg->message_type,
+ rm_ItcRxEntryId));
+
+ rm_ItcRxPrimType = rm_pItcRxBgMsg->primitive_type; //primitive type
+ rm_ItcRxMsgType = rm_pItcRxBgMsg->message_type; //message type
+
+ break;
+
+ case MODULE_CC:
+ //Received CC message,cast it to CCmsg struct and process
+ rm_pItcRxCcMsg=(rm_ItcRxCcMsg_t *)&rm_ItcRxMsg.itcRxCcMsg;
+ rm_ItcRxPrim =(rm_pItcRxCcMsg->module_id<<8 ) |
+ (rm_pItcRxCcMsg->primitive_type ) ;
+ rm_ItcRxEntryId = rm_pItcRxCcMsg->entry_id;
+ //If needed output the fact RM got a L1 message
+ PDEBUG__(("RM<==CC@rm_Main:prim=%d,msgType=%d,entryID=%d\n",
+ rm_pItcRxCcMsg->primitive_type,
+ rm_pItcRxCcMsg->message_type,
+ rm_ItcRxEntryId));
+
+ rm_ItcRxPrimType = rm_pItcRxCcMsg->primitive_type; //primitive type
+ rm_ItcRxMsgType = rm_pItcRxCcMsg->message_type; //message type
+
+ break;
+
+ case MODULE_SMSCBC:
+ //Received CB message,cast it to CBmsg struct and process
+ rm_pItcRxVbMsg=(rm_ItcRxVbMsg_t *)&rm_ItcRxMsg.itcRxVbMsg;
+ //If needed output the fact RM got a CB message for trace
+
+ PDEBUG__(("RM<==CB@rm_Main: got CB msg, msgTyp=%d,size=%d\n",
+ rm_pItcRxVbMsg->message_type,
+ rm_pItcRxVbMsg->size));
+
+ // Check if CBCH is on
+ if (!rm_ChanCbchActive)
+ {
+ //SMSCBTBD: CBCH is not active. Add alarm report here later !
+ IDEBUG__(("WARNING@rm_Main: CBCH is inactive, retry later!\n"));
+ goto L1;
+
+ }
+ rm_ProcSmscbcMsg();
+
+ rm_ItcRxPrimType = 0; //not applicable
+ rm_ItcRxMsgType = rm_pItcRxVbMsg->message_type; //message type
+
+ goto L1;
+
+ break;
+
+ default:
+ //Received msg is from unexpected source. Ignore it!
+ PDEBUG__(("INFO@rm_Main:unexpected msg origin=%d\n",
+ rm_ItcRxMsg.module_id));
+ goto L1;
+
+ } //inner switch(rm_ItcRxOrigin)
+
+ break;
+
+ } //outer switch(rm_ItcRxOrigin)
+
+ //Handle it!
+ rm_Despatch();
+
+ L1: continue;
+
+ } //while(RM_TRUE)
+
+ rmTaskObj.JCTaskNormExit();
+} //rm_Main()
+
+//extern int ta_HoldSdcch;
+//int ta_HoldFacch = 0;
+//int taHoldFacchOn(void);
+//int taHoldFacchOff(void);
+
+//int taHoldFacchOn(void)
+//{
+// ta_HoldSdcch = 1;
+// ta_HoldFacch = 1;
+// printf("[RM] HoldFacch Mode is now turned on.\n");
+//}
+
+//int taHoldFacchOff(void)
+//{
+// ta_HoldSdcch = 0;
+// ta_HoldFacch = 0;
+// printf("[RM] HoldFacch Mode is now turned off.\n");
+//}
+
+void rm_TurnOnRadioIfNeeded(void)
+{
+//G2
+return;
+#if 0
+
+ int i,j;
+
+ PDEBUG__(("INFO@rm_TurnOnRadioIfNeeded()\n"));
+
+ //Check if there is any usable traffic channels
+ if (!rm_NoOfUsableTchf)
+ {
+ //No tchfs available,nonsense!
+ rm_SetRmOpState(EC_RM_NOTCHFS_USABLE);
+ IDEBUG__(("WARNING@rm_Main:no tchf available\n"));
+ }
+
+ //Check if pic unit is working properly
+ //put here later!
+
+ //Logic for safety check to solve any inconsistency
+ if ( OAMrm_BTS_AMSTATE != unlocked ||
+ OAMrm_TRX_AMSTATE(0) != unlocked ||
+ OAMrm_CHN_AMSTATE(0,0) != unlocked )
+ {
+ rm_SetBtsAdminState(locked);
+ rm_ProcBtsAdminStateLocked();
+ } else
+ {
+ //Bts is unlocked, handle TRX admin states
+ for (i=0;i<OAMrm_MAX_TRXS;i++)
+ {
+ if (OAMrm_TRX_AMSTATE(i)!=unlocked)
+ {
+ rm_SetTrxAdminState(i,locked);
+ rm_ProcTrxAdminStateLocked(i);
+ } else
+ {
+ //TRX is unlocked, handle TS admin states
+ for (j=0;j<OAMrm_SLOTS_PER_TRX;j++)
+ {
+ if (OAMrm_CHN_AMSTATE(i,j) != unlocked)
+ {
+ rm_SetTrxSlotAdminState(i,j,locked);
+ rm_ProcTrxSlotAdminStateLocked(i,j);
+ }
+ }
+ }
+ }
+ }
+
+ //Turn on TRX power if needed
+ for (i=0;i<OAMrm_MAX_TRXS;i++)
+ {
+ if (OAMrm_TRX_AMSTATE(i)==unlocked &&
+ OAMrm_TRX_OPSTATE(i)==opStateEnabled)
+ {
+ //Turn on TRX radio transmission
+ rm_SendTuneSynthToTrx(i,1);
+ } else
+ {
+ //No tchfs available,nonsense!
+ rm_SetRmOpState(rm_TrxRadioOff[i]);
+ IDEBUG__(("WARNING@rm_TurnOnRadioIfNeeded:trx '%d' radio off\n", i));
+ }
+ }
+
+ for (i=0;i<OAMrm_MAX_TRXS;i++)
+ {
+ if (OAMrm_TRX_OPSTATE(i) == opStateEnabled)
+ break;
+ }
+ if (i>=OAMrm_MAX_TRXS)
+ {
+ //No trx is enabled,block whole VC
+ rm_SetRmOpState(EC_RM_NO_TRX_ENABLED);
+ IDEBUG__(("WARNING@rm_TurnOnRadioIfNeeded:no trx is enabled\n"));
+ }
+#endif //#if 0
+}
+
+void rm_MakeSureDspIsTicking(void)
+{
+
+//G2
+#if 0
+ u8 trx;
+
+ trx = rm_pItcRxL1Msg->l3_data.buffer[3];
+
+ //Check if DSP is still ticking or not
+ if (rm_pItcRxL1Msg->l3_data.buffer[4]==rm_TrxMgmt[trx].tdma1 &&
+ rm_pItcRxL1Msg->l3_data.buffer[5]==rm_TrxMgmt[trx].tdma2 &&
+ rm_pItcRxL1Msg->l3_data.buffer[6]==rm_TrxMgmt[trx].tdma3 &&
+ rm_pItcRxL1Msg->l3_data.buffer[7]==rm_TrxMgmt[trx].tdma4 )
+ {
+ //Not ticking any more, raise a critical alarm
+ rm_SetRmOpState(rm_DspNotTickingAnyMore[trx]);
+ } else
+ {
+ //Still ticking fine right now
+ rm_TrxMgmt[trx].tdma1 = rm_pItcRxL1Msg->l3_data.buffer[4];
+ rm_TrxMgmt[trx].tdma2 = rm_pItcRxL1Msg->l3_data.buffer[5];
+ rm_TrxMgmt[trx].tdma3 = rm_pItcRxL1Msg->l3_data.buffer[6];
+ rm_TrxMgmt[trx].tdma4 = rm_pItcRxL1Msg->l3_data.buffer[7];
+ }
+#endif //#if 0
+}
+
+//PR 1323 SMSCBC, shedule message, 6/29
+bool JcMsgSendToSmscbc(InterTxCbcCbMsg_t *msg);
+
+void rm_VcToVbUpNotification(void)
+{
+ InterTxCbcCbMsg_t vcUp;
+ long int vbIpAddress, vcIpAddress;
+
+ RMDBG_ENTER(("rm_VcToVbUpNotification", RM_LAYER));
+ // DBG_ENTER();
+
+ if (STATUS_OK!=oam_getMibIntVar(MIB_h323_GKIPAddress, &vbIpAddress))
+ {
+ EDEBUG__(("RM_MAIN: VB IP address not available\n"));
+ return;
+ }
+
+ vcIpAddress = inet_addr(GetViperCellIpAddress());
+
+ vcUp.msgType = INTER_SMSCBC_VC_UP;
+
+ //vcUp.origVcId = (short) vcId;
+ vcUp.origVcAddress = vcIpAddress;
+ vcUp.origModuleId = MODULE_RM;
+ vcUp.origSubId = 0;
+
+ //vcUp.destVcId = 0;
+ vcUp.destVcAddress = vbIpAddress;
+ vcUp.destModuleId = MODULE_SMSCBC;
+ vcUp.destSubId = 0;
+ vcUp.message_id = 0;
+ JcMsgSendToSmscbc(&vcUp);
+}
+
+void rm_InitCb(void)
+{
+ PDEBUG__(("ENTER@rm_InitCb(): cb control setting=(%d)\n", OAMrm_CBCH_OPSTATE));
+
+ OAMrm_CBCH_OPSTATE = OAMrm_CB_FEATURE_SETTING;
+ if ( (OAMrm_CBCH_OPSTATE) && (rm_pCbchChan->usable==RM_PHYCHAN_USABLE) )
+ {
+ rm_pCbchChan->usable = RM_PHYCHAN_CBCH_USABLE;
+ rm_ActivateCbchChan();
+ rm_WaitForCbchChanActAck();
+ }
+
+ rm_ChanCbchActive = true;
+ rm_BroadcastNilCbMsg();
+ rm_VcToVbUpNotification();
+}
+
+void rm_WaitForCbchChanActAck(void)
+{
+ int waitAck, result;
+
+ PDEBUG__(("ENTER@rm_WaitForCbchChanActAck: cb control setting=(%d)\n", OAMrm_CBCH_OPSTATE));
+
+ waitAck=true;
+
+ while(waitAck)
+ {
+ //Read a msg from queue or pend on arrival of message
+ if (ERROR == (result=rm_msgQReceive(rm_MsgQId, (s8 *)&rm_ItcRxMsg,
+ sizeof(rm_ItcRxMsg_t), WAIT_FOREVER)))
+ {
+ //Error in reading VxWork msg queue. Ignore msg!
+ rm_SetRmOpState(EC_RM_OS_CALL_MSGQRECEIVE_FAILED);
+ EDEBUG__(("ERROR@rm_WaitForCbchChanActAck:VxWorks Q. read errno(%d)\n", errno));
+ printf("ERROR@rm_WaitForCbchChanActAck:VxWorks Q. read errno(%d)\n", errno);
+ assert(0);
+ }
+
+ rm_pItcRxL1Msg = (rm_ItcRxL1Msg_t*) &rm_ItcRxMsg;
+
+ if ( (rm_pItcRxL1Msg->module_id==MODULE_L1) &&
+ (RM_L1MSGCMP(RM_L1MG_DEDMGMT,RM_L1MT_CHANACTIVACK_MSB,RM_L1MT_CHANACTIVACK_LSB)) )
+ waitAck=false;
+ else
+ if (rm_DbgDump) BYDUMP__(( (u8*)&rm_ItcRxMsg, result));
+ }
+}
+
+#endif //__RM_MAIN_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_msgQReceive.cpp b/data/mnet/GP10/Host/rm/Src/rm_msgQReceive.cpp
new file mode 100644
index 0000000..1518df5
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_msgQReceive.cpp
@@ -0,0 +1,24 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_MSGQRECEIVE_CPP__
+#define __RM_MSGQRECEIVE_CPP__
+
+#include "rm\rm_head.h"
+
+int rm_msgQReceive(MSG_Q_ID QId, s8 *pRxMsg, unsigned int len, int flag)
+{
+ int result;
+ T_CNI_RIL3MD_RRM_MSG *pRmMsg;
+
+ result = msgQReceive(QId, pRxMsg, len, flag);
+
+ return result;
+}
+
+#endif /* __RM_MSGQRECEIVE_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src/rm_oamif.cpp b/data/mnet/GP10/Host/rm/Src/rm_oamif.cpp
new file mode 100644
index 0000000..01d6fdd
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_oamif.cpp
@@ -0,0 +1,65 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+ #ifndef __RM_OAMIF_CPP__
+ #define __RM_OAMIF_CPP__
+
+ #include "rm\rm_head.h"
+
+ //MODNEED
+ //rm_OamData_t rm_OamData; moved to sys_init.cpp
+ //JcVipercellId_t oam_AdjacentCellId[32]=
+ // { {0,1},{0,2},
+ // {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},
+ // {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},
+ // {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}
+ // }; //Retrieve in terms of index co-referred by both DSP & RRM
+
+ u8 oam_CellReselectOffset=0;
+ u8 oam_TemporaryOffset=0;
+ u8 oam_PenaltyTime=0;
+
+ u8 oam_gsmCodec = 1; //0x01-FR, 0x21-EFR, 0x41-superEFR
+ u8 oam_BcchTrx=0;
+ u16 oam_TrxTuneSynthSetting[2][2];
+
+ //AlarmAdded
+ int rm_OpState;
+ int rm_NoOfUsableTchf;
+ int rm_nbrOfAvailableSDCCHs;
+ int rm_nbrOfAvailableSDCCH8s;
+ #define TOTAL_AVAIL_SDCCHs rm_nbrOfAvailableSDCCHs + rm_nbrOfAvailableSDCCH8s
+ int rm_maxNbrOfBusyTCHs;
+ int rm_maxNbrOfBusySDCCHs;
+ int rm_maxNbrOfBusySDCCH8s;
+ #define TOTAL_MAX_BUSY_SDCCHs rm_maxNbrOfBusySDCCHs + rm_maxNbrOfBusySDCCH8s
+ rm_TrxMgmt_t rm_TrxMgmt[OAMrm_MAX_TRXS];
+ int rm_LiveSglCfg=RM_FALSE;
+
+ //AMADDED
+ T_CNI_RIL3_CELL_BARRED_ACCESS rm_CellBarred;
+ AdministrativeState rm_AmState00;
+ int rm_VcIsBarred;
+
+ //PMADDED
+ int rm_NoOfBusySdcch4;
+ int rm_NoOfBusySdcch8;
+ #define NUM_BUSY_SDCCHs rm_NoOfBusySdcch4 + rm_NoOfBusySdcch8
+ int rm_NoOfBusyTchf;
+ int rm_NoOfIdleTchf;
+ rm_AllChanAvailable_t rm_AllAvailableTchf;
+ rm_AllChanAvailable_t rm_AllAvailableSdcch4;
+ rm_AllChanAvailable_t rm_AllAvailableSdcch8;
+
+ //SMSCBAdded
+ u16 oam_phTrxSelectBit[2]= {0x0000,0x4000}; //b14
+ u16 oam_phTrxSynthSelectBit[2] = {0x0000,0x8000}; //b15
+ u16 oam_phTrxHoppingSelectBit[2] = {0x0000,0x2000}; //b13
+ u16 oam_phTrxPwrSelectBit[2] = {0x0000,0x1000}; //b12
+
+ #endif //__RM_OAMIF_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src/rm_smscb.cpp b/data/mnet/GP10/Host/rm/Src/rm_smscb.cpp
new file mode 100644
index 0000000..1336dd6
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src/rm_smscb.cpp
@@ -0,0 +1,249 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_SMSCB_CPP__
+#define __RM_SMSCB_CPP__
+
+#include "rm\rm_head.h"
+
+void rm_ProcSmscbcMsg(void)
+{
+ u16 size;
+
+ //Block CBCH broadcast if needed
+ if (rm_pCbchChan->amState!=unlocked)
+ {
+ //Stop CBCH by sending a NULL
+ IDEBUG__(("WARNING@rm_ProcSmscbcMsg: CBCH amState=%d\n",rm_pCbchChan->amState));
+ rm_SmscbcMsg.morPage=RM_FALSE;
+ rm_BroadcastNilCbMsg();
+ return;
+ }
+
+ size = rm_pItcRxVbMsg->size;
+
+ switch (rm_pItcRxVbMsg->message_type)
+ {
+ case INTER_SMSCBC_CB_START: //add message
+
+ // If received CB proper or reject!
+ if (size > INTER_CBC_CB_MAX_DAT_LEN)
+ {
+ IDEBUG__(("WARNING@rm_ProcSmscbcMsg: invalid CB msg size: %d\n",
+ rm_pItcRxVbMsg->size));
+ return;
+ }
+ // instant message,6/29
+ // memcpy(&rm_SmscbcMsg.data, rm_pItcRxVbMsg->data, size);
+ //rm_SmscbcMsg.totPage = size/88;
+ // if (size%88) rm_SmscbcMsg.totPage++;
+ // rm_SmscbcMsg.curPage = 1; //Cur CB msg page to send
+
+ //Broadcast the first page of a new cb msg
+ //rm_BroadcastNewCbMsg(rm_SmscbcMsg.curPage);
+ //if ((++rm_SmscbcMsg.curPage)>rm_SmscbcMsg.totPage)
+ rm_SmscbcMsg.curPage = 1;
+ //if (rm_SmscbcMsg.totPage>1)
+ // rm_SmscbcMsg.morPage = RM_TRUE;
+ //else
+ // rm_SmscbcMsg.morPage = RM_FALSE;
+
+ //PR 1323,shedule message, add/delete message to table
+ int match,i;
+ match=0;
+ i=0;
+ while(i<SmsCbc_TableRow_MAX && rm_CbMsgTable.table[i].state != 0)
+ {
+ if(rm_pItcRxVbMsg->message_id == rm_CbMsgTable.table[i].msgId)//msg exist
+ {
+ match=1;
+ memcpy(rm_CbMsgTable.table[i].msg, rm_pItcRxVbMsg->data, size);
+ rm_CbMsgTable.table[i].state = 1;
+ rm_CbMsgTable.table[i].size = size;
+ rm_CbMsgTable.table[i].totPage = rm_CbMsgTable.table[i].size/88;
+ if (rm_CbMsgTable.table[i].size % 88)
+ rm_CbMsgTable.table[i].totPage++;
+ rm_CbMsgTable.table[i].curPageInCurMsg=1;
+
+ break;
+ }
+ ++i;
+ }
+
+ if(match == 0 && i< SmsCbc_TableRow_MAX )//msg not exist or table empty
+ {
+
+ rm_CbMsgTable.table[i].state = 1;
+ memcpy(rm_CbMsgTable.table[i].msg, rm_pItcRxVbMsg->data, size);
+ rm_CbMsgTable.table[i].msgId = rm_pItcRxVbMsg->message_id;
+ rm_CbMsgTable.table[i].size = size;
+ rm_CbMsgTable.table[i].totPage = rm_CbMsgTable.table[i].size/88;
+ if (rm_CbMsgTable.table[i].size % 88)
+ rm_CbMsgTable.table[i].totPage++;
+ rm_CbMsgTable.table[i].curPageInCurMsg=1;
+
+ }
+ else if(match == 0 && i >= SmsCbc_TableRow_MAX )
+ {
+ IDEBUG__(("WARNING@rm_ProcSmscbcMsg: Table overflow"));
+ }
+ break;
+
+ case INTER_SMSCBC_CB_STOP://delete message
+ for(i = 0; i< SmsCbc_TableRow_MAX && rm_CbMsgTable.table[i].state != 0; ++i)
+ {
+ if(rm_pItcRxVbMsg->message_id == rm_CbMsgTable.table[i].msgId)
+ {
+ rm_CbMsgTable.table[i].state = -1;
+ break;
+ }
+
+ }
+ if(i >= SmsCbc_TableRow_MAX || rm_CbMsgTable.table[i].state == 0)
+ {
+ IDEBUG__(("WARNING@rm_ProcSmscbcMsg: invalid msgType=%d\n",
+ rm_pItcRxVbMsg->message_type));
+ }
+ break;
+ //PR 1323 end
+
+ default:
+ IDEBUG__(("WARNING@rm_ProcSmscbcMsg: invalid msgType=%d\n",
+ rm_pItcRxVbMsg->message_type));
+ break;
+ }
+}
+
+void rm_BroadcastNewCbMsg(u8 page)
+{
+ rm_PassDownBlock(0, 0x20, page, RM_FALSE); //Pass down 1st block
+ rm_PassDownBlock(1, 0x20, page, RM_FALSE); //Pass down 2nd block
+ rm_PassDownBlock(2, 0x20, page, RM_FALSE); //Pass down 3rd block
+ rm_PassDownBlock(3, 0x30, page, RM_FALSE); //Pass down 4th block
+}
+
+void rm_BroadcastNilCbMsg(void)
+{
+ rm_PassDownBlock(0, 0x20, 0, RM_TRUE); //Pass down 1st block
+ rm_PassDownBlock(1, 0x20, 0, RM_TRUE); //Pass down 2nd block
+ rm_PassDownBlock(2, 0x20, 0, RM_TRUE); //Pass down 3rd block
+ rm_PassDownBlock(3, 0x30, 0, RM_TRUE); //Pass down 4th block
+}
+
+void rm_PassDownBlock(u8 blockSeq, u8 blockType, u8 curMsg, u8 nullFlag)
+{
+
+ int length,i,j,k;
+ u8 buffer[60];
+
+ curMsg = rm_CbMsgTable.curMsg;
+ PDEBUG__(("INFO@rm_PassDownBlock: CB block (seq=%d,type=%d,curMsg=%d,curPage=%d,flg=%d)\n",
+ blockSeq, blockType, rm_CbMsgTable.curMsg,
+ rm_CbMsgTable.table[curMsg].curPageInCurMsg,
+ nullFlag));
+
+ //Pass down one SMS-CB block to L1Proxy
+ length = 4;
+ buffer[length++] = RM_L1MG_LNKMGMT;
+ buffer[length++] = RM_L1MT_PHDATAREQ_MSB;
+ buffer[length++] = RM_L1MT_PHDATAREQ_LSB;
+ buffer[length++] = 0; //alwasys to trx 0
+ buffer[length++] = RM_L1CBCH_CHANNUMBER_MSB; //CBCH:0xa0
+ buffer[length++] = 0;
+ buffer[length++] = blockSeq; //block sequence
+ //memset(&buffer[length], 0, 23);
+ if (nullFlag)
+ {
+ buffer[length++] = blockType|0x0F;
+ memset(&buffer[length], 0x2b, 22);
+ } else
+ {
+ buffer[length++] = blockType|blockSeq;
+ //PR 1323
+ memcpy(&buffer[length], &(rm_CbMsgTable.table[curMsg].msg[
+ (rm_CbMsgTable.table[curMsg].curPageInCurMsg-1)*88 + blockSeq*22]), 22);
+
+ //memcpy(&buffer[length], &(rm_SmscbcMsg.data[(page-1)*88+blockSeq*22]), 22);
+ }
+
+ //Fill length to the 1st four bytes in little endian format
+ length = length + 22;
+ buffer[0] = (unsigned char)length;
+ buffer[1] = (unsigned char)(length>>8);
+ buffer[2] = (unsigned char)(length>>16);
+ buffer[3] = (unsigned char)(length>>24);
+
+ //calling l1proxy func
+ sendDsp(buffer, length);
+}
+
+void rm_ActivateCbchChan(void)
+{
+ rm_ItcTxMsg_t msgToL1;
+ u16 length;
+
+ PDEBUG__(("INFO@rm_ActivateCbchChan: activate CBCH channel\n"));
+
+ //Reset rm_SmscbcMsg ctrl struct
+ rm_SmscbcMsg.totPage = 0;
+ rm_SmscbcMsg.curPage = 0;
+ rm_SmscbcMsg.morPage = RM_FALSE;
+
+ length = 0;
+ msgToL1.buffer[length++] = RM_L1MG_DEDMGMT;
+ msgToL1.buffer[length++] = RM_L1MT_CHANACTIV_MSB;
+ msgToL1.buffer[length++] = RM_L1MT_CHANACTIV_LSB;
+ msgToL1.buffer[length++] = rm_pCbchChan->trxNumber;
+ msgToL1.buffer[length++] = rm_pCbchChan->chanNumberMSB;
+ msgToL1.buffer[length++] = rm_pCbchChan->chanNumberLSB;
+ msgToL1.buffer[length++] = RM_L1ACTTYPE_CBCH; //actType
+ msgToL1.buffer[length++] = RM_L1DTXCTRL_D0U0; //dtxCtrl
+ msgToL1.buffer[length++] = RM_L1DATATTR_SIGNALING; //datAttr
+ msgToL1.buffer[length++] = RM_L1RATTYPE_SDCCH; //ratType
+ msgToL1.buffer[length++] = RM_L1CODALGO_NORES; //no algo
+ msgToL1.buffer[length++] = RM_L1CIPHTYPE_NCIPH; //ciphSet
+ RM_MEMSET(&msgToL1.buffer[length], RM_L1CIPHKEY_LEN); //ciphKey
+ length = length + RM_L1CIPHKEY_LEN - 1; //TEMP Adjustment
+ msgToL1.buffer[length++] = 0;
+ msgToL1.buffer[length++] = 0;
+ msgToL1.buffer[length++] = 0;
+ msgToL1.buffer[length++] = 0;
+ msgToL1.buffer[length++] = 0;
+ msgToL1.msgLength = length;
+
+ api_SendMsgFromRmToL1(msgToL1.msgLength, msgToL1.buffer);
+}
+
+//PR 1323
+intg_ShowCbTable(void)
+{
+ printf ("========= Listing Items in CB Table (Current Msg %d)=========\n",
+ rm_CbMsgTable.curMsg);
+
+ for (int i=0;i<SmsCbc_TableRow_MAX;i++)
+ {
+ if (rm_CbMsgTable.table[i].state==1)
+ printf("%d-Active: msgId(%d,%d), msgSize=%d, totPage=%d, curPage=%d\n",
+ rm_CbMsgTable.table[i].state,
+ rm_CbMsgTable.table[i].msgId,
+ rm_CbMsgTable.table[i].msg[3],
+ rm_CbMsgTable.table[i].size,
+ rm_CbMsgTable.table[i].totPage,
+ rm_CbMsgTable.table[i].curPageInCurMsg);
+ else if (rm_CbMsgTable.table[i].state== -1 )
+ printf("%d-InActive: msgId(%d,%d), msgSize=%d, totPage=%d, curPage=%d\n",
+ rm_CbMsgTable.table[i].state,
+ rm_CbMsgTable.table[i].msgId,
+ rm_CbMsgTable.table[i].msg[3],
+ rm_CbMsgTable.table[i].size,
+ rm_CbMsgTable.table[i].totPage,
+ rm_CbMsgTable.table[i].curPageInCurMsg);
+ }
+}
+
+#endif //__RM_SMSCB_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src_api/Makefile b/data/mnet/GP10/Host/rm/Src_api/Makefile
new file mode 100644
index 0000000..03513ca
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src_api/Makefile
@@ -0,0 +1,52 @@
+##########################################################
+#
+# (c) Copyright Cisco 2000
+# All Rights Reserved
+#
+##########################################################
+
+# TOP_OF_VOB must be defined before including l3defs.mk
+TOP_OF_VOB = ..\..\..
+
+# These Must be Properly Defined
+THIS_APP_DIR = rm
+THIS_DIRECTORY = Src_api
+MY_OUTPUT = $(OBJDIR)\rm_api.out
+
+# Name(s) of Common VOB directories to include
+COMMON_BLD_DIR =
+
+include $(TOP_OF_VOB)\l3defs.mk
+
+all: makeCommonObjs $(MY_OUTPUT)
+
+# Adds the .o file(s) list needed from the Common VOB
+makeCommonObjs:
+ifneq ($(COMMON_BLD_DIR),)
+ @for %f in ($(COMMON_BLD_DIR)) do \
+ make -C $(COMMON_VOB_APP_DIR)\%f \
+ all VOB=$(VOBNAME) APPDIR=Host\$(THIS_APP_DIR)\$(THIS_DIRECTORY)
+endif
+
+# If Common VOB directories to include get the .o files from bin
+$(MY_OUTPUT): $(MODULE_OBJS)
+ifneq ($(COMMON_BLD_DIR),)
+ $(LD) -r -o $@.tmp $() $(MODULE_OBJS) $(wildcard ./bin/*.o)
+else
+ $(LD) -r -o $@.tmp $() $(MODULE_OBJS)
+endif
+ $(NM) $@.tmp | munch > _ctdt.c
+ $(CC) -traditional $(CC_ARCH_SPEC) -c _ctdt.c
+ $(LD) -r -o $@ _ctdt.o $@.tmp
+ $(RM)$(subst /,$(DIRCHAR), _ctdt.c _ctdt.o $@.tmp)
+
+cleanall:
+ @for %f in ($(notdir $(MODULE_OBJS))) do \
+ $(RM) ..\bin\%f
+
+ $(RM) $(MY_OUTPUT)
+
+ifneq ($(COMMON_BLD_DIR),)
+ $(RM) bin\*.o
+ $(RM) bin\*.out
+endif \ No newline at end of file
diff --git a/data/mnet/GP10/Host/rm/Src_api/api_SendMsgFromRmToCc.cpp b/data/mnet/GP10/Host/rm/Src_api/api_SendMsgFromRmToCc.cpp
new file mode 100644
index 0000000..2e7c90a
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src_api/api_SendMsgFromRmToCc.cpp
@@ -0,0 +1,48 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+ */
+
+#ifndef __API_SENDMSGFROMRMTOCC_CPP__
+#define __API_SENDMSGFROMRMTOCC_CPP__
+
+#include "rm\rm_head.h"
+
+void api_SendMsgFromRmToCc (
+ MSG_Q_ID QId,
+ unsigned short length,
+ unsigned char *msg
+ )
+{
+ STATUS result;
+
+// TDUMP__(( TXMSG__, (unsigned char *)msg,length ));
+
+ result = msgQSend(
+ QId,
+ (char *) msg,
+ length,
+ NO_WAIT,
+ MSG_PRI_NORMAL
+ );
+
+ if ( result==ERROR )
+ EDEBUG__(("ERROR-api_SendMsgFromRmToMm:VxWorks sending error:%d\n",
+ errno));
+
+rm_ItcTxL3Msg_t *pCcMsg;
+pCcMsg = (rm_ItcTxL3Msg_t *)msg;
+
+PDEBUG__(("RM sends MSG to CC: ccQId:%d, moduleID:%d, entryId:%d, prim:%d,msgType:%d\n",
+ QId,
+ pCcMsg->module_id,
+ pCcMsg->entry_id,
+ pCcMsg->primitive_type,
+ pCcMsg->message_type));
+}
+
+#endif /* __API_SENDMSGFROMRMTOCC_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src_api/api_SendMsgFromRmToMm.cpp b/data/mnet/GP10/Host/rm/Src_api/api_SendMsgFromRmToMm.cpp
new file mode 100644
index 0000000..4c44910
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src_api/api_SendMsgFromRmToMm.cpp
@@ -0,0 +1,46 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+ */
+
+#ifndef __API_SENDMSGFROMRMTOMM_CPP__
+#define __API_SENDMSGFROMRMTOMM_CPP__
+
+#include "rm\rm_head.h"
+
+void api_SendMsgFromRmToMm (
+ unsigned short length,
+ unsigned char *msg
+ )
+{
+ STATUS result;
+
+// TDUMP__(( TXMSG__, (unsigned char *)msg,length ));
+
+ result = msgQSend(
+ mmMsgQId,
+ (char *) msg,
+ length,
+ NO_WAIT,
+ MSG_PRI_NORMAL
+ );
+
+ if ( result==ERROR )
+ EDEBUG__(("ERROR-api_SendMsgFromRmToMm:VxWorks sending error:%d\n",
+ errno));
+
+rm_ItcTxL3Msg_t *pMmMsg;
+pMmMsg = (rm_ItcTxL3Msg_t *)msg;
+
+PDEBUG__(("RM sends MSG to MM: moduleID:%d, entryId:%d, prim:%d,msgType:%d\n",
+ pMmMsg->module_id,
+ pMmMsg->entry_id,
+ pMmMsg->primitive_type,
+ pMmMsg->message_type));
+}
+
+#endif /* __API_SENDMSGFROMRMTOMM_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src_api/l1rm_intf.cpp b/data/mnet/GP10/Host/rm/Src_api/l1rm_intf.cpp
new file mode 100644
index 0000000..38fc6da
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src_api/l1rm_intf.cpp
@@ -0,0 +1,115 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+ */
+
+#ifndef __L1RM_INTF_CPP__
+#define __L1RM_INTF_CPP__
+
+#include "rm\rml1_intf.h"
+
+void sendDsp ( unsigned char *buffer, int len );
+
+void api_SendMsgFromL1ToRm(unsigned short length, unsigned char* msg)
+{
+ STATUS result;
+ rml1_Msg_t l1ToRmMsg;
+
+ //Safeguard only <TBD>
+ if (msg[3]>=2 || length<4)
+ { //Received invalid L1 message, ignore it !
+ EDEBUG__(("ERROR@api_SendMsgFromL1ToRm: L1 msg err (%d,%d)\n",
+ msg[3],length));
+ return;
+ }
+
+ l1ToRmMsg.module_id = MODULE_L1;
+ l1ToRmMsg.primitive_type = MPH_INFO_IND;
+ l1ToRmMsg.l3_data.msgLength = length;
+ memcpy(l1ToRmMsg.l3_data.buffer, msg, length);
+
+// TDUMP__(( RXMSG__, (unsigned char *)&l1ToRmMsg,
+// (sizeof(rml1_Msg_t)-L1RM_MAXMSG_LEN+length) ));
+
+ result = msgQSend(
+ rm_MsgQId,
+ (char *) &l1ToRmMsg,
+ (sizeof(rml1_Msg_t)-L1RM_MAXMSG_LEN + length),
+ NO_WAIT,
+ MSG_PRI_NORMAL
+ );
+ if ( result==ERROR )
+ printf("ERROR-api_SendMsgFromL1ToRm: VxWorks sending error:%d\n",
+ errno);
+
+}
+
+void api_SendMsgFromRmToL1 (
+ unsigned short length,
+ unsigned char *msg
+ )
+
+{
+ STATUS result;
+
+ typedef struct {
+ unsigned char module_id;
+ unsigned char primitive_type;
+ struct {
+ int msgLength;
+ unsigned char buffer[L1RM_MAXMSG_LEN];
+ } l3_data;
+ } rmToL1Msg_t;
+
+ rmToL1Msg_t rmToL1Msg;
+
+// rmToL1Msg.module_id = MODULE_RM;
+// rmToL1Msg.primitive_type = MPH_INFO_REQ;
+
+// Byte-by-byte assignment to guarantee little-endian format
+// rmToL1Msg.l3_data.msgLength = (int) length;
+ unsigned char *pDes;
+ int len;
+ pDes = (unsigned char*) &(rmToL1Msg.l3_data.msgLength);
+ len = (int) length;
+ *pDes++ = (unsigned char) len;
+ *pDes++ = (unsigned char) (len>>8);
+ *pDes++ = (unsigned char) (len>>16);
+ *pDes = (unsigned char) (len>>24);
+
+ memcpy(rmToL1Msg.l3_data.buffer, msg, length);
+
+// TDUMP__(( TXMSG__, (unsigned char *) &rmToL1Msg,
+// (sizeof(rmToL1Msg_t)-L1RM_MAXMSG_LEN+length) ));
+//
+// result = msgQSend(
+// l1_MsgQId,
+// (char *) &rmToL1Msg,
+// (sizeof(rmToL1Msg_t)-L1RM_MAXMSG_LEN+length),
+// NO_WAIT,
+// MSG_PRI_NORMAL
+// );
+//
+// result = msgQSend(
+// l1_MsgQId,
+// (char *) &(rmToL1Msg.l3_data),
+// (length + 4),
+// NO_WAIT,
+// MSG_PRI_NORMAL
+// );
+
+// TDUMP__(( TXMSG__, (unsigned char *) &(rmToL1Msg.l3_data),(length+4)));
+
+ sendDsp((unsigned char*)&(rmToL1Msg.l3_data), (length+4));
+
+// if ( result==ERROR )
+// EDEBUG__(("ERROR-api_SendMsgFromRmToL1: VxWorks sending error:%d\n",
+// errno));
+
+}
+
+#endif /* __L1RM_INTF_CPP__ */
diff --git a/data/mnet/GP10/Host/rm/Src_api/rm_EntryIdVsTrxSlot.cpp b/data/mnet/GP10/Host/rm/Src_api/rm_EntryIdVsTrxSlot.cpp
new file mode 100644
index 0000000..809f368
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src_api/rm_EntryIdVsTrxSlot.cpp
@@ -0,0 +1,296 @@
+/*
+*******************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+******************************************************************
+ */
+
+#ifndef __RM_ENTRYIDVSTRXSLOT_CPP__
+#define __RM_ENTRYIDVSTRXSLOT_CPP__
+
+#include "rm\rm_head.h"
+
+u8 rm_EntryIdToTrxSlot(T_CNI_IRT_ID entryId, u16 *gsmHandler)
+{
+ u8 trx, slot;
+
+
+// if (rm_SmCtxt[entryId].pPhyChan->usable != RM_PHYCHAN_USABLE)
+// {
+// EDEBUG__(("ERROR-rm_EntryIdToTchTrxSlot:entryId=%d related chan unusable\n",
+// entryId));
+// return RM_FALSE;
+// } else
+ if (rm_SmCtxt[entryId].pPhyChan->chanType == RM_PHYCHAN_TCHF_S)
+ {
+ trx = rm_SmCtxt[entryId].pPhyChan->trxNumber;
+ slot = (rm_SmCtxt[entryId].pPhyChan->chanNumberMSB)&0x07;
+
+ if ( trx>2 || (trx==0&&slot==0) || slot>7 )
+ {
+ EDEBUG__(("ERROR-rm_EntryIdToTchTrxSlot:
+ entryId=%d not related to a usable chan\n", entryId));
+ return RM_FALSE;
+ }
+ *gsmHandler = (u16)((trx<<8)|slot);
+ } else
+ {
+ EDEBUG__(("ERROR-rm_EntryIdToTchTrxSlot: entryId=%d is not TCH/F\n",
+ entryId));
+ return RM_FALSE;
+ }
+
+ return RM_TRUE;
+}
+
+u8 rm_TrxSlotToEntryId(u16 gsmHandler, T_CNI_IRT_ID *entryId)
+{
+ u8 trx, slot, idx;
+
+ trx = (u8)(gsmHandler>>8);
+ slot = (u8)(gsmHandler);
+
+ //TCHF chan assumed here
+ idx = RM_TCHF_ENTRYIDX(trx, slot);
+ *entryId = rm_TchfEntryId[idx];
+
+ if (*entryId==0)
+ printf("{\nRM WARNING!!!\n: failed to get entryId for (trx=%d,slot=%d,gsmhandler=%x,index=%d)\n}\n",
+ trx,slot,gsmHandler,idx);
+
+ return RM_TRUE;
+}
+
+u8 rm_CodecMatch(u16 gsmHandler, u8 codec)
+{
+ u8 spchVer;
+
+ T_CNI_IRT_ID entryId;
+
+ rm_TrxSlotToEntryId(gsmHandler, &entryId);
+
+ if (rm_SmCtxt[entryId].smType != RM_MAIN_SM)
+ {
+ //Speech frame is always associated main SM
+ EDEBUG__(("ERROR@rm_CodecMatch: entryId '%d' is not assoc with main SM\n",
+ entryId));
+ return RM_FALSE;
+ }
+
+ //Convert codec to internal speech codec value
+ codec = 0xF0&codec;
+ spchVer = 0xff;
+
+ if (codec == 0xD0)
+ spchVer = 1;
+ else if (codec == 0xC0)
+ spchVer = 0x21;
+ else
+ {
+ //Speech frame is always associated main SM
+ EDEBUG__(("ERROR@rm_CodecMatch: invalid codec value '%d'\n", codec));
+ return RM_FALSE;
+ }
+
+ if (rm_SmCtxt[entryId].codAlgo != spchVer)
+ {
+ IDEBUG__(("WARNING@rm_CodecMatch: codec mismatch (dsp %x, rm %d) (entryId %d, port %x)\n",
+ codec, rm_SmCtxt[entryId].codAlgo, entryId, gsmHandler));
+ return RM_FALSE;
+ }
+
+ return RM_TRUE;
+}
+
+//Check if given trx blocked
+u8 rm_TrxIsNotBlocked(u8 trx)
+{
+ return ((u8)(OAMrm_TRX_AMSTATE(trx)));
+}
+
+
+T_CNI_LAPDM_OID rm_GetOid (T_CNI_IRT_ID entryId, T_CNI_LAPDM_SAPI sapi)
+{
+ PDEBUG__(("INFO@rm_GetOid: entryId %d, sapi %d, mEntryId %d, aEntryId %d, chanType %d\n",
+ entryId, sapi, rm_SmCtxt[entryId].mEntryId, rm_SmCtxt[entryId].aEntryId,
+ rm_SmCtxt[entryId].chanType));
+
+ switch(sapi)
+ {
+ case RM_SAPI0:
+ if ( entryId==rm_SmCtxt[entryId].mEntryId )
+ return (rm_SmCtxt[entryId].mOId);
+ break;
+
+ case RM_SAPI3:
+ if (entryId==rm_SmCtxt[entryId].mEntryId)
+ {
+ if (rm_SmCtxt[entryId].chanType==RM_CTFACCH_F)
+ return (rm_SmCtxt[entryId].aOId);
+ else if (rm_SmCtxt[entryId].chanType==RM_PHYCHAN_SDCCH4)
+ return (rm_SmCtxt[entryId].mOId);
+ else
+ return CNI_LAPDM_NULL_OID;
+ }
+ break;
+ }
+
+ return CNI_LAPDM_NULL_OID;
+}
+
+T_CNI_IRT_ID rm_GetSacchEntryId (T_CNI_IRT_ID entryId)
+{
+ if (entryId==rm_SmCtxt[entryId].mEntryId)
+ return (rm_SmCtxt[entryId].aEntryId);
+ else
+ return CNI_IRT_NULL_ID;
+}
+
+int rm_IsChanAvailable(T_CNI_RIL3_CHANNEL_TYPE chan)
+{
+ switch(chan)
+ {
+ case CNI_RIL3_TCH_ACCH_FULL:
+ if (RM_SMCTXT_NULL==rm_PreAllocSmCtxt(RM_PHYCHAN_TCHF_S))
+ return RM_FALSE;
+ break;
+
+ case CNI_RIL3_SDCCH_ACCH_4orCBCH:
+ if (RM_SMCTXT_NULL==rm_PreAllocSmCtxt(RM_PHYCHAN_SDCCH4))
+ return RM_FALSE;
+ break;
+
+ case CNI_RIL3_SDCCH_ACCH_8orCBCH:
+ default:
+ IDEBUG__(("WARNING@rm_IsChanAvailable: chanType requested %d\n",
+ chan));
+ return RM_FALSE;
+ }
+
+ return RM_TRUE;
+}
+
+rm_SmCtxt_t *rm_PreAllocSmCtxt(u8 chanType)
+{
+ int i;
+
+ switch (chanType)
+ {
+ case RM_PHYCHAN_TCHF_S:
+
+ for (i=0; i<OAMrm_MAX_TCHFS; i++)
+ {
+ //Check if the concerned radio TS is blocked/shutting down
+ if ( rm_PhyChanTchf[i].amState == unlocked &&
+ rm_PhyChanTchf[i].opState == opStateEnabled &&
+ rm_PhyChanTchf[i].usable == RM_PHYCHAN_USABLE &&
+ rm_PhyChanTchf[i].state == RM_PHYCHAN_FREE )
+ break;
+ }
+
+ if ( i >= OAMrm_MAX_TCHFS )
+ return RM_SMCTXT_NULL;
+ else
+ return rm_PhyChanTchf[i].pMSmCtxt;
+
+ break;
+
+ case RM_PHYCHAN_SDCCH4:
+
+ for (i=0; i<OAMrm_MAX_SDCCH4S; i++)
+ {
+ if ( rm_PhyChanSdcch4[i].amState == unlocked &&
+ rm_PhyChanSdcch4[i].opState == opStateEnabled &&
+ rm_PhyChanSdcch4[i].usable == RM_PHYCHAN_USABLE &&
+ rm_PhyChanSdcch4[i].state == RM_PHYCHAN_FREE )
+ break;
+ }
+
+ if ( i >= OAMrm_MAX_SDCCH4S )
+ return RM_SMCTXT_NULL;
+ else
+ return rm_PhyChanSdcch4[i].pMSmCtxt;
+
+ break;
+
+ default:
+
+ EDEBUG__(( "ERROR-rm_PreAllocSmCtxt: unsupported chan type:%d\n",
+ chanType ));
+
+ return RM_SMCTXT_NULL;
+
+ break;
+
+ }
+}
+
+
+short rm_DecideCipherAlgo(
+ T_CNI_RIL3_IE_CIPHER_MODE_SETTING *setting,
+ T_CNI_RIL3_IE_MS_CLASSMARK_2 *classmark2)
+{
+ short algo = 0;
+ setting->ciphering = CNI_RIl3_CIPHER_START_CIPHERING;
+
+ PDEBUG__(("INFO@rm_DecideCipherAlgodspCiphCap(%x)\n", rm_DspCiphCap));
+
+ if ( !classmark2->a51 && RM_DSPA51(rm_DspCiphCap) )
+ {
+ algo = 1;
+ setting->algorithm = CNI_RIL3_CIPHER_ALGORITHM_A51;
+ } else if (classmark2->a52 && RM_DSPA52(rm_DspCiphCap) )
+ {
+ algo = 2;
+ setting->algorithm = CNI_RIL3_CIPHER_ALGORITHM_A52;
+ } else
+ {
+ algo = 0;
+ setting->ciphering =CNI_RIl3_CIPHER_NO_CIPHERING;
+ }
+
+ return (algo);
+}
+
+BOOL rm_bssgp_msg_callback(BSSGP_API_MSG msg)
+{
+ IntraL3Msg_t msgOut;
+
+ if (msg.msg_type != BSSGP_API_MSG_PAGING_PS)
+ {
+ IDEBUG__(("WARNING@rm_bssgp_msg_callback: unexpected msgType(%d)\n", msg.msg_type));
+ return false;
+ }
+
+ msgOut.module_id = MODULE_BSSGP;
+ msgOut.primitive_type = INTRA_L3_RR_EST_REQ;
+ msgOut.message_type = INTRA_L3_RR_PAGE_REQ;
+ msgOut.entry_id = CNI_IRT_NULL_ID;
+
+ msgOut.l3_data.pageReq.imsi.numDigits = msg.msg.paging_ps.imsi.numDigits;
+ memcpy(msgOut.l3_data.pageReq.imsi.digits, msg.msg.paging_ps.imsi.digits,
+ msg.msg.paging_ps.imsi.numDigits);
+
+ //send the message.
+ if (ERROR == msgQSend( rm_MsgQId,
+ (char *) &msgOut,
+ sizeof(struct IntraL3Msg_t),
+ NO_WAIT,
+ MSG_PRI_NORMAL
+ ))
+ {
+ EDEBUG__(("ERROR@ rm_bssgp_msg_callback: msgQSend (QID=%d) errno(%d)\n ",
+ (int)rm_MsgQId, errno));
+ assert(0);
+ } else
+ {
+ PDEBUG__(("TRACE@rm_bssgp_msg_callback: (prim=%d) (msgType=%d)\n",
+ msgOut.primitive_type, msgOut.message_type));
+ }
+
+ return true;
+}
+
+#endif //__RM_ENTRYIDVSTRXSLOT_CPP__
diff --git a/data/mnet/GP10/Host/rm/Src_init/Makefile b/data/mnet/GP10/Host/rm/Src_init/Makefile
new file mode 100644
index 0000000..0ef3fee
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src_init/Makefile
@@ -0,0 +1,52 @@
+##########################################################
+#
+# (c) Copyright Cisco 2000
+# All Rights Reserved
+#
+##########################################################
+
+# TOP_OF_VOB must be defined before including l3defs.mk
+TOP_OF_VOB = ..\..\..
+
+# These Must be Properly Defined
+THIS_APP_DIR = rm
+THIS_DIRECTORY = Src_init
+MY_OUTPUT = $(OBJDIR)\rm_init.out
+
+# Name(s) of Common VOB directories to include
+COMMON_BLD_DIR =
+
+include $(TOP_OF_VOB)\l3defs.mk
+
+all: makeCommonObjs $(MY_OUTPUT)
+
+# Adds the .o file(s) list needed from the Common VOB
+makeCommonObjs:
+ifneq ($(COMMON_BLD_DIR),)
+ @for %f in ($(COMMON_BLD_DIR)) do \
+ make -C $(COMMON_VOB_APP_DIR)\%f \
+ all VOB=$(VOBNAME) APPDIR=Host\$(THIS_APP_DIR)\$(THIS_DIRECTORY)
+endif
+
+# If Common VOB directories to include get the .o files from bin
+$(MY_OUTPUT): $(MODULE_OBJS)
+ifneq ($(COMMON_BLD_DIR),)
+ $(LD) -r -o $@.tmp $() $(MODULE_OBJS) $(wildcard ./bin/*.o)
+else
+ $(LD) -r -o $@.tmp $() $(MODULE_OBJS)
+endif
+ $(NM) $@.tmp | munch > _ctdt.c
+ $(CC) -traditional $(CC_ARCH_SPEC) -c _ctdt.c
+ $(LD) -r -o $@ _ctdt.o $@.tmp
+ $(RM)$(subst /,$(DIRCHAR), _ctdt.c _ctdt.o $@.tmp)
+
+cleanall:
+ @for %f in ($(notdir $(MODULE_OBJS))) do \
+ $(RM) ..\bin\%f
+
+ $(RM) $(MY_OUTPUT)
+
+ifneq ($(COMMON_BLD_DIR),)
+ $(RM) bin\*.o
+ $(RM) bin\*.out
+endif \ No newline at end of file
diff --git a/data/mnet/GP10/Host/rm/Src_init/debug.cpp b/data/mnet/GP10/Host/rm/Src_init/debug.cpp
new file mode 100644
index 0000000..60809c6
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src_init/debug.cpp
@@ -0,0 +1,76 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#include "rm\debug.h"
+
+void db_BDump(unsigned char type, unsigned char *pBuf, unsigned short len)
+{
+ unsigned short i, j, row, last_row, wrongType;
+ const char *rxTitle[] = { "<===L1:", "<===MD:", "<===RM:","<===MM:","<===CC"};
+ const char *txTitle[] = { "L1===>:", "MD===>:", "RM===>:","MM===>:","CC===>"};
+
+ /*
+ ** Assume first byte of *pBuf is module ID which is used to access the two
+ ** string arrays defined above.
+ */
+
+ wrongType = 0;
+
+ switch(type)
+ {
+ case
+ MAREA__:
+ printf("DUMP---\n");
+ break;
+
+ case RXMSG__:
+ printf("%s\n", rxTitle[*pBuf]);
+ break;
+
+ case TXMSG__:
+ printf("%s\n", txTitle[*pBuf]);
+ break;
+ default:
+ printf(" WRONG TYPE fed into db_BDump\n" );
+ wrongType = 1;
+ break;
+
+ } /* End of switch() */
+
+ if ( !wrongType )
+ {
+ /*
+ ** Count how many rows to print and if there
+ ** a non-full row
+ */
+
+ row = len/ROW_LEN; last_row = len%ROW_LEN;
+
+ /* Print all full rows */
+ if ( row )
+ {
+ for ( i=0; i<row; i++ )
+ {
+ for ( j=0;j<ROW_LEN;j++ )
+ printf("0x%02x ",*pBuf++);
+ printf("\n");
+ }
+ }
+
+ /* Print last row if any */
+ if ( last_row )
+ {
+ for ( i=0; i<last_row; i++)
+ printf("0x%02x ", *pBuf++);
+
+ printf("\n");
+ }
+ }
+
+} /* End of db_BDump() */
+
diff --git a/data/mnet/GP10/Host/rm/Src_init/sys_init.cpp b/data/mnet/GP10/Host/rm/Src_init/sys_init.cpp
new file mode 100644
index 0000000..e8e8a8f
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/Src_init/sys_init.cpp
@@ -0,0 +1,111 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __SYS_INIT_CPP__
+#define __SYS_INIT_CPP__
+
+#include <vxWorks.h>
+#include <msgQLib.h>
+
+#include "rm\sys_init.h"
+
+//DBGADDED
+#include "logging\vclogging.h"
+
+#include "rm\rm_itcmsg.h"
+#include "rm\rm_data.h"
+#include "rm\rm_oamif.h"
+#include "rm\debug.h"
+
+
+//DBGADDED
+DbgOutput rm_Dbg;
+
+T_CNI_L3_ID rm_id;
+MSG_Q_ID rm_MsgQId;
+rm_SmCtxts_t rm_SmCtxt;
+rm_IrtEntryId_t rm_TchfEntryId[16]; //TBD:RM_L1MAX_TCHFS];
+rm_IrtEntryId_t rm_Sdcch4EntryId[5]; //TBDRM_L1MAX_SDCCH4S];
+rm_OamData_t rm_OamData;
+
+rm_PhyChanTchf_t rm_PhyChanTchf;
+rm_PhyChanSdcch4_t rm_PhyChanSdcch4;
+
+unsigned char rm_DspCiphCap;
+
+void sys_Init(void)
+{
+ //Monitoring entrance to a function
+ //RDEBUG__(("ENTER-sys_Init\n"));
+
+ sys_CreateMsgQs();
+ sys_StartTasks();
+
+} //End of sys_Init()
+
+void sys_StartTasks(void)
+{
+ //Monitoring entrance to a function
+ //RDEBUG__(("ENTER-sys_StartTasks\n"));
+
+ //Start OAM task
+ //TBD
+
+ //Start LAPDm task
+ //TBD: ToGo signal is self-contained and following a task start.
+ // e.g. LAPDm initialization function will follow start of LAPDm
+ // task: CNI_LAPDm_Initialization();
+
+ //Start MD task
+ //TBD
+
+ //Start CC task
+ //TBD
+
+ //Start MM task
+ //TBD
+
+ //Start RM task
+ //TBD
+
+ //Start L1IF task
+ //TBD
+
+} //End of sys_StartTasks()
+
+void sys_CreateMsgQs(void)
+{
+ //Monitoring entrance to a function
+ //RDEBUG__(("ENTER-sys_CreateMsgQs\n"));
+
+ //Create message queue for RM module
+ rm_MsgQId = msgQCreate (
+ RM_MAX_RXMSGS, //Max # of messages
+ sizeof(rm_ItcRxMsg_t), //Max length of msg
+ MSG_Q_PRIORITY //Priority-type que
+ );
+
+ if( rm_MsgQId == NULL )
+ //EDEBUG__(("ERROR-sys_init:RM message queue creation failed\n"));
+ printf("ERROR-sys_init:RM message queue creation failed\n");
+ else
+ {
+ //Generate L3 ID for RM for use by rm_InitIRT()
+ //TDEBUG__(("TRACK-sys_Init: RM incoming message Q created ! \n"));
+ rm_id.msgq_id = rm_MsgQId;
+ rm_id.sub_id = RM_L3_SUBID;
+ }
+
+ //Create message queue for MM module
+ //TBD
+ //Create message queue for CC module
+ //TBD
+
+} //End of sys_CreateMsgQs()
+
+#endif //__SYS_INIT_CPP__
diff --git a/data/mnet/GP10/Host/rm/include/api_SendMsgFromRmToMm.h b/data/mnet/GP10/Host/rm/include/api_SendMsgFromRmToMm.h
new file mode 100644
index 0000000..4d5adf3
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/include/api_SendMsgFromRmToMm.h
@@ -0,0 +1,17 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __API_SENDMSGFROMRMTOMM_H__
+#define __API_SENDMSGFROMRMTOMM_H__
+
+void api_SendMsgFromRmToMm (
+ unsigned short length,
+ unsigned char *msg
+ );
+
+#endif /* __API_SENDMSGFROMRMTOMM_H__ */
diff --git a/data/mnet/GP10/Host/rm/include/cc_user.dat b/data/mnet/GP10/Host/rm/include/cc_user.dat
new file mode 100644
index 0000000..50a92eb
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/include/cc_user.dat
Binary files differ
diff --git a/data/mnet/GP10/Host/rm/include/debug.new.h b/data/mnet/GP10/Host/rm/include/debug.new.h
new file mode 100644
index 0000000..3b2e90e
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/include/debug.new.h
@@ -0,0 +1,78 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __DEBUG_H__
+#define __DEBUG_H__
+
+#include "stdio.h"
+
+#define ROW_LEN 10
+
+/*
+** MARCO definitions for dubug purpose
+*/
+
+#define MAREA__ 0
+#define RXMSG__ 1
+#define TXMSG__ 2
+
+
+#define RDEBUG__(X) if (__RDEBUG__) \
+ printf X; \
+ else \
+ __DEBUGVAR__ = 0
+
+#define EDEBUG__(X) if (__EDEBUG__) \
+ printf X; \
+ else \
+ __DEBUGVAR__ = 0
+
+#define DDEBUG__(X) if (__DDEBUG__) \
+ printf X; \
+ else \
+ __DEBUGVAR__ = 0
+
+#define UDEBUG__(X) if (__UDEBUG__) \
+ printf X; \
+ else \
+ __DEBUGVAR__ = 0
+
+#define PDEBUG__(X) if (__PDEBUG__) \
+ printf X; \
+ else \
+ __DEBUGVAR__ = 0
+
+#define TDEBUG__(X) if (__TDEBUG__) \
+ printf X; \
+ else \
+ __DEBUGVAR__ = 0
+
+#define BDUMP__(X) if (__BDUMP__) \
+ db_BDump X; \
+ else \
+ __DEBUGVAR__ = 0
+
+#define EDUMP__(X) if (__EDUMP__) \
+ db_BDump X; \
+ else \
+ __DEBUGVAR__ = 0
+
+#define UDUMP__(X) if (__UDUMP__) \
+ db_BDump X; \
+ else \
+ __DEBUGVAR__ = 0
+
+#define TDUMP__(X) if (__TDUMP__) \
+ db_BDump X; \
+ else \
+ __DEBEGVAR__ = 0
+
+void db_BDump ( unsigned char, unsigned char *, unsigned short );
+
+#endif /* __DEBUG_H__ */
+
diff --git a/data/mnet/GP10/Host/rm/include/rm_l1msg.h b/data/mnet/GP10/Host/rm/include/rm_l1msg.h
new file mode 100644
index 0000000..471a01b
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/include/rm_l1msg.h
@@ -0,0 +1,132 @@
+/*
+********************************************************************
+**
+** (c) Copyright Cisco 2000
+** All Rights Reserved
+**
+*********************************************************************
+*/
+#ifndef __RM_L1MSG_H__
+#define __RM_L1MSG_H__
+
+#include "rm/rm_const.h"
+//#include "rm/rm_types.h"
+
+
+typedef struct {
+ u8 msgGroup;
+ u8 filler;
+ u16 msgType;
+
+} rm_L1TxMsgHeader_t;
+
+typedef struct {
+ rm_L1TxMsgHeader_t header;
+ u8 trxNumber;
+ u8 airIfStd;
+ u8 bsic;
+} rm_L1TrxConfig_t;
+
+typedef struct {
+ rm_L1TxMsgHeader_t header;
+ u8 trxNumber;
+ u8 slotNumber;
+ u8 chanComb;
+} rm_L1SlotActiv_t;
+
+typedef struct {
+ rm_L1TxMsgHeader_t header;
+ u8 trxNumber;
+ u8 sysInfoType;
+ u8 l3Info[RM_L1MAX_SYSINFO_LEN];
+} rm_L1SacchFill_t;
+
+typedef struct {
+ rm_L1TxMsgHeader_t header;
+ u8 trxNumber;
+ u8 uplinkSGainCtrlSetting;
+} rm_L1SetUGain_t;
+
+typedef struct {
+ rm_L1TxMsgHeader_t header;
+ u16 trxNumber;
+ u8 downlinkSGainCtrlSetting;
+} rm_L1SetDGain_t;
+
+typedef struct {
+ rm_L1TxMsgHeader_t header;
+ u16 trxNumber;
+ u8 synthSelect;
+ u8 synchSettingMSB;
+ u8 synchSettingLSB;
+} rm_L1TuneSynth_t;
+
+typedef struct {
+ rm_L1TxMsgHeader_t header;
+ u16 trxNumber;
+ u8 ulFpgaDelayMSB;
+ u8 ulFpgaDelayLSB;
+ u8 dlFpgaDelayMSB;
+ u8 dlFpgaDelayLSB;
+} rm_L1ConfigFpgaDelay_t;
+
+typedef struct {
+ rm_L1TxMsgHeader_t header;
+ u8 trxNumber;
+ u8 absoluteFrameNo[RM_L1SYNCH_CHANINFO_LEN];
+} rm_L1Synch_t;
+
+typedef struct {
+ rm_L1TxMsgHeader_t header;
+ u8 trxNumber;
+ u8 chanNumberMSB;
+ u8 chanNumberLSB;
+} rm_L1BcchInfo_t;
+
+typedef union
+{
+ rm_L1TxMsgHeader_t header;
+ rm_L1TrxConfig_t rm_L1TrxConfig;
+ rm_L1SlotActiv_t rm_L1SlotActiv;
+ rm_L1SacchFill_t rm_L1SacchFill;
+ rm_L1SetUGain_t rm_L1SetUGain;
+ rm_L1SetDGain_t rm_L1SetDGain;
+ rm_L1TuneSynth_t rm_L1TuneSynth;
+ rm_L1ConfigFpgaDelay_t rm_L1ConfigFpgaDelay;
+ rm_L1Synch_t rm_L1Synch;
+ rm_L1BcchInfo_t rm_L1BcchInfo;
+} rm_L1TxMsg_t;
+
+#if 0
+typedef union //TBD
+{
+ rm_L1RxMsgHeader_t header;
+ rm_L1TrxConfigAck_t rm_L1TrxConfigAck; <TBD>
+ rm_L1SlotActivAck_t rm_L1SlotActivAck; <TBD>
+ rm_L1SlotActivNAck_t rm_L1SlotActivNAck; <TBD>
+ rm_L1SynchAck_t rm_L1SynchAck; <TBD>
+
+} rm_L1RxMsg_t
+
+#endif
+
+typedef struct {
+ u16 msgLength;
+ u8 buffer[RM_L1MAX_SYSINFO_LEN];
+} rm_L1SysInfo_t;
+
+typedef struct {
+ u8 synthSelect; /* UL Synth A/B, DL Synth A/B */
+ u8 synthSettingMSB;
+ u8 synthSettingLSB;
+ u8 filler;
+} rm_L1TrxSynthSetting_t;
+
+typedef struct {
+ u8 ulFpgaDelayMSB;
+ u8 ulFpgaDelayLSB;
+ u8 dlFpgaDelayMSB;
+ u8 dlFpgaDelayLSB;
+} rm_L1TrxFpgaDelay_t;
+
+#endif /* __RM_L1MSG_H__ */
diff --git a/data/mnet/GP10/Host/rm/test/Makefile b/data/mnet/GP10/Host/rm/test/Makefile
new file mode 100644
index 0000000..cb33389
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/test/Makefile
@@ -0,0 +1,16 @@
+# Makefile - makefile skeleton for test.c
+#
+# Copyright (C) 1996 Wind River Systems, Inc.
+#
+# This file was generated via the Tornado Project Facility.
+#
+
+CPU = I80486
+TOOL = gnu
+ROOT = K:\workdirs\integration
+#RRM=K:\Workdirs\integration\Rm
+#ADDED_C++FLAGS = -g -I$(RRM)\include -I$(ROOT)
+include K:\workdirs\xiaode\integration\rm\build\defs.bsp
+include K:\workdirs\xiaode\integration\rm\build\make.$(CPU)$(TOOL)
+include K:\workdirs\xiaode\integration\rm\build\defs.$(WIND_HOST_TYPE)
+include K:\workdirs\xiaode\integration\rm\build\rules.bsp
diff --git a/data/mnet/GP10/Host/rm/test/ctdt.c b/data/mnet/GP10/Host/rm/test/ctdt.c
new file mode 100644
index 0000000..f0f4ad0
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/test/ctdt.c
@@ -0,0 +1,22 @@
+/* ctors and dtors arrays -- to be used by runtime system */
+/* to call static constructors and destructors */
+/* */
+/* NOTE: Use a C compiler to compile this file. If you */
+/* are using GNU C++, be sure to use compile this */
+/* file using GNU C and the -traditional flag. */
+
+typedef void (*VOIDFUNCPTR) (); /* ptr to function returning void */
+
+
+extern VOIDFUNCPTR _ctors[];
+VOIDFUNCPTR _ctors[] =
+ {
+ 0
+ };
+
+
+extern VOIDFUNCPTR _dtors[];
+VOIDFUNCPTR _dtors[] =
+ {
+ 0
+ };
diff --git a/data/mnet/GP10/Host/rm/test/defs.bsp b/data/mnet/GP10/Host/rm/test/defs.bsp
new file mode 100644
index 0000000..ea3be86
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/test/defs.bsp
@@ -0,0 +1,143 @@
+# defs.bsp - bsp default makefile definitions
+#
+# Copyright 1984-1997, Wind River Systems, Inc.
+#
+# modification history
+# --------------------
+# 02g,20jan97,yp added -P to CFLAGS_AS to suppress "#line" directives
+# 02f,06dec97,yp moved soft-float back to CFLAGS
+# 02e,02jan97,dat added DOC_FLAGS, EXTRA_DOC_FLAGS
+# 02d,17dec96,yp moved soft-float to OPTIM macros so drvs get built without it
+# 02c,04oct96,yp added .cxx sufix
+# 02b,31oct96,yp added definition for GCC_EXEC_PREFIX. added TCL def.
+# added CFLAGS_AS. redid CFLAGS and C++FLAGS for new build
+# 02a,31oct96,kkk fixed typo in C++FLAGS line.
+# 01z,21jun96,dat added -traditional to COMPILE_SYMTBL (#6517),
+# added copyright
+# 01y,01apr96,srh added Rogue Wave multithread defns.
+# 01x,13nov95,jeh added CF define, changed CXX define to $(CC).
+# 01w,13nov95,jeh renamed C++ define to be CXX.
+# 01v,11nov95,jeh fixed typo in C++FLAGS define (missing $ in $(C++_COMPILER))
+# 01u,07nov95,p_m Removed previous change
+# 01t,04nov95,p_m Added sysSerial to DOC_FILES
+# 01s,01nov95,yp Added rules for C++ support
+# 01r,24oct95,dat recovered CONFIG_ALL and changed CC_INCLUDE, moved LIB_EXTRA
+# 01q,20jun95,yp removed -pedatic flag. added machros for bin tool names
+# 01p,15jun95,yp removed defintions for CPU and TOOL.
+# 01o,01jun95,yp derived from make.defaults
+#
+# DESCRIPTION
+# This file is included into bsp makefiles to define the default makefile
+# definitions. After the include the Makefile may customize the definitions
+# found here to suit the circumstance.
+#
+# Redefinitions of make variables earlier than the include of this file will
+# have no affect.
+#
+
+.SUFFIXES: .cpp .out .cxx
+
+## exe target is the cannonical starting point.
+
+default : exe
+
+## TARGET_DIR still used for backward compatibility
+
+BSP_NAME = $(TARGET_DIR)
+
+## default flags
+
+CFLAGS = $(CC_ARCH_SPEC) $(CC_COMPILER) $(CC_OPTIM) $(CC_WARNINGS) \
+ $(CC_INCLUDE) $(CC_DEFINES) $(ADDED_CFLAGS) \
+ $(CC_SOFT_FLOAT)
+
+C++FLAGS = $(CC_ARCH_SPEC) $(C++_COMPILER) $(CC_OPTIM) $(C++_WARNINGS) \
+ $(CC_INCLUDE) $(CC_DEFINES) $(ADDED_C++FLAGS) \
+ $(CC_SOFT_FLOAT)
+
+CASFLAGS = -E $(CC_INCLUDE) $(CC_DEFINES)
+# We now call the compiler driver to precrocess and assemble .s file
+CFLAGS_AS = $(CC_ARCH_SPEC) $(CC_COMPILER) $(CC_OPTIM) $(CC_INCLUDE) \
+ $(CC_DEFINES) $(ADDED_CFLAGS) -P -x assembler-with-cpp
+CC_WARNINGS = $(CC_WARNINGS_ALL)
+CC_OPTIM = $(CC_OPTIM_TARGET)
+CC_INCLUDE = -I$(UP)/h $(INCLUDE_CC) $(EXTRA_INCLUDE) \
+ -I. -I$(CONFIG_ALL) -I$(TGT_DIR)/h -I$(TGT_DIR)/src/config \
+ -I$(TGT_DIR)/src/drv
+CC_DEFINES = -DCPU=$(CPU) $(DEFINE_CC) $(EXTRA_DEFINE)
+
+# Current cpp compiler generates symbols with $ signs. Need -traditional
+# to accept such names as valid symbols. - dat, 6/96 (SPR #6517)
+COMPILE_SYMTBL = $(CC) -c $(CFLAGS)
+
+
+## only customize things below this point
+
+RELEASE = vxWorks vxWorks.st bootrom.hex
+
+## toolchain flags
+
+CC_WARNINGS_ALL = -Wall
+CC_WARNINGS_NONE=
+C++_WARNINGS = $(CC_WARNINGS_NONE)
+
+# We now define GCC_EXEC_PREFIX so that we can call the compiler with
+# the -B flag suggesting where support tools may be found. Previously
+# we required the user to set GCC_EXEC_PREFIX as an environment variable
+
+
+GCC_EXEC_PREFIX=$(WIND_BASE)/host/$(WIND_HOST_TYPE)/lib/gcc-lib/
+
+CC_OPTIM_DRIVER =
+CC_OPTIM_NORMAL = -O -fstrength-reduce -fcombine-regs
+CC_OPTIM_TARGET = -O -fvolatile
+
+CC_COMPILER = -nostdinc
+#CC_COMPILER = -ansi -pedantic -nostdinc
+
+# RW_MULTI_THREAD and _REENTRANT required for WFC
+C++_COMPILER = -ansi -nostdinc -DRW_MULTI_THREAD -D_REENTRANT
+
+## toolchain binaries
+
+AR = ar
+AS = as
+CC = cc
+CF = CC
+CXX = $(CC)
+LD = ld
+MUNCH = munch
+NM = nm
+RANLIB = ranlib
+CPP = cpp
+TCL = wtxtcl
+
+## bsp flags
+
+LD_LOW_FLAGS = -Ttext $(RAM_LOW_ADRS)
+LD_HIGH_FLAGS = -Ttext $(RAM_HIGH_ADRS)
+RES_LOW_FLAGS = -Ttext $(ROM_TEXT_ADRS) -Tdata $(RAM_LOW_ADRS)
+RES_HIGH_FLAGS = -Ttext $(ROM_TEXT_ADRS) -Tdata $(RAM_HIGH_ADRS)
+
+ROM_ENTRY = _romInit
+SYS_ENTRY = _sysInit
+USR_ENTRY = _usrInit
+
+LDFLAGS = -X -N
+LD_PARTIAL_FLAGS= -X -r
+
+MACH_DEP = sysALib.o sysLib.o $(MACH_EXTRA) $(ADDED_MODULES)
+
+## libraries
+
+LIBS = $(LIB_EXTRA) $(TGT_DIR)/lib/lib$(CPU)$(TOOL)vx.a
+
+## documentation files
+
+DOC_FILES = sysLib tyCoDrv
+DOC_FLAGS = -DDOC -DINCLUDE_SCSI -DINCLUDE_SHOW_ROUTINES \
+ $(EXTRA_DOC_FLAGS)
+
+EXTRACT_BIN_NAME = aoutToBin
+BINXSYM_NAME = xsym
+BINHEX_NAME = hex
diff --git a/data/mnet/GP10/Host/rm/test/defs.x86-win32 b/data/mnet/GP10/Host/rm/test/defs.x86-win32
new file mode 100644
index 0000000..27bae89
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/test/defs.x86-win32
@@ -0,0 +1,71 @@
+# defs.x86-win32 - Host specific default definitions
+#
+# modification history
+# --------------------
+# 01m,21jan97,j_k Fixed DIRCHAR to be result of a macro.
+# 01l,17aug96,yp Added definition of LIBDIR and BSPBUILD_TCL and DIRCHAR
+# 01k,18aug96,ms use deflate to compress bootROM images
+# 01j,06jun96,dat SPR 6141, proper use of TGT_DIR
+# 01i,18apr96,dat
+# +yp added MKPREP
+# 01h,06mar96,dat removed makeVersion
+# 01g,13nov95,p_m added DEMO_DIR.
+# 01f,03nov95,yp Made CPP arch specific .s.o targets don't get generate
+# 01g,24oct95,dat recovered CONFIG_ALL
+# 01f,31jul95,jmb changed 'rm' to 'vxrm' and added CC_DEBUG
+# 01e,28jul95,sks removed 'echo' and replaced with '@rem' for 'true'
+# 01d,25jul95,jmb added VX_CPU_FAMILY for romsize and vxsize
+# 01c,14jul95,yp added definition for VXSIZEPROG
+# 01b,19jun95,yp allowed arch. specific tools to be inherited from
+# make.$(CPU)$(TOOL)
+# 01a,01jun95,yp created
+#
+# DESCRIPTION
+# This file contains default definitions, and flags used in building targets
+# that are host specific to win32.
+#
+
+DIRCHAR = $(subst x,\,x)
+
+## directories
+
+BIN_DIR = $(WIND_BASE)\host\$(WIND_HOST_TYPE)\bin
+TGT_DIR = $(WIND_BASE)\target
+CONFIG_ALL = $(TGT_DIR)\config\all
+DEMO_DIR = $(TGT_DIR)\lib\obj$(CPU)$(TOOL)test
+LIBDIR = $(TGT_DIR)\lib\$(LIBDIRNAME)
+
+## tools
+
+EXTRACT_BIN = $(BIN_DIR)\$(EXTRACT_BIN_NAME)
+BINXSYM = $(BIN_DIR)\$(BINXSYM_NAME)
+BINHEX = $(BIN_DIR)\$(BINHEX_NAME)
+COMPRESS = $(BIN_DIR)\deflate
+ROMSIZEPROG = $(BIN_DIR)\romsize $(VX_CPU_FAMILY)
+VXSIZEPROG = $(BIN_DIR)\vxsize $(VX_CPU_FAMILY)
+MKSYMTBL = $(BIN_DIR)\makeSymTbl $(VX_CPU_FAMILY)
+BINTOASM = $(BIN_DIR)\binToAsm
+LDOUT_SYMS = @rem
+LDOUT_CONV = @rem
+LDOUT_HOST = @rem
+MV_BIN = @rem
+RM = vxrm
+CP = copy
+CPP = $(BIN_DIR)\cpp$(VX_CPU_FAMILY)
+ASM_P1 = type
+ASM_P2 = type
+MKPREP = $(BIN_DIR)\mkprep
+TARGET =
+BSPBUILD_TCL = $(BIN_DIR)\bspBuild.tcl
+
+## files
+
+USRCONFIG = $(CONFIG_ALL)\usrConfig.c
+BOOTCONFIG = $(CONFIG_ALL)\bootConfig.c
+BOOTINIT = $(CONFIG_ALL)\bootInit.c
+DATASEGPAD = $(CONFIG_ALL)\dataSegPad.c
+CONFIG_ALL_H = $(CONFIG_ALL)\configAll.h
+
+## miscellaneous
+
+CFLAGS += $(CC_DEBUG)
diff --git a/data/mnet/GP10/Host/rm/test/integ b/data/mnet/GP10/Host/rm/test/integ
new file mode 100644
index 0000000..493ba9a
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/test/integ
@@ -0,0 +1,35 @@
+ld < K:/Workdirs/integration/rm.back/I80486/l2l3.out
+ld < K:/Workdirs/integration/lapdm/I80486/test.o
+ld < K:/Workdirs/integration/jcc/I80486/jcc.out
+ld < K:/Workdirs/integration/mm/I80486/mmm.out
+
+CNI_LAPDM_Initialization
+cni_testInit
+
+#create a lapdm instance channel type 0, trx 0, channel num 1, link 1
+#CNI_LAPDM_Create_Instance(0, 0 , 0x2000, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x2800, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x3000, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x3800, 0)
+
+
+#L3 register a lapdm instance oid 0, sapi 0, layer3_id 10, and a call back function
+#CNI_LAPDM_Instance_Registration(0, 0, 0x20, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(1, 0, 0x28, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(2, 0, 0x30, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(3, 0, 0x38, cni_l3CallBack)
+
+# Start MM Task and print its data
+mmInit
+mmDataPrint
+
+
+# Start RRM Task
+taskSpawn("rmTask",20, 0, 10000,rm_Main)
+
+#
+#initL1
+#newInitDsp
+#hpi2dsp(&cx6,0,0x3800)
+#newGo
+
diff --git a/data/mnet/GP10/Host/rm/test/kill b/data/mnet/GP10/Host/rm/test/kill
new file mode 100644
index 0000000..2596f6e
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/test/kill
@@ -0,0 +1,6 @@
+td mmMain
+td rmTask
+td lapdm_phserver
+td lapdm_dlserver
+i
+
diff --git a/data/mnet/GP10/Host/rm/test/make.I80486gnu b/data/mnet/GP10/Host/rm/test/make.I80486gnu
new file mode 100644
index 0000000..2abf06a
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/test/make.I80486gnu
@@ -0,0 +1,48 @@
+# make.I80486gnu - GNU compilation tools definitions for I80486
+#
+# modification history
+# --------------------
+# 01l,04oct96,yp Added -B option so compiler driver doesn't need EXEC_PREFIX,
+# added CC_ARCH_SPEC for machine specific flags
+# 01k,01nov95,yp Added NM definition for C++
+# 01j,21jun95,yp change definitions for BIN tools used in bsp build
+# 01i,19jun95,srh made C++ compiler name specific to cfront.
+# 01h,18jun95,srh added more C++ support.
+# 01g,28may95,srh workaround gmake problem with "C++=..."
+# 01f,25may95,jcf new environment variables
+# 01e,23may95,srh add C++ support
+# 01d,26apr94,hdn added -O flag.
+# 01c,08dec93,hdn added EXTRACT_BIN, BINXSYM, BINHEX.
+# 01b,17nov93,hdn added -fno-defer-pop flag.
+# 01a,09jun93,hdn written
+#
+# DESCRIPTION
+# This file contains I80486 specific definitions and flags for the GNU
+# software generation tools (compiler, assembler, linker etc.).
+#*/
+
+
+CPU=I80486
+TOOL=gnu
+
+CC_OPTIM_DRIVER = -fvolatile -nostdlib -fno-builtin -fno-defer-pop
+CC_OPTIM_NORMAL = -O -nostdlib -fno-builtin -fno-defer-pop
+CC_OPTIM_TARGET = -O -fvolatile -nostdlib -fno-builtin -fno-defer-pop
+CC_ARCH_SPEC = -m486
+
+AR=ar386
+AS=as386
+CC=cc386 -B$(GCC_EXEC_PREFIX)
+CF=CC386 -B$(GCC_EXEC_PREFIX)
+LD=ld386
+RANLIB=ranlib386
+NM=nm386
+
+EXTRACT_BIN_NAME = aoutToBinDec
+BINXSYM_NAME = xsymDec
+BINHEX_NAME = hexDec
+
+TOOLENV=386
+VX_CPU_FAMILY=386
+
+# end of make.I80486gnu
diff --git a/data/mnet/GP10/Host/rm/test/redirect b/data/mnet/GP10/Host/rm/test/redirect
new file mode 100644
index 0000000..a8cb5a7
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/test/redirect
@@ -0,0 +1,4 @@
+vf0=open("/vio/0", 2, 0)
+ioGlobalStdSet(0, vf0)
+ioGlobalStdSet(1, vf0)
+ioGlobalStdSet(2, vf0)
diff --git a/data/mnet/GP10/Host/rm/test/rules.bsp b/data/mnet/GP10/Host/rm/test/rules.bsp
new file mode 100644
index 0000000..6083567
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/test/rules.bsp
@@ -0,0 +1,582 @@
+# rules.bsp - makefile target rules for BSP
+#
+# modification history
+# --------------------
+# 01v,04mar97,tpr changed bootrom_res_res_high.hex by bootrom_res_high.hex
+# (SPR 8095)
+# 01u,13dec96,map Remove symTbl.c in target rule `clean' [SPR# 2637]
+# 01t,09dec96,tpr Added rule to remove ctdt.c for the 'clean' target.
+# 01s,04oct96,yp Added rules for building files with cxx extentions
+# 01r,23oct96,yp redid treatment of .s files so we don't create tmp
+# 01q,26sep96,dat removed edit 01k, was harming sparc & 960 BSPs. (SPR 7238)
+# 01p,19sep96,tpr merge PPC to tor1_0_1 release.
+# 01o,29aug96,ms removed "-f -b 15" after $(COMPRESS).
+# 01n,22aug96,map added romInit.o dependency to romInit_res* rules to fix
+# SPR# 7063
+# 01m,25jul96,tam replaced mips specific rom resident targets by ppc ones.
+# 01l,23jul96,kkk fixed build rules for romInit_res*.o for.
+# 01k,22jul96,tam added $(BOOT_EXTRA) where it was missing.
+# 01j,04apr96,srh added munching.
+# 01i,08mar96,yp added -P in implicite .s.o rule.
+# 01h,06mar96,dat new rules for version.o
+# 01g,13nov95,jeh restored .cpp.o implicit rule
+# 01f,08nov95,jeh removed .cpp.o implicit rule
+# 01e,01nov95,p_m added LIB to rom_res build command
+# 01d,01nov95,yp added implicit rules for C++
+# 01c,30oct95,dat added targets vxWorks.res_rom_nosym and
+# vxWorks.res_rom_nosym_mips
+# 01b,27jun95,kkk added VXSIZE.
+# 01a,12jun95,yp created from makeTarget2 v03d.
+#
+# DESCRIPTION
+# This file contains rules used in building targets.
+#
+# VARIABLES
+# The following variables must be defined (or not, as appropriate):
+#
+# ROM_SIZE number of bytes of ROM space as in config.h
+# LOCAL_MEM_SIZE target RAM size as in config.h
+# BINHEX binary->hex file conversion program
+# HEX_FLAGS BINHEX program options
+# LD_LOW_FLAGS ld(1) options for code in low memory
+# LD_HIGH_FLAGS ld options for code in high memory
+# LD_PARTIAL_FLAGS ld flags for linking partially complete objects
+# LDDEPS host-specific dependencies prerequisite to linking
+# LDOUT_CONV hpToBsd, coffToBsd, gswab, /bin/cat, etc.
+# COMPILE_SYMTBL hide flags needed to get compiler to swallow symTbl.c
+# ROM_ENTRY rom entry point (typically &romInit)
+# SYS_ENTRY system entry point (typically &sysInit)
+# USR_ENTRY compressed system entry point (typically &usrInit)
+#
+# The following variables are optionally defined:
+#
+# LDFLAGS standard ld flags for vxWorks & ROMs.
+# ROM_LDFLAGS ld flags specific to ROM image
+# MACH_EXTRA extra modules for all boot/vxWorks images
+# BOOT_EXTRA extra modules for compressed images only
+# RELEASE images made as part of WRS release step
+#
+# CONSTANTS
+# CPU cpu type
+#*/
+
+
+################################################################################
+#
+# meta build targets
+#
+
+## make will default to "exe"
+
+exe : vxWorks
+
+release : $(RELEASE)
+
+clean :
+ - $(RM) *.o
+ - $(RM) vxWorks*
+ - $(RM) bootrom*
+ - $(RM) ctdt.c
+ - $(RM) symTbl.c
+ - $(RM) depend.$(TARGET_DIR)
+
+.s.o :
+ @ $(RM) $@
+ $(CC) $(CFLAGS_AS) -c -o $@ $<
+
+.c.o :
+ @ $(RM) $@
+ $(CC) $(CFLAGS) -c $<
+
+# rule for munchless C++ compiles
+.cpp.o :
+ @ $(RM) $@
+ $(CXX) $(C++FLAGS) -c $<
+
+.cxx.o :
+ @ $(RM) $@
+ $(CXX) $(C++FLAGS) -c $<
+
+# C++ compile and munch
+.cpp.out :
+ @ $(RM) $@
+ $(CXX) $(C++FLAGS) -c $<
+ @ $(RM) $@ ctdt.c
+ $(NM) $*.o | munch > ctdt.c
+ $(MAKE) CC_COMPILER="-traditional" ctdt.o
+ $(LD) $(LD_PARTIAL_FLAGS) -o $@ $*.o ctdt.o
+ @ $(RM) ctdt.c ctdt.o
+
+.cxx.out :
+ @ $(RM) $@
+ $(CXX) $(C++FLAGS) -c $<
+ @ $(RM) $@ ctdt.c
+ $(NM) $*.o | munch > ctdt.c
+ $(MAKE) CC_COMPILER="-traditional" ctdt.o
+ $(LD) $(LD_PARTIAL_FLAGS) -o $@ $*.o ctdt.o
+ @ $(RM) ctdt.c ctdt.o
+
+
+################################################################################
+#
+# machine dependent targets
+
+romInit_res.o: depend.$(BSP_NAME) romInit.s romInit.o
+ - @ $(RM) $@
+ $(CC) $(CFLAGS_AS) -DROM_RESIDENT -c -o $@ romInit.s
+
+romInit_res_low.o: depend.$(BSP_NAME) romInit.s romInit.o
+ - @ $(RM) $@
+ $(CC) $(CFLAGS_AS) -DROM_RESIDENT \
+ -DRAM_DST_ADRS=0x$(RAM_LOW_ADRS) -c -o $@ romInit.s
+
+romInit_res_high.o: depend.$(BSP_NAME) romInit.s romInit.o
+ - @ $(RM) $@
+ $(CC) $(CFLAGS_AS) -DROM_RESIDENT \
+ -DRAM_DST_ADRS=0x$(RAM_HIGH_ADRS) -c -o $@ romInit.s
+
+usrConfig.o : depend.$(BSP_NAME) $(USRCONFIG)
+ - @ $(RM) $@
+ $(CC) -c $(CFLAGS) $(USRCONFIG) -o $@
+
+usrConfig_st.o : depend.$(BSP_NAME) $(USRCONFIG) usrConfig.o
+ - @ $(RM) $@
+ $(CP) $(USRCONFIG) usrConfig_st.c
+ $(CC) -c $(CFLAGS) -DSTANDALONE usrConfig_st.c
+ - @ $(RM) usrConfig_st.c
+
+bootConfig.o : depend.$(BSP_NAME) $(BOOTCONFIG)
+ - @ $(RM) $@
+ $(CC) -c $(CFLAGS) $(BOOTCONFIG)
+
+bootInit.o : depend.$(BSP_NAME) $(BOOTINIT)
+ - @ $(RM) $@
+ $(CC) -c $(CFLAGS) $(BOOTINIT)
+
+bootInit_res.o : depend.$(BSP_NAME) $(BOOTINIT) bootInit.o
+ - @ $(RM) $@
+ $(CP) $(BOOTINIT) bootInit_res.c
+ $(CC) -c $(CFLAGS) -DROM_RESIDENT bootInit_res.c
+ - @ $(RM) bootInit_res.c
+
+bootInit_res_low.o : depend.$(BSP_NAME) $(BOOTINIT)
+ - @ $(RM) $@
+ $(CP) $(BOOTINIT) bootInit_res_low.c
+ $(CC) -c $(CFLAGS) -DROM_RESIDENT \
+ -DRAM_DST_ADRS=0x$(RAM_LOW_ADRS) bootInit_res_low.c
+ - @ $(RM) bootInit_res_low.c
+
+bootInit_res_high.o : depend.$(BSP_NAME) $(BOOTINIT)
+ - @ $(RM) $@
+ $(CP) $(BOOTINIT) bootInit_res_high.c
+ $(CC) -c $(CFLAGS) -DROM_RESIDENT \
+ -DRAM_DST_ADRS=0x$(RAM_HIGH_ADRS) bootInit_res_high.c
+ - @ $(RM) bootInit_res_high.c
+
+bootInit_uncmp.o : depend.$(BSP_NAME) $(BOOTINIT) bootInit.o
+ - @ $(RM) $@
+ $(CP) $(BOOTINIT) bootInit_uncmp.c
+ $(CC) -c $(CFLAGS) -DUNCOMPRESS bootInit_uncmp.c
+ - @ $(RM) bootInit_uncmp.c
+
+bootInit_st.o : depend.$(BSP_NAME) $(BOOTINIT) bootInit.o
+ - @ $(RM) $@
+ $(CP) $(BOOTINIT) bootInit_st.c
+ $(CC) -c $(CFLAGS) -DRAM_DST_ADRS=0x$(RAM_LOW_ADRS) bootInit_st.c
+ - @ $(RM) bootInit_st.c
+
+
+bootInit_uncmp_res.o : depend.$(BSP_NAME) $(BOOTINIT) bootInit.o
+ - @ $(RM) $@
+ $(CP) $(BOOTINIT) bootInit_uncmp_res.c
+ $(CC) -c $(CFLAGS) -DROM_RESIDENT -DUNCOMPRESS bootInit_uncmp_res.c
+ - @ $(RM) bootInit_uncmp_res.c
+
+dataSegPad.o: depend.$(BSP_NAME) $(DATASEGPAD) $(CONFIG_ALL_H) config.h
+ - @ $(RM) $@
+ $(CC) -c $(CFLAGS) $(DATASEGPAD) -o $@
+
+################################## vxWorks #####################################
+#
+# vxWorks - normal vxWorks system
+# vxWorks.sym - symbol table of vxWorks
+
+vxWorks vxWorks.sym : depend.$(BSP_NAME) usrConfig.o dataSegPad.o \
+ $(MACH_DEP) $(LDDEPS) $(LIBS)
+ - @ $(RM) vxWorks vxWorks.sym
+ - @ $(RM) version.o
+ - @ $(RM) vxWorks.tmp ctdt.c ctdt.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) $(LDFLAGS) $(LD_PARTIAL_FLAGS) \
+ -o vxWorks.tmp $(MACH_DEP) usrConfig.o version.o $(LIBS)
+ $(NM) vxWorks.tmp | $(MUNCH) >ctdt.c
+ $(MAKE) CC_COMPILER="-traditional" ctdt.o
+ $(LD) $(LDFLAGS) -e $(SYS_ENTRY) $(LD_LOW_FLAGS) \
+ -o vxWorks dataSegPad.o vxWorks.tmp ctdt.o
+ - @ $(RM) vxWorks.tmp
+ $(LDOUT_HOST) vxWorks
+ $(LDOUT_CONV) vxWorks
+ $(BINXSYM) < vxWorks > vxWorks.sym
+ $(LDOUT_SYMS) vxWorks.sym
+ $(VXSIZEPROG) -v $(RAM_HIGH_ADRS) $(RAM_LOW_ADRS) vxWorks
+
+# vxWorks_rom - rommable version of VxWorks (without standalone symbol table)
+# This is typically used when making an application in ROM that doesn't
+# include the shell and the symbol table. Since these applications are
+# usually smaller, this version doesn't use ROM compression.
+
+vxWorks_rom : depend.$(BSP_NAME) bootInit_uncmp.o romInit.o \
+ dataSegPad.o usrConfig.o $(MACH_DEP) $(LDDEPS) $(LIBS)
+ - @ $(RM) $@
+ - @ $(RM) $(IMI)
+ - @ $(RM) $(IBR)
+ - @ $(RM) version.o
+ - @ $(RM) ctmp.o ctdt.c ctdt.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) $(LDFLAGS) $(LD_PARTIAL_FLAGS) \
+ -o ctmp.o usrConfig.o \
+ $(MACH_DEP) version.o $(LIBS)
+ $(NM) ctmp.o | $(MUNCH) > ctdt.c
+ $(MAKE) CC_COMPILER="-traditional" ctdt.o
+ $(LD) $(LDFLAGS) -e $(ROM_ENTRY) $(LD_LOW_FLAGS) \
+ -o $@ romInit.o bootInit_uncmp.o dataSegPad.o \
+ ctmp.o ctdt.o
+ - @ $(RM) ctmp.o
+ $(LDOUT_HOST) $@
+ $(ROMSIZEPROG) -b $(ROM_SIZE) $@
+ $(LDOUT_CONV) $@
+
+vxWorks_rom.hex : depend.$(BSP_NAME) vxWorks_rom $(IMI)
+ - @ $(RM) $@
+ $(BINHEX) $(HEX_FLAGS) $(SECT_SPEC)vxWorks_rom$(TXT_OFFSET) \
+ $(IMI_SPEC)$(IMI)$(IMI_OFFSET) > $@$(MAP_EXT)
+ -@ $(MV_BIN)
+
+# vxWorks.st - standalone VxWorks with symbol table linked in
+# This builds a VxWorks image that contains the symbol table linked in,
+# instead of loading it over the network.
+
+vxWorks.st : depend.$(BSP_NAME) usrConfig_st.o dataSegPad.o \
+ $(MACH_DEP) $(LDDEPS) $(LIBS)
+ - @ $(RM) $@
+ - @ $(RM) symTbl.c
+ - @ $(RM) symTbl.o
+ - @ $(RM) tmp.o
+ - @ $(RM) tmp.2
+ - @ $(RM) version.o
+ - @ $(RM) ctdt.c ctdt.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) -o tmp.o $(LD_PARTIAL_FLAGS) dataSegPad.o $(MACH_DEP) \
+ usrConfig_st.o version.o $(LIBS)
+ $(NM) tmp.o | $(MUNCH) >ctdt.c
+ $(MAKE) CC_COMPILER="-traditional" ctdt.o
+ $(CP) tmp.o tmp.2
+ $(LDOUT_SYMS) tmp.o
+ $(MKSYMTBL) tmp.o > symTbl.c
+ $(COMPILE_SYMTBL) symTbl.c
+ $(LD) $(LDFLAGS) -e $(SYS_ENTRY) $(LD_LOW_FLAGS) \
+ -o $@ tmp.2 symTbl.o ctdt.o
+ $(LDOUT_SYMS) $@
+ $(LDOUT_CONV) $@
+ $(VXSIZEPROG) -v $(RAM_HIGH_ADRS) $(RAM_LOW_ADRS) vxWorks.st
+ - @ $(RM) tmp.?
+
+# vxWorks.st_rom - rommable standalone version using ROM compression
+# This builds a standalone VxWorks image that can be put in ROM.
+# It includes a linked in symbol table so that a complete VxWorks with
+# shell and symbol table can be put in ROM. Since these systems tend to
+# be larger, ROM compression is used.
+# Note: this uses larger EEPROMs, the user is advised to check the
+# macros for ROM sizes and offsets for compatibility.
+
+vxWorks.st.Z.s : depend.$(BSP_NAME) usrConfig_st.o dataSegPad.o \
+ $(MACH_DEP) $(LDDEPS) $(LIBS)
+ - @ $(RM) $@
+ - @ $(RM) tmp.o
+ - @ $(RM) tmp.1
+ - @ $(RM) tmp.2
+ - @ $(RM) tmp.Z
+ - @ $(RM) symTbl.c
+ - @ $(RM) symTbl.o
+ - @ $(RM) version.o
+ - @ $(RM) ctdt.c ctdt.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) -o tmp.1 $(LD_PARTIAL_FLAGS) dataSegPad.o $(MACH_DEP) \
+ usrConfig_st.o version.o $(LIBS)
+ $(NM) tmp.1 | $(MUNCH) >ctdt.c
+ $(MAKE) CC_COMPILER="-traditional" ctdt.o
+ $(CP) tmp.1 tmp.o
+ $(LDOUT_SYMS) tmp.o
+ $(MKSYMTBL) tmp.o >symTbl.c
+ $(COMPILE_SYMTBL) symTbl.c
+ $(LD) -o tmp.2 $(LDFLAGS) $(ROM_LDFLAGS) -e $(SYS_ENTRY) \
+ $(LD_LOW_FLAGS) tmp.1 symTbl.o ctdt.o
+ $(LDOUT_HOST) tmp.2
+ $(LDOUT_CONV) tmp.2
+ $(EXTRACT_BIN) < tmp.2 | $(COMPRESS) >tmp.Z
+ $(BINTOASM) tmp.Z > $@
+ - @ $(RM) tmp.?
+
+vxWorks.st_rom : depend.$(BSP_NAME) bootInit_st.o romInit.o \
+ vxWorks.st.Z.o $(LDDEPS) $(LIBS) $(BOOT_EXTRA)
+ - @ $(RM) $(IMI)
+ - @ $(RM) $(IBR)
+ - @ $(RM) version.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) $(LDFLAGS) -e $(ROM_ENTRY) $(LD_HIGH_FLAGS) \
+ -o $@ romInit.o bootInit_st.o version.o $(BOOT_EXTRA) \
+ $(LIBS) vxWorks.st.Z.o
+ $(ROMSIZEPROG) -b $(ROM_SIZE) $@
+ $(LDOUT_CONV) $@
+
+vxWorks.st_rom.hex : depend.$(BSP_NAME) vxWorks.st_rom $(IMI)
+ - @ $(RM) $@
+ $(BINHEX) $(HEX_FLAGS) $(SECT_SPEC)vxWorks.st_rom$(TXT_OFFSET) \
+ $(IMI_SPEC)$(IMI)$(IMI_OFFSET) > $@$(MAP_EXT)
+ -@ $(MV_BIN)
+
+# vxWorks.res_rom - rommable standalone version without compression
+# This builds a standalone VxWorks image that can be put in ROM.
+# It includes a linked in symbol table so that a complete VxWorks with
+# shell and symbol table can be put in ROM. Only the data segment
+# of this ROM image is copied into RAM.
+
+vxWorks.res_rom: depend.$(BSP_NAME) bootInit_res.o romInit_res.o \
+ usrConfig_st.o $(MACH_DEP) $(LDDEPS) $(LIBS)
+ - @ $(RM) $@ tmp.o
+ - @ $(RM) tmp.1
+ - @ $(RM) symTbl.c
+ - @ $(RM) symTbl.o
+ - @ $(RM) $(IMI)
+ - @ $(RM) $(IBR)
+ - @ $(RM) version.o
+ - @ $(RM) ctdt.c ctdt.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) -o tmp.o $(LD_PARTIAL_FLAGS) \
+ $(MACH_DEP) usrConfig_st.o version.o $(LIBS)
+ $(NM) tmp.o | $(MUNCH) >ctdt.c
+ $(MAKE) CC_COMPILER="-traditional" ctdt.o
+ $(CP) tmp.o tmp.1
+ $(LDOUT_SYMS) tmp.1
+ $(MKSYMTBL) tmp.1 > symTbl.c
+ $(COMPILE_SYMTBL) symTbl.c
+ $(LD) -o $@ $(LDFLAGS) $(ROM_LDFLAGS) -e $(ROM_ENTRY) \
+ $(RES_LOW_FLAGS) romInit_res.o bootInit_res.o symTbl.o \
+ tmp.o $(LIBS) ctdt.o
+ $(LDOUT_HOST) $@
+ $(ROMSIZEPROG) -b $(ROM_SIZE) $@
+ $(LDOUT_CONV) $@
+ - @ $(RM) tmp.?
+
+vxWorks.res_rom_res_low: depend.$(BSP_NAME) bootInit_res_low.o \
+ romInit_res_low.o usrConfig_st.o $(MACH_DEP) $(LDDEPS) $(LIBS)
+ - @ $(RM) $@
+ - @ $(RM) tmp.o
+ - @ $(RM) tmp.1
+ - @ $(RM) symTbl.c
+ - @ $(RM) symTbl.o
+ - @ $(RM) $(IMI)
+ - @ $(RM) $(IBR)
+ - @ $(RM) version.o
+ - @ $(RM) ctdt.c ctdt.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) -o tmp.o $(LD_PARTIAL_FLAGS) \
+ $(MACH_DEP) usrConfig_st.o version.o $(LIBS)
+ $(NM) tmp.o | $(MUNCH) >ctdt.c
+ $(MAKE) CC_COMPILER="-traditional" ctdt.o
+ $(CP) tmp.o tmp.1
+ $(LDOUT_SYMS) tmp.1
+ $(MKSYMTBL) tmp.1 > symTbl.c
+ $(COMPILE_SYMTBL) symTbl.c
+ $(LD) -o $@ $(LDFLAGS) $(ROM_LDFLAGS) -e $(ROM_ENTRY) \
+ $(RES_LOW_FLAGS) romInit_res_low.o bootInit_res_low.o \
+ symTbl.o tmp.o ctdt.o
+ $(LDOUT_HOST) $@
+ $(ROMSIZEPROG) -b $(ROM_SIZE) $@
+ $(LDOUT_CONV) $@
+ - @ $(RM) tmp.?
+
+vxWorks.res_rom.hex: depend.$(BSP_NAME) vxWorks.res_rom $(IMI)
+ - @ $(RM) $@
+ $(BINHEX) $(HEX_FLAGS) vxWorks.res_rom$(TXT_OFFSET) \
+ $(IMI_SPEC)$(IMI)$(IMI_OFFSET) > $@$(MAP_EXT)
+ -@ $(MV_BIN)
+
+vxWorks.res_rom_res_low.hex: depend.$(BSP_NAME) vxWorks.res_rom_res_low $(IMI)
+ - @ $(RM) $@
+ $(BINHEX) $(HEX_FLAGS) vxWorks.res_rom_res_low$(TXT_OFFSET) \
+ $(IMI_SPEC)$(IMI)$(IMI_OFFSET) > $@$(MAP_EXT)
+ -@ $(MV_BIN)
+
+# vxWorks.res_rom_nosym - rommable standalone version without symbol table
+# This builds a standalone VxWorks image that can be put in ROM.
+# There is no symbol table. Only the data segment
+# of this ROM image is copied into RAM.
+
+vxWorks.res_rom_nosym: depend.$(BSP_NAME) bootInit_res.o romInit_res.o \
+ usrConfig.o $(MACH_DEP) $(LDDEPS) $(LIBS)
+ - @ $(RM) $@ tmp.o
+ - @ $(RM) tmp.1
+ - @ $(RM) symTbl.c
+ - @ $(RM) symTbl.o
+ - @ $(RM) $(IMI)
+ - @ $(RM) $(IBR)
+ - @ $(RM) version.o
+ - @ $(RM) ctmp.o ctdt.c ctdt.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) -o ctmp.o $(LDFLAGS) $(LD_PARTIAL_FLAGS) usrConfig.o \
+ $(MACH_DEP) version.o $(LIBS)
+ $(NM) ctmp.o | $(MUNCH) ctmp.o >ctdt.c
+ $(MAKE) CC_COMPILER="-traditional" ctdt.o
+ $(LD) -o $@ $(LDFLAGS) $(ROM_LDFLAGS) -e $(ROM_ENTRY) \
+ $(RES_LOW_FLAGS) romInit_res.o bootInit_res.o \
+ ctmp.o ctdt.o
+ - @ $(RM) ctmp.o
+ $(LDOUT_HOST) $@
+ $(ROMSIZEPROG) -b $(ROM_SIZE) $@
+ $(LDOUT_CONV) $@
+
+vxWorks.res_rom_nosym.hex: depend.$(BSP_NAME) vxWorks.res_rom_nosym $(IMI)
+ - @ $(RM) $@
+ $(BINHEX) $(HEX_FLAGS) vxWorks.res_rom_nosym$(TXT_OFFSET) \
+ $(IMI_SPEC)$(IMI)$(IMI_OFFSET) > $@$(MAP_EXT)
+ -@ $(MV_BIN)
+
+vxWorks.res_rom_nosym_res_low: depend.$(BSP_NAME) bootInit_res_low.o \
+ romInit_res_low.o usrConfig.o $(MACH_DEP) $(LDDEPS) $(LIBS)
+ - @ $(RM) $@
+ - @ $(RM) tmp.o
+ - @ $(RM) tmp.1
+ - @ $(RM) symTbl.c
+ - @ $(RM) symTbl.o
+ - @ $(RM) $(IMI)
+ - @ $(RM) $(IBR)
+ - @ $(RM) version.o
+ - @ $(RM) ctmp.o ctdt.c ctdt.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) -o ctmp.o $(LDFLAGS) $(LD_PARTIAL_FLAGS) usrConfig.o \
+ $(MACH_DEP) version.o $(LIBS)
+ $(NM) ctmp.o | $(MUNCH) >ctdt.c
+ $(MAKE) CC_COMPILER="-traditional" ctdt.o
+ $(LD) -o $@ $(LDFLAGS) $(ROM_LDFLAGS) -e $(ROM_ENTRY) \
+ $(RES_LOW_FLAGS) romInit_res_low.o bootInit_res_low.o \
+ ctmp.o ctdt.o
+ - @ $(RM) ctmp.o
+ $(ROMSIZEPROG) -b $(ROM_SIZE) $@
+ $(LDOUT_CONV) $@
+ - @ $(RM) tmp.?
+
+vxWorks.res_rom_nosym_res_low.hex: depend.$(BSP_NAME) \
+ vxWorks.res_rom_nosym_res_low $(IMI)
+ - @ $(RM) $@
+ $(BINHEX) $(HEX_FLAGS) vxWorks.res_rom_nosym_res_low$(TXT_OFFSET) \
+ $(IMI_SPEC)$(IMI)$(IMI_OFFSET) > $@$(MAP_EXT)
+ -@ $(MV_BIN)
+
+################################# bootrom ######################################
+#
+# bootrom - compressed bootrom object module
+# bootrom.hex - compressed bootrom hex format
+# bootrom_uncmp - noncompressed bootrom object module
+# bootrom_uncmp.hex - noncompressed bootrom hex format
+#
+# Bootroms do not normally contain static C++ objects. Therefore, the
+# rules below do not contain steps to munch VxWorks. If you add static
+# objects to your bootrom configuration, you will need to munch your
+# bootrom image. See the rules for the vxWorks image, above, for an example.
+#
+
+bootrom.Z.s : depend.$(BSP_NAME) bootConfig.o $(MACH_DEP) $(LDDEPS) \
+ $(LIBS)
+ - @ $(RM) $@
+ - @ $(RM) tmp.o
+ - @ $(RM) tmp.Z
+ - @ $(RM) version.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) -o tmp.o $(LDFLAGS) $(ROM_LDFLAGS) -e $(USR_ENTRY) \
+ $(LD_HIGH_FLAGS) bootConfig.o version.o $(MACH_DEP) $(LIBS)
+ $(LDOUT_HOST) tmp.o
+ $(EXTRACT_BIN) < tmp.o | $(COMPRESS) > tmp.Z
+ $(BINTOASM) tmp.Z >bootrom.Z.s
+ - @ $(RM) tmp.o
+ - @ $(RM) tmp.Z
+
+bootrom : depend.$(BSP_NAME) bootInit.o romInit.o bootrom.Z.o \
+ $(LDDEPS) $(LIBS) $(BOOT_EXTRA)
+ - @ $(RM) $@
+ - @ $(RM) $(IMI)
+ - @ $(RM) $(IBR)
+ - @ $(RM) version.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) $(LDFLAGS) -e $(ROM_ENTRY) $(LD_LOW_FLAGS) \
+ -o $@ romInit.o bootInit.o version.o $(BOOT_EXTRA) \
+ $(LIBS) bootrom.Z.o
+ $(ROMSIZEPROG) -b $(ROM_SIZE) $@
+ $(LDOUT_CONV) $@
+
+bootrom_uncmp : depend.$(BSP_NAME) bootInit_uncmp.o romInit.o \
+ bootConfig.o $(MACH_DEP) $(LDDEPS) $(LIBS)
+ - @ $(RM) $@
+ - @ $(RM) $(IMI)
+ - @ $(RM) $(IBR)
+ - @ $(RM) version.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) $(LDFLAGS) $(ROM_LDFLAGS) -e $(ROM_ENTRY) $(LD_HIGH_FLAGS) \
+ -o $@ romInit.o bootInit_uncmp.o version.o bootConfig.o \
+ $(MACH_DEP) $(LIBS)
+ $(ROMSIZEPROG) -b $(ROM_SIZE) $@
+ $(LDOUT_CONV) $@
+
+bootrom_res : depend.$(BSP_NAME) bootInit_res.o romInit_res.o \
+ bootConfig.o $(MACH_DEP) $(LDDEPS) $(LIBS)
+ - @ $(RM) $@
+ - @ $(RM) $(IMI)
+ - @ $(RM) $(IBR)
+ - @ $(RM) version.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) $(LDFLAGS) $(ROM_LDFLAGS) -e $(ROM_ENTRY) \
+ $(RES_HIGH_FLAGS) -o $@ romInit_res.o bootInit_res.o \
+ version.o bootConfig.o $(MACH_DEP) $(LIBS)
+ $(ROMSIZEPROG) -b $(ROM_SIZE) $@
+ $(LDOUT_CONV) $@
+
+bootrom_res_high : depend.$(BSP_NAME) bootInit_res_high.o \
+ romInit_res_high.o bootConfig.o $(MACH_DEP) \
+ $(LDDEPS) $(LIBS)
+ - @ $(RM) $@
+ - @ $(RM) $(IMI)
+ - @ $(RM) $(IBR)
+ - @ $(RM) version.o
+ $(CC) -c $(CFLAGS) -o version.o $(CONFIG_ALL)/version.c
+ $(LD) $(LDFLAGS) $(ROM_LDFLAGS) -e $(ROM_ENTRY) \
+ $(RES_HIGH_FLAGS) -o $@ romInit_res_high.o \
+ bootInit_res_high.o version.o bootConfig.o $(MACH_DEP) $(LIBS)
+ $(ROMSIZEPROG) -b $(ROM_SIZE) $@
+ $(LDOUT_CONV) $@
+
+bootrom.hex : depend.$(BSP_NAME) bootrom $(IMI)
+ - @ $(RM) $@
+ $(BINHEX) $(HEX_FLAGS) $(SECT_SPEC)bootrom$(TXT_OFFSET) \
+ $(IMI_SPEC)$(IMI)$(IMI_OFFSET) > $@$(MAP_EXT)
+ -@ $(MV_BIN)
+
+imi : $(IBR)
+ $(LD) -o $@ -Ttext $(IMI_TEXT_ADRS) -Tdata $(IMI_DATA_ADRS) $(IBR)
+
+bootrom_uncmp.hex : depend.$(BSP_NAME) bootrom_uncmp $(IMI)
+ - @ $(RM) $@
+ $(BINHEX) $(HEX_FLAGS) $(SECT_SPEC)bootrom_uncmp$(TXT_OFFSET) \
+ $(IMI_SPEC)$(IMI)$(IMI_OFFSET) > $@$(MAP_EXT)
+ -@ $(MV_BIN)
+
+bootrom_res.hex : depend.$(BSP_NAME) bootrom_res $(IMI)
+ - @ $(RM) $@
+ $(BINHEX) $(HEX_FLAGS) bootrom_res$(TXT_OFFSET) \
+ $(IMI_SPEC)$(IMI)$(IMI_OFFSET) > $@$(MAP_EXT)
+ -@ $(MV_BIN)
+
+bootrom_res_high.hex : depend.$(BSP_NAME) bootrom_res_high $(IMI)
+ - @ $(RM) $@
+ $(BINHEX) $(HEX_FLAGS) bootrom_res_high$(TXT_OFFSET) \
+ $(IMI_SPEC)$(IMI)$(IMI_OFFSET) > $@$(MAP_EXT)
+ -@ $(MV_BIN)
diff --git a/data/mnet/GP10/Host/rm/test/sysinfo.log b/data/mnet/GP10/Host/rm/test/sysinfo.log
new file mode 100644
index 0000000..e0900af
--- /dev/null
+++ b/data/mnet/GP10/Host/rm/test/sysinfo.log
@@ -0,0 +1,1230 @@
+
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ////// ////// ////// ////// ////// |
+ ////// ////// ////// ////// ////// | T O R N A D O
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// | Development System
+ //// //// //// //// //// |
+ //// //// //// //// //// |
+ //// //// //// //// //// | Host Based Shell
+ //// //// //// //// //// |
+ //// //// //// //// //// |
+ /// /// /// /// /// | Version 1.0.1
+ /// /// /// /// /// |
+ // // // // // |
+ // // // // // |
+ // // // // // |
+ // // // // // |
+
+ Copyright Wind River Systems, Inc., 1995-1997
+
+C++ Constructors/Destructors Strategy is AUTOMATIC
+
+-> reboot
+Rebooting...
+Waiting to attach to target agent............
+
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ////// ////// ////// ////// ////// |
+ ////// ////// ////// ////// ////// | T O R N A D O
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// |
+ ///// ///// ///// ///// ///// | Development System
+ //// //// //// //// //// |
+ //// //// //// //// //// |
+ //// //// //// //// //// | Host Based Shell
+ //// //// //// //// //// |
+ //// //// //// //// //// |
+ /// /// /// /// /// | Version 1.0.1
+ /// /// /// /// /// |
+ // // // // // |
+ // // // // // |
+ // // // // // |
+ // // // // // |
+
+ Copyright Wind River Systems, Inc., 1995-1997
+
+C++ Constructors/Destructors Strategy is AUTOMATIC
+
+-> pwd
+K:/Workdirs/Integration/RIL3/src
+value = 0 = 0x0
+-> cd "../../pre-alpha"
+value = 0 = 0x0
+->
+->
+-> i
+ NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
+---------- ------------ -------- --- ---------- -------- -------- ------- -----
+tLogTask _logTask 1fc08fc 0 PEND 167bdb 1fc0868 0 0
+tExcTask _excTask 1fc3214 0 PEND 167bdb 1fc3184 0 0
+tShell _shell 1f99740 1 PEND 11582c 1f99420 0 0
+tWdbTask 0x14e284 1f9a8e8 3 READY 16780d 1f9a7d8 0 0
+tNetTask _netTask 1fbb664 50 READY 12a037 1fbb5fc 0 0
+value = 0 = 0x0
+-> pwd
+K:/Workdirs/Integration/pre-alpha
+value = 0 = 0x0
+-> <redirect
+vf0=open("/vio/0", 2, 0)
+new symbol "vf0" added to symbol table.
+vf0 = 0x3956fc: value = 6 = 0x6
+ioGlobalStdSet(0, vf0)
+value = 0 = 0x0
+ioGlobalStdSet(1, vf0)
+value = 1 = 0x1
+ioGlobalStdSet(2, vf0)
+value = 2 = 0x2
+-> <integ
+#
+# load all the module-init files (with global variables)
+#
+ld < K:/Workdirs/integration/l1proxy/I80486/l1proxy_init.out
+value = 27848716 = 0x1a8f00c
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm_init.out
+value = 27849328 = 0x1a8f270
+ld < K:/Workdirs/integration/mm/I80486/mmm_init.out
+value = 27849940 = 0x1a8f4d4
+ld < K:/Workdirs/integration/cc/I80486/ccm_init.out
+value = 27850552 = 0x1a8f738
+ld < K:/Workdirs/integration/rm/I80486/rm_init.out
+value = 27851164 = 0x1a8f99c
+
+#
+# load all the module-api files (used by other modules)
+#
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm_api.out
+value = 27851776 = 0x1a8fc00
+ld < K:/Workdirs/integration/rm/I80486/rm_api.out
+value = 12192372 = 0xba0a74
+
+#
+# load all the core module files next
+#
+ld < K:/Workdirs/integration/l1proxy/I80486/l1proxy.out
+value = 12192984 = 0xba0cd8
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm.out
+value = 12193596 = 0xba0f3c
+ld < K:/Workdirs/integration/ril3/I80486/ril3.out
+value = 12233552 = 0xbaab50
+ld < K:/Workdirs/integration/jcc/I80486/jcc.out
+value = 12234164 = 0xbaadb4
+ld < K:/Workdirs/integration/mm/I80486/mmm.out
+value = 12234776 = 0xbab018
+ld < K:/Workdirs/integration/cc/I80486/ccm.out
+value = 12239856 = 0xbac3f0
+ld < K:/Workdirs/integration/rm/I80486/rm.out
+value = 12257972 = 0xbb0ab4
+
+
+#
+# Initialization of all modules
+#
+CNI_LAPDM_Initialization
+value = 33050968 = 0x1f85158
+#cni_testInit
+
+#create a lapdm instance channel type 0, trx 0, channel num 1, link 1
+#CNI_LAPDM_Create_Instance(0, 0 , 0x2000, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x2800, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x3000, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x3800, 0)
+
+
+#L3 register a lapdm instance oid 0, sapi 0, layer3_id 10, and a call back function
+#CNI_LAPDM_Instance_Registration(0, 0, 0x20, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(1, 0, 0x28, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(2, 0, 0x30, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(3, 0, 0x38, cni_l3CallBack)
+
+# Start MM Task and print its data
+mmInit
+value = 33029640 = 0x1f7fe08
+mmDataPrint
+MM Entry: -1, -1, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 1, 33050944, 65535, 255
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 1, 33050816, 65535, 255
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 1
+value = 25 = 0x19
+
+
+# Start RRM Task
+rm_Task
+ENTER-rm_Go
+ENTER-rm_Main
+ENTER-rm_InitAll
+ENTER-sys_Init
+ENTER-sys_CreateMsgQs
+ENTER-sys_StartTasks
+ENTER-rm_WaitForL1Bootstrap: Entering...
+ENTER-rm_WaitForL1Rsp
+value = 33040848 = 0x1f829d0
+
+#
+initL1
+value = 32771356 = 0x1f40d1c
+newInitDsp
+value = 589833 = 0x90009
+#hpi2dsp(&cx6,0,0x3800)
+newGo
+value = -125829120 = 0xf8800000
+
+-> From DSP
+01f48e58: 10 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ENTER-rm_RetrvConfigFromOam
+ENTER-rm_PopulateSI2
+ENTER-rm_PopulateSI3
+ENTER-rm_PopulateSI4
+ENTER-rm_PopulateSI5
+ENTER-rm_PopulateSI6
+ENTER-rm_InitRm
+ENTER-rm_InitLAPDm
+CNI_LAPDM_Create_Instance: channelType 4, trx 0, channel 32768, link 32
+T_CNI_LAPDM_Channel::Assign , oid 0, gsmChannelType
+CNI_LAPDM_Instance_Registration: oid 0, sapi, 0, layer3_id 0, p_callback_function 368dbc
+CNI_LAPDM_Create_Instance: channelType 7, trx 0, channel 34816, link CNI_LAPDM_Find_LAPDM_
+OID: LAPDm OID not found (trx=0x320
+,channel=0xT_CNI_LAPDM_Channel::Assign , oid 20001,link=0x, gsmChannelType
+0CNI_LAPDM_Instance_Registration: oid )
+1CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x, sapi, 00, channel 0x, layer3_id 20000, l
+ink 0x, p_callback_function 0368dbc
+
+0CNI_LAPDM_Create_Instance: channelType 72 , trx 000, channel 25600, link 00
+0T_CNI_LAPDM_Channel::Assign , oid 02 , gsmChannelType
+0CNI_LAPDM_Create_Instance: channelType 21 , trx 003, channel 25600, lin0k 640
+0T_CNI_LAPDM_Channel::Assign , oid 320, gsmChannelType
+ CNI_LAPDM_Instance_Registration: oid 020, sapi, 00, layer3_id 00 , p_callback_function
+368dbc
+
+CNI_LAPDM_Instance_Registration: oid 3, sapi, 0, layer3_id 0, p_callback_function 368dbc
+CNI_LAPDM_Instance_Registration: oid 3, sapi, 3, layer3_id 0, p_callback_function 368dbc
+CNI_LAPDM_Create_Instance: channelType 2, trx 0, channel 3072, link 0
+T_CNI_LAPDM_Channel::Assign , oid 4, gsmChannelType
+CNI_LAPDM_Create_Instance: channelType 1, trx 0, channel CNI_LAPDM_Find_LAPDM_OID: LAPDm O
+ID not found (trx=0x30720, link ,channel=0x642800
+,link=0xT_CNI_LAPDM_Channel::Assign , oid 05)
+, gsmChannelType
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0xCNI_LAPDM_Instance_Registration: oid 04, ch
+annel 0x, sapi, 28000, link 0x, layer3_id 00
+, p_callback_function 0368dbc7
+ CNI_LAPDM_Instance_Registration: oid 050, sapi, 00, layer3_id 00 , p_callback_function 0
+368dbc0
+ CNI_LAPDM_Instance_Registration: oid 052, sapi, 30, layer3_id 30 , p_callback_function 0
+368db0c
+0CNI_LAPDM_Create_Instance: channelType 00 , trx 280 , channel 081920, link 00
+0T_CNI_LAPDM_Channel::Assign , oid 6
+, gsmChannelType
+
+CNI_LAPDM_Create_Instance: channelType CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=
+0x10, trx ,channel=0x03000, channel ,link=0x81920, link )
+64CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x
+0T_CNI_LAPDM_Channel::Assign , oid , channel 0x73000, gsmChannelType
+, link 0xCNI_LAPDM_Instance_Registration: oid 06
+, sapi, 007, layer3_id 00, p_callback_function 0368dbc
+0CNI_LAPDM_Instance_Registration: oid 06 , sapi, 030, layer3_id 00, p_callback_function 2
+368dbc
+0CNI_LAPDM_Instance_Registration: oid 37 , sapi, 000, layer3_id 00, p_callback_function 0
+368dbc
+30CNI_LAPDM_Create_Instance: channelType 00, trx 00 , channel 0102400, link 0
+
+
+T_CNI_LAPDM_Channel::Assign , oid CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x80,
+ gsmChannelType
+,channel=0xCNI_LAPDM_Create_Instance: channelType 38001,link=0x, trx 00)
+, channel CNI_LAPDM_Ph_Callback lapdm oid is null, trx10240 0x, link 064, channel 0x
+3800T_CNI_LAPDM_Channel::Assign , oid , link 0x90, gsmChannelType
+
+CNI_LAPDM_Instance_Registration: oid 087, sapi, 00, layer3_id 00 , p_callback_function 03
+68dbc0
+ CNI_LAPDM_Instance_Registration: oid 080, sapi, 30, layer3_id 20 , p_callback_function 0
+368dbc3
+ CNI_LAPDM_Instance_Registration: oid 090, sapi, 00, layer3_id 00 , p_callback_function 3
+8368dbc
+0CNI_LAPDM_Create_Instance: channelType 00 , trx 000, channel 12288
+, link
+0CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not fo
+und (trx=0xT_CNI_LAPDM_Channel::Assign , oid 010,channel=0x, gsmChannelType
+3000CNI_LAPDM_Create_Instance: channelType ,link=0x10, trx )
+0CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x, channel 012288, channel 0x, link 300064,
+ link 0x
+0T_CNI_LAPDM_Channel::Assign , oid
+110, gsmChannelType
+7CNI_LAPDM_Instance_Registration: oid 100, sapi, 00 , layer3_id 000, p_callback_function
+ 368dbc0
+0CNI_LAPDM_Instance_Registration: oid 100, sapi, 23 , layer3_id 003, p_callback_function
+ 368dbc0
+0CNI_LAPDM_Instance_R egistration: oid 0110, sapi, 030, layer3_id 00, p_callback_functio
+n 0368dbc
+0CNI_LAPDM_Create_Instance: channelType 00 , trx
+0
+, channel CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x143360, link ,channel=0x038
+00
+,link=0xT_CNI_LAPDM_Channel::Assign , oid 012)
+, gsmChannelType
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0xCNI_LAPDM_Create_Instance: channelType 01,
+channel 0x, trx 38000, link 0x, channel 014336
+, link 0647
+ T_CNI_LAPDM_Channel::Assign , oid 0130, gsmChannelType
+ CNI_LAPDM_Instanc0e_Registration: oid 012 , sapi, 000, layer3_id 00, p_callback_function
+ 2368dbc
+0CNI_LAPDM_Instance_Registration: oid 312 , sapi, 030, layer3_id 00, p_callback_function
+0368dbc
+38CNI_LAPDM_Instance_Registration: oid 130, sapi, 00 , layer3_id 000, p_callback_function
+ 368dbc
+
+
+ENTER-rm_InitIRT
+ENTER-rm_InitL1
+ENTER-rm_ConfigTrx
+ENTER-rm_SendTrxConfigToTrx: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+01f408ac: 07 00 00 00 10 15 00 00 02 00 00 ee ee ee ee ee
+01f408bc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f408cc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f408dc: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+From DSP
+01f48e58: 10 16 00 00 3a 01 01 00 40 00 00 00 07 00 00 00
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+01f408ac: 06 00 00 00 10 17 00 00 00 05 00 ee ee ee ee ee
+01f408bc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f408cc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f408dc: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 20 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 28 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 30 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 38 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 20 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 28 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 30 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 38 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 80 00 20
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 88 00 20
+
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x9000,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x9000, link 0x20
+07 00 00 00 02 01 00 00 90 00 20
+
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x9000,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x9000, link 0x20
+07 00 00 00 02 01 00 00 90 00 20
+
+From DSP
+01f48e58: 10 18 00 00 00 01 01 00 40 00 00 00 05 00 00 00
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+send to dsp:ENTER-rm_WaitForL1Rsp
+
+01f408ac: 06 00 00 00 10 17 00 00 02 01 00 ee ee ee ee ee
+01f408bc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f408cc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f408dc: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0a 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0a 00 40
+
+From DSP
+01f48e58: 10 18 00 00 02 01 01 00 47 00 00 00 07 00 00 00
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+01f408ac: 06 00 00 00 10 17 00 00 04 01 00 ee ee ee ee ee
+01f408bc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f408cc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f408dc: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0c 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0c 00 40
+
+From DSP
+01f48e58: 10 18 00 00 04 d8 00 02 02 00 00 00 80 00 00 00
+SLOT ACTIVATION FINISHED
+ENTER-rm_SendSetUGainToTrx: Entering...
+ENTER-rm_SendSetDGainToTrx: Entering...
+ENTER-rm_SendTuneSynthToTrx: Entering...
+ENTER-rm_SendConfigFpgaDelayToTrx: Entering...
+CONFIG TRX/SLOTS FINISHED
+End of rm_SendSynchInfoToBcchTrx()
+ENTER-rm_SendAllSystemInfosToBcchTrx
+ENTER-rm_SendSystemInfo2ToBcchTrx
+ENTER-rm_SendSystemInfo3ToBcchTrx
+send to dsp:ENTER-rm_SendSystemInfo4ToBcchTrx
+
+End of rm_SendAllSystemInfosToBcchTrx, bcchTrx=001f408ac
+: ENTER-rm_SendSacchFillingToTrx
+0ENTER-rm_SendSacchFillingToTrx
+5End of rm_SendSacchFillingSI5 and SI6
+ STAY in RM_MAIN while(1) loop
+00 00 00 10 10 00 00 00 01 00 ee ee ee ee ee
+01f408bc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f408cc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f408dc: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f408ec: 05 00 00 00 10 11 00 00 00 01 00 ee ee ee ee ee
+01f408fc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f4090c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f4091c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f4092c: 07 00 00 00 10 12 00 00 00 00 00 ee ee ee ee ee
+01f4093c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f4094c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f4095c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f4096c: 07 00 00 00 10 12 00 00 01 00 00 ee ee ee ee ee
+01f4097c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f4098c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f4099c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f409ac: 07 00 00 00 10 12 00 00 02 00 00 ee ee ee ee ee
+01f409bc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f409cc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f409dc: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f409ec: 07 00 00 00 10 12 00 00 03 00 00 ee ee ee ee ee
+01f409fc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f40a0c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f40a1c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f40a2c: 08 00 00 00 10 14 00 00 00 00 00 00 ee ee ee ee
+01f40a3c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f40a4c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f40a5c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f40a6c: 22 00 00 00 0c 00 11 00 80 00 02 17 16 06 1a 8e
+01f40a7c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
+01f40a8c: 01 04 08 01 00 00 ee ee ee ee ee ee ee ee ee ee
+01f40a9c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 8 messages
+
+->
+-> <kill
+td lapdm_phserver
+value = 0 = 0x0
+td lapdm_dlserver
+value = 0 = 0x0
+td mmMain
+value = 0 = 0x0
+td rmTask
+value = 0 = 0x0
+td tDspUp
+undefined symbol: tDspUp
+-> i
+ NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
+---------- ------------ -------- --- ---------- -------- -------- ------- -----
+tLogTask _logTask 1fc08fc 0 PEND 167bdb 1fc0868 0 0
+tExcTask _excTask 1fc3214 0 PEND 167bdb 1fc3184 0 0
+tShell _shell 1f99740 1 PEND 11582c 1f99420 0 0
+tWdbTask 0x14e284 1f9a8e8 3 READY 16780d 1f9a7d8 0 0
+tNetTask _netTask 1fbb664 50 READY 12a037 1fbb5fc 0 0
+L1TaskDn taskDspDn(vo 1f40d1c 100 PEND 167bdb 1f4085c 0 0
+L1TaskUp taskDspUp(vo 1f48ec4 100 PEND 11582c 1f48e30 0 0
+value = 0 = 0x0
+-> td L1TaskDn
+value = 0 = 0x0
+-> td L1TaskUp
+value = 0 = 0x0
+-> <integ
+#
+# load all the module-init files (with global variables)
+#
+ld < K:/Workdirs/integration/l1proxy/I80486/l1proxy_init.out
+value = 27848716 = 0x1a8f00c
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm_init.out
+value = 27849328 = 0x1a8f270
+ld < K:/Workdirs/integration/mm/I80486/mmm_init.out
+value = 27849940 = 0x1a8f4d4
+ld < K:/Workdirs/integration/cc/I80486/ccm_init.out
+value = 27850552 = 0x1a8f738
+ld < K:/Workdirs/integration/rm/I80486/rm_init.out
+value = 27851164 = 0x1a8f99c
+
+#
+# load all the module-api files (used by other modules)
+#
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm_api.out
+value = 27851776 = 0x1a8fc00
+ld < K:/Workdirs/integration/rm/I80486/rm_api.out
+value = 12192372 = 0xba0a74
+
+#
+# load all the core module files next
+#
+ld < K:/Workdirs/integration/l1proxy/I80486/l1proxy.out
+value = 12192984 = 0xba0cd8
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm.out
+value = 12193596 = 0xba0f3c
+ld < K:/Workdirs/integration/ril3/I80486/ril3.out
+value = 12233552 = 0xbaab50
+ld < K:/Workdirs/integration/jcc/I80486/jcc.out
+value = 12234164 = 0xbaadb4
+ld < K:/Workdirs/integration/mm/I80486/mmm.out
+value = 32045856 = 0x1e8fb20
+ld < K:/Workdirs/integration/cc/I80486/ccm.out
+value = 32046468 = 0x1e8fd84
+ld < K:/Workdirs/integration/rm/I80486/rm.out
+value = 12251360 = 0xbaf0e0
+
+
+#
+# Initialization of all modules
+#
+CNI_LAPDM_Initialization
+value = 33065660 = 0x1f88abc
+#cni_testInit
+
+#create a lapdm instance channel type 0, trx 0, channel num 1, link 1
+#CNI_LAPDM_Create_Instance(0, 0 , 0x2000, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x2800, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x3000, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x3800, 0)
+
+
+#L3 register a lapdm instance oid 0, sapi 0, layer3_id 10, and a call back function
+#CNI_LAPDM_Instance_Registration(0, 0, 0x20, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(1, 0, 0x28, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(2, 0, 0x30, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(3, 0, 0x38, cni_l3CallBack)
+
+# Start MM Task and print its data
+mmInit
+value = 32763220 = 0x1f3ed54
+mmDataPrint
+MM Entry: -1, -1, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 1, 32784524, 65535, 255
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 1, 32784396, 65535, 255
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 1
+value = 25 = 0x19
+
+
+# Start RRM Task
+rm_Task
+ENTER-rm_Go
+ENTER-rm_Main
+ENTER-rm_InitAll
+ENTER-sys_Init
+ENTER-sys_CreateMsgQs
+ENTER-sys_StartTasks
+ENTER-rm_WaitForL1Bootstrap: Entering...
+ENTER-rm_WaitForL1Rsp
+value = 32774428 = 0x1f4191c
+
+#
+initL1
+value = 32657804 = 0x1f2518c
+newInitDsp
+value = 589833 = 0x90009
+#hpi2dsp(&cx6,0,0x3800)
+newGo
+value = -125829120 = 0xf8800000
+
+-> From DSP
+01f2d2c8: 10 20 00 00 20 00 00 01 01 00 00 00 00 00 01 01
+ENTER-rm_RetrvConfigFromOam
+ENTER-rm_PopulateSI2
+ENTER-rm_PopulateSI3
+ENTER-rm_PopulateSI4
+ENTER-rm_PopulateSI5
+ENTER-rm_PopulateSI6
+ENTER-rm_InitRm
+ENTER-rm_InitLAPDm
+CNI_LAPDM_Create_Instance: channelType 4, trx 0, channel 32768, link 32
+T_CNI_LAPDM_Channel::Assign , oid 0, gsmChannelType
+CNI_LAPDM_Instance_Registration: oid 0, sapi, 0, layer3_id 0, p_callback_function 368dbc
+CNI_LAPDM_Create_Instance: channelType 7, trx 0, channel 34816, link CNI_LAPDM_Find_LAPDM_
+OID: LAPDm OID not found (trx=0x320
+,channel=0xT_CNI_LAPDM_Channel::Assign , oid 20001,link=0x, gsmChannelType
+0CNI_LAPDM_Instance_Registration: oid )
+1CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x, sapi, 00, channel 0x, layer3_id 20000, l
+ink 0x, p_callback_function 0368dbc
+
+0CNI_LAPDM_Create_Instance: channelType 72 , trx 000, channel 25600, link 00
+0T_CNI_LAPDM_Channel::Assign , oid 02 , gsmChannelType
+0CNI_LAPDM_Create_Instance: channelType 21 , trx 003, channel 25600, lin0k 640
+0T_CNI_LAPDM_Channel::Assign , oid 320, gsmChannelType
+ CNI_LAPDM_Instance_Registration: oid 020, sapi, 00, layer3_id 00 , p_callback_function
+368dbc
+
+CNI_LAPDM_Instance_Registration: oid 3, sapi, 0, layer3_id 0, p_callback_function 368dbc
+CNI_LAPDM_Instance_Registration: oid 3, sapi, 3, layer3_id 0, p_callback_function 368dbc
+CNI_LAPDM_Create_Instance: channelType 2, trx 0, channel 3072, link 0
+T_CNI_LAPDM_Channel::Assign , oid 4, gsmChannelType
+CNI_LAPDM_Create_Instance: channelType 1, trx 0, channel CNI_LAPDM_Find_LAPDM_OID: LAPDm O
+ID not found (trx=0x30720, link ,channel=0x642800
+,link=0xT_CNI_LAPDM_Channel::Assign , oid 05)
+, gsmChannelType
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0xCNI_LAPDM_Instance_Registration: oid 04, ch
+annel 0x, sapi, 28000, link 0x, layer3_id 00
+, p_callback_function 0368dbc7
+ CNI_LAPDM_Instance_Registration: oid 050, sapi, 00, layer3_id 00 , p_callback_function 0
+368dbc0
+ CNI_LAPDM_Instance_Registration: oid 052, sapi, 30, layer3_id 30 , p_callback_function 0
+368db0c
+0CNI_LAPDM_Create_Instance: channelType 00 , trx 280 , channel 081920, link 00
+0T_CNI_LAPDM_Channel::Assign , oid 6
+, gsmChannelType
+
+CNI_LAPDM_Create_Instance: channelType CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=
+0x10, trx ,channel=0x03000, channel ,link=0x81920, link )
+64CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x
+0T_CNI_LAPDM_Channel::Assign , oid , channel 0x73000, gsmChannelType
+, link 0xCNI_LAPDM_Instance_Registration: oid 06
+, sapi, 007, layer3_id 00, p_callback_function 0368dbc
+0CNI_LAPDM_Instance_Registration: oid 06 , sapi, 030, layer3_id 00, p_callback_function 2
+368dbc
+0CNI_LAPDM_Instance_Registration: oid 37 , sapi, 000, layer3_id 00, p_callback_function 0
+368dbc
+30CNI_LAPDM_Create_Instance: channelType 00, trx 00 , channel 0102400, link 0
+
+
+T_CNI_LAPDM_Channel::Assign , oid CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x80,
+ gsmChannelType
+,channel=0xCNI_LAPDM_Create_Instance: channelType 38001,link=0x, trx 00)
+, channel CNI_LAPDM_Ph_Callback lapdm oid is null, trx10240 0x, link 064, channel 0x
+3800T_CNI_LAPDM_Channel::Assign , oid , link 0x90, gsmChannelType
+
+CNI_LAPDM_Instance_Registration: oid 087, sapi, 00, layer3_id 00 , p_callback_function 03
+68dbc0
+ CNI_LAPDM_Instance_Registration: oid 080, sapi, 30, layer3_id 20 , p_callback_function 0
+368dbc3
+ CNI_LAPDM_Instance_Registration: oid 090, sapi, 00, layer3_id 00 , p_callback_function 3
+8368dbc
+0CNI_LAPDM_Create_Instance: channelType 00 , trx 000, channel 12288
+, link
+0CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not fo
+und (trx=0xT_CNI_LAPDM_Channel::Assign , oid 010,channel=0x, gsmChannelType
+3000CNI_LAPDM_Create_Instance: channelType ,link=0x10, trx )
+0CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x, channel 012288, channel 0x, link 300064,
+ link 0x
+0T_CNI_LAPDM_Channel::Assign , oid
+110, gsmChannelType
+7CNI_LAPDM_Instance_Registration: oid 100, sapi, 00 , layer3_id 000, p_callback_function
+ 368dbc0
+0CNI_LAPDM_Instance_Registration: oid 100, sapi, 23 , layer3_id 003, p_callback_function
+ 368dbc0
+0CNI_LAPDM_Instance_R egistration: oid 0110, sapi, 030, layer3_id 00, p_callback_functio
+n 0368dbc
+0CNI_LAPDM_Create_Instance: channelType 00 , trx
+0
+, channel CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x143360, link ,channel=0x038
+00
+,link=0xT_CNI_LAPDM_Channel::Assign , oid 012)
+, gsmChannelType
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0xCNI_LAPDM_Create_Instance: channelType 01,
+channel 0x, trx 38000, link 0x, channel 014336
+, link 0647
+ T_CNI_LAPDM_Channel::Assign , oid 0130, gsmChannelType
+ CNI_LAPDM_Instanc0e_Registration: oid 012 , sapi, 000, layer3_id 00, p_callback_function
+ 2368dbc
+0CNI_LAPDM_Instance_Registration: oid 312 , sapi, 030, layer3_id 00, p_callback_function
+0368dbc
+38CNI_LAPDM_Instance_Registration: oid 130, sapi, 00 , layer3_id 000, p_callback_function
+ 368dbc
+
+
+ENTER-rm_InitIRT
+ENTER-rm_InitL1
+ENTER-rm_ConfigTrx
+ENTER-rm_SendTrxConfigToTrx: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+01f24d1c: 07 00 00 00 10 15 00 00 02 00 00 ee ee ee ee ee
+01f24d2c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d3c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d4c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+From DSP
+01f2d2c8: 10 16 00 00 00 00 00 00 f4 cc 00 02 01 00 00 00
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+01f24d1c: 06 00 00 00 10 17 00 00 00 05 00 ee ee ee ee ee
+01f24d2c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d3c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d4c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 20 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 28 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 30 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 38 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 20 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 28 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 30 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 38 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 80 00 20
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 88 00 20
+
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x9000,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x9000, link 0x20
+07 00 00 00 02 01 00 00 90 00 20
+
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x9000,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x9000, link 0x20
+07 00 00 00 02 01 00 00 90 00 20
+
+From DSP
+01f2d2c8: 10 18 00 00 00 01 01 00 40 00 00 00 07 00 00 00
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+send to dsp:ENTER-rm_WaitForL1Rsp
+
+01f24d1c: 06 00 00 00 10 17 00 00 02 01 00 ee ee ee ee ee
+01f24d2c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d3c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d4c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0a 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0a 00 40
+
+From DSP
+01f2d2c8: 10 18 00 00 02 f6 bf 01 bc cb 00 02 00 00 00 00
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+01f24d1c: 06 00 00 00 10 17 00 00 04 01 00 ee ee ee ee ee
+01f24d2c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d3c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d4c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0c 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0c 00 40
+
+From DSP
+01f2d2c8: 10 18 00 00 04 00 00 00 47 00 00 00 00 00 00 00
+SLOT ACTIVATION FINISHED
+ENTER-rm_SendSetUGainToTrx: Entering...
+ENTER-rm_SendSetDGainToTrx: Entering...
+ENTER-rm_SendTuneSynthToTrx: Entering...
+ENTER-rm_SendConfigFpgaDelayToTrx: Entering...
+CONFIG TRX/SLOTS FINISHED
+End of rm_SendSynchInfoToBcchTrx()
+ENTER-rm_SendAllSystemInfosToBcchTrx
+ENTER-rm_SendSystemInfo2ToBcchTrx
+ENTER-rm_SendSystemInfo3ToBcchTrx
+send to dsp:ENTER-rm_SendSystemInfo4ToBcchTrx
+
+End of rm_SendAllSystemInfosToBcchTrx, bcchTrx=001f24d1c
+: ENTER-rm_SendSacchFillingToTrx
+0ENTER-rm_SendSacchFillingToTrx
+5End of rm_SendSacchFillingSI5 and SI6
+ STAY in RM_MAIN while(1) loop
+00 00 00 10 10 00 00 00 01 00 ee ee ee ee ee
+01f24d2c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d3c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d4c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f24d5c: 05 00 00 00 10 11 00 00 00 01 00 ee ee ee ee ee
+01f24d6c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d7c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24d8c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f24d9c: 07 00 00 00 10 12 00 00 00 00 00 ee ee ee ee ee
+01f24dac: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24dbc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24dcc: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f24ddc: 07 00 00 00 10 12 00 00 01 00 00 ee ee ee ee ee
+01f24dec: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24dfc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24e0c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f24e1c: 07 00 00 00 10 12 00 00 02 00 00 ee ee ee ee ee
+01f24e2c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24e3c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24e4c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f24e5c: 07 00 00 00 10 12 00 00 03 00 00 ee ee ee ee ee
+01f24e6c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24e7c: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24e8c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f24e9c: 08 00 00 00 10 14 00 00 00 00 00 00 ee ee ee ee
+01f24eac: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24ebc: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f24ecc: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f24edc: 22 00 00 00 0c 00 11 00 80 00 02 17 16 06 1a 8e
+01f24eec: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
+01f24efc: 01 04 08 01 00 00 ee ee ee ee ee ee ee ee ee ee
+01f24f0c: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 8 messages
+
+->
+->
+-> <kil
+can't open input 'kil'
+ errno = 0x2
+-> <kill
+td lapdm_phserver
+value = 0 = 0x0
+td lapdm_dlserver
+value = 0 = 0x0
+td mmMain
+value = 0 = 0x0
+td rmTask
+value = 0 = 0x0
+td tDspUp
+undefined symbol: tDspUp
+-> i
+ NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
+---------- ------------ -------- --- ---------- -------- -------- ------- -----
+tLogTask _logTask 1fc08fc 0 PEND 167bdb 1fc0868 0 0
+tExcTask _excTask 1fc3214 0 PEND 167bdb 1fc3184 0 0
+tShell _shell 1f99740 1 PEND 11582c 1f99420 0 0
+tWdbTask 0x14e284 1f9a8e8 3 READY 16780d 1f9a7d8 0 0
+tNetTask _netTask 1fbb664 50 READY 12a037 1fbb5fc 0 0
+L1TaskDn taskDspDn(vo 1f2518c 100 PEND 167bdb 1f24ccc 0 0
+L1TaskUp taskDspUp(vo 1f2d334 100 PEND 167bdb 1f2d1ac 0 0
+value = 0 = 0x0
+-> <kill
+td lapdm_phserver
+Task not found.
+value = -1 = 0xffffffff
+td lapdm_dlserver
+Task not found.
+value = -1 = 0xffffffff
+td mmMain
+Cannot kill a task which is safe from deletion
+value = -1 = 0xffffffff
+td rmTask
+undefined symbol: rmTask
+-> i
+ NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
+---------- ------------ -------- --- ---------- -------- -------- ------- -----
+tLogTask _logTask 1fc08fc 0 PEND 167bdb 1fc0868 0 0
+tExcTask _excTask 1fc3214 0 PEND 167bdb 1fc3184 0 0
+tShell _shell 1f99740 1 PEND 11582c 1f99420 0 0
+tWdbTask 0x14e284 1f9a8e8 3 READY 16780d 1f9a7d8 0 0
+tNetTask _netTask 1fbb664 50 READY 12a037 1fbb5fc 0 0
+L1TaskDn taskDspDn(vo 1f2518c 100 PEND 167bdb 1f24ccc 0 0
+L1TaskUp taskDspUp(vo 1f2d334 100 PEND 167bdb 1f2d1ac 0 0
+value = 0 = 0x0
+-> td L1TaskDn
+value = 0 = 0x0
+-> td L1TaskUp
+value = 0 = 0x0
+-> pwd
+K:/Workdirs/Integration/pre-alpha
+value = 0 = 0x0
+-> <integ
+#
+# load all the module-init files (with global variables)
+#
+ld < K:/Workdirs/integration/l1proxy/I80486/l1proxy_init.out
+value = 27848716 = 0x1a8f00c
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm_init.out
+value = 27849328 = 0x1a8f270
+ld < K:/Workdirs/integration/mm/I80486/mmm_init.out
+value = 27849940 = 0x1a8f4d4
+ld < K:/Workdirs/integration/cc/I80486/ccm_init.out
+value = 27850552 = 0x1a8f738
+ld < K:/Workdirs/integration/rm/I80486/rm_init.out
+value = 27851164 = 0x1a8f99c
+
+#
+# load all the module-api files (used by other modules)
+#
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm_api.out
+value = 13237656 = 0xc9fd98
+ld < K:/Workdirs/integration/rm/I80486/rm_api.out
+value = 12192372 = 0xba0a74
+
+#
+# load all the core module files next
+#
+ld < K:/Workdirs/integration/l1proxy/I80486/l1proxy.out
+value = 12192984 = 0xba0cd8
+ld < K:/Workdirs/integration/lapdm/I80486/lapdm.out
+value = 32045232 = 0x1e8f8b0
+ld < K:/Workdirs/integration/ril3/I80486/ril3.out
+value = 12233552 = 0xbaab50
+ld < K:/Workdirs/integration/jcc/I80486/jcc.out
+value = 12234164 = 0xbaadb4
+ld < K:/Workdirs/integration/mm/I80486/mmm.out
+value = 32045856 = 0x1e8fb20
+ld < K:/Workdirs/integration/cc/I80486/ccm.out
+value = 32046468 = 0x1e8fd84
+ld < K:/Workdirs/integration/rm/I80486/rm.out
+value = 27851776 = 0x1a8fc00
+
+
+#
+# Initialization of all modules
+#
+CNI_LAPDM_Initialization
+value = 32756824 = 0x1f3d458
+#cni_testInit
+
+#create a lapdm instance channel type 0, trx 0, channel num 1, link 1
+#CNI_LAPDM_Create_Instance(0, 0 , 0x2000, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x2800, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x3000, 0)
+#CNI_LAPDM_Create_Instance(0, 0 , 0x3800, 0)
+
+
+#L3 register a lapdm instance oid 0, sapi 0, layer3_id 10, and a call back function
+#CNI_LAPDM_Instance_Registration(0, 0, 0x20, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(1, 0, 0x28, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(2, 0, 0x30, cni_l3CallBack)
+#CNI_LAPDM_Instance_Registration(3, 0, 0x38, cni_l3CallBack)
+
+# Start MM Task and print its data
+mmInit
+value = 32690596 = 0x1f2d1a4
+mmDataPrint
+MM Entry: -1, -1, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 1, 32747104, 65535, 255
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 1
+MM Entry: -1, -1, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 1, 32746976, 65535, 255
+MM Entry: 0, 0, 0, 0, 0
+MM Entry: 0, 0, 0, 0, 1
+value = 25 = 0x19
+
+
+# Start RRM Task
+rm_Task
+ENTER-rm_Go
+ENTER-rm_Main
+ENTER-rm_InitAll
+ENTER-sys_Init
+ENTER-sys_CreateMsgQs
+ENTER-sys_StartTasks
+ENTER-rm_WaitForL1Bootstrap: Entering...
+ENTER-rm_WaitForL1Rsp
+value = 32928164 = 0x1f671a4
+
+#
+initL1
+value = 32587556 = 0x1f13f24
+newInitDsp
+value = 589833 = 0x90009
+#hpi2dsp(&cx6,0,0x3800)
+newGo
+value = -125829120 = 0xf8800000
+
+-> From DSP
+01f1c060: 10 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ENTER-rm_RetrvConfigFromOam
+ENTER-rm_PopulateSI2
+ENTER-rm_PopulateSI3
+ENTER-rm_PopulateSI4
+ENTER-rm_PopulateSI5
+ENTER-rm_PopulateSI6
+ENTER-rm_InitRm
+ENTER-rm_InitLAPDm
+CNI_LAPDM_Create_Instance: channelType 4, trx 0, channel 32768, link 32
+T_CNI_LAPDM_Channel::Assign , oid 0, gsmChannelType
+CNI_LAPDM_Instance_Registration: oid 0, sapi, 0, layer3_id 0, p_callback_function 368dbc
+CNI_LAPDM_Create_Instance: channelType 7, trx 0, channel 34816, link 32
+T_CNI_LAPDM_Channel::Assign , oid 1, gsmChannelType
+CNI_LAPDM_Instance_Registration: oid 1, sapi, 0, layer3_id 0, p_callback_function 368dbc
+CNI_LAPDM_Create_Instance: channelType 2, trx 0, channel 2560, link 0
+T_CNI_LAPDM_Channel::Assign , oid 2, gsmChannelType
+CNI_LAPDM_Create_Instance: channelType 1, trx 0, channel 2560, link 64
+T_CNI_LAPDM_Channel::Assign , oid 3, gsmChannelType
+CNI_LAPDM_Instance_Registration: oid 2, sapi, 0, layer3_id 0, p_callback_function 368dbc
+CNI_LAPDM_Instance_Registration: oid CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x
+30, sapi, ,channel=0x02000, layer3_id ,link=0x00, p_callback_function )
+368dbcCNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x
+0CNI_LAPDM_Instance_Registration: oid , channel 0x32000, sapi, , link 0x30, layer3_id
+00, p_callback_function 7368dbc
+0CNI_LAPDM_Create_Instance: channelType 02 , trx 000, channel 30720, link 00
+0T_CNI_LAPDM_Channel::Assign , oid 24 , gsmChannelType
+0CNI_LAPDM_Create_Instance: channelType 31 , trx 000, channel 30720, 0link 6420
+ T_CNI_LAPDM_Channel::Assign , oid 050, gsmChannelType
+ CNI_LAPDM_Instance_Registration: oid 040, sapi, 0
+, layer3_id
+0, p_callback_function 368dbc
+CNI_LAPDM_Instance_Registration: oid 5, sapi, 0, layer3_id 0, p_callback_function 368dbc
+CNI_LAPDM_Instance_Registration: oid 5, sapi, 3, layer3_id 0, p_callback_function 368dbc
+CNI_LAPDM_Create_Instance: channelType 0, trx 0, channel 8192, link 0
+T_CNI_LAPDM_Channel::Assign , oid 6, gsmChannelType
+CNI_LAPDM_Create_Instance: channelType 1, trx 0, channel CNI_LAPDM_Find_LAPDM_OID: LAPDm O
+ID not found (trx=0x81920, link ,channel=0x642800
+,link=0xT_CNI_LAPDM_Channel::Assign , oid 07)
+, gsmChannelType
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0xCNI_LAPDM_Instance_Registration: oid 06, ch
+annel 0x, sapi, 28000, link 0x, layer3_id 00
+, p_callback_function 0368dbc7
+ CNI_LAPDM_Instance_Registration: oid 060, sapi, 30, layer3_id 00 , p_callback_function 0
+368dbc0
+ CNI_LAPDM_Instance_Registration: oid 072, sapi, 00, layer3_id 30 , p_callback_function 0
+368db0c
+0CNI_LAPDM_Create_Instance: channelType 00 , trx 280 , channel 0102400, link 00
+0T_CNI_LAPDM_Channel::Assign , oid 8
+, gsmChannelType
+
+CNI_LAPDM_Create_Instance: channelType CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=
+0x10, trx ,channel=0x03000, channel ,link=0x102400, link )
+64CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x
+0T_CNI_LAPDM_Channel::Assign , oid , channel 0x93000, gsmChannelType
+, link 0xCNI_LAPDM_Instance_Registration: oid 08
+, sapi, 007, layer3_id 00, p_callback_function 0368db c0
+0CNI_LAPDM_Instance_Registration: oid 80, sapi, 03 , layer3_id 002, p_callback_function
+368dbc0
+3CNI_LAPDM_Instance_Registration: oid 90, sapi, 00 , layer3_id 000, p_callback_function
+368dbc30
+ CNI_LAPDM_Create_Instance: channelType 000, trx 00, channel 012288 , link
+0
+
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0xT_CNI_LAPDM_Channel::Assign , oid 010
+,channel=0x, gsmChannelType
+3800CNI_LAPDM_Create_Instance: channelType ,link=0x10, trx )
+0CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x, ch0annel , channel 0x122883800, link , l
+ink 0x640
+
+T_CNI_LAPDM_Channel::Assign , oid 0117, gsmChannelType
+ CNI_LAPDM_Instance_Registration: oid 0100, sapi, 00, layer3_id 00 , p_callback_function
+0368dbc0
+ CNI_LAPDM_Instance_Registration: oid 0102, sapi, 30, layer3_id 30 , p_callback_function
+0368dbc0
+ CNI_LAPDM_Instance_Registration: oid 0110, sapi, 038, layer3_id 00, p_callback_function
+ 0368dbc
+0CNI_LAPDM_Create_Instance: channelType 00 , trx
+0
+, channel CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (t14336rx=0x, link 00,channel=0x
+3800T_CNI_LAPDM_Channel::Assign , oid ,link=0x120, gsmChannelType
+)
+CNI_LAPDM_Create_Instance: channelType CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x10,
+trx , channel 0x03800, channel , link 0x143360, link
+640
+7T_CNI_LAPDM_Channel::Assign , oid 130, gsmChannelType
+0CNI_LAPDM_Instance_Registration: oid 120, sapi, 00 , layer3_id 000, p_callback_function
+ 368dbc0
+2CNI_LAPDM_Instance_Registration: oid 120, sapi, 33 , layer3_id 000, p_callback_function
+ 368dbc0
+0CNI_LAPDM_ Instance_Registration: oid 3813 , sapi, 000, layer3_id 00, p_callback_functio
+n 0368dbc
+
+ENTER-rm_InitIRT
+
+ENTER-rm_InitL1
+ENTER-rm_ConfigTrx
+ENTER-rm_SendTrxConfigToTrx: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+01f13ab4: 07 00 00 00 10 15 00 00 02 00 00 ee ee ee ee ee
+01f13ac4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13ad4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13ae4: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+From DSP
+01f1c060: 10 16 00 00 3a 01 01 00 40 00 00 00 07 00 00 00
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+01f13ab4: 06 00 00 00 10 17 00 00 00 05 00 ee ee ee ee ee
+01f13ac4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13ad4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13ae4: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 20 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 28 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 30 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 38 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 20 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 28 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 30 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 38 00 40
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 80 00 20
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 88 00 20
+
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x9000,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x9000, link 0x20
+07 00 00 00 02 01 00 00 90 00 20
+
+CNI_LAPDM_Find_LAPDM_OID: LAPDm OID not found (trx=0x0,channel=0x9000,link=0x20)
+CNI_LAPDM_Ph_Callback lapdm oid is null, trx 0x0, channel 0x9000, link 0x20
+07 00 00 00 02 01 00 00 90 00 20
+
+From DSP
+01f1c060: 10 18 00 00 00 01 01 00 40 00 00 00 03 00 00 00
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+01f13ab4: 06 00 00 00 10 17 00 00 02 01 00 ee ee ee ee ee
+01f13ac4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13ad4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13ae4: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0a 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0a 00 40
+
+From DSP
+01f1c060: 10 18 00 00 02 00 00 00 06 00 00 00 04 06 00 00
+ENTER-rm_SendSlotActivateToTrx: Entering...
+ENTER-rm_WaitForSlotActivateRsp: Entering...
+ENTER-rm_WaitForL1Rsp
+send to dsp:
+01f13ab4: 06 00 00 00 10 17 00 00 04 01 00 ee ee ee ee ee
+01f13ac4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13ad4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13ae4: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 1 messages
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0c 00 00
+
+CNI_LAPDM_Ph_Callback received PH-CONNECT-IND, length 11
+07 00 00 00 02 01 00 00 0c 00 40
+
+From DSP
+01f1c060: 10 18 00 00 04 f6 bf 01 04 cc 00 02 00 00 00 00
+SLOT ACTIVATION FINISHED
+ENTER-rm_SendSetUGainToTrx: Entering...
+ENTER-rm_SendSetDGainToTrx: Entering...
+ENTER-rm_SendTuneSynthToTrx: Entering...
+ENTER-rm_SendConfigFpgaDelayToTrx: Entering...
+CONFIG TRX/SLOTS FINISHED
+End of rm_SendSynchInfoToBcchTrx()
+ENTER-rm_SendAllSystemInfosToBcchTrx
+ENTER-rm_SendSystemInfo2ToBcchTrx
+ENTER-rm_SendSystemInfo3ToBcchTrx
+ENTER-rm_SendSystemInfo4ToBcchTrx
+End of rm_SendAllSystemInfosToBcchTrx, bcchTrx=0
+ENTER-rm_SendSacchFillingToTrx
+ENTER-rm_SendSacchFillingToTrx
+End of rm_SendSacchFillingSI5 and SI6
+send to dsp:STAY in RM_MAIN while(1) loop
+
+01f13ab4: 05 00 00 00 10 10 00 00 00 01 00 ee ee ee ee ee
+01f13ac4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13ad4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13ae4: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f13af4: 05 00 00 00 10 11 00 00 00 01 00 ee ee ee ee ee
+01f13b04: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13b14: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13b24: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f13b34: 07 00 00 00 10 12 00 00 00 00 00 ee ee ee ee ee
+01f13b44: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13b54: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13b64: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f13b74: 07 00 00 00 10 12 00 00 01 00 00 ee ee ee ee ee
+01f13b84: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13b94: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13ba4: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f13bb4: 07 00 00 00 10 12 00 00 02 00 00 ee ee ee ee ee
+01f13bc4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13bd4: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13be4: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f13bf4: 07 00 00 00 10 12 00 00 03 00 00 ee ee ee ee ee
+01f13c04: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13c14: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13c24: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f13c34: 08 00 00 00 10 14 00 00 00 00 00 00 ee ee ee ee
+01f13c44: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13c54: ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee
+01f13c64: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+
+
+01f13c74: 22 00 00 00 0c 00 11 00 80 00 02 17 16 06 1a 8e
+01f13c84: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
+01f13c94: 01 04 08 01 00 00 ee ee ee ee ee ee ee ee ee ee
+01f13ca4: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f13cb4: 22 00 00 00 0c 00 11 00 80 00 03 17 12 06 1b 00
+01f13cc4: 01 13 f0 71 00 01 01 02 00 23 07 00 01 04 00 2b
+01f13cd4: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+01f13ce4: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f13cf4: 22 00 00 00 0c 00 11 00 80 00 04 17 0c 06 1c 13
+01f13d04: f0 71 00 01 07 00 01 06 00 2b 2b 2b 2b 2b 2b 2b
+01f13d14: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+01f13d24: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f13d34: 1b 00 00 00 10 00 1a 00 05 12 06 1d 8e 00 00 00
+01f13d44: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 2b
+01f13d54: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+01f13d64: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+01f13d74: 1b 00 00 00 10 00 1a 00 06 12 06 1e 00 01 13 f0
+01f13d84: 71 00 01 23 01 2b 2b 2b 2b 2b 2b 2b 01 00 00 2b
+01f13d94: 2b 2b 2b 01 00 00 ee ee ee ee ee ee ee ee ee ee
+01f13da4: ee ee ee ee ee ee ee ee ee ee ee ee ac 2c 16 00
+sending 12 messages
+