diff --git a/.gitignore b/.gitignore index 845a49ac98..3a0d25c25c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,8 +9,11 @@ cmake_targets/nas_sim_tools/build/ log/ lte_build_oai/ -# vscode +# IDE files .vscode +.cproject +.project +.settings # Tags for vim/global GPATH diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 8be6915763..0000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "(gdb) Launch", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/cmake_targets/ran_build/build/lte-softmodem", - "args": [ - "-O", "../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf", - "--noS1" - ], - "stopAtEntry": false, - "cwd": "${workspaceFolder}/cmake_targets", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "miDebuggerPath": "${workspaceFolder}/cmake_targets/sudo-gdb", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - } - ] -} diff --git a/ci-scripts/Jenkinsfile-GitLab-Container b/ci-scripts/Jenkinsfile-GitLab-Container index c73edd576e..821d695d9d 100644 --- a/ci-scripts/Jenkinsfile-GitLab-Container +++ b/ci-scripts/Jenkinsfile-GitLab-Container @@ -33,6 +33,7 @@ def gitCommitAuthorEmailAddr // list of failing stages def failingStages = "" +def lockForMessage = 'Parent-Lock' pipeline { agent { @@ -120,46 +121,49 @@ pipeline { } } // Build Stages are Mandatory - // Later we will add a Ubuntu20 build stage ("Image Building Processes") { when { expression {doBuild} } parallel { - stage ("Ubuntu18-Image-Builder") { + stage ("Ubuntu-Image-Builder") { steps { script { - triggerSlaveJob ('RAN-Ubuntu18-Image-Builder', 'Ubuntu18-Image-Builder') + triggerSlaveJob ('RAN-Ubuntu18-Image-Builder', 'Ubuntu-Image-Builder') } } post { always { script { - testBullet = finalizeSlaveJob('RAN-Ubuntu18-Image-Builder') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + ubuntuBuildStatus = finalizeSlaveJob('RAN-Ubuntu18-Image-Builder') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += ubuntuBuildStatus } } } } - stage ("RHEL8-Cluster-Image-Builder") { + stage ("RHEL-Cluster-Image-Builder") { steps { script { - triggerSlaveJob ('RAN-RHEL8-Cluster-Image-Builder', 'RHEL8-Cluster-Image-Builder') + triggerSlaveJob ('RAN-RHEL8-Cluster-Image-Builder', 'RHEL-Cluster-Image-Builder') } } post { always { script { - testBullet = finalizeSlaveJob('RAN-RHEL8-Cluster-Image-Builder') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + rhelBuildStatus = finalizeSlaveJob('RAN-RHEL8-Cluster-Image-Builder') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += rhelBuildStatus } } } @@ -173,13 +177,37 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-cppcheck') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + cppcheckStatus = finalizeSlaveJob('RAN-cppcheck') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += cppcheckStatus + } + } + } + } + stage ("ARM-Cross-Compile") { + steps { + script { + triggerSlaveJob ('RAN-ARM-Cross-Compile-Builder', 'ARM-Cross-Compilation') + } + } + post { + always { + script { + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + armBuildStatus = finalizeSlaveJob('RAN-ARM-Cross-Compile-Builder') + } + } + failure { + script { + currentBuild.result = 'FAILURE' + failingStages += armBuildStatus } } } @@ -199,13 +227,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-PhySim-Cluster') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + physimStatus = finalizeSlaveJob('RAN-PhySim-Cluster') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += physimStatus } } } @@ -220,13 +250,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-RF-Sim-Test-4G') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + rfSim4GStatus = finalizeSlaveJob('RAN-RF-Sim-Test-4G') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += rfSim4GStatus } } } @@ -241,13 +273,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-RF-Sim-Test-5G') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + rfSim5GStatus = finalizeSlaveJob('RAN-RF-Sim-Test-5G') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += rfSim5GStatus } } } @@ -262,13 +296,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-L2-Sim-Test-4G') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + l2Sim4GStatus = finalizeSlaveJob('RAN-L2-Sim-Test-4G') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += l2Sim4GStatus } } } @@ -283,13 +319,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-L2-Sim-Test-5G') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + l2Sim5GStatus = finalizeSlaveJob('RAN-L2-Sim-Test-5G') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += l2Sim5GStatus } } } @@ -304,13 +342,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-LTE-FDD-LTEBOX-Container') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + lteTDDB200Status = finalizeSlaveJob('RAN-LTE-FDD-LTEBOX-Container') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += lteTDDB200Status } } } @@ -326,13 +366,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-LTE-FDD-OAIUE-OAICN4G-Container') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + lteFDDB200OAIUEStatus = finalizeSlaveJob('RAN-LTE-FDD-OAIUE-OAICN4G-Container') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += lteFDDB200OAIUEStatus } } } @@ -347,13 +389,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-LTE-TDD-LTEBOX-Container') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + lteFDDB200Status = finalizeSlaveJob('RAN-LTE-TDD-LTEBOX-Container') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += lteFDDB200Status } } } @@ -368,13 +412,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-NSA-B200-Module-LTEBOX-Container') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + nsaTDDB200Status = finalizeSlaveJob('RAN-NSA-B200-Module-LTEBOX-Container') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += nsaTDDB200Status } } } @@ -389,13 +435,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-SA-B200-Module-SABOX-Container') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + saTDDB200Status = finalizeSlaveJob('RAN-SA-B200-Module-SABOX-Container') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += saTDDB200Status } } } @@ -410,13 +458,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-gNB-N300-Timing-Phytest-LDPC') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + phytestLDPCoffloadStatus = finalizeSlaveJob('RAN-gNB-N300-Timing-Phytest-LDPC') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += phytestLDPCoffloadStatus } } } @@ -431,13 +481,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-LTE-TDD-2x2-Container') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + lteTDD2x2N3xxStatus = finalizeSlaveJob('RAN-LTE-TDD-2x2-Container') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += lteTDD2x2N3xxStatus } } } @@ -452,13 +504,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-SA-AW2S-CN5G') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + saAW2SStatus = finalizeSlaveJob('RAN-SA-AW2S-CN5G') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += saAW2SStatus } } } @@ -473,13 +527,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-Interop-F1') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + f1InteropStatus = finalizeSlaveJob('RAN-Interop-F1') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += f1InteropStatus } } } @@ -494,13 +550,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('OAI-CN5G-COTS-UE-Test') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + cn5gCOTSUESanityCheck = finalizeSlaveJob('OAI-CN5G-COTS-UE-Test') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += cn5gCOTSUESanityCheck } } } @@ -515,13 +573,15 @@ pipeline { post { always { script { - testBullet = finalizeSlaveJob('RAN-SA-OAIUE-CN5G') + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + saOAIUEStatus = finalizeSlaveJob('RAN-SA-OAIUE-CN5G') } } failure { script { currentBuild.result = 'FAILURE' - failingStages += testBullet + failingStages += saOAIUEStatus } } } @@ -668,28 +728,30 @@ def triggerSlaveJobNoGitLab (jobName) { } def finalizeSlaveJob(jobName) { - // In case of any non-success, we are retrieving the HTML report of the last completed - // slave job. The only drop-back is that we may retrieve the HTML report of a previous build - if (jobName == 'OAI-CN5G-COTS-UE-Test') { - fileName = "test_results_oai_cn5g_cots_ue.html" - } else { - fileName = "test_results-${jobName}.html" - } - artifactUrl = BUILD_URL - if (!fileExists(fileName)) { - copyArtifacts(projectName: jobName, - filter: 'test_results*.html', - selector: lastCompleted()) - if (fileExists(fileName)) { - sh "sed -i -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' ${fileName}" - archiveArtifacts artifacts: fileName - // BUILD_URL is like http://server:port/jenkins/job/foo/15/ - // no need to add a prefixed '/' - artifactUrl += 'artifact/' + fileName + lock (lockForMessage) { + // In case of any non-success, we are retrieving the HTML report of the last completed + // slave job. The only drop-back is that we may retrieve the HTML report of a previous build + if (jobName == 'OAI-CN5G-COTS-UE-Test') { + fileName = "test_results_oai_cn5g_cots_ue.html" + } else { + fileName = "test_results-${jobName}.html" } + artifactUrl = BUILD_URL + if (!fileExists(fileName)) { + copyArtifacts(projectName: jobName, + filter: 'test_results*.html', + selector: lastCompleted()) + if (fileExists(fileName)) { + sh "sed -i -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' ${fileName}" + archiveArtifacts artifacts: fileName + // BUILD_URL is like http://server:port/jenkins/job/foo/15/ + // no need to add a prefixed '/' + artifactUrl += 'artifact/' + fileName + } + } + artifactUrl = "\n * [${jobName}](${artifactUrl})" + return artifactUrl } - artifactUrl = "\n * [${jobName}](${artifactUrl})" - return artifactUrl } // Abstraction function to send social media messages: diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index d9237b57ba..c0b2fa237b 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -54,16 +54,17 @@ fi ############################### ## echo and family ############################### -black='\E[30m' -red='\E[31m' -green='\E[32m' -yellow='\E[33m' -blue='\E[1;34m' -magenta='\E[35m' -cyan='\E[36m' -white='\E[37m' -reset_color='\E[00m' -COLORIZE=1 +# only emit color if connected to a terminal, and if it supports colors +if [ -t 1 ]; then + num_colors=$(tput colors) + if [ -n "$num_colors" ] && [ "$num_colors" -ge 8 ]; then + red='\E[31m' + green='\E[32m' + yellow='\E[33m' + blue='\E[1;34m' + reset_color='\E[00m' + fi +fi cecho() { # Color-echo @@ -72,8 +73,7 @@ cecho() { local default_msg="No Message." message=${1:-$default_msg} color=${2:-$green} - [ "$COLORIZE" = "1" ] && message="$color$message$reset_color" - echo -e "$message" + echo -e "$color$message$reset_color" return } @@ -685,6 +685,15 @@ install_simde_from_source(){ $SUDO rm -rf /tmp/simde git clone https://github.com/simd-everywhere/simde-no-tests.git /tmp/simde cd /tmp/simde + # we can specify a given version of SIMDE (sha-one or tag) + if [[ -v SIMDE_VERSION ]]; then + git checkout -f $SIMDE_VERSION + else + # At time of writing, last working commit for OAI + git checkout 389f360a66d4a3bec62b7d71ad8be877487809ba + fi + # Showing which version is used + git log -n1 # brute force copy into /usr/include $SUDO \cp -rv ../simde /usr/include } diff --git a/docker/Dockerfile.base.ubuntu20.cross-arm64 b/docker/Dockerfile.base.ubuntu20.cross-arm64 index 55ea35fa96..3f83b751af 100644 --- a/docker/Dockerfile.base.ubuntu20.cross-arm64 +++ b/docker/Dockerfile.base.ubuntu20.cross-arm64 @@ -29,6 +29,8 @@ FROM ubuntu:focal AS ran-base ENV DEBIAN_FRONTEND=noninteractive ENV TZ=Europe/Paris +# Specifying a working version of SIMDE for ARM: +ENV SIMDE_VERSION=389f360a66d4a3bec62b7d71ad8be877487809ba #install developers pkg/repo RUN apt-get update && \ diff --git a/docker/Dockerfile.build.ubuntu20.cross-arm64 b/docker/Dockerfile.build.ubuntu20.cross-arm64 index b5f770a485..c278bf66be 100644 --- a/docker/Dockerfile.build.ubuntu20.cross-arm64 +++ b/docker/Dockerfile.build.ubuntu20.cross-arm64 @@ -43,5 +43,10 @@ RUN /bin/sh oaienv && \ cd ../build-cross/ && \ cmake ../../.. -GNinja -DCMAKE_TOOLCHAIN_FILE=../../../cmake_targets/cross-arm.cmake -DNATIVE_DIR=../build && \ echo "====== Start of log for cross-build executables ======" && \ - ninja dlsim ulsim ldpctest polartest smallblocktest nr_pbchsim nr_dlschsim nr_ulschsim nr_dlsim nr_ulsim nr_pucchsim nr_prachsim lte-softmodem nr-softmodem nr-cuup oairu lte-uesoftmodem nr-uesoftmodem params_libconfig coding rfsimulator > ../../log/all.txt 2>&1 && \ + # making always passing so we can analyze the all.txt file + ninja dlsim ulsim ldpctest polartest smallblocktest nr_pbchsim nr_dlschsim nr_ulschsim nr_dlsim nr_ulsim nr_pucchsim nr_prachsim lte-softmodem nr-softmodem nr-cuup oairu lte-uesoftmodem nr-uesoftmodem params_libconfig coding rfsimulator > ../../log/all.txt 2>&1; \ + # displaying errors and warnings + egrep -A3 "warning:|error:" ../../log/all.txt || true && \ + # will fail only for errors + egrep -L "error:" ../../log/all.txt && \ echo "====== End of log for cross-build executables ======" diff --git a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h index 21c9558653..8f4d083256 100644 --- a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h +++ b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h @@ -1466,12 +1466,14 @@ typedef enum { //table 3-58 #define NFAPI_NR_MAX_TX_REQUEST_TLV 2 -typedef struct -{ - uint16_t PDU_length; +typedef struct { + uint16_t PDU_length; // SCF 222.10.02 The total length (in bytes) of the PDU description and PDU data, without the padding bytes. + // (2 bytes PDU_Length + 2 bytes PDU_Index + 4 bytes num_TLV + TLV size ( 2 bytes tag + 2 bytes length + + // value size without padding)) + // TBS + 12 uint16_t PDU_index; uint32_t num_TLV; - nfapi_nr_tx_data_request_tlv_t TLVs[NFAPI_NR_MAX_TX_REQUEST_TLV]; + nfapi_nr_tx_data_request_tlv_t TLVs[NFAPI_NR_MAX_TX_REQUEST_TLV]; } nfapi_nr_pdu_t; diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c index 38b3ca85e0..f9137e522c 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c @@ -13,7 +13,7 @@ */ #include -#include +#include "PHY/sse_intrin.h" #include "nrLDPCdecoder_defs.h" #include "nrLDPC_types.h" #include "nrLDPC_init.h" diff --git a/openair1/SIMULATION/NR_PHY/dlsim.c b/openair1/SIMULATION/NR_PHY/dlsim.c index 802fa780c7..6d80ac619c 100644 --- a/openair1/SIMULATION/NR_PHY/dlsim.c +++ b/openair1/SIMULATION/NR_PHY/dlsim.c @@ -108,16 +108,6 @@ void nr_rrc_ue_generate_RRCSetupRequest(module_id_t module_id, const uint8_t gNB return; } -int8_t nr_mac_rrc_data_req_ue(const module_id_t Mod_idP, - const int CC_id, - const uint8_t gNB_id, - const frame_t frameP, - const rb_id_t Srb_id, - uint8_t *buffer_pP) -{ - return 0; -} - int8_t nr_rrc_RA_succeeded(const module_id_t mod_id, const uint8_t gNB_index) { return 0; } diff --git a/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c b/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c index 6d3948974d..bf1a60faf8 100644 --- a/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c +++ b/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c @@ -32,6 +32,8 @@ void nr_mac_rrc_sync_ind(const module_id_t module_id, const frame_t frame, const bool in_sync) {} +void nr_mac_rrc_msg3_ind(const module_id_t mod_id, int rnti) {} + void nr_mac_rrc_ra_ind(const module_id_t mod_id, int frame, bool success) {} void rrc_data_ind(const protocol_ctxt_t *const ctxt_pP, diff --git a/openair1/SIMULATION/NR_PHY/prachsim.c b/openair1/SIMULATION/NR_PHY/prachsim.c index b616f050fe..c90c414d51 100644 --- a/openair1/SIMULATION/NR_PHY/prachsim.c +++ b/openair1/SIMULATION/NR_PHY/prachsim.c @@ -108,16 +108,6 @@ void nr_rrc_ue_generate_RRCSetupRequest(module_id_t module_id, const uint8_t gNB return; } -int8_t nr_mac_rrc_data_req_ue(const module_id_t Mod_idP, - const int CC_id, - const uint8_t gNB_id, - const frame_t frameP, - const rb_id_t Srb_id, - uint8_t *buffer_pP) -{ - return 0; -} - int8_t nr_rrc_RA_succeeded(const module_id_t mod_id, const uint8_t gNB_index) { return 0; } diff --git a/openair1/SIMULATION/NR_PHY/ulsim.c b/openair1/SIMULATION/NR_PHY/ulsim.c index 5fd35cfd6c..77a1d6d821 100644 --- a/openair1/SIMULATION/NR_PHY/ulsim.c +++ b/openair1/SIMULATION/NR_PHY/ulsim.c @@ -104,16 +104,6 @@ void nr_rrc_ue_generate_RRCSetupRequest(module_id_t module_id, const uint8_t gNB return; } -int8_t nr_mac_rrc_data_req_ue(const module_id_t Mod_idP, - const int CC_id, - const uint8_t gNB_id, - const frame_t frameP, - const rb_id_t Srb_id, - uint8_t *buffer_pP) -{ - return 0; -} - int8_t nr_rrc_RA_succeeded(const module_id_t mod_id, const uint8_t gNB_index) { return 0; } diff --git a/openair2/COMMON/mac_messages_def.h b/openair2/COMMON/mac_messages_def.h index 50e7a108c9..01dd1e3707 100644 --- a/openair2/COMMON/mac_messages_def.h +++ b/openair2/COMMON/mac_messages_def.h @@ -48,7 +48,8 @@ MESSAGE_DEF(RRC_MAC_MCCH_DATA_IND, MESSAGE_PRIORITY_MED_PLUS, RrcMacMcchDat MESSAGE_DEF(RRC_MAC_PCCH_DATA_REQ, MESSAGE_PRIORITY_MED_PLUS, RrcMacPcchDataReq, rrc_mac_pcch_data_req) -MESSAGE_DEF(NR_RRC_MAC_RA_IND, MESSAGE_PRIORITY_MED_PLUS, NRRrcMacRaInd, nr_rrc_mac_ra_ind) +MESSAGE_DEF(NR_RRC_MAC_RA_IND, MESSAGE_PRIORITY_MED_PLUS, NRRrcMacRaInd, nr_rrc_mac_ra_ind) +MESSAGE_DEF(NR_RRC_MAC_MSG3_IND, MESSAGE_PRIORITY_MED_PLUS, NRRrcMacMsg3Ind, nr_rrc_mac_msg3_ind) /* RRC configures DRX context (MAC timers) of a UE */ MESSAGE_DEF(RRC_MAC_DRX_CONFIG_REQ, MESSAGE_PRIORITY_MED, rrc_mac_drx_config_req_t, rrc_mac_drx_config_req) diff --git a/openair2/COMMON/mac_messages_types.h b/openair2/COMMON/mac_messages_types.h index db65e245d3..668daad813 100644 --- a/openair2/COMMON/mac_messages_types.h +++ b/openair2/COMMON/mac_messages_types.h @@ -55,6 +55,7 @@ #define RRC_MAC_PCCH_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_mac_pcch_data_req #define NR_RRC_MAC_RA_IND(mSGpTR) (mSGpTR)->ittiMsg.nr_rrc_mac_ra_ind +#define NR_RRC_MAC_MSG3_IND(mSGpTR) (mSGpTR)->ittiMsg.nr_rrc_mac_msg3_ind #define RRC_MAC_DRX_CONFIG_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_mac_drx_config_req @@ -73,6 +74,10 @@ typedef struct NRRrcMacRaInd_s { bool RA_succeeded; } NRRrcMacRaInd; +typedef struct NRRrcMacMsg3Ind_s { + uint16_t rnti; +} NRRrcMacMsg3Ind; + typedef struct RrcMacInSyncInd_s { uint32_t frame; uint8_t sub_frame; @@ -154,15 +159,9 @@ typedef struct RrcMacCcchDataInd_s { } RrcMacCcchDataInd; typedef struct NRRrcMacCcchDataInd_s { - uint32_t frame; - uint8_t slot; uint16_t rnti; uint32_t sdu_size; uint8_t sdu[CCCH_SDU_SIZE]; - OCTET_STRING_t *du_to_cu_rrc_container; - uint8_t gnb_index; - int CC_id; - uint64_t nr_cellid; } NRRrcMacCcchDataInd; typedef struct RrcMacMcchDataReq_s { diff --git a/openair2/DOCS/DOXYGEN/Doxyfile b/openair2/DOCS/DOXYGEN/Doxyfile deleted file mode 100644 index 068a50aaa7..0000000000 --- a/openair2/DOCS/DOXYGEN/Doxyfile +++ /dev/null @@ -1,220 +0,0 @@ -# Doxyfile 1.3.8 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = OPENAIR2 -PROJECT_NUMBER = -OUTPUT_DIRECTORY = -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = YES -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = NO -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = YES -MULTILINE_CPP_IS_BRIEF = YES -DETAILS_AT_TOP = YES -INHERIT_DOCS = NO -DISTRIBUTE_GROUP_DOC = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = YES -OPTIMIZE_OUTPUT_JAVA = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = NO -EXTRACT_STATIC = NO -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = YES -HIDE_UNDOC_MEMBERS = YES -HIDE_UNDOC_CLASSES = YES -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = NO -INLINE_INFO = YES -SORT_MEMBER_DOCS = NO -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = NO -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= NO -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = $(OPENAIR2_DIR)/LAYER2/MAC/defs.h \ - $(OPENAIR2_DIR)/COMMON/mac_rrc_primitives.h \ - $(OPENAIR2_DIR)/COMMON/mac_rlc_primitives.h \ - $(OPENAIR2_DIR)/LAYER2/MAC/lchan_interface.h \ - $(OPENAIR2_DIR)/PHY_INTERFACE/defs.h \ - $(OPENAIR2_DIR)/NAS/DRIVER/MESH/proto_extern.h \ - - -FILE_PATTERNS = *.h -RECURSIVE = NO -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = images -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = NO -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = NO -REFERENCES_RELATION = NO -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = YES -CHM_FILE = irs_openair.chm -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = YES -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = amsmath amssymb -LATEX_HEADER = -PDF_HYPERLINKS = YES -USE_PDFLATEX = YES -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = YES -RTF_HYPERLINKS = YES -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = YES -EXPAND_ONLY_PREDEF = YES -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = __attribute__(x)= -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = NO -HIDE_UNDOC_RELATIONS = NO -HAVE_DOT = NO -CLASS_GRAPH = NO -COLLABORATION_GRAPH = NO -UML_LOOK = NO -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = NO -INCLUDED_BY_GRAPH = NO -CALL_GRAPH = NO -GRAPHICAL_HIERARCHY = NO -DOT_IMAGE_FORMAT = jpg -DOT_PATH = -DOTFILE_DIRS = ../docs/dotfiles diff --git a/openair2/DOCS/DOXYGEN/images/DLC_arch.png b/openair2/DOCS/DOXYGEN/images/DLC_arch.png deleted file mode 100644 index 463180e46d..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/DLC_arch.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/Diapositive6.JPG b/openair2/DOCS/DOXYGEN/images/Diapositive6.JPG deleted file mode 100644 index 3db592b2f5..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/Diapositive6.JPG and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/Framing.png b/openair2/DOCS/DOXYGEN/images/Framing.png deleted file mode 100644 index 6db923c903..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/Framing.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/Framing.vsd b/openair2/DOCS/DOXYGEN/images/Framing.vsd deleted file mode 100644 index c1863894af..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/Framing.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/MAC Services.vsd b/openair2/DOCS/DOXYGEN/images/MAC Services.vsd deleted file mode 100644 index 5fd1c39902..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/MAC Services.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Measurements.png b/openair2/DOCS/DOXYGEN/images/MAC_Measurements.png deleted file mode 100644 index c376bfc3c3..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/MAC_Measurements.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd b/openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd deleted file mode 100644 index 4c277eb994..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Services.eps b/openair2/DOCS/DOXYGEN/images/MAC_Services.eps deleted file mode 100644 index 2e308649fb..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/MAC_Services.eps and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Services.vsd b/openair2/DOCS/DOXYGEN/images/MAC_Services.vsd deleted file mode 100644 index 5fd1c39902..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/MAC_Services.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Services2.eps b/openair2/DOCS/DOXYGEN/images/MAC_Services2.eps deleted file mode 100644 index eae23603cb..0000000000 --- a/openair2/DOCS/DOXYGEN/images/MAC_Services2.eps +++ /dev/null @@ -1,6130 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: ImageMark Software Labs -%%For: () () -%%Title: E:\openair\DOCS\images\MAC_Services2.eps -%%CreationDate: () () -%%BoundingBox: 0 0 570 420 -%%DocumentProcessColors: Black -%%ColorUsage:Color -%%DocumentFonts: Helvetica -%%+Helvetica-Bold -%%+Helvetica-Oblique -%%+Helvetica-BoldOblique -%%+Times-Roman -%%+Times-Bold -%%+Times-Italic -%%+Times-BoldItalic -%%+Courier -%%+Courier-Bold -%%+Courier-Oblique -%%+Courier-BoldOblique -%%+Symbol -%%DocumentSuppliedResources: procset Adobe_packedarray 2.0 0 -%%+ procset Adobe_cmykcolor 1.1 0 -%%+ procset Adobe_cshow 1.1 0 -%%+ procset Adobe_customcolor 1.0 0 -%%+ procset Adobe_typography_AI3 1.0 0 -%%+ procset Adobe_Illustrator_AI3 1.0 0 -%AI3_ColorUsage: Color -%AI3_TemplateBox: 0 0 570 420 -%AI3_TileBox: 0 0 570 420 -%AI3_DocumentPreview: None -%%Template: -%%PageOrigin:0.0000 0.0000 -%%EndComments -%%BeginProlog -%%BeginResource: procset Adobe_packedarray 2.0 0 -%%Title: (Packed Array Operators) -%%Version: 2.0 -%%CreationDate: (8/2/90) () -%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) -userdict /Adobe_packedarray 5 dict dup begin put -/initialize -{ -/packedarray where -{ -pop -} -{ -Adobe_packedarray begin -Adobe_packedarray -{ -dup xcheck -{ -bind -} if -userdict 3 1 roll put -} forall -end -} ifelse -} def -/terminate -{ -} def -/packedarray -{ -array astore readonly -} def -/setpacking -{ -pop -} def -/currentpacking -{ -false -} def -currentdict readonly pop end -%%EndResource - -Adobe_packedarray /initialize get exec - -%%Title: (CMYK Color Operators) -%%Version: 1.1 -%%CreationDate: (1/23/89) () -%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) -currentpacking true setpacking -userdict /Adobe_cmykcolor 4 dict dup begin put -/initialize -{ -/setcmykcolor where -{ -pop -} -{ -userdict /Adobe_cmykcolor_vars 2 dict dup begin put -/_setrgbcolor -/setrgbcolor load def -/_currentrgbcolor -/currentrgbcolor load def -Adobe_cmykcolor begin -Adobe_cmykcolor -{ -dup xcheck -{ -bind -} if -pop pop -} forall -end -end -Adobe_cmykcolor begin -} ifelse -} def -/terminate -{ -currentdict Adobe_cmykcolor eq -{ -end -} if -} def -/setcmykcolor -{ -1 sub 4 1 roll -3 -{ -3 index add neg dup 0 lt -{ -pop 0 -} if -3 1 roll -} repeat -Adobe_cmykcolor_vars /_setrgbcolor get exec -pop -} def -/currentcmykcolor -{ -Adobe_cmykcolor_vars /_currentrgbcolor get exec -3 -{ -1 sub neg 3 1 roll -} repeat -0 -} def -currentdict readonly pop end -setpacking - -%%EndResource - -%%BeginResource: procset Adobe_cshow 1.1 0 -%%Title: (cshow Operator) -%%Version: 1.1 -%%CreationDate: (1/23/89) () -%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) -currentpacking true setpacking -userdict /Adobe_cshow 3 dict dup begin put -/initialize -{ -/cshow where -{ -pop -} -{ -userdict /Adobe_cshow_vars 1 dict dup begin put -/_cshow -{} def -Adobe_cshow begin -Adobe_cshow -{ -dup xcheck -{ -bind -} if -userdict 3 1 roll put -} forall -end -end -} ifelse -} def -/terminate -{ -} def -/cshow -{ -exch -Adobe_cshow_vars -exch /_cshow -exch put -{ -0 0 Adobe_cshow_vars /_cshow get exec -} forall -} def -currentdict readonly pop end -setpacking - -%%EndResource - -%%BeginResource: procset Adobe_customcolor 1.0 0 -%%Title: (Custom Color Operators) -%%Version: 1.0 -%%CreationDate: (5/9/88) () -%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) -currentpacking true setpacking -userdict /Adobe_customcolor 5 dict dup begin put -/initialize -{ -/setcustomcolor where -{ -pop -} -{ -Adobe_customcolor begin -Adobe_customcolor -{ -dup xcheck -{ -bind -} if -pop pop -} forall -end -Adobe_customcolor begin -} ifelse -} def -/terminate -{ -currentdict Adobe_customcolor eq -{ -end -} if -} def -/findcmykcustomcolor -{ -5 packedarray -} def -/setcustomcolor -{ -exch -aload pop pop -4 -{ -4 index mul 4 1 roll -} repeat -5 -1 roll pop -setcmykcolor -} def -/setoverprint -{ -pop -} def -currentdict readonly pop end -setpacking -%%EndResource - - -%%BeginResource: procset Adobe_typography_AI3 1.0 0 -%%Title: (Typography Operators)%%Version: 1.0 -%%CreationDate:(5/31/90) () -%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) -currentpacking true setpacking -userdict /Adobe_typography_AI3 46 dict dup begin put -/initialize -{ -/TZ -where -{ -pop -} -{ -Adobe_typography_AI3 begin -Adobe_typography_AI3 -{ -dup xcheck -{ -bind -} if -pop pop -} forall -end -Adobe_typography_AI3 begin -} ifelse -} def -/terminate -{ -currentdict Adobe_typography_AI3 eq -{ -end -} if -} def -/modifyEncoding -{ -/_tempEncode exch ddef -/_pntr 0 ddef -{ -counttomark -1 roll -dup type dup /marktype eq -{ -pop pop exit -} -{ -/nametype eq -{ -_tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll -put -} -{ -/_pntr exch ddef -} -ifelse -} -ifelse -} -loop -_tempEncode -} -def -/TE -{ -StandardEncoding 256 array copy modifyEncoding -/_nativeEncoding exch def -} def -/TZ -{ -/_useNativeEncoding exch def -pop pop -findfont dup length 2 add dict -begin -mark exch -{ -1 index /FID ne { def } if cleartomark mark -} -forall -pop -/FontName exch def -counttomark 0 eq -{ -Encoding StandardEncoding eq 1 _useNativeEncoding eq and -{ -/Encoding _nativeEncoding def -} -if -cleartomark -} -{ -/Encoding load 256 array copy -modifyEncoding /Encoding exch def -} -ifelse -FontName currentdict -end -definefont pop -} -def -/tr -{ -_ax _ay 3 2 roll -} def -/trj -{ -_cx _cy _sp _ax _ay 6 5 roll -} def - -/a0 -{ -/Tx -{ -dup -currentpoint 3 2 roll -tr _psf -newpath moveto -tr _ctm _pss -} ddef -/Tj -{ -dup -currentpoint 3 2 roll -trj _pjsf -newpath moveto -trj _ctm _pjss -} ddef -} def -/a1 -{ -W B -} def -/e0 -{ -/Tx -{ -tr _psf -} ddef -/Tj -{ -trj _pjsf -} ddef -} def -/e1 -{ -W F -} def -/i0 -{ -/Tx -{ -tr sp -} ddef -/Tj -{ -trj jsp -} ddef -} def -/o0 -{ -/Tx -{ -tr sw rmoveto -} ddef -/Tj -{ -trj swj rmoveto -} ddef -} def -/r0 -{ -/Tx -{ -tr _ctm _pss -} ddef -/Tj -{ -trj _ctm _pjss -} ddef -} def -/r1 -{ -W S -} def -/To -{ -pop _ctm currentmatrix pop -} def -/TO -{ -Te _ctm setmatrix newpath -} def -/Tp -{ -pop _tm astore pop _ctm setmatrix -2 dict begin /W {} def /h {} def -} def -/TP -{ -end -iTm 0 0 moveto -} def -/Tr -{ -Te currentpoint newpath moveto -dup 8 eq {pop 0} {dup 9 eq {pop 1} if} ifelse -dup /_render exch ddef -_renderStart exch get load exec -} def -/iTm -{ -_ctm setmatrix _tm concat 0 _rise translate _hs 1 scale -} def -/Te -{ -_render -1 eq {} {_renderEnd _render get dup null ne {load exec} {pop} ifelse} ifelse -/_render -1 ddef -} def -/Tf -{ -dup 1000 div /_fScl exch ddef -exch findfont exch scalefont setfont -} def -/Tl -{ -pop -0 exch _leading astore pop -} def -/Tt -{ -pop -} def -/TW -{ -3 npop -} def -/Tw -{ -/_cx exch ddef -} def -/Tc -{ -/_ax exch ddef -} def -/Ts -{ -/_rise exch ddef -currentpoint -iTm -moveto -} def -/Ti -{ -3 npop -} def -/Tz -{ -100 div /_hs exch ddef -iTm -} def -/Tq -{ -pop -} def -/TX {pop} def -/Tk -{ -exch pop _fScl mul neg 0 rmoveto -} def -/T- -{ -_hyphen Tx -} def -/TS -{ -0 eq {Tx} {Tj} ifelse -} def -currentdict readonly pop end -setpacking -%%EndResource - -%%BeginResource: procset Adobe_Illustrator_AI3 1.0 0 -%%Title: (Adobe Illustrator (R) Version 3.0 Full Prolog) -%%Version: 1.0 -%%CreationDate: (7/22/89) () -%%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) -currentpacking true setpacking -userdict /Adobe_Illustrator_AI3 71 dict dup begin put -/initialize -{ -userdict /Adobe_Illustrator_AI3_vars 55 dict dup begin put -/_lp /none def -/_pf {} def -/_ps {} def -/_psf {} def -/_pss {} def -/_pjsf {} def -/_pjss {} def -/_pola 0 def -/_doClip 0 def -/cf currentflat def -/_tm matrix def -/_renderStart [/e0 /r0 /a0 /o0 /i0 /i0 /i0 /i0] def -/_renderEnd [null null null null /e1 /r1 /a1 /clip] def -/_render -1 def -/_rise 0 def -/_ax 0 def -/_ay 0 def -/_cx 0 def -/_cy 0 def -/_leading [0 0] def -/_ctm matrix def -/_mtx matrix def -/_sp 16#020 def -/_hyphen (-) def -/_fScl 0 def -/_cnt 0 def -/_hs 1 def -/_nativeEncoding 0 def -/_useNativeEncoding 0 def -/_tempEncode 0 def -/_pntr 0 def -/Tx {} def -/Tj {} def -/CRender {} def -/_AI3_savepage {} def -/_gf null def -/_cf 4 array def -/_if null def -/_of false def -/_fc {} def -/_gs null def -/_cs 4 array def -/_is null def -/_os false def -/_sc {} def -/_pd 1 dict def -/_ed 15 dict def -/_pm matrix def -/_fm null def -/_fd null def -/_fdd null def -/_sm null def -/_sd null def -/_sdd null def -/_i null def -Adobe_Illustrator_AI3 begin -Adobe_Illustrator_AI3 dup /nc get begin -{ -dup xcheck -{ -bind -} if -pop pop -} forall -end -end -end -Adobe_Illustrator_AI3 begin -Adobe_Illustrator_AI3_vars begin -newpath -} def -/terminate -{ -end -end -} def - -/_ -null def -/ddef -{ -Adobe_Illustrator_AI3_vars 3 1 roll put -} def -/xput -{ -dup load dup length exch maxlength eq -{ -dup dup load dup -length 2 mul dict copy def -} if -load begin def end -} def -/npop -{ -{ -pop -} repeat -} def - -/sw -{ -dup length exch stringwidth -exch 5 -1 roll 3 index 1 sub mul add -4 1 roll 3 1 roll 1 sub mul add -} def -/swj -{ -dup 4 1 roll -dup length exch stringwidth -exch 5 -1 roll 3 index 1 sub mul add -4 1 roll 3 1 roll 1 sub mul add -6 2 roll /_cnt 0 ddef -{1 index eq {/_cnt _cnt 1 add ddef} if} forall pop -exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop -} def -/ss -{ -4 1 roll -{ -2 npop -(0) exch 2 copy 0 exch put pop -gsave -false charpath currentpoint -4 index setmatrix -stroke -grestore -moveto -2 copy rmoveto -} exch cshow -3 npop -} def -/jss -{ -4 1 roll -{ -2 npop -(0) exch 2 copy 0 exch put -gsave -_sp eq -{ -exch 6 index 6 index 6 index 5 -1 roll widthshow -currentpoint -} -{ -false charpath currentpoint -4 index setmatrix stroke -}ifelse -grestore -moveto -2 copy rmoveto -} exch cshow -6 npop -} def -/sp -{ -{ -2 npop (0) exch -2 copy 0 exch put pop -false charpath -2 copy rmoveto -} exch cshow -2 npop -} def -/jsp -{ -{ -2 npop -(0) exch 2 copy 0 exch put -_sp eq -{ -exch 5 index 5 index 5 index 5 -1 roll widthshow -} -{ -false charpath -}ifelse -2 copy rmoveto -} exch cshow -5 npop -} def -/pl -{ -transform -0.25 sub round 0.25 add exch -0.25 sub round 0.25 add exch -itransform -} def -/setstrokeadjust where -{pop true setstrokeadjust -/c -{ -curveto -} def -/C -/c load def -/v -{ -currentpoint 6 2 roll curveto -} def -/V -/v load def -/y -{ -2 copy curveto -} def -/Y -/y load def -/l -{ -lineto -} def -/L -/l load def -/m -{ -moveto -} def -} -{ -/c -{ -pl curveto -} def -/C -/c load def -/v -{ -currentpoint 6 2 roll pl curveto -} def -/V -/v load def -/y -{ -pl 2 copy curveto -} def -/Y -/y load def -/l -{ -pl lineto -} def -/L -/l load def -/m -{ -pl moveto -} def -} ifelse -/d -{ -setdash -} def -/cf {} def -/i -{ -dup 0 eq -{ -pop cf -} if -setflat -} def -/j -{ -setlinejoin -} def -/J -{ -setlinecap -} def -/M -{ -setmiterlimit -} def -/w -{ -setlinewidth -} def -/H {} def /h { closepath } def /N { _pola 0 eq { - -_doClip 1 eq {clip /_doClip 0 ddef} if newpath } { - -/CRender {N} ddef }ifelse } def /n {N} def - -/F -{ -_pola 0 eq -{ -_doClip 1 eq -{ -gsave _pf grestore clip newpath /_lp /none ddef _fc -/_doClip 0 ddef -} -{ -_pf -}ifelse -} -{ -/CRender {F} ddef -}ifelse -} def -/f -{ -closepath -F -} def -/S -{ -_pola 0 eq -{ -_doClip 1 eq -{ -gsave _ps grestore clip newpath /_lp /none ddef _sc -/_doClip 0 ddef -} -{ -_ps -}ifelse -} -{ -/CRender {S} ddef -}ifelse -} def -/s -{ -closepath -S -} def -/B -{ -_pola 0 eq -{ -_doClip 1 eq -gsave F grestore -{ -gsave S grestore clip newpath /_lp /none ddef _sc -/_doClip 0 ddef -} -{ -S -}ifelse -} -{ -/CRender {B} ddef -}ifelse -} def -/b -{ -closepath -B -} def -/W -{ -/_doClip 1 ddef -} def -/* -{ -count 0 ne -{ -dup type (stringtype) eq {pop} if -} if -_pola 0 eq {newpath} if -} def -/u -{} def -/U -{} def -/q -{_pola 0 eq {gsave} if -} def -/Q -{ -_pola 0 eq {grestore} if -} def -/*u -{ -_pola 1 add /_pola exch ddef -} def -/*U -{ -_pola 1 sub /_pola exch ddef -_pola 0 eq {CRender} if -} def -/D -{pop} def -/*w -{} def -/*W -{} def -/` -{ -/_i save ddef -6 1 roll 4 npop -concat -userdict begin -/showpage {} def -false setoverprint -pop -} def -/~ { end _i restore } def -/@ -{} def -/& -{} def -/O -{ -0 ne -/_of exch ddef -/_lp /none ddef -} def -/R -{ -0 ne -/_os exch ddef -/_lp /none ddef -} def -/g -{ -/_gf exch ddef -/_fc -{ -_lp /fill ne -{ -_of setoverprint -_gf setgray -/_lp /fill ddef -} if -} ddef -/_pf -{ -_fc -fill -} ddef -/_psf -{ -_fc -ashow -} ddef -/_pjsf -{ -_fc -awidthshow -} ddef -/_lp /none ddef -} def -/G -{ -/_gs exch ddef -/_sc -{ -_lp /stroke ne -{ -_os setoverprint -_gs setgray -/_lp /stroke ddef -} if -} ddef -/_ps -{ -_sc -stroke -} ddef -/_pss -{ -_sc -ss -} ddef -/_pjss -{ -_sc -jss -} ddef -/_lp /none ddef -} def -/k -{ -_cf astore pop -/_fc -{ -_lp /fill ne -{ -_of setoverprint -_cf aload pop setcmykcolor -/_lp /fill ddef -} if -} ddef -/_pf -{ -_fc -fill -} ddef -/_psf -{ -_fc -ashow -} ddef -/_pjsf -{ -_fc -awidthshow -} ddef -/_lp /none ddef -} def -/K -{ -_cs astore pop -/_sc -{ -_lp /stroke ne -{ -_os setoverprint -_cs aload pop setcmykcolor -/_lp /stroke ddef -} if -} ddef -/_ps -{ -_sc -stroke -} ddef -/_pss -{ -_sc -ss -} ddef -/_pjss -{ -_sc -jss -} ddef -/_lp /none ddef -} def -/x -{ -/_gf exch ddef -findcmykcustomcolor -/_if exch ddef -/_fc -{ -_lp /fill ne -{ -_of setoverprint -_if _gf 1 exch sub setcustomcolor -/_lp /fill ddef -} if -} ddef -/_pf -{ -_fc -fill -} ddef -/_psf -{ -_fc -ashow -} ddef -/_pjsf -{ -_fc -awidthshow -} ddef -/_lp /none ddef -} def -/X -{ -/_gs exch ddef -findcmykcustomcolor -/_is exch ddef -/_sc -{ -_lp /stroke ne -{ -_os setoverprint -_is _gs 1 exch sub setcustomcolor -/_lp /stroke ddef -} if -} ddef -/_ps -{ -_sc -stroke -} ddef -/_pss -{ -_sc -ss -} ddef -/_pjss -{ -_sc -jss -} ddef -/_lp /none ddef -} def -/dp -{ -dup null eq -{ -pop -_dp 0 ne -{ -0 1 _dp 1 sub _dl mod -{ -_da exch get 3 get -} for -_dp 1 sub _dl mod 1 add packedarray -_da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll -definepattern pop -} if -} -{ -_dp 0 ne _dp _dl mod 0 eq and -{ -null dp -} if -7 packedarray _da exch _dp _dl mod exch put -_dp _dl mod _da 0 get 4 get 2 packedarray -/_dp _dp 1 add def -} ifelse -} def -/E -{ -_ed begin -dup 0 get type /arraytype ne -{ -0 -{ -dup 1 add index type /arraytype eq -{ -1 add -} -{ -exit -} ifelse -} loop -array astore -} if -/_dd exch def -/_ury exch def -/_urx exch def -/_lly exch def -/_llx exch def -/_n exch def -/_y 0 def -/_dl 4 def -/_dp 0 def -/_da _dl array def -0 1 _dd length 1 sub -{ -/_d exch _dd exch get def -0 2 _d length 2 sub -{ -/_x exch def -/_c _d _x get _ ne def -/_r _d _x 1 add get cvlit def -_r _ ne -{ -_urx _llx sub _ury _lly sub [1 0 0 1 0 0] -[ -/save cvx -_llx neg _lly neg /translate cvx -_c -{ -nc /begin cvx -} if -_r dup type /stringtype eq -{ -cvx -} -{ -{exec} /forall cvx -} ifelse -_c -{ -/end cvx -} if -/restore cvx -] cvx -/_fn 12 _n length add string def -_y _fn cvs pop -/_y _y 1 add def -_fn 12 _n putinterval -_fn _c false dp -_d exch _x 1 add exch put -} if -} for -} for -null dp -_n _dd /_pd -end xput -} def -/fc -{ -_fm dup concatmatrix pop -} def -/p -{ -/_fm exch ddef -9 -2 roll _pm translate fc -7 -2 roll _pm scale fc -5 -1 roll _pm rotate fc -4 -2 roll exch 0 ne -{ -dup _pm rotate fc -1 -1 _pm scale fc -neg _pm rotate fc -} -{ -pop -} ifelse -dup _pm rotate fc -exch dup sin exch cos div 1 0 0 1 0 6 2 roll -_pm astore fc -neg _pm rotate fc -_pd exch get /_fdd exch ddef -/_pf -{ -save -0 1 _fdd length 1 sub -{ -/_fd exch _fdd exch get ddef -_fd -0 2 _fd length 2 sub -{ -gsave -2 copy get dup _ ne -{ -cvx exec _fc -} -{ -pop -} ifelse -2 copy 1 add get dup _ ne -{ -aload pop findfont _fm -patternfill -} -{ -pop -fill -} ifelse -grestore -pop -} for -pop -} for -restore -newpath -} ddef -/_psf -{ -save -0 1 _fdd length 1 sub -{ -/_fd exch _fdd exch get ddef -_fd -0 2 _fd length 2 sub -{ -gsave -2 copy get dup _ ne -{ -cvx exec _fc -} -{ -pop -} ifelse -2 copy 1 add get dup _ ne -{ -aload pop findfont _fm -9 copy 6 npop patternashow -} -{ -pop -6 copy 3 npop ashow -} ifelse -grestore -pop -} for -pop -} for -restore - -sw rmoveto -} ddef -/_pjsf -{ -save -0 1 _fdd length 1 sub -{ -/_fd exch _fdd exch get ddef -_fd -0 2 _fd length 2 sub -{ -gsave -2 copy get dup _ ne -{ -cvx exec _fc -} -{ -pop -} ifelse -2 copy 1 add get dup _ ne -{ -aload pop findfont _fm -12 copy 6 npop patternawidthshow -} -{ -pop 9 copy 3 npop awidthshow -} ifelse -grestore -pop -} for -pop -} for -restore -swj rmoveto -} ddef -/_lp /none ddef -} def -/sc -{ -_sm dup concatmatrix pop -} def -/P -{ -/_sm exch ddef -9 -2 roll _pm translate sc -7 -2 roll _pm scale sc -5 -1 roll _pm rotate sc -4 -2 roll exch 0 ne -{ -dup _pm rotate sc -1 -1 _pm scale sc -neg _pm rotate sc -} -{ -pop -} ifelse -dup _pm rotate sc -exch dup sin exch cos div 1 0 0 1 0 6 2 roll -_pm astore sc -neg _pm rotate sc -_pd exch get /_sdd exch ddef -/_ps -{ -save -0 1 _sdd length 1 sub -{ -/_sd exch _sdd exch get ddef -_sd -0 2 _sd length 2 sub -{ -gsave -2 copy get dup _ ne -{ -cvx exec _sc -} -{ -pop -} ifelse -2 copy 1 add get dup _ ne -{ -aload pop findfont _sm -patternstroke -} -{ -pop stroke -} ifelse -grestore -pop -} for -pop -} for -restore -newpath -} ddef -/_pss -{ -save -0 1 _sdd length 1 sub -{ -/_sd exch _sdd exch get ddef -_sd -0 2 _sd length 2 sub -{ -gsave -2 copy get dup _ ne -{ -cvx exec _sc -} -{ -pop -} ifelse -2 copy 1 add get dup _ ne -{ -aload pop findfont _sm -10 copy 6 npop patternashowstroke -} -{ -pop 7 copy 3 npop ss -} ifelse -grestore -pop -} for -pop -} for -restore -pop sw rmoveto -} ddef -/_pjss -{ -save -0 1 _sdd length 1 sub -{ -/_sd exch _sdd exch get ddef -_sd -0 2 _sd length 2 sub -{ -gsave -2 copy get dup _ ne -{ -cvx exec _sc -} -{ -pop -} ifelse -2 copy 1 add get dup _ ne -{ -aload pop findfont _sm -13 copy 6 npop patternawidthshowstroke -} -{ -pop 10 copy 3 npop jss -} ifelse -grestore -pop -} for -pop -} for -restore -pop swj rmoveto -} ddef -/_lp /none ddef -} def - -/A -{ -pop -} def - -/nc 3 dict def -nc begin -/setgray -{ -pop -} bind def -/setcmykcolor -{ -4 npop -} bind def -/setcustomcolor -{ -2 npop -} bind def -currentdict readonly pop end -/Z {findfont begin currentdict dup length dict begin -{1 index /FID ne {def} {pop pop} ifelse} forall /FontName exch def dup length 0 ne -{/Encoding Encoding 256 array copy def 0 exch {dup type /nametype eq -{Encoding 2 index 2 index put pop 1 add} {exch pop} ifelse} forall} if pop -currentdict dup end end /FontName get exch definefont pop} bind def -currentdict readonly pop end -setpacking -/annotatepage -{ -} def - -%%EndResource -%%EndProlog -%%BeginSetup -Adobe_cshow /initialize get exec -Adobe_customcolor /initialize get exec -Adobe_typography_AI3 /initialize get exec -Adobe_Illustrator_AI3 /initialize get exec -%%BeginEncoding:_Helvetica Helvetica -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Helvetica/Helvetica Z -%%EndEncoding -%%BeginEncoding:_Helvetica-Bold Helvetica-Bold -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Helvetica-Bold/Helvetica-Bold Z -%%EndEncoding -%%BeginEncoding:_Helvetica-Oblique Helvetica-Oblique -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Helvetica-Oblique/Helvetica-Oblique Z -%%EndEncoding -%%BeginEncoding:_Helvetica-BoldOblique Helvetica-BoldOblique -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Helvetica-BoldOblique/Helvetica-BoldOblique Z -%%EndEncoding -%%BeginEncoding:_Times-Roman Times-Roman -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Times-Roman/Times-Roman Z -%%EndEncoding -%%BeginEncoding:_Times-Bold Times-Bold -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Times-Bold/Times-Bold Z -%%EndEncoding -%%BeginEncoding:_Times-Italic Times-Italic -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Times-Italic/Times-Italic Z -%%EndEncoding -%%BeginEncoding:_Times-BoldItalic Times-BoldItalic -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Times-BoldItalic/Times-BoldItalic Z -%%EndEncoding -%%BeginEncoding:_Courier Courier -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Courier/Courier Z -%%EndEncoding -%%BeginEncoding:_Courier-Bold Courier-Bold -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Courier-Bold/Courier-Bold Z -%%EndEncoding -%%BeginEncoding:_Courier-Oblique Courier-Oblique -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Courier-Oblique/Courier-Oblique Z -%%EndEncoding -%%BeginEncoding:_Courier-BoldOblique Courier-BoldOblique -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Courier-BoldOblique/Courier-BoldOblique Z -%%EndEncoding -%%BeginEncoding:_Symbol Symbol -[ -39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase -133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand -138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright -147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash -152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi -159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright -170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring -177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu -183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine -188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute -194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla -200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute -206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute -212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn -223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis -229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex -235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis -240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde -246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex -252/udieresis 253/yacute 254/thorn 255/ydieresis -] /_Symbol/Symbol Z -%%EndEncoding -%%EndSetup - -u - 0.000 0.000 0.000 1.000 k - [] 0 d -0.7500 w - 0.000 0.000 0.000 1.000 K -1 j - 1.2973 304.8649 m - 565.6216 304.8649 L - 565.6216 418.3784 L - 1.2973 418.3784 L - 1.2973 304.8649 L -s -U -u - 0.000 0.000 0.000 1.000 k - 0.000 0.000 0.000 1.000 K - 1.2973 203.6757 m - 565.6216 203.6757 L - 565.6216 299.0270 L - 1.2973 299.0270 L - 1.2973 203.6757 L -s -U -u - 0.000 0.000 0.000 1.000 k - 1.2973 1.9459 m - 565.6216 1.9459 L - 565.6216 197.8378 L - 1.2973 197.8378 L - 1.2973 1.9459 L -s -U - 0.000 0.000 0.000 0.000 k -u - 24.0000 101.1892 m - 494.9189 101.1892 L - 494.9189 44.7568 L - 24.0000 44.7568 L - 24.0000 101.1892 L -F - 259.4595 72.9730 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 24.0000 44.7568 m - 494.9189 44.7568 L - 494.9189 101.1892 L - 24.0000 101.1892 L - 24.0000 44.7568 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 228.9730 70.7027 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(PHY Multiplexing\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w - 0.000 0.000 0.000 1.000 K -1 j -u - 285.4054 392.4324 m - 313.2973 392.4324 L - 313.2973 307.4595 L - 285.4054 307.4595 L - 285.4054 392.4324 L -F - 299.3514 349.9459 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 285.4054 307.4595 m - 313.2973 307.4595 L - 313.2973 392.4324 L - 285.4054 392.4324 L - 285.4054 307.4595 L -s -U -u -1 J - 285.4054 350.2703 m - 313.2973 350.2703 L -S -U -u - 286.0541 330.1622 m - 313.9459 330.1622 L -S -U - 0.000 0.000 0.000 0.000 k -0.7500 w -u - 328.8649 392.4324 m - 356.7568 392.4324 L - 356.7568 307.4595 L - 328.8649 307.4595 L - 328.8649 392.4324 L -F - 342.8108 349.9459 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 328.8649 307.4595 m - 356.7568 307.4595 L - 356.7568 392.4324 L - 328.8649 392.4324 L - 328.8649 307.4595 L -s -U -u - 328.8649 350.2703 m - 356.7568 350.2703 L -S -U -u - 328.8649 330.1622 m - 356.7568 330.1622 L -S -U - 0.000 0.000 0.000 0.000 k -0.7500 w -u - 370.3784 392.4324 m - 398.2703 392.4324 L - 398.2703 307.4595 L - 370.3784 307.4595 L - 370.3784 392.4324 L -F - 384.3243 349.9459 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 370.3784 307.4595 m - 398.2703 307.4595 L - 398.2703 392.4324 L - 370.3784 392.4324 L - 370.3784 307.4595 L -s -U -u - 370.3784 350.2703 m - 398.2703 350.2703 L -S -U -u - 370.3784 330.1622 m - 398.2703 330.1622 L -S -U - 0.000 0.000 0.000 0.000 k -0.7500 w -u - 470.2703 392.4324 m - 498.1622 392.4324 L - 498.1622 307.4595 L - 470.2703 307.4595 L - 470.2703 392.4324 L -F - 484.2162 349.9459 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 470.2703 307.4595 m - 498.1622 307.4595 L - 498.1622 392.4324 L - 470.2703 392.4324 L - 470.2703 307.4595 L -s -U -u - 470.2703 350.2703 m - 498.1622 350.2703 L -S -U -u - 470.2703 330.1622 m - 498.1622 330.1622 L -S -U - 0.000 0.000 0.000 0.000 k -0.7500 w -u - 295.1351 171.8919 m - 337.2973 171.8919 L - 337.2973 129.0811 L - 295.1351 129.0811 L - 295.1351 171.8919 L -F - 316.2162 150.4865 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 295.1351 129.0811 m - 337.2973 129.0811 L - 337.2973 171.8919 L - 295.1351 171.8919 L - 295.1351 129.0811 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 301.6216 162.1622 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(Channel\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 303.5676 153.0811 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Coding\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 308.1081 143.3514 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(\(incl.\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 306.1622 133.6216 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(ARQ\)\r) Tx -TO - 0.000 0.000 0.000 1.000 K -u -1 j - 259.4595 44.7568 m - 259.4595 32.4324 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 262.0541 33.0811 m - 259.4595 24.6486 L - 256.8649 33.0811 L - 262.0541 33.0811 L -F -U -0 To -1.0000 0.0000 0.0000 1.0000 168.6486 13.6216 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j - 0.000 0.000 0.000 1.000 k -(PHY resources \(slots, sub-carriers, antennas\)\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w -1 j -u - 346.3784 171.8919 m - 388.5405 171.8919 L - 388.5405 129.0811 L - 346.3784 129.0811 L - 346.3784 171.8919 L -F - 367.4595 150.4865 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 346.3784 129.0811 m - 388.5405 129.0811 L - 388.5405 171.8919 L - 346.3784 171.8919 L - 346.3784 129.0811 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 352.8649 162.1622 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(Channel\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 354.8108 153.0811 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Coding\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 359.3514 143.3514 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(\(incl.\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 357.4054 133.6216 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(ARQ\)\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w -1 j -u - 397.6216 171.8919 m - 439.1351 171.8919 L - 439.1351 129.0811 L - 397.6216 129.0811 L - 397.6216 171.8919 L -F - 418.3784 150.4865 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 397.6216 129.0811 m - 439.1351 129.0811 L - 439.1351 171.8919 L - 397.6216 171.8919 L - 397.6216 129.0811 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 403.4595 162.1622 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(Channel\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 406.0541 153.0811 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Coding\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 409.9459 143.3514 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(\(incl.\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 408.6486 133.6216 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(ARQ\)\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w -1 j -u - 448.2162 171.8919 m - 490.3784 171.8919 L - 490.3784 129.0811 L - 448.2162 129.0811 L - 448.2162 171.8919 L -F - 469.2973 150.4865 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 448.2162 129.0811 m - 490.3784 129.0811 L - 490.3784 171.8919 L - 448.2162 171.8919 L - 448.2162 129.0811 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 454.7027 162.8108 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(Channel\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 457.2973 153.0811 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Coding\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 461.1892 143.3514 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(\(incl.\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 459.8919 133.6216 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(ARQ\)\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w -1 j -u - 275.6757 262.0541 m - 504.0000 262.0541 L - 504.0000 205.6216 L - 275.6757 205.6216 L - 275.6757 262.0541 L -F - 389.8378 233.8378 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 275.6757 206.2703 m - 504.0000 206.2703 L - 504.0000 262.0541 L - 275.6757 262.0541 L - 275.6757 206.2703 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 348.3243 236.1081 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(OFDMA SACH/SACCH\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 370.3784 226.3784 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Scheduling\r) Tx -TO - 0.000 0.000 0.000 1.000 K -u -1 j - 320.4324 206.2703 m - 321.7297 179.6757 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 324.3243 180.3243 m - 321.7297 171.8919 L - 319.1351 180.3243 L - 324.3243 180.3243 L -F -U -u -0.0000 w - 372.9730 206.2703 m - 372.9730 179.6757 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 375.5676 180.3243 m - 372.9730 171.8919 L - 370.3784 180.3243 L - 375.5676 180.3243 L -F -U -u -0.0000 w - 424.2162 206.2703 m - 424.2162 179.6757 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 426.8108 180.3243 m - 424.2162 171.8919 L - 421.6216 180.3243 L - 426.8108 180.3243 L -F -U -u -0.0000 w - 476.7568 207.5676 m - 475.4595 179.6757 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 478.0541 180.3243 m - 475.4595 171.8919 L - 472.8649 180.3243 L - 478.0541 180.3243 L -F -U -u -0.0000 w - 310.7027 206.2703 m - 310.7027 179.6757 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 313.2973 180.3243 m - 310.7027 171.8919 L - 308.1081 180.3243 L - 313.2973 180.3243 L -F -U -u -0.0000 w - 361.9459 206.2703 m - 361.9459 179.6757 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 364.5405 180.3243 m - 361.9459 171.8919 L - 358.7027 180.3243 L - 364.5405 180.3243 L -F -U -u -0.0000 w - 412.5405 206.2703 m - 412.5405 179.6757 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 415.7838 180.3243 m - 412.5405 171.8919 L - 409.9459 180.3243 L - 415.7838 180.3243 L -F -U -u -0.0000 w - 464.4324 206.2703 m - 463.7838 179.6757 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 467.0270 180.3243 m - 463.7838 171.8919 L - 461.1892 180.3243 L - 467.0270 180.3243 L -F -U -u - 0.000 0.000 0.000 0.000 k - 299.0270 266.5946 m - 308.1081 275.0270 L - 302.2703 275.0270 L - 302.2703 297.7297 L - 296.4324 297.7297 L - 296.4324 275.0270 L - 290.5946 275.0270 L - 299.0270 266.5946 L -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 299.0270 266.5946 m - 308.1081 275.0270 L - 302.2703 275.0270 L - 302.2703 297.7297 L - 296.4324 297.7297 L - 296.4324 275.0270 L - 290.5946 275.0270 L - 299.0270 266.5946 L -s -U -u - 0.000 0.000 0.000 0.000 k -0.7500 w - 343.1351 266.5946 m - 351.5676 275.0270 L - 346.3784 275.0270 L - 346.3784 297.7297 L - 340.5405 297.7297 L - 340.5405 275.0270 L - 334.7027 275.0270 L - 343.1351 266.5946 L -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 343.1351 266.5946 m - 351.5676 275.0270 L - 346.3784 275.0270 L - 346.3784 297.7297 L - 340.5405 297.7297 L - 340.5405 275.0270 L - 334.7027 275.0270 L - 343.1351 266.5946 L -s -U -u - 0.000 0.000 0.000 0.000 k -0.7500 w - 384.6486 266.5946 m - 393.0811 275.0270 L - 387.2432 275.0270 L - 387.2432 297.7297 L - 381.4054 297.7297 L - 381.4054 275.0270 L - 375.5676 275.0270 L - 384.6486 266.5946 L -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 384.6486 266.5946 m - 393.0811 275.0270 L - 387.2432 275.0270 L - 387.2432 297.7297 L - 381.4054 297.7297 L - 381.4054 275.0270 L - 375.5676 275.0270 L - 384.6486 266.5946 L -s -U -u - 0.000 0.000 0.000 0.000 k -0.7500 w - 484.5405 267.8919 m - 492.9730 276.9730 L - 487.7838 276.9730 L - 487.7838 299.6757 L - 481.9459 299.6757 L - 481.9459 276.9730 L - 476.1081 276.9730 L - 484.5405 267.8919 L -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 484.5405 267.8919 m - 492.9730 276.9730 L - 487.7838 276.9730 L - 487.7838 299.6757 L - 481.9459 299.6757 L - 481.9459 276.9730 L - 476.1081 276.9730 L - 484.5405 267.8919 L -s -U -u - 505.2973 214.0541 m - 515.0270 203.0270 L - 523.4595 191.3514 L - 529.9459 179.6757 L - 535.1351 168.6486 L - 537.7297 157.6216 L - 539.6757 146.5946 L - 539.0270 136.2162 L - 537.0811 125.8378 L - 533.1892 115.4595 L - 528.0000 105.7297 L - 520.8649 96.0000 L - 511.7838 86.9189 L - 501.4054 77.8378 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 503.3514 75.8919 m - 495.5676 73.2973 L - 500.1081 80.4324 L - 503.3514 75.8919 L -F -U -u -0.0000 w - 321.7297 129.7297 m - 321.7297 110.2703 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 324.9730 110.9189 m - 321.7297 102.4865 L - 319.1351 110.9189 L - 324.9730 110.9189 L -F -U -u -0.0000 w - 424.2162 129.7297 m - 424.2162 110.2703 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 426.8108 110.9189 m - 424.2162 102.4865 L - 421.6216 110.9189 L - 426.8108 110.9189 L -F -U -u -0.0000 w - 475.4595 129.7297 m - 475.4595 110.2703 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 478.0541 110.9189 m - 475.4595 102.4865 L - 472.2162 110.9189 L - 478.0541 110.9189 L -F -U -u -0.0000 w - 310.7027 129.7297 m - 310.7027 110.2703 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 313.2973 110.9189 m - 310.7027 102.4865 L - 308.1081 110.9189 L - 313.2973 110.9189 L -F -U -u -0.0000 w - 361.9459 129.7297 m - 361.9459 110.2703 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 364.5405 110.9189 m - 361.9459 102.4865 L - 358.7027 110.9189 L - 364.5405 110.9189 L -F -U -u -0.0000 w - 412.5405 129.7297 m - 412.5405 110.2703 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 415.7838 110.9189 m - 412.5405 102.4865 L - 409.9459 110.9189 L - 415.7838 110.9189 L -F -U -u -0.0000 w - 463.7838 129.7297 m - 463.7838 110.2703 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 466.3784 110.9189 m - 463.7838 102.4865 L - 461.1892 110.9189 L - 466.3784 110.9189 L -F -U -0 To --0.0011 -1.0000 1.0000 -0.0011 327.5103 195.8919 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j - 0.000 0.000 0.000 1.000 k -(D\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 327.5103 190.0541 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 327.5103 184.8649 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 327.5103 179.6757 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 314.5374 195.8919 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(C\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 314.5374 190.0541 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(N\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 314.5374 184.2162 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 314.5374 179.0270 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(L\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 378.7536 195.8919 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(D\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 378.7536 190.0541 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 378.7536 184.8649 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 378.7536 179.6757 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 365.7806 195.8919 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(C\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 365.7806 190.0541 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(N\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 365.7806 184.2162 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 365.7806 179.0270 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(L\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 429.3482 195.8919 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(D\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 429.3482 190.0541 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 429.3482 184.8649 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 429.3482 179.6757 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 417.0238 195.8919 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(C\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 417.0238 190.0541 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(N\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 417.0238 184.2162 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 417.0238 179.0270 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(L\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 480.5914 195.8919 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(D\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 480.5914 190.0541 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 480.5914 184.8649 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 480.5914 179.6757 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 467.6184 195.8919 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(C\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 467.6184 190.0541 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(N\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 467.6184 184.2162 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 467.6184 179.0270 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(L\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 327.5103 127.7838 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(D\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 327.5103 121.9459 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 327.5103 116.1081 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 327.5103 111.5676 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 314.5374 127.1351 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(C\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 314.5374 121.2973 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(N\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 314.5374 115.4595 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 314.5374 110.9189 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(L\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 378.7536 127.7838 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(D\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 378.7536 121.9459 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 378.7536 116.1081 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 378.7536 111.5676 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 365.7806 127.1351 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(C\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 365.7806 121.2973 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(N\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 365.7806 115.4595 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 365.7806 110.9189 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(L\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 429.3482 127.7838 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(D\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 429.3482 121.9459 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 429.3482 116.1081 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 429.3482 111.5676 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 417.0238 127.1351 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(C\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 417.0238 121.2973 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(N\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 417.0238 115.4595 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 417.0238 110.9189 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(L\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 480.5914 127.7838 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(D\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 480.5914 121.9459 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 480.5914 116.1081 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 480.5914 111.5676 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(A\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 467.6184 127.1351 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(C\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 467.6184 121.2973 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(N\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 467.6184 115.4595 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(T\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To --0.0011 -1.0000 1.0000 -0.0011 467.6184 110.9189 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(L\r) Tx -TO - 0.000 0.000 0.000 1.000 K -u -1 j - 526.0541 245.1892 m - 512.4324 245.1892 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 513.0811 242.5946 m - 504.6486 245.1892 L - 513.0811 247.7838 L - 513.0811 242.5946 L -F -U -0 To -1.0000 0.0000 0.0000 1.0000 508.5405 228.9730 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j - 0.000 0.000 0.000 1.000 k -(RF meas.\r) Tx -TO - 0.000 0.000 0.000 1.000 K -u -1 j - 526.0541 226.3784 m - 512.4324 226.3784 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 513.0811 223.1351 m - 504.6486 226.3784 L - 513.0811 228.9730 L - 513.0811 223.1351 L -F -U -0 To -1.0000 0.0000 0.0000 1.0000 508.5405 251.0270 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j - 0.000 0.000 0.000 1.000 k -(TxOPs \(BCH\)\r) Tx -TO - 0.000 0.000 0.000 1.000 K -u -1 j - 526.0541 59.0270 m - 502.7027 59.0270 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 503.3514 55.7838 m - 494.9189 59.0270 L - 503.3514 61.6216 L - 503.3514 55.7838 L -F -U -0 To -1.0000 0.0000 0.0000 1.0000 505.9459 72.6486 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j - 0.000 0.000 0.000 1.000 k -(MCH params\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 495.5676 61.6216 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(\(attachment proc.\)\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w -1 j -u - 192.0000 368.4324 m - 247.7838 368.4324 L - 247.7838 326.9189 L - 192.0000 326.9189 L - 192.0000 368.4324 L -F - 219.8919 347.6757 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 192.0000 326.9189 m - 247.7838 326.9189 L - 247.7838 368.4324 L - 192.0000 368.4324 L - 192.0000 326.9189 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 199.7838 350.2703 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(QoS Traffic\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 202.3784 340.5405 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Measures\r) Tx -TO - 0.000 0.000 0.000 1.000 K -u - 0.000 0.000 0.000 0.000 k -0.7500 w - 0.000 0.000 0.000 1.000 K -1 j - 252.3243 351.5676 m - 272.4324 331.4595 L - 272.4324 345.0811 L - 509.8378 345.0811 L - 509.8378 358.0541 L - 272.4324 358.0541 L - 272.4324 371.6757 L - 252.3243 351.5676 L -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 252.3243 351.5676 m - 272.4324 331.4595 L - 272.4324 345.0811 L - 509.8378 345.0811 L - 509.8378 358.0541 L - 272.4324 358.0541 L - 272.4324 371.6757 L - 252.3243 351.5676 L -s -U -u - 370.3784 369.7297 m - 398.2703 369.7297 L -S -U -u - 328.8649 369.7297 m - 356.7568 369.7297 L -S -U -u - 285.4054 369.7297 m - 312.6486 369.7297 L -S -U -u - 470.2703 369.7297 m - 498.1622 369.7297 L -S -U - 0.000 0.000 0.000 0.000 k -0.7500 w -u - 192.0000 249.7297 m - 247.7838 249.7297 L - 247.7838 208.2162 L - 192.0000 208.2162 L - 192.0000 249.7297 L -F - 219.8919 228.9730 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 192.0000 208.8649 m - 247.7838 208.8649 L - 247.7838 249.7297 L - 192.0000 249.7297 L - 192.0000 208.8649 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 210.8108 230.9189 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(MCH\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 200.4324 221.8378 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 1.000 k -(Generation\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w -1 j -u - 199.1351 171.8919 m - 241.2973 171.8919 L - 241.2973 129.0811 L - 199.1351 129.0811 L - 199.1351 171.8919 L -F - 220.2162 150.4865 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 199.1351 129.0811 m - 241.2973 129.0811 L - 241.2973 171.8919 L - 199.1351 171.8919 L - 199.1351 129.0811 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 205.6216 153.0811 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(Channel\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 207.5676 143.3514 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Coding\r) Tx -TO - 0.000 0.000 0.000 1.000 K -u -1 j - 219.8919 208.8649 m - 219.8919 179.6757 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 223.1351 180.3243 m - 219.8919 171.8919 L - 217.2973 180.3243 L - 223.1351 180.3243 L -F -U -u -0.0000 w - 219.8919 326.9189 m - 219.8919 257.5135 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 222.4865 258.1622 m - 219.8919 249.7297 L - 217.2973 258.1622 L - 222.4865 258.1622 L -F -U - 0.000 0.000 0.000 0.000 k -u - 183.5676 374.2703 m - 239.3514 374.2703 L - 239.3514 332.1081 L - 183.5676 332.1081 L - 183.5676 374.2703 L -F - 211.4595 353.1892 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 183.5676 332.1081 m - 239.3514 332.1081 L - 239.3514 374.2703 L - 183.5676 374.2703 L - 183.5676 332.1081 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 191.3514 355.4595 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(QoS Traffic\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 193.9459 346.3784 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Measures\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w -1 j -u - 183.5676 255.5676 m - 239.3514 255.5676 L - 239.3514 213.4054 L - 183.5676 213.4054 L - 183.5676 255.5676 L -F - 211.4595 234.4865 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 183.5676 213.4054 m - 239.3514 213.4054 L - 239.3514 255.5676 L - 183.5676 255.5676 L - 183.5676 213.4054 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 202.3784 236.7568 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(MCH\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 191.3514 227.0270 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Generation\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w -1 j -u - 190.7027 177.7297 m - 232.8649 177.7297 L - 232.8649 134.9189 L - 190.7027 134.9189 L - 190.7027 177.7297 L -F - 211.7838 156.3243 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 190.7027 134.9189 m - 232.8649 134.9189 L - 232.8649 177.7297 L - 190.7027 177.7297 L - 190.7027 134.9189 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 196.5405 158.9189 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(Channel\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 199.1351 149.1892 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Coding\r) Tx -TO - 0.000 0.000 0.000 1.000 K -u -1 j - 211.4595 213.4054 m - 211.4595 185.5135 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 214.0541 186.1622 m - 211.4595 177.7297 L - 208.8649 186.1622 L - 214.0541 186.1622 L -F -U -u -0.0000 w - 211.4595 332.1081 m - 211.4595 263.3514 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 214.0541 264.0000 m - 211.4595 255.5676 L - 208.8649 264.0000 L - 214.0541 264.0000 L -F -U - 0.000 0.000 0.000 0.000 k -u - 173.8378 380.1081 m - 229.6216 380.1081 L - 229.6216 337.9459 L - 173.8378 337.9459 L - 173.8378 380.1081 L -F - 201.7297 359.0270 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 173.8378 337.9459 m - 229.6216 337.9459 L - 229.6216 380.1081 L - 173.8378 380.1081 L - 173.8378 337.9459 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 181.6216 361.2973 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(QoS Traffic\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 184.2162 351.5676 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Measures\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w -1 j -u - 173.8378 261.4054 m - 229.6216 261.4054 L - 229.6216 219.2432 L - 173.8378 219.2432 L - 173.8378 261.4054 L -F - 201.7297 240.3243 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 173.8378 219.2432 m - 229.6216 219.2432 L - 229.6216 261.4054 L - 173.8378 261.4054 L - 173.8378 219.2432 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 180.3243 242.5946 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(MCH/RACH\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 182.2703 232.8649 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Generation\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w -1 j -u - 180.9730 183.5676 m - 223.1351 183.5676 L - 223.1351 140.7568 L - 180.9730 140.7568 L - 180.9730 183.5676 L -F - 202.0541 162.1622 m -F -U -u - 0.000 0.000 0.000 1.000 k -0.0000 w - 180.9730 140.7568 m - 223.1351 140.7568 L - 223.1351 183.5676 L - 180.9730 183.5676 L - 180.9730 140.7568 L -s -U -0 To -1.0000 0.0000 0.0000 1.0000 187.4595 164.1081 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0 j - 0.000 0.000 0.000 1.000 k -(Channel\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 189.4054 154.3784 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Coding\r) Tx -TO - 0.000 0.000 0.000 1.000 K -u -1 j - 201.7297 219.2432 m - 202.3784 191.3514 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 204.9730 192.0000 m - 202.3784 183.5676 L - 199.1351 192.0000 L - 204.9730 192.0000 L -F -U -u -0.0000 w - 201.7297 337.9459 m - 201.7297 268.5405 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 204.9730 269.1892 m - 201.7297 261.4054 L - 199.1351 269.1892 L - 204.9730 269.1892 L -F -U -u -0.0000 w - 221.1892 128.4324 m - 221.1892 108.9730 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 223.7838 109.6216 m - 221.1892 101.1892 L - 218.5946 109.6216 L - 223.7838 109.6216 L -F -U -u -0.0000 w - 211.4595 135.5676 m - 211.4595 108.3243 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 214.0541 108.9730 m - 211.4595 100.5405 L - 208.8649 108.9730 L - 214.0541 108.9730 L -F -U -u -0.0000 w - 203.0270 140.7568 m - 203.0270 108.9730 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 205.6216 109.6216 m - 203.0270 101.1892 L - 200.4324 109.6216 L - 205.6216 109.6216 L -F -U -0 To -1.0000 0.0000 0.0000 1.0000 146.5946 406.7027 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j - 0.000 0.000 0.000 1.000 k -(RSSI\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 146.5946 395.6757 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Measurements\r) Tx -TO - 0.000 0.000 0.000 1.000 K -u -1 j - 166.7027 230.2703 m - 134.9189 230.2703 L - 134.9189 395.6757 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 166.0541 232.8649 m - 174.4865 230.2703 L - 166.0541 227.6757 L - 166.0541 232.8649 L -F -U -0 To -1.0000 0.0000 0.0000 1.0000 112.8649 407.3514 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j - 0.000 0.000 0.000 1.000 k -(CNTL\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 117.4054 396.3243 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Data\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 221.8378 276.9730 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(One MCH/RACH\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 221.8378 265.9459 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(per Cluster\r) Tx -TO - 0.000 0.000 0.000 1.000 K - 0.000 0.000 0.000 0.000 k -0.7500 w -1 j -u - 72.6486 179.6757 m - 114.8108 179.6757 L - 114.8108 141.4054 L - 72.6486 141.4054 L - 72.6486 179.6757 L -F - 93.7297 160.5405 m -F -U -0 XR - - 0.000 0.000 0.000 1.000 k -*u - 72.6486 179.0270 m - 72.6486 174.4865 L - 72.6486 173.8378 L - 72.6486 173.8378 L - 72.0000 173.8378 L - 72.0000 174.4865 L - 72.0000 179.0270 L - 72.0000 179.0270 L - 72.6486 179.0270 L - 72.6486 179.0270 L - 72.6486 179.0270 L - 72.6486 179.0270 L - 72.6486 179.0270 L -B -u - 72.6486 171.2432 m - 72.6486 166.7027 L - 72.6486 166.0541 L - 72.6486 166.0541 L - 72.0000 166.0541 L - 72.0000 166.7027 L - 72.0000 171.2432 L - 72.0000 171.2432 L - 72.6486 171.2432 L - 72.6486 171.2432 L - 72.6486 171.2432 L - 72.6486 171.2432 L -B -U -u - 72.6486 163.4595 m - 72.6486 158.9189 L - 72.6486 158.2703 L - 72.6486 158.2703 L - 72.0000 158.2703 L - 72.0000 158.9189 L - 72.0000 163.4595 L - 72.0000 163.4595 L - 72.6486 163.4595 L - 72.6486 163.4595 L - 72.6486 163.4595 L - 72.6486 163.4595 L - 72.6486 163.4595 L -B -U -u - 72.6486 155.6757 m - 72.6486 151.1351 L - 72.6486 150.4865 L - 72.6486 150.4865 L - 72.0000 150.4865 L - 72.0000 151.1351 L - 72.0000 155.6757 L - 72.0000 155.6757 L - 72.6486 155.6757 L - 72.6486 155.6757 L - 72.6486 155.6757 L - 72.6486 155.6757 L - 72.6486 155.6757 L -B -U -u - 72.6486 147.8919 m - 72.6486 143.3514 L - 72.6486 142.7027 L - 72.6486 142.7027 L - 72.0000 142.7027 L - 72.0000 143.3514 L - 72.0000 147.8919 L - 72.0000 147.8919 L - 72.6486 147.8919 L - 72.6486 147.8919 L - 72.6486 147.8919 L - 72.6486 147.8919 L -B -U -u - 73.9459 142.0541 m - 78.4865 142.0541 L - 78.4865 141.4054 L - 79.1351 141.4054 L - 78.4865 141.4054 L - 78.4865 141.4054 L - 73.9459 141.4054 L - 73.9459 141.4054 L - 73.9459 141.4054 L - 73.9459 141.4054 L - 73.9459 142.0541 L - 73.9459 142.0541 L - 73.9459 142.0541 L -B -U -u - 81.7297 142.0541 m - 86.2703 142.0541 L - 86.2703 141.4054 L - 86.9189 141.4054 L - 86.2703 141.4054 L - 86.2703 141.4054 L - 81.7297 141.4054 L - 81.7297 141.4054 L - 81.7297 141.4054 L - 81.7297 141.4054 L - 81.7297 142.0541 L - 81.7297 142.0541 L - 81.7297 142.0541 L -B -U -u - 89.5135 142.0541 m - 94.0541 142.0541 L - 94.0541 141.4054 L - 94.7027 141.4054 L - 94.0541 141.4054 L - 94.0541 141.4054 L - 89.5135 141.4054 L - 89.5135 141.4054 L - 89.5135 141.4054 L - 89.5135 141.4054 L - 89.5135 142.0541 L - 89.5135 142.0541 L - 89.5135 142.0541 L -B -U -u - 97.2973 142.0541 m - 101.8378 142.0541 L - 101.8378 141.4054 L - 102.4865 141.4054 L - 101.8378 141.4054 L - 101.8378 141.4054 L - 97.2973 141.4054 L - 97.2973 141.4054 L - 97.2973 141.4054 L - 97.2973 141.4054 L - 97.2973 142.0541 L - 97.2973 142.0541 L - 97.2973 142.0541 L -B -U -u - 105.0811 142.0541 m - 109.6216 142.0541 L - 109.6216 141.4054 L - 110.2703 141.4054 L - 109.6216 141.4054 L - 109.6216 141.4054 L - 105.0811 141.4054 L - 105.0811 141.4054 L - 105.0811 141.4054 L - 105.0811 141.4054 L - 105.0811 142.0541 L - 105.0811 142.0541 L - 105.0811 142.0541 L -B -U -u - 112.8649 142.0541 m - 114.8108 142.0541 L - 114.8108 141.4054 L - 114.8108 144.0000 L - 114.8108 144.0000 L - 114.8108 144.0000 L - 115.4595 144.0000 L - 115.4595 144.0000 L - 115.4595 141.4054 L - 115.4595 141.4054 L - 114.8108 141.4054 L - 112.8649 141.4054 L - 112.8649 141.4054 L - 112.8649 141.4054 L - 112.8649 141.4054 L - 112.8649 142.0541 L - 112.8649 142.0541 L - 112.8649 142.0541 L -B -U -u - 114.8108 147.2432 m - 114.8108 151.7838 L - 114.8108 151.7838 L - 114.8108 151.7838 L - 115.4595 151.7838 L - 115.4595 151.7838 L - 115.4595 147.2432 L - 115.4595 146.5946 L - 114.8108 146.5946 L - 114.8108 146.5946 L - 114.8108 147.2432 L - 114.8108 147.2432 L - 114.8108 147.2432 L -B -U -u - 114.8108 155.0270 m - 114.8108 159.5676 L - 114.8108 159.5676 L - 114.8108 159.5676 L - 115.4595 159.5676 L - 115.4595 159.5676 L - 115.4595 155.0270 L - 115.4595 154.3784 L - 114.8108 154.3784 L - 114.8108 154.3784 L - 114.8108 155.0270 L - 114.8108 155.0270 L - 114.8108 155.0270 L -B -U -u - 114.8108 162.8108 m - 114.8108 167.3514 L - 114.8108 167.3514 L - 114.8108 167.3514 L - 115.4595 167.3514 L - 115.4595 167.3514 L - 115.4595 162.8108 L - 115.4595 162.1622 L - 114.8108 162.1622 L - 114.8108 162.1622 L - 114.8108 162.8108 L - 114.8108 162.8108 L - 114.8108 162.8108 L -B -U -u - 114.8108 170.5946 m - 114.8108 175.1351 L - 114.8108 175.1351 L - 114.8108 175.1351 L - 115.4595 175.1351 L - 115.4595 175.1351 L - 115.4595 170.5946 L - 115.4595 169.9459 L - 114.8108 169.9459 L - 114.8108 169.9459 L - 114.8108 170.5946 L - 114.8108 170.5946 L - 114.8108 170.5946 L -B -U -u - 114.8108 178.3784 m - 114.8108 179.6757 L - 114.8108 179.0270 L - 111.5676 179.0270 L - 111.5676 179.0270 L - 111.5676 179.6757 L - 111.5676 179.6757 L - 111.5676 179.6757 L - 114.8108 179.6757 L - 115.4595 179.6757 L - 115.4595 179.6757 L - 115.4595 178.3784 L - 115.4595 177.7297 L - 114.8108 177.7297 L - 114.8108 177.7297 L - 114.8108 178.3784 L - 114.8108 178.3784 L - 114.8108 178.3784 L -B -U -u - 108.3243 179.0270 m - 103.7838 179.0270 L - 103.7838 179.0270 L - 103.7838 179.6757 L - 103.7838 179.6757 L - 103.7838 179.6757 L - 108.3243 179.6757 L - 108.3243 179.6757 L - 108.9730 179.6757 L - 108.3243 179.0270 L - 108.3243 179.0270 L - 108.3243 179.0270 L - 108.3243 179.0270 L -B -U -u - 100.5405 179.0270 m - 96.0000 179.0270 L - 96.0000 179.0270 L - 96.0000 179.6757 L - 96.0000 179.6757 L - 96.0000 179.6757 L - 100.5405 179.6757 L - 100.5405 179.6757 L - 101.1892 179.6757 L - 100.5405 179.0270 L - 100.5405 179.0270 L - 100.5405 179.0270 L - 100.5405 179.0270 L -B -U -u - 92.7568 179.0270 m - 88.2162 179.0270 L - 88.2162 179.0270 L - 88.2162 179.6757 L - 88.2162 179.6757 L - 88.2162 179.6757 L - 92.7568 179.6757 L - 92.7568 179.6757 L - 93.4054 179.6757 L - 92.7568 179.0270 L - 92.7568 179.0270 L - 92.7568 179.0270 L - 92.7568 179.0270 L -B -U -u - 84.9730 179.0270 m - 80.4324 179.0270 L - 80.4324 179.0270 L - 80.4324 179.6757 L - 80.4324 179.6757 L - 80.4324 179.6757 L - 84.9730 179.6757 L - 84.9730 179.6757 L - 85.6216 179.6757 L - 84.9730 179.0270 L - 84.9730 179.0270 L - 84.9730 179.0270 L - 84.9730 179.0270 L -B -U -u - 77.1892 179.0270 m - 72.6486 179.0270 L - 72.6486 179.0270 L - 72.6486 179.6757 L - 72.6486 179.6757 L - 72.6486 179.6757 L - 77.1892 179.6757 L - 77.1892 179.6757 L - 77.8378 179.6757 L - 77.1892 179.0270 L - 77.1892 179.0270 L - 77.1892 179.0270 L - 77.1892 179.0270 L -B -U -*U -0 To -1.0000 0.0000 0.0000 1.0000 78.4865 162.8108 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j -1 XR - - 0.000 0.000 0.000 1.000 k -(Channel\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 81.0811 153.0811 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Coding\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 XR - - 0.000 0.000 0.000 1.000 k -0.7500 w -1 j -*u - 94.7027 219.8919 m - 95.3514 215.3514 L - 94.7027 214.7027 L - 94.7027 214.7027 L - 94.7027 214.7027 L - 94.7027 215.3514 L - 94.0541 219.8919 L - 94.7027 219.8919 L - 94.7027 219.8919 L - 94.7027 219.8919 L - 94.7027 219.8919 L - 94.7027 219.8919 L - 94.7027 219.8919 L -B -u - 95.3514 212.1081 m - 95.3514 208.2162 L - 95.3514 207.5676 L - 94.7027 207.5676 L - 94.7027 207.5676 L - 94.7027 208.2162 L - 94.7027 212.1081 L - 94.7027 212.1081 L - 94.7027 212.1081 L - 94.7027 212.1081 L - 95.3514 212.1081 L - 95.3514 212.1081 L - 95.3514 212.1081 L -B -U -u - 95.3514 204.9730 m - 95.3514 200.4324 L - 95.3514 199.7838 L - 95.3514 199.7838 L - 94.7027 199.7838 L - 94.7027 200.4324 L - 94.7027 204.9730 L - 94.7027 204.9730 L - 94.7027 204.9730 L - 95.3514 204.9730 L - 95.3514 204.9730 L - 95.3514 204.9730 L - 95.3514 204.9730 L -B -U -u - 95.3514 197.1892 m - 95.3514 192.6486 L - 95.3514 192.0000 L - 95.3514 192.0000 L - 94.7027 192.0000 L - 94.7027 192.6486 L - 94.7027 197.1892 L - 94.7027 197.1892 L - 95.3514 197.1892 L - 95.3514 197.1892 L - 95.3514 197.1892 L - 95.3514 197.1892 L - 95.3514 197.1892 L -B -U -u - 95.3514 189.4054 m - 95.3514 186.8108 L - 95.3514 186.1622 L - 95.3514 186.1622 L - 95.3514 186.1622 L - 94.7027 186.1622 L - 94.7027 189.4054 L - 94.7027 189.4054 L - 95.3514 189.4054 L - 95.3514 189.4054 L - 95.3514 189.4054 L - 95.3514 189.4054 L - 95.3514 189.4054 L -B -U -*U -u -1 XR - - 0.000 0.000 0.000 1.000 k - 97.9459 187.4595 m - 95.3514 179.0270 L - 92.7568 187.4595 L - 97.9459 187.4595 L -F -U - 0.000 0.000 0.000 0.000 k -u - 66.8108 261.4054 m - 122.5946 261.4054 L - 122.5946 219.8919 L - 66.8108 219.8919 L - 66.8108 261.4054 L -F - 94.7027 240.6486 m -F -U -0 XR - - 0.000 0.000 0.000 1.000 k -*u - 66.8108 260.7568 m - 66.8108 256.2162 L - 66.8108 256.2162 L - 66.8108 256.2162 L - 66.8108 256.2162 L - 66.1622 256.2162 L - 66.1622 260.7568 L - 66.8108 261.4054 L - 66.8108 261.4054 L - 66.8108 261.4054 L - 66.8108 260.7568 L - 66.8108 260.7568 L - 66.8108 260.7568 L -B -u - 66.8108 252.9730 m - 66.8108 248.4324 L - 66.8108 248.4324 L - 66.8108 248.4324 L - 66.8108 248.4324 L - 66.1622 248.4324 L - 66.1622 252.9730 L - 66.8108 253.6216 L - 66.8108 253.6216 L - 66.8108 253.6216 L - 66.8108 252.9730 L - 66.8108 252.9730 L - 66.8108 252.9730 L -B -U -u - 66.8108 245.1892 m - 66.8108 240.6486 L - 66.8108 240.6486 L - 66.8108 240.6486 L - 66.8108 240.6486 L - 66.1622 240.6486 L - 66.1622 245.1892 L - 66.8108 245.8378 L - 66.8108 245.8378 L - 66.8108 245.8378 L - 66.8108 245.1892 L - 66.8108 245.1892 L - 66.8108 245.1892 L -B -U -u - 66.8108 237.4054 m - 66.8108 232.8649 L - 66.8108 232.8649 L - 66.8108 232.8649 L - 66.8108 232.8649 L - 66.1622 232.8649 L - 66.1622 237.4054 L - 66.8108 238.0541 L - 66.8108 238.0541 L - 66.8108 238.0541 L - 66.8108 237.4054 L - 66.8108 237.4054 L - 66.8108 237.4054 L -B -U -u - 66.8108 229.6216 m - 66.8108 225.0811 L - 66.8108 225.0811 L - 66.8108 225.0811 L - 66.8108 225.0811 L - 66.1622 225.0811 L - 66.1622 229.6216 L - 66.8108 230.2703 L - 66.8108 230.2703 L - 66.8108 230.2703 L - 66.8108 229.6216 L - 66.8108 229.6216 L - 66.8108 229.6216 L -B -U -u - 66.8108 221.8378 m - 66.8108 219.8919 L - 66.8108 219.8919 L - 68.7568 219.8919 L - 69.4054 219.8919 L - 69.4054 219.8919 L - 69.4054 219.2432 L - 68.7568 219.2432 L - 66.8108 219.2432 L - 66.8108 219.2432 L - 66.1622 219.8919 L - 66.1622 221.8378 L - 66.8108 222.4865 L - 66.8108 222.4865 L - 66.8108 222.4865 L - 66.8108 221.8378 L - 66.8108 221.8378 L - 66.8108 221.8378 L -B -U -u - 72.0000 219.8919 m - 76.5405 219.8919 L - 77.1892 219.8919 L - 77.1892 219.8919 L - 77.1892 219.2432 L - 76.5405 219.2432 L - 72.0000 219.2432 L - 72.0000 219.2432 L - 72.0000 219.8919 L - 72.0000 219.8919 L - 72.0000 219.8919 L - 72.0000 219.8919 L - 72.0000 219.8919 L -B -U -u - 79.7838 219.8919 m - 84.3243 219.8919 L - 84.9730 219.8919 L - 84.9730 219.8919 L - 84.9730 219.2432 L - 84.3243 219.2432 L - 79.7838 219.2432 L - 79.7838 219.2432 L - 79.7838 219.8919 L - 79.7838 219.8919 L - 79.7838 219.8919 L - 79.7838 219.8919 L - 79.7838 219.8919 L -B -U -u - 87.5676 219.8919 m - 92.1081 219.8919 L - 92.7568 219.8919 L - 92.7568 219.8919 L - 92.7568 219.2432 L - 92.1081 219.2432 L - 87.5676 219.2432 L - 87.5676 219.2432 L - 87.5676 219.8919 L - 87.5676 219.8919 L - 87.5676 219.8919 L - 87.5676 219.8919 L - 87.5676 219.8919 L -B -U -u - 95.3514 219.8919 m - 99.8919 219.8919 L - 100.5405 219.8919 L - 100.5405 219.8919 L - 100.5405 219.2432 L - 99.8919 219.2432 L - 95.3514 219.2432 L - 95.3514 219.2432 L - 95.3514 219.8919 L - 95.3514 219.8919 L - 95.3514 219.8919 L - 95.3514 219.8919 L - 95.3514 219.8919 L -B -U -u - 103.1351 219.8919 m - 107.6757 219.8919 L - 108.3243 219.8919 L - 108.3243 219.8919 L - 108.3243 219.2432 L - 107.6757 219.2432 L - 103.1351 219.2432 L - 103.1351 219.2432 L - 103.1351 219.8919 L - 103.1351 219.8919 L - 103.1351 219.8919 L - 103.1351 219.8919 L - 103.1351 219.8919 L -B -U -u - 110.9189 219.8919 m - 115.4595 219.8919 L - 116.1081 219.8919 L - 116.1081 219.8919 L - 116.1081 219.2432 L - 115.4595 219.2432 L - 110.9189 219.2432 L - 110.9189 219.2432 L - 110.9189 219.8919 L - 110.9189 219.8919 L - 110.9189 219.8919 L - 110.9189 219.8919 L - 110.9189 219.8919 L -B -U -u - 118.7027 219.8919 m - 122.5946 219.8919 L - 121.9459 219.8919 L - 121.9459 220.5405 L - 122.5946 221.1892 L - 122.5946 221.1892 L - 122.5946 221.1892 L - 122.5946 220.5405 L - 122.5946 219.8919 L - 122.5946 219.2432 L - 122.5946 219.2432 L - 118.7027 219.2432 L - 118.7027 219.2432 L - 118.7027 219.8919 L - 118.7027 219.8919 L - 118.7027 219.8919 L - 118.7027 219.8919 L - 118.7027 219.8919 L -B -U -u - 121.9459 223.7838 m - 121.9459 228.3243 L - 122.5946 228.3243 L - 122.5946 228.9730 L - 122.5946 228.3243 L - 122.5946 228.3243 L - 122.5946 223.7838 L - 122.5946 223.7838 L - 122.5946 223.7838 L - 121.9459 223.7838 L - 121.9459 223.7838 L - 121.9459 223.7838 L -B -U -u - 121.9459 231.5676 m - 121.9459 236.1081 L - 122.5946 236.1081 L - 122.5946 236.7568 L - 122.5946 236.1081 L - 122.5946 236.1081 L - 122.5946 231.5676 L - 122.5946 231.5676 L - 122.5946 231.5676 L - 122.5946 231.5676 L - 121.9459 231.5676 L - 121.9459 231.5676 L - 121.9459 231.5676 L -B -U -u - 121.9459 239.3514 m - 121.9459 243.8919 L - 122.5946 243.8919 L - 122.5946 244.5405 L - 122.5946 243.8919 L - 122.5946 243.8919 L - 122.5946 239.3514 L - 122.5946 239.3514 L - 122.5946 239.3514 L - 121.9459 239.3514 L - 121.9459 239.3514 L - 121.9459 239.3514 L -B -U -u - 121.9459 247.1351 m - 121.9459 251.6757 L - 122.5946 251.6757 L - 122.5946 252.3243 L - 122.5946 251.6757 L - 122.5946 251.6757 L - 122.5946 247.1351 L - 122.5946 247.1351 L - 122.5946 247.1351 L - 121.9459 247.1351 L - 121.9459 247.1351 L - 121.9459 247.1351 L -B -U -u - 121.9459 254.9189 m - 121.9459 259.4595 L - 122.5946 259.4595 L - 122.5946 260.1081 L - 122.5946 259.4595 L - 122.5946 259.4595 L - 122.5946 254.9189 L - 122.5946 254.9189 L - 122.5946 254.9189 L - 122.5946 254.9189 L - 121.9459 254.9189 L - 121.9459 254.9189 L - 121.9459 254.9189 L -B -U -u - 121.2973 261.4054 m - 116.7568 261.4054 L - 116.7568 261.4054 L - 116.7568 261.4054 L - 116.7568 262.0541 L - 116.7568 262.0541 L - 121.2973 262.0541 L - 121.2973 262.0541 L - 121.2973 261.4054 L - 121.2973 261.4054 L - 121.2973 261.4054 L - 121.2973 261.4054 L - 121.2973 261.4054 L -B -U -u - 113.5135 261.4054 m - 108.9730 261.4054 L - 108.9730 261.4054 L - 108.9730 261.4054 L - 108.9730 262.0541 L - 108.9730 262.0541 L - 113.5135 262.0541 L - 113.5135 262.0541 L - 114.1622 261.4054 L - 113.5135 261.4054 L - 113.5135 261.4054 L - 113.5135 261.4054 L - 113.5135 261.4054 L -B -U -u - 105.7297 261.4054 m - 101.1892 261.4054 L - 101.1892 261.4054 L - 101.1892 261.4054 L - 101.1892 262.0541 L - 101.1892 262.0541 L - 105.7297 262.0541 L - 105.7297 262.0541 L - 106.3784 261.4054 L - 105.7297 261.4054 L - 105.7297 261.4054 L - 105.7297 261.4054 L - 105.7297 261.4054 L -B -U -u - 97.9459 261.4054 m - 93.4054 261.4054 L - 93.4054 261.4054 L - 93.4054 261.4054 L - 93.4054 262.0541 L - 93.4054 262.0541 L - 97.9459 262.0541 L - 97.9459 262.0541 L - 98.5946 261.4054 L - 97.9459 261.4054 L - 97.9459 261.4054 L - 97.9459 261.4054 L - 97.9459 261.4054 L -B -U -u - 90.1622 261.4054 m - 85.6216 261.4054 L - 85.6216 261.4054 L - 85.6216 261.4054 L - 85.6216 262.0541 L - 85.6216 262.0541 L - 90.1622 262.0541 L - 90.1622 262.0541 L - 90.8108 261.4054 L - 90.1622 261.4054 L - 90.1622 261.4054 L - 90.1622 261.4054 L - 90.1622 261.4054 L -B -U -u - 82.3784 261.4054 m - 77.8378 261.4054 L - 77.8378 261.4054 L - 77.8378 261.4054 L - 77.8378 262.0541 L - 77.8378 262.0541 L - 82.3784 262.0541 L - 82.3784 262.0541 L - 83.0270 261.4054 L - 82.3784 261.4054 L - 82.3784 261.4054 L - 82.3784 261.4054 L - 82.3784 261.4054 L -B -U -u - 74.5946 261.4054 m - 70.0541 261.4054 L - 70.0541 261.4054 L - 70.0541 261.4054 L - 70.0541 262.0541 L - 70.0541 262.0541 L - 74.5946 262.0541 L - 74.5946 262.0541 L - 75.2432 261.4054 L - 74.5946 261.4054 L - 74.5946 261.4054 L - 74.5946 261.4054 L - 74.5946 261.4054 L -B -U -u - 66.8108 261.4054 m - 66.8108 261.4054 L - 66.8108 261.4054 L - 66.1622 261.4054 L - 66.8108 262.0541 L - 66.8108 262.0541 L - 66.8108 262.0541 L - 66.8108 262.0541 L - 67.4595 261.4054 L - 66.8108 261.4054 L - 66.8108 261.4054 L - 66.8108 261.4054 L - 66.8108 261.4054 L -B -U -*U -0 To -1.0000 0.0000 0.0000 1.0000 86.2703 242.5946 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j -1 XR - - 0.000 0.000 0.000 1.000 k -(BCH\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 74.5946 233.5135 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Generation\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 XR - - 0.000 0.000 0.000 1.000 k -0.7500 w -1 j -*u - 94.0541 141.4054 m - 94.0541 136.8649 L - 94.0541 136.8649 L - 93.4054 136.8649 L - 93.4054 136.8649 L - 93.4054 136.8649 L - 93.4054 141.4054 L - 93.4054 141.4054 L - 93.4054 142.0541 L - 94.0541 141.4054 L - 94.0541 141.4054 L - 94.0541 141.4054 L - 94.0541 141.4054 L -B -u - 94.0541 133.6216 m - 94.0541 129.0811 L - 93.4054 129.0811 L - 93.4054 129.0811 L - 93.4054 129.0811 L - 93.4054 133.6216 L - 93.4054 133.6216 L - 93.4054 134.2703 L - 94.0541 133.6216 L - 94.0541 133.6216 L - 94.0541 133.6216 L - 94.0541 133.6216 L -B -U -u - 94.0541 125.8378 m - 94.0541 121.2973 L - 93.4054 121.2973 L - 93.4054 121.2973 L - 93.4054 121.2973 L - 93.4054 121.2973 L - 93.4054 125.8378 L - 93.4054 125.8378 L - 93.4054 126.4865 L - 94.0541 125.8378 L - 94.0541 125.8378 L - 94.0541 125.8378 L - 94.0541 125.8378 L -B -U -u - 94.0541 118.0541 m - 93.4054 113.5135 L - 93.4054 113.5135 L - 93.4054 113.5135 L - 93.4054 113.5135 L - 92.7568 113.5135 L - 93.4054 118.0541 L - 93.4054 118.0541 L - 93.4054 118.7027 L - 93.4054 118.0541 L - 94.0541 118.0541 L - 94.0541 118.0541 L - 94.0541 118.0541 L -B -U -u - 93.4054 110.2703 m - 93.4054 108.9730 L - 93.4054 108.9730 L - 93.4054 108.9730 L - 93.4054 108.9730 L - 92.7568 108.9730 L - 92.7568 110.2703 L - 93.4054 110.2703 L - 93.4054 110.9189 L - 93.4054 110.2703 L - 93.4054 110.2703 L - 93.4054 110.2703 L - 93.4054 110.2703 L -B -U -*U -u -1 XR - - 0.000 0.000 0.000 1.000 k - 96.0000 109.6216 m - 93.4054 101.8378 L - 90.8108 109.6216 L - 96.0000 109.6216 L -F -U - 0.000 0.000 0.000 0.000 k -u - 9.7297 179.6757 m - 60.9730 179.6757 L - 60.9730 141.4054 L - 9.7297 141.4054 L - 9.7297 179.6757 L -F - 35.3514 160.5405 m -F -U -0 XR - - 0.000 0.000 0.000 1.000 k -*u - 10.3784 179.0270 m - 10.3784 174.4865 L - 10.3784 174.4865 L - 9.7297 174.4865 L - 9.7297 174.4865 L - 9.7297 174.4865 L - 9.7297 179.0270 L - 9.7297 179.6757 L - 9.7297 179.6757 L - 10.3784 179.6757 L - 10.3784 179.0270 L - 10.3784 179.0270 L - 10.3784 179.0270 L -B -u - 10.3784 171.2432 m - 10.3784 166.7027 L - 10.3784 166.7027 L - 9.7297 166.7027 L - 9.7297 166.7027 L - 9.7297 166.7027 L - 9.7297 171.2432 L - 9.7297 171.8919 L - 9.7297 171.8919 L - 10.3784 171.8919 L - 10.3784 171.2432 L - 10.3784 171.2432 L - 10.3784 171.2432 L -B -U -u - 10.3784 163.4595 m - 10.3784 158.9189 L - 10.3784 158.9189 L - 9.7297 158.9189 L - 9.7297 158.9189 L - 9.7297 158.9189 L - 9.7297 163.4595 L - 9.7297 164.1081 L - 9.7297 164.1081 L - 10.3784 164.1081 L - 10.3784 163.4595 L - 10.3784 163.4595 L - 10.3784 163.4595 L -B -U -u - 10.3784 155.6757 m - 10.3784 151.1351 L - 10.3784 151.1351 L - 9.7297 151.1351 L - 9.7297 151.1351 L - 9.7297 151.1351 L - 9.7297 155.6757 L - 9.7297 156.3243 L - 9.7297 156.3243 L - 10.3784 156.3243 L - 10.3784 155.6757 L - 10.3784 155.6757 L - 10.3784 155.6757 L -B -U -u - 10.3784 147.8919 m - 10.3784 143.3514 L - 10.3784 143.3514 L - 9.7297 143.3514 L - 9.7297 143.3514 L - 9.7297 143.3514 L - 9.7297 147.8919 L - 9.7297 148.5405 L - 9.7297 148.5405 L - 10.3784 148.5405 L - 10.3784 147.8919 L - 10.3784 147.8919 L - 10.3784 147.8919 L -B -U -u - 11.0270 142.0541 m - 15.5676 142.0541 L - 16.2162 142.0541 L - 16.2162 141.4054 L - 16.2162 141.4054 L - 15.5676 141.4054 L - 11.0270 141.4054 L - 11.0270 141.4054 L - 11.0270 141.4054 L - 11.0270 142.0541 L - 11.0270 142.0541 L - 11.0270 142.0541 L - 11.0270 142.0541 L -B -U -u - 18.8108 142.0541 m - 23.3514 142.0541 L - 24.0000 142.0541 L - 24.0000 141.4054 L - 24.0000 141.4054 L - 23.3514 141.4054 L - 18.8108 141.4054 L - 18.8108 141.4054 L - 18.8108 141.4054 L - 18.8108 142.0541 L - 18.8108 142.0541 L - 18.8108 142.0541 L - 18.8108 142.0541 L -B -U -u - 26.5946 142.0541 m - 31.1351 142.0541 L - 31.7838 142.0541 L - 31.7838 141.4054 L - 31.7838 141.4054 L - 31.1351 141.4054 L - 26.5946 141.4054 L - 26.5946 141.4054 L - 26.5946 141.4054 L - 26.5946 142.0541 L - 26.5946 142.0541 L - 26.5946 142.0541 L - 26.5946 142.0541 L -B -U -u - 34.3784 142.0541 m - 38.9189 142.0541 L - 39.5676 142.0541 L - 39.5676 141.4054 L - 39.5676 141.4054 L - 38.9189 141.4054 L - 34.3784 141.4054 L - 34.3784 141.4054 L - 34.3784 141.4054 L - 34.3784 142.0541 L - 34.3784 142.0541 L - 34.3784 142.0541 L - 34.3784 142.0541 L -B -U -u - 42.1622 142.0541 m - 46.7027 142.0541 L - 47.3514 142.0541 L - 47.3514 141.4054 L - 47.3514 141.4054 L - 46.7027 141.4054 L - 42.1622 141.4054 L - 42.1622 141.4054 L - 42.1622 141.4054 L - 42.1622 142.0541 L - 42.1622 142.0541 L - 42.1622 142.0541 L - 42.1622 142.0541 L -B -U -u - 49.9459 142.0541 m - 54.4865 142.0541 L - 55.1351 142.0541 L - 55.1351 141.4054 L - 55.1351 141.4054 L - 54.4865 141.4054 L - 49.9459 141.4054 L - 49.9459 141.4054 L - 49.9459 141.4054 L - 49.9459 142.0541 L - 49.9459 142.0541 L - 49.9459 142.0541 L - 49.9459 142.0541 L -B -U -u - 57.7297 142.0541 m - 60.9730 142.0541 L - 60.9730 141.4054 L - 60.9730 143.3514 L - 60.9730 143.3514 L - 60.9730 143.3514 L - 61.6216 143.3514 L - 61.6216 143.3514 L - 61.6216 141.4054 L - 61.6216 141.4054 L - 60.9730 141.4054 L - 57.7297 141.4054 L - 57.7297 141.4054 L - 57.7297 141.4054 L - 57.7297 142.0541 L - 57.7297 142.0541 L - 57.7297 142.0541 L - 57.7297 142.0541 L -B -U -u - 60.9730 146.5946 m - 60.9730 151.1351 L - 60.9730 151.1351 L - 60.9730 151.1351 L - 61.6216 151.1351 L - 61.6216 151.1351 L - 61.6216 146.5946 L - 61.6216 145.9459 L - 60.9730 145.9459 L - 60.9730 145.9459 L - 60.9730 146.5946 L - 60.9730 146.5946 L - 60.9730 146.5946 L -B -U -u - 60.9730 154.3784 m - 60.9730 158.9189 L - 60.9730 158.9189 L - 60.9730 158.9189 L - 61.6216 158.9189 L - 61.6216 158.9189 L - 61.6216 154.3784 L - 61.6216 153.7297 L - 60.9730 153.7297 L - 60.9730 153.7297 L - 60.9730 154.3784 L - 60.9730 154.3784 L - 60.9730 154.3784 L -B -U -u - 60.9730 162.1622 m - 60.9730 166.7027 L - 60.9730 166.7027 L - 60.9730 166.7027 L - 61.6216 166.7027 L - 61.6216 166.7027 L - 61.6216 162.1622 L - 61.6216 161.5135 L - 60.9730 161.5135 L - 60.9730 161.5135 L - 60.9730 162.1622 L - 60.9730 162.1622 L - 60.9730 162.1622 L -B -U -u - 60.9730 169.9459 m - 60.9730 174.4865 L - 60.9730 174.4865 L - 60.9730 174.4865 L - 61.6216 174.4865 L - 61.6216 174.4865 L - 61.6216 169.9459 L - 61.6216 169.2973 L - 60.9730 169.2973 L - 60.9730 169.2973 L - 60.9730 169.9459 L - 60.9730 169.9459 L - 60.9730 169.9459 L -B -U -u - 60.9730 177.7297 m - 60.9730 179.6757 L - 60.9730 179.6757 L - 59.0270 179.6757 L - 59.0270 179.6757 L - 59.0270 179.6757 L - 59.0270 180.3243 L - 59.0270 180.3243 L - 60.9730 180.3243 L - 61.6216 180.3243 L - 61.6216 179.6757 L - 61.6216 177.7297 L - 61.6216 177.0811 L - 60.9730 177.0811 L - 60.9730 177.0811 L - 60.9730 177.7297 L - 60.9730 177.7297 L - 60.9730 177.7297 L -B -U -u - 55.7838 179.6757 m - 51.2432 179.6757 L - 51.2432 179.6757 L - 51.2432 179.6757 L - 51.2432 180.3243 L - 51.2432 180.3243 L - 55.7838 180.3243 L - 55.7838 180.3243 L - 56.4324 179.6757 L - 55.7838 179.6757 L - 55.7838 179.6757 L - 55.7838 179.6757 L - 55.7838 179.6757 L -B -U -u - 48.0000 179.6757 m - 43.4595 179.6757 L - 43.4595 179.6757 L - 43.4595 179.6757 L - 43.4595 180.3243 L - 43.4595 180.3243 L - 48.0000 180.3243 L - 48.0000 180.3243 L - 48.6486 179.6757 L - 48.0000 179.6757 L - 48.0000 179.6757 L - 48.0000 179.6757 L - 48.0000 179.6757 L -B -U -u - 40.2162 179.6757 m - 35.6757 179.6757 L - 35.6757 179.6757 L - 35.6757 179.6757 L - 35.6757 180.3243 L - 35.6757 180.3243 L - 40.2162 180.3243 L - 40.2162 180.3243 L - 40.8649 179.6757 L - 40.2162 179.6757 L - 40.2162 179.6757 L - 40.2162 179.6757 L - 40.2162 179.6757 L -B -U -u - 32.4324 179.6757 m - 27.8919 179.6757 L - 27.8919 179.6757 L - 27.8919 179.6757 L - 27.8919 180.3243 L - 27.8919 180.3243 L - 32.4324 180.3243 L - 32.4324 180.3243 L - 33.0811 179.6757 L - 32.4324 179.6757 L - 32.4324 179.6757 L - 32.4324 179.6757 L - 32.4324 179.6757 L -B -U -u - 24.6486 179.6757 m - 20.1081 179.6757 L - 20.1081 179.6757 L - 20.1081 179.6757 L - 20.1081 180.3243 L - 20.1081 180.3243 L - 24.6486 180.3243 L - 24.6486 180.3243 L - 25.2973 179.6757 L - 24.6486 179.6757 L - 24.6486 179.6757 L - 24.6486 179.6757 L - 24.6486 179.6757 L -B -U -u - 16.8649 179.6757 m - 12.3243 179.6757 L - 12.3243 179.6757 L - 12.3243 179.6757 L - 12.3243 180.3243 L - 12.3243 180.3243 L - 16.8649 180.3243 L - 16.8649 180.3243 L - 17.5135 179.6757 L - 16.8649 179.6757 L - 16.8649 179.6757 L - 16.8649 179.6757 L - 16.8649 179.6757 L -B -U -*U -0 To -1.0000 0.0000 0.0000 1.0000 21.4054 162.8108 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j -1 XR - - 0.000 0.000 0.000 1.000 k -(CHSCH\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 15.5676 153.0811 0 Tp -TP -/_Helvetica 7.2500 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Generation\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 XR - - 0.000 0.000 0.000 1.000 k -0.7500 w -1 j -*u - 35.6757 141.4054 m - 35.6757 136.8649 L - 35.6757 136.8649 L - 35.0270 136.8649 L - 35.0270 136.8649 L - 35.0270 137.5135 L - 35.0270 141.4054 L - 35.0270 142.0541 L - 35.6757 142.0541 L - 35.6757 142.0541 L - 35.6757 141.4054 L - 35.6757 141.4054 L - 35.6757 141.4054 L -B -u - 35.6757 133.6216 m - 35.0270 129.0811 L - 35.0270 129.0811 L - 35.0270 129.0811 L - 34.3784 129.0811 L - 34.3784 129.7297 L - 35.0270 134.2703 L - 35.0270 134.2703 L - 35.0270 134.2703 L - 35.6757 134.2703 L - 35.6757 133.6216 L - 35.6757 133.6216 L - 35.6757 133.6216 L -B -U -u - 35.0270 126.4865 m - 35.0270 121.9459 L - 34.3784 121.2973 L - 34.3784 121.2973 L - 34.3784 121.2973 L - 34.3784 121.9459 L - 34.3784 126.4865 L - 34.3784 126.4865 L - 34.3784 126.4865 L - 35.0270 126.4865 L - 35.0270 126.4865 L - 35.0270 126.4865 L - 35.0270 126.4865 L -B -U -u - 34.3784 118.7027 m - 34.3784 114.1622 L - 34.3784 113.5135 L - 33.7297 113.5135 L - 33.7297 113.5135 L - 33.7297 114.1622 L - 33.7297 118.7027 L - 33.7297 118.7027 L - 34.3784 118.7027 L - 34.3784 118.7027 L - 34.3784 118.7027 L - 34.3784 118.7027 L - 34.3784 118.7027 L -B -U -u - 34.3784 110.9189 m - 33.7297 108.9730 L - 33.7297 108.3243 L - 33.7297 108.3243 L - 33.7297 108.9730 L - 33.0811 108.9730 L - 33.7297 110.9189 L - 33.7297 110.9189 L - 33.7297 110.9189 L - 34.3784 110.9189 L - 34.3784 110.9189 L - 34.3784 110.9189 L -B -U -*U -u -1 XR - - 0.000 0.000 0.000 1.000 k - 36.3243 109.6216 m - 33.0811 101.1892 L - 31.1351 109.6216 L - 36.3243 109.6216 L -F -U -0 To -1.0000 0.0000 0.0000 1.0000 66.1622 276.9730 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j - 0.000 0.000 0.000 1.000 k -(Cluster-Head\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 66.1622 265.9459 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Specific Resources\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 XR - - 0.000 0.000 0.000 1.000 k -0.7500 w -1 j -*u - 59.0270 241.9459 m - 54.4865 241.9459 L - 54.4865 241.9459 L - 54.4865 242.5946 L - 54.4865 242.5946 L - 54.4865 242.5946 L - 59.0270 242.5946 L - 59.6757 242.5946 L - 59.6757 242.5946 L - 59.6757 241.9459 L - 59.0270 241.9459 L - 59.0270 241.9459 L - 59.0270 241.9459 L -B -u - 51.2432 241.9459 m - 46.7027 241.9459 L - 46.7027 241.9459 L - 46.7027 242.5946 L - 46.7027 242.5946 L - 46.7027 242.5946 L - 51.2432 242.5946 L - 51.8919 242.5946 L - 51.8919 242.5946 L - 51.8919 241.9459 L - 51.2432 241.9459 L - 51.2432 241.9459 L - 51.2432 241.9459 L -B -U -u - 43.4595 241.9459 m - 41.5135 241.9459 L - 40.8649 241.9459 L - 40.8649 242.5946 L - 40.8649 244.5405 L - 40.8649 244.5405 L - 41.5135 245.1892 L - 41.5135 244.5405 L - 41.5135 244.5405 L - 41.5135 242.5946 L - 41.5135 242.5946 L - 43.4595 242.5946 L - 44.1081 242.5946 L - 44.1081 242.5946 L - 44.1081 241.9459 L - 43.4595 241.9459 L - 43.4595 241.9459 L - 43.4595 241.9459 L -B -U -u - 40.8649 247.7838 m - 40.8649 252.3243 L - 40.8649 252.3243 L - 41.5135 252.3243 L - 41.5135 252.3243 L - 41.5135 247.7838 L - 41.5135 247.7838 L - 41.5135 247.7838 L - 40.8649 247.7838 L - 40.8649 247.7838 L - 40.8649 247.7838 L - 40.8649 247.7838 L -B -U -u - 40.8649 255.5676 m - 40.8649 260.1081 L - 40.8649 260.1081 L - 41.5135 260.1081 L - 41.5135 260.1081 L - 41.5135 255.5676 L - 41.5135 255.5676 L - 41.5135 254.9189 L - 40.8649 255.5676 L - 40.8649 255.5676 L - 40.8649 255.5676 L - 40.8649 255.5676 L -B -U -u - 40.8649 263.3514 m - 40.8649 267.8919 L - 40.8649 267.8919 L - 41.5135 267.8919 L - 41.5135 267.8919 L - 41.5135 267.8919 L - 41.5135 263.3514 L - 41.5135 263.3514 L - 41.5135 262.7027 L - 40.8649 263.3514 L - 40.8649 263.3514 L - 40.8649 263.3514 L - 40.8649 263.3514 L -B -U -u - 40.8649 271.1351 m - 40.8649 275.6757 L - 40.8649 275.6757 L - 41.5135 275.6757 L - 41.5135 275.6757 L - 41.5135 271.1351 L - 41.5135 271.1351 L - 41.5135 270.4865 L - 40.8649 271.1351 L - 40.8649 271.1351 L - 40.8649 271.1351 L - 40.8649 271.1351 L -B -U -u - 40.8649 278.9189 m - 40.8649 283.4595 L - 40.8649 283.4595 L - 41.5135 283.4595 L - 41.5135 283.4595 L - 41.5135 278.9189 L - 41.5135 278.9189 L - 41.5135 278.2703 L - 40.8649 278.9189 L - 40.8649 278.9189 L - 40.8649 278.9189 L - 40.8649 278.9189 L -B -U -u - 40.8649 286.7027 m - 40.8649 291.2432 L - 40.8649 291.2432 L - 41.5135 291.2432 L - 41.5135 291.2432 L - 41.5135 291.2432 L - 41.5135 286.7027 L - 41.5135 286.7027 L - 41.5135 286.0541 L - 40.8649 286.7027 L - 40.8649 286.7027 L - 40.8649 286.7027 L - 40.8649 286.7027 L -B -U -u - 40.8649 294.4865 m - 40.8649 299.0270 L - 40.8649 299.0270 L - 41.5135 299.0270 L - 41.5135 299.0270 L - 41.5135 294.4865 L - 41.5135 294.4865 L - 41.5135 293.8378 L - 40.8649 294.4865 L - 40.8649 294.4865 L - 40.8649 294.4865 L - 40.8649 294.4865 L -B -U -u - 40.8649 302.2703 m - 40.8649 306.8108 L - 40.8649 306.8108 L - 41.5135 306.8108 L - 41.5135 306.8108 L - 41.5135 302.2703 L - 41.5135 302.2703 L - 41.5135 301.6216 L - 40.8649 302.2703 L - 40.8649 302.2703 L - 40.8649 302.2703 L - 40.8649 302.2703 L -B -U -u - 40.8649 310.0541 m - 40.8649 314.5946 L - 40.8649 314.5946 L - 41.5135 314.5946 L - 41.5135 314.5946 L - 41.5135 314.5946 L - 41.5135 310.0541 L - 41.5135 310.0541 L - 41.5135 309.4054 L - 40.8649 310.0541 L - 40.8649 310.0541 L - 40.8649 310.0541 L - 40.8649 310.0541 L -B -U -u - 40.8649 317.8378 m - 40.8649 322.3784 L - 40.8649 322.3784 L - 41.5135 322.3784 L - 41.5135 322.3784 L - 41.5135 322.3784 L - 41.5135 317.8378 L - 41.5135 317.8378 L - 41.5135 317.1892 L - 40.8649 317.8378 L - 40.8649 317.8378 L - 40.8649 317.8378 L - 40.8649 317.8378 L -B -U -u - 40.8649 325.6216 m - 40.8649 330.1622 L - 40.8649 330.1622 L - 41.5135 330.1622 L - 41.5135 330.1622 L - 41.5135 325.6216 L - 41.5135 325.6216 L - 41.5135 324.9730 L - 40.8649 325.6216 L - 40.8649 325.6216 L - 40.8649 325.6216 L - 40.8649 325.6216 L -B -U -u - 40.8649 333.4054 m - 40.8649 337.9459 L - 40.8649 337.9459 L - 41.5135 337.9459 L - 41.5135 337.9459 L - 41.5135 337.9459 L - 41.5135 333.4054 L - 41.5135 333.4054 L - 41.5135 332.7568 L - 40.8649 333.4054 L - 40.8649 333.4054 L - 40.8649 333.4054 L - 40.8649 333.4054 L -B -U -u - 40.8649 341.1892 m - 40.8649 345.7297 L - 40.8649 345.7297 L - 41.5135 345.7297 L - 41.5135 345.7297 L - 41.5135 345.7297 L - 41.5135 341.1892 L - 41.5135 341.1892 L - 41.5135 340.5405 L - 40.8649 341.1892 L - 40.8649 341.1892 L - 40.8649 341.1892 L - 40.8649 341.1892 L -B -U -u - 40.8649 348.9730 m - 40.8649 353.5135 L - 40.8649 353.5135 L - 41.5135 353.5135 L - 41.5135 353.5135 L - 41.5135 348.9730 L - 41.5135 348.3243 L - 41.5135 348.3243 L - 40.8649 348.3243 L - 40.8649 348.9730 L - 40.8649 348.9730 L - 40.8649 348.9730 L -B -U -u - 40.8649 356.7568 m - 40.8649 361.2973 L - 40.8649 361.2973 L - 41.5135 361.2973 L - 41.5135 361.2973 L - 41.5135 361.2973 L - 41.5135 356.7568 L - 41.5135 356.1081 L - 41.5135 356.1081 L - 40.8649 356.1081 L - 40.8649 356.7568 L - 40.8649 356.7568 L - 40.8649 356.7568 L -B -U -u - 40.8649 364.5405 m - 40.8649 369.0811 L - 40.8649 369.0811 L - 41.5135 369.0811 L - 41.5135 369.0811 L - 41.5135 369.0811 L - 41.5135 364.5405 L - 41.5135 363.8919 L - 41.5135 363.8919 L - 40.8649 363.8919 L - 40.8649 364.5405 L - 40.8649 364.5405 L - 40.8649 364.5405 L -B -U -u - 40.8649 372.3243 m - 40.8649 376.8649 L - 40.8649 376.8649 L - 41.5135 376.8649 L - 41.5135 376.8649 L - 41.5135 372.3243 L - 41.5135 371.6757 L - 41.5135 371.6757 L - 40.8649 371.6757 L - 40.8649 372.3243 L - 40.8649 372.3243 L - 40.8649 372.3243 L -B -U -u - 40.8649 380.1081 m - 40.8649 384.6486 L - 40.8649 384.6486 L - 41.5135 384.6486 L - 41.5135 384.6486 L - 41.5135 384.6486 L - 41.5135 380.1081 L - 41.5135 379.4595 L - 41.5135 379.4595 L - 40.8649 379.4595 L - 40.8649 380.1081 L - 40.8649 380.1081 L - 40.8649 380.1081 L -B -U -u - 40.8649 387.8919 m - 40.8649 392.4324 L - 40.8649 392.4324 L - 41.5135 392.4324 L - 41.5135 392.4324 L - 41.5135 392.4324 L - 41.5135 387.8919 L - 41.5135 387.2432 L - 41.5135 387.2432 L - 40.8649 387.2432 L - 40.8649 387.8919 L - 40.8649 387.8919 L - 40.8649 387.8919 L -B -U -*U -u -1 XR - - 0.000 0.000 0.000 1.000 k - 58.3784 245.1892 m - 66.8108 242.5946 L - 58.3784 239.3514 L - 58.3784 245.1892 L -F -U -0 To -1.0000 0.0000 0.0000 1.0000 20.7568 406.7027 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j - 0.000 0.000 0.000 1.000 k -(CH Broadcast\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 8.4324 395.6757 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(Information \(TxOPs\)\r) Tx -TO - 0.000 0.000 0.000 1.000 K -u -1 j - 166.7027 249.0811 m - 143.3514 249.0811 L - 143.3514 395.6757 L -S -U -u - 0.000 0.000 0.000 1.000 k -0.7500 w - 166.0541 251.6757 m - 174.4865 249.0811 L - 166.0541 245.8378 L - 166.0541 251.6757 L -F -U -0 To -1.0000 0.0000 0.0000 1.0000 8.4324 12.3243 0 Tp -TP -/_Helvetica-Bold 13.5000 Tf -0.0000 Tc - 0 Tr -0.0000 w -0 j - 0.000 0.000 0.000 1.000 k -(PHY\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 4.5405 206.9189 0 Tp -TP -/_Helvetica-Bold 13.5000 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(MAC\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 2.5946 306.8108 0 Tp -TP -/_Helvetica-Bold 13.5000 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(DLC\r) Tx -TO - 0.000 0.000 0.000 1.000 K -0 To -1.0000 0.0000 0.0000 1.0000 355.4595 401.5135 0 Tp -TP -/_Helvetica 9.0000 Tf -0.0000 Tc - 0 Tr - 0.000 0.000 0.000 1.000 k -(QoS Queues\r) Tx -TO - 0.000 0.000 0.000 1.000 K -%%PageTrailer -gsave annotatepage grestore showpage -%%Trailer -Adobe_Illustrator_AI3 /terminate get exec -Adobe_typography_AI3 /terminate get exec -Adobe_customcolor /terminate get exec -Adobe_packedarray /terminate get exec -%%EOF diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Services2.png b/openair2/DOCS/DOXYGEN/images/MAC_Services2.png deleted file mode 100644 index 49bcad6297..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/MAC_Services2.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd b/openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd deleted file mode 100644 index 13e59e69ba..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/MAC_arch.eps b/openair2/DOCS/DOXYGEN/images/MAC_arch.eps deleted file mode 100644 index 9fccbc29b3..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/MAC_arch.eps and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG b/openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG deleted file mode 100644 index 6293d69cb7..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png b/openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png deleted file mode 100644 index 478f3b63ad..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd b/openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd deleted file mode 100644 index c97535d60a..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/PHY_arch.eps b/openair2/DOCS/DOXYGEN/images/PHY_arch.eps deleted file mode 100644 index b71aa59711..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/PHY_arch.eps and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/PHY_arch.png b/openair2/DOCS/DOXYGEN/images/PHY_arch.png deleted file mode 100644 index 79481d76da..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/PHY_arch.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/PHY_arch.vsd b/openair2/DOCS/DOXYGEN/images/PHY_arch.vsd deleted file mode 100644 index caff512f4f..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/PHY_arch.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/QAM modulation.png b/openair2/DOCS/DOXYGEN/images/QAM modulation.png deleted file mode 100644 index d40bd47521..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/QAM modulation.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/QAM modulation.vsd b/openair2/DOCS/DOXYGEN/images/QAM modulation.vsd deleted file mode 100644 index 75f7539295..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/QAM modulation.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/QAMmodulation.png b/openair2/DOCS/DOXYGEN/images/QAMmodulation.png deleted file mode 100644 index b3a11571da..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/QAMmodulation.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/Transmission.pdf b/openair2/DOCS/DOXYGEN/images/Transmission.pdf deleted file mode 100644 index 6193312186..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/Transmission.pdf and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/Transmission.png b/openair2/DOCS/DOXYGEN/images/Transmission.png deleted file mode 100644 index 416e8937b2..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/Transmission.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/Transmission.ps b/openair2/DOCS/DOXYGEN/images/Transmission.ps deleted file mode 100644 index d96c4306de..0000000000 --- a/openair2/DOCS/DOXYGEN/images/Transmission.ps +++ /dev/null @@ -1,568 +0,0 @@ -%!PS-Adobe-3.0 -%%Pages: (atend) -%%BoundingBox: 32 0 559 609 -%%HiResBoundingBox: 32.385937 0.800000 558.200000 608.900000 -%....................................... -%%Creator: GPL Ghostscript 850 (pswrite) -%%CreationDate: 2006/04/24 11:54:23 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%EndComments -%%BeginProlog -% This copyright applies to everything between here and the %%EndProlog: -% Copyright (C) 2005 artofcode LLC, Benicia, CA. All rights reserved. -%%BeginResource: procset GS_pswrite_2_0_1001 -/GS_pswrite_2_0_1001 80 dict dup begin -/PageSize 2 array def/setpagesize{ PageSize aload pop 3 index eq exch -4 index eq and{ pop pop pop}{ PageSize dup 1 -5 -1 roll put 0 4 -1 roll put dup null eq {false} {dup where} ifelse{ exch get exec} -{ pop/setpagedevice where -{ pop 1 dict dup /PageSize PageSize put setpagedevice} -{ /setpage where{ pop PageSize aload pop pageparams 3 {exch pop} repeat -setpage}if}ifelse}ifelse}ifelse} bind def -/!{bind def}bind def/#{load def}!/N/counttomark # -/rG{3{3 -1 roll 255 div}repeat setrgbcolor}!/G{255 div setgray}!/K{0 G}! -/r6{dup 3 -1 roll rG}!/r5{dup 3 1 roll rG}!/r3{dup rG}! -/w/setlinewidth #/J/setlinecap # -/j/setlinejoin #/M/setmiterlimit #/d/setdash #/i/setflat # -/m/moveto #/l/lineto #/c/rcurveto # -/p{N 2 idiv{N -2 roll rlineto}repeat}! -/P{N 0 gt{N -2 roll moveto p}if}! -/h{p closepath}!/H{P closepath}! -/lx{0 rlineto}!/ly{0 exch rlineto}!/v{0 0 6 2 roll c}!/y{2 copy c}! -/re{4 -2 roll m exch dup lx exch ly neg lx h}! -/^{3 index neg 3 index neg}! -/f{P fill}!/f*{P eofill}!/s{H stroke}!/S{P stroke}! -/q/gsave #/Q/grestore #/rf{re fill}! -/Y{P clip newpath}!/Y*{P eoclip newpath}!/rY{re Y}! -/|={pop exch 4 1 roll 1 array astore cvx 3 array astore cvx exch 1 index def exec}! -/|{exch string readstring |=}! -/+{dup type/nametype eq{2 index 7 add -3 bitshift 2 index mul}if}! -/@/currentfile #/${+ @ |}! -/B{{2 copy string{readstring pop}aload pop 4 array astore cvx -3 1 roll}repeat pop pop true}! -/Ix{[1 0 0 1 11 -2 roll exch neg exch neg]exch}! -/,{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}! -/Ic{exch Ix false 3 colorimage}! -/F{/Columns counttomark 3 add -2 roll/Rows exch/K -1/BlackIs1 true>> -/CCITTFaxDecode filter}!/FX{< -, -1080 3855 55 70 /4D -$C -3!p,tJ+A,D3*9iJ^]4?6s8W-!s8W-!s8W-!rVulqed.>?DtdPFlnl4\KY%f*0O0,-s8W-!s7Me8 -K)[&0~> -, -1135 3854 51 46 /1H -$C -22H?7$l;4H,%Cm>#TJr>+Ibs:hpQ?gl&SpGs*t('rser#qgH39$pGLl)%2i:) -, -1185 3855 55 44 /4H -$C -3!p,tJ+A,D3(R^?s8W-!s8W-!s8W-!s8W,ts8N&VM"Pt!I9TVQRaUSR~> -, -1241 3855 4H , -1296 3854 44 46 /1L -$C -+U!pYLdZ\3+G#;6#3e'<\kUW -, -1340 3855 27 70 /4L -$C -3">eY,W5W%s8W-!s8W-!s8W-!s8W-!s8W-!XNWdCq&#b~> -, -1409 3853 1D , -1473 3854 49 46 /1P -$C -+MpDHKM#[i#VbHbh'VAF8\3_)l[!m7l["'[\,ZL.rq6 -, -1526 3854 55 71 /4P -$C -+N-)V&31.;KL`lB+E%N.gkj-3<1']"\kcDZ?hO*lp&G'ls8VQfJ+*BoqtAUpg[1bs[MQB(iI_GU -`%DHN5QCc`s8W,uZ7$b%r.:j~> -, -1581 3855 27 67 /1T -$C -3">eY,W5W%s8W-!s8W-!s8VC@%h&;o;?-2Qe#-"Am96m~> -, -1609 3855 4H , -1664 3834 50 66 /4T -$C --,[tnZ4Rf/i=`4O5m%UKDNf13Uu-K"huE^\InJU7/[1Hnb&HjjWX>%!L`"]6::7;*\aaneG/>QA -iXg$%3_e/tFhL$*J,fQKhS3oU>tk-;K5Ge\fO5DCnAHXmK*3$iL7e~> -, -1281 3734 1H , -1330 3735 4H , -1386 3734 4P , -1018 3616 67 68 /1X -$C -4:7J\5iL">8T=BUG76YSmJHA,s)7o2s8W,Is/s)IqWW+5$\T<%/4.E8%$=!]iIg*E_gT8:pYXkH -rVccrs8UOIY.ZJo/sSb&_?tN*0NeV-!!~> -, -1089 3616 1T , -1117 3615 35 62 /4X -$C ---$-/'#t:_o\D.%s'8k/s8W,s5QCc`s8W-!k/0-q_2spFmsFs3J,fN;~> -, -1155 3635 29 6 /2B -$C -0H"6m~> -, -1188 3616 35 68 /5B -$C -3"6or"LW%Fs8W-!s8W-!s8W-!s8W-!s8W-!e#,/7*W~> -, -1224 3616 4H , -1277 3615 4X , -1316 3615 1L , -1360 3616 38 44 /2F -$C -3!K>H"LYH5s8W-!s8W,frVfQ:7"%:t\#ni2[tS7ufJ;oM.T<(%~> -, -1399 3616 4L , -1427 3615 1L , -1471 3615 1H , -1518 3615 53 44 /5F -$C -.5+KGqlcY\Hi:N_H<9sPYIuIb>M%_sriPMT9)hrbpSEA?H -, -1571 3616 1T , -1598 3616 4H , -1654 3595 4T , -1920 1510 2074.14 640 re -S -2716 1881 90 68 /2J -$C -4:2S/e2)7EaoN3/%h't'(gC9m=7uOk#`nq6mJal&s*pmFDtX'YmJS^:rh&NVDtX'Io`&:qJ$82< -Ds;c+rI82OInTfkVu$GJrI82Hhq.kblh^Y9qHrsr?e>;7lh^XYrkJ1,?UO7_>juEgfPA0.~> -, -2808 1880 1P , -2860 1880 4P , -2915 1880 55 45 /5J -$C -+TsVAN!r6;W[%$&Jdq>kOYJ3JXk(7lfC/b6s8W-!s8W-!s8W-!s8W,&en,oe#mC_:aM^t)~> -, -2971 1881 4L , -2998 1880 1H , -3048 1880 4X , -3087 1881 1T , -3115 1880 1P , -3164 1881 4H , -2888 1760 1H , -2938 1761 4H , -2993 1760 4P , -2743 1642 70 67 /2N -$C -,6M0G!t7O(fDkmNs8W-!s8W-!s8W,^]J' -, -2807 1642 2F , -2846 1641 1H , -2896 1642 4H , -2951 1641 38 46 /5N -$C -3Ko-K5kYdMLTl=3Gc(,iS(6d'X8fA1erkhk=U#BoJIkpU&6,SX"[k(MKe@pb')n6os80"eYO/HH -(;gEFpgOo]69G~> -, -2990 1642 38 70 /2R -$C -3!K>H"bsGbs8W-!s8W-!s8W,si+7B]QiI*cs6nj0+&:O=hYV.oHOca,K*;~> -, -3021 1641 1P , -3071 1642 2F , -3110 1642 83 44 /5R -$C -3!p,tF26]5aoW:9$?2*RBncTes8W-!s8W-!s8W-!s8W-!s8W-!GQ7]Ts58_*&K\+>C[Z2BBfAsE -X?Eq`X>H;YE6-fWaZAC:6&8F0&E9jC~> -, -1915 860 330 320 re -S -2425 860 330 320 re -S -2895 860 330 320 re -S -3685 860 330 320 re -S -2080 1490 0 -300 S -2080 1190 23.33 70 -46.66 0 f* -2080 1190 23.33 70 -46.66 0 H -S -3060 1490 0 -300 S -3060 1190 23.33 70 -46.66 0 f* -3060 1190 23.33 70 -46.66 0 H -S -2080 1490 0 -300 S -2080 1190 23.33 70 -46.66 0 f* -2080 1190 23.33 70 -46.66 0 H -S -2590 1490 0 -300 S -2590 1190 23.33 70 -46.66 0 f* -2590 1190 23.33 70 -46.66 0 H -S -3060 1490 0 -300 S -3060 1190 23.33 70 -46.66 0 f* -3060 1190 23.33 70 -46.66 0 H -S -3850 1490 0 -300 S -3850 1190 23.33 70 -46.66 0 f* -3850 1190 23.33 70 -46.66 0 H -S -2010 998 1L , -2054 999 53 43 /2V -$C -0E`!j8,;Z5OSfPAU$D;n[[$.3 -, -2107 998 4X , -2520 998 1L , -2564 999 2V , -2617 998 4X , -2990 998 1L , -3034 999 2V , -3087 998 4X , -3780 998 1L , -3824 999 2V , -3877 998 4X , -3505.86 3460 2074.14 640 re -S -4196 3873 1D , -4260 3875 4D , -4315 3874 1H , -4365 3875 4H , -4421 3875 4H , -4476 3874 1L , -4520 3875 4L , -4589 3873 1D , -4653 3874 1P , -4706 3874 4P , -4761 3875 1T , -4789 3875 4H , -4844 3854 4T , -4461 3754 1H , -4510 3755 4H , -4566 3754 4P , -4198 3636 1X , -4269 3636 1T , -4297 3635 4X , -4335 3655 2B , -4368 3636 5B , -4404 3636 4H , -4457 3635 4X , -4496 3635 1L , -4540 3636 2F , -4579 3636 4L , -4607 3635 1L , -4651 3635 1H , -4698 3635 5F , -4751 3636 1T , -4778 3636 4H , -4834 3615 4T , -1043 6006 2J , -1134 6006 73 71 /5V -$C -3" -, -1214 6004 1D , -1311 6006 64 68 /2Z -$C -3"6tTJ -, -1379 6006 72 68 /5Z -$C -3#c!(@drPGjZ$I4+I[Jn,:$$hu!H2s8W-!s8QHls'Pf/^\-419DpK0Y.ZHS -#VMB..U[ju##$S&d]`~> -, -1455 6004 73 70 /3D -$C -,(Ukf_$:7!QuiTQKFhS?DNJb"dVi2fks)aTqR?EQX+10Ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -:\;L6QpK""6.?TuJ,~> -, -1563 6004 48 68 /6D -$C -+U*H@JANVK_?`(d#3e'<]%n_+e\BPHotUP"]g)PnhuE`Vs8W-!s8VuJs8W)k[JfFk[[6Ge>Lg*_ -V/7_s6O!fE@MBY-~> -, -4147 6020 2J , -4238 6020 5V , -4318 6018 1D , -4415 6020 2Z , -4483 6020 5Z , -4559 6018 3D , -4673 6020 84 68 /3J -$C --D7#krI6pM3+6dShtM9n>Me!2#`me[J(">j9)&>!YC?23s.nKNFnPaideEaTXl&i=s.nKNFnPai -deE\nmG>O[s.nKNBn-(?FnbhfmG>O[qo)jiU_#Pb1_jEU=5X~> -, -4787 6043 64 4 /6L -$C -2?e3rTE~> -, -4888 6020 36 66 /3P -$C -0F`Iu"GRYps8W-!s8W-!s8W-!s8W-!s8W#5GmaIj5^ -, -325.859 4393.18 2074.14 640 re -S -988 4746 1D , -1052 4746 75 70 /6P -$C --:5l%4Q&%!7E -, -1130 4746 1D , -1227 4748 5V , -1299 4747 4X , -1338 4747 4X , -1377 4747 1H , -1427 4747 43 46 /3T -$C -+U!B,#`IZg+N&kbFIT)uY>*R3?`VbOs&K+!s7cC7%dEWcDuIE=Cc1)':teqg -, -1468 4748 4D , -1523 4748 5R , -1606 4747 1L , -1651 4748 4H , -1703 4747 4X , -1017 4603 27 100 /6U -$C -$DAqKWG8f>=&c6#lFrU]r@_N]?a!i:qQKr!s8W-!^Yf(Kn)*R5g]$*En%8#]pNq)P]6 -, -1048 4626 48 68 /3Y -$C -+Mp`i@M!L7P7E-G%M1q;6+RB92cnPXIs(D_p&Fnjp!U:\$ZrM)[M$$6Ya)ShL(^p-L*9`nTdmnh -LbB7"D[D1j]I)hidrZ>hp$'/>fDGU4>P_CtV/7^k-"3WX_$(66OFf^~> -, -1106 4609 14 30 /6Y -$X -$igb;#64jV!Pe]N!8mib!,qol!&srq!#P\Q!"8i9!"8i9!"9+V&,[OI+8d5Y+8?rQ+8?rI&)[].~> -, -1133 4628 3P , -1175 4626 48 68 /4C -$C -+U!B%#WP4Y%Y=oL2bC\A9'Z8a\$!KWs7a+ts8T:rQiI(irH6q(M#(Dgp6TVH[[1EU(CWXhK&^eL -IG`hH4f -, -1233 4609 6Y , -1253 4628 47 66 /7C -$C -4rV1[^$g;/8%5t^mCg6iYkIe,[r6HWgT^)"\%?hNmbbLcIc'k@h@P17s8@@J97m+H?.IP@>=ue* -g/,V; -, -1302 4628 49 67 /4G -$C -+N#kR&9qtts8W,E!iO88N:$YShqr@e^>FEg^Ae"XrV$-cn([Tohf$9Dhg^'grqlEeGJCiin*^~> -, -1360 4609 6Y , -1380 4626 47 68 /7G -$C --,NAa`$""NAfUp]3XNA(\kUV!=,,QR:A=MWrmoZO5@1qtVUG4#0VIRn=m -&,e`mrk$_ofIG]]9#F9=8f076L*9)AO8~> -, -1430 4628 7C , -1488 4603 23 100 /4K -$C --GJm%[r6HWg\1Aig\1T\Du5%Ps*juts6m`&s8W)!s8Q+!?Fp-&oXuoXlBQKbd\TT9WD]Rk~> -, -1552 4627 54 71 /7K -$C -.0PeVJaeNk4eRFS5mAE&]qjL6^>>@RYIFO]n,In;s8W%IrI'1I?.V_b]"o!>]4`h7$#m_6(CWXh -K&cn2s8W-!s/c!??fa>!~> -, -1607 4628 1T , -1635 4627 4X , -1673 4627 5N , -3505.86 4400 2074.14 640 re -S -4168 4756 1D , -4232 4756 6P , -4310 4756 1D , -4407 4758 5V , -4479 4757 4X , -4518 4757 4X , -4557 4757 1H , -4607 4757 3T , -4648 4758 4D , -4703 4758 5R , -4786 4757 1L , -4831 4758 4H , -4883 4757 4X , -4197 4613 6U , -4228 4636 3Y , -4286 4619 6Y , -4313 4638 3P , -4355 4636 4C , -4413 4619 6Y , -4433 4638 7C , -4482 4638 4G , -4540 4619 6Y , -4560 4636 7G , -4610 4638 7C , -4668 4613 4K , -4732 4637 7K , -4787 4638 1T , -4815 4637 4X , -4853 4637 5N , -1350 3430 0 -920 970 0 0 -340 S -2320 2170 23.33 70 -46.66 0 f* -2320 2170 23.33 70 -46.66 0 H -S -4550 3470 0 -980 -1060 0 0 -330 S -3490 2160 23.33 70 -46.66 0 f* -3490 2160 23.33 70 -46.66 0 H -S -1360 4380 0 -290 S -1360 4090 23.33 70 -46.66 0 f* -1360 4090 23.33 70 -46.66 0 H -S -4570 4410 0 -290 S -4570 4120 23.33 70 -46.66 0 f* -4570 4120 23.33 70 -46.66 0 H -S -[ 10 30 ] 0 d -20 w -2530 4140 710 0 S -4 w -2640 2470 0 -300 S -2640 2170 23.33 70 -46.66 0 f* -[ ] 0 d -2640 2170 23.33 70 -46.66 0 H -S -[ 10 30 ] 0 d -2960 2470 0 -300 S -2960 2170 23.33 70 -46.66 0 f* -[ ] 0 d -2960 2170 23.33 70 -46.66 0 H -S -325.859 5235.6 2074.14 434.008 re -S -1360 5226.66 0 -196.66 S -1360 5030 23.33 70 -46.66 0 f* -1360 5030 23.33 70 -46.66 0 H -S -993 5435 2Z , -1061 5435 5Z , -1137 5433 3D , -1253 5433 44 72 /4O -$C --Fp3)aT0>t%tmBEHO(0AZjFI.D\/DiVY,7bl+cQYp&F@WdY_AnK*!C(;$&9AC^Yd?[G;qJ5OFoVDYp&2;s[Hh[HU;u"]Yej1EJkleAiIp].Sc~> -, -1300 5434 3T , -1344 5435 2F , -1383 5434 1H , -1433 5435 5R , -1513 5434 7K , -1569 5435 4L , -1596 5435 1T , -1624 5435 4H , -1679 5414 4T , -3505.86 5255.6 2074.14 434.02 re -S -4540 5246.66 0 -196.66 S -4540 5050 23.33 70 -46.66 0 f* -4540 5050 23.33 70 -46.66 0 H -S -4173 5455 2Z , -4241 5455 5Z , -4317 5453 3D , -4433 5453 4O , -4480 5454 3T , -4524 5455 2F , -4563 5454 1H , -4613 5455 5R , -4693 5454 7K , -4749 5455 4L , -4776 5455 1T , -4804 5455 4H , -4859 5434 4T , -1360 5980 0 -300 S -1360 5680 23.33 70 -46.66 0 f* -1360 5680 23.33 70 -46.66 0 H -S -4540 5990 0 -300 S -4540 5690 23.33 70 -46.66 0 f* -4540 5690 23.33 70 -46.66 0 H -S -1922.93 10 2074.14 640 re -S -2070 856.66 0 -196.66 S -2070 660 23.33 70 -46.66 0 f* -2070 660 23.33 70 -46.66 0 H -S -2590 856.66 0 -196.66 S -2590 660 23.33 70 -46.66 0 f* -2590 660 23.33 70 -46.66 0 H -S -3050 856.66 0 -196.66 S -3050 660 23.33 70 -46.66 0 f* -3050 660 23.33 70 -46.66 0 H -S -3840 856.66 0 -196.66 S -3840 660 23.33 70 -46.66 0 f* -3840 660 23.33 70 -46.66 0 H -S -2697 293 4O , -2745 294 1L , -2789 295 2F , -2828 295 1T , -2856 294 1H , -2906 295 4L , -2933 295 1T , -2961 295 42 43 /7O -$C -3#[8j&9nrO:PKn*TMT42JWa~> -, -3005 294 1H , -3055 294 4X , -3094 295 1T , -3121 294 1P , -3171 295 4H , -20 w -4000 325 630 0 S -4630 325 -70 23.33 0 -46.66 f* -4630 325 -70 23.33 0 -46.66 H -S -4788 360 2N , -4852 359 1P , -4935 360 5Z , -5011 335 46 100 /4S -$C -1[4kqmeacTrpT7QhsUMgpAXOTJ%PT-GPf/2rP,uChsUL$h>Zm;IrFcTGPf.apOBgRhfnsGVu~> -, -5061 360 5V , -cleartomark end end pagesave restore showpage -%%PageTrailer -%%Trailer -%%Pages: 1 -%%EOF diff --git a/openair2/DOCS/DOXYGEN/images/cellular_topology.doc b/openair2/DOCS/DOXYGEN/images/cellular_topology.doc deleted file mode 100644 index 724e18a278..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/cellular_topology.doc and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/cellular_topology.pdf b/openair2/DOCS/DOXYGEN/images/cellular_topology.pdf deleted file mode 100644 index 221bfbcdd5..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/cellular_topology.pdf and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/cellular_topology_small.png b/openair2/DOCS/DOXYGEN/images/cellular_topology_small.png deleted file mode 100644 index f2dfa214af..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/cellular_topology_small.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/channel server.png b/openair2/DOCS/DOXYGEN/images/channel server.png deleted file mode 100644 index 0f33c64397..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/channel server.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/channel server.vsd b/openair2/DOCS/DOXYGEN/images/channel server.vsd deleted file mode 100644 index adfcc8adb9..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/channel server.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/convolutional.png b/openair2/DOCS/DOXYGEN/images/convolutional.png deleted file mode 100644 index f8cb64a2fe..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/convolutional.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/convolutional.vsd b/openair2/DOCS/DOXYGEN/images/convolutional.vsd deleted file mode 100644 index 2cae7a7dcf..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/convolutional.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/irs_dcf.jpg b/openair2/DOCS/DOXYGEN/images/irs_dcf.jpg deleted file mode 100644 index dff16b965d..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/irs_dcf.jpg and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/irs_pcf.jpg b/openair2/DOCS/DOXYGEN/images/irs_pcf.jpg deleted file mode 100644 index 476cbdcbec..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/irs_pcf.jpg and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/layer2_stack.jpg b/openair2/DOCS/DOXYGEN/images/layer2_stack.jpg deleted file mode 100644 index 4c06ddeddf..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/layer2_stack.jpg and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/layer2_stack.pdf b/openair2/DOCS/DOXYGEN/images/layer2_stack.pdf deleted file mode 100644 index 161b041f6f..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/layer2_stack.pdf and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/layer2_stack.png b/openair2/DOCS/DOXYGEN/images/layer2_stack.png deleted file mode 100644 index d0d6f6194e..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/layer2_stack.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/mac_channels.png b/openair2/DOCS/DOXYGEN/images/mac_channels.png deleted file mode 100644 index 9a22d5f9e9..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/mac_channels.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf b/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf deleted file mode 100644 index 6fb4eb6015..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png b/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png deleted file mode 100644 index 34cd6f47e8..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd b/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd deleted file mode 100644 index 61faddb3fa..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/mac_wbs.jpg b/openair2/DOCS/DOXYGEN/images/mac_wbs.jpg deleted file mode 100644 index fde5b28549..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/mac_wbs.jpg and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/macphynet.eps b/openair2/DOCS/DOXYGEN/images/macphynet.eps deleted file mode 100644 index 1d4df44e27..0000000000 --- a/openair2/DOCS/DOXYGEN/images/macphynet.eps +++ /dev/null @@ -1,1454 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: macphy_net2.fig -%%Creator: fig2dev Version 3.2 Patchlevel 4 -%%CreationDate: Wed Oct 27 13:09:38 2004 -%%For: nikaeinn@benovie (Navid Nikaein) -%%BoundingBox: 0 0 285804 310168 -%%Magnification: 1031.4000 -%%EndComments -/MyAppDict 100 dict dup begin def -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def -/col32 {0.867 0.871 0.867 srgb} bind def -/col33 {0.934 0.965 0.996 srgb} bind def -/col34 {0.867 0.793 0.645 srgb} bind def -/col35 {0.258 0.254 0.258 srgb} bind def -/col36 {0.516 0.508 0.516 srgb} bind def -/col37 {0.738 0.742 0.738 srgb} bind def -/col38 {0.867 0.871 0.867 srgb} bind def -/col39 {0.547 0.555 0.547 srgb} bind def -/col40 {0.676 0.664 0.676 srgb} bind def -/col41 {0.320 0.332 0.320 srgb} bind def -/col42 {0.258 0.254 0.258 srgb} bind def -/col43 {0.516 0.508 0.516 srgb} bind def -/col44 {0.738 0.742 0.738 srgb} bind def -/col45 {0.516 0.508 0.516 srgb} bind def -/col46 {0.738 0.742 0.738 srgb} bind def -/col47 {0.867 0.871 0.867 srgb} bind def -/col48 {0.547 0.555 0.547 srgb} bind def -/col49 {0.547 0.555 0.547 srgb} bind def -/col50 {0.258 0.254 0.258 srgb} bind def -/col51 {0.516 0.508 0.516 srgb} bind def -/col52 {0.738 0.742 0.738 srgb} bind def -/col53 {0.867 0.871 0.867 srgb} bind def -/col54 {0.258 0.254 0.258 srgb} bind def -/col55 {0.516 0.508 0.516 srgb} bind def -/col56 {0.738 0.742 0.738 srgb} bind def -/col57 {0.867 0.871 0.867 srgb} bind def -/col58 {0.516 0.508 0.516 srgb} bind def -/col59 {0.738 0.742 0.738 srgb} bind def -/col60 {0.867 0.871 0.867 srgb} bind def -/col61 {0.773 0.711 0.578 srgb} bind def -/col62 {0.934 0.965 0.996 srgb} bind def -/col63 {0.867 0.793 0.645 srgb} bind def -/col64 {0.773 0.711 0.578 srgb} bind def -/col65 {0.934 0.965 0.996 srgb} bind def -/col66 {0.867 0.793 0.645 srgb} bind def -/col67 {0.676 0.664 0.676 srgb} bind def -/col68 {0.320 0.332 0.320 srgb} bind def -/col69 {0.547 0.555 0.547 srgb} bind def -/col70 {0.836 0.840 0.836 srgb} bind def -/col71 {0.547 0.555 0.547 srgb} bind def -/col72 {0.258 0.254 0.258 srgb} bind def -/col73 {0.516 0.508 0.516 srgb} bind def -/col74 {0.738 0.742 0.738 srgb} bind def -/col75 {0.867 0.871 0.867 srgb} bind def -/col76 {0.676 0.680 0.676 srgb} bind def -/col77 {0.258 0.254 0.258 srgb} bind def -/col78 {0.516 0.508 0.516 srgb} bind def -/col79 {0.738 0.742 0.738 srgb} bind def -/col80 {0.867 0.871 0.867 srgb} bind def -/col81 {0.516 0.508 0.516 srgb} bind def -/col82 {0.738 0.742 0.738 srgb} bind def -/col83 {0.867 0.871 0.867 srgb} bind def -/col84 {0.258 0.254 0.258 srgb} bind def -/col85 {0.516 0.508 0.516 srgb} bind def -/col86 {0.738 0.742 0.738 srgb} bind def -/col87 {0.676 0.680 0.676 srgb} bind def -/col88 {0.547 0.555 0.547 srgb} bind def -/col89 {0.547 0.555 0.547 srgb} bind def -/col90 {0.547 0.555 0.547 srgb} bind def -/col91 {0.258 0.254 0.258 srgb} bind def -/col92 {0.738 0.742 0.738 srgb} bind def -/col93 {0.867 0.871 0.867 srgb} bind def -/col94 {0.258 0.254 0.258 srgb} bind def -/col95 {0.516 0.508 0.516 srgb} bind def -/col96 {0.738 0.742 0.738 srgb} bind def -/col97 {0.547 0.555 0.547 srgb} bind def -/col98 {0.258 0.254 0.258 srgb} bind def -/col99 {0.516 0.508 0.516 srgb} bind def -/col100 {0.738 0.742 0.738 srgb} bind def -/col101 {0.867 0.871 0.867 srgb} bind def -/col102 {0.258 0.254 0.258 srgb} bind def -/col103 {0.516 0.508 0.516 srgb} bind def -/col104 {0.738 0.742 0.738 srgb} bind def -/col105 {0.867 0.871 0.867 srgb} bind def -/col106 {0.738 0.742 0.738 srgb} bind def -/col107 {0.320 0.316 0.320 srgb} bind def -/col108 {0.902 0.887 0.902 srgb} bind def -/col109 {0.000 0.000 0.289 srgb} bind def -/col110 {0.320 0.316 0.320 srgb} bind def -/col111 {0.738 0.742 0.738 srgb} bind def -/col112 {0.480 0.473 0.480 srgb} bind def -/col113 {0.191 0.203 0.191 srgb} bind def -/col114 {0.320 0.316 0.320 srgb} bind def -/col115 {0.738 0.742 0.738 srgb} bind def -/col116 {0.480 0.473 0.480 srgb} bind def -/col117 {0.191 0.203 0.191 srgb} bind def -/col118 {0.320 0.316 0.320 srgb} bind def -/col119 {0.258 0.254 0.258 srgb} bind def -/col120 {0.773 0.711 0.578 srgb} bind def -/col121 {0.738 0.742 0.738 srgb} bind def -/col122 {0.480 0.473 0.480 srgb} bind def -/col123 {0.191 0.203 0.191 srgb} bind def -/col124 {0.320 0.316 0.320 srgb} bind def -/col125 {0.191 0.203 0.191 srgb} bind def -/col126 {0.320 0.316 0.320 srgb} bind def -/col127 {0.547 0.555 0.547 srgb} bind def -/col128 {0.258 0.270 0.258 srgb} bind def -/col129 {0.547 0.555 0.547 srgb} bind def -/col130 {0.738 0.742 0.738 srgb} bind def -/col131 {0.480 0.473 0.480 srgb} bind def -/col132 {0.191 0.203 0.191 srgb} bind def -/col133 {0.320 0.316 0.320 srgb} bind def -/col134 {0.738 0.742 0.738 srgb} bind def -/col135 {0.480 0.473 0.480 srgb} bind def -/col136 {0.191 0.203 0.191 srgb} bind def -/col137 {0.320 0.316 0.320 srgb} bind def -/col138 {0.480 0.473 0.480 srgb} bind def -/col139 {0.191 0.203 0.191 srgb} bind def -/col140 {0.320 0.316 0.320 srgb} bind def -/col141 {0.258 0.254 0.258 srgb} bind def -/col142 {0.516 0.508 0.516 srgb} bind def -/col143 {0.738 0.742 0.738 srgb} bind def -/col144 {0.867 0.871 0.867 srgb} bind def -/col145 {0.867 0.887 0.934 srgb} bind def -/col146 {0.578 0.570 0.609 srgb} bind def -/col147 {0.867 0.855 0.867 srgb} bind def -/col148 {0.645 0.633 0.707 srgb} bind def -/col149 {0.609 0.000 0.000 srgb} bind def -/col150 {0.934 0.918 0.934 srgb} bind def -/col151 {0.867 0.871 0.867 srgb} bind def -/col152 {0.516 0.664 0.996 srgb} bind def -/col153 {0.449 0.441 0.996 srgb} bind def -/col154 {0.516 0.508 0.516 srgb} bind def -/col155 {0.773 0.762 0.773 srgb} bind def -/col156 {0.516 0.508 0.516 srgb} bind def -/col157 {0.738 0.742 0.738 srgb} bind def -/col158 {0.867 0.871 0.867 srgb} bind def -/col159 {0.547 0.555 0.547 srgb} bind def -/col160 {0.547 0.555 0.547 srgb} bind def -/col161 {0.547 0.555 0.547 srgb} bind def -/col162 {0.547 0.555 0.547 srgb} bind def -/col163 {0.258 0.270 0.258 srgb} bind def -/col164 {0.547 0.555 0.547 srgb} bind def -/col165 {0.516 0.523 0.516 srgb} bind def -/col166 {0.773 0.777 0.773 srgb} bind def -/col167 {0.902 0.902 0.902 srgb} bind def -/col168 {0.965 0.965 0.965 srgb} bind def -/col169 {0.609 0.617 0.609 srgb} bind def -/col170 {0.516 0.508 0.516 srgb} bind def -/col171 {0.449 0.457 0.449 srgb} bind def -/col172 {0.258 0.270 0.258 srgb} bind def -/col173 {0.773 0.777 0.773 srgb} bind def -/col174 {0.449 0.457 0.449 srgb} bind def -/col175 {0.609 0.617 0.609 srgb} bind def -/col176 {0.516 0.508 0.516 srgb} bind def -/col177 {0.773 0.762 0.773 srgb} bind def -/col178 {0.547 0.555 0.547 srgb} bind def -/col179 {0.547 0.555 0.547 srgb} bind def -/col180 {0.258 0.254 0.258 srgb} bind def -/col181 {0.773 0.762 0.773 srgb} bind def -/col182 {0.934 0.980 0.996 srgb} bind def -/col183 {0.547 0.555 0.547 srgb} bind def -/col184 {0.258 0.270 0.258 srgb} bind def -/col185 {0.773 0.762 0.773 srgb} bind def -/col186 {0.516 0.508 0.516 srgb} bind def -/col187 {0.547 0.555 0.547 srgb} bind def -/col188 {0.258 0.270 0.258 srgb} bind def -/col189 {0.258 0.254 0.258 srgb} bind def -/col190 {0.516 0.508 0.516 srgb} bind def -/col191 {0.738 0.742 0.738 srgb} bind def -/col192 {0.867 0.871 0.867 srgb} bind def -/col193 {0.934 0.949 0.934 srgb} bind def -/col194 {0.516 0.508 0.516 srgb} bind def -/col195 {0.934 0.949 0.934 srgb} bind def -/col196 {0.516 0.508 0.516 srgb} bind def -/col197 {0.676 0.664 0.676 srgb} bind def -/col198 {0.547 0.555 0.547 srgb} bind def -/col199 {0.258 0.270 0.258 srgb} bind def -/col200 {0.547 0.555 0.547 srgb} bind def -/col201 {0.258 0.270 0.258 srgb} bind def -/col202 {0.676 0.664 0.676 srgb} bind def -/col203 {0.320 0.332 0.320 srgb} bind def -/col204 {0.547 0.555 0.547 srgb} bind def -/col205 {0.258 0.270 0.258 srgb} bind def -/col206 {0.773 0.762 0.773 srgb} bind def -/col207 {0.516 0.508 0.516 srgb} bind def -/col208 {0.738 0.742 0.738 srgb} bind def -/col209 {0.867 0.871 0.867 srgb} bind def -/col210 {0.547 0.555 0.547 srgb} bind def -/col211 {0.258 0.270 0.258 srgb} bind def -/col212 {0.547 0.555 0.547 srgb} bind def -/col213 {0.258 0.270 0.258 srgb} bind def -/col214 {0.547 0.555 0.547 srgb} bind def -/col215 {0.836 0.824 0.836 srgb} bind def -/col216 {0.676 0.664 0.676 srgb} bind def -/col217 {0.773 0.762 0.773 srgb} bind def -/col218 {0.449 0.457 0.449 srgb} bind def -/col219 {0.449 0.457 0.449 srgb} bind def -/col220 {0.934 0.949 0.934 srgb} bind def -/col221 {0.516 0.508 0.516 srgb} bind def -/col222 {0.449 0.457 0.449 srgb} bind def -/col223 {0.773 0.762 0.773 srgb} bind def -/col224 {0.449 0.457 0.449 srgb} bind def -/col225 {0.449 0.457 0.449 srgb} bind def -/col226 {0.934 0.949 0.934 srgb} bind def -/col227 {0.516 0.508 0.516 srgb} bind def -/col228 {0.449 0.457 0.449 srgb} bind def -/col229 {0.191 0.188 0.191 srgb} bind def -/col230 {0.320 0.332 0.320 srgb} bind def -/col231 {0.516 0.508 0.516 srgb} bind def -/col232 {0.547 0.555 0.547 srgb} bind def -/col233 {0.258 0.270 0.258 srgb} bind def -/col234 {0.773 0.777 0.773 srgb} bind def -/col235 {0.773 0.777 0.773 srgb} bind def -/col236 {0.547 0.555 0.547 srgb} bind def -/col237 {0.258 0.270 0.258 srgb} bind def -/col238 {0.965 0.949 0.965 srgb} bind def -/col239 {0.547 0.555 0.547 srgb} bind def -/col240 {0.258 0.270 0.258 srgb} bind def -/col241 {0.547 0.555 0.547 srgb} bind def -/col242 {0.258 0.270 0.258 srgb} bind def -/col243 {0.387 0.395 0.387 srgb} bind def -/col244 {0.867 0.871 0.867 srgb} bind def -/col245 {0.258 0.270 0.258 srgb} bind def -/col246 {0.547 0.555 0.547 srgb} bind def -/col247 {0.516 0.508 0.516 srgb} bind def -/col248 {0.516 0.508 0.516 srgb} bind def -/col249 {0.773 0.762 0.773 srgb} bind def -/col250 {0.773 0.777 0.773 srgb} bind def -/col251 {0.449 0.457 0.449 srgb} bind def -/col252 {0.773 0.777 0.773 srgb} bind def -/col253 {0.449 0.457 0.449 srgb} bind def -/col254 {0.547 0.555 0.547 srgb} bind def -/col255 {0.258 0.270 0.258 srgb} bind def -/col256 {0.516 0.508 0.516 srgb} bind def -/col257 {0.773 0.762 0.773 srgb} bind def -/col258 {0.773 0.762 0.773 srgb} bind def -/col259 {0.449 0.441 0.449 srgb} bind def -/col260 {0.516 0.508 0.516 srgb} bind def -/col261 {0.773 0.762 0.773 srgb} bind def -/col262 {0.449 0.441 0.449 srgb} bind def -/col263 {0.934 0.949 0.934 srgb} bind def -/col264 {0.516 0.508 0.516 srgb} bind def -/col265 {0.547 0.555 0.547 srgb} bind def -/col266 {0.258 0.270 0.258 srgb} bind def -/col267 {0.547 0.555 0.547 srgb} bind def -/col268 {0.258 0.270 0.258 srgb} bind def -/col269 {0.516 0.508 0.516 srgb} bind def -/col270 {0.738 0.742 0.738 srgb} bind def -/col271 {0.867 0.871 0.867 srgb} bind def -/col272 {0.738 0.742 0.738 srgb} bind def -/col273 {0.867 0.871 0.867 srgb} bind def -/col274 {0.258 0.254 0.258 srgb} bind def -/col275 {0.516 0.508 0.516 srgb} bind def -/col276 {0.738 0.742 0.738 srgb} bind def -/col277 {0.867 0.871 0.867 srgb} bind def -/col278 {0.516 0.508 0.516 srgb} bind def -/col279 {0.738 0.742 0.738 srgb} bind def -/col280 {0.867 0.871 0.867 srgb} bind def -/col281 {0.258 0.270 0.258 srgb} bind def -/col282 {0.258 0.270 0.258 srgb} bind def -/col283 {0.547 0.555 0.547 srgb} bind def -/col284 {0.867 0.617 0.578 srgb} bind def -/col285 {0.934 0.918 0.867 srgb} bind def -/col286 {0.773 0.762 0.773 srgb} bind def -/col287 {0.867 0.777 0.645 srgb} bind def -/col288 {0.867 0.871 0.867 srgb} bind def -/col289 {0.805 0.824 0.805 srgb} bind def -/col290 {0.934 0.918 0.934 srgb} bind def -/col291 {0.836 0.473 0.094 srgb} bind def -/col292 {0.934 0.887 0.094 srgb} bind def -/col293 {0.516 0.488 0.773 srgb} bind def -/col294 {0.836 0.840 0.836 srgb} bind def -/col295 {0.547 0.539 0.645 srgb} bind def -/col296 {0.289 0.285 0.289 srgb} bind def -/col297 {0.547 0.410 0.418 srgb} bind def -/col298 {0.352 0.348 0.352 srgb} bind def -/col299 {0.387 0.379 0.387 srgb} bind def -/col300 {0.547 0.555 0.547 srgb} bind def -/col301 {0.707 0.602 0.449 srgb} bind def -/col302 {0.258 0.570 0.996 srgb} bind def -/col303 {0.738 0.441 0.223 srgb} bind def -/col304 {0.867 0.457 0.000 srgb} bind def -/col305 {0.836 0.711 0.000 srgb} bind def -/col306 {0.000 0.395 0.000 srgb} bind def -/col307 {0.352 0.410 0.223 srgb} bind def -/col308 {0.836 0.824 0.836 srgb} bind def -/col309 {0.676 0.664 0.676 srgb} bind def -/col310 {0.547 0.555 0.645 srgb} bind def -/col311 {0.934 0.727 0.352 srgb} bind def -/col312 {0.547 0.602 0.418 srgb} bind def -/col313 {0.289 0.285 0.289 srgb} bind def -/col314 {0.387 0.395 0.387 srgb} bind def -/col315 {0.836 0.840 0.836 srgb} bind def -/col316 {0.547 0.539 0.645 srgb} bind def -/col317 {0.352 0.348 0.352 srgb} bind def -/col318 {0.387 0.379 0.387 srgb} bind def -/col319 {0.707 0.902 0.996 srgb} bind def -/col320 {0.516 0.742 0.934 srgb} bind def -/col321 {0.738 0.742 0.738 srgb} bind def -/col322 {0.836 0.586 0.320 srgb} bind def -/col323 {0.547 0.555 0.547 srgb} bind def -/col324 {0.578 0.824 0.996 srgb} bind def -/col325 {0.547 0.555 0.547 srgb} bind def -/col326 {0.836 0.840 0.836 srgb} bind def -/col327 {0.547 0.539 0.645 srgb} bind def -/col328 {0.547 0.410 0.418 srgb} bind def -/col329 {0.352 0.348 0.352 srgb} bind def -/col330 {0.387 0.379 0.387 srgb} bind def -/col331 {0.547 0.602 0.418 srgb} bind def -/col332 {0.965 0.410 0.000 srgb} bind def -/col333 {0.352 0.410 0.223 srgb} bind def -/col334 {0.547 0.602 0.418 srgb} bind def -/col335 {0.289 0.285 0.289 srgb} bind def -/col336 {0.836 0.840 0.836 srgb} bind def -/col337 {0.547 0.539 0.645 srgb} bind def -/col338 {0.547 0.410 0.418 srgb} bind def -/col339 {0.352 0.348 0.352 srgb} bind def -/col340 {0.387 0.379 0.387 srgb} bind def -/col341 {0.547 0.602 0.418 srgb} bind def -/col342 {0.965 0.410 0.000 srgb} bind def -/col343 {0.547 0.602 0.480 srgb} bind def -/col344 {0.289 0.285 0.289 srgb} bind def -/col345 {0.094 0.285 0.094 srgb} bind def -/col346 {0.352 0.410 0.223 srgb} bind def -/col347 {0.836 0.840 0.836 srgb} bind def -/col348 {0.676 0.680 0.676 srgb} bind def -/col349 {0.547 0.539 0.645 srgb} bind def -/col350 {0.965 0.742 0.352 srgb} bind def -/col351 {0.547 0.602 0.418 srgb} bind def -/col352 {0.289 0.285 0.289 srgb} bind def -/col353 {0.387 0.379 0.387 srgb} bind def -/col354 {0.387 0.410 0.609 srgb} bind def -/col355 {0.547 0.410 0.418 srgb} bind def -/col356 {0.867 0.000 0.000 srgb} bind def -/col357 {0.352 0.348 0.352 srgb} bind def -/col358 {0.547 0.602 0.418 srgb} bind def -/col359 {0.289 0.285 0.289 srgb} bind def -/col360 {0.387 0.379 0.387 srgb} bind def -/col361 {0.352 0.410 0.223 srgb} bind def -/col362 {0.836 0.840 0.836 srgb} bind def -/col363 {0.676 0.680 0.676 srgb} bind def -/col364 {0.547 0.539 0.645 srgb} bind def -/col365 {0.965 0.742 0.352 srgb} bind def -/col366 {0.547 0.602 0.418 srgb} bind def -/col367 {0.289 0.285 0.289 srgb} bind def -/col368 {0.387 0.379 0.387 srgb} bind def -/col369 {0.352 0.410 0.223 srgb} bind def -/col370 {0.836 0.840 0.836 srgb} bind def -/col371 {0.676 0.680 0.676 srgb} bind def -/col372 {0.547 0.539 0.645 srgb} bind def -/col373 {0.965 0.742 0.352 srgb} bind def -/col374 {0.547 0.602 0.418 srgb} bind def -/col375 {0.289 0.285 0.289 srgb} bind def -/col376 {0.387 0.379 0.387 srgb} bind def -/col377 {0.387 0.410 0.609 srgb} bind def -/col378 {0.320 0.410 0.160 srgb} bind def -/col379 {0.387 0.379 0.387 srgb} bind def -/col380 {0.352 0.410 0.223 srgb} bind def -/col381 {0.578 0.570 0.578 srgb} bind def -/col382 {0.387 0.379 0.387 srgb} bind def -/col383 {0.000 0.379 0.000 srgb} bind def -/col384 {0.547 0.539 0.645 srgb} bind def -/col385 {0.547 0.539 0.645 srgb} bind def -/col386 {0.547 0.539 0.645 srgb} bind def -/col387 {0.000 0.379 0.289 srgb} bind def -/col388 {0.480 0.508 0.289 srgb} bind def -/col389 {0.902 0.742 0.480 srgb} bind def -/col390 {0.547 0.602 0.480 srgb} bind def -/col391 {0.645 0.711 0.773 srgb} bind def -/col392 {0.418 0.410 0.578 srgb} bind def -/col393 {0.516 0.410 0.418 srgb} bind def -/col394 {0.320 0.602 0.289 srgb} bind def -/col395 {0.836 0.902 0.902 srgb} bind def -/col396 {0.320 0.379 0.387 srgb} bind def -/col397 {0.094 0.410 0.289 srgb} bind def -/col398 {0.609 0.648 0.707 srgb} bind def -/col399 {0.996 0.570 0.000 srgb} bind def -/col400 {0.996 0.570 0.000 srgb} bind def -/col401 {0.547 0.410 0.418 srgb} bind def -/col402 {0.000 0.379 0.289 srgb} bind def -/col403 {0.480 0.508 0.289 srgb} bind def -/col404 {0.387 0.441 0.480 srgb} bind def -/col405 {0.902 0.742 0.480 srgb} bind def -/col406 {0.094 0.285 0.094 srgb} bind def -/col407 {0.352 0.410 0.223 srgb} bind def -/col408 {0.547 0.539 0.645 srgb} bind def -/col409 {0.965 0.742 0.352 srgb} bind def -/col410 {0.547 0.602 0.418 srgb} bind def -/col411 {0.289 0.285 0.289 srgb} bind def -/col412 {0.387 0.379 0.387 srgb} bind def -/col413 {0.836 0.840 0.836 srgb} bind def -/col414 {0.676 0.680 0.676 srgb} bind def -/col415 {0.547 0.539 0.645 srgb} bind def -/col416 {0.289 0.285 0.289 srgb} bind def -/col417 {0.387 0.379 0.387 srgb} bind def -/col418 {0.547 0.410 0.418 srgb} bind def -/col419 {0.352 0.348 0.352 srgb} bind def -/col420 {0.289 0.285 0.289 srgb} bind def -/col421 {0.387 0.379 0.387 srgb} bind def -/col422 {0.676 0.680 0.676 srgb} bind def -/col423 {0.387 0.379 0.387 srgb} bind def -/col424 {0.547 0.602 0.418 srgb} bind def -/col425 {0.289 0.285 0.289 srgb} bind def -/col426 {0.352 0.410 0.223 srgb} bind def -/col427 {0.676 0.680 0.676 srgb} bind def -/col428 {0.289 0.285 0.289 srgb} bind def -/col429 {0.000 0.395 0.000 srgb} bind def -/col430 {0.352 0.410 0.223 srgb} bind def -/col431 {0.836 0.824 0.836 srgb} bind def -/col432 {0.676 0.664 0.676 srgb} bind def -/col433 {0.547 0.555 0.645 srgb} bind def -/col434 {0.934 0.727 0.352 srgb} bind def -/col435 {0.547 0.602 0.418 srgb} bind def -/col436 {0.289 0.285 0.289 srgb} bind def -/col437 {0.387 0.395 0.387 srgb} bind def -/col438 {0.836 0.840 0.836 srgb} bind def -/col439 {0.547 0.539 0.645 srgb} bind def -/col440 {0.352 0.348 0.352 srgb} bind def -/col441 {0.387 0.379 0.387 srgb} bind def -/col442 {0.836 0.840 0.836 srgb} bind def -/col443 {0.352 0.410 0.223 srgb} bind def -/col444 {0.547 0.539 0.645 srgb} bind def -/col445 {0.547 0.410 0.418 srgb} bind def -/col446 {0.352 0.348 0.352 srgb} bind def -/col447 {0.387 0.379 0.387 srgb} bind def -/col448 {0.547 0.602 0.418 srgb} bind def -/col449 {0.289 0.285 0.289 srgb} bind def -/col450 {0.836 0.840 0.836 srgb} bind def -/col451 {0.547 0.539 0.645 srgb} bind def -/col452 {0.547 0.410 0.418 srgb} bind def -/col453 {0.352 0.348 0.352 srgb} bind def -/col454 {0.387 0.379 0.387 srgb} bind def -/col455 {0.547 0.602 0.480 srgb} bind def -/col456 {0.289 0.285 0.289 srgb} bind def -/col457 {0.000 0.379 0.000 srgb} bind def -/col458 {0.352 0.410 0.223 srgb} bind def -/col459 {0.867 0.871 0.867 srgb} bind def -/col460 {0.676 0.680 0.676 srgb} bind def -/col461 {0.547 0.539 0.645 srgb} bind def -/col462 {0.965 0.742 0.352 srgb} bind def -/col463 {0.547 0.602 0.418 srgb} bind def -/col464 {0.289 0.285 0.289 srgb} bind def -/col465 {0.387 0.379 0.387 srgb} bind def -/col466 {0.387 0.410 0.609 srgb} bind def -/col467 {0.836 0.840 0.836 srgb} bind def -/col468 {0.547 0.410 0.418 srgb} bind def -/col469 {0.352 0.348 0.352 srgb} bind def -/col470 {0.000 0.395 0.000 srgb} bind def -/col471 {0.352 0.410 0.223 srgb} bind def -/col472 {0.836 0.824 0.836 srgb} bind def -/col473 {0.676 0.664 0.676 srgb} bind def -/col474 {0.547 0.555 0.645 srgb} bind def -/col475 {0.934 0.727 0.352 srgb} bind def -/col476 {0.547 0.602 0.418 srgb} bind def -/col477 {0.289 0.285 0.289 srgb} bind def -/col478 {0.387 0.395 0.387 srgb} bind def -/col479 {0.352 0.410 0.223 srgb} bind def -/col480 {0.836 0.824 0.836 srgb} bind def -/col481 {0.676 0.664 0.676 srgb} bind def -/col482 {0.547 0.555 0.645 srgb} bind def -/col483 {0.934 0.727 0.352 srgb} bind def -/col484 {0.547 0.602 0.418 srgb} bind def -/col485 {0.289 0.285 0.289 srgb} bind def -/col486 {0.387 0.395 0.387 srgb} bind def -/col487 {0.352 0.410 0.223 srgb} bind def -/col488 {0.836 0.824 0.836 srgb} bind def -/col489 {0.676 0.664 0.676 srgb} bind def -/col490 {0.547 0.555 0.645 srgb} bind def -/col491 {0.934 0.727 0.352 srgb} bind def -/col492 {0.547 0.602 0.418 srgb} bind def -/col493 {0.289 0.285 0.289 srgb} bind def -/col494 {0.387 0.395 0.387 srgb} bind def -/col495 {0.352 0.410 0.223 srgb} bind def -/col496 {0.836 0.824 0.836 srgb} bind def -/col497 {0.676 0.664 0.676 srgb} bind def -/col498 {0.547 0.555 0.645 srgb} bind def -/col499 {0.934 0.727 0.352 srgb} bind def -/col500 {0.547 0.602 0.418 srgb} bind def -/col501 {0.289 0.285 0.289 srgb} bind def -/col502 {0.387 0.395 0.387 srgb} bind def -/col503 {0.352 0.410 0.223 srgb} bind def -/col504 {0.836 0.824 0.836 srgb} bind def -/col505 {0.676 0.664 0.676 srgb} bind def -/col506 {0.547 0.555 0.645 srgb} bind def -/col507 {0.934 0.727 0.352 srgb} bind def -/col508 {0.547 0.602 0.418 srgb} bind def -/col509 {0.289 0.285 0.289 srgb} bind def -/col510 {0.387 0.395 0.387 srgb} bind def -/col511 {0.836 0.840 0.836 srgb} bind def -/col512 {0.547 0.539 0.645 srgb} bind def -/col513 {0.352 0.348 0.352 srgb} bind def -/col514 {0.387 0.379 0.387 srgb} bind def -/col515 {0.934 0.934 0.836 srgb} bind def -/col516 {0.965 0.680 0.352 srgb} bind def -/col517 {0.578 0.809 0.609 srgb} bind def -/col518 {0.676 0.664 0.676 srgb} bind def -/col519 {0.707 0.078 0.480 srgb} bind def -/col520 {0.934 0.934 0.934 srgb} bind def -/col521 {0.516 0.508 0.516 srgb} bind def -/col522 {0.000 0.379 0.000 srgb} bind def -/col523 {0.352 0.410 0.223 srgb} bind def -/col524 {0.836 0.840 0.836 srgb} bind def -/col525 {0.676 0.680 0.676 srgb} bind def -/col526 {0.547 0.539 0.645 srgb} bind def -/col527 {0.965 0.742 0.352 srgb} bind def -/col528 {0.547 0.602 0.418 srgb} bind def -/col529 {0.289 0.285 0.289 srgb} bind def -/col530 {0.387 0.379 0.387 srgb} bind def -/col531 {0.387 0.410 0.609 srgb} bind def -/col532 {0.480 0.473 0.480 srgb} bind def -/col533 {0.000 0.348 0.000 srgb} bind def -/col534 {0.902 0.441 0.449 srgb} bind def -/col535 {0.996 0.793 0.191 srgb} bind def -/col536 {0.160 0.473 0.289 srgb} bind def -/col537 {0.867 0.156 0.129 srgb} bind def -/col538 {0.129 0.348 0.773 srgb} bind def -/col539 {0.965 0.965 0.965 srgb} bind def -/col540 {0.934 0.934 0.934 srgb} bind def -/col541 {0.902 0.902 0.902 srgb} bind def -/col542 {0.773 0.762 0.773 srgb} bind def - -end -save -newpath 0 310168 moveto 0 0 lineto 285804 0 lineto 285804 310168 lineto closepath clip newpath --103822.2 333556.4 translate -1 -1 scale - -% This junk string is used by the show operators -/PATsstr 1 string def -/PATawidthshow { % cx cy cchar rx ry string - % Loop over each character in the string - { % cx cy cchar rx ry char - % Show the character - dup % cx cy cchar rx ry char char - PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char) - false charpath % cx cy cchar rx ry char - /clip load PATdraw - % Move past the character (charpath modified the - % current point) - currentpoint % cx cy cchar rx ry char x y - newpath - moveto % cx cy cchar rx ry char - % Reposition by cx,cy if the character in the string is cchar - 3 index eq { % cx cy cchar rx ry - 4 index 4 index rmoveto - } if - % Reposition all characters by rx ry - 2 copy rmoveto % cx cy cchar rx ry - } forall - pop pop pop pop pop % - - currentpoint - newpath - moveto -} bind def -/PATcg { - 7 dict dup begin - /lw currentlinewidth def - /lc currentlinecap def - /lj currentlinejoin def - /ml currentmiterlimit def - /ds [ currentdash ] def - /cc [ currentrgbcolor ] def - /cm matrix currentmatrix def - end -} bind def -% PATdraw - calculates the boundaries of the object and -% fills it with the current pattern -/PATdraw { % proc - save exch - PATpcalc % proc nw nh px py - 5 -1 roll exec % nw nh px py - newpath - PATfill % - - restore -} bind def -% PATfill - performs the tiling for the shape -/PATfill { % nw nh px py PATfill - - PATDict /CurrentPattern get dup begin - setfont - % Set the coordinate system to Pattern Space - PatternGState PATsg - % Set the color for uncolored pattezns - PaintType 2 eq { PATDict /PColor get PATsc } if - % Create the string for showing - 3 index string % nw nh px py str - % Loop for each of the pattern sources - 0 1 Multi 1 sub { % nw nh px py str source - % Move to the starting location - 3 index 3 index % nw nh px py str source px py - moveto % nw nh px py str source - % For multiple sources, set the appropriate color - Multi 1 ne { dup PC exch get PATsc } if - % Set the appropriate string for the source - 0 1 7 index 1 sub { 2 index exch 2 index put } for pop - % Loop over the number of vertical cells - 3 index % nw nh px py str nh - { % nw nh px py str - currentpoint % nw nh px py str cx cy - 2 index oldshow % nw nh px py str cx cy - YStep add moveto % nw nh px py str - } repeat % nw nh px py str - } for - 5 { pop } repeat - end -} bind def - -% PATkshow - kshow with the current pattezn -/PATkshow { % proc string - exch bind % string proc - 1 index 0 get % string proc char - % Loop over all but the last character in the string - 0 1 4 index length 2 sub { - % string proc char idx - % Find the n+1th character in the string - 3 index exch 1 add get % string proc char char+1 - exch 2 copy % strinq proc char+1 char char+1 char - % Now show the nth character - PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr) - false charpath % string proc char+1 char char+1 - /clip load PATdraw - % Move past the character (charpath modified the current point) - currentpoint newpath moveto - % Execute the user proc (should consume char and char+1) - mark 3 1 roll % string proc char+1 mark char char+1 - 4 index exec % string proc char+1 mark... - cleartomark % string proc char+1 - } for - % Now display the last character - PATsstr dup 0 4 -1 roll put % string proc (char+1) - false charpath % string proc - /clip load PATdraw - neewath - pop pop % - -} bind def -% PATmp - the makepattern equivalent -/PATmp { % patdict patmtx PATmp patinstance - exch dup length 7 add % We will add 6 new entries plus 1 FID - dict copy % Create a new dictionary - begin - % Matrix to install when painting the pattern - TilingType PATtcalc - /PatternGState PATcg def - PatternGState /cm 3 -1 roll put - % Check for multi pattern sources (Level 1 fast color patterns) - currentdict /Multi known not { /Multi 1 def } if - % Font dictionary definitions - /FontType 3 def - % Create a dummy encoding vector - /Encoding 256 array def - 3 string 0 1 255 { - Encoding exch dup 3 index cvs cvn put } for pop - /FontMatrix matrix def - /FontBBox BBox def - /BuildChar { - mark 3 1 roll % mark dict char - exch begin - Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata] - PaintType 2 eq Multi 1 ne or - { XStep 0 FontBBox aload pop setcachedevice } - { XStep 0 setcharwidth } ifelse - currentdict % mark [paintdata] dict - /PaintProc load % mark [paintdata] dict paintproc - end - gsave - false PATredef exec true PATredef - grestore - cleartomark % - - } bind def - currentdict - end % newdict - /foo exch % /foo newlict - definefont % newfont -} bind def -% PATpcalc - calculates the starting point and width/height -% of the tile fill for the shape -/PATpcalc { % - PATpcalc nw nh px py - PATDict /CurrentPattern get begin - gsave - % Set up the coordinate system to Pattern Space - % and lock down pattern - PatternGState /cm get setmatrix - BBox aload pop pop pop translate - % Determine the bounding box of the shape - pathbbox % llx lly urx ury - grestore - % Determine (nw, nh) the # of cells to paint width and height - PatHeight div ceiling % llx lly urx qh - 4 1 roll % qh llx lly urx - PatWidth div ceiling % qh llx lly qw - 4 1 roll % qw qh llx lly - PatHeight div floor % qw qh llx ph - 4 1 roll % ph qw qh llx - PatWidth div floor % ph qw qh pw - 4 1 roll % pw ph qw qh - 2 index sub cvi abs % pw ph qs qh-ph - exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph - % Determine the starting point of the pattern fill - %(px, py) - 4 2 roll % nw nh pw ph - PatHeight mul % nw nh pw py - exch % nw nh py pw - PatWidth mul exch % nw nh px py - end -} bind def - -% Save the original routines so that we can use them later on -/oldfill /fill load def -/oldeofill /eofill load def -/oldstroke /stroke load def -/oldshow /show load def -/oldashow /ashow load def -/oldwidthshow /widthshow load def -/oldawidthshow /awidthshow load def -/oldkshow /kshow load def - -% These defs are necessary so that subsequent procs don't bind in -% the originals -/fill { oldfill } bind def -/eofill { oldeofill } bind def -/stroke { oldstroke } bind def -/show { oldshow } bind def -/ashow { oldashow } bind def -/widthshow { oldwidthshow } bind def -/awidthshow { oldawidthshow } bind def -/kshow { oldkshow } bind def -/PATredef { - MyAppDict begin - { - /fill { /clip load PATdraw newpath } bind def - /eofill { /eoclip load PATdraw newpath } bind def - /stroke { PATstroke } bind def - /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def - /ashow { 0 0 null 6 3 roll PATawidthshow } - bind def - /widthshow { 0 0 3 -1 roll PATawidthshow } - bind def - /awidthshow { PATawidthshow } bind def - /kshow { PATkshow } bind def - } { - /fill { oldfill } bind def - /eofill { oldeofill } bind def - /stroke { oldstroke } bind def - /show { oldshow } bind def - /ashow { oldashow } bind def - /widthshow { oldwidthshow } bind def - /awidthshow { oldawidthshow } bind def - /kshow { oldkshow } bind def - } ifelse - end -} bind def -false PATredef -% Conditionally define setcmykcolor if not available -/setcmykcolor where { pop } { - /setcmykcolor { - 1 sub 4 1 roll - 3 { - 3 index add neg dup 0 lt { pop 0 } if 3 1 roll - } repeat - setrgbcolor - pop - } bind def -} ifelse -/PATsc { % colorarray - aload length % c1 ... cn length - dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor - } ifelse } ifelse -} bind def -/PATsg { % dict - begin - lw setlinewidth - lc setlinecap - lj setlinejoin - ml setmiterlimit - ds aload pop setdash - cc aload pop setrgbcolor - cm setmatrix - end -} bind def - -/PATDict 3 dict def -/PATsp { - true PATredef - PATDict begin - /CurrentPattern exch def - % If it's an uncolored pattern, save the color - CurrentPattern /PaintType get 2 eq { - /PColor exch def - } if - /CColor [ currentrgbcolor ] def - end -} bind def -% PATstroke - stroke with the current pattern -/PATstroke { - countdictstack - save - mark - { - currentpoint strokepath moveto - PATpcalc % proc nw nh px py - clip newpath PATfill - } stopped { - (*** PATstroke Warning: Path is too complex, stroking - with gray) = - cleartomark - restore - countdictstack exch sub dup 0 gt - { { end } repeat } { pop } ifelse - gsave 0.5 setgray oldstroke grestore - } { pop restore pop } ifelse - newpath -} bind def -/PATtcalc { % modmtx tilingtype PATtcalc tilematrix - % Note: tiling types 2 and 3 are not supported - gsave - exch concat % tilingtype - matrix currentmatrix exch % cmtx tilingtype - % Tiling type 1 and 3: constant spacing - 2 ne { - % Distort the pattern so that it occupies - % an integral number of device pixels - dup 4 get exch dup 5 get exch % tx ty cmtx - XStep 0 dtransform - round exch round exch % tx ty cmtx dx.x dx.y - XStep div exch XStep div exch % tx ty cmtx a b - 0 YStep dtransform - round exch round exch % tx ty cmtx a b dy.x dy.y - YStep div exch YStep div exch % tx ty cmtx a b c d - 7 -3 roll astore % { a b c d tx ty } - } if - grestore -} bind def -/PATusp { - false PATredef - PATDict begin - CColor PATsc - end -} bind def - -% crosshatch45 -11 dict begin -/PaintType 1 def -/PatternType 1 def -/TilingType 1 def -/BBox [0 0 1 1] def -/XStep 1 def -/YStep 1 def -/PatWidth 1 def -/PatHeight 1 def -/Multi 2 def -/PaintData [ - { clippath } bind - { 20 20 true [ 20 0 0 -20 0 20 ] - {<8020004050102088201104400a02800401000a02 - 8011044020882040501080200040501020882011 - 04400a02800401000a0280110440208820405010>} - imagemask } bind -] def -/PaintProc { - pop - exec fill -} def -currentdict -end -/P6 exch def - -% horizontal sawtooth lines -11 dict begin -/PaintType 1 def -/PatternType 1 def -/TilingType 1 def -/BBox [0 0 1 1] def -/XStep 1 def -/YStep 1 def -/PatWidth 1 def -/PatHeight 1 def -/Multi 2 def -/PaintData [ - { clippath } bind - { 32 16 true [ 32 0 0 -16 0 16 ] - {<000000000000000000000000000000000000000000000000 - 000000000100010002800280044004400820082010101010 - 20082008400440048002800200010001>} - imagemask } bind -] def -/PaintProc { - pop - exec fill -} def -currentdict -end -/P21 exch def - -% vertical sawtooth lines -11 dict begin -/PaintType 1 def -/PatternType 1 def -/TilingType 1 def -/BBox [0 0 1 1] def -/XStep 1 def -/YStep 1 def -/PatWidth 1 def -/PatHeight 1 def -/Multi 2 def -/PaintData [ - { clippath } bind - { 16 32 true [ 16 0 0 -32 0 32 ] - {<400020001000080004000200010000800100020004000800 - 100020004000800040002000100008000400020001000080 - 01000200040008001000200040008000>} - imagemask } bind -] def -/PaintProc { - pop - exec fill -} def -currentdict -end -/P22 exch def - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 64.97008 64.97008 sc -% -% Fig objects follow -% -% -% here starts figure with depth 50 -/Times-Roman ff 180.00 scf sf -5715 3690 m -gs 1 -1 sc (.) col0 sh gr -/Times-Roman ff 180.00 scf sf -5715 3735 m -gs 1 -1 sc (.) col0 sh gr -/Times-Roman ff 180.00 scf sf -5715 3780 m -gs 1 -1 sc (.) col0 sh gr -% Polyline -7.500 slw -gs clippath -2527 3570 m 2602 3570 l 2602 3455 l 2565 3545 l 2527 3455 l cp -eoclip -n 2565 3150 m - 2565 3555 l gs col0 s gr gr - -% arrowhead -n 2527 3455 m 2565 3545 l 2602 3455 l 2527 3455 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -2617 3570 m 2692 3570 l 2692 3455 l 2655 3545 l 2617 3455 l cp -eoclip -n 2655 3150 m - 2655 3555 l gs col0 s gr gr - -% arrowhead -n 2617 3455 m 2655 3545 l 2692 3455 l 2617 3455 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -4957 3570 m 5032 3570 l 5032 3455 l 4995 3545 l 4957 3455 l cp -eoclip -n 4995 3150 m - 4995 3555 l gs col0 s gr gr - -% arrowhead -n 4957 3455 m 4995 3545 l 5032 3455 l 4957 3455 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5047 3570 m 5122 3570 l 5122 3455 l 5085 3545 l 5047 3455 l cp -eoclip -n 5085 3150 m - 5085 3555 l gs col0 s gr gr - -% arrowhead -n 5047 3455 m 5085 3545 l 5122 3455 l 5047 3455 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 2070 2610 m 5670 2610 l 5670 3150 l 2070 3150 l - cp gs col0 s gr -% Polyline -gs clippath -3652 3570 m 3727 3570 l 3727 3455 l 3690 3545 l 3652 3455 l cp -eoclip -n 3690 3150 m - 3690 3555 l gs col0 s gr gr - -% arrowhead -n 3652 3455 m 3690 3545 l 3727 3455 l 3652 3455 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3562 3570 m 3637 3570 l 3637 3455 l 3600 3545 l 3562 3455 l cp -eoclip -n 3600 3150 m - 3600 3555 l gs col0 s gr gr - -% arrowhead -n 3562 3455 m 3600 3545 l 3637 3455 l 3562 3455 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3202 3570 m 3277 3570 l 3277 3455 l 3240 3545 l 3202 3455 l cp -eoclip -n 3240 3150 m - 3240 3555 l gs col0 s gr gr - -% arrowhead -n 3202 3455 m 3240 3545 l 3277 3455 l 3202 3455 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3112 3570 m 3187 3570 l 3187 3455 l 3150 3545 l 3112 3455 l cp -eoclip -n 3150 3150 m - 3150 3555 l gs col0 s gr gr - -% arrowhead -n 3112 3455 m 3150 3545 l 3187 3455 l 3112 3455 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -2010 412 m 2010 487 l 2125 487 l 2035 450 l 2125 412 l cp -eoclip -n 3150 450 m - 2025 450 l gs col0 s gr gr - -% arrowhead -n 2125 412 m 2035 450 l 2125 487 l 2125 412 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 2070 585 m 5670 585 l 5670 2205 l 2070 2205 l - cp gs col0 s gr -% Polyline -gs clippath -5685 487 m 5685 412 l 5570 412 l 5660 450 l 5570 487 l cp -eoclip -n 4545 450 m - 5670 450 l gs col0 s gr gr - -% arrowhead -n 5570 487 m 5660 450 l 5570 412 l 5570 487 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -1942 2175 m 2017 2175 l 2017 2060 l 1980 2150 l 1942 2060 l cp -eoclip -n 1980 1935 m - 1980 2160 l gs col0 s gr gr - -% arrowhead -n 1942 2060 m 1980 2150 l 2017 2060 l 1942 2060 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -2017 615 m 1942 615 l 1942 730 l 1980 640 l 2017 730 l cp -eoclip -n 1980 855 m - 1980 630 l gs col0 s gr gr - -% arrowhead -n 2017 730 m 1980 640 l 1942 730 l 2017 730 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 2250 675 m 2745 675 l 2745 1710 l 2250 1710 l - cp gs col12 1.00 shd ef gr gs col0 s gr -% Polyline -n 2430 855 m 2925 855 l 2925 1890 l 2430 1890 l - cp gs col1 1.00 shd ef gr gs col0 s gr -% Polyline -n 2610 1035 m 3105 1035 l 3105 2070 l 2610 2070 l - cp gs col4 1.00 shd ef gr gs col0 s gr -% Polyline -n 3105 1800 m - 2430 1800 l gs col0 s gr -% Polyline -n 3105 1710 m - 2430 1710 l gs col0 s gr -% Polyline -n 3105 1620 m - 2250 1620 l gs col0 s gr -% Polyline -n 2610 1530 m - 2250 1530 l gs col0 s gr -% Polyline -n 2610 1440 m - 2250 1440 l gs col0 s gr -% Polyline -n 3105 1890 m 2610 1890 l - 2610 1845 l gs col0 s gr -% Polyline -n 2610 1980 m - 3105 1980 l gs col0 s gr -% Polyline -n 2430 1350 m - 2250 1350 l gs col0 s gr -% Polyline -n 3375 675 m 3870 675 l 3870 1710 l 3375 1710 l - cp gs col12 1.00 shd ef gr gs col0 s gr -% Polyline -n 3555 855 m 4050 855 l 4050 1890 l 3555 1890 l - cp gs col1 1.00 shd ef gr gs col0 s gr -% Polyline -n 3735 1035 m 4230 1035 l 4230 2070 l 3735 2070 l - cp gs col4 1.00 shd ef gr gs col0 s gr -% Polyline -n 4230 1800 m - 3555 1800 l gs col0 s gr -% Polyline -n 4230 1710 m - 3555 1710 l gs col0 s gr -% Polyline -n 4230 1620 m - 3375 1620 l gs col0 s gr -% Polyline -n 3735 1530 m - 3375 1530 l gs col0 s gr -% Polyline -n 3735 1440 m - 3375 1440 l gs col0 s gr -% Polyline -n 4230 1890 m 3735 1890 l - 3735 1845 l gs col0 s gr -% Polyline -n 3735 1980 m - 4230 1980 l gs col0 s gr -% Polyline -n 3555 1350 m - 3375 1350 l gs col0 s gr -% Polyline -n 4680 675 m 5175 675 l 5175 1710 l 4680 1710 l - cp gs col12 1.00 shd ef gr gs col0 s gr -% Polyline -n 4860 855 m 5355 855 l 5355 1890 l 4860 1890 l - cp gs col1 1.00 shd ef gr gs col0 s gr -% Polyline -n 5040 1035 m 5535 1035 l 5535 2070 l 5040 2070 l - cp gs col4 1.00 shd ef gr gs col0 s gr -% Polyline -n 5535 1800 m - 4860 1800 l gs col0 s gr -% Polyline -n 5535 1710 m - 4860 1710 l gs col0 s gr -% Polyline -n 5535 1620 m - 4680 1620 l gs col0 s gr -% Polyline -n 5040 1530 m - 4680 1530 l gs col0 s gr -% Polyline -n 5040 1440 m - 4680 1440 l gs col0 s gr -% Polyline -n 5535 1890 m 5040 1890 l - 5040 1845 l gs col0 s gr -% Polyline -n 5040 1980 m - 5535 1980 l gs col0 s gr -% Polyline -n 4860 1350 m - 4680 1350 l gs col0 s gr -% Polyline -n 2070 3555 m 5670 3555 l 5670 3915 l 2070 3915 l - cp gs col0 s gr -% Polyline -n 5670 3600 m 5940 3600 l 5940 3420 l 5895 3375 l 5985 3375 l - 5940 3420 l gs col0 s gr -% Polyline -n 5670 3870 m 5940 3870 l 5940 3690 l 5895 3645 l 5985 3645 l - 5940 3690 l gs col0 s gr -% Polyline -gs clippath -5685 5122 m 5685 5047 l 5570 5047 l 5660 5085 l 5570 5122 l cp -eoclip -n 4230 5085 m - 5670 5085 l gs col0 s gr gr - -% arrowhead -n 5570 5122 m 5660 5085 l 5570 5047 l 5570 5122 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -2055 5047 m 2055 5122 l 2170 5122 l 2080 5085 l 2170 5047 l cp -eoclip -n 3465 5085 m - 2070 5085 l gs col0 s gr gr - -% arrowhead -n 2170 5047 m 2080 5085 l 2170 5122 l 2170 5047 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -4038 4344 m 4077 4320 l 4022 4232 l 4043 4308 l 3984 4255 l cp -eoclip -n 3915 3915 m 4027 4064 l 3892 4064 l - 4050 4320 l gs col0 s gr gr - -% arrowhead -n 3984 4255 m 4043 4308 l 4022 4232 l 3984 4255 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3858 4344 m 3897 4321 l 3843 4232 l 3863 4308 l 3805 4255 l cp -eoclip -n 3735 3915 m 3870 4095 l 3735 4095 l - 3870 4320 l gs col0 s gr gr - -% arrowhead -n 3805 4255 m 3863 4308 l 3843 4232 l 3805 4255 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5227 2625 m 5302 2625 l 5302 2510 l 5265 2600 l 5227 2510 l cp -eoclip -n 5265 2205 m - 5265 2610 l gs col0 s gr gr - -% arrowhead -n 5227 2510 m 5265 2600 l 5302 2510 l 5227 2510 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -2797 2625 m 2872 2625 l 2872 2510 l 2835 2600 l 2797 2510 l cp -eoclip -n 2835 2205 m - 2835 2610 l gs col0 s gr gr - -% arrowhead -n 2797 2510 m 2835 2600 l 2872 2510 l 2797 2510 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3922 2625 m 3997 2625 l 3997 2510 l 3960 2600 l 3922 2510 l cp -eoclip -n 3960 2205 m - 3960 2610 l gs col0 s gr gr - -% arrowhead -n 3922 2510 m 3960 2600 l 3997 2510 l 3922 2510 l cp gs 0.00 setgray ef gr col0 s -% Polyline -15.000 slw -gs clippath -2085 2827 m 2085 2752 l 1937 2752 l 2057 2790 l 1937 2827 l cp -eoclip -n 2385 4815 m 2385 4950 l 1620 4950 l 1620 2790 l - 2070 2790 l gs col9 s gr gr - -% arrowhead -7.500 slw -n 1937 2827 m 2057 2790 l 1937 2752 l 1937 2827 l cp gs col9 1.00 shd ef gr col9 s -% Polyline -15.000 slw -gs clippath -2085 3052 m 2085 2977 l 1937 2977 l 2057 3015 l 1937 3052 l cp -eoclip -n 2070 4635 m 1800 4635 l 1800 3015 l - 2070 3015 l gs col12 s gr gr - -% arrowhead -7.500 slw -n 1937 3052 m 2057 3015 l 1937 2977 l 1937 3052 l cp gs col12 1.00 shd ef gr col12 s -% Polyline -n 2340 4320 m 2070 4320 l 2070 4860 l 2340 4860 l - cp gs /PC [[0.00 0.69 0.00] [0.00 0.00 0.00]] def -15.00 15.00 sc P22 [8 0 0 -16 138.00 288.00] PATmp PATsp ef gr PATusp gs col0 s gr -% Polyline -n 2385 4320 m 2340 4320 l 2340 4860 l 2385 4860 l - cp gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def -15.00 15.00 sc P21 [16 0 0 -8 156.00 288.00] PATmp PATsp ef gr PATusp gs col0 s gr -% Polyline -n 2430 4320 m 2385 4320 l 2385 4860 l 2430 4860 l - cp gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def -15.00 15.00 sc P21 [16 0 0 -8 159.00 288.00] PATmp PATsp ef gr PATusp gs col0 s gr -% Polyline -n 2475 4320 m 2430 4320 l 2430 4860 l 2475 4860 l - cp gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def -15.00 15.00 sc P21 [16 0 0 -8 162.00 288.00] PATmp PATsp ef gr PATusp gs col0 s gr -% Polyline -n 2520 4320 m 2475 4320 l 2475 4860 l 2520 4860 l - cp gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def -15.00 15.00 sc P21 [16 0 0 -8 165.00 288.00] PATmp PATsp ef gr PATusp gs col0 s gr -% Polyline -n 2565 4320 m 2520 4320 l 2520 4860 l 2565 4860 l - cp gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def -15.00 15.00 sc P21 [16 0 0 -8 168.00 288.00] PATmp PATsp ef gr PATusp gs col0 s gr -% Polyline -n 2610 4320 m 2565 4320 l 2565 4860 l 2610 4860 l - cp gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def -15.00 15.00 sc P21 [16 0 0 -8 171.00 288.00] PATmp PATsp ef gr PATusp gs col0 s gr -% Polyline -n 2655 4320 m 2610 4320 l 2610 4860 l 2655 4860 l - cp gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def -15.00 15.00 sc P21 [16 0 0 -8 174.00 288.00] PATmp PATsp ef gr PATusp gs col0 s gr -% Polyline -n 2970 4320 m 2655 4320 l 2655 4860 l 2970 4860 l - cp gs /PC [[0.82 0.00 0.00] [0.00 0.00 0.00]] def -15.00 15.00 sc P6 [16 0 0 -16 177.00 288.00] PATmp PATsp ef gr PATusp gs col0 s gr -% Polyline -gs clippath -3165 4627 m 3165 4552 l 3050 4552 l 3140 4590 l 3050 4627 l cp -2775 4552 m 2775 4627 l 2890 4627 l 2800 4590 l 2890 4552 l cp -eoclip -n 2790 4590 m - 3150 4590 l gs col0 s gr gr - -% arrowhead -n 2890 4552 m 2800 4590 l 2890 4627 l 2890 4552 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 3050 4627 m 3140 4590 l 3050 4552 l 3050 4627 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 2970 4320 m 5580 4320 l 5580 4860 l 2970 4860 l - cp gs col0 s gr -% Polyline -n 3150 4320 m - 3150 4860 l gs col0 s gr -% Polyline -n 3330 4320 m - 3330 4860 l gs col0 s gr -% Polyline -n 3510 4320 m - 3510 4860 l gs col0 s gr -% Polyline -n 3690 4320 m - 3690 4860 l gs col0 s gr -% Polyline -n 3870 4320 m - 3870 4860 l gs col0 s gr -% Polyline -n 4050 4320 m - 4050 4860 l gs col0 s gr -% Polyline -n 4230 4320 m - 4230 4860 l gs col0 s gr -% Polyline -n 5400 4320 m - 5400 4860 l gs col0 s gr -% Polyline -n 5220 4320 m - 5220 4860 l gs col0 s gr -% Polyline -n 5040 4320 m - 5040 4860 l gs col0 s gr -% Polyline -n 4860 4320 m - 4860 4860 l gs col0 s gr -/Times-Italic ff 135.00 scf sf -2160 3510 m -gs 1 -1 sc (CTRL) col0 sh gr -/Times-BoldItalic ff 150.00 scf sf -4140 3420 m -gs 1 -1 sc (...) col0 sh gr -/Times-Italic ff 135.00 scf sf -2700 3510 m -gs 1 -1 sc (DATA) col0 sh gr -/Times-BoldItalic ff 150.00 scf sf -1980 3330 m -gs 1 -1 sc (stream 1) col0 sh gr -/Times-BoldItalic ff 150.00 scf sf -5130 3330 m -gs 1 -1 sc (stream N) col0 sh gr -/Times-Roman ff 180.00 scf sf -4500 1890 m -gs 1 -1 sc (...) col0 sh gr -/Times-BoldItalic ff 180.00 scf sf -3375 495 m -gs 1 -1 sc (Destinations) col0 sh gr -/Times-BoldItalic ff 180.00 scf sf -1935 1980 m -gs 1 -1 sc 90.0 rot (Priotiy Queues) col0 sh gr -/Times-BoldItalic ff 180.00 scf sf -2160 2835 m -gs 1 -1 sc (Opportunistic Scheduling & Channel Coding) col0 sh gr -/Times-BoldItalic ff 180.00 scf sf -2520 3060 m -gs 1 -1 sc (Symbol/Slot/Carrier/Antenna MUX) col0 sh gr -/Times-BoldItalic ff 180.00 scf sf -3420 3780 m -gs 1 -1 sc (OFDM\(A\)) col0 sh gr -/Times-BoldItalic ff 150.00 scf sf -3645 5130 m -gs 1 -1 sc (Frame) col0 sh gr -/Times-Roman ff 180.00 scf sf -4545 4635 m -gs 1 -1 sc (...) col0 sh gr -/Times-BoldItalic ff 150.00 scf sf -2340 4275 m -gs 1 -1 sc (MCH) col1 sh gr -/Times-BoldItalic ff 150.00 scf sf -1980 4275 m -gs 1 -1 sc (BCH ) col12 sh gr -/Times-BoldItalic ff 150.00 scf sf -4410 4230 m -gs 1 -1 sc (SACH) col0 sh gr -/Times-BoldItalic ff 150.00 scf sf -2700 4275 m -gs 1 -1 sc (RACH) col20 sh gr -% here ends figure; -$F2psEnd -rs -end -showpage diff --git a/openair2/DOCS/DOXYGEN/images/macphynet.png b/openair2/DOCS/DOXYGEN/images/macphynet.png deleted file mode 100644 index 96a68eb118..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/macphynet.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/mesh_frame.pdf b/openair2/DOCS/DOXYGEN/images/mesh_frame.pdf deleted file mode 100644 index 2275fcad19..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/mesh_frame.pdf and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/mesh_topology.pdf b/openair2/DOCS/DOXYGEN/images/mesh_topology.pdf deleted file mode 100644 index 98b4d82fcd..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/mesh_topology.pdf and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/mesh_topology_small.png b/openair2/DOCS/DOXYGEN/images/mesh_topology_small.png deleted file mode 100644 index 960fd9ae42..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/mesh_topology_small.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/scrambler.png b/openair2/DOCS/DOXYGEN/images/scrambler.png deleted file mode 100644 index 2401a522bc..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/scrambler.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/scrambler.vsd b/openair2/DOCS/DOXYGEN/images/scrambler.vsd deleted file mode 100644 index 882df69a82..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/scrambler.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/w3g4f_framing.png b/openair2/DOCS/DOXYGEN/images/w3g4f_framing.png deleted file mode 100644 index fc9c4266e7..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/w3g4f_framing.png and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd b/openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd deleted file mode 100644 index 08c03be0fe..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd and /dev/null differ diff --git a/openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd b/openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd deleted file mode 100644 index e0fb826f00..0000000000 Binary files a/openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd and /dev/null differ diff --git a/openair2/DOCS/Documentation/flow.txt b/openair2/DOCS/Documentation/flow.txt deleted file mode 100644 index 3656ecf265..0000000000 --- a/openair2/DOCS/Documentation/flow.txt +++ /dev/null @@ -1,15 +0,0 @@ -Entry point openair2/SIMULATION/USER_TOOLS/LAYER2_SIM/mac_sim.c - -1. endless loop calling each frame/TTI - - a) macphy_scheduler (invokes MAC/RRC/PDCP/RLC protocols and generates TX/RX commands for PHY/Emul) : - [ see openair2/LAYER2/MAC/layer2_scheduler.c for how these are all scheduled] - - b) emul_rx_tx() (emulates PHY and stimulates PDU transport mechanisms (ethernet or memory transfer) - contains abstraction layer, channel simulation, etc. - [ openair2/LAYER2/SIMULATION/PHY_EMULATION/CONTROL/phy_emulation.c ] - b1) rx local chbch processing (i.e. from CH on the same physical machine) - b2) rx local sach ul/dl processing - b3) rx ethernet data (both chbch and sach ul/dl) - b4) measurement-related stuff - ] \ No newline at end of file diff --git a/openair2/DOCS/TEMPLATES/CODE/Doxyfile b/openair2/DOCS/TEMPLATES/CODE/Doxyfile deleted file mode 100644 index 131b032fb4..0000000000 --- a/openair2/DOCS/TEMPLATES/CODE/Doxyfile +++ /dev/null @@ -1,231 +0,0 @@ -# Doxyfile 1.5.3 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -DOXYFILE_ENCODING = UTF-8 -PROJECT_NAME = OpenAirInterface -PROJECT_NUMBER = V1.0 -OUTPUT_DIRECTORY = -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = NO -QT_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = NO -INHERIT_DOCS = YES -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -BUILTIN_STL_SUPPORT = NO -CPP_CLI_SUPPORT = NO -DISTRIBUTE_GROUP_DOC = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = NO -EXTRACT_PRIVATE = NO -EXTRACT_STATIC = NO -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -EXTRACT_ANON_NSPACES = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -SHOW_DIRECTORIES = NO -FILE_VERSION_FILTER = -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = example_doxy.h -INPUT_ENCODING = UTF-8 -FILE_PATTERNS = -RECURSIVE = NO -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = images/ -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = NO -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -REFERENCES_LINK_SOURCE = YES -USE_HTAGS = NO -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -HTML_DYNAMIC_SECTIONS = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = YES -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = YES -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -MSCGEN_PATH = -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO -CALLER_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -DOT_PATH = /usr/bin/dot -DOTFILE_DIRS = -DOT_GRAPH_MAX_NODES = 50 -MAX_DOT_GRAPH_DEPTH = 0 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO diff --git a/openair2/DOCS/TEMPLATES/CODE/example_doxy.h b/openair2/DOCS/TEMPLATES/CODE/example_doxy.h deleted file mode 100644 index 30d8ddb600..0000000000 --- a/openair2/DOCS/TEMPLATES/CODE/example_doxy.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*! \file doxy_template.h -* \brief explain how this block is organized, and how it works -* \author Navid Nikaein -* \date 2006-2010 -* \version 4.0 -* \company Eurecom -* \email: navid.nikaein@eurecom.fr -* \note this a note -* \bug this is a bug -* \warning this is a warning -*/ - -#ifndef __DOCS_TEMPLATES_CODE_EXAMPLE_DOXY__H__ -#define __DOCS_TEMPLATES_CODE_EXAMPLE_DOXY__H__ - -//-----------------------------------begin group----------------------------- - - -/** @defgroup _oai System definitions - - - -There is different modules: -- OAI Address -- OAI Components -- \ref _frame - -The following diagram is based on graphviz (http://www.graphviz.org/), you need to install the package to view the diagram. - - * \dot - * digraph group_frame { - * node [shape=rect, fontname=Helvetica, fontsize=8,style=filled,fillcolor=lightgrey]; - * a [ label = " address"]; - * b [ label = " component"]; - * c [ label = " frame",URL="\ref _frame"]; - * a->b; - * a->c; - * b->d; - * label="Architecture" - * - * } - * \enddot - -\section _doxy Doxygen Help -You can use the provided Doxyfile as the configuration file or alternatively run "doxygen -g Doxyfile" to generat the file. -You need at least to set the some variables in the Doxyfile including "PROJECT_NAME","PROJECT_NUMBER","INPUT","IMAGE_PATH". -Doxygen help and commands can be found at http://www.stack.nl/~dimitri/doxygen/commands.html#cmdprotocol - -\section _arch Architecture - -You need to set the IMAGE_PATH in your Doxyfile - -\image html arch.png "Architecture" -\image latex arch.eps "Architecture" - -\subsection _mac MAC -thisis the mac -\subsection _rlc RLC -this is the rlc -\subsection _impl Implementation -what about the implementation - - -*@{*/ - -/*!\brief OAI protocol verion */ -#define OAI_PROTOCOL_Version 0x00 -/*!\brief Length in bytes of the OAI address */ -#define OAI_ADDR_LEN 6 - -/*!\brief OAI snode type */ -enum NodeType { - /*!\brief mesh routers are */ - meshrouter = 1, - /*!\brief relay nodes are */ - relaynode = 2, - /*!\brief clusterheads are */ - clusterhead = 3 -}; - - -/*@}*/ - -// --------------------------end group ------------------------------ - - -//---------------------------begin group------------------------------ -/** @defgroup _frame Frame Structure - * @ingroup _oai -The Frame is composed of .... - - -*@{*/ -/*! \brief the frame structure is ... */ -struct frame { - u_short duration; /*!< \brief Duration in us (2 bytes) */ - u_char da[OAI_ADDR_LEN];/*!< \brief Destination MAC@ (OAI_ADDR_LEN bytes) */ - u_char sa[OAI_ADDR_LEN];/*!< \brief Source MAC@ (OAI_ADDR_LEN bytes)*/ - u_char body[0]; /*!< \brief Body of the frame */ -}; -/*! \brief Broadcast ID is ... */ -#define BROADCAST_ID 15 - - -/*@}*/ - -//--------------------------end group----------------------- - - -//-----------------------begin func proto------------------- - -/*! \fn int init(int,int) -* \brief this function initializes and allocates memories and etc. -* \param[in] src the memory area to copy frrm -* \param[out] dst the memory area to copy to -* \return 0 on success, otherwise -1 -* \note -* @ingroup _oai -*/ -int init(int src, int dst); - -//-----------------------end func proto------------------- -#endif diff --git a/openair2/DOCS/TEMPLATES/CODE/images/arch.eps b/openair2/DOCS/TEMPLATES/CODE/images/arch.eps deleted file mode 100644 index a64e194fdb..0000000000 --- a/openair2/DOCS/TEMPLATES/CODE/images/arch.eps +++ /dev/null @@ -1,785 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: /homes/nikaeinn/templates/dev/arch.dia -%%Creator: Dia v0.95 -%%CreationDate: Fri Dec 11 12:31:01 2009 -%%For: nikaeinn -%%Orientation: Portrait -%%Magnification: 1.0000 -%%BoundingBox: 0 0 355 138 -%%BeginSetup -%%EndSetup -%%EndComments -%%BeginProlog -[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright -/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one -/two /three /four /five /six /seven /eight /nine /colon /semicolon -/less /equal /greater /question /at /A /B /C /D /E -/F /G /H /I /J /K /L /M /N /O -/P /Q /R /S /T /U /V /W /X /Y -/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c -/d /e /f /g /h /i /j /k /l /m -/n /o /p /q /r /s /t /u /v /w -/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright -/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior -/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf -/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla -/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde -/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex -/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring -/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis -/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave -/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def -/cp {closepath} bind def -/c {curveto} bind def -/f {fill} bind def -/a {arc} bind def -/ef {eofill} bind def -/ex {exch} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth pop} bind def -/tr {translate} bind def - -/ellipsedict 8 dict def -ellipsedict /mtrx matrix put -/ellipse -{ ellipsedict begin - /endangle exch def - /startangle exch def - /yrad exch def - /xrad exch def - /y exch def - /x exch def /savematrix mtrx currentmatrix def - x y tr xrad yrad sc - 0 0 1 startangle endangle arc - savematrix setmatrix - end -} def - -/mergeprocs { -dup length -3 -1 roll -dup -length -dup -5 1 roll -3 -1 roll -add -array cvx -dup -3 -1 roll -0 exch -putinterval -dup -4 2 roll -putinterval -} bind def -/dpi_x 300 def -/dpi_y 300 def -/conicto { - /to_y exch def - /to_x exch def - /conic_cntrl_y exch def - /conic_cntrl_x exch def - currentpoint - /p0_y exch def - /p0_x exch def - /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def - /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def - /p2_x p1_x to_x p0_x sub 1 3 div mul add def - /p2_y p1_y to_y p0_y sub 1 3 div mul add def - p1_x p1_y p2_x p2_y to_x to_y curveto -} bind def -/start_ol { gsave 1.1 dpi_x div dup scale} bind def -/end_ol { closepath fill grestore } bind def -28.346000 -28.346000 scale --4.400000 -8.150000 translate -%%EndProlog - - -1.000000 1.000000 1.000000 srgb -n 4.450000 3.350000 m 4.450000 8.100000 l 16.850000 8.100000 l 16.850000 3.350000 l f -0.100000 slw -[] 0 sd -[] 0 sd -0 slj -0.000000 0.000000 0.000000 srgb -n 4.450000 3.350000 m 4.450000 8.100000 l 16.850000 8.100000 l 16.850000 3.350000 l cp s -gsave 8.875000 4.300000 translate 0.035278 -0.035278 scale -start_ol -1762 3044 moveto -1276 3044 990 2673 conicto -704 2303 704 1663 conicto -704 1025 990 654 conicto -1276 284 1762 284 conicto -2248 284 2532 654 conicto -2816 1025 2816 1663 conicto -2816 2303 2532 2673 conicto -2248 3044 1762 3044 conicto -1762 3392 moveto -2446 3392 2855 2922 conicto -3264 2453 3264 1664 conicto -3264 876 2855 406 conicto -2446 -64 1762 -64 conicto -1077 -64 666 405 conicto -256 874 256 1664 conicto -256 2453 666 2922 conicto -1077 3392 1762 3392 conicto -end_ol grestore -gsave 9.330083 4.300000 translate 0.035278 -0.035278 scale -start_ol -1536 2838 moveto -935 1180 lineto -2140 1180 lineto -1536 2838 lineto -1286 3282 moveto -1789 3282 lineto -3038 0 lineto -2577 0 lineto -2278 832 lineto -801 832 lineto -503 0 lineto -35 0 lineto -1286 3282 lineto -end_ol grestore -gsave 9.736483 4.300000 translate 0.035278 -0.035278 scale -start_ol -448 3328 moveto -874 3328 lineto -874 0 lineto -448 0 lineto -448 3328 lineto -end_ol grestore -gsave 9.914283 4.300000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 10.100550 4.300000 translate 0.035278 -0.035278 scale -start_ol -1536 2838 moveto -935 1180 lineto -2140 1180 lineto -1536 2838 lineto -1286 3282 moveto -1789 3282 lineto -3038 0 lineto -2577 0 lineto -2278 832 lineto -801 832 lineto -503 0 lineto -35 0 lineto -1286 3282 lineto -end_ol grestore -gsave 10.506950 4.300000 translate 0.035278 -0.035278 scale -start_ol -1842 2133 moveto -1776 2174 1696 2193 conicto -1616 2212 1519 2212 conicto -1177 2212 993 1983 conicto -810 1755 810 1328 conicto -810 0 lineto -384 0 lineto -384 2496 lineto -810 2496 lineto -810 2129 lineto -937 2347 1141 2453 conicto -1345 2560 1638 2560 conicto -1680 2560 1730 2554 conicto -1781 2548 1842 2536 conicto -1842 2133 lineto -end_ol grestore -gsave 10.752483 4.300000 translate 0.035278 -0.035278 scale -start_ol -2176 2404 moveto -2176 2020 lineto -2008 2116 1838 2164 conicto -1669 2212 1496 2212 conicto -1109 2212 895 1958 conicto -682 1705 682 1248 conicto -682 791 895 537 conicto -1109 284 1496 284 conicto -1669 284 1838 332 conicto -2008 380 2176 476 conicto -2176 97 lineto -2009 17 1830 -23 conicto -1652 -64 1449 -64 conicto -902 -64 579 291 conicto -256 646 256 1248 conicto -256 1859 582 2209 conicto -909 2560 1476 2560 conicto -1660 2560 1835 2521 conicto -2011 2482 2176 2404 conicto -end_ol grestore -gsave 11.074217 4.300000 translate 0.035278 -0.035278 scale -start_ol -2474 1509 moveto -2474 0 lineto -2048 0 lineto -2048 1502 lineto -2048 1858 1913 2035 conicto -1778 2212 1509 2212 conicto -1185 2212 997 1999 conicto -810 1786 810 1419 conicto -810 0 lineto -384 0 lineto -384 3456 lineto -810 3456 lineto -810 2120 lineto -954 2343 1152 2451 conicto -1350 2560 1609 2560 conicto -2037 2560 2255 2293 conicto -2474 2027 2474 1509 conicto -end_ol grestore -1.000000 1.000000 1.000000 srgb -n 4.900000 6.250000 m 4.900000 7.500000 l 8.250000 7.500000 l 8.250000 6.250000 l f -0.100000 slw -[] 0 sd -[] 0 sd -0 slj -0.000000 0.000000 0.000000 srgb -n 4.900000 6.250000 m 4.900000 7.500000 l 8.250000 7.500000 l 8.250000 6.250000 l cp s -1.000000 1.000000 1.000000 srgb -n 8.900000 6.200000 m 8.900000 7.495000 l 12.500000 7.495000 l 12.500000 6.200000 l f -0.100000 slw -[] 0 sd -[] 0 sd -0 slj -0.000000 0.000000 0.000000 srgb -n 8.900000 6.200000 m 8.900000 7.495000 l 12.500000 7.495000 l 12.500000 6.200000 l cp s -1.000000 1.000000 1.000000 srgb -n 13.090000 6.195000 m 13.090000 7.495000 l 16.400000 7.495000 l 16.400000 6.195000 l f -0.100000 slw -[] 0 sd -[] 0 sd -0 slj -0.000000 0.000000 0.000000 srgb -n 13.090000 6.195000 m 13.090000 7.495000 l 16.400000 7.495000 l 16.400000 6.195000 l cp s -gsave 5.400000 7.100000 translate 0.035278 -0.035278 scale -start_ol -1536 2838 moveto -935 1180 lineto -2140 1180 lineto -1536 2838 lineto -1286 3282 moveto -1789 3282 lineto -3038 0 lineto -2577 0 lineto -2278 832 lineto -801 832 lineto -503 0 lineto -35 0 lineto -1286 3282 lineto -end_ol grestore -gsave 5.795817 7.100000 translate 0.035278 -0.035278 scale -start_ol -2048 2116 moveto -2048 3456 lineto -2474 3456 lineto -2474 0 lineto -2048 0 lineto -2048 380 lineto -1922 154 1727 45 conicto -1533 -64 1261 -64 conicto -816 -64 536 297 conicto -256 659 256 1248 conicto -256 1837 536 2198 conicto -816 2560 1260 2560 conicto -1532 2560 1726 2450 conicto -1921 2341 2048 2116 conicto -682 1248 moveto -682 798 864 541 conicto -1046 284 1364 284 conicto -1683 284 1865 541 conicto -2048 798 2048 1248 conicto -2048 1699 1865 1955 conicto -1683 2212 1364 2212 conicto -1046 2212 864 1955 conicto -682 1699 682 1248 conicto -end_ol grestore -gsave 6.176817 7.100000 translate 0.035278 -0.035278 scale -start_ol -2048 2116 moveto -2048 3456 lineto -2474 3456 lineto -2474 0 lineto -2048 0 lineto -2048 380 lineto -1922 154 1727 45 conicto -1533 -64 1261 -64 conicto -816 -64 536 297 conicto -256 659 256 1248 conicto -256 1837 536 2198 conicto -816 2560 1260 2560 conicto -1532 2560 1726 2450 conicto -1921 2341 2048 2116 conicto -682 1248 moveto -682 798 864 541 conicto -1046 284 1364 284 conicto -1683 284 1865 541 conicto -2048 798 2048 1248 conicto -2048 1699 1865 1955 conicto -1683 2212 1364 2212 conicto -1046 2212 864 1955 conicto -682 1699 682 1248 conicto -end_ol grestore -gsave 6.557817 7.100000 translate 0.035278 -0.035278 scale -start_ol -1842 2133 moveto -1776 2174 1696 2193 conicto -1616 2212 1519 2212 conicto -1177 2212 993 1983 conicto -810 1755 810 1328 conicto -810 0 lineto -384 0 lineto -384 2496 lineto -810 2496 lineto -810 2129 lineto -937 2347 1141 2453 conicto -1345 2560 1638 2560 conicto -1680 2560 1730 2554 conicto -1781 2548 1842 2536 conicto -1842 2133 lineto -end_ol grestore -gsave 6.790121 7.100000 translate 0.035278 -0.035278 scale -start_ol -2538 1329 moveto -2538 1124 lineto -682 1124 lineto -682 714 908 499 conicto -1134 284 1537 284 conicto -1772 284 1991 340 conicto -2211 396 2432 509 conicto -2432 128 lineto -2216 34 1988 -15 conicto -1760 -64 1526 -64 conicto -940 -64 598 284 conicto -256 633 256 1226 conicto -256 1839 582 2199 conicto -909 2560 1463 2560 conicto -1960 2560 2249 2229 conicto -2538 1898 2538 1329 conicto -2112 1472 moveto -2112 1809 1931 2010 conicto -1751 2212 1453 2212 conicto -1116 2212 914 2018 conicto -712 1824 682 1472 conicto -2112 1472 lineto -end_ol grestore -gsave 7.154187 7.100000 translate 0.035278 -0.035278 scale -start_ol -2021 2424 moveto -2021 2034 lineto -1818 2123 1638 2167 conicto -1459 2212 1267 2212 conicto -975 2212 828 2119 conicto -682 2026 682 1838 conicto -682 1696 784 1615 conicto -887 1535 1196 1461 conicto -1327 1430 lineto -1748 1337 1930 1166 conicto -2112 995 2112 690 conicto -2112 342 1839 139 conicto -1566 -64 1089 -64 conicto -891 -64 675 -25 conicto -460 14 222 94 conicto -222 519 lineto -481 402 692 343 conicto -903 284 1110 284 conicto -1387 284 1536 383 conicto -1686 482 1686 661 conicto -1686 829 1580 917 conicto -1475 1006 1118 1088 conicto -985 1121 lineto -620 1201 438 1367 conicto -256 1533 256 1823 conicto -256 2176 507 2368 conicto -758 2560 1219 2560 conicto -1448 2560 1649 2526 conicto -1851 2492 2021 2424 conicto -end_ol grestore -gsave 7.458988 7.100000 translate 0.035278 -0.035278 scale -start_ol -2021 2424 moveto -2021 2034 lineto -1818 2123 1638 2167 conicto -1459 2212 1267 2212 conicto -975 2212 828 2119 conicto -682 2026 682 1838 conicto -682 1696 784 1615 conicto -887 1535 1196 1461 conicto -1327 1430 lineto -1748 1337 1930 1166 conicto -2112 995 2112 690 conicto -2112 342 1839 139 conicto -1566 -64 1089 -64 conicto -891 -64 675 -25 conicto -460 14 222 94 conicto -222 519 lineto -481 402 692 343 conicto -903 284 1110 284 conicto -1387 284 1536 383 conicto -1686 482 1686 661 conicto -1686 829 1580 917 conicto -1475 1006 1118 1088 conicto -985 1121 lineto -620 1201 438 1367 conicto -256 1533 256 1823 conicto -256 2176 507 2368 conicto -758 2560 1219 2560 conicto -1448 2560 1649 2526 conicto -1851 2492 2021 2424 conicto -end_ol grestore -gsave 9.020000 7.095000 translate 0.035278 -0.035278 scale -start_ol -2880 3094 moveto -2880 2615 lineto -2656 2831 2402 2937 conicto -2149 3044 1864 3044 conicto -1301 3044 1002 2689 conicto -704 2334 704 1663 conicto -704 993 1002 638 conicto -1301 284 1864 284 conicto -2149 284 2402 390 conicto -2656 497 2880 713 conicto -2880 238 lineto -2649 87 2390 11 conicto -2132 -64 1845 -64 conicto -1106 -64 681 399 conicto -256 863 256 1664 conicto -256 2466 681 2929 conicto -1106 3392 1845 3392 conicto -2137 3392 2395 3317 conicto -2654 3243 2880 3094 conicto -end_ol grestore -gsave 9.434867 7.095000 translate 0.035278 -0.035278 scale -start_ol -1377 2212 moveto -1055 2212 868 1954 conicto -682 1696 682 1248 conicto -682 800 867 542 conicto -1053 284 1377 284 conicto -1697 284 1883 543 conicto -2070 802 2070 1248 conicto -2070 1692 1883 1952 conicto -1697 2212 1377 2212 conicto -1376 2560 moveto -1899 2560 2197 2212 conicto -2496 1864 2496 1248 conicto -2496 635 2197 285 conicto -1899 -64 1376 -64 conicto -851 -64 553 285 conicto -256 635 256 1248 conicto -256 1864 553 2212 conicto -851 2560 1376 2560 conicto -end_ol grestore -gsave 9.798933 7.095000 translate 0.035278 -0.035278 scale -start_ol -2339 2028 moveto -2493 2302 2705 2431 conicto -2918 2560 3204 2560 conicto -3591 2560 3800 2286 conicto -4010 2013 4010 1509 conicto -4010 0 lineto -3584 0 lineto -3584 1502 lineto -3584 1862 3460 2037 conicto -3336 2212 3082 2212 conicto -2771 2212 2590 1999 conicto -2410 1786 2410 1419 conicto -2410 0 lineto -1984 0 lineto -1984 1502 lineto -1984 1865 1860 2038 conicto -1736 2212 1477 2212 conicto -1171 2212 990 1998 conicto -810 1784 810 1419 conicto -810 0 lineto -384 0 lineto -384 2496 lineto -810 2496 lineto -810 2120 lineto -947 2344 1141 2452 conicto -1335 2560 1602 2560 conicto -1871 2560 2060 2423 conicto -2249 2287 2339 2028 conicto -end_ol grestore -gsave 10.383133 7.095000 translate 0.035278 -0.035278 scale -start_ol -810 380 moveto -810 -960 lineto -384 -960 lineto -384 2496 lineto -810 2496 lineto -810 2116 lineto -937 2339 1131 2449 conicto -1325 2560 1595 2560 conicto -2042 2560 2322 2198 conicto -2602 1837 2602 1248 conicto -2602 659 2322 297 conicto -2043 -64 1595 -64 conicto -1325 -64 1131 45 conicto -938 155 810 380 conicto -2176 1248 moveto -2176 1699 1994 1955 conicto -1812 2212 1493 2212 conicto -1175 2212 992 1955 conicto -810 1699 810 1248 conicto -810 798 992 541 conicto -1175 284 1493 284 conicto -1812 284 1994 541 conicto -2176 798 2176 1248 conicto -end_ol grestore -gsave 10.755667 7.095000 translate 0.035278 -0.035278 scale -start_ol -1377 2212 moveto -1055 2212 868 1954 conicto -682 1696 682 1248 conicto -682 800 867 542 conicto -1053 284 1377 284 conicto -1697 284 1883 543 conicto -2070 802 2070 1248 conicto -2070 1692 1883 1952 conicto -1697 2212 1377 2212 conicto -1376 2560 moveto -1899 2560 2197 2212 conicto -2496 1864 2496 1248 conicto -2496 635 2197 285 conicto -1899 -64 1376 -64 conicto -851 -64 553 285 conicto -256 635 256 1248 conicto -256 1864 553 2212 conicto -851 2560 1376 2560 conicto -end_ol grestore -gsave 11.119733 7.095000 translate 0.035278 -0.035278 scale -start_ol -2474 1509 moveto -2474 0 lineto -2048 0 lineto -2048 1502 lineto -2048 1858 1913 2035 conicto -1778 2212 1509 2212 conicto -1185 2212 997 1999 conicto -810 1786 810 1419 conicto -810 0 lineto -384 0 lineto -384 2496 lineto -810 2496 lineto -810 2120 lineto -954 2340 1152 2450 conicto -1350 2560 1609 2560 conicto -2037 2560 2255 2293 conicto -2474 2027 2474 1509 conicto -end_ol grestore -gsave 11.500733 7.095000 translate 0.035278 -0.035278 scale -start_ol -2538 1329 moveto -2538 1124 lineto -682 1124 lineto -682 714 908 499 conicto -1134 284 1537 284 conicto -1772 284 1991 340 conicto -2211 396 2432 509 conicto -2432 128 lineto -2216 34 1988 -15 conicto -1760 -64 1526 -64 conicto -940 -64 598 284 conicto -256 633 256 1226 conicto -256 1839 582 2199 conicto -909 2560 1463 2560 conicto -1960 2560 2249 2229 conicto -2538 1898 2538 1329 conicto -2112 1472 moveto -2112 1809 1931 2010 conicto -1751 2212 1453 2212 conicto -1116 2212 914 2018 conicto -712 1824 682 1472 conicto -2112 1472 lineto -end_ol grestore -gsave 11.864800 7.095000 translate 0.035278 -0.035278 scale -start_ol -2474 1509 moveto -2474 0 lineto -2048 0 lineto -2048 1502 lineto -2048 1858 1913 2035 conicto -1778 2212 1509 2212 conicto -1185 2212 997 1999 conicto -810 1786 810 1419 conicto -810 0 lineto -384 0 lineto -384 2496 lineto -810 2496 lineto -810 2120 lineto -954 2340 1152 2450 conicto -1350 2560 1609 2560 conicto -2037 2560 2255 2293 conicto -2474 2027 2474 1509 conicto -end_ol grestore -gsave 12.245800 7.095000 translate 0.035278 -0.035278 scale -start_ol -832 3213 moveto -832 2524 lineto -1664 2524 lineto -1664 2176 lineto -832 2176 lineto -832 826 lineto -832 521 914 434 conicto -997 348 1249 348 conicto -1664 348 lineto -1664 0 lineto -1242 0 lineto -768 0 587 179 conicto -406 359 406 826 conicto -406 2176 lineto -128 2176 lineto -128 2524 lineto -406 2524 lineto -406 3213 lineto -832 3213 lineto -end_ol grestore -gsave 13.945000 6.995000 translate 0.035278 -0.035278 scale -start_ol -448 3328 moveto -2313 3328 lineto -2313 2980 lineto -874 2980 lineto -874 1948 lineto -2173 1948 lineto -2173 1600 lineto -874 1600 lineto -874 27 lineto -448 27 lineto -448 3328 lineto -end_ol grestore -gsave 14.239614 6.995000 translate 0.035278 -0.035278 scale -start_ol -1842 2133 moveto -1776 2174 1696 2193 conicto -1616 2212 1519 2212 conicto -1177 2212 993 1983 conicto -810 1755 810 1328 conicto -810 0 lineto -384 0 lineto -384 2496 lineto -810 2496 lineto -810 2129 lineto -937 2347 1141 2453 conicto -1345 2560 1638 2560 conicto -1680 2560 1730 2554 conicto -1781 2548 1842 2536 conicto -1842 2133 lineto -end_ol grestore -gsave 14.485147 6.995000 translate 0.035278 -0.035278 scale -start_ol -1528 1252 moveto -1050 1252 866 1139 conicto -682 1026 682 754 conicto -682 538 820 411 conicto -958 284 1196 284 conicto -1523 284 1721 523 conicto -1920 763 1920 1161 conicto -1920 1252 lineto -1528 1252 lineto -2346 1426 moveto -2346 0 lineto -1920 0 lineto -1920 383 lineto -1785 154 1579 45 conicto -1374 -64 1076 -64 conicto -701 -64 478 154 conicto -256 373 256 739 conicto -256 1166 543 1383 conicto -830 1600 1367 1600 conicto -1920 1600 lineto -1920 1639 lineto -1920 1913 1740 2062 conicto -1561 2212 1238 2212 conicto -1032 2212 836 2162 conicto -641 2113 448 2014 conicto -448 2386 lineto -670 2473 879 2516 conicto -1088 2560 1285 2560 conicto -1819 2560 2082 2279 conicto -2346 1998 2346 1426 conicto -end_ol grestore -gsave 14.849214 6.995000 translate 0.035278 -0.035278 scale -start_ol -2339 2028 moveto -2493 2302 2705 2431 conicto -2918 2560 3204 2560 conicto -3591 2560 3800 2286 conicto -4010 2013 4010 1509 conicto -4010 0 lineto -3584 0 lineto -3584 1502 lineto -3584 1862 3460 2037 conicto -3336 2212 3082 2212 conicto -2771 2212 2590 1999 conicto -2410 1786 2410 1419 conicto -2410 0 lineto -1984 0 lineto -1984 1502 lineto -1984 1865 1860 2038 conicto -1736 2212 1477 2212 conicto -1171 2212 990 1998 conicto -810 1784 810 1419 conicto -810 0 lineto -384 0 lineto -384 2496 lineto -810 2496 lineto -810 2120 lineto -947 2344 1141 2452 conicto -1335 2560 1602 2560 conicto -1871 2560 2060 2423 conicto -2249 2287 2339 2028 conicto -end_ol grestore -gsave 15.433414 6.995000 translate 0.035278 -0.035278 scale -start_ol -2538 1329 moveto -2538 1124 lineto -682 1124 lineto -682 714 908 499 conicto -1134 284 1537 284 conicto -1772 284 1991 340 conicto -2211 396 2432 509 conicto -2432 128 lineto -2216 34 1988 -15 conicto -1760 -64 1526 -64 conicto -940 -64 598 284 conicto -256 633 256 1226 conicto -256 1839 582 2199 conicto -909 2560 1463 2560 conicto -1960 2560 2249 2229 conicto -2538 1898 2538 1329 conicto -2112 1472 moveto -2112 1809 1931 2010 conicto -1751 2212 1453 2212 conicto -1116 2212 914 2018 conicto -712 1824 682 1472 conicto -2112 1472 lineto -end_ol grestore -showpage diff --git a/openair2/DOCS/TEMPLATES/CODE/images/arch.png b/openair2/DOCS/TEMPLATES/CODE/images/arch.png deleted file mode 100644 index 24741b93ef..0000000000 Binary files a/openair2/DOCS/TEMPLATES/CODE/images/arch.png and /dev/null differ diff --git a/openair2/DOCS/TEMPLATES/README/Readme.doxy b/openair2/DOCS/TEMPLATES/README/Readme.doxy deleted file mode 100644 index c87289d678..0000000000 --- a/openair2/DOCS/TEMPLATES/README/Readme.doxy +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*! \file Readme.doxy -* \brief explain how this block is organized, and how it works -* \author Navid Nikaein -* \date 2009 -* \version 0.1 -* \company Eurecom -* \email: navid.nikaein@eurecom.fr -* \warning -*/ - -/*! \mainpage Table of contents - -The content of this readme is the following: - - -# What is this block about in OpenAirInterface - -# Folders and files description - -# Organization of the folders and their dependancies - -# Makefile targets and how to build - -# How to use through a tutorial: run a simple experimentation - - -\section _block What is this block about in OpenAirInterface ? - - - It essentially means "the hardware part" located at openair0. - - Explain through the figures: - \image html image.png "caption" width=3cm - \image latex image.pdf "caption" - - More information about ??? can be found on the Twiki: - https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/WebHome - - -\section _folders Folders and files description - -The structure is the following: - - -
File/Folder Description
- -- Folder1: Contains this and that -- Folder2: Contains this and that -- init.bash: A simple script file, that any user SHOULD source from its environment personal set-up script (this is typically ~/.bashrc) by adding the following lines to it: - This is my ~/.bashrc file or equivalent export OPENAIRX=path/to/my/openairX/folder source $OPENAIRX/init.bash. The file includes variable definitions & path settings to access softwares, sources & Makefiles, software distribution in openair, and so on. - - -YOU DEFINETELY NEED TO SOURCE THIS FILE. Description - -\section _organization Organization of the folders and their dependancies - - - The 3 folders have the following structures - - - Folder1/subfolder1/: contains any ressource related to the design - - - Folder2/subfolder2/: contains - - - Folder2/src/ - - - Folder2/lib/ - - - Folder2/bin/ - - Explain where are the source files. - Explain the relationship with other Blocks. - - -\section _makefile Makefile targets and how to build - - Explain whether you are using symbolic links or not, - how to backup/archive - how to generate the tags - how to print the vars - how to create the documentation - -\section _howto How to use through a tutorial: run a simple experimentation - ... - - -*/ - diff --git a/openair2/DOCS/TEMPLATES/README/readme.txt b/openair2/DOCS/TEMPLATES/README/readme.txt deleted file mode 100644 index f31f7cd30e..0000000000 --- a/openair2/DOCS/TEMPLATES/README/readme.txt +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*________________________OEPNAIR/OPENAIR0/________________________ - - File : Readme.txt - Authors : navid nikaein - Company : EURECOM - Emails : navid.nikaein@eurecom.fr -________________________________________________________________*/ - - -------------------------- -Table of contents -------------------------- - -The content of this readme is the following: - - 1) What is this block about in OpenAirInterface - 2) Folders and files description - 3) Organization of the folders and their dependancies - 4) Makefile targets and how to build - 5) How to use through a tutorial: run a simple experimentation - ------------------------------------------------- -1) What is this block about in OpenAirInterface ? ------------------------------------------------ - - - It essentially means "the hardware part" located at openair0. - - More information about ??? can be found on the Twiki: - https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/WebHome - ------------------------------------------ -2) Folders and files description ------------------------------------------ - - File/Folder Description - ----------- ----------- - - - Folder1/ contains - - - Folder2/ contains - - - init.bash A simple script file, that any user SHOULD source from - its environment personal set-up script (this is typically ~/.bashrc) - by adding the following lines to it: - - # This is my ~/.bashrc file or equivalent - export OPENAIRX=path/to/my/openairX/folder - source $OPENAIRX/init.bash - - The file includes variable definitions & path settings to - access softwares, sources & Makefiles, software - distribution in openair, and so on. - - YOU DEFINETELY NEED TO SOURCE THIS FILE. - ----------------------------------------------------- -3) Organization of the folders and their dependancies ----------------------------------------------------- - - The 3 folders have the following structures - - - Folder1/subfolder1/ contains any ressource related to the design - - - Folder2/subfolder2/ contains - - - Folder2/src/ - - - Folder2/lib/ - - - Folder2/bin/ - - Explain where are the source files. - Explain the relationship with other Blocks. - - ------------------------------------------ -4) Makefile targets and how to build ------------------------------------------ - - Explain whether you are using symbolic links or not, - how to backup/archive - how to generate the tags - how to print the vars - how to create the documentation - ----------------------------------------------------------------- -6) How to use through a tutorial: run a simple experimentation ----------------------------------------------------------------- - - ... - diff --git a/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c b/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c index 1b448b984f..14bce7f816 100644 --- a/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c +++ b/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c @@ -5364,3 +5364,11 @@ uint16_t nr_get_csi_bitlen(nr_csi_report_t *csi_report_template, uint8_t csi_rep return csi_bitlen; } + +uint16_t compute_PDU_length(uint32_t num_TLV, uint16_t total_length) +{ + uint8_t pdu_length = 8; // 2 bytes PDU_Length + 2 bytes PDU_Index + 4 bytes num_TLV + // For each TLV, add 2 bytes tag + 2 bytes length + value size without padding + pdu_length += (num_TLV * 4) + total_length; + return pdu_length; +} diff --git a/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h b/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h index 3689e4a5a2..d21e441978 100644 --- a/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h +++ b/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h @@ -307,4 +307,6 @@ void compute_csi_bitlen(NR_CSI_MeasConfig_t *csi_MeasConfig, nr_csi_report_t *cs uint16_t nr_get_csi_bitlen(nr_csi_report_t *csi_report_template, uint8_t csi_report_id); +uint16_t compute_PDU_length(uint32_t num_TLV, uint16_t total_length); + #endif diff --git a/openair2/LAYER2/NR_MAC_UE/mac_defs.h b/openair2/LAYER2/NR_MAC_UE/mac_defs.h index 77a9484695..b7e0cbecb6 100644 --- a/openair2/LAYER2/NR_MAC_UE/mac_defs.h +++ b/openair2/LAYER2/NR_MAC_UE/mac_defs.h @@ -469,7 +469,6 @@ typedef struct { /* PDUs */ /// Outgoing CCCH pdu for PHY CCCH_PDU CCCH_pdu; - ULSCH_PDU ulsch_pdu; /* Random Access */ /// CRNTI diff --git a/openair2/LAYER2/NR_MAC_UE/mac_proto.h b/openair2/LAYER2/NR_MAC_UE/mac_proto.h index e85d25ae01..438e2082af 100644 --- a/openair2/LAYER2/NR_MAC_UE/mac_proto.h +++ b/openair2/LAYER2/NR_MAC_UE/mac_proto.h @@ -376,6 +376,8 @@ void set_ra_rnti(NR_UE_MAC_INST_t *mac, fapi_nr_ul_config_prach_pdu *prach_pdu); void nr_Msg1_transmitted(module_id_t mod_id); void nr_Msg3_transmitted(module_id_t mod_id, uint8_t CC_id, frame_t frameP, slot_t slotP, uint8_t gNB_id); +void nr_get_msg3_payload(module_id_t mod_id); +void send_msg3_rrc_request(module_id_t mod_id, int rnti); void nr_ue_msg2_scheduler(module_id_t mod_id, uint16_t rach_frame, uint16_t rach_slot, uint16_t *msg2_frame, uint16_t *msg2_slot); diff --git a/openair2/LAYER2/NR_MAC_UE/main_ue_nr.c b/openair2/LAYER2/NR_MAC_UE/main_ue_nr.c index 40488d458a..b4ec1cb9eb 100644 --- a/openair2/LAYER2/NR_MAC_UE/main_ue_nr.c +++ b/openair2/LAYER2/NR_MAC_UE/main_ue_nr.c @@ -40,10 +40,29 @@ #include "openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.h" #include "nr_rlc/nr_rlc_oai_api.h" #include "RRC/NR/MESSAGES/asn1_msg.h" +#include "RRC/NR_UE/rrc_proto.h" #include static NR_UE_MAC_INST_t *nr_ue_mac_inst; +static void send_srb0_rrc(int rnti, const uint8_t *sdu, sdu_size_t sdu_len, void *data) +{ + AssertFatal(sdu_len > 0 && sdu_len < CCCH_SDU_SIZE, "invalid CCCH SDU size %d\n", sdu_len); + + MessageDef *message_p = itti_alloc_new_message(TASK_MAC_UE, 0, NR_RRC_MAC_CCCH_DATA_IND); + memset(NR_RRC_MAC_CCCH_DATA_IND(message_p).sdu, 0, sdu_len); + memcpy(NR_RRC_MAC_CCCH_DATA_IND(message_p).sdu, sdu, sdu_len); + NR_RRC_MAC_CCCH_DATA_IND(message_p).sdu_size = sdu_len; + NR_RRC_MAC_CCCH_DATA_IND(message_p).rnti = rnti; + itti_send_msg_to_task(TASK_RRC_NRUE, 0, message_p); +} + +void send_msg3_rrc_request(module_id_t mod_id, int rnti) +{ + nr_rlc_activate_srb0(rnti, NULL, send_srb0_rrc); + nr_mac_rrc_msg3_ind(mod_id, rnti); +} + NR_UE_MAC_INST_t * nr_l2_init_ue(NR_UE_RRC_INST_t* rrc_inst) { //LOG_I(MAC, "[MAIN] MAC_INIT_GLOBAL_PARAM IN...\n"); @@ -67,7 +86,9 @@ NR_UE_MAC_INST_t * nr_l2_init_ue(NR_UE_RRC_INST_t* rrc_inst) { if (rrc_inst && rrc_inst->scell_group_config) { nr_rrc_mac_config_req_scg(0, 0, rrc_inst->scell_group_config); - AssertFatal(rlc_module_init(0) == 0, "%s: Could not initialize RLC layer\n", __FUNCTION__); + int rc = rlc_module_init(0); + AssertFatal(rc == 0, "%s: Could not initialize RLC layer\n", __FUNCTION__); + nr_rlc_activate_srb0(nr_ue_mac_inst->crnti, NULL, send_srb0_rrc); if (IS_SOFTMODEM_NOS1){ // get default noS1 configuration NR_RadioBearerConfig_t *rbconfig = NULL; @@ -91,7 +112,8 @@ NR_UE_MAC_INST_t * nr_l2_init_ue(NR_UE_RRC_INST_t* rrc_inst) { else { LOG_I(MAC,"Running without CellGroupConfig\n"); if(get_softmodem_params()->sa == 1) { - AssertFatal(rlc_module_init(0) == 0, "%s: Could not initialize RLC layer\n", __FUNCTION__); + int rc = rlc_module_init(0); + AssertFatal(rc == 0, "%s: Could not initialize RLC layer\n", __FUNCTION__); } } diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c b/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c index 9328d75b37..19c9919f6a 100644 --- a/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c +++ b/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c @@ -605,7 +605,52 @@ void nr_Msg3_transmitted(module_id_t mod_id, uint8_t CC_id, frame_t frameP, slot ra->RA_contention_resolution_timer_active = 1; ra->ra_state = WAIT_CONTENTION_RESOLUTION; +} +void nr_get_msg3_payload(module_id_t mod_id) +{ + NR_UE_MAC_INST_t *mac = get_mac_inst(mod_id); + RA_config_t *ra = &mac->ra; + uint8_t *pdu = mac->CCCH_pdu.payload; + const uint8_t sh_size = sizeof(NR_MAC_SUBHEADER_FIXED); + NR_MAC_SUBHEADER_FIXED *header = (NR_MAC_SUBHEADER_FIXED *) pdu; + pdu += sh_size; + int lcid = 0; // SRB0 for messages sent in MSG3 + tbs_size_t len = mac_rlc_data_req(mod_id, + ra->t_crnti, + 0, + 0, + ENB_FLAG_NO, + MBMS_FLAG_NO, + lcid, + 16, /* size of mac_ce above */ + (char *)pdu, + 0, + 0); + AssertFatal(len > 0, "no data for Msg.3\n"); + // UE Contention Resolution Identity + // Store the first 48 bits belonging to the uplink CCCH SDU within Msg3 to determine whether or not the + // Random Access Procedure has been successful after reception of Msg4 + memcpy(ra->cont_res_id, pdu, sizeof(uint8_t) * 6); + pdu += len; + int Msg3_size = len + sh_size; + // Build header + header->R = 0; + header->LCID = UL_SCH_LCID_CCCH; + const uint8_t TBS_max = 8 + sizeof(NR_MAC_SUBHEADER_SHORT) + sizeof(NR_MAC_SUBHEADER_SHORT); // Note: unclear the reason behind the selection of such TBS_max + // Padding: fill remainder with 0 + if (TBS_max - Msg3_size > 0) { + AssertFatal(TBS_max > Msg3_size, "Allocated resources are not enough for Msg3!\n"); + LOG_D(NR_MAC, "Remaining %d bytes, filling with padding\n",TBS_max - Msg3_size); + ((NR_MAC_SUBHEADER_FIXED *) pdu)->R = 0; + ((NR_MAC_SUBHEADER_FIXED *) pdu)->LCID = UL_SCH_LCID_PADDING; + pdu += sizeof(NR_MAC_SUBHEADER_FIXED); + memset(pdu, 0, TBS_max - Msg3_size - sizeof(NR_MAC_SUBHEADER_FIXED)); + } + // Dumping ULSCH payload + LOG_D(NR_MAC, "Dumping UL Msg3 MAC PDU with length %d: \n", TBS_max); + for(int k = 0; k < TBS_max; k++) + LOG_D(NR_MAC,"(%i): %i\n", k, pdu[k]); } /** @@ -660,47 +705,15 @@ uint8_t nr_ue_get_rach(module_id_t mod_id, LOG_D(NR_MAC, "In %s: RA not active. Checking for data to transmit from upper layers...\n", __FUNCTION__); - const uint8_t lcid = UL_SCH_LCID_CCCH; - const uint8_t sh_size = sizeof(NR_MAC_SUBHEADER_FIXED); const uint8_t TBS_max = 8 + sizeof(NR_MAC_SUBHEADER_SHORT) + sizeof(NR_MAC_SUBHEADER_SHORT); // Note: unclear the reason behind the selection of such TBS_max - int8_t size_sdu = 0; + int size_sdu = 0; uint8_t mac_ce[16] = {0}; uint8_t *pdu = get_softmodem_params()->sa ? mac->CCCH_pdu.payload : mac_ce; uint8_t *payload = pdu; // Concerning the C-RNTI MAC CE, it has to be included if the UL transmission (Msg3) is not being made for the CCCH logical channel. // Therefore it has been assumed that this event only occurs only when RA is done and it is not SA mode. - if (get_softmodem_params()->sa) { - - NR_MAC_SUBHEADER_FIXED *header = (NR_MAC_SUBHEADER_FIXED *) pdu; - pdu += sh_size; - - // initialisation by RRC - nr_rrc_ue_generate_RRCSetupRequest(mod_id,gNB_id); - - // CCCH PDU - size_sdu = nr_mac_rrc_data_req_ue(mod_id, CC_id, gNB_id, frame, CCCH, pdu); - LOG_D(NR_MAC, "In %s: [UE %d][%d.%d]: Requested RRCConnectionRequest, got %d bytes for LCID 0x%02x \n", __FUNCTION__, mod_id, frame, nr_slot_tx, size_sdu, lcid); - - if (size_sdu > 0) { - - // UE Contention Resolution Identity - // Store the first 48 bits belonging to the uplink CCCH SDU within Msg3 to determine whether or not the - // Random Access Procedure has been successful after reception of Msg4 - memcpy(ra->cont_res_id, pdu, sizeof(uint8_t) * 6); - - pdu += size_sdu; - ra->Msg3_size = size_sdu + sh_size; - - // Build header - header->R = 0; - header->LCID = lcid; - - } else { - pdu -= sh_size; - } - - } else if (get_softmodem_params()->nsa) { + if (get_softmodem_params()->nsa) { uint8_t mac_sdus[34*1056]; uint16_t sdu_lengths[NB_RB_MAX] = {0}; @@ -722,7 +735,7 @@ uint8_t nr_ue_get_rach(module_id_t mod_id, ra->Msg3_size = size_sdu + sizeof(NR_MAC_SUBHEADER_SHORT) + sizeof(NR_MAC_SUBHEADER_SHORT); } - } else { + } else if (!get_softmodem_params()->sa) { size_sdu = nr_write_ce_ulsch_pdu(pdu, mac, 0, &(mac->crnti), NULL, NULL, NULL); pdu += size_sdu; @@ -732,12 +745,12 @@ uint8_t nr_ue_get_rach(module_id_t mod_id, if (size_sdu > 0 && (ra->ra_state == GENERATE_PREAMBLE || get_softmodem_params()->nsa)) { - LOG_D(NR_MAC, "In %s: [UE %d][%d.%d]: starting initialisation Random Access Procedure...\n", __FUNCTION__, mod_id, frame, nr_slot_tx); + LOG_D(NR_MAC, "[UE %d][%d.%d]: starting initialisation Random Access Procedure...\n", mod_id, frame, nr_slot_tx); // Padding: fill remainder with 0 if (TBS_max - ra->Msg3_size > 0) { AssertFatal(TBS_max > ra->Msg3_size, "In %s: allocated resources are not enough for Msg3!\n", __FUNCTION__); - LOG_D(NR_MAC, "In %s: remaining %d bytes, filling with padding\n", __FUNCTION__, TBS_max - ra->Msg3_size); + LOG_D(NR_MAC, "Remaining %d bytes, filling with padding\n",TBS_max - ra->Msg3_size); ((NR_MAC_SUBHEADER_FIXED *) pdu)->R = 0; ((NR_MAC_SUBHEADER_FIXED *) pdu)->LCID = UL_SCH_LCID_PADDING; pdu += sizeof(NR_MAC_SUBHEADER_FIXED); @@ -745,25 +758,17 @@ uint8_t nr_ue_get_rach(module_id_t mod_id, } // Dumping ULSCH payload - LOG_D(NR_MAC, "In %s: dumping UL Msg3 MAC PDU with length %d: \n", __FUNCTION__, TBS_max); + LOG_D(NR_MAC, "Dumping UL Msg3 MAC PDU with length %d: \n", TBS_max); for(int k = 0; k < TBS_max; k++) { LOG_D(NR_MAC,"(%i): %i\n", k, payload[k]); } - // Msg3 was initialized with TBS_max bytes because the RA_Msg3_size will only be known after - // receiving Msg2 (which contains the Msg3 resource reserve). - // Msg3 will be transmitted with RA_Msg3_size bytes, removing unnecessary 0s. - if (!get_softmodem_params()->nsa) { - mac->ulsch_pdu.Pdu_size = TBS_max; - memcpy(mac->ulsch_pdu.payload, payload, TBS_max); - } - } else { return 0; } } else if (ra->RA_window_cnt != -1) { // RACH is active - LOG_D(MAC, "In %s [%d.%d] RA is active: RA window count %d, RA backoff count %d\n", __FUNCTION__, frame, nr_slot_tx, ra->RA_window_cnt, ra->RA_backoff_cnt); + LOG_D(MAC, "[%d.%d] RA is active: RA window count %d, RA backoff count %d\n", frame, nr_slot_tx, ra->RA_window_cnt, ra->RA_backoff_cnt); if (ra->RA_BI_found){ prach_resources->RA_PREAMBLE_BACKOFF = prach_resources->RA_SCALING_FACTOR_BI * ra->RA_backoff_indicator; @@ -806,7 +811,7 @@ uint8_t nr_ue_get_rach(module_id_t mod_id, } } - if (ra->RA_contention_resolution_timer_active){ + if (ra->RA_contention_resolution_timer_active) { nr_ue_contention_resolution(mod_id, CC_id, frame, nr_slot_tx, prach_resources); } diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c index 8a3c4279f4..c5fbda77de 100644 --- a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c +++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c @@ -3598,7 +3598,7 @@ void nr_ue_process_mac_pdu(nr_downlink_indication_t *dl_info, break; } - if ( mac_len > 0 ) { + if (mac_len > 0) { LOG_D(NR_MAC,"DL_SCH_LCID_CCCH (e.g. RRCSetup) with payload len %d\n", mac_len); for (int i = 0; i < mac_subheader_len; i++) { LOG_D(NR_MAC, "MAC header %d: 0x%x\n", i, pduP[i]); @@ -3606,7 +3606,18 @@ void nr_ue_process_mac_pdu(nr_downlink_indication_t *dl_info, for (int i = 0; i < mac_len; i++) { LOG_D(NR_MAC, "%d: 0x%x\n", i, pduP[mac_subheader_len + i]); } - nr_mac_rrc_data_ind_ue(module_idP, CC_id, gNB_index, frameP, 0, mac->crnti, CCCH, pduP+mac_subheader_len, mac_len); + + mac_rlc_data_ind(module_idP, + mac->crnti, + module_idP, + frameP, + ENB_FLAG_NO, + MBMS_FLAG_NO, + 0, + (char *)(pduP + mac_subheader_len), + mac_len, + 1, + NULL); } break; case DL_SCH_LCID_TCI_STATE_ACT_UE_SPEC_PDSCH: @@ -4112,7 +4123,7 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, int pdu_id) LOG_I(NR_MAC, "rar->TCRNTI_1 = 0x%x\n", rar->TCRNTI_1); LOG_I(NR_MAC, "rar->TCRNTI_2 = 0x%x\n", rar->TCRNTI_2); - LOG_I(NR_MAC, "In %s:[%d.%d]: [UE %d] Received RAR with t_alloc %d f_alloc %d ta_command %d mcs %d freq_hopping %d tpc_command %d t_crnti %x \n", + LOG_I(NR_MAC, "In %s:[%d.%d]: [UE %d] Received RAR with t_alloc %d f_alloc %d ta_command %d mcs %d freq_hopping %d tpc_command %d\n", __FUNCTION__, frame, slot, @@ -4122,8 +4133,7 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, int pdu_id) ta_command, rar_grant.mcs, rar_grant.freq_hopping, - tpc_command, - ra->t_crnti); + tpc_command); #endif // Schedule Msg3 @@ -4135,7 +4145,7 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, int pdu_id) } ret = nr_ue_pusch_scheduler(mac, is_Msg3, frame, slot, &frame_tx, &slot_tx, tda_info.k2); - if (ret != -1){ + if (ret != -1) { fapi_nr_ul_config_request_t *ul_config = get_ul_config_request(mac, slot_tx, tda_info.k2); uint16_t rnti = mac->crnti; @@ -4151,6 +4161,7 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, int pdu_id) if (!ra->cfra) { ra->t_crnti = rar->TCRNTI_2 + (rar->TCRNTI_1 << 8); rnti = ra->t_crnti; + send_msg3_rrc_request(mod_id, rnti); } pthread_mutex_lock(&ul_config->mutex_ul_config); diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c index 4a43f37ca6..b590790755 100644 --- a/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c +++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c @@ -1037,13 +1037,13 @@ void nr_ue_ul_scheduler(nr_uplink_indication_t *ul_info) mac->UL_ndi[ulcfg_pdu->pusch_config_pdu.pusch_data.harq_process_id], ulcfg_pdu->pusch_config_pdu.pusch_data.new_data_indicator, TBS_bytes,ra->ra_state); - if (ra->ra_state == WAIT_RAR && !ra->cfra){ - memcpy(ulsch_input_buffer, mac->ulsch_pdu.payload, TBS_bytes); - LOG_D(NR_MAC,"[RAPROC] Msg3 to be transmitted:\n"); + if (ra->ra_state == WAIT_RAR && !ra->cfra) { + nr_get_msg3_payload(mod_id); + memcpy(ulsch_input_buffer, mac->CCCH_pdu.payload, TBS_bytes); for (int k = 0; k < TBS_bytes; k++) { - LOG_D(NR_MAC,"(%i): 0x%x\n",k,mac->ulsch_pdu.payload[k]); + LOG_D(NR_MAC,"(%i): 0x%x\n", k, ulsch_input_buffer[k]); } - LOG_D(NR_MAC,"Flipping NDI for harq_id %d (Msg3)\n",ulcfg_pdu->pusch_config_pdu.pusch_data.new_data_indicator); + LOG_D(NR_MAC,"Flipping NDI for harq_id %d (Msg3)\n", ulcfg_pdu->pusch_config_pdu.pusch_data.new_data_indicator); mac->UL_ndi[ulcfg_pdu->pusch_config_pdu.pusch_data.harq_process_id] = ulcfg_pdu->pusch_config_pdu.pusch_data.new_data_indicator; mac->first_ul_tx[ulcfg_pdu->pusch_config_pdu.pusch_data.harq_process_id] = 0; mac_pdu_exist = 1; diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c index f4caa05fdb..d7a36ec131 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c @@ -1399,10 +1399,10 @@ static void nr_generate_Msg2(module_id_t module_idP, T(T_GNB_MAC_DL_RAR_PDU_WITH_DATA, T_INT(module_idP), T_INT(CC_id), T_INT(ra->RA_rnti), T_INT(frameP), T_INT(slotP), T_INT(0), T_BUFFER(&tx_req->TLVs[0].value.direct[0], tx_req->TLVs[0].length)); - tx_req->PDU_length = pdsch_pdu_rel15->TBSize[0]; tx_req->PDU_index = pduindex; tx_req->num_TLV = 1; - tx_req->TLVs[0].length = tx_req->PDU_length + 2; + tx_req->TLVs[0].length = pdsch_pdu_rel15->TBSize[0]; + tx_req->PDU_length = compute_PDU_length(tx_req->num_TLV, pdsch_pdu_rel15->TBSize[0]); TX_req->SFN = frameP; TX_req->Number_of_PDUs++; TX_req->Slot = slotP; @@ -1845,10 +1845,10 @@ static void nr_generate_Msg4(module_id_t module_idP, // DL TX request nfapi_nr_pdu_t *tx_req = &TX_req->pdu_list[TX_req->Number_of_PDUs]; memcpy(tx_req->TLVs[0].value.direct, harq->transportBlock, sizeof(uint8_t) * harq->tb_size); - tx_req->PDU_length = harq->tb_size; tx_req->PDU_index = pduindex; tx_req->num_TLV = 1; - tx_req->TLVs[0].length = harq->tb_size + 2; + tx_req->TLVs[0].length = harq->tb_size; + tx_req->PDU_length = compute_PDU_length(tx_req->num_TLV, tx_req->TLVs[0].length); TX_req->SFN = frameP; TX_req->Number_of_PDUs++; TX_req->Slot = slotP; diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c index 52d6825079..0c366cb846 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c @@ -601,10 +601,10 @@ void schedule_nr_sib1(module_id_t module_idP, // Data to be transmitted memcpy(tx_req->TLVs[0].value.direct, cc->sib1_bcch_pdu, TBS); - tx_req->PDU_length = TBS; tx_req->PDU_index = pdu_index; tx_req->num_TLV = 1; - tx_req->TLVs[0].length = TBS + 2; + tx_req->TLVs[0].length = TBS; + tx_req->PDU_length = compute_PDU_length(tx_req->num_TLV, tx_req->TLVs[0].length); TX_req->Number_of_PDUs++; TX_req->SFN = frameP; TX_req->Slot = slotP; diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c index 995e5b5d83..4675403834 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c @@ -1367,10 +1367,10 @@ void nr_schedule_ue_spec(module_id_t module_id, const int ntx_req = TX_req->Number_of_PDUs; nfapi_nr_pdu_t *tx_req = &TX_req->pdu_list[ntx_req]; - tx_req->PDU_length = TBS; tx_req->PDU_index = pduindex; tx_req->num_TLV = 1; - tx_req->TLVs[0].length = TBS + 2; + tx_req->TLVs[0].length = TBS; + tx_req->PDU_length = compute_PDU_length(tx_req->num_TLV, tx_req->TLVs[0].length); memcpy(tx_req->TLVs[0].value.direct, harq->transportBlock, TBS); TX_req->Number_of_PDUs++; TX_req->SFN = frame; diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c index fc317593fb..1e5de41ab3 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c @@ -2908,10 +2908,10 @@ void UL_tti_req_ahead_initialization(gNB_MAC_INST * gNB, NR_ServingCellConfigCom } } -void send_initial_ul_rrc_message(gNB_MAC_INST *mac, int rnti, const uint8_t *sdu, sdu_size_t sdu_len, void *rawUE) +void send_initial_ul_rrc_message(int rnti, const uint8_t *sdu, sdu_size_t sdu_len, void *data) { - - NR_UE_info_t *UE = (NR_UE_info_t *)rawUE; + gNB_MAC_INST *mac = RC.nrmac[0]; + NR_UE_info_t *UE = (NR_UE_info_t *)data; NR_SCHED_ENSURE_LOCKED(&mac->sched_lock); uint8_t du2cu[1024]; @@ -2945,7 +2945,7 @@ void prepare_initial_ul_rrc_message(gNB_MAC_INST *mac, NR_UE_info_t *UE) process_CellGroup(cellGroupConfig, UE); /* activate SRB0 */ - nr_rlc_activate_srb0(UE->rnti, mac, UE, send_initial_ul_rrc_message); + nr_rlc_activate_srb0(UE->rnti, UE, send_initial_ul_rrc_message); /* the cellGroup sent to CU specifies there is SRB1, so create it */ DevAssert(cellGroupConfig->rlc_BearerToAddModList->list.count == 1); diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c index 20da335e6c..6664cc761b 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c @@ -35,7 +35,7 @@ #include #include #include -#include +#include "PHY/sse_intrin.h" //#define SRS_DEBUG diff --git a/openair2/LAYER2/NR_MAC_gNB/mac_proto.h b/openair2/LAYER2/NR_MAC_gNB/mac_proto.h index b5c8ac4a97..cc649a28f3 100644 --- a/openair2/LAYER2/NR_MAC_gNB/mac_proto.h +++ b/openair2/LAYER2/NR_MAC_gNB/mac_proto.h @@ -435,7 +435,7 @@ size_t dump_mac_stats(gNB_MAC_INST *gNB, char *output, size_t strlen, bool reset void process_CellGroup(NR_CellGroupConfig_t *CellGroup, NR_UE_info_t *UE); void prepare_initial_ul_rrc_message(gNB_MAC_INST *mac, NR_UE_info_t *UE); -void send_initial_ul_rrc_message(gNB_MAC_INST *mac, int rnti, const uint8_t *sdu, sdu_size_t sdu_len, void *rawUE); +void send_initial_ul_rrc_message(int rnti, const uint8_t *sdu, sdu_size_t sdu_len, void *data); void abort_nr_dl_harq(NR_UE_info_t* UE, int8_t harq_pid); diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c index 2aec005e6d..49df9469ab 100644 --- a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c +++ b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c @@ -151,8 +151,8 @@ void mac_rlc_data_ind(const module_id_t module_idP, rb->set_time(rb, nr_rlc_current_time); rb->recv_pdu(rb, buffer_pP, tb_sizeP); } else { - LOG_E(RLC, "%s:%d:%s: fatal: no RB found (channel ID %d)\n", - __FILE__, __LINE__, __FUNCTION__, channel_idP); + LOG_E(RLC, "Fatal: no RB found (channel ID %d RNTI %d)\n", + channel_idP, rntiP); // exit(1); } @@ -729,7 +729,7 @@ void nr_rlc_add_srb(int rnti, int srb_id, const NR_RLC_BearerConfig_t *rlc_Beare int t_reassembly; int sn_field_length; - LOG_D(RLC,"Trying to add SRB %d\n",srb_id); + LOG_D(RLC, "Trying to add SRB %d\n", srb_id); AssertFatal(srb_id > 0 && srb_id < 4, "Invalid srb id %d\n", srb_id); @@ -792,7 +792,7 @@ void nr_rlc_add_srb(int rnti, int srb_id, const NR_RLC_BearerConfig_t *rlc_Beare sn_field_length); nr_rlc_ue_add_srb_rlc_entity(ue, srb_id, nr_rlc_am); - LOG_I(RLC, "%s:%d:%s: added srb %d to UE with RNTI 0x%x\n", __FILE__, __LINE__, __FUNCTION__, srb_id, rnti); + LOG_I(RLC, "Added srb %d to UE with RNTI 0x%x\n", srb_id, rnti); } nr_rlc_manager_unlock(nr_rlc_ue_manager); } @@ -963,31 +963,27 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP } struct srb0_data { - struct gNB_MAC_INST_s *mac; int rnti; - void *rawUE; - void (*send_initial_ul_rrc_message)(struct gNB_MAC_INST_s *mac, - int rnti, + void *data; + void (*send_initial_ul_rrc_message)(int rnti, const uint8_t *sdu, sdu_size_t sdu_len, - void *rawUE); + void *data); }; void deliver_sdu_srb0(void *deliver_sdu_data, struct nr_rlc_entity_t *entity, char *buf, int size) { struct srb0_data *s0 = (struct srb0_data *)deliver_sdu_data; - s0->send_initial_ul_rrc_message(s0->mac, s0->rnti, (unsigned char *)buf, - size, s0->rawUE); + s0->send_initial_ul_rrc_message(s0->rnti, (unsigned char *)buf, size, s0->data); } -void nr_rlc_activate_srb0(int rnti, struct gNB_MAC_INST_s *mac, void *rawUE, +void nr_rlc_activate_srb0(int rnti, void *data, void (*send_initial_ul_rrc_message)( - struct gNB_MAC_INST_s *mac, int rnti, const uint8_t *sdu, sdu_size_t sdu_len, - void *rawUE)) + void *data)) { nr_rlc_entity_t *nr_rlc_tm; nr_rlc_ue_t *ue; @@ -996,9 +992,8 @@ void nr_rlc_activate_srb0(int rnti, struct gNB_MAC_INST_s *mac, void *rawUE, srb0_data = calloc(1, sizeof(struct srb0_data)); AssertFatal(srb0_data != NULL, "out of memory\n"); - srb0_data->mac = mac; srb0_data->rnti = rnti; - srb0_data->rawUE = rawUE; + srb0_data->data = data; srb0_data->send_initial_ul_rrc_message = send_initial_ul_rrc_message; nr_rlc_manager_lock(nr_rlc_ue_manager); diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h index be12b236e8..d8a0d66f00 100644 --- a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h +++ b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h @@ -66,13 +66,11 @@ void nr_rlc_activate_avg_time_to_tx( void nr_rlc_srb_recv_sdu(const int rnti, const logical_chan_id_t channel_id, unsigned char *buf, int size); -struct gNB_MAC_INST_s; -void nr_rlc_activate_srb0(int rnti, struct gNB_MAC_INST_s *mac, void *rawUE, +void nr_rlc_activate_srb0(int rnti, void *data, void (*send_initial_ul_rrc_message)( - struct gNB_MAC_INST_s *mac, int rnti, const uint8_t *sdu, sdu_size_t sdu_len, - void *rawUE)); + void *data)); bool nr_rlc_get_statistics(int rnti, int srb_flag, int rb_id, nr_rlc_statistics_t *out); diff --git a/openair2/RRC/NR/MESSAGES/asn1_msg.c b/openair2/RRC/NR/MESSAGES/asn1_msg.c index 2e3e00f12d..3093298005 100644 --- a/openair2/RRC/NR/MESSAGES/asn1_msg.c +++ b/openair2/RRC/NR/MESSAGES/asn1_msg.c @@ -772,7 +772,8 @@ int16_t do_RRCReconfiguration(const gNB_RRC_UE_t *UE, } -uint8_t do_RRCSetupRequest(uint8_t Mod_id, uint8_t *buffer, size_t buffer_size, uint8_t *rv) { +int do_RRCSetupRequest(uint8_t Mod_id, uint8_t *buffer, size_t buffer_size, uint8_t *rv) +{ asn_enc_rval_t enc_rval; uint8_t buf[5],buf2=0; NR_UL_CCCH_Message_t ul_ccch_msg; diff --git a/openair2/RRC/NR/MESSAGES/asn1_msg.h b/openair2/RRC/NR/MESSAGES/asn1_msg.h index 5bd932ffd4..737f65cb85 100644 --- a/openair2/RRC/NR/MESSAGES/asn1_msg.h +++ b/openair2/RRC/NR/MESSAGES/asn1_msg.h @@ -117,7 +117,7 @@ uint8_t do_RRCSetupComplete(uint8_t Mod_id, const int dedicatedInfoNASLength, const char *dedicatedInfoNAS); -uint8_t do_RRCSetupRequest(uint8_t Mod_id, uint8_t *buffer, size_t buffer_size, uint8_t *rv); +int do_RRCSetupRequest(uint8_t Mod_id, uint8_t *buffer, size_t buffer_size, uint8_t *rv); uint8_t do_NR_RRCReconfigurationComplete_for_nsa(uint8_t *buffer, size_t buffer_size, NR_RRC_TransactionIdentifier_t Transaction_id); diff --git a/openair2/RRC/NR/nr_rrc_common.h b/openair2/RRC/NR/nr_rrc_common.h index 1505e71924..69dbb9ff0f 100644 --- a/openair2/RRC/NR/nr_rrc_common.h +++ b/openair2/RRC/NR/nr_rrc_common.h @@ -61,13 +61,7 @@ typedef struct RB_INFO_NR_s { //MAC_MEAS_REQ_ENTRY *Meas_entry; //may not needed for NB-IoT } NR_RB_INFO; -typedef struct NR_SRB_INFO_s { - NR_RRC_BUFFER Rx_buffer; - NR_RRC_BUFFER Tx_buffer; -} NR_SRB_INFO; - typedef struct SRB_INFO_TABLE_ENTRY_NR_s { - NR_SRB_INFO Srb_info; uint8_t Active; uint8_t status; } NR_SRB_INFO_TABLE_ENTRY; diff --git a/openair2/RRC/NR_UE/L2_interface_ue.c b/openair2/RRC/NR_UE/L2_interface_ue.c index 1cfb8068d3..3a90e099e8 100644 --- a/openair2/RRC/NR_UE/L2_interface_ue.c +++ b/openair2/RRC/NR_UE/L2_interface_ue.c @@ -91,29 +91,7 @@ int8_t nr_mac_rrc_data_ind_ue(const module_id_t module_id, break; case CCCH: - if (pdu_len>0) { - LOG_T(NR_RRC,"[UE %d] Received SDU for CCCH on SRB %u from gNB %d\n",module_id,channel & RAB_OFFSET,gNB_index); - - MessageDef *message_p; - int msg_sdu_size = CCCH_SDU_SIZE; - - if (pdu_len > msg_sdu_size) { - LOG_E(NR_RRC, "SDU larger than CCCH SDU buffer size (%d, %d)", sdu_size, msg_sdu_size); - sdu_size = msg_sdu_size; - } else { - sdu_size = pdu_len; - } - - message_p = itti_alloc_new_message (TASK_MAC_UE, 0, NR_RRC_MAC_CCCH_DATA_IND); - memset (NR_RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE); - memcpy (NR_RRC_MAC_CCCH_DATA_IND (message_p).sdu, pduP, sdu_size); - NR_RRC_MAC_CCCH_DATA_IND (message_p).frame = frame; //frameP - NR_RRC_MAC_CCCH_DATA_IND (message_p).slot = slot; - NR_RRC_MAC_CCCH_DATA_IND (message_p).sdu_size = sdu_size; - NR_RRC_MAC_CCCH_DATA_IND (message_p).gnb_index = gNB_index; - NR_RRC_MAC_CCCH_DATA_IND (message_p).rnti = rnti; //rntiP - itti_send_msg_to_task (TASK_RRC_NRUE, GNB_MODULE_ID_TO_INSTANCE( module_id ), message_p); - } + AssertFatal(false, "use RLC instead\n"); break; default: @@ -123,36 +101,11 @@ int8_t nr_mac_rrc_data_ind_ue(const module_id_t module_id, return(0); } -int8_t nr_mac_rrc_data_req_ue(const module_id_t Mod_idP, - const int CC_id, - const uint8_t gNB_id, - const frame_t frameP, - const rb_id_t Srb_id, - uint8_t *buffer_pP) +void nr_mac_rrc_msg3_ind(const module_id_t mod_id, int rnti) { - switch(Srb_id) { - - case CCCH: - LOG_D(NR_RRC, - "nr_mac_rrc_data_req_ue: Payload size = %i\n", - NR_UE_rrc_inst[Mod_idP].Srb[gNB_id][0].srb_buffers.Tx_buffer.payload_size); - NR_UE_RRC_SRB_INFO_t *Srb0 = &NR_UE_rrc_inst[Mod_idP].Srb[gNB_id][0]; - memcpy(buffer_pP, (uint8_t *)Srb0->srb_buffers.Tx_buffer.Payload, Srb0->srb_buffers.Tx_buffer.payload_size); - for (int i = 0; i < Srb0->srb_buffers.Tx_buffer.payload_size; i++) { - LOG_D(NR_RRC,"(%i): %i\n", i, buffer_pP[i]); - } - - return Srb0->srb_buffers.Tx_buffer.payload_size; - - case DCCH: - AssertFatal(1==0, "SRB1 not implemented yet!\n"); - case DCCH1: - AssertFatal(1==0, "SRB2 not implemented yet!\n"); - default: - AssertFatal(1==0, "Invalid SRB id!\n"); - } - - return 0; + MessageDef *message_p = itti_alloc_new_message(TASK_MAC_UE, 0, NR_RRC_MAC_MSG3_IND); + NR_RRC_MAC_MSG3_IND (message_p).rnti = rnti; + itti_send_msg_to_task(TASK_RRC_NRUE, GNB_MODULE_ID_TO_INSTANCE(mod_id), message_p); } void nr_mac_rrc_ra_ind(const module_id_t mod_id, int frame, bool success) diff --git a/openair2/RRC/NR_UE/rrc_UE.c b/openair2/RRC/NR_UE/rrc_UE.c index a6a0d9dd07..709ffa50e4 100644 --- a/openair2/RRC/NR_UE/rrc_UE.c +++ b/openair2/RRC/NR_UE/rrc_UE.c @@ -616,12 +616,12 @@ int nr_decode_SI(const module_id_t module_id, const uint8_t gNB_index, NR_System return 0; } -int8_t nr_rrc_ue_generate_ra_msg(module_id_t module_id, uint8_t gNB_index) { - - switch(NR_UE_rrc_inst[module_id].ra_trigger){ +void nr_rrc_ue_generate_ra_msg(module_id_t module_id, int rnti) +{ + switch(NR_UE_rrc_inst[module_id].ra_trigger) { case INITIAL_ACCESS_FROM_RRC_IDLE: // After SIB1 is received, prepare RRCConnectionRequest - nr_rrc_ue_generate_RRCSetupRequest(module_id,gNB_index); + nr_rrc_ue_generate_RRCSetupRequest(module_id, rnti); break; case RRC_CONNECTION_REESTABLISHMENT: AssertFatal(1==0, "ra_trigger not implemented yet!\n"); @@ -648,8 +648,27 @@ int8_t nr_rrc_ue_generate_ra_msg(module_id_t module_id, uint8_t gNB_index) { AssertFatal(1==0, "Invalid ra_trigger value!\n"); break; } +} - return 0; +void nr_rrc_ue_generate_RRCSetupRequest(module_id_t module_id, int rnti) +{ + uint8_t rv[6]; + // Get RRCConnectionRequest, fill random for now + // Generate random byte stream for contention resolution + for (int i = 0; i < 6; i++) { +#ifdef SMBV + // if SMBV is configured the contention resolution needs to be fix for the connection procedure to succeed + rv[i] = i; +#else + rv[i] = taus() & 0xff; +#endif + } + + uint8_t buf[1024]; + int len = do_RRCSetupRequest(module_id, buf, sizeof(buf), rv); + + /* convention: RNTI for SRB0 is zero, as it changes all the time */ + nr_rlc_srb_recv_sdu(rnti, 0, buf, len); } void nr_rrc_configure_default_SI(NR_UE_RRC_SI_INFO *SI_info, @@ -732,7 +751,6 @@ static int8_t nr_rrc_ue_decode_NR_BCCH_DL_SCH_Message(module_id_t module_id, // take ServingCellConfigCommon and configure L1/L2 rrc->servingCellConfigCommonSIB = sib1->servingCellConfigCommon; nr_rrc_mac_config_req_sib1(module_id, 0, sib1->si_SchedulingInfo, sib1->servingCellConfigCommon); - nr_rrc_ue_generate_ra_msg(module_id, gNB_index); break; case NR_BCCH_DL_SCH_MessageType__c1_PR_systemInformation: LOG_I(NR_RRC, "[UE %"PRIu8"] Decoding SI\n", module_id); @@ -966,7 +984,7 @@ static void rrc_ue_generate_RRCSetupComplete(const protocol_ctxt_t *const ctxt_p nr_pdcp_data_req_srb(ctxt_pP->rntiMaybeUEid, srb_id, nr_rrc_mui++, size, buffer, deliver_pdu_srb_rlc, NULL); } -int8_t nr_rrc_ue_decode_ccch(const protocol_ctxt_t *const ctxt_pP, const NR_UE_RRC_SRB_INFO_t *Srb_info, const uint8_t gNB_index) +static int8_t nr_rrc_ue_decode_ccch(const protocol_ctxt_t *const ctxt_pP, const uint8_t *buf, int len, const uint8_t gNB_index) { NR_UE_RRC_INST_t *rrc = &NR_UE_rrc_inst[ctxt_pP->module_id]; NR_DL_CCCH_Message_t *dl_ccch_msg=NULL; @@ -976,21 +994,15 @@ int8_t nr_rrc_ue_decode_ccch(const protocol_ctxt_t *const ctxt_pP, const NR_UE_R LOG_D(RRC, "[NR UE%d] Decoding DL-CCCH message (%d bytes), State %d\n", ctxt_pP->module_id, - Srb_info->srb_buffers.Rx_buffer.payload_size, + len, rrc->nrRrcState); - dec_rval = uper_decode(NULL, - &asn_DEF_NR_DL_CCCH_Message, - (void **)&dl_ccch_msg, - (uint8_t *)Srb_info->srb_buffers.Rx_buffer.Payload, - Srb_info->srb_buffers.Rx_buffer.payload_size, - 0, - 0); - // if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout, &asn_DEF_NR_DL_CCCH_Message, (void *)dl_ccch_msg); - // } + dec_rval = uper_decode(NULL, &asn_DEF_NR_DL_CCCH_Message, (void **)&dl_ccch_msg, buf, len, 0, 0); - if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) { + if (LOG_DEBUGFLAG(DEBUG_ASN1)) + xer_fprint(stdout, &asn_DEF_NR_DL_CCCH_Message, (void *)dl_ccch_msg); + + if (dec_rval.code != RC_OK && dec_rval.consumed == 0) { LOG_E(RRC, "[UE %d] Frame %d : Failed to decode DL-CCCH-Message (%zu bytes)\n", ctxt_pP->module_id, @@ -1292,41 +1304,6 @@ void nr_rrc_ue_process_securityModeCommand(const protocol_ctxt_t *const ctxt_pP, securityModeCommand->criticalExtensions.present); } -void nr_rrc_ue_generate_RRCSetupRequest(module_id_t module_id, const uint8_t gNB_index) -{ - uint8_t rv[6]; - NR_UE_RRC_SRB_INFO_t *Srb0 = &NR_UE_rrc_inst[module_id].Srb[gNB_index][0]; - if (Srb0->srb_buffers.Tx_buffer.payload_size == 0) { - // Get RRCConnectionRequest, fill random for now - // Generate random byte stream for contention resolution - for (int i = 0; i < 6; i++) { -#ifdef SMBV - // if SMBV is configured the contention resolution needs to be fix for the connection procedure to succeed - rv[i] = i; -#else - rv[i] = taus() & 0xff; -#endif - LOG_T(NR_RRC, "%x.", rv[i]); - } - - LOG_T(NR_RRC, "\n"); - Srb0->srb_buffers.Tx_buffer.payload_size = do_RRCSetupRequest(module_id, - (uint8_t *)Srb0->srb_buffers.Tx_buffer.Payload, - sizeof(Srb0->srb_buffers.Tx_buffer.Payload), - rv); - LOG_I(NR_RRC, - "[UE %d] : Logical Channel UL-CCCH (SRB0), Generating RRCSetupRequest (bytes %d, gNB %d)\n", - module_id, - Srb0->srb_buffers.Tx_buffer.payload_size, - gNB_index); - - for (int i = 0; i < Srb0->srb_buffers.Tx_buffer.payload_size; i++) - LOG_T(NR_RRC, "%x.", Srb0->srb_buffers.Tx_buffer.Payload[i]); - - LOG_T(NR_RRC, "\n"); - } -} - //----------------------------------------------------------------------------- void nr_rrc_ue_process_measConfig( @@ -1799,8 +1776,17 @@ void *rrc_nrue_task(void *args_p) nr_rrc_SI_timers(SInfo); break; + case NR_RRC_MAC_MSG3_IND: + PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, GNB_FLAG_NO, NR_RRC_MAC_MSG3_IND (msg_p).rnti, 0, 0); + LOG_D(NR_RRC, "[UE %d] Received %s for RNTI %d\n", + ue_mod_id, + ITTI_MSG_NAME (msg_p), + NR_RRC_MAC_MSG3_IND (msg_p).rnti); + nr_rrc_ue_generate_ra_msg(ue_mod_id, NR_RRC_MAC_MSG3_IND (msg_p).rnti); + break; + case NR_RRC_MAC_RA_IND: - LOG_D(NR_RRC, "[UE %d] Received %s: frame %d\n RA %s", + LOG_D(NR_RRC, "[UE %d] Received %s: frame %d RA %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NR_RRC_MAC_RA_IND (msg_p).frame, @@ -1828,18 +1814,11 @@ void *rrc_nrue_task(void *args_p) break; case NR_RRC_MAC_CCCH_DATA_IND: - LOG_D(NR_RRC, "[UE %d] RNTI %x Received %s: frameP %d, gNB %d\n", - ue_mod_id, - NR_RRC_MAC_CCCH_DATA_IND (msg_p).rnti, - ITTI_MSG_NAME (msg_p), - NR_RRC_MAC_CCCH_DATA_IND (msg_p).frame, - NR_RRC_MAC_CCCH_DATA_IND (msg_p).gnb_index); - NR_UE_RRC_SRB_INFO_t *srb0 = &NR_UE_rrc_inst[ue_mod_id].Srb[NR_RRC_MAC_CCCH_DATA_IND(msg_p).gnb_index][0]; - memcpy(srb0->srb_buffers.Rx_buffer.Payload, NR_RRC_MAC_CCCH_DATA_IND(msg_p).sdu, NR_RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size); - srb0->srb_buffers.Rx_buffer.payload_size = NR_RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size; - PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, GNB_FLAG_NO, NR_RRC_MAC_CCCH_DATA_IND (msg_p).rnti, NR_RRC_MAC_CCCH_DATA_IND (msg_p).frame, 0); - // PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, GNB_FLAG_NO, NR_RRC_MAC_CCCH_DATA_IND (msg_p).rnti, NR_RRC_MAC_CCCH_DATA_IND (msg_p).frame, 0, NR_RRC_MAC_CCCH_DATA_IND (msg_p).gnb_index); - nr_rrc_ue_decode_ccch(&ctxt, srb0, NR_RRC_MAC_CCCH_DATA_IND(msg_p).gnb_index); + PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, GNB_FLAG_NO, NR_RRC_MAC_CCCH_DATA_IND (msg_p).rnti, 0, 0); + nr_rrc_ue_decode_ccch(&ctxt, + NR_RRC_MAC_CCCH_DATA_IND (msg_p).sdu, + NR_RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size, + /* gNB_index = */ 0); break; /* PDCP messages */ diff --git a/openair2/RRC/NR_UE/rrc_defs.h b/openair2/RRC/NR_UE/rrc_defs.h index 03b983d7ed..c2d2c1a0de 100644 --- a/openair2/RRC/NR_UE/rrc_defs.h +++ b/openair2/RRC/NR_UE/rrc_defs.h @@ -182,7 +182,6 @@ typedef enum { RB_NOT_PRESENT, RB_ESTABLISHED, RB_SUSPENDED } NR_RB_status_t; typedef struct NR_UE_RRC_SRB_INFO_s { NR_RB_status_t status; - NR_SRB_INFO srb_buffers; } NR_UE_RRC_SRB_INFO_t; typedef struct NR_UE_RRC_INST_s { diff --git a/openair2/RRC/NR_UE/rrc_proto.h b/openair2/RRC/NR_UE/rrc_proto.h index d04830192c..335b9ba84d 100644 --- a/openair2/RRC/NR_UE/rrc_proto.h +++ b/openair2/RRC/NR_UE/rrc_proto.h @@ -107,20 +107,7 @@ void nr_mac_rrc_sync_ind(const module_id_t module_id, const frame_t frame, const bool in_sync); void nr_mac_rrc_ra_ind(const module_id_t mod_id, int frame, bool success); - -/**\brief - \param module_id module id - \param CC_id component carrier id - \param gNB_index gNB index - \param frame_t frameP - \param rb_id_t SRB id - \param buffer_pP pointer to buffer*/ -int8_t nr_mac_rrc_data_req_ue(const module_id_t Mod_idP, - const int CC_id, - const uint8_t gNB_id, - const frame_t frameP, - const rb_id_t Srb_id, - uint8_t *buffer_pP); +void nr_mac_rrc_msg3_ind(const module_id_t mod_id, int rnti); int8_t nr_rrc_RA_succeeded(const module_id_t mod_id, const uint8_t gNB_index); @@ -140,10 +127,8 @@ void nsa_sendmsg_to_lte_ue(const void *message, size_t msg_len, Rrc_Msg_Type_t m void start_oai_nrue_threads(void); -/**\brief RRC UE generate RRCSetupRequest message. - \param module_id module id - \param gNB_index gNB index */ -void nr_rrc_ue_generate_RRCSetupRequest(module_id_t module_id, const uint8_t gNB_index); +/**\brief RRC UE generate RRCSetupRequest message. */ +void nr_rrc_ue_generate_RRCSetupRequest(module_id_t module_id, int rnti); void process_lte_nsa_msg(nsa_msg_t *msg, int msg_len); diff --git a/radio/rfsimulator/simulator.c b/radio/rfsimulator/simulator.c index 9b38ab7026..c74a0fd55d 100644 --- a/radio/rfsimulator/simulator.c +++ b/radio/rfsimulator/simulator.c @@ -233,7 +233,7 @@ static int allocCirBuf(rfsimulator_state_t *bridge, int sock) } char *modelname = (bridge->role == SIMU_ROLE_SERVER) ? "rfsimu_channel_ue0" : "rfsimu_channel_enB0"; ptr->channel_model = find_channel_desc_fromname(modelname); // path_loss in dB - if (ptr->channel_model != NULL) { + if (!ptr->channel_model) { LOG_E(HW, "Channel model %s not found, check config file\n", modelname); return -1; } diff --git a/targets/perf_oai.bash b/targets/perf_oai.bash deleted file mode 100755 index a5209ec7cb..0000000000 --- a/targets/perf_oai.bash +++ /dev/null @@ -1,729 +0,0 @@ -#/* -# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more -# * contributor license agreements. See the NOTICE file distributed with -# * this work for additional information regarding copyright ownership. -# * The OpenAirInterface Software Alliance licenses this file to You under -# * the OAI Public License, Version 1.1 (the "License"); you may not use this file -# * except in compliance with the License. -# * You may obtain a copy of the License at -# * -# * http://www.openairinterface.org/?page_id=698 -# * -# * Unless required by applicable law or agreed to in writing, software -# * distributed under the License is distributed on an "AS IS" BASIS, -# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# * See the License for the specific language governing permissions and -# * limitations under the License. -# *------------------------------------------------------------------------------- -# * For more information about the OpenAirInterface (OAI) Software Alliance: -# * contact@openairinterface.org -# */ -################################################################################ -# file build_oai.bash -# brief apply a traffic generator, send traffic and measure the performance of OAI -# OTG is mainly used for OASIM and D-ITG (or iperf) for LTE-SOFTMODEM -# author Navid Nikaein -# company Eurecom -# email: navid.nikaein@eurecom.fr -# date 2015 - -#!/bin/bash -################################ -# include helper functions -################################ -THIS_SCRIPT_PATH=$(dirname $(readlink -f $0)) -. $THIS_SCRIPT_PATH/build_helper.bash - -check_for_root_rights - - -####################################### -# Default PARAMETERS -###################################### -#general - -declare PERF_APP="PING" # ITG, ITG_DECODE, PING, OTG, -declare TEST_MODE=0 -declare KEEP_LOG_FILESNUM_PKTS=0 -declare OWD="rttm" -declare DURATION=60000 # ms -declare NUM_PKTS=10000 -declare KBYTES=1000 # KBYTES -declare START=0 -declare DST="127.0.0.1" -declare DPORT="8999" -declare TP="UDP" -declare IDT_DIST="CONSTANT" -declare PS_DIST="CONSTANT" - -#IDT -declare RATE=1000 # pkt / s -declare MIN_RATE=100 -declare MAX_RATE=1000 - - -############## script params ##################### - - until [ -z "$1" ] - do - case "$1" in - -c | --test) - TEST_MODE=1; - echo_info "enabling the test mode" - shift; - ;; - -l | --perf-app) - PERF_APP=$2 - echo_info "Setting the performance evaluation APP to $PERF_APP" - if [ $PERF_APP = "DITG" ]; then - echo_info "you need to run " - fi - shift 2; - ;; - -m | --owd) - OWD="owdm" - echo_info "setting D-ITG one-way-delay meter" - shift; - ;; - -e | --duration) - DURATION=$2 - echo_info "Setting the traffic duration to $DURATION" - shift 2; - ;; - -n | --num-pkts) - NUM_PKTS=$2 - echo_info "Setting number of packets to $NUM_PKTS" - shift 2; - ;; - -k | --keep-log-file) - KEEP_LOG_FILESNUM_PKTS=1 - echo_info "Keep the log files" - shift; - ;; - -i | --idt-dist) - IDT_DIST=$2 - echo_info "setting IDT distribution to $IDT_DIST" - shift 2; - ;; - -s | --ps-dist) - PS_DIST=$2 - echo_info "setting PS distribution to $PS_DIST" - shift 2; - ;; - -d | --dst) - DST=$2 - echo_info "setting the destination address to $DST" - shift 2; - ;; - -p | --dst-port) - DPORT=$2 - echo_info "setting the destination port to $DPORT" - shift 2; - ;; - -h | --help) - print_help_perf - exit -1 - ;; - *) - echo "Unknown option $1" - break ; - # unknown option - ;; - esac -done - -##################### -# create a bin dir -##################### -echo_info "1. Creating the results dir ..." -#rm -rf results -mkdir -m 777 -p results - -exp_date=`date +%Y_%m_%d` -exp_time=`date +%H_%M_%S` -oai_exp_date="exp_date_${exp_date}" -touch results/${oai_exp_date} - -touch results/perf_log.txt -chmod -f 777 results/perf_log.txt - -echo "start experiment at date $exp_date time $exp_time " >> results/${oai_exp_date} - -############################################ -# setting and printing OAI envs, we should check here -############################################ - -echo_info "2. Setting the OAI PATHS ..." - -set_openair_env -cecho "OPENAIR_HOME = $OPENAIR_HOME" $green -cecho "OPENAIR1_DIR = $OPENAIR1_DIR" $green -cecho "OPENAIR2_DIR = $OPENAIR2_DIR" $green -cecho "OPENAIR3_DIR = $OPENAIR3_DIR" $green -cecho "OPENAIR3_DIR = $OPENAIR3_DIR" $green -cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green - - -echo "OPENAIR_HOME = $OPENAIR_HOME" >> results/${oai_exp_date} -echo "OPENAIR1_DIR = $OPENAIR1_DIR" >> results/${oai_exp_date} -echo "OPENAIR2_DIR = $OPENAIR2_DIR" >> results/${oai_exp_date} -echo "OPENAIR3_DIR = $OPENAIR3_DIR" >> results/${oai_exp_date} -echo "OPENAIR3_DIR = $OPENAIR3_DIR" >> results/${oai_exp_date} -echo "OPENAIR_TARGETS = $OPENAIR_TARGETS" >> results/${oai_exp_date} - -################################ -# run ITGSEND -################################ - -itg_send(){ - - test_install_package d-itg - - LOG_FILE="itg_log_template.txt" - touch results/${LOG_FILE} - - if [ $TEST_MODE = 0 ] ; then - declare -a PS=(32 64 128 256 512 1024 1408) - declare -a IDT=(1 5 10 50 100 1000) - else - declare -a PS=(32 64) - declare -a IDT=(1) - fi - - declare PS_LEN=${#PS[@]} - declare IDT_LEN=${#IDT[@]} -#echo_info "PS_LEN is $PS_LEN, IDT_LEN is $IDT_LEN" - - declare i=0 - declare j=0 - declare e=0 - # send traffic - for idt in ${IDT[@]}; do -# echo_info "IDT is set to $idt i is $i" - if [ $i -lt $IDT_LEN ]; then - let i++; - fi - - if [ $IDT_DIST = "CONSTANT" ]; then - IDT_OPT="-C $idt " - fi - if [ $IDT_DIST = "UNIFORM" ]; then - IDT_OPT="-U $idt ${IDT[i]} " - fi - if [ $IDT_DIST = "EXPONENTIAL" ]; then - IDT_OPT="-E $idt " - fi - - for ps in ${PS[@]}; do -# echo_info "PS is $ps j is $j" - if [ $j -lt $PS_LEN ]; then - let j++; - fi - if [ $PS_DIST = "CONSTANT" ]; then - PS_OPT="-c $ps " - fi - if [ $PS_DIST = "UNIFORM" ]; then - PS_OPT="-u $ps ${PS[j]} " - fi - if [ $PS_DIST = "EXPONENTIAL" ]; then - PS_OPT="-e $ps " - fi - start=$(date +%s) - RECV_FILE="recv_log_${IDT_DIST}_idt${idt}_${PS_DIST}_ps${ps}_${OWD}_${TP}" - echo_info "Start test_$i.$j:: ITGSend -a $DST $IDT_OPT $PS_OPT -m $OWD -d $START -T $TP -t $DURATION -x $RECV_FILE -l " - echo "Start test_$i.$j:: ITGSend -a $DST $IDT_OPT $PS_OPT -m $OWD -d $START -T $TP -t $DURATION -x $RECV_FILE -l " >> results/${oai_exp_date} - #sleep 1 - ITGSend -a $DST $IDT_OPT $PS_OPT -m $OWD -d $START -T $TP -t $DURATION -x $RECV_FILE -l - itg_status=$? - end=$(date +%s) - diff=$(( $end - $start )) - - if [ $itg_status = 0 ] ; then - echo_success "[$end] test_$i.$j passed" - echo "[$end] test_$i.$j passed" >> ./results/$LOG_FILE - STATUS="PASSED" - else - let e++; - echo_error "[$end] test_$i.$j failed :: D-ITG return exit code $itg_status" - echo "[$end]test_$i.$j failed :: ITG return exit code $itg_status" >> ./results/$LOG_FILE - STATUS="FAILED" - fi - - echo_info "End test_$i.$j:: runtime: $diff" - echo "End test_$i.$j:: runtime: $diff" >> results/${oai_exp_date} - - done - - done - -} - -itg_decode(){ - - declare i=0 - declare j=0 - if [ $TEST_MODE = 0 ] ; then - declare -a PS=(32 64 128 256 512 1024 1408) - declare -a IDT=(1 5 10 50 100 1000) - else - declare -a PS=(32 64) - declare -a IDT=(1) - fi - - for idt in ${IDT[@]}; do - - for ps in ${PS[@]}; do - RECV_FILE="recv_log_${IDT_DIST}_idt${idt}_${PS_DIST}_ps${ps}_${OWD}_${TP}" - OUTPUT_FILE="results_${IDT_DIST}_idt${idt}_${PS_DIST}_ps${ps}_${OWD}_${TP}.txt" - OCTAVE_FILE="results_${IDT_DIST}_idt${idt}_${PS_DIST}_ps${ps}_${OWD}_${TP}.." - - echo_info "decode test_$i.$j: ITGDec $RECV_FILE -v -t -l $OUTPUT_FILE -o $OCTAVE_FILE" - ITGDec $RECV_FILE -v -t -l $OUTPUT_FILE - - done - - done - - -} - -ping_stats(){ - - status="failed" - failedhosts="" - -# add ip / hostname separated by white space - -if [ $TEST_MODE = 0 ]; then - declare COUNT=100 - declare -a HOSTS=($DST) - declare -a PS=(64 768 2048 4096 8192) - declare -a IDT=(1 .8 .4 .2) -else - declare COUNT=10 - declare -a HOSTS=(localhost) - declare -a PS=(64 2048) - declare -a IDT=(.5) -fi - - -declare i=0 -declare j=0 -declare k=0 - -start_exp=$(date +%s) - -for host in ${HOSTS[@]}; do - let i++; - let j=0; - OUTPUT_FILE="rtt_host${host}.csv" - touch results/${OUTPUT_FILE} - for idt in ${IDT[@]}; do - let j++; - let k=0; - for ps in ${PS[@]}; do - let k++; - # | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }') - start=$(date +%s) - LOG_FILE="recv_log_host${host}_idt${idt}_ps${ps}.txt" - touch results/${LOG_FILE} - echo_info "Start test_$i.$j.$k:: ping -c $COUNT -q -U $host -s $ps -i $idt" - echo "Start test_$i.$j.$k:: ping -c $COUNT -q -U $host -s $ps -i $idt" >> results/${oai_exp_date} - $(ping -c $COUNT -q -U $host -s $ps -i $idt 1>&2 >> ./results/$LOG_FILE ) - end=$(date +%s) - diff=$(( $end - $start )) - - count=$(cat ./results/$LOG_FILE | awk -F, '/received/{print $2*1}') - latency=$(cat ./results/$LOG_FILE | tail -1 |cut -f2- -d=) - - MIN=$(cut -f1 -d/ <<< $latency) - AVG=$(cut -f2 -d/ <<< $latency) - MAX=$(cut -f3 -d/ <<< $latency) - MDEV=$(cut -f4 -d/ <<< $latency | cut -f1 -d" ") - UNIT=$(cut -f2 -d" " <<< $latency) - - echo_success "Latency:: count $count min $MIN avg $AVG max $MAX mdev $MDEV ($UNIT)" - echo "$idt;$ps;$COUNT;$count;$MIN;$AVG;$MAX;$MDEV;" >> ./results/$OUTPUT_FILE - if [ $count -eq 0 ]; then - failedhosts="$failedhosts $host" - status="failed" - else - status="passed" - fi - echo_info "End test_$i.$j.$k:: runtime: $diff :: status $status " - echo "End test_$i.$j.$k:: runtime: $diff :; status $status" >> results/${oai_exp_date} - - done - done -done -end_exp=$(date +%s) -diff_exp=$(( $end_exp - $start_exp )) - -let total_tests=i*j*k; -echo_info "total tests: $total_tests for a duration $diff_exp (s)" - -} - -oaisim_otg_stats(){ - -# install the required packages - - test_install_package octave >> results/perf_log.txt 2>&1 - -# set paths to the required binaries and check if the required binaries are available - OAISIM="bin/oaisim" - OTGPLOT="$OPENAIR2_DIR/UTIL/OTG/OTGplot" - PS2PDF="ps2pdf" - - if [ ! -f $OAISIM ]; then - echo_info "3.1 compiling OAISIM ($OPENAIR_TARGETS/build_oai.bash -t OAISIM -b -D -c)" - ($OPENAIR_TARGETS/build_oai.bash -t OAISIM -b -D -c >> results/perf_log.txt 2>&1 ) - build_stats=$? - if [ $build_stats != 0 ] ; then - echo_error "$OAISIM cannot be built, check results/perf_log.txt file" - exit $? - fi - else - echo_info "ensure that OAISIM is not built with the S1 interface" - fi - - (install_nasmesh >> results/perf_log.txt 2>&1 ) - - if [ ! -f $OTGPLOT ]; then - echo_error "$OTGPLOT not found" - exit $? - fi - -# Set the default Parameters - ABSTRACTION=1 -#FRAME_TYPE=0 # FDD=0, TDD =1, 2,3,4,5,6 - AGGR_RESULT=1 - STATUS="PASSED" - EXTRA_STATS=0 - declare NUM_UES=7 - - if [ $TEST_MODE = 0 ]; then - declare -a TEMPLATES=(120 121 122 123 124 125 126 127 128 129 130) - declare -a FRAME_TYPE=(0 3) - declare -a METRICS=(latency jitter goodput) - declare -a RB=(25 50 100) - else - declare -a TEMPLATES=(125) - declare -a FRAME_TYPE=(3) - declare -a METRICS=(latency) - declare -a RB=(25) - fi - - if [ $ABSTRACTION = 1 ]; then - OPT="-a " - fi - - declare num_cols=0 - let num_cols=NUM_UES+1 - if [ $AGGR_RESULT = 1 ]; then - COLUMN="[$num_cols:$num_cols]" - else - COLUMN="[1:$num_cols]" - fi - - declare i=0 - declare j=0 - declare k=0 - declare e=0 - - start_exp=$(date +%s) - - for template in ${TEMPLATES[@]}; do - let i++; - let j=0; - for frame in ${FRAME_TYPE[@]}; do - let j++; - let k=0; - - if [ $frame = 0 ]; then - OPT="$OPT -F " - else - OPT="$OPT -C $frame " - fi - - for rb in ${RB[@]}; do - let k++; - start=$(date +%s) - LOG_FILE="oaisim_log_template${template}_frame${frame}_rb${rb}.txt" - touch results/${LOG_FILE} - echo_info "[$start] Start test_$i.$j.$k:: $OAISIM $OPT -R $RB -c $template" - echo "Start test_$i.$j.$k:: $OAISIM $OPT -R $RB -c $template" >> results/${oai_exp_date} - #sleep 1 - $OAISIM $OPT -R $RB -c $template 1>&2 >> ./results/$LOG_FILE - # store exit status - oai_status=$? - end=$(date +%s) - diff=$(( $end - $start )) - - #check the oaisim exit status - if [ $oai_status = 0 ] ; then - echo_success "[$end] test_$i.$j.$k passed" - echo "[$end] test_$i.$j.$k passed" >> ./results/$LOG_FILE - STATUS="PASSED" - else - let e++; - echo_error "[$end] test_$i.$j.$k failed :: OAISIM return exit code $oai_status (remove bin/oaisim)" - echo "[$end]test_$i.$j.$k failed :: OAISIM return exit code $oai_status" >> ./results/$LOG_FILE - STATUS="FAILED" - fi - - # create the curves - for metric in ${METRICS[@]}; do - if [ $metric = "goodput" ]; then - unit="(kB/s)" - else - unit="(ms)" - fi - if [ -f /tmp/otg_${metric}.dat ]; then - export TITLE="Application $metric $unit" - cp /tmp/otg_${metric}.dat ./results/otg-${metric}-template${template}-frame${frame}-rb${rb}.dat - echo_info "$OTGPLOT ./results/otg-${metric}-template${template}-frame${frame}-rb${rb}.dat $COLUMN" - echo "$OTGPLOT ./results/otg-${metric}-template${template}-frame${frame}-rb${rb}.dat $COLUMN" >> results/${oai_exp_date} - $($OTGPLOT ./results/otg-${metric}-template${template}-frame${frame}-rb${rb}.dat $COLUMN 1>&2 >> ./results/$LOG_FILE ) - $($PS2PDF -dOptimize=true -dEmbedAllFonts=true ./otg-${metric}-template${template}-frame${frame}-rb${rb}.eps ) - # remove the first line of the file - echo "$(tail -n+2 ./results/otg-${metric}-template${template}-frame${frame}-rb${rb}.dat)" > ./results/otg-${metric}-template${template}-frame${frame}-rb${rb}.dat - else - echo_error "file /tmp/otg_${metric}.dat does not exists" - fi - done - if [ $KEEP_LOG_FILESNUM_PKTS = 0 ]; then - rm -f ./results/$LOG_FILE - fi - mv *.eps ./results/ - mv *.pdf ./results/ - mv /tmp/otg.log ./results/otg-template${template}-frame${frame}-rb${rb}.log - echo_info "End test_$i.$j.$k:: runtime: $diff :: status $STATUS" - echo "End test_$i.$j.$k:: runtime: $diff :: status $STATUS" >> results/${oai_exp_date} - - - done - done - done - - end_exp=$(date +%s) - diff_exp=$(( $end_exp - $start_exp )) - - let total_tests=i*j*k; - echo_info "total tests: $total_tests for a duration $diff_exp (s) error ($e)" - echo "total tests: $total_tests for a duration $diff_exp (s) error ($e)" >> results/${oai_exp_date} - -} - - -cba_otg_stats(){ - - test_install_package octave - -ABSTRACTION=1 -FRAME_TYPE=0 # FDD=0, TDD =1 -AGGR_RESULT=1 -#OAISIM="$OPENAIR_TARGETS/bin/oaisim" -OAISIM="bin/oaisim.cba" # to compile: make cleanall; make Rel10=1 CBA=1 in targets/SIMU/USER -OTGPLOT="$OPENAIR2_DIR/UTIL/OTG/OTGplot" -PS2PDF="ps2pdf" -STATUS="PASSED" -EXTRA_STATS=0 -declare NUM_UES=7 - -if [ $TEST_MODE = 0 ]; then - declare -a TEMPLATES=(120 121 122 123 124 125 126 127 128 129 130) - declare -a CBA=(0 1 2 3 4) - declare -a BACKOFF=(0 15 30 60 120) - declare -a METRICS=(latency jitter goodput) - declare -a RB=(25) -else - declare -a TEMPLATES=(125) - declare -a CBA=(1) - declare -a BACKOFF=(0 15 30 60 120) - declare -a METRICS=(latency) - declare -a RB=(25) -fi - -if [ ! -f $OAISIM ]; then - echo_error "$OAISIM not found" - exit $? -fi -if [ ! -f $OTGPLOT ]; then - echo_error "$OTGPLOT not found" - exit $? -fi - -if [ $ABSTRACTION = 1 ]; then - OPT="-a " -fi -if [ $FRAME_TYPE = 0 ]; then - OPT="$OPT -F " -fi - -declare num_cols=0 -let num_cols=NUM_UES+1 -if [ $AGGR_RESULT = 1 ]; then - COLUMN="[$num_cols:$num_cols]" -else - COLUMN="[1:$num_cols]" -fi - -declare collision=0 -declare enb_cba_access=0 -declare ue_cba_access=0 -declare missed=0 -declare unused=0 - -declare i=0 -declare j=0 -declare k=0 -declare e=0 - -start_exp=$(date +%s) - -STATS1="cba_stats1.txt" -touch results/${STATS1} - -for template in ${TEMPLATES[@]}; do - let i++; - let j=0; - for group in ${CBA[@]}; do - let j++; - let k=0; - for backoff in ${BACKOFF[@]}; do - let k++; - start=$(date +%s) - LOG_FILE="oaisim_log_template${template}_group${group}_backoff${backoff}.txt" - touch results/${LOG_FILE} - echo_info "[$start] Start test_$i.$j.$k:: $OAISIM $OPT -w $group -R $RB --cba-backoff $backoff -c $template" - echo "Start test_$i.$j.$k:: $OAISIM $OPT -w $group -R $RB --cba-backoff $backoff -c $template" >> results/${oai_exp_date} - #sleep 1 - $OAISIM $OPT -w $group -R $RB --cba-backoff $backoff -c $template 1>&2 >> ./results/$LOG_FILE - # store exit status - oai_status=$? - end=$(date +%s) - diff=$(( $end - $start )) - - #check the oaisim exit status - if [ $oai_status = 0 ] ; then - echo_success "[$end] test_$i.$j.$k passed" - echo "[$end] test_$i.$j.$k passed" >> ./results/$LOG_FILE - STATUS="PASSED" - else - let e++; - echo_error "[$end] test_$i.$j.$k failed :: OAISIM return exit code $oai_status" - echo "[$end]test_$i.$j.$k failed :: OAISIM return exit code $oai_status" >> ./results/$LOG_FILE - STATUS="FAILED" - fi - - if [ $group -gt 0 ]; then - - let ue_cba_access=$(cat ./results/$LOG_FILE | grep -c "CBA transmission oppurtunity" ) - let enb_cba_access=$(cat ./results/$LOG_FILE | grep -c "schedule CBA access" ) - let missed=$(cat ./results/$LOG_FILE | grep -c "wait for backoff to expire" ) - let unused=enb_cba_access-ue_cba_access; - let collision=$(cat ./results/$LOG_FILE | grep -c "first CBA collision detected" ) - - #frame, subframe, ue, group - #collision_stats=$(cat ./results/$LOG_FILE | grep "collision" | cut -d " " -f3,5,12,15 ) - if [ $EXTRA_STATS = 1 ]; then - STATS2="cba_template_${template}_stats2.txt" - touch results/${STATS2} - while read -r line - do - SFN=$(cut -f1 -d " " <<< $line) - SSFN=$(cut -f2 -d " " <<< $line) - UEID=$(cut -f3 -d " " <<< $line) - GPID=$(cut -f4 -d " " <<< $line) - #echo_success "$SFN;$SSFN;$UEID;$GPID;" - echo "$SFN;$SSFN;$UEID;$GPID;" >> ./results/$STATS2 - done < <(cat ./results/$LOG_FILE | grep "CBA collision set SR for UE" | cut -d " " -f3,5,13,16 ) - fi - - echo_success "CBA stats:: template $template;group $group; backoff $backoff; enb cba allocation $enb_cba_access; ue cba access $ue_cba_access; collision $collision; missed $missed; unused $unused;" - echo "$template;$group;$backoff;$enb_cba_access;$ue_cba_access;$collision;$missed;$unused;" >> ./results/$STATS1 - fi - - # create the curves - for metric in ${METRICS[@]}; do - if [ $metric = "goodput" ]; then - unit="(kB/s)" - else - unit="(ms)" - fi - if [ -f /tmp/otg_${metric}.dat ]; then - export TITLE="Application $metric $unit" - cp /tmp/otg_${metric}.dat ./results/otg-${metric}-template${template}-group${group}-backoff${backoff}.dat - echo_info "$OTGPLOT ./results/otg-${metric}-template${template}-group${group}-backoff${backoff}.dat $COLUMN" - echo "$OTGPLOT ./results/otg-${metric}-template${template}-group${group}-backoff${backoff}.dat $COLUMN" >> results/${oai_exp_date} - $($OTGPLOT ./results/otg-${metric}-template${template}-group${group}-backoff${backoff}.dat $COLUMN 1>&2 >> ./results/$LOG_FILE ) - $($PS2PDF -dOptimize=true -dEmbedAllFonts=true ./otg-${metric}-template${template}-group${group}-backoff${backoff}.eps ) - # remove the first line of the file - echo "$(tail -n+2 ./results/otg-${metric}-template${template}-group${group}-backoff${backoff}.dat)" > ./results/otg-${metric}-template${template}-group${group}-backoff${backoff}.dat - else - echo_error "file /tmp/otg_${metric}.dat does not exists" - fi - done - if [ $KEEP_LOG_FILESNUM_PKTS = 0 ]; then - rm -f ./results/$LOG_FILE - fi - mv *.eps ./results/ - mv *.pdf ./results/ - mv /tmp/otg.log ./results/otg-template${template}-group${group}-backoff${backoff}.log - echo_info "End test_$i.$j.$k:: runtime: $diff :: status $STATUS" - echo "End test_$i.$j.$k:: runtime: $diff :: status $STATUS" >> results/${oai_exp_date} - - # backoff not required when CBA is not used - if [ $group -eq 0 ]; then - break; - fi - - done - done -done - -end_exp=$(date +%s) -diff_exp=$(( $end_exp - $start_exp )) - -let total_tests=i*j*k; -echo_info "total tests: $total_tests for a duration $diff_exp (s) error ($e)" -echo "total tests: $total_tests for a duration $diff_exp (s) error ($e)" >> results/${oai_exp_date} - -} - - - - -case "$PERF_APP" in - 'ITGS') - echo_info "3. running ITGSend" - itg_send - ;; - 'ITGD') - echo_info "running ITGDECODE (ensure that the results are in the current directory)" - itg_decode - ;; - 'PING') - echo_info "3. running ping" - ping_stats - ;; - 'OTG-OAISIM') - echo_info "3. running OTG on oaisim" - oaisim_otg_stats - ;; - 'OTG-CBA') - echo_info "3. running OTG on oaisim with cba" - cba_otg_stats - ;; - - 'IPERF') - echo_warning "iperf not supported" - ;; - 'NONE') - ;; - *) - echo_error "Unknown option $RUN_ITG" - ;; -esac -